При работе с программными продуктами 1С, особенно после масштабных обновлений конфигураций, пользователи и технические специалисты нередко сталкиваются с неожиданным поведением стандартных механизмов. Одной из таких проблем стала критическая ошибка при попытке настройки новой синхронизации данных (например, между 1С:Бухгалтерия предприятия 3.0 и 1С:Зарплата и управление персоналом или 1С:Управление торговлей) через канал связи Email. В процессе работы мастера настройки система выдает сообщение: «Ошибка инициализации: не указана учетная запись электронной почты транспорта сообщений обмена». При этом визуально поле заполнено корректными данными, а ранее созданные обмены продолжают функционировать без сбоев.
В данной статье мы подробно разберем причины возникновения этой ситуации, проанализируем внутренние механизмы конфигурации и рассмотрим несколько способов решения проблемы — от временных обходных путей до создания корректирующего расширения.
Рассмотрим подробнее, почему возникает эта ошибка. Проблема локализована в релизах 3.0.115.x и связана с обновлением состава Библиотеки стандартных подсистем (БСП). Разберем ситуацию поэтапно:
ПомощникСозданияОбменаДанными выяснилось, что в новых версиях произошла подмена типов. Реквизит формы, отвечающий за хранение выбранной учетной записи, приобрел тип Строка, в то время как реквизит самого объекта (узла обмена или параметров транспорта), в который должны записываться данные, ожидает тип СправочникСсылка.УчетныеЗаписиЭлектроннойПочты.Ситуация осложняется тем, что компания 1С проводит плановый рефакторинг справочника УчетныеЗаписиЭлектроннойПочты, переводя механизмы на работу с профилями настроек почты. В некоторых релизах это привело к тому, что старый справочник помечается «к удалению», а новые формы еще не полностью адаптированы под гибридную логику работы.
Самым надежным способом решения для программиста является создание небольшого расширения, которое вернет реквизиту формы правильный тип данных. Разберем этот процесс по шагам:
Шаг 1. Создание расширения. Создадим новое расширение в режиме «Конфигуратор», установив назначение «Исправление» (Patch) или «Адаптация».
Шаг 2. Заимствование формы. Найдем в основной конфигурации обработку ПомощникСозданияОбменаДанными и добавим ее в расширение вместе с формой настройки транспорта.
Шаг 3. Изменение типа реквизита. В редакторе формы расширения найдем реквизит (часто он называется УчетнаяЗапись или УчетнаяЗаписьЭлектроннойПочты) и вручную установим ему тип СправочникСсылка.УчетныеЗаписиЭлектроннойПочты вместо типа Строка.
Шаг 4. Настройка видимости. После изменения типа реквизита проверим свойства элемента формы (поля ввода). Убедимся, что для него включена кнопка выбора и указан правильный путь к данным. Теперь, когда мы будем выбирать запись в мастере, система сохранит именно ссылку на объект, а не просто текст.
// Пример логики, которую можно применить в расширении для проверки типа
&НаСервере
Процедура ПриСозданииНаСервереПосле(Отказ, СтандартнаяОбработка)
// Проверяем, что реквизит имеет нужный нам тип для работы обмена
Элементы.УчетнаяЗапись.ТипЗначения = Новый ОписаниеТипов("СправочникСсылка.УчетныеЗаписиЭлектроннойПочты");
КонецПроцедуры
Если вы не хотите вносить изменения в структуру программы через расширения, проанализируем альтернативный вариант. Ошибка зачастую кроется именно в «Помощнике», но отсутствует в формах редактирования уже созданных узлов. Рассмотрим алгоритм действий:
Поскольку в этом интерфейсе используется другая форма (форма редактирования параметров обмена), реквизит УчетнаяЗапись там обычно имеет корректный ссылочный тип. Выберите нужную запись почты, проверьте соединение и сохраните настройки. Проблема будет решена без программирования.
Выясним еще одну деталь: иногда код БСП обращается к «Системной учетной записи», если основная не определена корректно. Попробуем выполнить следующие действия:
Системная учетная запись.В некоторых случаях, даже если в мастере настройки синхронизации поле отображается некорректно, система может подхватить настройки из системного профиля «по умолчанию», что позволит инициализировать транспорт без ошибки.
Важно помнить, что подобные ошибки являются следствием несовершенства конкретных релизов. Мы рекомендуем:
EF_60000287 или аналогичный, исправляющий типы реквизитов в мастере обмена./ClearCache или удалить базу из списка и добавить ее заново.Мы проанализировали ситуацию и выяснили, что ошибка носит сугубо технический характер и связана с опечаткой в метаданных формы. Используя предложенные методы, вы сможете восстановить работоспособность обменов и продолжить синхронизацию данных между вашими информационными базами.