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