2020-06-23 18:09:00 +02:00
|
|
|
# Задание к занятию "Текстовые документы"
|
2020-05-31 18:38:56 +02:00
|
|
|
|
2020-06-23 19:37:07 +02:00
|
|
|
## Задача 1 Создать команду печати прайс-листа в справочнике Номенклатура
|
2020-06-23 18:09:00 +02:00
|
|
|
|
|
|
|
### Описание задачи
|
|
|
|
|
|
|
|
Сформируем прайс лист
|
2020-06-23 18:19:17 +02:00
|
|
|
|
2020-06-23 18:09:00 +02:00
|
|
|
Выведем актуальную цену номенклатуры
|
|
|
|
|
2020-06-23 19:37:57 +02:00
|
|
|
Создадим общий макет Прайс лист
|
2020-06-23 18:09:00 +02:00
|
|
|
|
2020-06-23 19:37:57 +02:00
|
|
|
Добавим возможность вывода на печать в Номенклатуре прайс-листа
|
2020-06-23 18:09:00 +02:00
|
|
|
|
|
|
|
### Требования к результату
|
|
|
|
|
2020-06-23 19:37:07 +02:00
|
|
|
Текстовый документ содержит информацию о прайс листе на текущую дату - цену и номенклатуру
|
2020-06-23 18:09:00 +02:00
|
|
|
|
2020-06-23 19:37:07 +02:00
|
|
|
Есть возможность вывести на печать
|
2020-06-23 18:09:00 +02:00
|
|
|
|
2020-06-23 19:40:49 +02:00
|
|
|
Прайс формируется на основе выделенных строк в форме списка Номенклатура
|
|
|
|
|
2020-06-23 18:09:00 +02:00
|
|
|
### Процесс выполнения
|
|
|
|
|
2020-06-23 19:37:07 +02:00
|
|
|
Добавим общий макет "МакетПрайсЛист" с типом Текстовый документ
|
2020-06-23 18:09:00 +02:00
|
|
|
|
|
|
|
Пример текста
|
2020-06-23 18:56:10 +02:00
|
|
|
```
|
2020-06-23 18:22:04 +02:00
|
|
|
#Область ШапкаПрайса
|
|
|
|
#Поле ТекущаяДата
|
|
|
|
[ Дата]
|
2020-06-23 18:09:00 +02:00
|
|
|
#КонецОбласти
|
|
|
|
|
|
|
|
#Область ТабличнаяЧастьЗаголовок
|
|
|
|
---------------------------------
|
|
|
|
Товар | Цена, рублей
|
|
|
|
#КонецОбласти
|
|
|
|
|
|
|
|
#Область ТабличнаяЧастьСтрока
|
|
|
|
#Поле Номенклатура
|
|
|
|
#Формат "ЧЦ=12; ЧДЦ=2;ЧРД=."
|
|
|
|
#Забивать Истина
|
|
|
|
#Поле Цена
|
2020-06-23 18:23:10 +02:00
|
|
|
#Выравнивание Центр
|
2020-06-23 18:09:00 +02:00
|
|
|
---------------------------------
|
|
|
|
[Номенклатура ]|[Цена ]
|
2020-06-23 18:27:14 +02:00
|
|
|
```
|
2020-06-23 19:37:07 +02:00
|
|
|
В форму списка номенклатуры добавим команду "Прайс лист"
|
|
|
|
|
2020-06-23 19:39:40 +02:00
|
|
|
Для печати добавим на клиенте процедуру
|
2020-06-23 19:37:07 +02:00
|
|
|
```bsl
|
|
|
|
&НаКлиенте
|
|
|
|
Процедура КомандаПрайсЛист(Команда)
|
|
|
|
|
|
|
|
//выделим несколько строк
|
|
|
|
ВыделенныеСтроки = Элементы.СписокРасширенныйПоискНоменклатура.ВыделенныеСтроки;
|
|
|
|
МассивСтрок = Новый Массив();
|
|
|
|
Для каждого НомерСтроки Из ВыделенныеСтроки Цикл
|
|
|
|
МассивСтрок.Добавить(Элементы.СписокРасширенныйПоискНоменклатура.ДанныеСтроки(НомерСтроки));
|
|
|
|
КонецЦикла;
|
|
|
|
//отправим выделенные строки номенклатуры на печать
|
|
|
|
ПечатнаяФорма = СформироватьПечатнуюФормуПрайсЛист(МассивСтрок);
|
|
|
|
|
|
|
|
ПечатнаяФорма.Показать("Прайс-лист");
|
|
|
|
|
|
|
|
КонецПроцедуры
|
|
|
|
```
|
|
|
|
Формируем печатную форму на сервере и возращаем на клиент для печати
|
|
|
|
|
|
|
|
```bsl
|
|
|
|
&НаСервере
|
|
|
|
Функция СформироватьПечатнуюФормуПрайсЛист(МассивСтрок)
|
|
|
|
|
|
|
|
ПечатнаяФорма = Новый ТекстовыйДокумент;
|
|
|
|
|
|
|
|
Макет = ПолучитьОбщийМакет("МакетПрайсЛист");
|
|
|
|
|
|
|
|
// Получаем область шапки и макета по имени
|
|
|
|
Шапка = Макет.ПолучитьОбласть("ШапкаПрайса");
|
|
|
|
// Заполняем параметр Дата
|
|
|
|
Шапка.Параметры.Дата = ТекущаяДата();
|
|
|
|
// Выводим область в документ
|
|
|
|
ПечатнаяФорма.Вывести(Шапка);
|
|
|
|
|
|
|
|
// Получаем область заголовка
|
|
|
|
ТабличнаяЧастьЗаголовок = Макет.ПолучитьОбласть("ТабличнаяЧастьПрайсаЗаголовок");
|
|
|
|
ПечатнаяФорма.Вывести(ТабличнаяЧастьЗаголовок);
|
|
|
|
|
|
|
|
// Получаем область строк для формирования табличной части в цикле
|
|
|
|
ТабличнаяЧастьСтрока = Макет.ПолучитьОбласть("ТабличнаяЧастьПрайсаСтрока");
|
|
|
|
|
|
|
|
Для каждого СтрокаСписка из МассивСтрок Цикл
|
|
|
|
ТабличнаяЧастьСтрока.Параметры.Номенклатура = СтрокаСписка.Наименование;
|
|
|
|
ТабличнаяЧастьСтрока.Параметры.Цена = 100;
|
|
|
|
ПечатнаяФорма.Вывести(ТабличнаяЧастьСтрока);
|
|
|
|
КонецЦикла;
|
|
|
|
|
|
|
|
// Возвращаем печатную форму обратно на клиент
|
|
|
|
Возврат ПечатнаяФорма;
|
|
|
|
|
|
|
|
КонецФункции
|
|
|
|
```
|
2020-06-23 18:09:00 +02:00
|
|
|
|
2020-06-23 19:37:07 +02:00
|
|
|
Получим срез последних по регистру сведений Цены номенклатуры для заполнения цены и вставим в соответствующий параметр
|