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

116 lines
6.3 KiB
Markdown
Raw Normal View History

# Задание к занятию "Текстовые и табличные документы"
2020-05-31 18:38:56 +02:00
## Задача 1 Создать команду печати прайс-листа в справочнике Номенклатура в текстовый документ.
2020-06-23 18:09:00 +02:00
### Описание задачи
2020-06-24 10:56:21 +02:00
Добавить возможность формирования прайс-листа в справочнике Номенклатура.
2020-06-23 18:09:00 +02:00
### Требования к результату
Выгрузка информационной базы (.dt) с конфигурацией из предыдущих заданий, имеет возможность формировать прайс листа из формы списка номенклатуры.
2020-06-24 09:24:25 +02:00
2020-06-24 10:55:31 +02:00
Прайс формируется на основе выделенных строк в форме списка Номенклатура.
2020-06-24 09:24:25 +02:00
Цена номенклатуры определяется на текущую дату.
2020-06-23 18:09:00 +02:00
2020-06-24 09:24:25 +02:00
Можно выделить одну или несколько строк для формирования печатной формы.
2020-06-23 19:40:49 +02:00
2020-06-23 18:09:00 +02:00
### Процесс выполнения
2020-06-24 11:01:44 +02:00
1. Добавим общий макет "МакетПрайсЛист" с типом Текстовый документ.
2020-06-23 18:09:00 +02:00
2020-06-24 11:01:44 +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
```
2. В форму списка номенклатуры добавим команду "Прайс лист (в текстовый документ)".
2020-06-23 19:37:07 +02:00
2020-06-24 09:24:25 +02:00
3. Для печати добавим на клиенте процедуру на клиенте.
2020-06-23 19:37:07 +02:00
```bsl
&НаКлиенте
Процедура КомандаПрайсЛист(Команда)
//выделим несколько строк
МассивСтрок = Элементы.Список.ВыделенныеСтроки;
2020-06-23 19:37:07 +02:00
//отправим выделенные строки номенклатуры на печать
ПечатнаяФорма = ПечатнаяФормаПрайсЛистТекстовыйДокумент(МассивСтрок);
2020-06-23 19:37:07 +02:00
ПечатнаяФорма.Показать("Прайс-лист");
КонецПроцедуры
```
2020-06-24 11:01:44 +02:00
4. На сервере формируем печатную форму и возращаем на клиент для печати.
2020-06-23 19:37:07 +02:00
```bsl
&НаСервере
Функция ПечатнаяФормаПрайсЛистТекстовыйДокумент(МассивСтрок)
2020-06-23 19:37:07 +02:00
ПечатнаяФорма = Новый ТекстовыйДокумент;
Макет = ПолучитьОбщийМакет("МакетПрайсЛист");
// Получаем область шапки и макета по имени
Шапка = Макет.ПолучитьОбласть("ШапкаПрайса");
// Заполняем параметр Дата
Шапка.Параметры.Дата = ТекущаяДата();
// Выводим область в документ
ПечатнаяФорма.Вывести(Шапка);
// Получаем область заголовка
ТабличнаяЧастьЗаголовок = Макет.ПолучитьОбласть("ТабличнаяЧастьПрайсаЗаголовок");
ПечатнаяФорма.Вывести(ТабличнаяЧастьЗаголовок);
// Получаем область строк для формирования табличной части в цикле
ТабличнаяЧастьСтрока = Макет.ПолучитьОбласть("ТабличнаяЧастьПрайсаСтрока");
Для каждого СтрокаСписка из МассивСтрок Цикл
ТабличнаяЧастьСтрока.Параметры.Номенклатура = СтрокаСписка;
ТабличнаяЧастьСтрока.Параметры.Цена = 100; //Здесь необходимо получить текущую цену товара и установить ее
2020-06-23 19:37:07 +02:00
ПечатнаяФорма.Вывести(ТабличнаяЧастьСтрока);
КонецЦикла;
// Возвращаем печатную форму обратно на клиент
Возврат ПечатнаяФорма;
КонецФункции
```
2020-06-23 18:09:00 +02:00
2020-06-24 11:01:44 +02:00
5. Получим срез последних по регистру сведений Цены номенклатуры для заполнения цены и вставим в соответствующий параметр.
## Задача 2 Создать команду печати прайс-листа в справочнике Номенклатура в табличный документ.
### Описание задачи
Добавить возможность формирования прайс-листа в справочнике Номенклатура в табличный документ.
### Требования к результату
Выгрузка информационной базы (.dt) с конфигурацией из предыдущих заданий, имеет возможность формировать прайс листа из формы списка номенклатуры в табличный документ.
Прайс формируется на основе выделенных строк в форме списка Номенклатура.
Цена номенклатуры определяется на текущую дату.
Можно выделить одну или несколько строк для формирования печатной формы.
### Процесс выполнения
Процесс выполнения аналогичен первой задаче, но вместо текстового макета необходимо создать макет табличного документа и вывести информацию в него.