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