Как исправить ошибку Неизвестный идентификатор формы при создании плана обмена в УТ 11.4.6

Программист 1С v8.3 (Управляемые формы) 1С:Управление торговлей IT и автоматизация бизнеса
← На главную

При работе с программными продуктами 1С, особенно в периоды выпуска крупных обновлений, специалисты часто сталкиваются с неожиданными сбоями в типовых механизмах. Одной из таких проблем стала ошибка «Неизвестный идентификатор формы», возникающая в конфигурации Управление торговлей редакции 11.4.6.166 при попытке создать новый узел в любом плане обмена. Ситуация осложняется тем, что стандартная отладка часто не позволяет «провалиться» в код, так как сбой происходит на этапе инициализации универсальных форм Библиотеки стандартных подсистем (БСП).

В данной статье мы разберем причины возникновения этой ошибки, проанализируем технические аспекты изменений в конфигурации и рассмотрим несколько проверенных способов решения проблемы.

Выясним причину возникновения ошибки

Для начала проанализируем ситуацию и поймем, почему это происходит. Релиз УТ 11.4.6.166 стал знаковым, так как в него была интегрирована обновленная версия Библиотеки стандартных подсистем. В рамках этого обновления разработчики 1С провели масштабную реорганизацию механизмов синхронизации данных. Основные изменения коснулись следующих моментов:

  1. Унификация форм: Из многих планов обмена были удалены собственные формы объекта и формы узла. Вместо них система должна использовать универсальные формы из состава БСП.
  2. Ошибки в метаданных: В коде некоторых команд и в свойствах самих планов обмена остались жесткие ссылки на старые идентификаторы форм, которые физически исчезли из дерева конфигурации или были переименованы.
  3. Программный вызов: При нажатии кнопки «Создать» в списке узлов система обращается к менеджеру обмена, который пытается инициализировать форму по идентификатору. Если соответствие в справочнике идентификаторов объектов метаданных не обновилось или указано неверно, генерируется исключение.

Интересно, что существующие узлы при этом могут открываться и редактироваться без проблем, так как для них система использует уже существующие ссылки, в то время как создание «с нуля» требует корректной отработки конструктора новой формы.

Способ 1. Использование помощника настройки синхронизации

Как показывает практика и опыт участников профессиональных сообществ, наиболее быстрым и эффективным «обходным» путем является отказ от прямого создания узла через список плана обмена. Вместо этого мы воспользуемся специализированным мастером.

Разберем по шагам, как это сделать:

  1. Перейдем в раздел НСИ и администрирование.
  2. Выберем пункт Настройка синхронизации данных.
  3. В открывшемся окне нажмем на ссылку Настройки синхронизации данных.
  4. Вместо того чтобы заходить в конкретный план обмена через функции технического специалиста, нажмем кнопку Новая синхронизация данных.
  5. Выберем нужную конфигурацию для обмена из предложенного списка.

При использовании этого метода система задействует Помощник настройки синхронизации данных. Этот механизм работает через другие программные интерфейсы и корректно инициализирует необходимые формы, минуя ошибочный вызов, вызывающий сбой идентификатора. После завершения работы помощника узел будет создан, и вы сможете работать с ним в обычном режиме.

Способ 2. Обновление конфигурации и установка патчей

Поскольку данная проблема носит массовый характер и признана критической ошибкой релиза 11.4.6.166, компания 1С оперативно выпустила исправления. Рассмотрим подробнее, что нужно сделать:

  1. Проверка версии: Убедимся, что текущая версия конфигурации действительно 11.4.6.166.
  2. Поиск патчей: В современных версиях 1С реализован механизм автоматической загрузки исправлений (патчей). Проверьте раздел Обслуживание — Обновление программы — Установленные исправления. Для данного релиза должен быть доступен патч, исправляющий работу планов обмена.
  3. Минорное обновление: Если установка патчей невозможна, рекомендуется обновить конфигурацию до версии 11.4.6.174, 11.4.6.188 или более поздних. В этих сборках ошибки в идентификаторах форм БСП были устранены на уровне метаданных.

Способ 3. Корректировка в Конфигураторе (для программистов)

Если вам необходимо решить проблему здесь и сейчас без обновления всей базы, проанализируем ситуацию в режиме Конфигуратор. Нам необходимо убедиться, что свойства планов обмена заполнены корректно.

Выполним следующие действия:

  1. Найдем в дереве метаданных нужный ПланОбмена.
  2. Откроем его палитру свойств.
  3. Обратим внимание на поля Основная форма объекта и Основная форма узла.
  4. Если эти поля пусты или содержат ссылки на несуществующие объекты (выделены красным), необходимо вручную назначить им соответствующие формы. Обычно это формы из состава самой БСП, например, ФормаУзлаСинхронизацииДанных.

Пример программного поиска идентификатора формы для отладки может выглядеть так:


ИмяФормы = "ПланОбмена.СинхронизацияДанныхЧерезУниверсальныйФормат.ФормаОбъекта";
Попытка
    ОткрытьФорму(ИмяФормы);
Исключение
    Сообщить("Ошибка вызова формы: " + ОписаниеОшибки());
КонецПопытки;

Проанализировав ситуацию таким образом, вы сможете точно определить, какого именно объекта не хватает системе для корректного запуска интерфейса.

Способ 4. Проверка платформы и очистка кэша

Иногда ошибка «Неизвестный идентификатор формы» может быть вызвана некорректным поведением кэша платформы после обновления метаданных. Рассмотрим, как исключить влияние внешних факторов:

  1. Версия платформы: Несмотря на то, что в обсуждениях часто упоминается откат на 8.3.12, для корректной работы БСП в новых релизах УТ рекомендуется использовать платформу не ниже 8.3.14. Версия 8.3.13.1513 официально не рекомендована для использования с данным релизом конфигурации из-за проблем с отрисовкой управляемых форм.
  2. Очистка кэша: Удалите базу из списка и добавьте её заново, либо запустите 1С:Предприятие с параметром /ClearCache. Это заставит систему заново считать идентификаторы всех форм из обновленной конфигурации.
  3. Функциональные опции: Убедитесь, что в константах включена опция ИспользоватьСинхронизациюДанных. В некоторых случаях при выключенной опции программный код пытается обратиться к формам, которые скрыты по правам или видимости, что порождает ошибку идентификации.

Подводя итог, можно сказать, что наиболее надежным решением является использование Помощника настройки синхронизации в сочетании с последующим обновлением конфигурации до стабильного релиза. Это позволит избежать прямого обращения к ошибочным метаданным и обеспечит корректную работу механизмов обмена данными.

← На главную