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

Ошибка при заполнении ТЗ

Автор Инокентий, 03 дек 2022, 12:01

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

Инокентий

Всем привет! При попытке заполнения табличной части в запросе возникает ошибка {Документ.ВыпускПродукции.Форма.ФормаДокумента.Форма(25)}: Ошибка при вызове метода контекста (Выполнить)
Результат = Запрос.Выполнить();
по причине:
{(11, 26)}: Неверные параметры
Спецификация.Владелец В(<<?>>&Массив)
Функция ЛогикаЗаполненияТабличнойЧасти ()
ТабЗ = Объект.производство.выгрузить();
ТабЗ.Свернуть("Номенклатура", "Количество");
МассивПроизводства = ПреобразоватьТаблицуЗначенийВМассив(ТабЗ);
Запрос = Новый Запрос(
"ВЫБРАТЬ
| Спецификация.Владелец КАК Владелец,
| Спецификация.Ингридиенты.(
| Номенклатура,
| Количество
| ),
| Спецификация.НаСколькоШтук КАК НаСколькоШтук
|ИЗ
| Справочник.Спецификация КАК Спецификация
|ГДЕ
| Спецификация.Владелец В(&Массив)" );
Запрос.УстановитьПараметр("Массив", МассивПроизводства);
Результат = Запрос.Выполнить();
ТЗРасходов =  Результат.Выгрузить();
Счетчик = 0;
Для каждого Стр из ТЗРасходов Цикл
КоличествоСписания =0;
Если ТабЗ[Счетчик].Количество % Стр.НаСколькоШтук <> 0 Тогда
КоличествоСписания = Стр.НаСколькоШтук*Цел(ТабЗ[Счетчик].Количество/Стр.НаСколькоШтук);
Иначе
КоличествоСписания =  ТабЗ[Счетчик].Количество;
КонецЕсли;
ОбъектДок = Документы.ВыпускПродукции.ПолучитьСсылку();
НоваяСтрока = Объектдок.РасходыМатериалов.Добавить();
НоваяСтрока.Владелец  = Стр.Владелец;
НоваяСтрока.Номенклатура  = Стр.Ингридиенты.Номенклатура;
НоваяСтрока.Количество  = КоличествоСписания;
ОбъектДок.Записать();
Счетчик = Счетчик +1;
КонецЦикла;

КонецФункции
В чем может быть проблема?

Lana_1C

Цитата: Инокентий от 03 дек 2022, 12:01{(11, 26)}: Неверные параметры
Спецификация.Владелец В(<<?>>&Массив)

    ТабЗ = Объект.производство.выгрузить();
    ТабЗ.Свернуть("Номенклатура", "Количество");
    МассивПроизводства = ПреобразоватьТаблицуЗначенийВМассив(ТабЗ);   
   
    Запрос.УстановитьПараметр("Массив", МассивПроизводства);


ПреобразоватьТаблицуЗначенийВМассив(ТабЗ)

Возвращает не массив из номенклатуры, а массив структур (либо массив строк)

Можно попробовать ТабЗ.ВыгрузитьКолонку("Номенклатура"), либо другие способы

Теги:

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

Рейтинг@Mail.ru

Поиск