Ошибка динамического списка "Обнаружено рассогласование при получении данных"
Каждый специалист по 1С хотя бы раз сталкивался с ситуацией: пользователь открывает форму со списком документов или справочником, а вместо привычных строк видит сообщение «Обнаружено рассогласование при получении данных». Эта ошибка не только дезориентирует пользователя, но и полностью блокирует работу с формой. В 2025–2026 годах, на фоне активных обновлений конфигураций и платформы, частота этой проблемы заметно растёт. Рассмотрим причины возникновения, технический механизм динамических списков и дадим пошаговое руководство по исправлению как на уровне кода, так и в настройках конфигуратора.
Что такое ошибка «Обнаружено рассогласование при получении данных»
Ошибка возникает на этапе, когда платформа 1С:Предприятие пытается сформировать строки динамического списка для вывода на форму. Динамический список — это механизм, который автоматически строит запрос к базе данных на основе настроек, заданных в конфигураторе (например, текст запроса, отборы, порядок полей). Полученные от СУБД строки (результат запроса) затем сопоставляются с ожидаемой структурой колонок, заданной в метаданных списка.
Когда возникает ошибка
Наиболее частые сценарии появления ошибки:
- Изменение состава или типов полей таблиц базы данных (например, после обновления конфигурации или реорганизации).
- Перенос динамического списка из одной конфигурации в другую без адаптации запроса.
- Ручная правка текста запроса динамического списка, при которой результирующие колонки перестали совпадать по именам и типам с колонками, объявленными в настройках списка.
- Нарушение порядка полей в запросе или изменение псевдонимов полей.
- Работа с виртуальными таблицами (например, регистров), структура которых изменилась в новой версии платформы.
Важно: Ошибка «Обнаружено рассогласование при получении данных» – это именно ошибка сопоставления структуры, а не нарушения прав доступа или блокировок. Поэтому стандартные методы «Проверить права» здесь не помогут.
Технический разбор механизма динамических списков
Чтобы понять, почему возникает рассогласование, необходимо заглянуть под капот. Динамический список на сервере выполняет сформированный запрос к базе данных. Результат – это временная таблица, которая содержит колонки с определёнными именами и типами (Строка, Число, Дата, Булево и т.д.). На клиенте эти колонки отображаются как реквизиты формы с типом ДинамическийСписок. Платформа ожидает, что имена и типы колонок точно соответствуют описанию полей, заданному в метаданных динамического списка.
Как платформа формирует данные для динамического списка
В общем виде алгоритм таков:
- Форма открывается, инициализируется реквизит
Списокс типомДинамическийСписок. - Платформа берёт текст запроса из свойства
ПроизвольныйЗапросили формирует его автоматически на основе основного объекта. - Выполняется запрос к СУБД, результат помещается в набор строк.
- Для каждой полученной колонки платформа проверяет, существует ли в настройках списка поле с таким же именем и совместимым типом. Если несоответствие – сразу
Обнаружено рассогласование.
Пример текста запроса динамического списка (задан в конфигураторе):
ВЫБРАТЬ
Ссылка,
Наименование,
ДатаСоздания,
СуммаДокумента
ИЗ
Документ.ПриходнаяНакладная
ГДЕ
Не Проведен И СуммаДокумента > 1000
Платформа сопоставляет колонки по именам, а не по порядку. Если псевдоним в запросе отличается от имени колонки в настройках списка – платформа сообщит об ошибке. Например, если в запросе написано СуммаДокумента КАК Сумма, а в настройках ожидается поле СуммаДокумента – имена не совпадут. Порядок колонок в запросе значения не имеет.
Таблица типов колонок: соответствие и рассогласование
| Тип колонки в запросе | Ожидаемый тип в настройках списка | Результат |
|---|---|---|
| Строка | Дата | Несовместимые типы |
| Число | Строка | Несовместимые типы |
| Булево | Число(1) | Несоответствие типа |
| Дата | Строка(8) | Несовместимые типы |
Ключевые причины - несовпадение имён колонок, псевдонимов и несовместимых типов. Длина строки или точность числа сами по себе обычно не являются причиной такой ошибки динамического списка.
Основные причины и методы исправления
Рассмотрим две самые распространённые причины и покажем способы их устранения.
Изменение структуры таблиц базы данных
После обновления типовой конфигурации (например, 1С:Бухгалтерии 3.0 или 1С:ЗУП 3.1) часто меняются типы реквизитов основных объектов. Если ваш динамический список обращался к старому типу – возникнет рассогласование. Решение – обновить текст запроса динамического списка в соответствии с новыми метаданными.
Правильное решение при изменении структуры таблиц: откройте форму в конфигураторе, перейдите в свойства динамического списка, пересмотрите текст произвольного запроса и убедитесь, что псевдонимы полей в выборке точно совпадают с именами колонок, объявленных в настройках списка. Если проблема в запросе или привязке колонок, исправляйте псевдонимы, выражения и настройки списка; попытка «долечить» результат после получения данных обычно не помогает.
Попробовать НОПик →