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

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: Infostart Toolkit. Автоматизация и ускорение разработки на управляемых формах. Легкость работы с 1С.

16500 руб.

02.09.2020    264890    1477    421    

1175

Запросы Программист 1С 8.3 Россия Бесплатно (free)

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

26.06.2026    5264    Alex_YAM    5    

32

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

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

1 стартмани

02.04.2026    2769    78    priem_nv    24    

65

Инструментарий разработчика Запросы Программист 1С 8.3 1С:Библиотека стандартных подсистем Абонемент ($m)

Представляю новую версию подсистемы работы со схемой запроса, которая завершает её эволюцию от библиотеки по работе со схемой запроса до объектной реализации модели запроса 2. Теперь есть выбор между классическим и текучим стилем написанию кода - оба варианта взаимозаменяемы. Ключевое улучшение - использование объектов в качестве источников данных, значений полей и параметров в условиях виртуальных таблиц, а также новые операторы позиционирования в схеме

1 стартмани

29.03.2026    2780    kalyaka    16    

24

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

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

1 стартмани

16.05.2025    11803    153    zup_dev    30    

86

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

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

2 стартмани

05.03.2025    6746    21    XilDen    12    

29

Обновление 1С Запросы Программист 1С:Предприятие 8 1С:ERP Управление предприятием 2 Абонемент ($m)

Данный инструмент помогает анализировать доработанную конфигурацию после обновления на новый релиз и находить «битые» тексты запросов, в которых участвуют несуществующие в новом релизе метаданные.

3 стартмани

06.02.2025    6029    36    XilDen    26    

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


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


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

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

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