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

Нет справочника в Дополнительных реквизитах

Я
   busy1

19.01.23 — 17:39

Добрый день, прошу посоветовать куда копать. Почему то не отображается справочник в дополнительных реквизитах. Для того, что бы добавить доп. реквизиты. Конфа Бух. 3

  

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

   OldCondom

1 — 19.01.23 — 18:23

смотри в ПВХ «ДополнительныеРеквизитыИСведения», включен ли твой справочник.

   busy1

2 — 19.01.23 — 18:39

Да, включен

   mistеr

3 — 19.01.23 — 18:41

(0) Справочник типовой?

  

mistеr

4 — 19.01.23 — 18:42

Читай документацию БСП, как подключить объект к подсистеме.

TurboConf — расширение возможностей Конфигуратора 1С

В новых редакциях программ 1С была существенно усовершенствована подсистема дополнительных реквизитов Дополнительные реквизиты и сведения. Эта подсистема дает возможность пользователю самим добавлять реквизиты и сведения к объектам программы не прибегая к помощи программиста.

Содержание

  • Дополнительные реквизиты и сведения в 1С
  • Настройка подсистемы Дополнительные реквизиты и дополнительные сведения на примере 1С 8.3 Бухгалтерия 3.0
    • Добавление дополнительных реквизитов
    • Добавление дополнительных сведений к форме

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

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

Настройка подсистемы Дополнительные реквизиты и дополнительные сведения на примере 1С 8.3 Бухгалтерия 3.0

Включить возможность создавать дополнительные реквизиты и сведения и настроить их можно в разделе Администрирование — Общие настройки. Для этого в подразделе Дополнительные реквизиты и сведения установите галочки, разрешающие добавлять эти элементы.

Добавление дополнительных реквизитов

Для добавления и настройки дополнительных реквизитов в 1С 8.3 перейдем по ссылке Дополнительные реквизиты. В окне перечислены объекты, к которым можем добавить реквизиты.

Для примера, создадим несколько дополнительных реквизитов к справочнику Номенклатура. Выберем элемент, к которому будем создавать реквизит (в нашем примере Номенклатура) и нажмем кнопку Добавить — Новый.

Для примера создадим Дополнительный реквизит, значения которого будут заданы и их необходимо будет выбрать из списка. Назовем его Доп. реквизит 1 (выбор значения). В открывшейся форме зададим его Наименование, Тип значения оставляем Дополнительный реквизит. При желании можно установить флажок Выводить в виде гиперссылки, соответственно в форме элемента данное поле будет представлено в виде гиперссылки. Настраиваем видимость, доступность и обязательность заполнения и по желанию заполнить следующие поля.

На вкладке Значения можем перечислить значения нашего реквизита, при этом значения можно объединять в группы. Например, Значение доп. реквизита 1, значение доп. реквизита 2, значение доп. реквизита 3.

Нажимаем Записать и закрыть и также сохраняем наш созданный реквизит.

Создадим еще один реквизит, назовем его Доп. реквизит — 2 (установка галочки). Для добавления реквизита галочка, флажок установим Тип реквизита Булево. При смене реквизита меняются настройки формы. В данном случае нам предлагается установить настройки видимости и доступности, установить всплывающую подсказку.

Сохраняем реквизит, нажав кнопку Записать и закрыть.

Введем для примера еще один реквизит с Типом значения Строка (назовем его для примера Доп. реквизит — 3 (текст)).

Все настройки интуитивно понятны.

Так, при создании дополнительных реквизитов в 1С, при выборе Тип значения реквизита, мы можем использовать разные варианты и в зависимости от его выбора немного меняется настройка создаваемого реквизита.

Итак, мы создали три дополнительных реквизита к справочнику Номенклатура.

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

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

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

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

Рассмотрим пример добавления дополнительных сведений в 1С 8.3. Для этого перейдем по ссылке Дополнительные сведения, в разделе Администрирование — Общие настройки — Дополнительные реквизиты и сведения. Выберем элемент для добавления сведений и нажимаем кнопку Создать — Новое.

Новый объект в предложенный список ввести нельзя. В списке отражены все документы и часть справочников, для которых можно добавить Дополнительные сведения. Дополнительные реквизиты можно добавить лишь к справочникам.

Добавление и настройка дополнительных сведений в 1С производится аналогично дополнительным реквизитам.

Для примера создадим одно дополнительное сведение для справочника Сотрудники, где выбор будет производится из справочника Физические лица, для указания лица, которому подчиняется данный сотрудник (назовем его просто Дополнительные сведения).

Откроем справочник Сотрудники и проверим добавление сведений. Эта информация скрыта из формы элемента и открывается нажатием кнопки Еще — Дополнительные сведения.

Выбрав этот пункт, мы можем добавить дополнительные сведения для данного элемента справочника, в данном примере выбрав из справочника Физические лица.

Аналогично можно добавить Дополнительные сведения и к документам. Окно ввода дополнительных сведений также будет доступно в кнопке Еще — Дополнительные сведения документа.

Данная команда доступна как из самого документа, так и из журнала документов.

См. также:

  • Печать ценников в 1С
  • Очистка кэш 1С 8.3
  • Журнал регистрации в 1С 8.3
  • Как сделать копию базы 1С 8.3
  • Загрузка из Excel в 1С 8.3
  • Как выгрузить документ, отчет из 1С 8.3 в Excel

Если Вы еще не являетесь подписчиком системы БухЭксперт8:

Активировать демо-доступ бесплатно →

или

Оформить подписку на Рубрикатор →

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

Подписывайтесь на наши YouTube и Telegram чтобы не пропустить
важные изменения 1С и законодательства

Помогла статья?

Получите еще секретный бонус и полный доступ к справочной системе БухЭксперт8 на 14 дней бесплатно

Contents

  • 1 Введение
  • 2 Архитектура
  • 3 Использование
  • 4 Особенности реализации
  • 5 Источники

Введение

В этой статье я хотел бы рассказать об архитектуре, использовании и особенностях реализации подсистемы «Свойства» из инструментария разработчика «1С:Библиотека стандартных подсистем» (1С БСП).

Для начала предлагаю разобраться с терминологией 1С БСП: согласно ИТС дополнительные реквизиты и сведения — это свойства.  По моему мнению, подсистема «Свойства» (Управление свойствами) — это очень мощный функционал, который позволяет во многих случаях отказаться от снятия конфигурации с поддержки или внесения ненужных изменений и ошибок в конфигурацию.

Архитектура

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

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

Следующий рисунок изображает пример дополнительного реквизита, слева-направо: элемент справочника «Наборы дополнительных реквизитов и свойств», элемент плана видов характеристик и элемент справочника, в который был добавлен дополнительный реквизит.

Также стоит учитывать, что большая часть объектов метаданных в справочнике «Наборы дополнительных реквизитов и сведений» является предопределённой:

Однако, заполнение этих данных происходит программно, при внедрении 1С БСП или обновлении информационной базы — для этого в общих модулях добавляют процедуру ПриПолученииПредопределенныхНаборовСвойств. Уникальный идентификатор задаётся в явном виде, в т.ч. для того чтобы облегчить процедуры обмена между базами.

// См. УправлениеСвойствамиПереопределяемый.ПриПолученииПредопределенныхНаборовСвойств.
//
// Параметры:
//   Наборы - см. УправлениеСвойствамиПереопределяемый.ПриПолученииПредопределенныхНаборовСвойств.Наборы
//
Процедура ПриПолученииПредопределенныхНаборовСвойств(Наборы) Экспорт
	Набор = Наборы.Строки.Добавить();
	Набор.Имя = "Справочник_ПапкиФайлов";
	Набор.Идентификатор = Новый УникальныйИдентификатор("00000000-0000-0000-0000-000000000000");
КонецПроцедуры

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

&НаСервере
Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)
    
    // Обработчик подсистемы "Свойства"
    ДополнительныеПараметры = Новый Структура;
    ДополнительныеПараметры.Вставить("Объект", Объект);
    ДополнительныеПараметры.Вставить("ИмяЭлементаДляРазмещения", "ГруппаДополнительныеРеквизиты");
    УправлениеСвойствами.ПриСозданииНаСервере(ЭтаФорма, ДополнительныеПараметры);
    
КонецПроцедуры

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

Использование

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

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

ВЫБРАТЬ
	ГражданствоФизическихЛиц.ФизическоеЛицо КАК ФизическоеЛицо,
	ФизическиеЛицаДополнительныеРеквизиты.Значение КАК Рост,
	ГражданствоФизическихЛиц.Страна КАК Страна
ИЗ
	Справочник.ФизическиеЛица.ДополнительныеРеквизиты КАК ФизическиеЛицаДополнительныеРеквизиты
		ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ГражданствоФизическихЛиц КАК ГражданствоФизическихЛиц
		ПО ГражданствоФизическихЛиц.ФизическоеЛицо = ФизическиеЛицаДополнительныеРеквизиты.Ссылка
ГДЕ
	ГражданствоФизическихЛиц.ФизическоеЛицо = &ФизическоеЛицо
	И ФизическиеЛицаДополнительныеРеквизиты.Свойство.Имя = &Имя

Результат:

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

ВЫБРАТЬ
	ЦеныНоменклатурыСрезПоследних.Номенклатура КАК Номенклатура,
	ЦеныНоменклатурыСрезПоследних.ТипЦен КАК ТипЦен,
	ЦеныНоменклатурыСрезПоследних.Цена КАК Цена,
	ДополнительныеСведения.Свойство КАК Свойство,
	ДополнительныеСведения.Значение КАК Значение,
	ДополнительныеСведения.Свойство.Имя КАК ИмяСвойства
ИЗ
	РегистрСведений.ЦеныНоменклатуры.СрезПоследних(
			&Дата,
			Номенклатура = &Номенклатура
				И ТипЦен = &ТипЦен) КАК ЦеныНоменклатурыСрезПоследних
		ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ДополнительныеСведения КАК ДополнительныеСведения
		ПО ЦеныНоменклатурыСрезПоследних.Номенклатура = ДополнительныеСведения.Объект
ИТОГИ
	МАКСИМУМ(Номенклатура),
	МАКСИМУМ(Цена)
ПО
	ОБЩИЕ,
	ТипЦен

Результат:

Примеры получения свойств без запроса:

Рост = ПланыВидовХарактеристик.ДополнительныеРеквизитыИСведения.найтиПоРеквизиту("Имя", "Рост_12f49d4f164847b79effd75a758186c3");
// Получение дополнительного реквизита
Рост = УправлениеСвойствами.ЗначениеСвойства(ФизическоеЛицо.Ссылка, Рост);
// Получение всех дополнительных реквизитов и сведений объекта
ВсеСвойства = УправлениеСвойствами.ЗначенияСвойств(ФизическоеЛицо.Ссылка);

Особенности реализации

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

Чтобы найти реквизит на форме 1С БСП создаёт новые реквизиты формы Свойства_ОписаниеДополнительныхРеквизитов и Свойства_ОписаниеЗависимыхДополнительныхРеквизитов, с помощью них можно установить однозначное соответствие между элементом и значением объекта:

Второй особенностью реализации можно выделить невозможность создания свойства с мутабельным типом, с одной стороны это очевидное ограничение, с другой тип «Список значений» вполне допустим, но только для дополнительного реквизита (у дополнительных сведений невозможность связана с архитектурными ограничениями, так как объект и свойство — это измерения регистра «Дополнительные сведения»). Возможно, отсутствие такого типа связано со сложностями при обмене, а возможно в скором времени это будет реализовано, предлагаю посмотреть на пример такой реализации ниже.

Добавим новый дополнительный реквизит для справочника физические лица «Номера счетов»

Добавляем программно, вторую запись в табличную часть «Дополнительные реквизиты» справочника «Физические лица» с тем же самым свойством:

Немного модифицируем код функции ЗначенияСвойств в общем модуле УправлениеСвойствамиСлужебный:

А также код процедуры ЗаполнитьДополнительныеРеквизитыВФорме в общем модуле УправлениеСвойствами:

Таким образом мы можем сохранять и восстанавливать значения реквизитов, которые, принимают множество значений.

// Создает/пересоздает дополнительные реквизиты и элементы в форме владельца свойств.
//
// Параметры:
//  Форма           - ФормаКлиентскогоПриложения - уже настроена в процедуре ПриСозданииНаСервере.
//
//  Объект          - Неопределено - взять объект из реквизита формы "Объект".
//                  - СправочникОбъектИмяСправочника - 
//                  - ДокументОбъектИмяДокумента - 
//                  - ПланВидовХарактеристикОбъектИмяПланаВидовХарактеристик - 
//                  - БизнесПроцессОбъектИмяБизнесПроцесса - 
//                  - ЗадачаОбъектИмяЗадачи - 
//                  - ПланВидовРасчетаОбъектИмяПланаВидовРасчета - 
//                  - ПланСчетовОбъектИмяПланаСчетов -
//                  - ДанныеФормыСтруктура -
//
//  ПоляНадписей    - Булево - если указать Истина, то вместо полей ввода на форме будут созданы поля надписей.
//
//  СкрытьУдаленные - Неопределено - не менять текущий режим скрытия удаленных, установленный ранее.
//                  - Булево - установить/отключить режим скрытия удаленных.
//                    При вызове процедуры ПередЗаписьюНаСервере в режиме скрытия удаленных, удаленные значения
//                    очищаются (не переносятся обратно в объект), а режим СкрытьУдаленные устанавливается Ложь.
//
Процедура ЗаполнитьДополнительныеРеквизитыВФорме(Форма, Объект = Неопределено, ПоляНадписей = Ложь, СкрытьУдаленные = Неопределено) Экспорт
	
	Если НЕ Форма.Свойства_ИспользоватьСвойства
	 ИЛИ НЕ Форма.Свойства_ИспользоватьДопРеквизиты Тогда
		Возврат;
	КонецЕсли;
	
	Если ТипЗнч(СкрытьУдаленные) = Тип("Булево") Тогда
		Форма.Свойства_СкрытьУдаленные = СкрытьУдаленные;
	КонецЕсли;
	
	Если Объект = Неопределено Тогда
		ОписаниеОбъекта = Форма.Объект;
	Иначе
		ОписаниеОбъекта = Объект;
	КонецЕсли;
	
	Форма.Свойства_НаборыДополнительныхРеквизитовОбъекта = Новый СписокЗначений;
	
	КлючНазначения = Неопределено;
	НаборыСвойствОбъекта = УправлениеСвойствамиСлужебный.ПолучитьНаборыСвойствОбъекта(
		ОписаниеОбъекта, КлючНазначения);
	
	УправлениеСвойствамиСлужебный.ЗаполнитьНаборыСДополнительнымиРеквизитами(
		НаборыСвойствОбъекта,
		Форма.Свойства_НаборыДополнительныхРеквизитовОбъекта);
	
	ОбновитьКлючНазначенияФормы(Форма, КлючНазначения);
	
	ОписаниеСвойств = УправлениеСвойствамиСлужебный.ЗначенияСвойств(
		ОписаниеОбъекта.ДополнительныеРеквизиты.Выгрузить(),
		Форма.Свойства_НаборыДополнительныхРеквизитовОбъекта,
		Ложь);
	
	ОписаниеСвойств.Колонки.Добавить("ИмяРеквизитаЗначение");
	ОписаниеСвойств.Колонки.Добавить("СтрокаСсылочногоТипа");
	ОписаниеСвойств.Колонки.Добавить("ИмяСсылочногоРеквизитаЗначение");
	ОписаниеСвойств.Колонки.Добавить("ИмяУникальнаяЧасть");
	ОписаниеСвойств.Колонки.Добавить("ДополнительноеЗначение");
	ОписаниеСвойств.Колонки.Добавить("Булево");
	
	УдалитьСтарыеРеквизитыИЭлементы(Форма);
	
	// Создание реквизитов.
	ДобавляемыеРеквизиты = Новый Массив();
	
	Для каждого ОписаниеСвойства Из ОписаниеСвойств Цикл
		
		ТипЗначенияСвойства = ОписаниеСвойства.ТипЗначения;
		СписокТипов = ТипЗначенияСвойства.Типы();
		СтроковыйРеквизит = (СписокТипов.Количество() = 1) И (СписокТипов[0] = Тип("Строка"));
		
		// Поддержка строк неограниченной длины.
		ИспользоватьНеограниченнуюСтроку = УправлениеСвойствамиСлужебный.ИспользоватьНеограниченнуюСтроку(
			ТипЗначенияСвойства, ОписаниеСвойства.МногострочноеПолеВвода);
		
		Если ИспользоватьНеограниченнуюСтроку Тогда
			ТипЗначенияСвойства = Новый ОписаниеТипов("Строка");
		ИначеЕсли ТипЗначенияСвойства.СодержитТип(Тип("Строка"))
			И ТипЗначенияСвойства.КвалификаторыСтроки.Длина = 0 Тогда
			// Если нельзя использовать неограниченную строку, а в свойствах реквизита она неограниченная,
			// то устанавливаем ограничение в 1024 символа.
			ТипЗначенияСвойства = Новый ОписаниеТипов(ОписаниеСвойства.ТипЗначения,
				,,, Новый КвалификаторыСтроки(1024));
		КонецЕсли;
		
		ОписаниеСвойства.ИмяУникальнаяЧасть = 
		СтрЗаменить(ВРег(Строка(ОписаниеСвойства.Набор.УникальныйИдентификатор())), "-", "x")
		+ "_"
		+ СтрЗаменить(ВРег(Строка(ОписаниеСвойства.Свойство.УникальныйИдентификатор())), "-", "x");
		
		// {{ Prosto. [Silantev Oleg Sergeevich] - [26.09.2020 21:51].
		Если ОписаниеСвойств.Найти("ДополнительныйРеквизитЗначение_" + ОписаниеСвойства.ИмяУникальнаяЧасть) <> Неопределено Тогда 
			ОписаниеСвойства.ИмяУникальнаяЧасть = ОписаниеСвойства.ИмяУникальнаяЧасть + "_" + ОписаниеСвойств.Индекс(описаниеСвойства);		
		КонецЕсли;
		// }} {{ Prosto. [Silantev Oleg Sergeevich] - [26.09.2020 21:51].
		
		
		ОписаниеСвойства.ИмяРеквизитаЗначение =
		"ДополнительныйРеквизитЗначение_" + ОписаниеСвойства.ИмяУникальнаяЧасть;
		
		
		ОписаниеСвойства.СтрокаСсылочногоТипа = Ложь;
		Если СтроковыйРеквизит
			И Не ИспользоватьНеограниченнуюСтроку
			И ОписаниеСвойства.ВыводитьВВидеГиперссылки Тогда
			ФорматированнаяСтрока                           = Новый ОписаниеТипов("ФорматированнаяСтрока");
			ОписаниеСвойства.СтрокаСсылочногоТипа           = Истина;
			ОписаниеСвойства.ИмяСсылочногоРеквизитаЗначение = "СсылочныйДополнительныйРеквизитЗначение_" + ОписаниеСвойства.ИмяУникальнаяЧасть;
			
			Реквизит = Новый РеквизитФормы(ОписаниеСвойства.ИмяСсылочногоРеквизитаЗначение, ФорматированнаяСтрока, , ОписаниеСвойства.Наименование, Истина);
			ДобавляемыеРеквизиты.Добавить(Реквизит);
		КонецЕсли;
		
		Если ОписаниеСвойства.Удалено Тогда
			ТипЗначенияСвойства = Новый ОписаниеТипов("Строка");
		КонецЕсли;
		
		Реквизит = Новый РеквизитФормы(ОписаниеСвойства.ИмяРеквизитаЗначение, ТипЗначенияСвойства, , ОписаниеСвойства.Наименование, Истина);
		ДобавляемыеРеквизиты.Добавить(Реквизит);
		
		ОписаниеСвойства.ДополнительноеЗначение =
			УправлениеСвойствамиСлужебный.ТипЗначенияСодержитЗначенияСвойств(ТипЗначенияСвойства);
		
		ОписаниеСвойства.Булево = ОбщегоНазначения.ОписаниеТипаСостоитИзТипа(ТипЗначенияСвойства, Тип("Булево"));
	КонецЦикла;
	Форма.ИзменитьРеквизиты(ДобавляемыеРеквизиты);
	
	// Создание элементов формы.
	Для Каждого ОписаниеСвойства Из ОписаниеСвойств Цикл
		
		ИмяЭлементаДляРазмещения = Форма.Свойства_ИмяЭлементаДляРазмещения;
		Если ТипЗнч(ИмяЭлементаДляРазмещения) <> Тип("СписокЗначений") Тогда
			Если ИмяЭлементаДляРазмещения = Неопределено Тогда
				ИмяЭлементаДляРазмещения = "";
			КонецЕсли;
			
			ЭлементРазмещения = ?(ИмяЭлементаДляРазмещения = "", Неопределено, Форма.Элементы[ИмяЭлементаДляРазмещения]);
		Иначе
			РазделыДляРазмещения = Форма.Свойства_ИмяЭлементаДляРазмещения;
			РазмещениеНабора = РазделыДляРазмещения.НайтиПоЗначению(ОписаниеСвойства.Набор);
			Если РазмещениеНабора = Неопределено Тогда
				РазмещениеНабора = РазделыДляРазмещения.НайтиПоЗначению("ВсеОстальные");
			КонецЕсли;
			ЭлементРазмещения = Форма.Элементы[РазмещениеНабора.Представление];
		КонецЕсли;
		
		ФормаОписаниеСвойства = Форма.Свойства_ОписаниеДополнительныхРеквизитов.Добавить();
		ЗаполнитьЗначенияСвойств(ФормаОписаниеСвойства, ОписаниеСвойства);
		
		// Заполнение таблицы зависимых дополнительных реквизитов.
		Если ОписаниеСвойства.ЗависимостиДополнительныхРеквизитов.Количество() > 0
			И Не ОписаниеСвойства.Удалено Тогда
			ОписаниеЗависимогоРеквизита = Форма.Свойства_ОписаниеЗависимыхДополнительныхРеквизитов.Добавить();
			ЗаполнитьЗначенияСвойств(ОписаниеЗависимогоРеквизита, ОписаниеСвойства);
		КонецЕсли;
		
		ОтборСтрок = Новый Структура;
		ОтборСтрок.Вставить("НаборСвойств", ОписаниеСвойства.Набор);
		ЗависимостиДанногоНабора = ОписаниеСвойства.ЗависимостиДополнительныхРеквизитов.НайтиСтроки(ОтборСтрок);
		Для Каждого СтрокаТаблицы Из ЗависимостиДанногоНабора Цикл
			Если СтрокаТаблицы.ЗависимоеСвойство = "ЗаполнятьОбязательно"
				И ОписаниеСвойства.ТипЗначения = Новый ОписаниеТипов("Булево") Тогда
				Продолжить;
			КонецЕсли;
			Если ОписаниеСвойства.Удалено Тогда
				Продолжить;
			КонецЕсли;
			
			Если ТипЗнч(СтрокаТаблицы.Реквизит) = Тип("Строка") Тогда
				ПутьКРеквизиту = "Параметры.ОписаниеОбъекта." + СтрокаТаблицы.Реквизит;
			Иначе
				ОписаниеДополнительногоРеквизита = ОписаниеСвойств.Найти(СтрокаТаблицы.Реквизит, "Свойство");
				Если ОписаниеДополнительногоРеквизита = Неопределено Тогда
					Продолжить; // Дополнительный реквизит не существует, условие игнорируется.
				КонецЕсли;
				ПутьКРеквизиту = "Параметры.Форма." + ОписаниеДополнительногоРеквизита.ИмяРеквизитаЗначение;
			КонецЕсли;
			
			УправлениеСвойствамиСлужебный.ПостроитьУсловияЗависимостей(ОписаниеЗависимогоРеквизита, ПутьКРеквизиту, СтрокаТаблицы);
		КонецЦикла;
		
		Если ОписаниеСвойства.СтрокаСсылочногоТипа Тогда
			Если ЗначениеЗаполнено(ОписаниеСвойства.Значение) Тогда
				Значение = ОписаниеСвойства.ТипЗначения.ПривестиЗначение(ОписаниеСвойства.Значение);
				СтрокаЗначение = СтроковыеФункции.ФорматированнаяСтрока(Значение);
			Иначе
				Значение = НСтр("ru = 'не задано'");
				СсылкаРедактирования = "НеЗадано";
				СтрокаЗначение = Новый ФорматированнаяСтрока(Значение,, ЦветаСтиля.ЦветПустойГиперссылки,, СсылкаРедактирования);
			КонецЕсли;
			Форма[ОписаниеСвойства.ИмяСсылочногоРеквизитаЗначение] = СтрокаЗначение;
		КонецЕсли;
		Форма[ОписаниеСвойства.ИмяРеквизитаЗначение] = ОписаниеСвойства.Значение;
		
		Если ОписаниеСвойства.Удалено И Форма.Свойства_СкрытьУдаленные Тогда
			Продолжить;
		КонецЕсли;
		
		Если НаборыСвойствОбъекта.Количество() > 1 Тогда
			
			ЭлементСписка = Форма.Свойства_ЭлементыГруппДополнительныхРеквизитов.НайтиПоЗначению(
				ОписаниеСвойства.Набор);
			
			Если ЭлементСписка <> Неопределено Тогда
				Родитель = Форма.Элементы[ЭлементСписка.Представление];
			Иначе
				ОписаниеНабора = НаборыСвойствОбъекта.Найти(ОписаниеСвойства.Набор, "Набор");
				
				Если ОписаниеНабора = Неопределено Тогда
					ОписаниеНабора = НаборыСвойствОбъекта.Добавить();
					ОписаниеНабора.Набор     = ОписаниеСвойства.Набор;
					ОписаниеНабора.Заголовок = НСтр("ru = 'Удаленные реквизиты'")
				КонецЕсли;
				
				Если НЕ ЗначениеЗаполнено(ОписаниеНабора.Заголовок) Тогда
					ОписаниеНабора.Заголовок = Строка(ОписаниеСвойства.Набор);
				КонецЕсли;
				
				ИмяЭлементаНабора = "НаборДополнительныхРеквизитов" + ОписаниеСвойства.ИмяУникальнаяЧасть;
				
				Родитель = Форма.Элементы.Добавить(ИмяЭлементаНабора, Тип("ГруппаФормы"), ЭлементРазмещения);
				
				Форма.Свойства_ЭлементыГруппДополнительныхРеквизитов.Добавить(
					ОписаниеСвойства.Набор, Родитель.Имя);
				
				Если ТипЗнч(ЭлементРазмещения) = Тип("ГруппаФормы")
				   И ЭлементРазмещения.Вид = ВидГруппыФормы.Страницы Тогда
					
					Родитель.Вид = ВидГруппыФормы.Страница;
				Иначе
					Родитель.Вид = ВидГруппыФормы.ОбычнаяГруппа;
					Родитель.Отображение = ОтображениеОбычнойГруппы.Нет;
				КонецЕсли;
				Родитель.ОтображатьЗаголовок = Ложь;
				Родитель.Группировка = ГруппировкаПодчиненныхЭлементовФормы.Вертикальная;
				
				ЗаполненныеСвойстваГруппы = Новый Структура;
				Для каждого Колонка Из НаборыСвойствОбъекта.Колонки Цикл
					Если ОписаниеНабора[Колонка.Имя] <> Неопределено Тогда
						ЗаполненныеСвойстваГруппы.Вставить(Колонка.Имя, ОписаниеНабора[Колонка.Имя]);
					КонецЕсли;
				КонецЦикла;
				ЗаполнитьЗначенияСвойств(Родитель, ЗаполненныеСвойстваГруппы);
			КонецЕсли;
		Иначе
			Родитель = ЭлементРазмещения;
		КонецЕсли;
		
		Если ОписаниеСвойства.ВыводитьВВидеГиперссылки Тогда
			ИмяГруппыГиперссылки = "Группа_" + ОписаниеСвойства.ИмяУникальнаяЧасть;
			ГруппаГиперссылки = Форма.Элементы.Добавить(ИмяГруппыГиперссылки, Тип("ГруппаФормы"), Родитель);
			ГруппаГиперссылки.Вид = ВидГруппыФормы.ОбычнаяГруппа;
			ГруппаГиперссылки.Отображение = ОтображениеОбычнойГруппы.Нет;
			ГруппаГиперссылки.ОтображатьЗаголовок = Ложь;
			ГруппаГиперссылки.Группировка = ГруппировкаПодчиненныхЭлементовФормы.ГоризонтальнаяВсегда;
			ГруппаГиперссылки.Заголовок = ОписаниеСвойства.Наименование;
			
			Элемент = Форма.Элементы.Добавить(ОписаниеСвойства.ИмяРеквизитаЗначение, Тип("ПолеФормы"), ГруппаГиперссылки); // РасширениеПоляФормыДляПоляНадписи, РасширениеПоляФормыДляПоляВвода
			
			РеквизитДоступен = РеквизитДоступенПоФункциональнымОпциям(ОписаниеСвойства);
			Если РеквизитДоступен И Не ПоляНадписей Тогда
				ИмяКнопки = "Кнопка_" + ОписаниеСвойства.ИмяУникальнаяЧасть;
				Кнопка = Форма.Элементы.Добавить(
					ИмяКнопки,
					Тип("КнопкаФормы"),
					ГруппаГиперссылки);
					
				Кнопка.ТолькоВоВсехДействиях = Истина;
				Кнопка.ИмяКоманды = "РедактироватьГиперссылкуРеквизита";
				Кнопка.ОтображениеФигуры = ОтображениеФигурыКнопки.ПриАктивности;
			КонецЕсли;
			
			Если Не ОписаниеСвойства.СтрокаСсылочногоТипа И ЗначениеЗаполнено(ОписаниеСвойства.Значение) Тогда
				Элемент.Гиперссылка = Истина;
			КонецЕсли;
		Иначе
			Элемент = Форма.Элементы.Добавить(ОписаниеСвойства.ИмяРеквизитаЗначение, Тип("ПолеФормы"), Родитель); // РасширениеПоляФормыДляПоляНадписи, РасширениеПоляФормыДляПоляВвода
		КонецЕсли;
		
		ФормаОписаниеСвойства.ЭлементФормыДобавлен = Истина;
		
		Если ОписаниеСвойства.Булево И ПустаяСтрока(ОписаниеСвойства.ФорматСвойства) Тогда
			Элемент.Вид = ВидПоляФормы.ПолеФлажка;
			Элемент.ПоложениеЗаголовка = ПоложениеЗаголовкаЭлементаФормы.Право;
		Иначе
			Если ПоляНадписей Тогда
				Элемент.Вид = ВидПоляФормы.ПолеВвода;
			ИначеЕсли ОписаниеСвойства.ВыводитьВВидеГиперссылки
				И (ОписаниеСвойства.СтрокаСсылочногоТипа
					Или ЗначениеЗаполнено(ОписаниеСвойства.Значение))Тогда
				Элемент.Вид = ВидПоляФормы.ПолеНадписи;
			Иначе
				Элемент.Вид = ВидПоляФормы.ПолеВвода;
				Элемент.АвтоОтметкаНезаполненного = ОписаниеСвойства.ЗаполнятьОбязательно И НЕ ОписаниеСвойства.Удалено;
			КонецЕсли;
			
			Элемент.РастягиватьПоВертикали = Ложь;
			Элемент.ПоложениеЗаголовка     = ПоложениеЗаголовкаЭлементаФормы.Лево;
		КонецЕсли;
		
		Если ОписаниеСвойства.СтрокаСсылочногоТипа Тогда
			Элемент.ПутьКДанным = ОписаниеСвойства.ИмяСсылочногоРеквизитаЗначение;
			Элемент.УстановитьДействие("ОбработкаНавигационнойСсылки", "Подключаемый_СвойстваВыполнитьКоманду");
		Иначе
			Элемент.ПутьКДанным = ОписаниеСвойства.ИмяРеквизитаЗначение;
		КонецЕсли;
		Элемент.Подсказка   = ОписаниеСвойства.Подсказка;
		Элемент.УстановитьДействие("ПриИзменении", "Подключаемый_ПриИзмененииДополнительногоРеквизита");
		
		Если Элемент.Вид = ВидПоляФормы.ПолеВвода
		   И Не ИспользоватьНеограниченнуюСтроку
		   И ОписаниеСвойства.ТипЗначения.Типы().Найти(Тип("Строка")) <> Неопределено Тогда
			
			Элемент.СвязьПоТипу = Новый СвязьПоТипу("Свойства_ОписаниеДополнительныхРеквизитов.Свойство",
				ОписаниеСвойств.Индекс(ОписаниеСвойства));
		КонецЕсли;
		
		Если ОписаниеСвойства.МногострочноеПолеВвода > 0 Тогда
			Если НЕ ПоляНадписей Тогда
				Элемент.МногострочныйРежим = Истина;
			КонецЕсли;
			Элемент.Высота = ОписаниеСвойства.МногострочноеПолеВвода;
		КонецЕсли;
		
		Если НЕ ПустаяСтрока(ОписаниеСвойства.ФорматСвойства)
			И Не ОписаниеСвойства.ВыводитьВВидеГиперссылки Тогда
			Если ПоляНадписей Тогда
				Элемент.Формат = ОписаниеСвойства.ФорматСвойства;
			Иначе
				ФорматнаяСтрока = "";
				Массив = СтрРазделить(ОписаниеСвойства.ФорматСвойства, ";", Ложь);
				
				Для каждого Подстрока Из Массив Цикл
					Если СтрНайти(Подстрока, "ДП=") > 0 ИЛИ СтрНайти(Подстрока, "DE=") > 0 Тогда
						Продолжить;
					КонецЕсли;
					Если СтрНайти(Подстрока, "ЧН=") > 0 ИЛИ СтрНайти(Подстрока, "NZ=") > 0 Тогда
						Продолжить;
					КонецЕсли;
					Если СтрНайти(Подстрока, "ДФ=") > 0 ИЛИ СтрНайти(Подстрока, "DF=") > 0 Тогда
						Если СтрНайти(Подстрока, "ддд") > 0 ИЛИ СтрНайти(Подстрока, "ddd") > 0 Тогда
							Подстрока = СтрЗаменить(Подстрока, "ддд", "дд");
							Подстрока = СтрЗаменить(Подстрока, "ddd", "dd");
						КонецЕсли;
						Если СтрНайти(Подстрока, "дддд") > 0 ИЛИ СтрНайти(Подстрока, "dddd") > 0 Тогда
							Подстрока = СтрЗаменить(Подстрока, "дддд", "дд");
							Подстрока = СтрЗаменить(Подстрока, "dddd", "dd");
						КонецЕсли;
						Если СтрНайти(Подстрока, "МММ") > 0 ИЛИ СтрНайти(Подстрока, "MMM") > 0 Тогда
							Подстрока = СтрЗаменить(Подстрока, "МММ", "ММ");
							Подстрока = СтрЗаменить(Подстрока, "MMM", "MM");
						КонецЕсли;
						Если СтрНайти(Подстрока, "ММММ") > 0 ИЛИ СтрНайти(Подстрока, "MMMM") > 0 Тогда
							Подстрока = СтрЗаменить(Подстрока, "ММММ", "ММ");
							Подстрока = СтрЗаменить(Подстрока, "MMMM", "MM");
						КонецЕсли;
					КонецЕсли;
					Если СтрНайти(Подстрока, "ДЛФ=") > 0 ИЛИ СтрНайти(Подстрока, "DLF=") > 0 Тогда
						Если СтрНайти(Подстрока, "ДД") > 0 ИЛИ СтрНайти(Подстрока, "DD") > 0 Тогда
							Подстрока = СтрЗаменить(Подстрока, "ДД", "Д");
							Подстрока = СтрЗаменить(Подстрока, "DD", "D");
						КонецЕсли;
					КонецЕсли;
					ФорматнаяСтрока = ФорматнаяСтрока + ?(ФорматнаяСтрока = "", "", ";") + Подстрока;
				КонецЦикла;
				
				Элемент.Формат = ФорматнаяСтрока;
				Элемент.ФорматРедактирования = ФорматнаяСтрока;
			КонецЕсли;
		КонецЕсли;
		
		Если ОписаниеСвойства.Удалено Тогда
			Элемент.ЦветТекстаЗаголовка = ЦветаСтиля.ТекстЗапрещеннойЯчейкиЦвет;
			Элемент.ШрифтЗаголовка = ШрифтыСтиля.ЗаголовокУдаленногоРеквизитаШрифт;
			Если Элемент.Вид = ВидПоляФормы.ПолеВвода Тогда
				Элемент.КнопкаОчистки = Истина;
				Элемент.КнопкаВыбора = Ложь;
				Элемент.КнопкаОткрытия = Ложь;
				Элемент.КнопкаВыпадающегоСписка = Ложь;
				Элемент.РедактированиеТекста = Ложь;
			КонецЕсли;
		КонецЕсли;
		
		Если НЕ ПоляНадписей И ОписаниеСвойства.ДополнительноеЗначение И Элемент.Вид = ВидПоляФормы.ПолеВвода Тогда
			ПараметрыВыбора = Новый Массив;
			ПараметрыВыбора.Добавить(Новый ПараметрВыбора("Отбор.Владелец",
				?(ЗначениеЗаполнено(ОписаниеСвойства.ВладелецДополнительныхЗначений),
					ОписаниеСвойства.ВладелецДополнительныхЗначений, ОписаниеСвойства.Свойство)));
			Элемент.ПараметрыВыбора = Новый ФиксированныйМассив(ПараметрыВыбора);
		КонецЕсли;
		
	КонецЦикла;
	
	// Установка видимости, доступности и обязательности заполнения дополнительных реквизитов.
	Для Каждого ОписаниеЗависимогоРеквизита Из Форма.Свойства_ОписаниеЗависимыхДополнительныхРеквизитов Цикл
		Если ОписаниеЗависимогоРеквизита.ВыводитьВВидеГиперссылки Тогда
			ОбрабатываемыйЭлемент = СтрЗаменить(ОписаниеЗависимогоРеквизита.ИмяРеквизитаЗначение, "ДополнительныйРеквизитЗначение_", "Группа_");
		Иначе
			ОбрабатываемыйЭлемент = ОписаниеЗависимогоРеквизита.ИмяРеквизитаЗначение;
		КонецЕсли;
		
		Если ОписаниеЗависимогоРеквизита.УсловиеДоступности <> Неопределено Тогда
			Результат = РезультатВычисленияУсловия(Форма, ОписаниеОбъекта, ОписаниеЗависимогоРеквизита.УсловиеДоступности);
			Элемент = Форма.Элементы[ОбрабатываемыйЭлемент]; // ПолеФормы
			Если Элемент.Доступность <> Результат Тогда
				Элемент.Доступность = Результат;
			КонецЕсли;
		КонецЕсли;
		Если ОписаниеЗависимогоРеквизита.УсловиеВидимости <> Неопределено Тогда
			Результат = РезультатВычисленияУсловия(Форма, ОписаниеОбъекта, ОписаниеЗависимогоРеквизита.УсловиеВидимости);
			Элемент = Форма.Элементы[ОбрабатываемыйЭлемент];
			Если Элемент.Видимость <> Результат Тогда
				Элемент.Видимость = Результат;
			КонецЕсли;
		КонецЕсли;
		Если ОписаниеЗависимогоРеквизита.УсловиеОбязательностиЗаполнения <> Неопределено Тогда
			Если Не ОписаниеЗависимогоРеквизита.ЗаполнятьОбязательно Тогда
				Продолжить;
			КонецЕсли;
			
			Результат = РезультатВычисленияУсловия(Форма, ОписаниеОбъекта, ОписаниеЗависимогоРеквизита.УсловиеОбязательностиЗаполнения);
			Элемент = Форма.Элементы[ОбрабатываемыйЭлемент];
			Если Не ОписаниеЗависимогоРеквизита.ВыводитьВВидеГиперссылки
				И Элемент.АвтоОтметкаНезаполненного <> Результат Тогда
				Элемент.АвтоОтметкаНезаполненного = Результат;
			КонецЕсли;
		КонецЕсли;
	КонецЦикла;
	
	Структура = Новый Структура("ПараметрыСвойств");
	ЗаполнитьЗначенияСвойств(Структура, Форма);
	Если ТипЗнч(Структура.ПараметрыСвойств) = Тип("Структура")
		И Структура.ПараметрыСвойств.Свойство("ВыполненаОтложеннаяИнициализация") Тогда
		Форма.ПараметрыСвойств.ВыполненаОтложеннаяИнициализация = Истина;
		// Удаление временной декорации, если она была добавлена.
		Если Форма.ПараметрыСвойств.Свойство("ДобавленаПустаяДекорация") Тогда
			Для Каждого ИмяДекорации Из Форма.ПараметрыСвойств.КоллекцияДекораций Цикл
				Форма.Элементы.Удалить(Форма.Элементы[ИмяДекорации]);
			КонецЦикла;
			Форма.ПараметрыСвойств.Удалить("ДобавленаПустаяДекорация");
		КонецЕсли;
	КонецЕсли;
	
КонецПроцедуры
// Возвращает заполненную таблицу значений свойств объекта.
Функция ЗначенияСвойств(ДополнительныеСвойстваОбъекта, Наборы, ЭтоДополнительноеСведение) Экспорт
	
	Если ДополнительныеСвойстваОбъекта.Количество() = 0 Тогда
		// Предварительная быстрая проверка использования дополнительных свойств.
		СвойстваНеНайдены = ДополнительныеРеквизитыИСведенияНеНайдены(Наборы, ЭтоДополнительноеСведение);
		
		Если СвойстваНеНайдены Тогда
			ОписаниеСвойств = Новый ТаблицаЗначений;
			ОписаниеСвойств.Колонки.Добавить("Набор");
			ОписаниеСвойств.Колонки.Добавить("Свойство");
			ОписаниеСвойств.Колонки.Добавить("ВладелецДополнительныхЗначений");
			ОписаниеСвойств.Колонки.Добавить("ЗаполнятьОбязательно");
			ОписаниеСвойств.Колонки.Добавить("Наименование");
			ОписаниеСвойств.Колонки.Добавить("ТипЗначения");
			ОписаниеСвойств.Колонки.Добавить("ФорматСвойства");
			ОписаниеСвойств.Колонки.Добавить("МногострочноеПолеВвода");
			ОписаниеСвойств.Колонки.Добавить("Удалено");
			ОписаниеСвойств.Колонки.Добавить("Значение");
			Возврат ОписаниеСвойств;
		КонецЕсли;
	КонецЕсли;
	
	Свойства = ДополнительныеСвойстваОбъекта.ВыгрузитьКолонку("Свойство");
	
	НаборыСвойств = Новый ТаблицаЗначений;
	
	НаборыСвойств.Колонки.Добавить(
		"Набор", Новый ОписаниеТипов("СправочникСсылка.НаборыДополнительныхРеквизитовИСведений"));
	
	НаборыСвойств.Колонки.Добавить(
		"ПорядокНабора", Новый ОписаниеТипов("Число"));
	
	Для каждого ЭлементСписка Из Наборы Цикл
		НоваяСтрока = НаборыСвойств.Добавить();
		НоваяСтрока.Набор         = ЭлементСписка.Значение;
		НоваяСтрока.ПорядокНабора = Наборы.Индекс(ЭлементСписка);
	КонецЦикла;
	
	Запрос = Новый Запрос;
	Запрос.УстановитьПараметр("Свойства",      Свойства);
	Запрос.УстановитьПараметр("НаборыСвойств", НаборыСвойств);
	Запрос.УстановитьПараметр("ЭтоОсновнойЯзык", ТекущийЯзык() = Метаданные.ОсновнойЯзык);
	Запрос.УстановитьПараметр("КодЯзыка", ТекущийЯзык().КодЯзыка);
	
	Запрос.Текст =
	"ВЫБРАТЬ
	|	НаборыСвойств.Набор КАК Набор,
	|	НаборыСвойств.ПорядокНабора КАК ПорядокНабора
	|ПОМЕСТИТЬ НаборыСвойств
	|ИЗ
	|	&НаборыСвойств КАК НаборыСвойств
	|;
	|
	|////////////////////////////////////////////////////////////////////////////////
	|ВЫБРАТЬ РАЗРЕШЕННЫЕ
	|	НаборыСвойств.Набор КАК Набор,
	|	НаборыСвойств.ПорядокНабора КАК ПорядокНабора,
	|	СвойстваНаборов.Свойство КАК Свойство,
	|	СвойстваНаборов.ПометкаУдаления КАК ПометкаУдаления,
	|	СвойстваНаборов.НомерСтроки КАК ПорядокСвойства
	|ПОМЕСТИТЬ СвойстваНаборов
	|ИЗ
	|	НаборыСвойств КАК НаборыСвойств
	|		ВНУТРЕННЕЕ СОЕДИНЕНИЕ Справочник.НаборыДополнительныхРеквизитовИСведений.ДополнительныеРеквизиты КАК СвойстваНаборов
	|		ПО (СвойстваНаборов.Ссылка = НаборыСвойств.Набор)
	|		ВНУТРЕННЕЕ СОЕДИНЕНИЕ ПланВидовХарактеристик.ДополнительныеРеквизитыИСведения КАК Свойства
	|		ПО (СвойстваНаборов.Свойство = Свойства.Ссылка)
	|ГДЕ
	|	НЕ СвойстваНаборов.ПометкаУдаления
	|	И НЕ Свойства.ПометкаУдаления
	|;
	|
	|////////////////////////////////////////////////////////////////////////////////
	|ВЫБРАТЬ РАЗРЕШЕННЫЕ
	|	Свойства.Ссылка КАК Свойство
	|ПОМЕСТИТЬ ЗаполненныеСвойства
	|ИЗ
	|	ПланВидовХарактеристик.ДополнительныеРеквизитыИСведения КАК Свойства
	|ГДЕ
	|	Свойства.Ссылка В(&Свойства)
	|;
	|
	|////////////////////////////////////////////////////////////////////////////////
	|ВЫБРАТЬ
	|	СвойстваНаборов.Набор КАК Набор,
	|	СвойстваНаборов.ПорядокНабора КАК ПорядокНабора,
	|	СвойстваНаборов.Свойство КАК Свойство,
	|	СвойстваНаборов.ПорядокСвойства КАК ПорядокСвойства,
	|	СвойстваНаборов.ПометкаУдаления КАК Удалено
	|ПОМЕСТИТЬ ВсеСвойства
	|ИЗ
	|	СвойстваНаборов КАК СвойстваНаборов
	|
	|ОБЪЕДИНИТЬ ВСЕ
	|
	|ВЫБРАТЬ
	|	ЗНАЧЕНИЕ(Справочник.НаборыДополнительныхРеквизитовИСведений.ПустаяСсылка),
	|	0,
	|	ЗаполненныеСвойства.Свойство,
	|	0,
	|	ИСТИНА
	|ИЗ
	|	ЗаполненныеСвойства КАК ЗаполненныеСвойства
	|		ЛЕВОЕ СОЕДИНЕНИЕ СвойстваНаборов КАК СвойстваНаборов
	|		ПО ЗаполненныеСвойства.Свойство = СвойстваНаборов.Свойство
	|ГДЕ
	|	СвойстваНаборов.Свойство ЕСТЬ NULL
	|;
	|
	|////////////////////////////////////////////////////////////////////////////////
	|ВЫБРАТЬ РАЗРЕШЕННЫЕ
	|	ВсеСвойства.Набор КАК Набор,
	|	ВсеСвойства.Свойство КАК Свойство,
	|	ДополнительныеРеквизитыИСведения.ВладелецДополнительныхЗначений КАК ВладелецДополнительныхЗначений,
	|	ДополнительныеРеквизитыИСведения.ЗаполнятьОбязательно КАК ЗаполнятьОбязательно,
	|	ВЫБОР
	|		КОГДА &ЭтоОсновнойЯзык
	|			ТОГДА ДополнительныеРеквизитыИСведения.Заголовок
	|		ИНАЧЕ ВЫРАЗИТЬ(ЕСТЬNULL(СвойстваПредставления.Заголовок, ДополнительныеРеквизитыИСведения.Заголовок) КАК СТРОКА(150))
	|	КОНЕЦ КАК Наименование,
	|	ДополнительныеРеквизитыИСведения.ТипЗначения КАК ТипЗначения,
	|	ДополнительныеРеквизитыИСведения.ФорматСвойства КАК ФорматСвойства,
	|	ДополнительныеРеквизитыИСведения.МногострочноеПолеВвода КАК МногострочноеПолеВвода,
	|	ВсеСвойства.Удалено КАК Удалено,
	|	ДополнительныеРеквизитыИСведения.Доступен КАК Доступен,
	|	ДополнительныеРеквизитыИСведения.Виден КАК Виден,
	|	ВЫБОР
	|		КОГДА &ЭтоОсновнойЯзык
	|			ТОГДА ДополнительныеРеквизитыИСведения.Подсказка
	|		ИНАЧЕ ВЫРАЗИТЬ(ЕСТЬNULL(СвойстваПредставления.Подсказка, ДополнительныеРеквизитыИСведения.Подсказка) КАК СТРОКА(150))
	|	КОНЕЦ КАК Подсказка,
	|	ДополнительныеРеквизитыИСведения.ВыводитьВВидеГиперссылки КАК ВыводитьВВидеГиперссылки,
	|	ДополнительныеРеквизитыИСведения.ЗависимостиДополнительныхРеквизитов.(
	|		ЗависимоеСвойство КАК ЗависимоеСвойство,
	|		Реквизит КАК Реквизит,
	|		Условие КАК Условие,
	|		Значение КАК Значение,
	|		НаборСвойств КАК НаборСвойств
	|	) КАК ЗависимостиДополнительныхРеквизитов
	|ИЗ
	|	ВсеСвойства КАК ВсеСвойства
	|		ВНУТРЕННЕЕ СОЕДИНЕНИЕ ПланВидовХарактеристик.ДополнительныеРеквизитыИСведения КАК ДополнительныеРеквизитыИСведения
	|		ПО ВсеСвойства.Свойство = ДополнительныеРеквизитыИСведения.Ссылка
	|		ЛЕВОЕ СОЕДИНЕНИЕ ПланВидовХарактеристик.ДополнительныеРеквизитыИСведения.Представления КАК СвойстваПредставления
	|		ПО (СвойстваПредставления.Ссылка = ДополнительныеРеквизитыИСведения.Ссылка)
	|			И (СвойстваПредставления.КодЯзыка = &КодЯзыка)
	|
	|УПОРЯДОЧИТЬ ПО
	|	Удалено,
	|	ВсеСвойства.ПорядокНабора,
	|	ВсеСвойства.ПорядокСвойства";
	
	Если ЭтоДополнительноеСведение Тогда
		Запрос.Текст = СтрЗаменить(
			Запрос.Текст,
			"Справочник.НаборыДополнительныхРеквизитовИСведений.ДополнительныеРеквизиты",
			"Справочник.НаборыДополнительныхРеквизитовИСведений.ДополнительныеСведения");
	КонецЕсли;
	
	ОписаниеСвойств = Запрос.Выполнить().Выгрузить();
	ОписаниеСвойств.Индексы.Добавить("Свойство");
	ОписаниеСвойств.Колонки.Добавить("Значение");
	
	// Удаление дублей свойств в нижестоящих наборах свойств.
	Если Наборы.Количество() > 1 Тогда
		Индекс = ОписаниеСвойств.Количество()-1;
		
		Пока Индекс >= 0 Цикл
			Строка = ОписаниеСвойств[Индекс];
			НайденнаяСтрока = ОписаниеСвойств.Найти(Строка.Свойство, "Свойство");
			
			Если НайденнаяСтрока <> Неопределено
			   И НайденнаяСтрока <> Строка Тогда
				
				ОписаниеСвойств.Удалить(Индекс);
			КонецЕсли;
			
			Индекс = Индекс-1;
		КонецЦикла;
	КонецЕсли;
	
	// {{ Prosto. [Silantev Oleg Sergeevich] - [26.09.2020 21:33].
	ИспользованныеСвойства = Новый Массив;
	// }} {{ Prosto. [Silantev Oleg Sergeevich] - [26.09.2020 21:33].
	
	// Заполнение значений свойств.
	Для Каждого Строка Из ДополнительныеСвойстваОбъекта Цикл
		ОписаниеСвойства = ОписаниеСвойств.Найти(Строка.Свойство, "Свойство");
		Если ОписаниеСвойства <> Неопределено Тогда
			// {{ Prosto. [Silantev Oleg Sergeevich] - [26.09.2020 21:34].
			Если ИспользованныеСвойства.Найти(ОписаниеСвойства.Свойство) = Неопределено Тогда
				ИспользованныеСвойства.Добавить(ОписаниеСвойства.Свойство) 
			Иначе
				НоваяСтрокаОписания = ОписаниеСвойств.Добавить();
				ЗаполнитьЗначенияСвойств(НоваяСтрокаОписания, ОписаниеСвойства);
				ОписаниеСвойства = НоваяСтрокаОписания;
			КонецЕсли;
			// }} {{ Prosto. [Silantev Oleg Sergeevich] - [26.09.2020 21:34].
			// Поддержка строк неограниченной длины.
			Если НЕ ЭтоДополнительноеСведение Тогда
				ИспользоватьСтрокуВВидеСсылки = ИспользоватьСтрокуВВидеСсылки(
					ОписаниеСвойства.ТипЗначения,
					ОписаниеСвойства.ВыводитьВВидеГиперссылки,
					ОписаниеСвойства.МногострочноеПолеВвода);
				ИспользоватьНеограниченнуюСтроку = ИспользоватьНеограниченнуюСтроку(
					ОписаниеСвойства.ТипЗначения,
					ОписаниеСвойства.МногострочноеПолеВвода);
				НеобходимоПеренестиЗначениеИзСсылки = НеобходимоПеренестиЗначениеИзСсылки(
						Строка.ТекстоваяСтрока,
						Строка.Значение);
				Если (ИспользоватьНеограниченнуюСтроку
						Или ИспользоватьСтрокуВВидеСсылки
						Или НеобходимоПеренестиЗначениеИзСсылки)
					И НЕ ПустаяСтрока(Строка.ТекстоваяСтрока) Тогда
					Если Не ИспользоватьСтрокуВВидеСсылки И НеобходимоПеренестиЗначениеИзСсылки Тогда
						ЗначениеБезСсылки = ЗначениеБезСсылки(Строка.ТекстоваяСтрока, Строка.Значение);
						ОписаниеСвойства.Значение = ЗначениеБезСсылки;
					Иначе
						ОписаниеСвойства.Значение = Строка.ТекстоваяСтрока;
					КонецЕсли;
				Иначе
					ОписаниеСвойства.Значение = Строка.Значение;
				КонецЕсли;
			Иначе
				ОписаниеСвойства.Значение = Строка.Значение;
			КонецЕсли;
		КонецЕсли;
	КонецЦикла;
	
	Возврат ОписаниеСвойств;
	
КонецФункции

Работа в примерах была осуществлена с версией БСП: 3.1.2.245

Источники

Как подключить дополнительные реквизиты к справочнику или документу в БСП 2.3

Создание множественного дополнительного реквизита. Управление торговлей 11

1) В нашем объекте добавляем табличную часть «ДополнительныеРеквизиты», а точнее копируем ее из другого существующего справочника или документа, например, из справочника Пользователи, который изначально находится в составе конфигурации БСП.
2) На форме элемента нашего объекта добавляем группу с наименованием «ГруппаДополнительныеРеквизиты». Именно в этой группе и будет отображаться интерфейс дополнительных реквизитов.
3) В справочнике «НаборыДополнительныхРеквизитовИСведений» добавляем новый предопределенный элемент по шаблону — Справочник_Склады (если наш объект это справочник и называется он «Склады»). То есть смотрим на существующие предопределенные элементы и добавляем необходимый аналогичным образом.
4) В Плане видов характеристик «ДополнительныеРеквизитыИСведения» добавляем тип нашего объекта, если необходим такой тип для созданий дополнительных реквизитов.
5) В модуле формы элемента нашего объекта размещаем следующие куски кода:

    В процедуре ПриСозданииНаСервере добавляем:

    // Обработчик подсистемы "Свойства"
    ДополнительныеПараметры = Новый Структура;
    ДополнительныеПараметры.Вставить("Объект", Объект);
    ДополнительныеПараметры.Вставить("ИмяЭлементаДляРазмещения", "ГруппаДополнительныеРеквизиты");
    УправлениеСвойствами.ПриСозданииНаСервере(ЭтотОбъект, ДополнительныеПараметры);

    // Конец СтандартныеПодсистемы.Свойства

    В процедуре ПриЧтенииНаСервере добавляем:

    // СтандартныеПодсистемы.Свойства
    УправлениеСвойствами.ПриЧтенииНаСервере(ЭтаФорма, ТекущийОбъект);   
    // Конец СтандартныеПодсистемы.Свойства    

     В процедуре ОбработкаПроверкиЗаполненияНаСервере добавляем:

    // СтандартныеПодсистемы.Свойства
    УправлениеСвойствами.ОбработкаПроверкиЗаполнения(ЭтаФорма, Отказ, ПроверяемыеРеквизиты, Объект);
    // Конец СтандартныеПодсистемы.Свойства

     В процедуре ПередЗаписьюНаСервере  добавляем:

    // СтандартныеПодсистемы.Свойства
    УправлениеСвойствами.ПередЗаписьюНаСервере(ЭтаФорма, ТекущийОбъект);
    // Конец СтандартныеПодсистемы.Свойства

    Добавляем следующие процедуры:

    // ПРОЦЕДУРЫ ПОДСИСТЕМЫ "СВОЙСТВ"
    &НаКлиенте
    Процедура Подключаемый_РедактироватьСоставСвойств()
        УправлениеСвойствамиКлиент.РедактироватьСоставСвойств(ЭтаФорма, Объект.Ссылка);
    КонецПроцедуры
    &НаСервере
    Процедура ОбновитьЭлементыДополнительныхРеквизитов()
        УправлениеСвойствами.ОбновитьЭлементыДополнительныхРеквизитов(ЭтаФорма, РеквизитФормыВЗначение("Объект"));
    КонецПроцедуры

6) И еще один важный момент: у справочника «НаборыДополнительныхРеквизитовИСведений» есть реквизит «Используется». Для нашего созданного предопределенного элемента (см. пункт 3) необходимо установить значение Истина для этого реквизита. Но в пользовательском режиме 1С:Предприятие это не получится сделать, потому что этого реквизита нет на форме. Но можно воспользоваться стандартной обработкой «Групповое изменение реквизитов», где выбрать справочник «НаборыДополнительныхРеквизитовИСведений», сделать отбор по нашему созданному предопределенному элементу и установить значение Истина для реквизита «Используется». Примечание: если в обработке «Групповое изменение реквизитов» нет для выбора справочника «НаборыДополнительныхРеквизитовИСведений», то необходимо в настройке «Дополнительные параметры» включить галку «Показывать служебные реквизиты».

Опубликовано 19.03.2021 15:16
Автор: Administrator
Просмотров: 13427

Иногда у пользователя возникает необходимость внести дополнительную информацию об объекте в 1С и он, не зная всех возможностей программы, делает пометки в комментариях, в карточке объекта или приписывает что-то в наименовании. Комментарии в отчетах не видны, а «исковерканные» наименования выглядят не очень привлекательно. Как выйти из ситуации, когда пользователю не хватает стандартных реквизитов в 1С? В этом ему поможет подсистема «Дополнительные реквизиты и сведения». Рассмотрим пошагово на примерах, как работает этот механизм в программе 1С: Бухгалтерия ред. 3.0. 

                                                            Первичная настройка программы 1С 

Шаг 1. Перейдите в раздел «Администрирование» — «Общие настройки».

Шаг 2. Разверните подраздел «Дополнительные реквизиты и сведения» и установите одноименную галочку, разрешающую добавлять реквизиты и сведения к объектам программы.

Для создания дополнительных реквизитов объекта перейдите по гиперссылке «Дополнительные реквизиты».

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

Настройка дополнительного реквизита 1С к справочнику «Договоры»

Рассмотрим пример: ИП Круглова О.А. оказывает несколько видов услуг: «Услуга №1», «Услуга №2». При поступлении оплаты по договорам хотелось бы видеть, какая из услуг оказанная контрагентом не оплачена, в разрезе договоров. При заполнении данных договора, в нем указана лишь дата и номер. Если изменить наименование договора, оно отобразится в печатных формах, что не очень удобно. Оптимальный вариант решения – это добавление к договору дополнительного реквизита.

Шаг 1. В левой стороне окна выберите нужный объект.

В нашем примере – это справочник «Договор». Нажав кнопку «Добавить», выберите команду – «Новый».

Для нашего примера назовем новый реквизит «Детализация договора».

Шаг 2. Задайте наименование реквизита и установите настройки.

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

Остановимся немного на некоторых типах реквизитов:

«Строка» – это поле, в которое вносится информация в произвольном виде. Текстовая информация сохраняется для конкретного элемента;

«Булево» – это установка флажка, означающего «Да» или «Нет»;

«Дополнительное значение» — аналог дополнительного справочника, который хранит определенные значения – характеристики. Например, цвет, размер, плотность, вид материала и т.п. Это может быть любая характеристика, заданная пользователем для определенной номенклатуры.

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

В нашем примере выберите «Тип значения» – «Номенклатура».

Установите дополнительные настройки отображения, видимости и заполнения нового реквизита, при необходимости:

• «Выводить в виде гиперссылки» — установите галочку;

• «Видимость» и «Доступность» — перейдите для настройки по гиперссылке «Всегда»;

• «Заполнять всегда» — установите галочку.

При настройке видимости и доступности имеется возможность задавать условия отображения реквизита по кнопке «Добавить условие».

В нашем примере условие не задается.

Шаг 3. Сохраните настройку – «Записать и закрыть».

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

Проверим, как работает сделанная настройка.

Шаг 4. Реализуем услугу контрагенту и создадим новый договор.

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

Теперь за каждым договором, пользователь может закрепить номенклатуру.

Контрагенту ООО фирма «Меркурий» оказана услуга по доставке. К договору №12 от 02.02.2021 года закреплена детализация в виде номенклатуры «Доставка».

Шаг 5. Сохраните документ реализации и сформируйте отчет «Оборотно-сальдовая ведомость по счету» 62 «Расчеты с покупателями и заказчиками» в разделе «Отчеты».

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

Шаг 6. На закладке «Группировка» нажмите «Добавить» и выберите поле для группировки «Детализация договора (Договоры)» — это наш новый реквизит.

Шаг 7. Нажмите «Сформировать». В отчете отдельной строкой видны обороты в разрезе не только договора, но и введенного дополнительного реквизита. В нашем примере к договору закреплена номенклатура «Доставка».

Рассмотрим еще один простой, но интересный пример – использование обычной текстовой строки.

Настройка текстового дополнительного реквизита
в виде комментария к договору

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

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

Шаг 1. В поле «Наименование» задайте «Описание услуг по договору».

Тип значения укажите – «Строка». Установите переключатель в положение «Многострочное поле ввода» и задайте количество возможны строк. В нашем примере – 10.

Если строки не заданы, то поле получится однострочное.

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

Шаг 2. Сформируйте документ оказания услуг, создайте договор с «отметками — описанием».

В разделе «Дополнительные реквизиты» появилось второе поле, для текстового ввода информации. Пользователь может задавать и использовать сразу несколько дополнительных реквизитов.

В поле «Описание услуг по договору» внесите дополнительную информацию.

Шаг 3. Сохраните документ реализации услуг с новым договором и с отметками.

Обратимся к «Оборотно-сальдовой ведомости по счету» — раздел «Отчеты».

Шаг 4. В настройках отчета («Показать настройки») добавьте группировку по созданному дополнительному реквизиту – закладка «Группировка» — кнопка «Добавить».

В окне «Выбор поля группировки» найдите созданный реквизит – «Описание услуг по договору».

С большим количеством детализации для анализа лучше устанавливать дополнительные отборы – закладка «Отбор», выбрав конкретного контрагента.

В нашем примере отбор установлен по контрагенту «Методический центр Дружба».

Шаг 5. Сформируйте отчет. Теперь пользователь видит расшифровку и короткие пояснения к договору, введенные в текстовом формате.

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

Такие «эксперименты» с реквизитами можно проводить с любым объектом 1С.

Приведем еще один «ходовой» пример – справочник «Номенклатура».

Настройка дополнительных реквизитов к справочнику «Номенклатура»

У каждого объекта номенклатуры имеется множество различных характеристик, которые пользователь хочет отразить в карточке. Куда их поместить? Здесь также можно воспользоваться механизмом «Дополнительные реквизиты и сведения».

Шаг 1. Перейдите в настройку «Дополнительные реквизиты» раздела «Администрирование» — «Общие настройки».

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

Создать новый реквизит можно также щелкнув в пустом поле справа правой кнопкой мышки и в контекстном меню, выбрав «Добавить» — «Новый».

Шаг 2. Задайте наименование дополнительного реквизита. Например, «Цвет».

Пользователь не может к каждому наименованию вводить данные вручную, так как наименования реквизита (цвет) повторяются у разных элементов. Поэтому удобнее их перечислить в справочнике и впоследствии выбирать.

Для этого укажите «Тип значения» – «Дополнительное значение».

Перейдите на закладку «Значения» и перечислите возможные варианты значения реквизита «Цвет». В дальнейшем справочник можно пополнять.

Шаг 3. Нажмите «Создать» и укажите значение дополнительного реквизита «Цвет». В нашем примере, «Белый».

Перечислив значения реквизитов, пользователь может указывать их в карточке к номенклатуре.

Если значений характеристик реквизитов много, их можно объединять в группы – «Создать группу».

Посмотрим настройку в действии.

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

Таким образом, можно создавать любой дополнительный реквизит номенклатуры.

Добавим для примера еще несколько дополнительных реквизитов.

Пользователь может задать производителя товара, задав выбор из справочника «Контрагенты». Например, «Молоко, 3,2%» – производитель МКС – Молочный комбинат «Ставропольский».

Шаг 5. Для этого реквизита установите «Тип значения» – «Контрагент».

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

В таких примерах можно использовать условия.

Создадим новый реквизит, для отметки наличия функции «Газ-контроль».

Шаг 6. Укажите название реквизита и «Тип значения» задайте «Булево». Т.е. в карточке установится галочка, определяющая имеется в данной модели газ-контроль или нет.

В данном примере, этот реквизит актуален только для газовых печей и варочных газовых панелей. Поэтому в настройке видимости – «Виден» — гиперссылка «Всегда» задайте условие:

«Входит в группу» — Равно – и укажите для каких групп номенклатуры актуален данный реквизит. В нашем примере – «Комплекты встраиваемой техники для кухни». В данной папке в справочнике сгруппированы газовые варочные панели, духовки и их комплекты.

Так, для номенклатуры мы ввели три дополнительных реквизита.

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

Так, для блендера в разделе «Дополнительные реквизиты» видны лишь:

• «Цвет»;

• «Производитель».

А для номенклатуры, входящей в группу, заданную условием «Комплект встраиваемой техники Simfer», в карточке отражается дополнительно реквизит – «Газ-контроль».

Так, пользователь может настроить видимость дополнительных реквизитов задав условия для разной номенклатуры.

Дополнительные реквизиты используются в отчетах при группировках и отборах.

Шаг 7. Сформируйте «Оборотно-сальдовую ведомость по счету» — 41 «Товары». В настройках отчета на закладке «Отбор» добавьте условие отбора «Газ-контроль (Номенклатура)» — Равно – и значение, которое хотите увидеть. В нашем примере – «Да» — наличие «Газ-контроля».

Из отчета видно, что в наличии с функцией «Газ-контроль» у нас имеется «Комплект встраиваемой техники Simfer».

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

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

Автор статьи: Ольга Круглова

Понравилась статья? Подпишитесь на рассылку новых материалов

Добавить комментарий

Содержание:

1.       Настройки 1С УТ 11

2.       Как добавить новый реквизит в 1С

3.       Реквизиты 1С УТ с общим списком

4.       Общие реквизиты в 1С

5.       Отображение реквизитов в отчетах 1С и списках

Дополнительные реквизиты в 1С УТ используются для возможности настройки хранения дополнительных полей в справочниках и документах программы. Их добавление выполняется в пользовательском режиме и не требует изменения конфигурации.

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

Далее разберем примеры добавления и работы с дополнительными реквизитами в 1С УТ 11.

В первую очередь необходимо включить настройки. 

1.   Настройки 1С УТ 11

Первый флаг (см. скриншот) отвечает в целом за доступность ведения в базе 1С 8.3 УТ 11 дополнительных реквизитов.

Второй флаг отвечает за возможность ведения реквизитов с общим список значений. Данную настройку можно включить, например, если в справочник «Клиенты» необходимо добавить реквизит «Регион клиента», в справочник «Поставщики» – «Регион поставщика», при этом для обоих дополнительных реквизитов должен использоваться единый список значений – Федеральные округа РФ.

Активация функции «Общие реквизиты и сведения» дает возможность создавать дополнительные реквизиты в 1С УТ сразу для нескольких справочников. Например, создать реквизит «Категория надежности», который будет использоваться и для клиентов, и для поставщиков.

Настройки использования реквизитов в 1С 8.3 УТ 11 могут быть различными. Использовать ли общие наборы, общие списки и, если да, то как именно – зависит от потребностей пользователя и банального удобства работы. Примеры, которые будут описаны далее, приведены для общего понимания работы с возможностями конфигурации в части использования реквизитов.

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

2.   Как добавить новый реквизит в 1С

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

В левой части окна программы надо выбрать объект системы, к которому добавляется реквизит (в нашем случае это «Физические лица») и нажать кнопку «Добавить → Новый».

В открывшемся окне заполняем «Наименование» и «Тип значения».

Тип значения определяет тип используемых данных в новом реквзите 1С. Типы данных могут быть различными. Из можно распределить по группам:

·                    дата, строка, число – точные заполняемые значения;

·                    булево в 1С – значение «Да» или «Нет» (в форме представляет собой поле для установки флажка);

·                    дополнительное значение – используется для ввода списка нужных значений;

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

Здесь же можно использовать сразу несколько типов данных, установив флаг «Составной тип данных».

В нашем примере нам надо выбрать тип данных «Подразделения». Тогда в карточке физического лица будет доступны к выбору данные справочника «Структура педприятия».

После записи реквизита 1С, он отобразится в соответствующем справочнике, и в нем будет доступен указанный тип данных.

При необходимости для реквизита можно внести дополнительные настройки:

·                    если установить флаг «Выводить в виде гиперссылки», то после заполнения реквизита значение будет представлено в ввиде ссылки;

·                    возможно сделать настройку критериев видимости и доступности реквизита по форме в зависимости от выполнения условий;

·                    можно установить обязательность заполнения данного реквизита в целом или при выполнении каких-либо условий;

·                    для поля можно установить всплывающую подсказку о его назначении.

Рассмотрим другой пример. Представим, что все договоры должны быть согласованы ответсвенным лицом, которое в базе не работает. Менеджер, ведущий контрагента, отправляет договоры на согласование по почте, скайпу и т.п., а в базе должен отметить лишь результат: согласовано и дата.

В этом случае у нас задействован один объект системы («Договоры с контрагентами») и два реквизита: «согласовано» (да/нет) и «дата согласования».

Создадим реквизиты.

Реквизит 1 – тип данных «булево в 1С».

Реквизит 2 – тип даннх «дата». Здесь также надо указать состав даты.

Сохраним реквизиты и проверим результат – в карточке договора должен появиться раздел с этими реквизитами.

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

3.   Реквизиты 1С УТ с общим списком

Допустим, для покупателей надо добавить реквизит «Регион клиента», для поставщиков реквизит «Регион поставщика». Названия реквизитов разные, но список значений един – Федеральные округа РФ.

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

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

Теперь добавим реквизит для поставщика. Создание выполняется иначе, чем для первого реквизита.

Нажимаем «Добавить → Из другого набора». В открывшемся окне находим и выделяем созданный ранее реквизит для клиента и нажимаем «Далее».

Выбираем вариант «Сделать копию реквизита по образцу (с общим списком значений)» и нажимаем «Далее».

В созданном реквизите уже определен тип данных и заполнен перечень значений. Остается только присвоить наименование.

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

4.   Общие реквизиты в 1С

Сделать реквизиты общими (единое название и единый список значений для нескольких объектов) можно следующим образом:

ввести реквизит для одного объекта;

добавить реквизит из набора первого объекта и сделать его общим.

Все добавленные реквизиты после их записи становятся доступными в соответствующих объектах системы.  

5.   Отображение реквизитов в отчетах 1С и списках

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

Например, выведем реквизит «Согласовано», описанный выше, в справочник.

Открываем меню «Еще → Изменить форму». В списке полей выделяем строку «Ссылка» и нажимаем кнопку «Добавить поле». В предложенном списке выбираем «Согласовано (Договоры с контрагентами)» и нажимаем «ОК».

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

Колонка добавлена в список, теперь по ней можно осуществлять поиск.

Также для примера выведем дополнительный реквизит в отчет 1С «Задолженность клиентов» – категорию клиента.

Открываем «Настройки», выбираем вид «Расширенный» и добавляем новое поле. В окне выбора поля разворачиваем поле «Клиент», после чего разворачиваем список «Дополнительные реквизиты» и выбираем «Категория».

Поле добавлено в отчет. Также это поле можно включить в отборы или в общую структуру отчета.

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

Косьяненко Зоя Владимировна

Подключение дополнительных реквизитов и сведений (БСП)¶

http://1c-kod.ru/topic/18
https://master1c8.ru/biblioteka-standartnh-podsistem/podsistema-svoystva-bsp/

Подключение дополнительных реквизитов (БСП)¶

источник: http://1c-kod.ru/topic/18

1) В нашем объекте добавляем табличную часть «ДополнительныеРеквизиты», а точнее копируем ее из другого существующего справочника или документа, например, из справочника Пользователи, который изначально находится в составе конфигурации БСП.
2) На форме элемента нашего объекта добавляем группу с наименованием «ГруппаДополнительныеРеквизиты». Именно в этой группе и будет отображаться интерфейс дополнительных реквизитов.
3) В справочнике «НаборыДополнительныхРеквизитовИСведений» добавляем новый предопределенный элемент по шаблону — Справочник_Склады (если наш объект это справочник и называется он «Склады»). То есть смотрим на существующие предопределенные элементы и добавляем необходимый аналогичным образом.
4) В Плане видов характеристик «ДополнительныеРеквизитыИСведения» добавляем тип нашего объекта, если необходим такой тип для созданий дополнительных реквизитов.
5) В модуле формы элемента нашего объекта размещаем следующие куски кода:

В процедуре ПриСозданииНаСервере добавляем:

    // Обработчик подсистемы "Свойства" 
    ДополнительныеПараметры = Новый Структура;
    ДополнительныеПараметры.Вставить("Объект", Объект);
    ДополнительныеПараметры.Вставить("ИмяЭлементаДляРазмещения", "ГруппаДополнительныеРеквизиты");
    УправлениеСвойствами.ПриСозданииНаСервере(ЭтотОбъект, ДополнительныеПараметры);
    // Конец СтандартныеПодсистемы.Свойства

В процедуре ПриЧтенииНаСервере добавляем:

    // СтандартныеПодсистемы.Свойства
    УправлениеСвойствами.ПриЧтенииНаСервере(ЭтаФорма, ТекущийОбъект);    
    // Конец СтандартныеПодсистемы.Свойства   

В процедуре ОбработкаПроверкиЗаполненияНаСервере добавляем:

    // СтандартныеПодсистемы.Свойства
    УправлениеСвойствами.ОбработкаПроверкиЗаполнения(ЭтаФорма, Отказ, ПроверяемыеРеквизиты, Объект);
    // Конец СтандартныеПодсистемы.Свойства

В процедуре ПередЗаписьюНаСервере добавляем:

    // СтандартныеПодсистемы.Свойства
    УправлениеСвойствами.ПередЗаписьюНаСервере(ЭтаФорма, ТекущийОбъект);
    // Конец СтандартныеПодсистемы.Свойства

Добавляем следующие процедуры:

///////////////////////////////////////////////////////////////////// 
// ПРОЦЕДУРЫ ПОДСИСТЕМЫ "СВОЙСТВ" 

&НаКлиенте
Процедура Подключаемый_СвойстваВыполнитьКоманду(ЭлементИлиКоманда, НавигационнаяСсылка = Неопределено, СтандартнаяОбработка = Неопределено)
    УправлениеСвойствамиКлиент.ВыполнитьКоманду(ЭтотОбъект, ЭлементИлиКоманда, СтандартнаяОбработка);
КонецПроцедуры

&НаСервере
Процедура ОбновитьЭлементыДополнительныхРеквизитов() Экспорт
    УправлениеСвойствами.ОбновитьЭлементыДополнительныхРеквизитов(ЭтотОбъект, РеквизитФормыВЗначение("ФизическоеЛицо"));
КонецПроцедуры

Не используется

    ПРОЦЕДУРЫ ПОДСИСТЕМЫ "СВОЙСТВ" 
    &НаКлиенте
    Процедура Подключаемый_РедактироватьСоставСвойств()
        УправлениеСвойствамиКлиент.РедактироватьСоставСвойств(ЭтаФорма, Объект.Ссылка);
    КонецПроцедуры

    &НаСервере
    Процедура ОбновитьЭлементыДополнительныхРеквизитов()
        УправлениеСвойствами.ОбновитьЭлементыДополнительныхРеквизитов(ЭтаФорма, РеквизитФормыВЗначение("Объект"));
    КонецПроцедуры

6) И еще один важный момент: у справочника «НаборыДополнительныхРеквизитовИСведений» есть реквизит Используется. Для нашего созданного предопределенного элемента (см. пункт 3) необходимо установить значение Истина для этого реквизита. Но в пользовательском режиме 1С:Предприятие это не получится сделать, потому что этого реквизита нет на форме. Но можно воспользоваться стандартной обработкой «Групповое изменение реквизитов», где выбрать справочник «НаборыДополнительныхРеквизитовИСведений», сделать отбор по нашему созданному предопределенному элементу и установить значение Истина для реквизита «Используется». Примечание: если в обработке «Групповое изменение реквизитов» нет для выбора справочника «НаборыДополнительныхРеквизитовИСведений», то необходимо в настройке «Дополнительные параметры» включить галку «Показывать служебные реквизиты».

Понравилась статья? Поделить с друзьями:
  • Ярмарка на семеновской площади часы работы
  • 200 крупнейших частных компаний россии 2022
  • 1с записать хранилище значений в реквизитах
  • 200 часов принудительных работ сколько дней
  • 1с заполнитьзначениясвойств реквизиты формы