Почему в тип ОбъектСДополнительнымиКомандами в БП 3.0 входят не все документы и как это исправить

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

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

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

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

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

Разбираем решение через механизм расширений

Если вы обнаружили, что нужного вам документа нет в составе ОбъектСДополнительнымиКомандами, не нужно вносить изменения непосредственно в типовую конфигурацию (снимать с поддержки). Рассмотрим самый правильный и безопасный метод решения — использование расширения конфигурации.

Выполним следующие шаги вместе:

Шаг 1. Создание расширения. Перейдем в конфигуратор, выберем пункт меню «Конфигурация» — «Расширения конфигурации» и создадим новое расширение. Укажем назначение «Адаптация» или «Дополнение».

Шаг 2. Добавление объектов в расширение. Найдем в основной конфигурации необходимый документ (например, ЗаказНаЭмиссиюКодовМаркировкиСУЗ) и добавим его в расширение (правой кнопкой мыши — «Добавить в расширение»).

Шаг 3. Заимствование определяемого типа. Теперь найдем в основной конфигурации в ветке «Общие» — «Определяемые типы» объект ОбъектСДополнительнымиКомандами и также добавим его в наше расширение.

Шаг 4. Редактирование состава типа. В окне расширения откроем свойства заимствованного определяемого типа ОбъектСДополнительнымиКомандами. В поле «Тип» установим галочку напротив нашего документа. Теперь система считает, что этот документ поддерживает подсистему дополнительных отчетов и обработок.

Регистрация команд в коде

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

Рассмотрим пример кода, который часто используется в БСП для инициализации команд в модуле менеджера объекта:


// В модуле менеджера документа
Процедура ДобавитьКомандыПечати(КомандыПечати) Экспорт
    // Здесь описываются стандартные команды печати
КонецПроцедуры

Процедура ПриОпределенииОбъектовСДополнительнымиКомандами(СписокОбъектов) Экспорт
    СписокОбъектов.Добавить(Метаданные.Документы.НужныйДокумент);
КонецПроцедуры

Хотя для типовых документов БП 3.0 ручное прописывание в коде требуется редко (система ориентируется на состав определяемого типа), понимание этого механизма полезно для диагностики проблем.

Что делать, если решение через расширение не помогает?

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

  1. Проверка прав доступа. Убедитесь, что у пользователя есть права на чтение объекта ДополнительныеОтчетыИОбработки и использование команд.
  2. Обновление кэша команд. После внесения изменений через расширение рекомендуется запустить базу с параметром /С ЗапуститьОбновлениеИнформационнойБазы или просто открыть справочник «Дополнительные отчеты и обработки» и нажать кнопку «Обновить команды» (если она доступна в вашей версии БСП).
  3. Обращение в техническую поддержку. Как советуют опытные участники сообщества, если документ действительно массовый и его отсутствие мешает работе, стоит написать на v8@1c.ru. Фирма «1С» часто включает пропущенные объекты в состав определяемых типов в следующих релизах на основании заявок пользователей.

Выясняем нюансы для специфических документов

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

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

Итоги и рекомендации

Подводя итог, можно сказать, что отсутствие документов в типе ОбъектСДополнительнымиКомандами — это не «заговор», а следствие архитектурного разделения ответственности между подсистемами 1С. Для исправления ситуации мы рекомендуем:

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

← На главную