1
0
mirror of https://github.com/netology-code/1c-homeworks.git synced 2024-11-24 08:02:20 +02:00

Update homework-5-8.md

This commit is contained in:
StepanShipitsyn 2020-06-24 01:37:07 +08:00 committed by GitHub
parent 9d47439023
commit 23a61e1fce
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

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