Добрый вечер, почему то выходит ошибка: Итератор для значения не определен
Понял что с типами где то ошибку допустил, понять не могу где(
Для Каждого Товар Из ТаблицыПоСНО[СНО] Цикл
Понял что с типами где то ошибку допустил, понять не могу где(
Процедура РазделитьСно_Сервер()
МВТ = Новый МенеджерВременныхТаблиц;
Запрос = Новый Запрос;
Запрос.МенеджерВременныхТаблиц = МВТ;
Запрос.Текст =
"ВЫБРАТЬ
| РеализацияТоваровУслугТовары.Номенклатура КАК Номенклатура,
| РеализацияТоваровУслугТовары.Количество КАК Количество,
| РеализацияТоваровУслугТовары.Цена КАК Цена
|ПОМЕСТИТЬ ВТ_Товары
|ИЗ
| Документ.РеализацияТоваровУслуг.Товары КАК РеализацияТоваровУслугТовары";
РезультатЗапроса = Запрос.Выполнить();
Запрос = Новый Запрос;
Запрос.МенеджерВременныхТаблиц = МВТ;
Запрос.Текст =
"ВЫБРАТЬ
| Товары.Номенклатура КАК Товар,
| Товары.Цена КАК Цена,
| Товары.Количество КАК Количество,
| СНОПоТоварам.СНО КАК СНО
|ИЗ
| ВТ_Товары КАК Товары
| ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.СНОПоТоварам КАК СНОПоТоварам
| ПО Товары.Номенклатура = СНОПоТоварам.Номенклатура";
Результат = Запрос.Выполнить().Выбрать();
ТаблицыПоСНО = Новый Соответствие;
Пока Результат.Следующий() Цикл
Если ТаблицыПоСНО.Получить(Результат.СНО) = Неопределено Тогда
ТаблицыПоСНО.Вставить(Результат.СНО, Новый ТаблицаЗначений);
ТаблицыПоСНО[Результат.СНО].Колонки.Добавить("Номенклатура");
ТаблицыПоСНО[Результат.СНО].Колонки.Добавить("Количество");
ТаблицыПоСНО[Результат.СНО].Колонки.Добавить("Цена");
КонецЕсли;
НоваяСтрока = ТаблицыПоСНО[Результат.СНО].Добавить();
НоваяСтрока.Номенклатура = Результат.Товар;
НоваяСтрока.Количество = Результат.Количество;
НоваяСтрока.Цена = Результат.Цена;
КонецЦикла;
Для Каждого СНО Из ТаблицыПоСНО Цикл
НовыйДокумент = Документы.РеализацияТоваровУслуг.СоздатьДокумент();
Для Каждого Товар Из ТаблицыПоСНО[СНО] Цикл
НоваяСтрока = НовыйДокумент.Товары.Добавить();
НоваяСтрока.Номенклатура = Товар.Номенклатура;
НоваяСтрока.Количество = Товар.Количество;
НоваяСтрока.Цена = Товар.Цена;
КонецЦикла;
НовыйДокумент.НалогообложениеНДС = СНО;
НовыйДокумент.Записать();
КонецЦикла;
КонецПроцедуры
ПоказатьПо теме из базы знаний
- Сохранение (чтение) настроек внешней обработки в файл (управляемые формы)
- XDTO на службе у лентяев. Самый простой способ чтения xml
- Устранение ошибки "Итератор для значения не определен" в релизах БП 3.0.43.194 и ЗУП 3.0.25.101
- Выгрузка УПД из документа "Счет-фактура выданный" в формате xml для загрузки в Диадок
- Исправление ошибок в регламентированном отчете "Расчет по страховым взносам" (РСВ) за 2023 год в УПП, релиз 1.3.202.1. Доработка напильником
Найденные решения
Остальные ответы
Подписаться на ответы
Инфостарт бот
Сортировка:
Древо развёрнутое
Свернуть все
(3) Человек учится... Ясен пень, что здесь один запрос нужен с одной итоговой группировкой, и обход результата по группировкам.
Но и такой опыт полезен - работа с соответствиями.
С запросами он конечно пипец начудил - результат его удивит, когда именно этот алгоритм заработает.
Но это тоже познавательный урок будет.
Но и такой опыт полезен - работа с соответствиями.
С запросами он конечно пипец начудил - результат его удивит, когда именно этот алгоритм заработает.
Но это тоже познавательный урок будет.
Ну вот ты и добрался до этой ошибки, как я и обещал.
Ты ждешь, что СНО у тебя это ссылка, а это не Ссылка. Это КлючИЗначение.
Почитай что является элементом коллекции Соответствие.
Ты ждешь, что СНО у тебя это ссылка, а это не Ссылка. Это КлючИЗначение.
Для Каждого СНО Из ТаблицыПоСНО Цикл
(2) Спасибо, исправил этот момент)
Но насколько я понял, мой запрос берёт тч из всех документов реализации? Пытался делать выгрузкой, он просит временную таблицу, сейчас думаю делать без ВТ, а просто из документа с условием где ссылка объекта = ссылке документа, хотя бы верно думаю?
Для Каждого СНО Из ТаблицыПоСНО Цикл
НовыйДокумент = Документы.РеализацияТоваровУслуг.СоздатьДокумент();
Для Каждого Товар Из СНО.Значение Цикл
НоваяСтрока = НовыйДокумент.Товары.Добавить();
НоваяСтрока.Номенклатура = Товар.Номенклатура;
НоваяСтрока.Количество = Товар.Количество;
НоваяСтрока.Цена = Товар.Цена;
КонецЦикла;
НовыйДокумент.Дата = ТекущаяДата();
НовыйДокумент.НалогообложениеНДС = СНО;
НовыйДокумент.Записать();
КонецЦикла;
ПоказатьНо насколько я понял, мой запрос берёт тч из всех документов реализации? Пытался делать выгрузкой, он просит временную таблицу, сейчас думаю делать без ВТ, а просто из документа с условием где ссылка объекта = ссылке документа, хотя бы верно думаю?
(7) Можете пожалуйста подсказать? Как получить ссылку на текущий открытый документ, который не записан ещё, точнее на его ТЧ?
ЭтотОбъект.Ссылка, Объект.Ссылка, Объект.Товары.Ссылка пробовал, не хочет
работать
Просто я ставлю условие, что Док.Товары.Ссылка = &Ссылка, а вот что в параметр передать не получается
Пробовал Док.Ссылка, но вроде бы правильно брать именно Док.Товары.Сссылка
ЭтотОбъект.Ссылка, Объект.Ссылка, Объект.Товары.Ссылка пробовал, не хочет
работать
Просто я ставлю условие, что Док.Товары.Ссылка = &Ссылка, а вот что в параметр передать не получается
Пробовал Док.Ссылка, но вроде бы правильно брать именно Док.Товары.Сссылка
(8)
Если документ не записан в БД - то что ты хочешь оттуда получить запросом? Там его нет.
Как получить ссылку на текущий открытый документ, который не записан ещё, точнее на его ТЧ?
Ссылка - это идентификатор объекта в БД.
Если документ не записан в БД - то что ты хочешь оттуда получить запросом? Там его нет.
но вроде бы правильно брать именно Док.Товары.Сссылка
Неправильно. У табличной части не существует ссылки.
Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот