Как добавить дополнительный реквизит или комментарий для группы справочника в 1С:Бухгалтерия 3.0

Программист 1С v8.3 (Управляемые формы) 1C:Бухгалтерия IT и автоматизация бизнеса
← На главную

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

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

Анализ проблемы: почему дополнительные реквизиты не работают для групп «из коробки»

Проанализируем структуру метаданных типового решения. В справочнике Номенклатура (и многих других) существует табличная часть ДополнительныеРеквизиты. Если мы заглянем в конфигуратор, то увидим, что у этой табличной части в свойстве «Использование» установлено значение «Для элементов». Это означает, что на уровне базы данных у записей-групп физически отсутствует таблица для хранения этих свойств.

Более того, программные механизмы БСП (подсистема УправлениеСвойствами) при инициализации формы проверяют тип объекта. Если это группа, код БСП просто не выводит соответствующие поля на форму. Таким образом, простое изменение настроек в пользовательском режиме не принесет результата.

Решение 1: Использование расширений конфигурации

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

Рассмотрим по шагам, что необходимо сделать в расширении:

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

Пример программной настройки в модуле менеджера (через расширение):


&ИзменениеИИлиДополнение
Процедура ПриОпределенииНаборовСвойств(НаборыСвойств)
    // Добавляем логику, чтобы система видела группу как объект, имеющий свойства
    Если НаборыСвойств.Свойство("Номенклатура") Тогда
        // Здесь можно принудительно указать набор свойств для групп
    КонецЕсли;
КонецПроцедуры

Решение 2: Использование механизма «Дополнительные сведения»

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

Разберем, почему это может не работать сразу: В плане видов характеристик (ПВХ) ДополнительныеРеквизитыИСведения для каждого свойства настраивается тип значения. Если в типах разрешена ссылка на справочник, технически запись в регистр возможна. Однако стандартная кнопка на форме группы может быть скрыта программно.

Чтобы задействовать этот механизм, попробуем следующий алгоритм:

Решение 3: Механизм «Заметки» и «Присоединенные файлы» (без кодинга)

Если ваша задача — просто добавить текстовый комментарий или пояснение к группе номенклатуры, рассмотрим встроенные подсистемы БСП, которые часто игнорируются:

  1. Заметки: В конфигурации «Бухгалтерия предприятия 3.0» включена подсистема «Заметки». Заметку можно создать для любого объекта, включая группу. Она будет видна в списке заметок и может быть выведена на рабочий стол.
  2. Присоединенные файлы: Если к группе нужно добавить детальное описание или регламент, можно использовать хранилище файлов. Создайте текстовый файл или документ и прикрепите его непосредственно к папке в справочнике.

Решение 4: Связка «Группа — Технический элемент»

Рассмотрим экзотический, но рабочий метод без изменения метаданных. Вы можете создать в каждой группе специальный элемент (например, с наименованием «_Инфо_»), для которого зададите все необходимые дополнительные реквизиты. В коде обработок или отчетов можно прописать логику: «если нужны свойства группы — возьми их из служебного элемента внутри этой группы».

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

Важное замечание о свойстве «Использование»

Выясним причину, по которой совет из сообщения №7 на форумах часто вводит в заблуждение. В режиме «1С:Предприятие» при создании дополнительного реквизита есть настройка «Использование». Многие думают, что выбрав там «Для групп», они решат проблему. Это не так.

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

Резюме

Для реализации полноценных дополнительных реквизитов для групп в БП 3.0 мы рекомендуем использовать Расширения. Это позволит:

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

← На главную