# Задание к занятию "Текстовые и табличные документы"

## Задача 1 Создать команду печати прайс-листа в справочнике Номенклатура в текстовый документ.

### Описание задачи

Добавить возможность формирования прайс-листа в справочнике Номенклатура.

### Требования к результату

Выгрузка информационной базы (.dt) с конфигурацией из предыдущих заданий, имеет возможность формировать прайс листа из формы списка номенклатуры.

Прайс формируется на основе выделенных строк в форме списка Номенклатура.

Цена номенклатуры определяется на текущую дату.

Можно выделить одну или несколько строк для формирования печатной формы.

### Процесс выполнения

1. Добавим общий макет "МакетПрайсЛист" с типом Текстовый документ.

Пример текста.
```
#Область ШапкаПрайса
#Поле ТекущаяДата
	[	Дата]
#КонецОбласти

#Область ТабличнаяЧастьЗаголовок
---------------------------------
Товар		|	Цена, рублей
#КонецОбласти

#Область ТабличнаяЧастьСтрока
#Поле Номенклатура
	#Формат "ЧЦ=12; ЧДЦ=2;ЧРД=."
	#Забивать Истина
#Поле Цена
#Выравнивание Центр
---------------------------------
[Номенклатура	]|[Цена	]
```
2. В форму списка номенклатуры добавим команду "Прайс лист (в текстовый документ)".

3. Для печати добавим на клиенте процедуру на клиенте.
```bsl
&НаКлиенте
Процедура КомандаПрайсЛист(Команда)
	
	//выделим несколько строк
	МассивСтрок = Элементы.Список.ВыделенныеСтроки;
	//отправим выделенные строки номенклатуры на печать
	ПечатнаяФорма = ПечатнаяФормаПрайсЛистТекстовыйДокумент(МассивСтрок);
	ПечатнаяФорма.Показать("Прайс-лист");
	
КонецПроцедуры
```
4. На сервере формируем печатную форму и возращаем на клиент для печати.

```bsl
&НаСервере
Функция ПечатнаяФормаПрайсЛистТекстовыйДокумент(МассивСтрок)
	
	ПечатнаяФорма = Новый ТекстовыйДокумент;
	
	Макет = ПолучитьОбщийМакет("МакетПрайсЛист");
	
	// Получаем область шапки и макета по имени
	Шапка = Макет.ПолучитьОбласть("ШапкаПрайса");
	// Заполняем параметр Дата
	Шапка.Параметры.Дата = ТекущаяДата();
	// Выводим область в документ
	ПечатнаяФорма.Вывести(Шапка);
	
	// Получаем область заголовка
	ТабличнаяЧастьЗаголовок = Макет.ПолучитьОбласть("ТабличнаяЧастьПрайсаЗаголовок");
	ПечатнаяФорма.Вывести(ТабличнаяЧастьЗаголовок);
	
	// Получаем область строк для формирования табличной части в цикле
	ТабличнаяЧастьСтрока = Макет.ПолучитьОбласть("ТабличнаяЧастьПрайсаСтрока");
	
	Для каждого СтрокаСписка из МассивСтрок Цикл
		ТабличнаяЧастьСтрока.Параметры.Номенклатура = СтрокаСписка; 
		ТабличнаяЧастьСтрока.Параметры.Цена = 100; //Здесь необходимо получить текущую цену товара и установить ее  
		ПечатнаяФорма.Вывести(ТабличнаяЧастьСтрока);
	КонецЦикла;
	
	// Возвращаем печатную форму обратно на клиент
	Возврат ПечатнаяФорма;
	
КонецФункции
```

5. Получим срез последних по регистру сведений Цены номенклатуры для заполнения цены и вставим в соответствующий параметр.

## Задача 2 Создать команду печати прайс-листа в справочнике Номенклатура в табличный документ.

### Описание задачи

Добавить возможность формирования прайс-листа в справочнике Номенклатура в табличный документ.

### Требования к результату

Выгрузка информационной базы (.dt) с конфигурацией из предыдущих заданий, имеет возможность формировать прайс листа из формы списка номенклатуры в табличный документ.

Прайс формируется на основе выделенных строк в форме списка Номенклатура.

Цена номенклатуры определяется на текущую дату.

Можно выделить одну или несколько строк для формирования печатной формы.

### Процесс выполнения

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