Профессия — 1С
рубрики: Платформа 8.3 | Дата: 17 июня, 2018
Описание
В процессе программной обработки объектов базы 1С (элементы справочников, документы, наборы записей регистров и т.д.) могут возникать ситуации, когда необходимо присвоить объекту некий временный набор дополнительных свойств в зависимости от которых будет выполняться тот или иной код.
И вместе с тем создавать в метаданных отдельный реквизит объекта нецелесообразно, поскольку эти данные нужны только на время программной обработки объекта, а после сохранения объекта в базе они уже не будут иметь никакого смысла. Для таких случаев можно использовать специальное свойство объекта — ДополнительныеСвойства. Это свойство представляет из себя структуру, которую разработчик может заполнять по своему усмотрению.
Пример
Рассмотрим небольшой пример. Допустим, что у нас есть справочник Товары и мы пишем обработку в которой будем программно создавать новый элемент справочника. А в процедуре ПередЗаписью() модуля объекта нам необходимо понять создается элемент программно или в режиме предприятия.
Для этого в обработке напишем вот такой код:
А теперь поставим в процедуре ПередЗаписью() точку останова и посмотрим в отладчике отличия свойства ДополнительныеСвойства при записи из обработки и при записи из пользовательского режима.
При записи из пользовательского режима: 
При записи из обработки: 
А теперь доработаем процедуру ПередЗаписью() таким образом, чтобы при записи из обработки у нас выполнялась какая-то процедура по заполнению реквизитов объекта по умолчанию:
В заключение хочется отметить, что ДополнительныеСвойства используются только для чтения. Изначально это свойство уже есть у объекта и можно только добавлять к этой структуре новые элементы (как рассмотрено в примере выше) или удалять соответственно.
1С БСП. Дополнительные реквизиты и сведения
Введение
В этой статье я хотел бы рассказать об архитектуре, использовании и особенностях реализации подсистемы «Свойства» из инструментария разработчика «1С:Библиотека стандартных подсистем» (1С БСП).
Для начала предлагаю разобраться с терминологией 1С БСП: согласно ИТС дополнительные реквизиты и сведения — это свойства. По моему мнению, подсистема «Свойства» (Управление свойствами) — это очень мощный функционал, который позволяет во многих случаях отказаться от снятия конфигурации с поддержки или внесения ненужных изменений и ошибок в конфигурацию.
Архитектура
Описание работы с подсистемой «Свойства» на сайте ИТС 1С является исчерпывающим для типовых конфигураций, но в любом случае, для того, чтобы начать работать со свойствами в любой конфигурации с внедрённым 1С БСП необходимо установить установить константу «Использовать дополнительные реквизиты и сведения» в значение «Истина». После этого мы можем открыть справочник «Наборы дополнительных реквизитов и сведений», который содержит список объектов для которых можно создавать дополнительные реквизиты и сведения. При добавлении через стандартные формы 1С БСП пользователь создаёт новый элемент «Плана видов характеристик», который добавляется в табличную часть элемента.
Дополнительные сведения отличаются от дополнительных реквизитов прежде всего расположением, дополнительные сведения содержатся в отдельном регистре с одноименным названием, а дополнительные реквизиты являются табличной частью объекта, к которому относятся. На рисунке ниже слева-направо изображены: элемент справочника «Наборы дополнительных реквизитов и свойств», элемент плана видов характеристик и список регистра сведений «Дополнительные сведения».
Следующий рисунок изображает пример дополнительного реквизита, слева-направо: элемент справочника «Наборы дополнительных реквизитов и свойств», элемент плана видов характеристик и элемент справочника, в который был добавлен дополнительный реквизит.
Также стоит учитывать, что большая часть объектов метаданных в справочнике «Наборы дополнительных реквизитов и сведений» является предопределённой:
Однако, заполнение этих данных происходит программно, при внедрении 1С БСП или обновлении информационной базы — для этого в общих модулях добавляют процедуру ПриПолученииПредопределенныхНаборовСвойств. Уникальный идентификатор задаётся в явном виде, в т.ч. для того чтобы облегчить процедуры обмена между базами.
С точки зрения интеграции с объектами механизм работы с формами не сильно отличается от аналогичных у других подсистем 1С БСП: из модуля УправлениеСвойствами вызываются процедуры и функции с названиями соответствующими названиям событий для которых они вызываются, например:
Полный список функций и процедур находится в общем модуле УправлениеСвойствами в блоке, озаглавленным: «Процедуры и функции для стандартной обработки дополнительных реквизитов».
Использование
Каждый дополнительный реквизит или свойство содержит поле «Имя», подразумевается, что для программного использования будет использоваться этот реквизит.
Пример использования имени для получения дополнительного реквизита:
Пример запроса для получения всех дополнительных свойств:
Примеры получения свойств без запроса:
Особенности реализации
Если с запросами и функциями всё более менее ясно неприятным сюрпризом может стать то, что дополнительный реквизит на форме содержит название, отличающееся от этого реквизита, например, такое:
Чтобы найти реквизит на форме 1С БСП создаёт новые реквизиты формы Свойства_ОписаниеДополнительныхРеквизитов и Свойства_ОписаниеЗависимыхДополнительныхРеквизитов, с помощью них можно установить однозначное соответствие между элементом и значением объекта:
Второй особенностью реализации можно выделить невозможность создания свойства с мутабельным типом, с одной стороны это очевидное ограничение, с другой тип «Список значений» вполне допустим, но только для дополнительного реквизита (у дополнительных сведений невозможность связана с архитектурными ограничениями, так как объект и свойство — это измерения регистра «Дополнительные сведения»). Возможно, отсутствие такого типа связано со сложностями при обмене, а возможно в скором времени это будет реализовано, предлагаю посмотреть на пример такой реализации ниже.
Добавим новый дополнительный реквизит для справочника физические лица «Номера счетов»
Добавляем программно, вторую запись в табличную часть «Дополнительные реквизиты» справочника «Физические лица» с тем же самым свойством:
Немного модифицируем код функции ЗначенияСвойств в общем модуле УправлениеСвойствамиСлужебный:
А также код процедуры ЗаполнитьДополнительныеРеквизитыВФорме в общем модуле УправлениеСвойствами:
Таким образом мы можем сохранять и восстанавливать значения реквизитов, которые, принимают множество значений.
Работа в примерах была осуществлена с версией БСП: 3.1.2.245
Дополнительные реквизиты и дополнительные сведения в 1С
Дополнительные реквизиты и сведения в 1С
Дополнительные реквизиты являются неотъемлемой часть справочника, хранятся в самом объекте и отображаются на его форме. С их помощью описываются свойства объекта. После их настройки они появляются на форме объекта и становятся доступны для заполнения. Они доступны тем же пользователям, которым доступен и сам объект. Дополнительные реквизиты лучше использовать для отражения общедоступной информации.
Настройка подсистемы Дополнительные реквизиты и дополнительные сведения на примере 1С 8.3 Бухгалтерия 3.0
Получите понятные самоучители 2021 по 1С бесплатно:
Добавление дополнительных реквизитов
На вкладке Значения можем перечислить значения нашего реквизита, при этом значения можно объединять в группы. Например, Значение доп. реквизита 1, значение доп. реквизита 2, значение доп. реквизита 3.
Нажимаем Записать и закрыть и также сохраняем наш созданный реквизит.
Создадим еще один реквизит, назовем его Доп. реквизит — 2 (установка галочки). Для добавления реквизита галочка, флажок установим Тип реквизита — Булево. При смене реквизита меняются настройки формы. В данном случае нам предлагается установить настройки видимости и доступности, установить всплывающую подсказку.
Введем для примера еще один реквизит с Типом значения Строка (назовем его для примера Доп. реквизит — 3 (текст)).
Все настройки интуитивно понятны.
Так, при создании дополнительных реквизитов в 1С, при выборе Тип значения реквизита, мы можем использовать разные варианты и в зависимости от его выбора немного меняется настройка создаваемого реквизита.
Мы видим, три наших добавленных реквизита. В первом реквизите — поле с кнопкой выбора значений, во втором — возможность установить галочку, в третьем — обычное текстовое поле и наши всплывающие подсказки, которые прописали в настройках.
Добавление дополнительных сведений к форме
Добавление и настройка дополнительных сведений в 1С производится аналогично дополнительным реквизитам.
Аналогично можно добавить Дополнительные сведения и к документам. Окно ввода дополнительных сведений также будет доступно в кнопке Еще — Дополнительные сведения документа.
Данная команда доступна как из самого документа, так и из журнала документов.
Если Вы еще не являетесь подписчиком системы БухЭксперт8:
После оформления подписки вам станут доступны все материалы по 1С Бухгалтерия, записи поддерживающих эфиров и вы сможете задавать любые вопросы по 1С.
Получите еще секретный бонус и полный доступ к справочной системе БухЭксперт8 на 14 дней бесплатно
Похожие публикации
Карточка публикации

(3 оценок, среднее: 3,67 из 5)
Все комментарии (16)
Здравствуйте, случайно сделал допреквизит неиспользуемым. Как теперь восстановить?
Помнится, было на это тему видео от Елены Гряниной, найти не смог.
Не отвечайте, сам разобрался, вспомнил, как показывала Елена в одном из видео. Скопировал и вставил «как есть.»
Здравствуйте, спасибо, хорошая статья. Но, похоже, вы описали Бухгалтерию КОРП а не ПРОФ. В ПРОФ не нашел общих дополнительных реквизитов.
Спасибо за внимание к нашему материалу.
Мы публикуем материалы по 1С Бухгалтерия 3.0 ПРОФ.
Добрый день. Хотелось бы, чтобы разобрали дальнейшие действия. Как вывести этот дополнительный реквизит справочника в форму табличной части документа, который этот справочник использует. В Еще-изменить форму — такого реквизита у справочника нет.
Здравствуйте! Необходимо открыть Ещё — изменить форму, далее установить курсор на строчку «Ссылка» нажать «Добавить поля». Откроется окно, где будут доступны в том числе и доп. реквизиты.
Не дописал про Ссылка — Добавить поля. Я там именно и смотрел. Добавленного реквизита не видно. Прилагаю скриншоты. Попробуйте воспроизвести именно со справочником Виды работ.
Работа с дополнительными характеристиками объектов
Во многих типовых конфигурациях от 1С используются понятия дополнительных свойств и категорий объектов.
Данные категории позволяют, без внесения дополнительных изменений в конфигурацию, сущетвенно расширить возможности системы. Но в данной статье речь несколько о ином. А именно, как с помощью данных механизмов, ПРОГРАММНО расширить функциональность конфигурации с внесением МИНИМАЛЬНОГО количества изменений.
Для примера рассмотрим две прикладных задачи реализованные в конфигурации БП КОРП 2.0:
Методика решения задач ( на конфигурации Бухгалтерия предприятия, редакция 2.0 (2.0.29.9) )
Решение задачи №1
— находим наиболее удобное место для внесения изменений в конфигурацию. По-моему, это процедура «СформироватьНазначениеПлатежа» модуля формы документа «СписаниеСРасчетногоСчета». Данная процедура запускается на исполнение при изменении вида операции документа, либо договора контрагента.
— теперь, в самом начале процедуры добавим следующую вставку
При исполнении данного кода, будет произведен поиск дополнительной характеристики текущего пользователя «Авторедактирование назначения платежа». В случае ее отсутствия, вышеупомянутая характеристика будет создана автоматически. Третий параметр функции определяет необходимость автоматической установки флага.
На основании значения данной характеристики, принимаем решение о выполнении дальнейших действий по редактированию поля «Назначения платежа»
Проверка функционирования:
— Открыть любой документ «Списание с расчетного счета», изменить Вид операции. Назначение платежа меняться не должно.
Таким образом, задача решена с минимальными трудозатратами.
Решение задачи №2
— находим наиболее удобное место для внесения изменений в конфигурацию. По-моему, это функция «СформироватьСтруктуруШапкиДокумента» общего модуля конфигурации «ОбщегоНазначения». Данная процедура запускается на исполнение при проведении расчетных документов. Заменяем строку 1089 на следующую вставку
// 1. определяем: используется ли по данной организции особый порядок учета УСН
// Проверим, установленно ли дополнительное свойство Организации «Особый порядок УСН» (должно соответствовать принятой учетной политике)
// 2. Проверим, установленно ли дополнительное свойство документа «Отражать в УСН»
Проверка функционирования:
— По организации, применяющей упрощенную систему налогообложения, провести любой документ «Поступление на расчетный счет».
— После проведения, у организации появился дополнительный реквизит «Особый порядок УСН» (см. рис. 2). Установим галочку
— У документа «Поступление на расчетный счет» появился дополнительный реквизит «Отражать в УСН» (см. рис.3). Его пока не устанавливаем.
— еще раз перепроведем выбранный документ «Поступление на расчетный счет». При этом, записи в книгу доходов не производится (см. рис 4)
— Если у документа установить флаг дополнительного реквизита «Отражать в УСН» (см. рис 5) и перепровести документ, то происходит запись в регистр учета УСН. (см. рис 6)
Таким образом, задача решена с минимальными трудозатратами
1С дополнительные сведения запись и получение
В 1с дополнительные сведения представляют — это механизм позволяющий хранить дополнительные данные для различных объектов метаданных (справочник, документ и т.п.). Это удобно тем, что не требуется вносить изменений в конфигурацию. В конфигурациях использующих управляемое приложение (Бухгалтерия 3.0, Управление торговлей 11 и т.п.) дополнительные сведения хранятся в регистре ДополнительныеСведения, у него два измерения: Объект — ссылка на объект к которому относится дополнительное сведение, Свойство — идентификатор конкретного сведения, тип план видов характеристик ДополнительныеРеквизитыИСведения.
1с дополнительные сведения в режиме Предприятие
Рассмотрим, как добавить в документе дополнительное сведение. Для примера возьмем конфигурацию Управление торговлей 11, документ Авансовый отчет.
Функция получающая в 1с дополнительные сведения
1с дополнительные сведения функция программной записи
Данная функция осуществляет программную запись значения в дополнительные сведения объекта по переданному свойству. Предназначена для конфигурации Управление торговлей 11. Возвращает значение Истина в случае успешной записи и Ложь в случае ошибки.
Если вы еще не знаете, как правильно работать с механизмом дополнительных реквизитов в 1с 8, то прочтите об этом в статье Получить / записать дополнительные реквизиты программно.







































