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