Для документа Реализация товаров и услуг необходимо сделать произвольное представление документа в зависимости от вида, который указал пользователь.
Задача
Для документа Реализация товаров и услуг организовать формирование представления документа в зависимости от значения реквизита Вид:
- Товары — «Реализация товаров » + <Номер> + » от » + <Дата>;
- Услуги — «Акт выполненных работ » + <Номер> + » от » + <Дата>.
Решение
Для реализации воспользуемся двумя событиями, описанными в модуле менеджера документа:
ОбработкаПолученияПолейПредставления() — Определяет состав полей для формирования представления. По умолчанию содержит Дата и Номер, если необходимо определить свой состав полей, то необходимо переменной СтандартнаяОбработка присвоить значение Ложь, при этом Дата и Номер в состав полей не войдут — необходимо добавить самому.
ОбработкаПолученияПредставления() — Определяет само представление, если переменной СтандартнаяОбработка присвоить значение Ложь, то будет выполняться произвольный алгоритм формирования представления. Данные описанные в обработчике ОбработкаПолученияПолейПредставления(), будут преданны структурой Данные.
Теперь пишем код по задаче:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 |
#Область ОбработчикиСобытий Процедура ОбработкаПолученияПолейПредставления(Поля, СтандартнаяОбработка) СтандартнаяОбработка = Ложь; // Определяем состав необходмых полей Поля.Добавить("Дата"); Поля.Добавить("Номер"); Поля.Добавить("Вид"); КонецПроцедуры Процедура ОбработкаПолученияПредставления(Данные, Представление, СтандартнаяОбработка) СтандартнаяОбработка = Ложь; Если Данные.Вид = ПредопределенноеЗначение("Перечисление.ВидыРеализацииТоваровУслуг.Услуги") Тогда Вид = "Акт выполненных работ "; Иначе Вид = "Реализация товаров " КонецЕсли; Представление = Вид + Данные.Номер + " от " + Формат(Данные.Дата, "ДФ=dd.MM.yyyy"); КонецПроцедуры #КонецОбласти |
И результат работы написанного кода, для документов с видом «Услуги»:
для документов с видом «Товары»: