Пропала строка в отчете 1С: ищем, где потерялось значение в пакетном запросе

13.11.26

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

В отчете нет строки, хотя в базе она есть. Запрос на 20+ временных таблиц, цифры сходятся, а нужной номенклатуры нет. Раньше искали руками: выполняли пакет по частям, открывали каждую таблицу и смотрели, на каком шаге значение пропало. В статье — пять типовых причин (внутреннее соединение, условие ГДЕ по правой таблице, ИМЕЮЩИЕ, подзапрос, несовпадение типов) и разбор на живом примере: окно показывает цепочку шагов, вторую сторону соединения и причину словами. Плюс что делать с найденной причиной и когда окно не поможет. Для разработчиков и поддержки 1С.

Ко мне часто приходят с одним и тем же вопросом: «Почему в отчете нет этой номенклатуры?». Запрос большой, временных таблиц двадцать с лишним, отчет собирается, цифры сходятся, а нужной строки нет. Смотришь в базу — номенклатура есть. Смотришь в отчет — нет.

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

Дальше — как этот поиск устроен и как его сократить до нескольких минут.

 

Почему значение пропадает

Почти всегда причина одна из пяти.

Внутреннее соединение с таблицей, где строки нет. Самое частое. Соединили товары с ценами по номенклатуре, а у одной позиции цены нет — строка исчезла. В отчете это выглядит как «номенклатуры нет», хотя она есть в первой таблице.

Условие в ГДЕ по правой таблице. Было левое соединение, добавили ГДЕ Цены.Цена > 0 — и оно тихо стало внутренним: строки без цены отсеклись. Классика.

Группировка и ИМЕЮЩИЕ. Строка была, но не попала в группу или группа отсеялась условием по итогу.

Условие во вложенном запросе. Отбор стоит не там, где ищешь: не в главном запросе, а в подзапросе, который готовит временную таблицу.

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

Общее у них одно: значение было на предыдущем шаге и исчезло на следующем. Значит, искать надо не по всему запросу, а по шагам.

 

Как искали руками

Пакет из двадцати временных таблиц. Включаешь показ временных таблиц, выполняешь, открываешь первую, ищешь нужную номенклатуру. Есть. Открываешь вторую. Есть. Третью. Нет. Значит, смотрим соединение между второй и третьей. Открываешь текст, находишь это соединение, читаешь условие.

Работа механическая, но пропустить шаг нельзя: значение могло пропасть в любом месте, а названия таблиц вроде ВТ1, ВТ2, ВТИтог только мешают.

 

Что показывает окно «Где потерялось значение»

В консоли этот поиск автоматизирован: выбираешь значение во временной таблице и жмешь «Где потерялось значение». Окно строит цепочку шагов и говорит словами, где значение пропало.

 

 

В примере — контрагенты, у которых не заполнен ИНН. Пакет простой:

ВЫБРАТЬ
	Контрагент.Наименование КАК Наименование,
	Контрагент.ИНН КАК ИНН
ПОМЕСТИТЬ ВТКонтрагенты
ИЗ
	Справочник.Контрагенты КАК Контрагент;

ВЫБРАТЬ
	Контрагент.Наименование КАК Наименование,
	Контрагент.ИНН КАК ИНН
ПОМЕСТИТЬ ВТСИНН
ИЗ
	Справочник.Контрагенты КАК Контрагент
ГДЕ
	Контрагент.ИНН <> "";

ВЫБРАТЬ
	ВТКонтрагенты.Наименование КАК Наименование,
	ВТСИНН.ИНН КАК ИНН
ИЗ
	ВТКонтрагенты КАК ВТКонтрагенты
	ВНУТРЕННЕЕ СОЕДИНЕНИЕ ВТСИНН КАК ВТСИНН
		ПО ВТКонтрагенты.Наименование = ВТСИНН.Наименование

Выбираем в первой временной таблице «Наше предприятие». Окно показывает:

  • значение и колонку, откуда оно взято;
  • шаги цепочки: где значение есть, где его уже нет;
  • вторую сторону соединения — таблицу, в которой не нашлось пары;
  • причину: «Значение Наше предприятие отсекает внутреннее соединение с ВТСИНН по ВТКонтрагенты.Наименование = ВТСИНН.Наименование: в ВТСИНН нет Наименование = Наше предприятие. С левым соединением значение осталось бы».

Это ровно тот вывод, до которого руками доходишь после десятка открытых таблиц. Только здесь он появляется сразу и не зависит от того, догадался ли ты посмотреть нужное соединение.

 

Что делать с причиной

Дальше решение зависит от задачи, и его принимает человек:

  • если строка нужна в отчете — менять внутреннее соединение на левое и обрабатывать пустое значение;
  • если строки без цены или без ИНН действительно не нужны — это не ошибка, а условие; тогда стоит написать его явно и понятно;
  • если проблема в типах — приводить тип в соединении;
  • если в ИМЕЮЩИЕ — смотреть, какое условие отсекло группу.

Окно не переписывает запрос. Оно объясняет, где искать, и экономит ту самую механическую часть.

 

Когда окно не поможет

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

 

Коротко

Пропавшая строка — это всегда «было на шаге N, нет на шаге N+1». Раньше этот шаг искали руками: двадцать таблиц, полчаса, вечер. Теперь достаточно выделить значение и открыть окно, которое показывает цепочку и называет соединение или условие.

Консоль, в которой это есть, — Инженерная консоль запросов.

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

пропала строка в отчете почему в отчете нет номенклатуры где потерялось значение пакетный запрос 1С временные таблицы запрос с временными таблицами соединение таблиц внутреннее соединение левое соединение условие ГДЕ группировка ИМЕЮЩИЕ отчет 1С запрос 1С анализ запроса отладка запросов ошибки в запросах консоль запросов номенклатура 1С 8.3 1С 8.5

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

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

См. также

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

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

16500 руб.

02.09.2020    286278    1609    423    

1220

Инструментарий разработчика Запросы Разработчик 1С 8.3 1С 8.5 Абонемент ($m)

Консоль запросов для 1С, которой можно задать вопрос «почему в отчете нет этой строки?». В пакете на 20 временных таблиц она показывает цепочку шагов: где значение было, где пропало и какая связь или условие его отсекли. В версии 2.0 все окна переделаны на HTML и получили светлую и темную тему: таблица-параметр, сравнение результатов и текстов, выбор типа, момент времени, подключения. Конструктор запроса не теряет комментарии — они возвращаются к своим строкам. Автодополнение по Ctrl+Space, план выполнения с разбором, замер времени, перехват из отладчика, запрос в другой базе по COM. Два архива: 8.3 и 8.5, в каждом версия 2.0 и предыдущая 1.2. Управляемые формы, БСП не требуется.

10 стартмани

30.07.2026    6446    61    KonMa    26    

21

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

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

2 стартмани

06.07.2026    5010    65    XSlava    20    

47

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

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

26.06.2026    10739    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    9629    46    German4739    72    

28

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

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

1 стартмани

02.04.2026    4720    106    priem_nv    28    

71

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

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

1 стартмани

16.05.2025    13733    168    zup_dev    32    

87
Для отправки сообщения требуется регистрация/авторизация