Ошибка динамического списка "Обнаружено рассогласование при получении данных"

26.06.26

Разработка - Запросы

Способы решения ошибки неуникального ключа

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

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

Пример исходного запроса:
 

ВЫБРАТЬ
	ДополнительныеРеквизитыИСведения.Ссылка КАК Ссылка
ПОМЕСТИТЬ ВтДополнительноеСведение
ИЗ
	ПланВидовХарактеристик.ДополнительныеРеквизитыИСведения КАК ДополнительныеРеквизитыИСведения
ГДЕ
	ДополнительныеРеквизитыИСведения.ИдентификаторДляФормул = "ДСПоЭДО"
	И НЕ ДополнительныеРеквизитыИСведения.ПометкаУдаления
;

////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ РАЗЛИЧНЫЕ
	ДополнительныеРеквизитыПартнеров.Ссылка КАК Ссылка
ПОМЕСТИТЬ ВтПартнеры
ИЗ
	Справочник.Партнеры.ДополнительныеРеквизиты КАК ДополнительныеРеквизитыПартнеров
		ВНУТРЕННЕЕ СОЕДИНЕНИЕ ВтДополнительноеСведение КАК ВтДополнительноеСведение
		ПО ДополнительныеРеквизитыПартнеров.Свойство = ВтДополнительноеСведение.Ссылка
ГДЕ
	ДополнительныеРеквизитыПартнеров.Значение = ИСТИНА
;

////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
	Акт.Ссылка КАК Ссылка,
	Акт.Дата КАК Дата,
	Акт.Номер КАК Номер,
	Акт.Партнер КАК ПартнерДокумента,
	ЕСТЬNULL(ДополнительныеСведенияСтатус.Значение, 0) КАК СтатусЗадания,
	ЕСТЬNULL(ДополнительныеСведенияНомер.Значение, "") КАК НомерЗадания
ИЗ
	Документ.АктОРасхожденияхПослеПриемки КАК Акт
		ВНУТРЕННЕЕ СОЕДИНЕНИЕ ВтПартнеры КАК ВтПартнеры
		ПО Акт.Партнер = ВтПартнеры.Ссылка
		ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ДополнительныеСведения КАК ДополнительныеСведенияСтатус
		ПО Акт.Ссылка = ДополнительныеСведенияСтатус.Объект
			И (ДополнительныеСведенияСтатус.Свойство = ЗНАЧЕНИЕ(ПланВидовХарактеристик.ДополнительныеРеквизитыИСведения.СтатусЗадания))
		ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ДополнительныеСведения КАК ДополнительныеСведенияНомер
		ПО Акт.Ссылка = ДополнительныеСведенияНомер.Объект
			И (ДополнительныеСведенияНомер.Свойство = ЗНАЧЕНИЕ(ПланВидовХарактеристик.ДополнительныеРеквизитыИСведения.НомерЗадания))


1) Первое, что надо попробовать, это использовать символы {} для указания списку, что соединения не обязательны и не будут являться составляющим авто поля ключа.

{ВНУТРЕННЕЕ СОЕДИНЕНИЕ ВтПартнеры КАК ВтПартнеры
		ПО Акт.Партнер = ВтПартнеры.Ссылка
		ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ДополнительныеСведения КАК ДополнительныеСведенияСтатус
		ПО Акт.Ссылка = ДополнительныеСведенияСтатус.Объект
			И (ДополнительныеСведенияСтатус.Свойство = ЗНАЧЕНИЕ(ПланВидовХарактеристик.ДополнительныеРеквизитыИСведения.СтатусЗадания))
		ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ДополнительныеСведения КАК ДополнительныеСведенияНомер
		ПО Акт.Ссылка = ДополнительныеСведенияНомер.Объект
			И (ДополнительныеСведенияНомер.Свойство = ЗНАЧЕНИЕ(ПланВидовХарактеристик.ДополнительныеРеквизитыИСведения.НомерЗадания))}


2) Если первый способ не помог и у вас платформа не ниже 8.3.10, можно воспользоваться событием ПриПолученииДанныхНаСервере, выведя таким образом получение дополнительных данных в отдельный запрос, это хорошо описано тут:
https://wonderland.v8.1c.ru/blog/obrabotka-i-oformlenie-dannykh-dinamicheskogo-spiska/

3) Иногда может помочь использование конструкции "В", хоть и она не рекомендуется в плане оптимизации
 

ГДЕ
	Акт.Партнер В
			(ВЫБРАТЬ
				ВтПартнеры.Партнер
			ИЗ
				ВтПартнеры)

 

Вступайте в нашу телеграмм-группу Инфостарт

обнаружено рассогласование при получении данных динамический список

Вы можете заказать платную адаптацию этой статьи под ваши задачи на «Бирже заказов».

  • 0% комиссии — оплата напрямую исполнителю;
  • Исполнители любого масштаба — от отдельных специалистов до команд под проект;
  • Прямой обмен контактами между заказчиком и исполнителем;
  • Безопасная сделка — при необходимости;
  • Рейтинги, кейсы и прозрачная система откликов.

См. также

Инструментарий разработчика Роли и права Запросы СКД Разработчик Руководитель проекта 1С:Предприятие 8 Платные (руб)

Инструменты для разработчиков 1С 8.3 и 8.5: Infostart Toolkit. Автоматизация и ускорение разработки на управляемых формах. Легкость работы с 1С.

16500 руб.

02.09.2020    285445    1606    423    

1219

Инструментарий разработчика Запросы Разработчик 1С 8.3 1С:Бухгалтерия 3.0 1С:Зарплата и Управление Персоналом 3.x Абонемент ($m)

Структура запроса. Обработка визуально показывает, из какого количества подзапросов состоит запрос.

2 стартмани

06.07.2026    4920    65    XSlava    20    

47

Запросы Разработчик 1С 8.3 Россия Бесплатно (free)

Визуальный «Конструктор запроса» 1С, встроенный прямо в VS Code, — аналог конструктора из Конфигуратора и EDT, но без запуска платформы. Расширение читает конфигурацию, выгруженную в файлы, позволяет собрать запрос мышью и генерирует корректный текст на языке запросов 1С (SDBL). Открывает уже существующий текст запроса из кода для правки и — что особенно ценно — сохраняет комментарии при цикле «открыть - править - сохранить». Подходит тем, кто пишет код 1С в VS Code, держит под рукой множество проектов и не хочет ради одного запроса запускать тяжёлый Конфигуратор или EDT.

26.06.2026    10640    Alex_YAM    7    

34

Нейросети Инструментарий разработчика Запросы Разработчик 1С:Предприятие 8 Абонемент ($m)

Консоль запросов 1.0: добавлен ИИ-помощник (запрос в DeepSeek), который помогает быстрее получать каркас Запроса 1С Сформулируйте простое описание; нажмите кнопку – получите результат прямо в консоли. Где дальше его можно дорабатывать и тестировать. 28.5.2026 Добавил "Консоль запросов 2.0" (запрос в DeepSeek + Claude) 4.10.2026 Обновил "Консоль запросов 2.0"

3 стартмани

20.05.2026    9543    46    German4739    72    

28

WEB-интеграция Запросы Разработчик 1С 8.3 Абонемент ($m)

Post1C - это внешняя обработка, которая превращает 1С в полноценный инструмент для тестирования REST API. Всё управление сосредоточено в одном окне: настройка запроса, выполнение, просмотр ответа и генерация кода - без переключения между формами. Аналог Postman, но работающий в привычной среде 1С.

1 стартмани

02.04.2026    4630    105    priem_nv    27    

70

Инструментарий разработчика Запросы Разработчик 1С:Предприятие 8 1С:Зарплата и кадры государственного учреждения 3 1С:Зарплата и Управление Персоналом 3.x Абонемент ($m)

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

1 стартмани

16.05.2025    13641    168    zup_dev    32    

87

Инструментарий разработчика Запросы Разработчик 1С:Предприятие 8 1С:ERP Управление предприятием 2 Абонемент ($m)

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

2 стартмани

05.03.2025    7705    25    XilDen    12    

29
Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
1. dzhamuha 27.06.26 20:27 Сейчас в теме
Запросы такого вида, подойдут больше к отчетам, но никак к динамическим спискам...))
2. janit 46 28.06.26 08:49 Сейчас в теме
(1) Представленный в статье запрос используется точечно для ручной переотправки документов и не предполагался к работе с высокой нагрузкой. Конечно есть пути для ускорения данного динамического списка, но в статье рассматривается проблема ключа, а не самого запроса как такового.
3. ixijixi 2177 29.06.26 08:53 Сейчас в теме
(2) А зачем изначально создавать себе трудности неправильной настройкой ДС? Чтобы потом их героически преодолеть? В указанном примере вообще не нужны временные таблицы и левые соединения, доп. реквизиты прекрасно выводятся через точку от ссылки.
4. janit 46 29.06.26 16:14 Сейчас в теме
(3)
В указанном примере вообще не нужны временные таблицы и левые соединения, доп. реквизиты прекрасно выводятся через точку от ссылки.


Повторюсь, в статье рассматривается неочевидное решение при дублировании строк ключа, кейсы могут быть совершенно другими и отличными от структуры данного запроса.
Но если вы хотите обсудить конкретно текст запроса вне рамок статьи, то временная таблица здесь нужна для фильтрации контрагентов по реквизиту, выводить этот реквизит в список цели не ставилось. А как бы вы наложили фильтр на контрагентов по этому реквизиту в разрезе актов?
5. ixijixi 2177 29.06.26 16:22 Сейчас в теме
(4) Фильтруются тоже через точку от ссылки)
Прикрепленные файлы:
6. janit 46 29.06.26 17:23 Сейчас в теме
Акты.Партнер.ДополнительныеРеквизиты.ДСПоЭдо = Истина


(5) Да, это логичное решение, но не кажется ли, что план такого запроса будет еще хуже текущего решения?

В типовых конфигурациях документы имеют индекс по партнеру и простое соединение задействует поиск по индексу.

Так же встает вопрос как ваш подход масштабировать на всех пользователей, чтобы пользователи не могли снять этот наложенный отбор? В случае с решением в статье это решается запросом без дополнительных программных доработок.
Для отправки сообщения требуется регистрация/авторизация