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

Не могу понять почему не выполняется цикл из массива?

Автор VID1234, 24 авг 2021, 10:30

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

VID1234

Здравствуйте. Подскажите пожалуйста в чем проблема, есть код:
Запрос2=Запрос.Скопировать();
Запрос2.Свернуть("Контрагент, лицензия, Код, Договор","Сумма");
Запрос3=Запрос2.Скопировать();                   
Запрос3.Свернуть("Код","Сумма");
   
   
    для каждого стр из Запрос3 цикл
    НовСтр = _РеестрДокПОбНЛ.Добавить();
    НовСтр.УИД = (Новый УникальныйИдентификатор);
    НовСтр.КодОпер = стр.Код;
    НовСтр.СумНеоблОпер = стр.Сумма;
   
       
        Запрос4=Запрос2.НайтиСтроки(Новый Структура("Код", НовСтр.КодОпер));//а здесь есть нужный код, по нему он должен отобрать лицензию, контрагента и т.п.
       
        Для Каждого Стр2 Из Запрос4 Цикл //В этом месте цикл не продолжается, сразу переходит в конец цикла
        Сообщить(Стр2);   
       
            Стр_СведКАгент = _ПредТипДог.ПолучитьЭлементы().Добавить();
первый цикл отрабатывает как нужно, а второй видимо в массиве ничего не ходит и заканчивается, что здесь не так?

LexaK

судя по всему, вот здесь косяк! попробуйте так, см.код

  для каждого стр из Запрос3 цикл
    НовСтр = _РеестрДокПОбНЛ.Добавить();
    НовСтр.УИД = (Новый УникальныйИдентификатор);
    НовСтр.КодОпер = стр.Код; //вот здесь ошибка, не происходит присваивания
    НовСтр.СумНеоблОпер = стр.Сумма;
   
       
        //Запрос4=Запрос2.НайтиСтроки(Новый Структура("Код", НовСтр.КодОпер));//а здесь есть нужный код, по нему он должен отобрать лицензию, контрагента и т.п.
        Запрос4=Запрос2.НайтиСтроки(Новый Структура("Код", стр.Код));//Вот с таким отбором попробуйте!
       
        Для Каждого Стр2 Из Запрос4 Цикл //В этом месте цикл не продолжается, сразу переходит в конец цикла
        Сообщить(Стр2);   
       
ответ Понравился? (в смысле пригодился?)

VID1234


VID1234

@LexaK, А здесь, что может быть? все заполняется в коде, но на форме документа не отображается? _ПредТипДог - это дерево значений на форме документа
Запрос4=Запрос2.НайтиСтроки(Новый Структура("Код", НовСтр.КодОпер));
       
        Для Каждого Стр2 Из Запрос4 Цикл
        Сообщить(Стр2);   
       
            Стр_СведКАгент = _ПредТипДог.ПолучитьЭлементы().Добавить();
            Стр_СведКАгент.УИД=НовСтр.УИД;
            Стр_СведКАгент.УИДЛок = Новый УникальныйИдентификатор;

            Стр_СведКАгент.НаимОрг = Стр2.Контрагент;
            Стр_СведКАгент.ИННЮЛ = Стр2.Контрагент.ИНН;
            Стр_СведКАгент.КПП = Стр2.Контрагент.КПП;
            Стр_СведКАгент.ОписаниеКА = Стр_СведКАгент.НаимОрг + ", ИНН/КПП: " + Стр_СведКАгент.ИННЮЛ + "/" + Стр_СведКАгент.КПП;
       
           
        Запрос5=Запрос.НайтиСтроки(Новый Структура("Контрагент, Лицензия", Стр2.Контрагент,Стр2.Лицензия));

           
       
            Для Каждого Стр3 Из Запрос5 Цикл
                Стр_ДокПОбНЛ = Стр_СведКАгент.ПолучитьЭлементы().Добавить();
                ЗаполнитьЗначенияСвойств(Стр_ДокПОбНЛ,Стр_СведКАгент);
            Стр_ДокПОбНЛ.СумОпер = Стр3.Сумма;
       
               
                Стр_ДокПОбНЛ = Стр_ДокПОбНЛ.ПолучитьЭлементы().Добавить();
                Стр_ДокПОбНЛ.ТипДок = "Договор";
                попытка
                Стр_ДокПОбНЛ.НомДок = Стр3.НомерЛицензии;
                Стр_ДокПОбНЛ.ДатаДок = Стр3.ДатаЛицензии;
                Стр_ДокПОбНЛ.ОписаниеКА= Стр3.Лицензия;
            исключение
           
            конецпопытки;
           
            КонецЦикла;
        КонецЦикла;
    КонецЦикла;

LexaK

@VID1234, из далека трудно сказать (не имея ни формы, ни базы)
может элемент формы не связан с данными (реквизитом формы)
может надо выполнить команду ЗначениеВреквизитФормы  (для упр.форм)

что за база, какая платформа, режимы, совместимости - это все надо указывать в каждой теме
ни кто не ведет учет и не запоминает, какой форумчанин в какой базе работает
ооо, Вася Пупкин у него УТ10
а это Маша Б, у нее БП3.0
ответ Понравился? (в смысле пригодился?)

Теги:

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

Рейтинг@Mail.ru Rambler's Top100

Поиск