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