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
AntonChausov fbde8f96c6
Табличный документ
Добавлена задача с Табличным документом
Исправлены неоднозначны строки в первой задаче.
2021-04-11 17:04:06 +03:00

6.3 KiB

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

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

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

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

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

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

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

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

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

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

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

Пример текста.

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

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

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

  2. Для печати добавим на клиенте процедуру на клиенте.

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

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

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

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

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

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

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

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

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

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

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