Привет Уважаемые.Делаю обработку прайс-лист для ТИС.
Столкнулся с проблемой.У одного товара есть заполненные Реквизиты: Цвет, Тип, Алк, Ёмкость и КолВоВупаковке.Забил их чисто для тестирования
обработки.А сама проблема в том, что это реквизиты в печатной форме подставляются на всю Группу (ТоргМарка), хотя в карточке других товаров в этой группе они не заполнены.Где копать?
Сам код:
Процедура Сформировать()
Перем Запрос, ТекстЗапроса, Таб;
Если ПустоеЗначение(ВыбКатегорияЦены) = 1 Тогда
Сообщить("Не выбрана категория цены!!!","!!!");
возврат;
КонецЕсли;
//Создание объекта типа Запрос
Запрос = СоздатьОбъект("Запрос");
ТекстЗапроса =
"//{{ЗАПРОС(ЗапросПоСправочнику)
|Товар = Справочник.Номенклатура.ТекущийЭлемент;
|Код = Справочник.Номенклатура.Код;
|Цвет = Справочник.Номенклатура.ЦветВПрайс;
|Тип = Справочник.Номенклатура.ТипВПрайс;
|Алк = Справочник.Номенклатура.АлкВПрайс;
|Ёмкость = Справочник.Номенклатура.ЁмкВПрайс;
|КоличествоВУпаковке = Справочник.Номенклатура.КолВоВПрайс;
|Родитель = Справочник.Номенклатура.Родитель;
|Группировка Родитель Упорядочить по Родитель.Сортировка;
|Группировка Товар Упорядочить по Товар.Сортировка без Групп;
|"+?(ПустоеЗначение(МФВыбТовары)=1,"","Условие(Товар в МФВыбТовары);")+"
|"//}}ЗАПРОС
;
// Если ошибка в запросе, то выход из процедуры
Если Запрос.Выполнить(ТекстЗапроса) = 0 Тогда
Возврат;
КонецЕсли;
Таб = СоздатьОбъект("Таблица");
СП = СоздатьОбъект("СписокЗначений");
Таб.ИсходнаяТаблица("Сформировать");
Таб.ВывестиСекцию("Шапка");
Таб.ВывестиСекцию("Заголовок");
Пока Запрос.Группировка(1) = 1 Цикл
Если Запрос.Родитель.НеВыводитьВПрайс = 1 Тогда
Продолжить;
КонецЕсли;
Если Запрос.Родитель.Уровень() = 2 Тогда
Таб.ВывестиСекцию("ВидТовара");
ИначеЕсли Запрос.Родитель.Уровень() = 3 Тогда
Таб.ВывестиСекцию("ТоргМарка");
Пока Запрос.Группировка(2) = 1 Цикл
СП.ДобавитьЗначение(Запрос.Товар);
КонецЦикла;
КонецЕсли;
Если Сп.РазмерСписка() = 0 Тогда
Продолжить;
КонецЕсли;
Список = СП.РазмерСписка();
Для н=1 По Список Цикл
Наименование = СП.ПолучитьЗначение(н);
ЦенаЦены = глВернутьЦену(Сп.получитьЗначение(н), ВыбКатегорияЦены);
Если ПустоеЗначение(ЦенаЦены) = 0 Тогда
Цена = ЦенаЦены.Цена.получить(РабочаяДата());
Иначе
Цена = "";
КонецЕсли;
Если Инд = 1 Тогда
ЦенаИнд = Число(Наименование.Идентикатив.Получить(РабочаяДата()));
Если (ЦенаИнд > Число(Цена)) Тогда
Цена = ЦенаИнд;
КонецЕсли;
КонецЕсли;
Таб.ВывестиСекцию("Товар");
КонецЦикла;
СП.УдалитьВсе();
КонецЦикла;