Содержание:
1. Представление при помощи свойства «Основное представление»
2. Изменение представления справочника или документа программным путем
3. Пример представления документа в 1С
В данной статье речь пойдёт о том, как выводить, создавать и управлять представлением документа либо представлением справочника в системе 1С.
1. Представление при помощи свойства «Основное представление»
Для каждого из документов/справочников в 1С есть возможность задания свойства «Основное представление». Им можно пользоваться каждый раз, когда работает режим конфигурации. Представление справочника или документа может быть двух видов – это представлении в виде кода и в виде наименования:
Рис. 1 Представление справочника в виде кода и наименования
Рассмотрим, как работает механизм работы представления документов в 1С. Представление справочника или документа формируется во время вывода на экране различных ссылок, а также разнообразных объектов от документации либо справочников.
2. Изменение представления справочника или документа программным путем
Также в «Управляемом приложении» в 1С есть возможность изменить программно представление документа или справочника. Чтобы создать программные изменения, необходимо задействовать какую-то из двух процедур, которые находятся в модуле менеджера:
1. «ОбработкаПолученияПолейПредставления(Поля, СтандартнаяОбработка)» – данная процедура может быть вызвана для получения составляющих в полях, при помощи которых и можно получить представление документа. Данную процедуру достаточно вызвать один раз во время формировки первоначального представления документа либо справочника. Результатом будет то, что после обработки все события будут кэшированы для конкретного сеанса. Пример данной процедуры с её общим видом можно увидеть на скриншоте с кодом ниже:
Рис. 2 Обработка, позволяющая получить представление документа
2. «ОбработкаПолученияПредставления(Данные, Представление, СтандартнаяОбработка)» – данную процедуру вызывают, чтобы получить представление необходимого документа. Внутри параметра «Данные» находятся все значения по полям в нужном нам объекте, которые задавались в событии «ОбработкаПолученияПолейПредставления()», как демонстрируется на скриншоте ниже:
Рис. 3 Процедура, применяемая для того, чтобы получить представление документа
3. Пример представления документа в 1С
Выше было представлено как стандартно менять способы представления документа. Теперь рассмотрим, как это работает на практике. Пусть нужно изменить представление документа «Реализация товаров, услуг» на «Реализация т/у №150 от 20.05.2016 (Контрагент: ООО Альфа)». Чтобы произвести данную процедуру нужно внутри менеджерского модуля по объекту внутри документа создать обработчики по событиям по получению нового представления, а также его возможных полей. Процедура в данном случае будет выглядеть, как продемонстрировано на скриншоте с кодом ниже:
Рис.4 Получение нового представления документа в 1С
В данной статье было рассмотрено понятие представления документов в 1С. Были представлены два возможных стандартных варианта для изменения, две возможные процедуры в модуле менеджера, а также режимы представления документа.
Специалист компании «Кодерлайн»
Айдар Фархутдинов
На чтение 3 мин. Просмотров 79 Опубликовано 15.12.2019
Содержание
- Guesto notes
- Задача
- Решение
- Программное изменение представления в «Управляемом приложении»
Guesto notes
Для документа Реализация товаров и услуг необходимо сделать произвольное представление документа в зависимости от вида, который указал пользователь.
Задача
Для документа Реализация товаров и услуг организовать формирование представления документа в зависимости от значения реквизита Вид:
- Товары — «Реализация товаров » + + » от » + ;
- Услуги — «Акт выполненных работ » + + » от » + .
Решение
Для реализации воспользуемся двумя событиями, описанными в модуле менеджера документа:
ОбработкаПолученияПолейПредставления() — Определяет состав полей для формирования представления. По умолчанию содержит Дата и Номер, если необходимо определить свой состав полей, то необходимо переменной СтандартнаяОбработка присвоить значение Ложь, при этом Дата и Номер в состав полей не войдут — необходимо добавить самому.
ОбработкаПолученияПредставления() — Определяет само представление, если переменной СтандартнаяОбработка присвоить значение Ложь, то будет выполняться произвольный алгоритм формирования представления. Данные описанные в обработчике ОбработкаПолученияПолейПредставления(), будут преданны структурой Данные.
Теперь пишем код по задаче:
И результат работы написанного кода, для документов с видом «Услуги»:
Допустим для документа Реализация товаров услуг нужно настроить представление в виде «Реализация т/у № 150 от 20.05.2016 (Контрагент: ООО Альфа)». Для этого в модуле менеджера объекта документа создаем обработчики событий получения представления и полей представления:
Процедура ОбработкаПолученияПредставления ( Данные , Представление , СтандартнаяОбработка )
Представление = «Реализация т/у № « + Данные . Номер + » от « + Формат ( Данные . Дата , «ДФ=dd.MM.yyyy» ) + » (Контрагент: « + Строка ( Данные . Контрагент )+ «)» ;
СтандартнаяОбработка =Ложь;
КонецПроцедуры
Процедура ОбработкаПолученияПолейПредставления ( Поля , СтандартнаяОбработка )
Поля . Добавить ( «Номер» );
Поля . Добавить ( «Дата» );
Поля . Добавить ( «Контрагент» );
СтандартнаяОбработка =Ложь;
КонецПроцедуры
Программирование системы 17.08.2016 09:34 5920
В свойствах справочников и документов можно задать свойство «Основное представление». Данное свойство доступно в режиме конфигуратора. Возможны два режима выбора варианта формирования представления: «В виде кода» или «В виде наименования».
Когда срабатывает представление ?
Представление формируется при выводе на экран ссылок (объектов) документов или справочников.
Программное изменение представления в «Управляемом приложении»
В управляемом приложении появилась возможность программно влиять на формирование представления справочника или документа. Для этого в модуле менеджера предназначены две специальные процедуры:
1) ОбработкаПолученияПолейПредставления( , ) Вызывается при получении состава полей, из кторых формируется представление объекта. Эта процедура вызывается один раз, при первом формировании представления. Результат обработки события кэшируется для сеанса.
2) ОбработкаПолученияПредставления( , , )Вызывается при получении представления. В параметре «Данные» содержатся значения полей объекта, которые были заданы в событии ОбработкаПолученияПолейПредставления().
Для того чтобы добавить сообщение, необходимо Войти или Зарегистрироваться
+1
1С 8.x : Как при выборе элемента справочника сделать отображение любого реквизита, а не код и наименование?
Порой бывают ситуации когда необходимо выбрать в табличном поле элемента справочника, но отобразить его не как код или наименование, а как значение какого-либо реквизита!
НО Представление справочника это либо Код, либо Наименование и другого никак не выбрать — пойдем в обход добавив в ТабЧасть отдельный Реквизит(с типом строка, число, дата и т.д) и при выборе справочника запишем туда значение любого реквизита этого справочника!
Вот примеры реализации этого:
Вариант 1 (Создаем два реквизита Контрагент и ИНН):
И при выборе Контрагента, в колонке ИНН должно появится ИНН этого контрагента!
1. Создаем в Табличной части два Реквизита:
а. Наименование = СправочникСсылка.Контрагенты
б. ИНН = Строка 12 символов
2. После размещения этих реквизитов в табличной части на форме заходим в Свойства колонки Наименование
Добавляем Событие ПриИзменении и пишем в нем:
Код 1C v 8.х
//При выборе Контрагента в Колонке ИНН установить ИНН Контрагента
Процедура ТабЧастьНаименованиеПриИзменении(Элемент)
ЭлементыФормы.ТабЧасть.ТекущаяСтрока.ИНН = Элемент.Значение.ИНН;
КонецПроцедуры
3. Сохраняем, проверям, наблюдаем
Вариант 2 (Создаем Один реквизит КПП и при нажатии на кнопку выбор должен открыться справочник контрагентов, далее выбрав контрагента, в поле должно попасть его КПП):
1. Создаем в Табличной части Реквизит:
КПП = Строка 9 символов
2. После размещения реквизита в табличной части на форме заходим в его Свойства
а. В разделе Использование:
Ставим галочку — Кнопка Выбора
б. В разделе События:
Добавляем НачалоВыбора и пишем код:
Код 1C v 8.х
Процедура ТабЧастьКППНачалоВыбора(Элемент, СтандартнаяОбработка)
СпрКонтрагент = Справочники.Контрагенты.ПолучитьФормуВыбора(,ЭтаФорма);
СпрКонтрагент.Заголовок = "Выберите Поставщика:";
Выбор = СпрКонтрагент.ОткрытьМодально();
Элемент.Значение = Выбор.КПП;
КонецПроцедуры
3. Теперь щелкнув в колонке КПП, появится кнопка выбора |…|, нажав которую откроется справочник Контрагентов и выбрав Контрагента в поле появится его КПП.
Автор: Мигачев Евгений