# Задание к занятию "Текстовые и табличные документы" ## Задача 1 Создать команду печати прайс-листа в справочнике Номенклатура в текстовый документ. ### Описание задачи Добавить возможность формирования прайс-листа в справочнике Номенклатура. ### Требования к результату Выгрузка информационной базы (.dt) с конфигурацией из предыдущих заданий, имеет возможность формировать прайс листа из формы списка номенклатуры. Прайс формируется на основе выделенных строк в форме списка Номенклатура. Цена номенклатуры определяется на текущую дату. Можно выделить одну или несколько строк для формирования печатной формы. ### Процесс выполнения 1. Добавим общий макет "МакетПрайсЛист" с типом Текстовый документ. Пример текста. ``` #Область ШапкаПрайса #Поле ТекущаяДата [ Дата] #КонецОбласти #Область ТабличнаяЧастьЗаголовок --------------------------------- Товар | Цена, рублей #КонецОбласти #Область ТабличнаяЧастьСтрока #Поле Номенклатура #Формат "ЧЦ=12; ЧДЦ=2;ЧРД=." #Забивать Истина #Поле Цена #Выравнивание Центр --------------------------------- [Номенклатура ]|[Цена ] ``` 2. В форму списка номенклатуры добавим команду "Прайс лист (в текстовый документ)". 3. Для печати добавим на клиенте процедуру на клиенте. ```bsl &НаКлиенте Процедура КомандаПрайсЛист(Команда) //выделим несколько строк МассивСтрок = Элементы.Список.ВыделенныеСтроки; //отправим выделенные строки номенклатуры на печать ПечатнаяФорма = ПечатнаяФормаПрайсЛистТекстовыйДокумент(МассивСтрок); ПечатнаяФорма.Показать("Прайс-лист"); КонецПроцедуры ``` 4. На сервере формируем печатную форму и возращаем на клиент для печати. ```bsl &НаСервере Функция ПечатнаяФормаПрайсЛистТекстовыйДокумент(МассивСтрок) ПечатнаяФорма = Новый ТекстовыйДокумент; Макет = ПолучитьОбщийМакет("МакетПрайсЛист"); // Получаем область шапки и макета по имени Шапка = Макет.ПолучитьОбласть("ШапкаПрайса"); // Заполняем параметр Дата Шапка.Параметры.Дата = ТекущаяДата(); // Выводим область в документ ПечатнаяФорма.Вывести(Шапка); // Получаем область заголовка ТабличнаяЧастьЗаголовок = Макет.ПолучитьОбласть("ТабличнаяЧастьПрайсаЗаголовок"); ПечатнаяФорма.Вывести(ТабличнаяЧастьЗаголовок); // Получаем область строк для формирования табличной части в цикле ТабличнаяЧастьСтрока = Макет.ПолучитьОбласть("ТабличнаяЧастьПрайсаСтрока"); Для каждого СтрокаСписка из МассивСтрок Цикл ТабличнаяЧастьСтрока.Параметры.Номенклатура = СтрокаСписка; ТабличнаяЧастьСтрока.Параметры.Цена = 100; //Здесь необходимо получить текущую цену товара и установить ее ПечатнаяФорма.Вывести(ТабличнаяЧастьСтрока); КонецЦикла; // Возвращаем печатную форму обратно на клиент Возврат ПечатнаяФорма; КонецФункции ``` 5. Получим срез последних по регистру сведений Цены номенклатуры для заполнения цены и вставим в соответствующий параметр. ## Задача 2 Создать команду печати прайс-листа в справочнике Номенклатура в табличный документ. ### Описание задачи Добавить возможность формирования прайс-листа в справочнике Номенклатура в табличный документ. ### Требования к результату Выгрузка информационной базы (.dt) с конфигурацией из предыдущих заданий, имеет возможность формировать прайс листа из формы списка номенклатуры в табличный документ. Прайс формируется на основе выделенных строк в форме списка Номенклатура. Цена номенклатуры определяется на текущую дату. Можно выделить одну или несколько строк для формирования печатной формы. ### Процесс выполнения Процесс выполнения аналогичен первой задаче, но вместо текстового макета необходимо создать макет табличного документа и вывести информацию в него.