Ошибка "Итератор значения не определен" при формировании подбора с множественным выбором
Сформирвал подбор, в режиме 1С предприятия при выборе объекте номенклатуры для заполнения приходной накладной, для которой этот подбор формировался выскакивает ошибка
{Документ.ПриходнаяНакладная.Форма.ФормаДокумента.Форма(27)}: Итератор для значения не определен
Для Каждого ВыбранныйЭлемент Из ВыбранноеЗначение Цикл
{Документ.ПриходнаяНакладная.Форма.ФормаДокумента.Форма(27)}: Итератор для значения не определен
Для Каждого ВыбранныйЭлемент Из ВыбранноеЗначение Цикл
&НаКлиенте
Процедура Подбор(Команда)
ПараметрыФормы = Новый Структура("ЗакрыватьПриВыборе", Ложь);
ОткрытьФорму("Справочник.Номенклатура.ФормаВыбора", ПараметрыФормы, Элементы.Материалы);
КонецПроцедуры
&НаКлиенте
Процедура МатериалыОбработкаВыбора(Элемент, ВыбранноеЗначение, СтандартнаяОбработка)
Для Каждого ВыбранныйЭлемент Из ВыбранноеЗначение Цикл
НоваяСтрока = Объект.Материалы.Добавить();
НоваяСтрока.Материал = ВыбранныйЭлемент;
КонецЦикла;;
КонецПроцедуры
ПоказатьНайденные решения
Остальные ответы
Подписаться на ответы
Инфостарт бот
Сортировка:
Древо развёрнутое
Свернуть все
(5) если там был код как в (1), то это множественный подбор, а не множественный выбор. Это разные понятия. Множественный подбор, это когда из формы выбора можно много раз выбирать не закрывая форму выбора. А множественный выбор это когда можно сразу выделить несколько элементов и скопом их выбрать за один раз. Во втором случае как раз и передается в обработку выбора массив значений, который и можно обходить циклом Для Каждого.
(10) я в документе создал форму выбора с произвольным запросом:
Передал параметры:
множестваннныйвыбор, и параметры объекта,
в самой форме при создании это:
ВЫБРАТЬ РАЗРЕШЕННЫЕ
ОстаткиОС.Организация КАК Организация,
ОстаткиОС.ОсновноеСредство КАК ОсновноеСредство,
ОстаткиОС.ОсновноеСредство.Код КАК Код,
ОстаткиОС.ОсновноеСредство.ГрупповойУчет КАК ГрупповойУчет,
ОстаткиОС.ОсновноеСредство.ВидНФА КАК ВидНФА,
ОстаткиОС.ОсновноеСредство.ИмуществоКазны КАК ИмуществоКазны,
ОстаткиОС.ОсновноеСредство.Родитель КАК Родитель,
ОстаткиОС.ЦМО КАК ЦМО,
ОстаткиОС.ИнвентарныйНомер КАК ИнвентарныйНомер,
ВЫБОР
КОГДА &ИспользоватьУчетПоПодразделениям
И ЖурналПроводокЕПСБУОстатки.Счет.УчетПоПодразделениям
ТОГДА ОстаткиОС.Подразделение
ИНАЧЕ ЗНАЧЕНИЕ(Справочник.Подразделения.ПустаяСсылка)
КОНЕЦ КАК Подразделение,
ЗНАЧЕНИЕ(Справочник.Контрагенты.ПустаяСсылка) КАК Контрагент,
ЗНАЧЕНИЕ(Справочник.Договоры.ПустаяСсылка) КАК Договор,
ОстаткиОС.СтоимостьОстаток КАК Сумма,
ОстаткиОС.КоличествоОстаток КАК Количество,
ОстаткиОС.СтоимостьОстаток / ВЫБОР
КОГДА ОстаткиОС.КоличествоОстаток = 0
ТОГДА 1
ИНАЧЕ ОстаткиОС.КоличествоОстаток
КОНЕЦ КАК Цена,
ЖурналПроводокЕПСБУОстатки.Счет КАК СчетУчета,
ЖурналПроводокЕПСБУОстатки.ИФО КАК ИФО,
ЖурналПроводокЕПСБУОстатки.КПС КАК КПС,
ЖурналПроводокЕПСБУОстатки.КФО КАК КФО,
ВЫРАЗИТЬ(0 КАК ЧИСЛО(18, 2)) КАК СуммаАмортизации,
ВЫРАЗИТЬ(0 КАК ЧИСЛО(18, 2)) КАК СуммаОбесценения
ИЗ
РегистрНакопления.СтоимостьОбъектовОС.Остатки(
{(&НаДату)},
ВидРаспоряжения = &ВидРаспоряжения
И ЦМО = &ЦМО {(Организация).*, (ОсновноеСредство).*, (ОсновноеСредство) КАК ОсновноеСредствоДоп, (ОсновноеСредство.ВидНФА) КАК ВидНФА, (ОсновноеСредство.ТипНФА) КАК ТипНФА, (Подразделение).*, (ЦМО).*, (ИнвентарныйНомер).*}) КАК ОстаткиОС
ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрБухгалтерии.ЖурналПроводокЕПСБУ.Остатки({(&НаДату)}, Счет В (&Счет), ЗНАЧЕНИЕ(ПланВидовХарактеристик.ВидыСубконто.ОсновныеСредства), {(Организация).*, (ВЫРАЗИТЬ(Субконто1 КАК Справочник.ОсновныеСредства)) КАК ОсновноеСредство, (Субконто1) КАК ОсновноеСредствоДоп, (ЕСТЬNULL(ВЫБОР
КОГДА &ИспользоватьУчетПоПодразделениям
ТОГДА Подразделение
ИНАЧЕ NULL
КОНЕЦ, ЗНАЧЕНИЕ(Справочник.Подразделения.ПустаяСсылка))).* КАК Подразделение}) КАК ЖурналПроводокЕПСБУОстатки
ПО ОстаткиОС.ОсновноеСредство = ЖурналПроводокЕПСБУОстатки.Субконто1
ПоказатьПередал параметры:
множестваннныйвыбор, и параметры объекта,
в самой форме при создании это:
&НаСервере
Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)
//СтандартнаяОбработка = Ложь;
ЭтаФорма.Элементы.Список.РежимВыбора = Истина;
Список.Параметры.УстановитьЗначениеПараметра("НаДату", ТекущаяДата());
Список.Параметры.УстановитьЗначениеПараметра("Счет", Параметры.Счет);
Список.Параметры.УстановитьЗначениеПараметра("ИспользоватьУчетПоПодразделениям",Ложь);
Список.Параметры.УстановитьЗначениеПараметра("ВидРаспоряжения", Перечисления.ВидыРаспоряженияОС.НаБалансе);
Если ЗначениеЗаполнено(Параметры.ЦМО) Тогда
Список.Параметры.УстановитьЗначениеПараметра("ЦМО", Параметры.ЦМО);
КонецЕсли;
КонецПроцедуры
Показать
Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот