From 23a61e1fce207aaa99b2cf418db070c6b1706e66 Mon Sep 17 00:00:00 2001 From: StepanShipitsyn <61192714+StepanShipitsyn@users.noreply.github.com> Date: Wed, 24 Jun 2020 01:37:07 +0800 Subject: [PATCH] Update homework-5-8.md --- homework-5-8.md | 70 ++++++++++++++++++++++++++++++++++++++++++------- 1 file changed, 61 insertions(+), 9 deletions(-) diff --git a/homework-5-8.md b/homework-5-8.md index b38b619..5cf7228 100644 --- a/homework-5-8.md +++ b/homework-5-8.md @@ -1,6 +1,6 @@ # Задание к занятию "Текстовые документы" -## Задача 1 Создать текстовый макет в справочнике Номенклатура, добавить команду печати и сохранения +## Задача 1 Создать команду печати прайс-листа в справочнике Номенклатура ### Описание задачи @@ -10,19 +10,17 @@ Создадим текстовый макет в Номенклатура -Добавим возможность вывода на печать и сохранения в файл +Добавим возможность вывода на печать ### Требования к результату -Текстовый документ содержит информацию о цену и номенклатуру +Текстовый документ содержит информацию о прайс листе на текущую дату - цену и номенклатуру -Есть возможность вывести на печать и сохранить +Есть возможность вывести на печать ### Процесс выполнения -Получим срез последних по регистру сведений Цены номенклатуры - -Добавим макет "МакетПрайсЛист" с типом Текстовый документ +Добавим общий макет "МакетПрайсЛист" с типом Текстовый документ Пример текста ``` @@ -45,6 +43,60 @@ --------------------------------- [Номенклатура ]|[Цена ] ``` -Заполним на основании регистра макет, код добавим в модуле менеджера +В форму списка номенклатуры добавим команду "Прайс лист" -Добавим команду для вывода на просмотр и сохранение +Для печати добавим на клиенте +```bsl +&НаКлиенте +Процедура КомандаПрайсЛист(Команда) + + //выделим несколько строк + ВыделенныеСтроки = Элементы.СписокРасширенныйПоискНоменклатура.ВыделенныеСтроки; + МассивСтрок = Новый Массив(); + Для каждого НомерСтроки Из ВыделенныеСтроки Цикл + МассивСтрок.Добавить(Элементы.СписокРасширенныйПоискНоменклатура.ДанныеСтроки(НомерСтроки)); + КонецЦикла; + //отправим выделенные строки номенклатуры на печать + ПечатнаяФорма = СформироватьПечатнуюФормуПрайсЛист(МассивСтрок); + + ПечатнаяФорма.Показать("Прайс-лист"); + +КонецПроцедуры +``` +Формируем печатную форму на сервере и возращаем на клиент для печати + +```bsl +&НаСервере +Функция СформироватьПечатнуюФормуПрайсЛист(МассивСтрок) + + ПечатнаяФорма = Новый ТекстовыйДокумент; + + Макет = ПолучитьОбщийМакет("МакетПрайсЛист"); + + // Получаем область шапки и макета по имени + Шапка = Макет.ПолучитьОбласть("ШапкаПрайса"); + // Заполняем параметр Дата + Шапка.Параметры.Дата = ТекущаяДата(); + // Выводим область в документ + ПечатнаяФорма.Вывести(Шапка); + + // Получаем область заголовка + ТабличнаяЧастьЗаголовок = Макет.ПолучитьОбласть("ТабличнаяЧастьПрайсаЗаголовок"); + ПечатнаяФорма.Вывести(ТабличнаяЧастьЗаголовок); + + // Получаем область строк для формирования табличной части в цикле + ТабличнаяЧастьСтрока = Макет.ПолучитьОбласть("ТабличнаяЧастьПрайсаСтрока"); + + Для каждого СтрокаСписка из МассивСтрок Цикл + ТабличнаяЧастьСтрока.Параметры.Номенклатура = СтрокаСписка.Наименование; + ТабличнаяЧастьСтрока.Параметры.Цена = 100; + ПечатнаяФорма.Вывести(ТабличнаяЧастьСтрока); + КонецЦикла; + + // Возвращаем печатную форму обратно на клиент + Возврат ПечатнаяФорма; + +КонецФункции +``` + +Получим срез последних по регистру сведений Цены номенклатуры для заполнения цены и вставим в соответствующий параметр