Форум 1С
Программистам, бухгалтерам, администраторам, пользователям
Задай вопрос - получи решение проблемы
21 ноя 2024, 13:23

Передача данных между формами

Автор Наталья242826, 18 сен 2024, 10:53

0 Пользователей и 1 гость просматривают эту тему.

Наталья242826

Всем привет, подскажите пожалуйста.
На форму добавила кнопку для перехода на другую форму Скриншот 18.09.24_10.49.35.png , на созданной форме  код на массовое добавление номенклатуры. Скриншот 18.09.24_10.50.26.png
&НаСервере
Процедура СозданиеНоменклатурыНаСервере(КолвоНоменклатур, СТЧ)
Дата = Формат(ТекущаяДата(), "ДФ=yyyyMMdd");
Новый1=Справочники.Номенклатура.СоздатьЭлемент();
Новый1.Наименование = ("Вал_"+ИНН*+"_"+Дата+"_"+ КолвоНоменклатур);
Новый1.Записать();
     Сообщение = Новый СообщениеПользователю;
Сообщение.Текст = Строка(Новый1.Ссылка);
     Сообщение.Сообщить();
КонецПроцедуры

&НаКлиенте
Процедура СозданиеНоменклатуры(Команда)
КолвоНоменклатур = 0;
СТЧ=1;
Пока КолвоНоменклатур <  КоличествоНоменклатур Цикл
СозданиеНоменклатурыНаСервере(КолвоНоменклатур,СТЧ);
КолвоНоменклатур = КолвоНоменклатур + 1;
СТЧ=СТЧ+1
КонецЦикла;
КонецПроцедуры
Необходимо чтобы созданные элементы автоматически добавлялись в документ, из которого происходил переход на эту форму. Также необходимо, чтобы в наименование номенклатуры добавлялся ИНН контрагента, который указан в документе и отображался на созданной форме.

alexandr_ll

Наталья242826, Приведите процедуру перехода к обработке по созданию номенклатур из модуля формы документа

fruitella


&НаСервере
Функция СозданиеНоменклатурыНаСервере(КолвоНоменклатур, СТЧ)
     СозданнаяНоменклатура = Неопределено;

     Дата = Формат(ТекущаяДата(), "ДФ=yyyyMMdd");
     Новый1=Справочники.Номенклатура.СоздатьЭлемент();
     Новый1.Наименование = ("Вал_"+ИНН*+"_"+Дата+"_"+ КолвоНоменклатур);
     
     Попытка
       Новый1.Записать();
       НоменклатураСоздана = Истина;
    Исключение
       НоменклатураСоздана = Ложь;
    КонецПопытки;

    Если НоменклатураСоздана Тогда
      СозданнаяНоменклатура = Новый1.Ссылка;

      Сообщение = Новый СообщениеПользователю;
      Сообщение.Текст = Строка(Новый1.Ссылка);
      Сообщение.Сообщить();
    КонецЕсли;

    Возврат СозданнаяНоменклатура;
КонецФункции


&НаКлиенте
Процедура СозданиеНоменклатуры(Команда)
    КолвоНоменклатур = 0;
    СТЧ=1;

    СписокНовыхТоваров = Новый Массив;

    Пока КолвоНоменклатур <  КоличествоНоменклатур Цикл
        СозданнаяНоменклатура = СозданиеНоменклатурыНаСервере(КолвоНоменклатур,СТЧ);

        Если СозданнаяНоменклатура <> Неопределено Тогда           
            СписокНовыхТоваров.Добавить(СозданнаяНоменклатура);
        КонецЕсли;

        КолвоНоменклатур = КолвоНоменклатур + 1;
        СТЧ=СТЧ+1
    КонецЦикла;
   
    ПараметрыВозврата = Новый Структура;
    ПараметрыВозврата.Вставить("СписокНовыхТоваров", СписокНовыхТоваров);
    ПараметрыВозврата.Вставить("ИНН", ИННКонтрагента - или как там у тебя реквизит правильно называется);
    Оповестить("ПриходнаяНакладная_СозданниеНовыхтоваров", ПараметрыВозврата);
КонецПроцедуры


Ну хотя бы так, а в основной форме документа приходная накладная обрабатываешь событие "ОбработкаОповещения" и добавляешь в ТЧ все что надо

Наталья242826

alexandr_ll, ОткрытьФорму("Документ.ПриходнаяНакладная.Форма.Расш1_Форма");

Теги:

Похожие темы (5)

Рейтинг@Mail.ru

Поиск