Дизайн. Цены и продажи в УТ как в УНФ

Клиент захотел в карточке номенклатуры в УТ11 видеть цены и продажи как в УНФ.

Цены хотят разноцветные и с выводом по вертикали, как в УНФ:

Хотят видеть динамику продаж товара, как в УНФ:

Изначально цены выводились в строку:

Превратил поля ввода в надписи, добавил цвета, изменил ориентацию групп, в итоге цены стали выводиться так:

Для этого в расширении сделал такие элементы управления:

Сделал и диаграмму:

Для этого разместил элемент управления диаграммы:

Правда, пришлось немного поколдовать в запросе, чтобы выводились все периоды, даже те, по которым не было продаж. И сначала я не указал порядок, поэтому столбцы выводились хаотично.

Итоговый код заполнения диаграммы:

&НаСервере
функция ЗаполнитьДиаграмму()

   
Запрос = Новый Запрос;
   
Запрос.Текст =
   
«ВЫБРАТЬ
    |   ВыручкаИСебестоимостьПродажОбороты.КоличествоОборот КАК продано,
    |   ВыручкаИСебестоимостьПродажОбороты.Период КАК ДатаПериода,
    |   0 КАК Остаток
    |ПОМЕСТИТЬ Первая
    |ИЗ
    |   РегистрНакопления.ВыручкаИСебестоимостьПродаж.Обороты(&ДатаНач, &ДатаКон, МЕСЯЦ, АналитикаУчетаНоменклатуры.Номенклатура = &Номенклатура) КАК ВыручкаИСебестоимостьПродажОбороты
    |
    |ОБЪЕДИНИТЬ ВСЕ
    |
    |ВЫБРАТЬ
    |   0,
    |   ТоварыНаСкладахОстаткиИОбороты.Период,
    |   ТоварыНаСкладахОстаткиИОбороты.ВНаличииКонечныйОстаток
    |ИЗ
    |   РегистрНакопления.ТоварыНаСкладах.ОстаткиИОбороты(&ДатаНач, &ДатаКон, МЕСЯЦ, , Номенклатура = &Номенклатура) КАК ТоварыНаСкладахОстаткиИОбороты
    |;
    |
    |////////////////////////////////////////////////////////////////////////////////
    |ВЫБРАТЬ
    |   СУММА(Первая.продано) КАК продано,
    |   Первая.ДатаПериода КАК ДатаПериода,
    |   СУММА(Первая.Остаток) КАК Остаток
    |ИЗ
    |   Первая КАК Первая
    |
    |СГРУППИРОВАТЬ ПО
    |   Первая.ДатаПериода
    |
    |УПОРЯДОЧИТЬ ПО
    |   ДатаПериода
    |ИТОГИ
    |   СУММА(продано),
    |   СУММА(Остаток)
    |ПО
    |   ДатаПериода ПЕРИОДАМИ(МЕСЯЦ, &ДатаНач, &ДатаКон)»
;

   
Запрос.УстановитьПараметр(«ДатаНач», НачалоДня(дор_Дата1));
   
Запрос.УстановитьПараметр(«ДатаКон», КонецДня(?(ЗначениеЗаполнено(дор_Дата2), дор_дата2, ТекущаяДата())));
   
Запрос.УстановитьПараметр(«Номенклатура», объект.Ссылка);

   
Результат = Запрос.Выполнить();

   
Диаграмма=продажи;

   
Диаграмма.ТипДиаграммы = ТипДиаграммы.Гистограмма;

   
Диаграмма.Обновление = Ложь;
   
Диаграмма.Очистить();
   
Диаграмма.АвтоТранспонирование = Ложь;

   
Серия = Диаграмма.Серии.Добавить();
   
Серия.Текст=«Продажи»;

   
ВыборкаДатаПериода=Результат.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам, «ДатаПериода», «Все»);

    Пока
ВыборкаДатаПериода.Следующий() Цикл
       
Точка = Диаграмма.УстановитьТочку(Формат(ВыборкаДатаПериода.ДатаПериода,    «ДФ=MMMM.yy»));

       
Диаграмма.УстановитьЗначение(Точка, Серия, ВыборкаДатаПериода.продано, );
    КонецЦикла;

   
Диаграмма.Обновление = Истина;
   
Диаграмма.ОтображатьЛегенду=Ложь;

КонецФункции

Время факт: 1 час.

fixin

Программирую на 1С с 1999 года. В 1С просто Гений. В 2020 году ушел из офиса на вольные хлеба фриланса. Принимаю заказы.

Читайте также:

комментария 4

  1. naf2000:

    Когда новый вид цен появится, придется опять дорабатывать?

Добавить комментарий для fixin Отменить ответ

Ваш адрес email не будет опубликован.