Дизайн. Цены и продажи в УТ как в УНФ
Клиент захотел в карточке номенклатуры в УТ11 видеть цены и продажи как в УНФ.
Цены хотят разноцветные и с выводом по вертикали, как в УНФ:
Хотят видеть динамику продаж товара, как в УНФ:
Изначально цены выводились в строку:
Превратил поля ввода в надписи, добавил цвета, изменил ориентацию групп, в итоге цены стали выводиться так:
Для этого в расширении сделал такие элементы управления:
Сделал и диаграмму:
Для этого разместил элемент управления диаграммы:
Правда, пришлось немного поколдовать в запросе, чтобы выводились все периоды, даже те, по которым не было продаж. И сначала я не указал порядок, поэтому столбцы выводились хаотично.
Итоговый код заполнения диаграммы:
&НаСервере
функция ЗаполнитьДиаграмму()
Запрос = Новый Запрос;
Запрос.Текст =
«ВЫБРАТЬ
| ВыручкаИСебестоимостьПродажОбороты.КоличествоОборот КАК продано,
| ВыручкаИСебестоимостьПродажОбороты.Период КАК ДатаПериода,
| 0 КАК Остаток
|ПОМЕСТИТЬ Первая
|ИЗ
| РегистрНакопления.ВыручкаИСебестоимостьПродаж.Обороты(&ДатаНач, &ДатаКон, МЕСЯЦ, АналитикаУчетаНоменклатуры.Номенклатура = &Номенклатура) КАК ВыручкаИСебестоимостьПродажОбороты
|
|ОБЪЕДИНИТЬ ВСЕ
|
|ВЫБРАТЬ
| 0,
| ТоварыНаСкладахОстаткиИОбороты.Период,
| ТоварыНаСкладахОстаткиИОбороты.ВНаличииКонечныйОстаток
|ИЗ
| РегистрНакопления.ТоварыНаСкладах.ОстаткиИОбороты(&ДатаНач, &ДатаКон, МЕСЯЦ, , Номенклатура = &Номенклатура) КАК ТоварыНаСкладахОстаткиИОбороты
|;
|
|////////////////////////////////////////////////////////////////////////////////
|ВЫБРАТЬ
| СУММА(Первая.продано) КАК продано,
| Первая.ДатаПериода КАК ДатаПериода,
| СУММА(Первая.Остаток) КАК Остаток
|ИЗ
| Первая КАК Первая
|
|СГРУППИРОВАТЬ ПО
| Первая.ДатаПериода
|
|УПОРЯДОЧИТЬ ПО
| ДатаПериода
|ИТОГИ
| СУММА(продано),
| СУММА(Остаток)
|ПО
| ДатаПериода ПЕРИОДАМИ(МЕСЯЦ, &ДатаНач, &ДатаКон)»;
Запрос.УстановитьПараметр(«ДатаНач», НачалоДня(дор_Дата1));
Запрос.УстановитьПараметр(«ДатаКон», КонецДня(?(ЗначениеЗаполнено(дор_Дата2), дор_дата2, ТекущаяДата())));
Запрос.УстановитьПараметр(«Номенклатура», объект.Ссылка);
Результат = Запрос.Выполнить();
Диаграмма=продажи;
Диаграмма.ТипДиаграммы = ТипДиаграммы.Гистограмма;
Диаграмма.Обновление = Ложь;
Диаграмма.Очистить();
Диаграмма.АвтоТранспонирование = Ложь;
Серия = Диаграмма.Серии.Добавить();
Серия.Текст=«Продажи»;
ВыборкаДатаПериода=Результат.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам, «ДатаПериода», «Все»);
Пока ВыборкаДатаПериода.Следующий() Цикл
Точка = Диаграмма.УстановитьТочку(Формат(ВыборкаДатаПериода.ДатаПериода, «ДФ=MMMM.yy»));
Диаграмма.УстановитьЗначение(Точка, Серия, ВыборкаДатаПериода.продано, );
КонецЦикла;
Диаграмма.Обновление = Истина;
Диаграмма.ОтображатьЛегенду=Ложь;
КонецФункции
Время факт: 1 час.
Когда новый вид цен появится, придется опять дорабатывать?
нет, все виды цен отображаются в списке. Последняя закупочная — это не вид цены, это расчетный показатель.
Для этого в расширении сделал такие элементы управления
не понял, можно поподробнее?