При работе с программными продуктами 1С, особенно в периоды выпуска крупных обновлений, специалисты часто сталкиваются с неожиданными сбоями в типовых механизмах. Одной из таких проблем стала ошибка «Неизвестный идентификатор формы», возникающая в конфигурации Управление торговлей редакции 11.4.6.166 при попытке создать новый узел в любом плане обмена. Ситуация осложняется тем, что стандартная отладка часто не позволяет «провалиться» в код, так как сбой происходит на этапе инициализации универсальных форм Библиотеки стандартных подсистем (БСП).
В данной статье мы разберем причины возникновения этой ошибки, проанализируем технические аспекты изменений в конфигурации и рассмотрим несколько проверенных способов решения проблемы.
Для начала проанализируем ситуацию и поймем, почему это происходит. Релиз УТ 11.4.6.166 стал знаковым, так как в него была интегрирована обновленная версия Библиотеки стандартных подсистем. В рамках этого обновления разработчики 1С провели масштабную реорганизацию механизмов синхронизации данных. Основные изменения коснулись следующих моментов:
Интересно, что существующие узлы при этом могут открываться и редактироваться без проблем, так как для них система использует уже существующие ссылки, в то время как создание «с нуля» требует корректной отработки конструктора новой формы.
Как показывает практика и опыт участников профессиональных сообществ, наиболее быстрым и эффективным «обходным» путем является отказ от прямого создания узла через список плана обмена. Вместо этого мы воспользуемся специализированным мастером.
Разберем по шагам, как это сделать:
При использовании этого метода система задействует Помощник настройки синхронизации данных. Этот механизм работает через другие программные интерфейсы и корректно инициализирует необходимые формы, минуя ошибочный вызов, вызывающий сбой идентификатора. После завершения работы помощника узел будет создан, и вы сможете работать с ним в обычном режиме.
Поскольку данная проблема носит массовый характер и признана критической ошибкой релиза 11.4.6.166, компания 1С оперативно выпустила исправления. Рассмотрим подробнее, что нужно сделать:
Обслуживание — Обновление программы — Установленные исправления. Для данного релиза должен быть доступен патч, исправляющий работу планов обмена.11.4.6.174, 11.4.6.188 или более поздних. В этих сборках ошибки в идентификаторах форм БСП были устранены на уровне метаданных.Если вам необходимо решить проблему здесь и сейчас без обновления всей базы, проанализируем ситуацию в режиме Конфигуратор. Нам необходимо убедиться, что свойства планов обмена заполнены корректно.
Выполним следующие действия:
ПланОбмена.ФормаУзлаСинхронизацииДанных.Пример программного поиска идентификатора формы для отладки может выглядеть так:
ИмяФормы = "ПланОбмена.СинхронизацияДанныхЧерезУниверсальныйФормат.ФормаОбъекта";
Попытка
ОткрытьФорму(ИмяФормы);
Исключение
Сообщить("Ошибка вызова формы: " + ОписаниеОшибки());
КонецПопытки;
Проанализировав ситуацию таким образом, вы сможете точно определить, какого именно объекта не хватает системе для корректного запуска интерфейса.
Иногда ошибка «Неизвестный идентификатор формы» может быть вызвана некорректным поведением кэша платформы после обновления метаданных. Рассмотрим, как исключить влияние внешних факторов:
8.3.12, для корректной работы БСП в новых релизах УТ рекомендуется использовать платформу не ниже 8.3.14. Версия 8.3.13.1513 официально не рекомендована для использования с данным релизом конфигурации из-за проблем с отрисовкой управляемых форм./ClearCache. Это заставит систему заново считать идентификаторы всех форм из обновленной конфигурации.ИспользоватьСинхронизациюДанных. В некоторых случаях при выключенной опции программный код пытается обратиться к формам, которые скрыты по правам или видимости, что порождает ошибку идентификации.Подводя итог, можно сказать, что наиболее надежным решением является использование Помощника настройки синхронизации в сочетании с последующим обновлением конфигурации до стабильного релиза. Это позволит избежать прямого обращения к ошибочным метаданным и обеспечит корректную работу механизмов обмена данными.