Вход | Регистрация

1С:Предприятие :: 1С:Предприятие 8 общая

Как оптимизировать код в процедуре,нужно по выбранным сериям из списка создать доки

Как оптимизировать код в процедуре,нужно по выбранным сериям из списка создать доки
Я
   1сЮлия
 
05.12.18 - 14:49
Добрый день! Как оптимизировать код в процедуре,нужно по выбранным сериям из списка создать доки
вот код
Процедура ДействияФормыРедактировать6(Кнопка)

СпДетал = Новый СписокЗначений;

Для каждого Стр из ЭтотОбъект.Состав Цикл
    ДокСертифНом=Документы.СертификацияНоменклатуры.НайтиПоРеквизиту("СерияНоменклатуры",Стр.СерияНоменклатуры);
    Если ДокСертифНом.Пустая() тогда
        СпДетал.Добавить(Стр.СерияНоменклатуры,,Истина);
    иначе    
        Сообщить("Уже есть документ Сертификация номенклатуры,с такой серией:"+""+Стр.СерияНоменклатуры);
    КонецЕсли;    
КонецЦикла;

Запрос = Новый Запрос;
Запрос.Текст = 
    "ВЫБРАТЬ
    |    ТЗ.Ссылка.Дата,
    |    ТЗ.СерияНоменклатуры,
    |    ТЗ.Ссылка
    |ПОМЕСТИТЬ ТЗ
    |ИЗ
    |    Справочник.аэсПлавки.Состав КАК ТЗ
    |;
    |
    ////////////////////////////////////////////////////////////////////////////////

    |ВЫБРАТЬ
    |    аэсПлавкиСостав.Ссылка.Дата,
    |    аэсПлавкиСостав.Ссылка,
    |    аэсПлавкиСостав.СерияНоменклатуры,
    |    аэсПлавкиСостав.Номенклатура
    |ИЗ
    |    Справочник.аэсПлавки.Состав КАК аэсПлавкиСостав
    |        ВНУТРЕННЕЕ СОЕДИНЕНИЕ ТЗ КАК ТЗ
    |        ПО аэсПлавкиСостав.СерияНоменклатуры = ТЗ.СерияНоменклатуры
    |ГДЕ
    |    аэсПлавкиСостав.Ссылка <> &Ссылка
    |и    аэсПлавкиСостав.СерияНоменклатуры в (&СпДетал) " ;

Запрос.УстановитьПараметр("Ссылка",Ссылка);
Запрос.УстановитьПараметр("СпДетал",СпДетал);

ТабЗнач = Запрос.Выполнить().Выгрузить();

ВыборПроизведен = СпДетал.ОтметитьЭлементы("Выберите детали");
Если ВыборПроизведен Тогда
   Для Каждого эл Из СпДетал Цикл
          Для каждого Стр из ТабЗнач Цикл
           Если Эл.Пометка И ЭЛ.Значение =Стр.СерияНоменклатуры  ТОГДА
                        Док = Документы.СертификацияНоменклатуры.СоздатьДокумент();
                     Док.Номенклатура=Стр.Номенклатура;
                     Док.Дата=Стр.Дата;
                        Док.СерияНоменклатуры=Стр.СерияНоменклатуры;
                     Док.Записать();
            конецЕсли;
        КонецЦикла;
    КонецЦикла;    
КонецЕсли;
КонецПроцедуры
 
 
   Ёпрст
 
1 - 05.12.18 - 14:51
записывать документ для каждой строки - это пять!
   1сЮлия
 
2 - 05.12.18 - 14:56
Каждой строке это новая серия соответствует отдельный документ.

Список тем форума
Рекламное место пустует  Рекламное место пустует
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.
Рекламное место пустует