Изменение реквезита табличной части

1. dastitfa 02.04.13 12:03 Сейчас в теме
Пытаюсь перенести документ перемещение из одной конфигурации в другую в документ оприходование. В документе перемещения есть цена, но мне нужно, что бы цена бралась не из документа перемещение, а из установки цен номенклатуры. Запрос я написал, который нужно значение возвращает, но не могу его записать, пробовал записать в ПГКС в события перед выгрузкой/при выгрузке следующий код
ОбъектКоллекции.цена=3;

Но возникает ошибка в обработчике события ПриВыгрузке (объекта коллекции)
3 поставлено для простоты, в дальнейшем будет использован запрос для получения цены.
Ошибка при выгрузке данных: {Обработка.УниверсальныйОбменДаннымиXML.МодульОбъекта(7996)}: Ошибка в обработчике события ПриВыгрузке (объекта коллекции)

Как это исправить?
По теме из базы знаний
Ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. Rulllan 4 03.04.13 07:30 Сейчас в теме
Я запрос записал в ПКО перед выгрузкой: значение=3.
3. Acort 03.04.13 11:58 Сейчас в теме
Можно в ПКГС определить "КоллекциюОбъектов". Будет удобно - одним запросом получим и ТЧ перемещения и цену.
4. dastitfa 04.04.13 19:51 Сейчас в теме
Таки да, определил коллекцию объектов в ПКГС получился такой код и вполне себе нормально перенеслось.
Табл = Источник.Состав;
КоллекцияОбъектов =Новый ТаблицаЗначений;
КоллекцияОбъектов.Колонки.Добавить().Имя="ЕдиницаИзмерения";
КоллекцияОбъектов.Колонки.Добавить().Имя="Количество";
КоллекцияОбъектов.Колонки.Добавить().Имя="Номенклатура";
КоллекцияОбъектов.Колонки.Добавить().Имя="Коэффициент";
КоллекцияОбъектов.Колонки.Добавить().Имя="Цена";
КоллекцияОбъектов.Колонки.Добавить().Имя="Сумма";
КоллекцияОбъектов.Колонки.Добавить().Имя="ЦенаПродажи";
КоллекцияОбъектов.Колонки.Добавить().Имя="СуммаПродажи";
Для Каждого Строка Из Табл Цикл
НовСтрока = КоллекцияОбъектов.Добавить();
НовСтрока.ЕдиницаИзмерения = Строка.ЕдиницаИзмерения;
НовСтрока.Количество = Строка.Количество;
НовСтрока.Номенклатура = Строка.Товар;

Запрос=Новый Запрос; //Возвращает цену товара из документов установка цен номенклатуры
Запрос.Текст="ВЫБРАТЬ
| УстановкаЦенНоменклатуры.Состав.(
| Товар,
| Цена
| )
|ИЗ
| Документ.УстановкаЦенНоменклатуры КАК УстановкаЦенНоменклатуры
|ГДЕ
| УстановкаЦенНоменклатуры.Состав.Товар= &Товар
| И УстановкаЦенНоменклатуры.Дата <= &ДатаДокумента
| И УстановкаЦенНоменклатуры.Проведен = ИСТИНА
|
|УПОРЯДОЧИТЬ ПО
| УстановкаЦенНоменклатуры.Дата УБЫВ" ;
Запрос.УстановитьПараметр("Товар", Строка.Товар);
Запрос.УстановитьПараметр("ДатаДокумента",Источник.Дата);
Выборка=Запрос.Выполнить().Выгрузить();
Попытка
Цена=Выборка[0][0][0][1];
Исключение Цена= 0;
КонецПопытки;


НовСтрока.Коэффициент=Строка.ЕдиницаИзмерения.Коэффициент;
НовСтрока.Цена = Цена;
НовСтрока.Сумма = Цена*Строка.Количество;
НовСтрока.ЦенаПродажи = Цена;
НовСтрока.СуммаПродажи= Цена*Строка.Количество;
КонецЦикла;
5. kivals 5 17.05.13 15:55 Сейчас в теме
О Господи, какой ужас!
Для каждой строки документа вызывается запрос(!), который выбирает все установки цен без разбора(!!) (без проверки вида цен).
ИМХО верным и элегантным решением было бы (как предложил выше Acort) сделать все одним запросом, в котором соединить таблицу товаров и регистр сведений ЦеныНоменклатуры (т.к. Установка цен пишет в него) и выгрузить результат сразу в КоллекциюОбъектов
6. dastitfa 28.05.13 11:06 Сейчас в теме
Исходная конфа называется Палтусов:ресторан и там просто нет ни вида цен, не регистра сведений цены.
Оставьте свое сообщение

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