И снова доработка типового отчета

Внимание! Данный форум является модерируемым.
Для получения к нему доступа необходимо зарегистрироваться или авторизоваться на сайте.

Страницы: 1
RSS
И снова доработка типового отчета, Отчет "Остатки и обороты партий товаров"
 
Пытаюсь доработать типовой отчет "Остатки и обороты партий товаров" (Альфа-авто:ААА релиз 4.1.01.15, 8.1). Нужно добавить колонку с применяемостью номенклатуры. А именно (согласно вашим рекомендациям):

1. Добавил соединение с регистром НоменклатураПрименяемость :
Код
#Область КонечныеОстаткиТоваров
ВЫБРАТЬ 
       Остатки.Партия КАК Партия,
       Остатки.СтатусПартии КАК СтатусПартии,
       Остатки.СкладКомпании КАК СкладКомпании,
                Остатки.СкладКомпании.Организация КАК Организация,
      Остатки.СкладКомпании.Подразделение КАК Подразделение,
      Остатки.Номенклатура КАК Номенклатура,
      Остатки.ХарактеристикаНоменклатуры КАК ХарактеристикаНоменклатуры,
      Остатки.КоличествоОстаток КАК КоличествоКонечныйОстаток, 
      Остатки.СуммаОстаток КАК СуммаКонечныйОстаток,
      Остатки.СуммаУпрОстаток КАК СуммаУпрКонечныйОстаток,
      Остатки.СуммаНДСОстаток КАК СуммаНДСКонечныйОстаток,
      НоменклатураПрименяемость.Модель КАК Модель
ИЗ РегистрНакопления.ПартииТоваровКомпании.Остатки(&ДатаКонДляОстатка,{
   СкладКомпании.* КАК СкладКомпании,
   СкладКомпании.Организация.* КАК Организация,
   СкладКомпании.Подразделение.* КАК Подразделение,
   Номенклатура.* КАК Номенклатура,
   ХарактеристикаНоменклатуры.* КАК ХарактеристикаНоменклатуры,
   СтатусПартии.* КАК СтатусПартии,
   Партия.* КАК Партия}) КАК Остатки
ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.НоменклатураПрименяемость КАК НоменклатураПрименяемость
   ПО   НоменклатураПрименяемость.Номенклатура = Остатки.Номенклатура
#КонецОбласти


2. В модуль отчета в конце процедуры ЗаполнитьНачальныеНастройки() добавил строчку:
Код
отДобавитьСтруктуруНеСвязанныхПоказателей(ЭтотОбъект, Истина, "Номенклатура", "Модель", "Модель", Новый ОписаниеТипов("Строка"));


Нужная информация выводится (!!!), но только одно из значений регистра НоменклатураПрименяемость (только по одной модели на каждый товар, а моделей на самом деле несколько). Посоветуйте, порекомендуйте как правильно доработать отчет, чтоб напротив номенклатуры выводилась не одна модель, а несколько (возможно строкой через запятую)
 
Цитата
sergey seliverstov пишет:
чтоб напротив номенклатуры выводилась не одна модель, а несколько (возможно строкой через запятую)
Добрый день.
У построителя отчетов нет агрегатных функций, которые смогут реализовать Вашу задумку.
Подобная агрегатная функция появилась в языке выражений системы компоновки данных начиная с платформы 8.2.14..., называется Строка().
 
Цитата
Виктор Радько пишет:
Подобная агрегатная функция появилась в языке выражений системы компоновки данных начиная с платформы 8.2.14..., называется Строка().

Это понятно. Я написал как пример, пусть не строкой с разделителями, пусть через отдельную группировку (или ещё как, без разницы). Всё же возможно доработать или "изобретать велосипед" через СКД ?
 
Группировкой возможно.
В макете Параметры в область Измерения пропишите Модель с её доп. полями.
Запрос, проще показать, чем объяснить:
Код
ВЫБРАТЬ 
      Остатки.Партия КАК Партия,
      Остатки.СтатусПартии КАК СтатусПартии,
      Остатки.СкладКомпании КАК СкладКомпании,
      Остатки.СкладКомпании.Организация КАК Организация,
      Остатки.СкладКомпании.Подразделение КАК Подразделение,
      Остатки.Номенклатура КАК Номенклатура,
      Остатки.ХарактеристикаНоменклатуры КАК ХарактеристикаНоменклатуры,
      МАКСИМУМ(Остатки.КоличествоОстаток) КАК КоличествоКонечныйОстаток, 
      МАКСИМУМ(Остатки.СуммаОстаток) КАК СуммаКонечныйОстаток,
      МАКСИМУМ(Остатки.СуммаУпрОстаток) КАК СуммаУпрКонечныйОстаток,
      МАКСИМУМ(Остатки.СуммаНДСОстаток) КАК СуммаНДСКонечныйОстаток,
      МАКСИМУМ(ЕСТЬNULL(НоменклатураПрименяемость.Модель, ЗНАЧЕНИЕ(Справочник.Модели.ПустаяСсылка))) КАК Модель
{ВЫБРАТЬ 
      Партия КАК Партия,
      СтатусПартии КАК СтатусПартии,
      СкладКомпании КАК СкладКомпании,
      Организация КАК Организация,
      Подразделение КАК Подразделение,
      Номенклатура КАК Номенклатура,
      ХарактеристикаНоменклатуры КАК ХарактеристикаНоменклатуры,
      КоличествоКонечныйОстаток КАК КоличествоКонечныйОстаток, 
      СуммаКонечныйОстаток КАК СуммаКонечныйОстаток,
      СуммаУпрКонечныйОстаток КАК СуммаУпрКонечныйОстаток,
      СуммаНДСКонечныйОстаток КАК СуммаНДСКонечныйОстаток,
      Модель КАК Модель
}
ИЗ РегистрНакопления.ПартииТоваровКомпании.Остатки(&ДатаКонДляОстатка,{
   СкладКомпании.* КАК СкладКомпании,
   СкладКомпании.Организация.* КАК Организация,
   СкладКомпании.Подразделение.* КАК Подразделение,
   Номенклатура.* КАК Номенклатура,
   ХарактеристикаНоменклатуры.* КАК ХарактеристикаНоменклатуры,
   СтатусПартии.* КАК СтатусПартии,
   Партия.* КАК Партия}) КАК Остатки
ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.НоменклатураПрименяемость КАК НоменклатураПрименяемость
   ПО   НоменклатураПрименяемость.Номенклатура = Остатки.Номенклатура
{ГДЕ
   (ЕСТЬNULL(НоменклатураПрименяемость.Модель, ЗНАЧЕНИЕ(Справочник.Модели.ПустаяСсылка))).* КАК Модель
}
СГРУППИРОВАТЬ ПО
      Остатки.Партия,
      Остатки.СтатусПартии,
      Остатки.СкладКомпании,
      Остатки.Номенклатура,
      Остатки.ХарактеристикаНоменклатуры,
      Остатки.КоличествоОстаток, 
      Остатки.СуммаОстаток,
      Остатки.СуммаУпрОстаток,
      Остатки.СуммаНДСОстаток
      
ОБЪЕДИНИТЬ ВСЕ

ВЫБРАТЬ 
      Остатки.Партия КАК Партия,
      Остатки.СтатусПартии КАК СтатусПартии,
      Остатки.СкладКомпании КАК СкладКомпании,
      Остатки.СкладКомпании.Организация КАК Организация,
      Остатки.СкладКомпании.Подразделение КАК Подразделение,
      Остатки.Номенклатура КАК Номенклатура,
      Остатки.ХарактеристикаНоменклатуры КАК ХарактеристикаНоменклатуры,
      0 КАК КоличествоКонечныйОстаток, 
      0 КАК СуммаКонечныйОстаток,
      0 КАК СуммаУпрКонечныйОстаток,
      0 КАК СуммаНДСКонечныйОстаток,
      НоменклатураПрименяемость.Модель КАК Модель
{ВЫБРАТЬ 
      Партия КАК Партия,
      СтатусПартии КАК СтатусПартии,
      СкладКомпании КАК СкладКомпании,
      Организация КАК Организация,
      Подразделение КАК Подразделение,
      Номенклатура КАК Номенклатура,
      ХарактеристикаНоменклатуры КАК ХарактеристикаНоменклатуры,
      КоличествоКонечныйОстаток КАК КоличествоКонечныйОстаток, 
      СуммаКонечныйОстаток КАК СуммаКонечныйОстаток,
      СуммаУпрКонечныйОстаток КАК СуммаУпрКонечныйОстаток,
      СуммаНДСКонечныйОстаток КАК СуммаНДСКонечныйОстаток,
      Модель КАК Модель
}
ИЗ
   РегистрНакопления.ПартииТоваровКомпании.Остатки(&ДатаКонДляОстатка,{
      СкладКомпании.* КАК СкладКомпании,
      СкладКомпании.Организация.* КАК Организация,
      СкладКомпании.Подразделение.* КАК Подразделение,
      Номенклатура.* КАК Номенклатура,
      ХарактеристикаНоменклатуры.* КАК ХарактеристикаНоменклатуры,
      СтатусПартии.* КАК СтатусПартии,
      Партия.* КАК Партия}) КАК Остатки
ВНУТРЕННЕЕ СОЕДИНЕНИЕ
   РегистрСведений.НоменклатураПрименяемость КАК НоменклатураПрименяемость
ПО
   НоменклатураПрименяемость.Номенклатура = Остатки.Номенклатура
ГДЕ
   Остатки.КоличествоОстаток > 0 
{ГДЕ
   НоменклатураПрименяемость.Модель.* КАК Модель
}


Если оставить старый запрос, то получим увеличение показателей на число моделей.
Страницы: 1
Читают тему
Поддержка отраслевых решений «1С-Рарус»
Услуги 1С