В процессе разработки на платформе 1С часто возникают ситуации, когда требуется расширить типовой функционал — например, добавить новый документ, который должен стать полноправным «Объектом расчетов». Однако при попытке реализовать это через расширение мы сталкиваемся с архитектурным ограничением платформы: реквизит Объект в справочнике ОбъектыРасчетов является определяемым типом, и до определенных версий платформы расширение не имело возможности влиять на его состав.
Давайте подробно проанализируем эту ситуацию, разберем возможные пути решения и определим, когда стоит использовать расширения, а когда — изменения основной конфигурации.
Определяемые типы — это мощный механизм 1С, позволяющий объединять множество ссылочных типов под одним именем. Когда типовой механизм (например, регистр расчетов или справочник ОбъектыРасчетов) ожидает ссылку на документ, он проверяет, входит ли тип этого документа в состав соответствующего определяемого типа.
Основная проблема заключается в следующем:
ОпределяемыхТипов, заданных в основной конфигурации.Если ваша организация использует современную версию платформы (8.3.20 или выше) и режим совместимости конфигурации позволяет это сделать, вы получаете возможность расширять ОпределяемыеТипы непосредственно в расширении. Это самый чистый путь, который позволяет не снимать конфигурацию с поддержки.
Важно: Перед тем как переходить на новую версию режима совместимости в ERP или других крупных типовых решениях, убедитесь, что вы провели полное регрессионное тестирование. Повышение режима совместимости может привести к изменению поведения встроенных функций платформы.
Например, в версии 8.3.18 был переименован параметр Параметры метода СтрокаСЧислом в ФорматнаяСтрокаЧисла. Если в типовой конфигурации используются методы, чье поведение изменилось в новых версиях платформы, автоматическое обновление режима совместимости может повлечь за собой ошибки исполнения кода.
Если архитектура задачи требует глубокой интеграции нового документа с типовыми механизмами (например, через определяемые типы), наиболее надежным и профессиональным решением является добавление этого объекта непосредственно в основную конфигурацию.
Многие разработчики опасаются, что любое изменение основной конфигурации делает систему «необновляемой». Однако давайте разберем это утверждение с практической точки зрения:
ОпределяемыхТипов) будут корректно обработаны через штатный механизм сравнения и объединения.Чтобы ваша конфигурация оставалась поддерживаемой и обновляемой, придерживайтесь следующих правил:
В заключение, помните, что универсального способа «обмануть» платформу не существует. Выбирая между сложным, но надежным путем (изменение основной конфигурации) и заманчивым, но хрупким (расширение с потенциальными ошибками), всегда отдавайте предпочтение предсказуемости системы и легкости её будущего обновления.