Разработчики, работающие с платформой 1С:Предприятие, часто сталкиваются с необходимостью доработки типовых конфигураций. Расширения предоставляют мощный инструмент для этих целей, позволяя вносить изменения без снятия конфигурации с поддержки. Однако одной из распространенных проблем, с которой мы можем столкнуться, является невозможность использовать собственные перечисления, созданные в расширении, в качестве типов для реквизитов, заимствованных из основной конфигурации. Давайте разберемся, почему это происходило ранее, как ситуация изменилась в новых версиях платформы и какие ограничения остаются.
Изначально, в ранних версиях платформы 1С:Предприятие 8.3 (до 8.3.18), существовало жесткое ограничение: расширения конфигурации не позволяли изменять типы реквизитов существующих объектов основной конфигурации. Это означало, что если мы хотели изменить тип реквизита, например, с одного типового перечисления на другое, или использовать наше собственное перечисление, созданное в расширении, это было невозможно.
Почему существовало такое ограничение? Мы можем предположить, что такое поведение было обусловлено тем, что платформа жестко фиксировала базовую структуру, поведение и способы хранения данных для типов метаданных. Любые подобные изменения требовали бы глубокой переработки непосредственно основной конфигурации. Такое ограничение, вероятно, было задумано, чтобы предотвратить избыточное усердие в расширениях и сохранить стабильность базовых механизмов системы. Изменение типа реквизита в расширении для заимствованного объекта могло бы привести к непредсказуемым последствиям при обновлении или работе с данными.
Таким образом, до версии 8.3.18, если мы пытались добавить наше перечисление в список допустимых типов для заимствованного реквизита, мы просто не видели его там. Это вызывало законные вопросы и затрудняло гибкую адаптацию типовых решений.
Ситуация существенно изменилась с выходом платформы 1С:Предприятие версии 8.3.18. Была реализована долгожданная возможность расширять типы реквизитов заимствованных объектов. Это стало значительным шагом вперед для разработчиков, так как позволило нам гораздо гибче адаптировать типовые решения без необходимости снятия конфигурации с поддержки.
Благодаря этим изменениям в версии 8.3.18 и выше, мы можем:
ЗаказКлиента и Реализацию, теперь мы можем добавить в его составной тип возможность хранить в нем также ЗаказПоставщику, который был создан в расширении или заимствован. Это значительно расширяет функциональность типовых механизмов.Таким образом, если мы работаем на платформе 8.3.18 или более поздней версии, возможность выбора своего перечисления для реквизитов заимствованных объектов конфигурации в большинстве случаев уже реализована.
Несмотря на значительное расширение возможностей, все же существуют некоторые ограничения, даже в версии 8.3.18 и старше. Важно их учитывать при планировании доработок:
ТипПланаВидовХарактеристик. Этот реквизит также является системным и критически важным для корректной работы планов видов характеристик.Кроме того, следует отметить, что в расширениях не поддерживается использование типа ЛюбаяСсылка. Механизмы, использующие этот тип, не будут работать с данными расширения, что необходимо учитывать при проектировании решений.
Мы должны понимать, что, хотя возможность расширять типы реквизитов появилась в платформе 8.3.18, ее фактическое использование в конкретных типовых конфигурациях, таких как 1С:Комплексная автоматизация (КА), может занять некоторое время. Разработчики типовых решений не всегда оперативно переводят конфигурации на новые версии платформы или режимы совместимости. Часто это связано с необходимостью тщательного тестирования и адаптации к изменениям платформы, что может быть довольно трудоемким процессом. Например, переход на новый режим совместимости часто требует значительных усилий и времени.
Поэтому, если мы сталкиваемся с описанной проблемой, первым делом следует проверить версию платформы, на которой работает наша конфигурация, и режим совместимости, установленный для неё. Если версия платформы ниже 8.3.18, то это ограничение является штатным поведением системы, и нам придется дождаться обновления платформы или пересмотреть архитектуру нашего расширения. Если же версия платформы соответствует или выше 8.3.18, но проблема все равно возникает, нам следует убедиться, что используемая конфигурация также обновлена и поддерживает новые возможности платформы.
В заключение, возможность выбора своего перечисления для реквизитов заимствованных объектов в расширениях стала реальностью для большинства случаев, начиная с платформы 1С:Предприятие версии 8.3.18. Мы рассмотрели основные изменения, новые возможности и сохраняющиеся ограничения, что позволяет нам более эффективно использовать инструмент расширений при доработке типовых решений.