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

Как вывести дополнительные реквизиты на форму списка справочника Графики работы сотрудников. Управляемые формы. Без снятия конфигурации с поддержки

24.02.2019

Как вывести дополнительные реквизиты на форму списка справочника Графики работы сотрудников Подходит для ERP, ЗУП v. 3.0; 3.1

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

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

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

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

Решение:

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

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

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

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

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

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

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

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


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

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

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

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

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

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

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

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

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

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

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

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

6.png - ITsale

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

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

7.png - ITsale

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

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


Допустим, вы завели новый дополнительный реквизит номенклатуры, заполнили его и теперь вам нужно добавить этот реквизит в список. Как это сделать не прибегая к программированию и изменению конфигурации? Рассмотрим в данной статье.

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

Рассмотрим механизм добавления колонки с дополнительным реквизитом на примере конфигурации УТ 11 (подойдет также и для Бухгалтерия 3.0,  Розница 2.2, 2.3 и др. конфигураций на управляемых формах).

У нас есть дополнительный реквизит под названием «Категория цветов».

Дополнительный реквизит

Дополнительный реквизит номенклатуры

Нам требуется вывести его в список номенклатуры следующим образом:

Колонка

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

Для этого в форме списка номенклатуры нажимаем кнопку «Еще»/ «Изменить форму».

изменить форму

Кнопка изменить форму

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

добавить поля

Кнопка добавить поля

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

Выбор

Выбор реквизита

Выбранный реквизит появится в настройках формы. Отмечаем его галочкой и нажимаем «Применить».

Колонка

Новая колонка

Вот мы и добавили новую колонку с нашим дополнительным реквизитом в форму списка номенклатуры.

Колонка

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

Надеюсь, статья была вам полезна. Если что-то не получилось — вы всегда можете обратиться ко мне.

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

Я
   AceVi

13.08.21 — 15:46

Приветствую всех.

подымалась мне такая задача.

Как добавить в динамический список доп реквизит программно? и условное оформление по нему.

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

а как сделать то же самое программно? я так и не смог найти.

а потом сделать по нем условное оформление.( но думаю при решении 1 вопроса решиться и 2).

если у нас динамический список произвольныйЗАПРОС = ИСТИНА. то все понятно — меняем запрос добавляя туда данные

но в нашем случае ЛОЖЬ и просто задана основная таблица и все.

как в нашем случае вывести доп рек программно на управляемую форму?

  

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

   AceVi

1 — 16.08.21 — 15:18

ап

пока в голову пришло только разворотить все через расширение и поставить произвольныйЗАПРОС = ИСТИНА и дальше от этого плясать

   DrShad

2 — 16.08.21 — 15:24

создай поле и пропиши ПутьКДанным типа «ПодразделениеОрганизации.Цех»

делов то

   AceVi

3 — 16.08.21 — 15:38

(2) Неверно!

Доп рек -ты лежат в таблице привязанной к объекту. это не просто реквизит объекта.

   hhhh

4 — 16.08.21 — 15:41

(3) а зачем программно? добавляйте непрограммно. поставьте галку Произвольный запрос и вперед.

   DrShad

5 — 16.08.21 — 15:42

(3) ты про Характеристики что-то слышал?

   AceVi

6 — 16.08.21 — 15:47

(4) ну вот разве что так, но хотелось бы программно. нельзя?

(5) что то слышал — но при чем тут они? как они связаны с доп рек-ми?

   DrShad

7 — 16.08.21 — 15:49

(6) самым тесным образом

   AceVi

8 — 16.08.21 — 15:57

(7) простите, но вы не помогаете решить проблему.

дайте ссылку что ли хотя бы — где характеристики делают как доп рек-ты и программно выводят на динамический список где роизвольныйЗАПРОС = лЛожь.

   Жан Пердежон

9 — 16.08.21 — 15:59

(8) как по-твоему, откуда дин.список узнает откуда ему брать доп.реквизиты, если они лежат в другой таблице?

   AceVi

10 — 16.08.21 — 16:04

(9) Через запрос . а уж как он там платформе его формирует — то мне не ведомо.

   hhhh

11 — 16.08.21 — 16:09

(6) если программно это в 10 раз дольше. А результат, если что-то поменяется в динамическом списке, то программное еще быстрее рухнет. Так что то же самое, что и не программно. В случае динамического списка без разницы.

   DrShad

12 — 16.08.21 — 16:10

   DrShad

13 — 16.08.21 — 16:10

(10) через характеристики )))

   AceVi

14 — 16.08.21 — 16:11

(11) не поныл вас.

ну может не в 10 а в 3 раза дольше. ну что жеш.

насчет «рухнет» не согласен.

   AceVi

15 — 19.08.21 — 10:20

Короче может кому пригодиться

1. Сделать все красиво не получилось(т.е. добавить програмно доп рек на форму и отбор по нему)

2. Начало процедуры в расширении при создании на сервере

2.1 Выбираем своим запросом ссылки с этим доп рек-ом

2.2 делаем условное оформление где выделяем цветом строку с нужным значением доп рек-та(не отбор, но видимо выделяем для пользователя)

2.3 при изменении(а значит кто то записал элемент справочника) — обновляем список из 2.1 и обновляем его в отборе условного оформления из 2.2.

Итого получаем — рек-та нет на форме, но форма реагирует цветным выделением строки для нужного значения доп рек-та.

Да, это только условное выполнение конкретной задачи для доп рек-ты у которого ограниченное(заранее заданное) кол-во значений.

Как можно сделать лучше?

   runoff_runoff

16 — 19.08.21 — 12:09

Поле.ПутьКДанным = «Список.Ссылка.[наименование доп реквизита]»;

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

   runoff_runoff

17 — 19.08.21 — 12:11

(16) метаданные из (12).. квадратные скобки обязательны..

   Pro-tone

18 — 19.08.21 — 12:12

(0) никак кроме как добавлением поля в запрос демонического списка, условное оформление не имеет отношения к данным списка, оно всего лишь его разукрашивает

  

AceVi

19 — 19.08.21 — 12:51

(18) еще как имеет.

1. Отбор по данным списка( что именно разукрашиваем)

2. Оформляемые поля- сиречь колонки списка для рзукрашивания.

как видим оформление — напрямую зависит от данных.

(16) это не спортивно — стандартную конфу менять нельзя а в  расширении характеристики добавлять нельзя.

отклонено.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

.

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

На чтение 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)

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

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

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

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

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

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

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

Понравилась статья? Поделить с друзьями:

Другие крутые статьи на нашем сайте:

0 0 голоса
Рейтинг статьи
Подписаться
Уведомить о
guest

0 комментариев
Старые
Новые Популярные
Межтекстовые Отзывы
Посмотреть все комментарии