Ошибка "Итератор значения не определен" при формировании подбора с множественным выбором

1. G_112708749323588293243 10.05.21 16:37 Сейчас в теме
Сформирвал подбор, в режиме 1С предприятия при выборе объекте номенклатуры для заполнения приходной накладной, для которой этот подбор формировался выскакивает ошибка

{Документ.ПриходнаяНакладная.Форма.ФормаДокумента.Форма(27)}: Итератор для значения не определен
Для Каждого ВыбранныйЭлемент Из ВыбранноеЗначение Цикл

&НаКлиенте
Процедура Подбор(Команда)
	ПараметрыФормы = Новый Структура("ЗакрыватьПриВыборе", Ложь); 
	ОткрытьФорму("Справочник.Номенклатура.ФормаВыбора", ПараметрыФормы, Элементы.Материалы);
КонецПроцедуры

&НаКлиенте
Процедура МатериалыОбработкаВыбора(Элемент, ВыбранноеЗначение, СтандартнаяОбработка)
		Для Каждого ВыбранныйЭлемент Из ВыбранноеЗначение Цикл
		НоваяСтрока = Объект.Материалы.Добавить();
		НоваяСтрока.Материал = ВыбранныйЭлемент;
КонецЦикла;;
КонецПроцедуры
Показать
Найденные решения
2. spacecraft 10.05.21 16:51 Сейчас в теме
(1) а где указано, что множественный выбор? Проверьте тип переменной ВыбранноеЗначение.
Остальные ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. spacecraft 10.05.21 16:51 Сейчас в теме
(1) а где указано, что множественный выбор? Проверьте тип переменной ВыбранноеЗначение.
3. G_112708749323588293243 10.05.21 16:59 Сейчас в теме
(2)
Проверьте тип переменной ВыбранноеЗначение.

спасибо за ответ, а как проверить тип переменной и изменить его если это надо, я просто новичок
4. spacecraft 10.05.21 17:05 Сейчас в теме
(3) ТипЗнч(ВыбранноеЗначение)

"ЗакрыватьПриВыборе" это не множественный выбор. Для множественного выбора нужно использовать соответствующий параметр:
МножественныйВыбор

ПараметрыФормы.Вставить("МножественныйВыбор", Истина);
5. G_112708749323588293243 10.05.21 17:07 Сейчас в теме
(4)
ать соответствующи

я заанимался по книге Радченко: Практическое пособие разработчике и там было так написано, попробую сейчас как вы сказали
6. spacecraft 10.05.21 17:25 Сейчас в теме
(5) если там был код как в (1), то это множественный подбор, а не множественный выбор. Это разные понятия. Множественный подбор, это когда из формы выбора можно много раз выбирать не закрывая форму выбора. А множественный выбор это когда можно сразу выделить несколько элементов и скопом их выбрать за один раз. Во втором случае как раз и передается в обработку выбора массив значений, который и можно обходить циклом Для Каждого.
G_112708749323588293243; +1 Ответить
7. VID1234 146 02.11.22 12:21 Сейчас в теме
(2)Здравствуйте. А что значит, если ВыбраноеЗначение имеет тип число?
8. spacecraft 02.11.22 12:42 Сейчас в теме
(7) значит возвращается число.
Возможно это номер (или идентификатор) строки.
9. VID1234 146 02.11.22 12:43 Сейчас в теме
(8)Да, это и есть номер строки, а как сделать чтобы возвращало значение строки?
10. spacecraft 02.11.22 12:45 Сейчас в теме
(9) предлагаете угадать, что и как у там сделано?
Для начала, нужно знать что открываете для выбора, как там реализовано.
11. VID1234 146 02.11.22 12:48 Сейчас в теме
(10) я в документе создал форму выбора с произвольным запросом:
ВЫБРАТЬ РАЗРЕШЕННЫЕ
	ОстаткиОС.Организация КАК Организация,
	ОстаткиОС.ОсновноеСредство КАК ОсновноеСредство,
	ОстаткиОС.ОсновноеСредство.Код КАК Код,
	ОстаткиОС.ОсновноеСредство.ГрупповойУчет КАК ГрупповойУчет,
	ОстаткиОС.ОсновноеСредство.ВидНФА КАК ВидНФА,
	ОстаткиОС.ОсновноеСредство.ИмуществоКазны КАК ИмуществоКазны,
	ОстаткиОС.ОсновноеСредство.Родитель КАК Родитель,
	ОстаткиОС.ЦМО КАК ЦМО,
	ОстаткиОС.ИнвентарныйНомер КАК ИнвентарныйНомер,
	ВЫБОР
		КОГДА &ИспользоватьУчетПоПодразделениям
				И ЖурналПроводокЕПСБУОстатки.Счет.УчетПоПодразделениям
			ТОГДА ОстаткиОС.Подразделение
		ИНАЧЕ ЗНАЧЕНИЕ(Справочник.Подразделения.ПустаяСсылка)
	КОНЕЦ КАК Подразделение,
	ЗНАЧЕНИЕ(Справочник.Контрагенты.ПустаяСсылка) КАК Контрагент,
	ЗНАЧЕНИЕ(Справочник.Договоры.ПустаяСсылка) КАК Договор,
	ОстаткиОС.СтоимостьОстаток КАК Сумма,
	ОстаткиОС.КоличествоОстаток КАК Количество,
	ОстаткиОС.СтоимостьОстаток / ВЫБОР
		КОГДА ОстаткиОС.КоличествоОстаток = 0
			ТОГДА 1
		ИНАЧЕ ОстаткиОС.КоличествоОстаток
	КОНЕЦ КАК Цена,
	ЖурналПроводокЕПСБУОстатки.Счет КАК СчетУчета,
	ЖурналПроводокЕПСБУОстатки.ИФО КАК ИФО,
	ЖурналПроводокЕПСБУОстатки.КПС КАК КПС,
	ЖурналПроводокЕПСБУОстатки.КФО КАК КФО,
	ВЫРАЗИТЬ(0 КАК ЧИСЛО(18, 2)) КАК СуммаАмортизации,
	ВЫРАЗИТЬ(0 КАК ЧИСЛО(18, 2)) КАК СуммаОбесценения
ИЗ
	РегистрНакопления.СтоимостьОбъектовОС.Остатки(
			{(&НаДату)},
			ВидРаспоряжения = &ВидРаспоряжения
				И ЦМО = &ЦМО {(Организация).*, (ОсновноеСредство).*, (ОсновноеСредство) КАК ОсновноеСредствоДоп, (ОсновноеСредство.ВидНФА) КАК ВидНФА, (ОсновноеСредство.ТипНФА) КАК ТипНФА, (Подразделение).*, (ЦМО).*, (ИнвентарныйНомер).*}) КАК ОстаткиОС
		ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрБухгалтерии.ЖурналПроводокЕПСБУ.Остатки({(&НаДату)}, Счет В (&Счет), ЗНАЧЕНИЕ(ПланВидовХарактеристик.ВидыСубконто.ОсновныеСредства), {(Организация).*, (ВЫРАЗИТЬ(Субконто1 КАК Справочник.ОсновныеСредства)) КАК ОсновноеСредство, (Субконто1) КАК ОсновноеСредствоДоп, (ЕСТЬNULL(ВЫБОР
				        КОГДА &ИспользоватьУчетПоПодразделениям
				            ТОГДА Подразделение
				        ИНАЧЕ NULL
				    КОНЕЦ, ЗНАЧЕНИЕ(Справочник.Подразделения.ПустаяСсылка))).* КАК Подразделение}) КАК ЖурналПроводокЕПСБУОстатки
		ПО ОстаткиОС.ОсновноеСредство = ЖурналПроводокЕПСБУОстатки.Субконто1
Показать

Передал параметры:
множестваннныйвыбор, и параметры объекта,
в самой форме при создании это:
&НаСервере
Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)
	
	//СтандартнаяОбработка = Ложь;
	ЭтаФорма.Элементы.Список.РежимВыбора = Истина;
    Список.Параметры.УстановитьЗначениеПараметра("НаДату", ТекущаяДата());
	Список.Параметры.УстановитьЗначениеПараметра("Счет", Параметры.Счет);
	Список.Параметры.УстановитьЗначениеПараметра("ИспользоватьУчетПоПодразделениям",Ложь);
	Список.Параметры.УстановитьЗначениеПараметра("ВидРаспоряжения", Перечисления.ВидыРаспоряженияОС.НаБалансе);
	Если ЗначениеЗаполнено(Параметры.ЦМО) Тогда
		Список.Параметры.УстановитьЗначениеПараметра("ЦМО", Параметры.ЦМО);
	КонецЕсли;
	
КонецПроцедуры
Показать
12. VID1234 146 02.11.22 12:50 Сейчас в теме
(11)Форма открывается, и проваливается в обработку выбора, но там номер строки (число) в выбранномЗначении
13. VID1234 146 02.11.22 12:51 Сейчас в теме
(11)Форма, выбора сделана в том же документе, в который нужно получить данные!
14. spacecraft 02.11.22 12:54 Сейчас в теме
(11) как понимаю это выбор из динамического списка без основной таблицы. Из него по умолчанию будет возвращаться число.
Как вариант, возвращать принудительно значения, обходя выделенные строки.
15. VID1234 146 02.11.22 12:56 Сейчас в теме
(14) Может нужно указать основную таблицу, а то я сейчас тоже посмотрел, там регистр бухгалтерии указан как основная таблица, хотя тянет он с регистра накопления! "Как вариант, возвращать принудительно значения, обходя выделенные строки." А это как?
16. VID1234 146 02.11.22 12:58 Сейчас в теме
(15)не замена таблицы не помогает, поменял, тоже число возвращает, только в массиве))
17. spacecraft 02.11.22 13:00 Сейчас в теме
(16) и не поможет. Основная таблица должна быть на ссылочные типы. Регистры такими не могут быть по определению.
18. spacecraft 02.11.22 13:02 Сейчас в теме
(15)
"Как вариант, возвращать принудительно значения, обходя выделенные строки." А это как?

Элементы.Список.ВыделенныеСтроки.
Обойти в цикле и получить нужные значения, которые можно сохранить, к примеру, в массиве и возвращать:
Закрыть(МассивЗначений);
19. VID1234 146 02.11.22 13:03 Сейчас в теме
(18)А это в какой процедуре делать ПриЗакрытии
? И в самой форме выбора, я так понимаю?
20. spacecraft 02.11.22 13:05 Сейчас в теме
(19) в форме выбора. Можно отключить кнопку выбора и добавить свою, в которой и получать значения и возвращать.
21. VID1234 146 02.11.22 13:05 Сейчас в теме
(20) Ок. Спасибо1 Попробую!
Оставьте свое сообщение

Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот