Приветствуем вас! При работе с распределенными информационными базами (РИБ) в среде 1С:Предприятие технические специалисты часто сталкиваются со сложными системными сбоями в момент генерации начального образа подчиненного узла. Одним из наиболее коварных симптомов является аварийное завершение процесса с ошибкой выполнения POST-запроса к ресурсу /e1cib/logform по причине СУБД: «Ошибка SQL: поле не найдено 'Т2._Fld1426RRef'».
В этой статье мы подробно проанализируем природу этого сбоя, выясним, почему стандартные механизмы СУБД дают осечку, и разберем по шагам несколько эффективных способов решения проблемы — от тонкой настройки кэша до альтернативного программирования структуры РИБ в обход штатных механизмов выгрузки.
Для того чтобы эффективно бороться со сбоем, давайте разберем его внутреннюю техническую составляющую:
/e1cib/logform): Ресурс /e1cib/logform отвечает за передачу данных интерфейса управляемых форм между клиентом и сервером 1С. Когда платформа пытается сгенерировать начальный образ РИБ, на сервере запускаются тяжелые транзакции. Если рабочий процесс rphost падает из-за утечки памяти или критической ошибки базы данных, соединение разрывается, и клиент выдает эту общую сетевую ошибку._Fld1426RRef): Суффикс RRef указывает на реквизит типа «Ссылка» (например, ссылка на справочник или документ), который был добавлен разработчиком в конфигурацию. Обозначение Т2 говорит о том, что СУБД обращается к временной таблице или к таблице в левом соединении сложного SQL-запроса. Ошибка возникает из-за рассинхронизации: логическая структура метаданных в конфигурации 1С ссылается на этот реквизит, но физически в таблицах СУБД (или во временных таблицах, сформированных сервером 1С) этой колонки не оказывается.Ниже мы подробно рассмотрим пять практических способов решения данной проблемы, от простых административных мер до профессионального обходного пути.
Штатный механизм создания начального образа подчиненного узла через конфигуратор крайне чувствителен к любым несоответствиям метаданных и потребляет колоссальный объем оперативной памяти. На средних и крупных базах этот процесс часто прерывается ошибками СУБД. Профессиональное и самое надежное решение — создать подчиненный узел вручную, без использования стандартной процедуры выгрузки начального образа.
Проанализируем этот алгоритм по шагам:
УЗ01)..dt.
// Программное превращение копии базы в подчиненный узел РИБ
Процедура УстановитьГлавныйУзелНаКлиенте()
// Находим в плане обмена узел, соответствующий нашей главной базе
СсылкаНаЦентральныйУзел = ПланыОбмена.ПоОрганизациям.НайтиПоКоду("ЦБ");
Если НЕ СсылкаНаЦентральныйУзел.Пустая() Тогда
// Устанавливаем связь. База получит статус подчиненной
ПланыОбмена.УстановитьГлавныйУзел(СсылкаНаЦентральныйУзел);
Сообщить("Узел успешно переведен в статус подчиненного!");
Иначе
Сообщить("Критическая ошибка: Центральный узел с кодом 'ЦБ' не найден!");
КонецЕсли;
КонецПроцедуры
После выполнения метода ПланыОбмена.УстановитьГлавныйУзел() база автоматически перезапустится и станет полноценным подчиненным узлом.
Если для вас принципиально использовать именно штатный механизм создания начального образа, необходимо устранить физическое расхождение схемы СУБД и метаданных. Чаще всего такое происходит из-за некорректно примененных динамических обновлений («демонов»).
Рассмотрим порядок действий для исправления структуры таблиц:
.dt: Это самый мощный инструмент нормализации структуры базы SQL. Выгрузите базу в файл .dt из конфигуратора. Затем создайте на SQL-сервере абсолютно новую пустую базу данных и загрузите файл обратно. При импорте из .dt платформа 1С генерирует физические таблицы СУБД с нуля строго по эталонной схеме метаданных, что автоматически устраняет все ошибки вида «поле не найдено»._Fld1426RRef.Иногда физически колонка в базе данных SQL присутствует, но сервер 1С обращается к старой версии схемы из своего внутреннего кэша. Очистка локального кэша пользователя на клиентском компьютере здесь не поможет — требуется очистить кэш на самом сервере приложений.
Выполним процедуру очистки серверного кэша:
services.msc найдите службу «Агент сервера 1С:Предприятия» и нажмите «Остановить»).C:\Program Files\1cv8\srvinfo\reg_1541.snccntry.В платформе 1С:Предприятие (особенно в линейках релизов 8.3.13.хххх и некоторых версиях 8.3.14.хххх) существовал зарегистрированный баг, при котором создание нового образа подчиненного узла в серверном режиме приводило к критической ошибке СУБД.
В качестве эффективного обходного маневра мы можем создать начальный образ в файловом режиме:
.dt), если для работы подчиненного узла требуется именно клиент-серверный режим.Если в вашей конфигурации используются расширения, содержащие кастомную логику или собственные типы данных, они могут конфликтовать со стандартным планом обмена.
Проанализируем влияние расширений:
ОбменПоОрганизации) установлена поддержка расширений, либо реквизиты расширения не задействованы в составе регистрируемых к обмену объектов без явной необходимости.Используя предложенные методики, вы сможете быстро локализовать источник проблемы и успешно запустить обмен данными между вашими филиалами и центральным офисом!