Как исправить ошибку «Поле не найдено ВыгружатьДанныеОРасходахФОТ» при проведении Отражения зарплаты в 1С?

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

Рассмотрим ситуацию, с которой сталкиваются пользователи программы 1С:Бухгалтерия после обновления на релиз 3.0.82.40 (и смежные). При попытке провести документ Отражение зарплаты в Бух учете, загруженный из внешней программы (например, 1С:ЗУП или 1С:УТ), система выдает критическую ошибку в обработчике ПередЗаписью.

Текст ошибки выглядит следующим образом:


Не удалось зарегистрировать изменения на узлах плана обмена СинхронизацияДанныхЧерезУниверсальныйФормат по причине: Ошибка выполнения правил регистрации объектов для плана обмена СинхронизацияДанныхЧерезУниверсальныйФормат.
Описание ошибки:
Ошибка при получении списка узлов получателей. Ошибка выполнения запроса: {(10, 30)}: Поле не найдено "ПланОбменаОсновнаяТаблица.ВыгружатьДанныеОРасходахФОТ"

Проанализируем эту проблему подробно и разберем эффективные способы ее решения.

В чем техническая суть проблемы?

Выясним причину такого поведения базы. Ошибка вызвана рассинхронизацией структуры метаданных конфигурации 1С и применяемых в данный момент «Правил регистрации объектов» (ПРО).

Разработчики фирмы 1С в новых релизах (начиная с 3.0.82.x) оптимизировали структуру плана обмена СинхронизацияДанныхЧерезУниверсальныйФормат и удалили реквизит ВыгружатьДанныеОРасходахФОТ. Однако, правила регистрации, которые система использует «под капотом» при записи документов для определения того, нужно ли отправлять документ в узел ЗУП или УТ, автоматически не обновились.

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

Разберем по шагам несколько рабочих способов устранения этой неисправности.

Решение 1: Принудительная загрузка типовых правил регистрации

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

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

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

Решение 2: Перерегистрация узла плана обмена

Иногда спасает простой метод обновления регистрации узлов плана обмена, который пользователи называют «танцами с бубном». Посмотрим на пример выполнения этого метода:

  1. Откройте список узлов плана обмена СинхронизацияДанныхЧерезУниверсальныйФормат.
  2. Найдите проблемную запись для вашей настройки обмена (например, для ЗУП или УТ).
  3. Пометьте этот узел на удаление.
  4. Зайдите в настройки синхронизации, чтобы система зафиксировала изменения.
  5. Снимите пометку на удаление с узла.

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

Решение 3: Ручная корректировка файла правил (XML)

Если обновление базы или загрузка типовых правил в данный момент не помогает (например, если в самом типовом макете релиза 1С осталась ошибка), мы можем исправить правила вручную. Это временный, но очень эффективный метод.

Разберем процесс ручного редактирования:

  1. Сохраните текущие правила регистрации в файл на диск в формате XML.
  2. Откройте полученный файл в любом текстовом редакторе (например, Notepad++).
  3. Найдите блок кода, в котором происходит обращение к реквизиту ВыгружатьДанныеОРасходахФОТ.

Кусок XML-кода, который необходимо найти и полностью удалить, выглядит так:


<ЭлементОтбора>
    <ЭтоСтрокаКонстанты>true</ЭтоСтрокаКонстанты>
    <ТипСвойстваОбъекта>Булево</ТипСвойстваОбъекта>
    <СвойствоПланаОбмена>ВыгружатьДанныеОРасходахФОТ</СвойствоПланаОбмена>
    <ВидСравнения>Равно</ВидСравнения>
    <СвойствоОбъекта>true</СвойствоОбъекта>
    <ТаблицаСвойствПланаОбмена>
        <Свойство>
            <Наименование>ВыгружатьДанныеОРасходахФОТ</Наименование>
            <Тип>Булево</Тип>
            <Вид>Реквизит</Вид>
        </Свойство>
    </ТаблицаСвойствПланаОбмена>
</ЭлементОтбора>

После удаления этого блока ЭлементОтбора сохраните файл. Затем вернитесь в 1С, выберите пункт Загрузить правила регистрации объектов, укажите вариант Загрузить из файла на компьютере и выберите ваш исправленный XML-документ.

Дополнительные рекомендации

Если после выполнения вышеописанных действий ошибка сохраняется, проанализируем дополнительные факторы:

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

Выполнив один из предложенных вариантов, вы восстановите корректное проведение документа Отражение зарплаты в Бух учете и синхронизация между базами снова будет работать без сбоев.

← На главную