mirror of
https://github.com/netology-code/1c-homeworks.git
synced 2024-11-24 08:02:20 +02:00
579d717b70
Требование - dt-файл
5.1 KiB
5.1 KiB
Задание к занятию "Текстовые документы"
Задача 1 Создать команду печати прайс-листа в справочнике Номенклатура.
Описание задачи
Добавить возможность формирования прайс-листа в справочнике Номенклатура.
Требования к результату
Выгрузка информационной базы (.dt) с конфигурацией из предыдущих заданий, имеет возможность формировать прайс листа из формы списка номенклатуры.
Прайс формируется на основе выделенных строк в форме списка Номенклатура.
Цена номенклатуры определяется на текущую дату.
Можно выделить одну или несколько строк для формирования печатной формы.
Процесс выполнения
- Добавим общий макет "МакетПрайсЛист" с типом Текстовый документ.
Пример текста.
#Область ШапкаПрайса
#Поле ТекущаяДата
[ Дата]
#КонецОбласти
#Область ТабличнаяЧастьЗаголовок
---------------------------------
Товар | Цена, рублей
#КонецОбласти
#Область ТабличнаяЧастьСтрока
#Поле Номенклатура
#Формат "ЧЦ=12; ЧДЦ=2;ЧРД=."
#Забивать Истина
#Поле Цена
#Выравнивание Центр
---------------------------------
[Номенклатура ]|[Цена ]
-
В форму списка номенклатуры добавим команду "Прайс лист".
-
Для печати добавим на клиенте процедуру на клиенте.
&НаКлиенте
Процедура КомандаПрайсЛист(Команда)
//выделим несколько строк
ВыделенныеСтроки = Элементы.СписокРасширенныйПоискНоменклатура.ВыделенныеСтроки;
МассивСтрок = Новый Массив();
Для каждого НомерСтроки Из ВыделенныеСтроки Цикл
МассивСтрок.Добавить(Элементы.СписокРасширенныйПоискНоменклатура.ДанныеСтроки(НомерСтроки));
КонецЦикла;
//отправим выделенные строки номенклатуры на печать
ПечатнаяФорма = ПечатнаяФормуПрайсЛист(МассивСтрок);
ПечатнаяФорма.Показать("Прайс-лист");
КонецПроцедуры
- На сервере формируем печатную форму и возращаем на клиент для печати.
&НаСервере
Функция ПечатнаяФормуПрайсЛист(МассивСтрок)
ПечатнаяФорма = Новый ТекстовыйДокумент;
Макет = ПолучитьОбщийМакет("МакетПрайсЛист");
// Получаем область шапки и макета по имени
Шапка = Макет.ПолучитьОбласть("ШапкаПрайса");
// Заполняем параметр Дата
Шапка.Параметры.Дата = ТекущаяДата();
// Выводим область в документ
ПечатнаяФорма.Вывести(Шапка);
// Получаем область заголовка
ТабличнаяЧастьЗаголовок = Макет.ПолучитьОбласть("ТабличнаяЧастьПрайсаЗаголовок");
ПечатнаяФорма.Вывести(ТабличнаяЧастьЗаголовок);
// Получаем область строк для формирования табличной части в цикле
ТабличнаяЧастьСтрока = Макет.ПолучитьОбласть("ТабличнаяЧастьПрайсаСтрока");
Для каждого СтрокаСписка из МассивСтрок Цикл
ТабличнаяЧастьСтрока.Параметры.Номенклатура = СтрокаСписка.Наименование;
ТабличнаяЧастьСтрока.Параметры.Цена = 100;
ПечатнаяФорма.Вывести(ТабличнаяЧастьСтрока);
КонецЦикла;
// Возвращаем печатную форму обратно на клиент
Возврат ПечатнаяФорма;
КонецФункции
- Получим срез последних по регистру сведений Цены номенклатуры для заполнения цены и вставим в соответствующий параметр.