1с вывод дополнительных реквизитов на форму списка


Добавление доп. реквизита в динамический список программно

Добавление доп. реквизита в динамический список программно

Некоторые пользователи хотят видеть дополнительную аналитику по определенным объектам конфигурации 1С, для реализации этой потребности существует функционал дополнительных реквизитов и сведений, который зачастую выводится в группу «Дополнительно» или «Дополнительные реквизиты».

Мы же разберем как отобразить дополнительные реквизиты в форме списка элементов. Практически всегда в этой форме используется «Динамический список», но данный способ не позволяет использовать это на обычной «Таблице значений».

Как добавить дополнительный реквизит в динамический список:

Получившейся код модуля:

&НаКлиенте
Процедура dev_ПриОткрытииПосле(Отказ)
	
	ОтображениеДополнительныхРеквизитов();
	
КонецПроцедуры

&НаСервере
Процедура ОтображениеДополнительныхРеквизитов()
		
	// Получаем набор свойств объекта по пустой ссылке объекта метаданных.
	НаборСвойств = УправлениеСвойствамиСлужебный.ПолучитьНаборыСвойствОбъекта(Справочники.Номенклатура.ПустаяСсылка());
		
	// Инициализируем имя набора свойств. 
	ИмяНабора = НаборСвойств[0].Набор.Наименование;     
	Свойства  = НаборСвойств[0].Набор.ДополнительныеРеквизиты.Выгрузить().ВыгрузитьКолонку("Свойство");
	
	// Наполняем массив именами доп.реквизитов, которые мы хотим отобразить в списке формы. 
	// Можно создать отдельную настроку, например регистр где будем хранить выводимые поля,
	// для конкретных объектов метаданных или даже в зависимости от роли.
	МассивОтображаемыхСвойств = Новый Массив;
	МассивОтображаемыхСвойств.Добавить("Краткое описание");
	// и т.д.
	
	// Если например у нас полные права то выведем все доп.реквизиты.
	Если РольДоступна("ПолныеПрава") Тогда   
		МассивОтображаемыхСвойств = ПолучитьМассивНаименованийСвойств(Свойства);
	КонецЕсли;
	
	// Квадратные скобки обязательны.
	// Именно так платформа понимает что мы обращаемся к реквизиту ТЧ "ДополнительныеРеквизиты" 
	ШаблонПутьКДанным = "Список.Ссылка.[%1 (%2)]";	 
	
	// Обход циклом свойств для вывода в список.
	Для каждого ТекущееСвойство Из Свойства Цикл
		
		НаименованиеСвойства = ТекущееСвойство.Наименование; 
		ИмяЭлемента = ТекущееСвойство.ИдентификаторДляФормул; 
		
		Если  МассивОтображаемыхСвойств.Найти(НаименованиеСвойства) <> Неопределено Тогда
			СтрокаДанные = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(ШаблонПутьКДанным, НаименованиеСвойства, ИмяНабора); 					
			НовыйЭлемент = Элементы.Добавить(ИмяЭлемента, Тип("ПолеФормы"), Элементы.Список);
			НовыйЭлемент.Вид 			= ВидПоляФормы.ПолеВвода;
			НовыйЭлемент.ПутьКДанным 	= СтрокаДанные;
			НовыйЭлемент.Заголовок 		= НаименованиеСвойства;	  
		КонецЕсли;  
		
	КонецЦикла; 
	
КонецПроцедуры

&НаСервереБезКонтекста
Функция ПолучитьМассивНаименованийСвойств(МассивСвойств) 

	МассивНаименований = Новый Массив;
	Для каждого Свойство Из МассивСвойств Цикл	
		МассивНаименований.Добавить(Свойство.Наименование);
	КонецЦикла;
	
	Возврат МассивНаименований;
	
КонецФункции;

Данный код проверялся на конфигурации «Бухгалтерия предприятия 3.0», но он подойдет для любой конфигурации.

Как результат работы нашего кода прикладываем скриншот и тестовое расширение конфигурации:

6.png - ITsale

Как видим все доп. реквизиты появились в нашем списке.

Для подключения расширения использовались такие надстройки:

7.png - ITsale

Скачать расширение

Оставить заявку на бесплатную консультацию прямо сейчас!


       Формы списка внутренних, входящих и исходящих документов позволяют пользователю самому настроить перечень колонок, которые будут отображаться в форме. В том числе в отдельные колонки можно выводить и дополнительные свойства, и дополнительные сведения документов.

       Для настройки списка следует воспользоваться командой в форме списка: Все действия — Настройка — Изменить форму.

       Для добавления колонки с дополнительным свойством следует в дереве настроек формы, в элементе формы «Список», выбрать поле «Ссылка» и нажать кнопку «Добавить поля».

       При этом откроется окно со списком реквизитов документа для размещения в форме.

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

       Так как не все документы (виды документов) в списке могут иметь данный дополнительный реквизит, то для документов, не имеющих его, в добавленной колонке будет выводиться значение по умолчанию для типа реквизита.

Вывести доп реквизит на форму списка

Я
   Nzzzz

14.09.20 — 10:31

Всем привет!

Добавляю доп реквизит «Код производителя» в справочник номенклатура. Тип строка. Далее мне нужно добавить этот реквизит на форму списка. Но не получается этого сделать. Захожу в «Изменить форму» — там нет ссылки, чтобы к ней добавить поле «Код производителя». Как его вывести на форму? подскажите пожалуйста.

Конфигурация Бухгалтерия предприятия, редакция 3.0 (3.0.77.106)

  

Партнерская программа EFSOL Oblako

   ДенисЧ

1 — 14.09.20 — 10:36

ЗАпрос динсписка менять надо

   Nzzzz

2 — 14.09.20 — 10:39

(1) а если конфа типовая?

   Timon1405

3 — 14.09.20 — 10:41

(2) расширением. добавить ссылку, а через неё и допреквизит через точку

   Вафель

4 — 14.09.20 — 10:43

допреквизит только в пользовательском режиме можно

   Nzzzz

5 — 14.09.20 — 10:45

(4) в пользовательском режиме можно добавить на форму?

Или что можно?

   РБ

6 — 14.09.20 — 10:46

(5) так через ссылка.допреквизит ж?

   Nzzzz

7 — 14.09.20 — 10:51

(6) Ссылки нет.

   РБ

8 — 14.09.20 — 10:53

(7) не верю))) Изменить форму-и нет доступного поля Ссылка???

   Nzzzz

9 — 14.09.20 — 10:57

(8) Нет, зайдите в БП 3.0 в форму списка справочника номенклатуры

   hhhh

10 — 14.09.20 — 11:07

(9) тогда точно (1)

   Nzzzz

11 — 14.09.20 — 11:08

капец

   РБ

12 — 14.09.20 — 11:09

(9) зашла. все есть.

image

   РБ

13 — 14.09.20 — 11:12

+(12) и вывела доп.реквизит

https://ibb.co/zR2GMtb

   Nzzzz

14 — 14.09.20 — 11:13

(12) https://ibb.co/z7X3smT

   Nzzzz

15 — 14.09.20 — 11:14

Почему у меня нет?!?!

   oslokot

16 — 14.09.20 — 11:16

Попробуйте Еще — установить стандартные настройки и скрин в студию

   Nzzzz

17 — 14.09.20 — 11:21

(16) Ничего не поменялось

https://ibb.co/HrN9nNd

   oslokot

18 — 14.09.20 — 11:24

Список какой-то не стандартный. Или дин.список правили или расширение наложено

  

oslokot

19 — 14.09.20 — 11:25

У всех бунхня вот так выглядит — (12)

Быстрый старт в Python для 1С Разработчиков | 1s-to-python.ru

На чтение 5 мин Просмотров 2.8к. Опубликовано 02.11.2021

Содержание

  1. Остатки в списке документов
  2. Неверный путь
  3. Оптимальное решение
  4. Обращайте внимание

Рассмотрим задачу, когда нужно вывести дополнительные реквизиты и сведения в общем списке элементов. Рассмотрим на примере конфигурации УТ 11, в справочник Номенклатура добавлен дополнительный реквизит Артикул клиента.

Открываем список элементов справочника Номенклатура, выбираем меню Все действия – Изменить форму… (рис. 1):

Рис. 1. Все действия – Изменить форму…

В открывшемся окне Настройка формы у Списка номенклатуры находим поле Ссылка, выделяем его и нажимаем Добавить поля (рис. 2):

Рис. 2. Добавление полей

Далее в открывшемся окне Выберите поля для размещения в форме выбираем нужный дополнительный реквизит Артикул клиента и нажимаем ОК (рис. 3):

Рис. 3. Выбор дополнительного реквизита

Поле Артикул клиента появляется на форме Настройка формы, можно переместить его, нажимая на стрелочки Вверх, Вниз. После выбора позиции нажимаем ОК (рис. 4):

Рис. 4. Дополнительный реквизит в списке полей

В списке Номенклатуры появилась колонка с дополнительным реквизитом Артикул клиента (рис. 5):

Рис. 5. Новая колонка в списке

Можно выгрузить в файл получившийся список, меню Все действия – Вывести список… (рис. 6):

Остатки в списке документов

Решим следующую задачу: в списке документов «Заказы поставщику» нам необходимо добавить новую колонку «Остаток по заказу», которая будет отображать остаток для документа в регистре накопления «Заказы поставщику» на текущую дату.

Реализовать это нужно в конфигурации «Управление производственным предприятием» версии 1.3.

Неверный путь

Рассмотрим самый «очевидный» путь, он же самый простой. Большинство начинающих программистов делают именно так. У табличного поля формы, которое привязано к реквизиту формы с типом «ДокументСписок» есть событие «ПриВыводеСтроки». В нем напишем Запрос к остаткам по заказу для выводимой строки и полученный результат присвоим ячейке текущей строки в колонке «Остаток». Вот так будет выглядеть код обработчика события «ПриВыводеСтроки»:

Дело сделано! Задача решена! Но! Событие «ПриВыводеСтроки» вызывается для каждой строки отдельно. То есть, если в список выводится 30 строк, то запрос будет формироваться столько же раз! Может есть другой путь?

Оптимальное решение

Другой путь есть. Оптимальное решение кроется в использовании события «ПриПолученииДанных». Это событие вызывается один раз, когда происходит получение порции данных списком документов. В контексте этого события нам доступны данные, которые получила платформа. Поэтому мы можем их обработать одним запросом. Вот программный код обработчика «ПриПолученииДанных» для решения этой задачи:

Результат работы такой же, как и для варианта с использованием события «ПриВыводеСтроки», но есть одно НО.

Обращайте внимание

Самое главное отличие заключается в скорости работы. Вот сравнение времени выполнения для обоих вариантов решения задачи:

При использовании «ПриВыводеСтроки» время формирования списка выполняется дольше практически в четыре раза! Не смотря на это, не рекомендую добавлять подобные поля в список документов, поскольку, в любом случае, это потребует дополнительных ресурсов серверной машины. Лучше используйте отчеты.

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

Задача:
Производство. Вахтовый метод работы, сменные графики, когда вахтовый цикл составляет 1 месяц, 2 месяца и 3 месяца. Территория — местность приравненная к районам крайнего севера (МСК), со всеми вытекающими последствиями для учета. По спец. оценке условий труда (СОУТ) количество дней отпуска будет изменяться в зависимости от класса «вредности». Этот факт мы также обязаны предусмотреть при составлении графика. А именно будет изменяться количество дней оплачиваемого отдыха за работу сверх нормы. Итак, условий много. Было решено создавать графики с учетом всех условий, максимально приближено к реальным. Ежемесячные особенности, к примеру изменения дат и количества дней в пути, корректировать индивидуальными.
На выходе получили более 50 графиков работ. Встал вопрос как их идентифицировать при приеме и переводе сотрудников. Заказчик поставил задачу разработать внутренние нормативные документы для упрощения работы кадровой службы. Начали описывать. Договорились что для информативности унифицируем названия графиков. Но по факту этого оказалось недостаточно. Очень хотелось иметь ещё и номер. Структура элемента справочника Графики работы сотрудников к нашему разочарованию не имеет нумерации.

Я пошла искать подобные темы. Форумчане в голос твердили что без снятия конфигурации с поддержки не обойтись. Вот пример такой темы: https://buh.ru/forum/forum18375/topic80453/

Но на моем проекте жёсткое условие, конфигурацию с поддержки не снимать. Подумав пару часов, нашла решение. Применила дополнительные реквизиты и настройки списка.

Решение:

1. Создаем дополнительный реквизит к справочнику Графики работы сотрудников

Как видно на рисунке выше, дополнительный реквизит самый простой, тип строка.

2. Для удобства переместила доп. реквизит на форме элемента справочника вверх

3. В форме списка справочника — Все действия (или «Ещё», если работаете в режиме Такси) — Изменить форму. Добавим на форму поле «Ссылка»

4. Теперь идем в Настроить список (там же, во «Все действия») Условное оформление — Добавим текст, но выберем не Строка, а Поле компоновки данных — ДополнительныеРеквизиты.Значение

5. В качестве оформляемого поля выбираем Ссылка

6. Сохраняем настройки. При необходимости, передаем свои настройки другим пользователям. И радуемся обновленному списку справочника

Буду рада если кому-нибудь пригодится такое решение.

  • Распечатать

Оцените статью:

  1. 5
  2. 4
  3. 3
  4. 2
  5. 1

(0 голосов, среднее: 0 из 5)

Поделитесь с друзьями!

Рассмотрим задачу, когда нужно вывести дополнительные реквизиты и сведения в общем списке элементов. Рассмотрим на примере конфигурации УТ 11, в справочник Номенклатура добавлен дополнительный реквизит Артикул клиента.

Открываем список элементов справочника Номенклатура, выбираем меню Все действия – Изменить форму… (рис. 1):

Рис. 1. Все действия – Изменить форму…

В открывшемся окне Настройка формы у Списка номенклатуры находим поле Ссылка, выделяем его и нажимаем Добавить поля (рис. 2):

Рис. 2. Добавление полей

Далее в открывшемся окне Выберите поля для размещения в форме выбираем нужный дополнительный реквизит Артикул клиента и нажимаем ОК (рис. 3):

Рис. 3. Выбор дополнительного реквизита

Поле Артикул клиента появляется на форме Настройка формы, можно переместить его, нажимая на стрелочки Вверх, Вниз. После выбора позиции нажимаем ОК (рис. 4):

Рис. 4. Дополнительный реквизит в списке полей

В списке Номенклатуры появилась колонка с дополнительным реквизитом Артикул клиента (рис. 5):

Рис. 5. Новая колонка в списке

Можно выгрузить в файл получившийся список, меню Все действия – Вывести список… (рис. 6):

Рис. 6. Вывод списка в файл

Автор: Дина Королева

Подписывайтесь на канал
«Полезный 1С»

В телеграм канале — наш практический опыт, бизнес-кейсы и способы повышения эффективности компании, которые мы опробовали внутри группы Neti.

.

Возврат к списку

Что ни день вижу обсуждения, где предлагают нещадно ломать типовую конфигурацию для решения задач, того вовсе не требующих. Если есть необходимость сохранения каких либо дополнительных данных, сохранение которых не предусмотрено не стоит сразу создавать свои справочники или регистры сведений, и уж тем более не нужно добавлять свои реквизиты в справочники и документы. Дополнительные реквизиты в типовых конфигурациях существуют давно, так что ничего нового я тут не открыл, просто увидел, что в БП 3.0 механизм несколько изменился, решил поделиться с сообществом. (Файл с текстом в word во вложении:-)
28.06.2014 — Для работы с ДРС предлагаю использовать инструмент, описанный http://infostart.ru/public/288722/

Использование дополнительных реквизитов и сведений в БП 3.0

Дополнительные реквизиты и сведения (далее ДРС) — механизм, позволяющий не изменяя конфигурацию расширить её функционал. Написать эту заметку сподвиг заказ на печать ТТН и Справки А и Б с сохранением реквизитов, с целью их дальнейшего использования в декларациях по алкогольной продукции, да и просто для того, что бы повторно посмотреть дополнительную информацию по реализации. Используют базовую БП 3.0 — менять конфигурацию соответственно нельзя, да для этой задачи вполне достаточно ДРС.

Для БП 2.0 в принципе решение у меня давно есть — так же использую дополнительные реквизиты, где сохраняются данные по автомобилю, водителю, перевозчику и т.д. Схема отработана — при печати записываются (при первой печати создаются не созданные) дополнительные реквизиты, при последующем выводе на печать реквизиты формы заполняются сохраненными значениями. Эти же данные использую при заполнении деклараций по алкоголю. Стал делать на УФ в БП 3.0 (3.0.20.18) и увидел, что механизм использования ДРС существенно изменился, причем ИМХО в лучшую сторону:

  1. Изменились объекты, «обслуживающие» ДРС:

БП 2.0

БП 3.0

Справочник ЗначенияСвойствОбъектов

Удален

План видов характеристик НазначенияСвойствКатегорийОбъектов

Удален

План видов характеристик

СвойстваОбъектов

Удален

Регистр сведений ЗначенияСвойствОбъектов

Удален

Нет

Справочник НаборыДополнительныхРеквизитовИСведений

Нет

План видов характеристик ДополнительныеРеквизитыИСведения

Нет

Регистр сведений ДополнительныеСведения

  1. В 2.0 название «Дополнительны реквизиты» не совсем точно отражает суть назначение эти данных — это всё-таки именно «дополнительные сведения», и хранятся они в объектах конфигурации, отличных от самого объекта этих сведений. В 3.0 можно задавать как сведения, сохраняемые регистре «Дополнительные сведения», так и именно реквизиты, сохраняемые в табличной части справочников «ДополнительныеРеквизиты» (в УТ 11 сейчас аналогичная табличная часть есть и у документов), причем эти реквизиты стали доступны в форме элемента справочника, а не вызываются по кнопке отдельным окном.

Как видим, объектов ДРС стало меньше, а работать с ними, как мне кажется, удобнее. Значительным отличием является хранение списка объектов конфигурации, для которых возможно хранение ДРС, не в плане видов характеристик «НазначенияСвойствКатегорийОбъектов», а в справочнике «НаборыДополнительныхРеквизитовИСведений», имеющем две табличные части:

  • — ДополнительныеРеквизиты — содержит список реквизитов, доступных в форме справочника для чтения/записи и флаг их обязательного заполнения. эти реквизиты хранятся в табличной части справочника;
  • — ДополнительныеСведения — список сведений, сохраняющихся в регистре «ДополнительныеСведения» и доступных по дополнительной кнопке.

Для документов сейчас доступен только выбор дополнительных сведений:

Для справочников можно установить и сведения и дополнительные реквизиты:

Причем редактируются дополнительные реквизиты справочника в форме элемента:

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

Изменился и состав объектов, имеющих ДРС:

  • — БП 2.0 это 15 справочников и список всех документов конфигурации в одной характеристике,
  • — БП 3.0 справочников стало 18, и 110 документов (не проверял все это документы или нет), на каждый из которых дополнительные сведения задаются в отдельном предопределенном элементе справочника «НаборыДополнительныхРеквизитовИСведений».

Для дополнительных реквизитов с типом «Значение свойства объекта» можно задавать произвольный список для выбора — фактически аналог справочника (с 2.0 это был справочник «ЗначенияСвойствОбъектов»):

Список может редактироваться.

Ещё один момент, из справки к ПВХ «ДополнительныеРеквизитыИСведения» — «Все дополнительные реквизиты и сведения объектов можно вывести в отчетах и списках.». Действительно, теперь зарегистрированные ДРС можно использовать не только для целей сохранения данных, но и, например, для отбора в списке документа и т.п.

Список РТиУ без отбора:

Записанные дополнительные сведения для документа:

Настройка отбора списка РТиУ по доп.сведениям:

Список РТиУ с установленным отбором по незаполненному водителю:

Вроде бы пустячки, а приятно……….

1.    Создание на форме дополнительных реквизитов в 1С 8.3 и их функции

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

Вывести реквизиты на форму можно динамически, при ее открытии. Если смотреть отладчиком, то видно, что после процедур ПриСозданииНаСервере и ПриОткрытии дополнительных реквизитов в 1С 8.3 еще нет. Появятся они, когда активизируется закладка «Дополнительно». При создании на форме, реквизитам присваиваются длинные, страшные, ни о чем не говорящие имена. Например:

Имена значений дополнительных реквизитов на форме

Из-за этого возникают сложности с программным обращением к дополнительным реквизитам в 1С 8.3.

Дополнительные реквизиты на форме создаются типовой процедурой УправлениеСвойствами.ЗаполнитьДополнительныеРеквизитыВФорме:


Создание дополнительных реквизитов на форме

Посмотрим отладчиком, как выглядит форма с созданными на ней дополнительными реквизитами для программного обращения:

Форма с созданными на ней дополнительными реквизитами в 1С 8.3  

2.     Установка значения дополнительного реквизита в 1С 8.3 с помощью обращения к нему по имени

Чтобы иметь возможность программного обращения к созданным дополнительным реквизитам, нужно знать их имена на форме. Помочь разработчику узнать имена дополнительных реквизитов может специальный реквизит Свойства_ОписаниеДополнительныхРеквизитов. Его автоматически создает система, когда используется механизм дополнительных реквизитов. Тип этого служебного реквизита ДанныеФормыКоллекция. Он содержит список всех дополнительных реквизитов объекта и все сведения о них. Теперь, мы сможем найти нужный дополнительный реквизит в 1С 8.3 по имени, или по соответствующему ему свойству плана видов характеристик. Итак, обращаясь по имени к доп.реквизиту можно присвоить ему нужное значение, либо, наоборот, получить его значение и, например, как-то проверить.

Найти в плане видов характеристик интересующий нас реквизит можно по имени для разработчиков. Имя дополнительного реквизита для разработчиков видно в пользовательском режиме в нижней части формы характеристики, в разделе Для разработчиков:

Раздел Для разработчиков в нижней части формы характеристики

Вот вариант процедуры, которая получает поле доп. реквизита по его имени:

Параметры функции: форма и имя дополнительного реквизита

Функция принимает два параметра – форма и имя дополнительного реквизита (имя для разработчиков). Сперва получим тот самый служебный реквизит, в котором содержатся данные о всех дополнительных реквизитах на форме. Затем по имени дополнительного реквизита в 1С 8.3 найдем свойство в плане видов характеристик. Теперь по этому свойству можем в списке реквизитов найти соответствующий реквизит.

Так может выглядеть код, вызывающий процедуру и устанавливающий значение дополнительному реквизиту:

Код, вызывающий процедуру и устанавливающий значение дополнительному реквизиту в 1С 8.3

Главное преимущество использования механизма дополнительных реквизитов состоит в том, что у нас нет необходимости вносить изменения в типовую конфигурацию. При этом, зная несколько тонкостей обращения с дополнительными реквизитами в 1С 8.3, мы получаем возможность работать с ними так же свободно, как и с основными реквизитами объекта.

Специалист компании «Кодерлайн»

Екатерина Редько

Понравилась статья? Поделить с друзьями:
  • 1с групповое изменение реквизитов не все реквизиты
  • 1с групповое изменение реквизитов пометка удаления
  • 1с добавление дополнительного реквизита программно
  • 1с добавление дополнительных реквизитов программно
  • 1с документооборот дополнительный реквизит таблица