После обновления конфигурации «1С:Управление торговлей» до релиза 11.4.7.114 (с версии 11.4.6.230) многие пользователи и администраторы столкнулись с неприятной проблемой: популярные отчеты по продажам и валовой прибыли, в которых ранее были настроены стандартные отборы по организации или партнеру, перестали выводить данные. При включении отбора отчет становится абсолютно пустым, хотя без отбора данные выводятся корректно.
В этой статье мы подробно разберем, почему возникает эта ошибка, проанализируем внутреннее устройство схемы компоновки данных (СКД) проблемного релиза и рассмотрим практические способы исправления ситуации как временными методами, так и путем официального обновления.
Давайте сначала проанализируем поведение системы, чтобы убедиться, что мы столкнулись именно с этой системной ошибкой, а не с банальным сбоем кэша или неверной настройкой прав пользователя. Признаки проблемы выглядят следующим образом:
Валовая прибыль по партнерам) формируется корректно, если в настройках не заданы отборы по ключевым аналитикам — Организация и Партнер.Если мы попытаемся вывести реквизит Организация непосредственно в структуру отчета (в группировки строк или колонки), поле успешно заполняется и отображается. Однако любая попытка наложить фильтр через механизм СКД ломает выборку данных.
Давайте выясним причину такого поведения системы. Для этого нам потребуется заглянуть внутрь конфигурации и сравнить схему компоновки данных отчета ВыручкаИСебестоимостьПродаж (который является базовым для всей линейки отчетов по валовой прибыли) в рабочем релизе 11.4.6.230 и проблемном 11.4.7.114.
В релизе 11.4.6.230 связка данных по организациям и партнерам строилась через обращение к специализированному регистру сведений аналитики. Запрос СКД корректно получал данные из левого соединения с регистром сведений АналитикаУчетаПоПартнерам:
(АналитикаУчетаПоПартнерам.Организация).* КАК Организация,
(АналитикаУчетаПоПартнерам.Партнер).* КАК Партнер,
При подготовке релиза 11.4.7.114 разработчики провели рефакторинг запросов СКД с целью оптимизации и перевели выборку полей на справочник Ключи аналитики учета по партнерам, который выступает измерением регистра накопления Выручка и себестоимость продаж. Однако в процессе изменения путей к данным в СКД была допущена критическая опечатка в описании полей набора данных.
Вместо обращения к аналитике партнеров, пути к данным перенаправили на аналитику номенклатуры:
Продажи.АналитикаУчетаНоменклатуры.Организация.* КАК Организация,
Продажи.АналитикаУчетаНоменклатуры.Партнер.* КАК Партнер,
Почему это привело к ошибке? Справочник аналитики учета номенклатуры (КлючиАналитикиУчетаНоменклатуры) хранит исключительно товарные свойства: номенклатуру, характеристики, серии и места хранения (склады). В нем физически отсутствуют реквизиты Партнер или Организация в разрезе расчетов с клиентами. Когда платформа 1С пытается наложить системный отбор СКД по выбранной организации, она обращается к пустому полю аналитики номенклатуры, не находит соответствий и отсекает абсолютно все строки отчета. Именно поэтому отчет возвращает пустоту.
Рассмотрим несколько вариантов решения данной проблемы в зависимости от того, находится ли ваша конфигурация на поддержке и насколько оперативно вам нужно вернуть отчеты в рабочее состояние.
Компания 1С быстро признала наличие этой критической ошибки. Исправление вошло в состав релиза 11.4.7.128 и последующих версий УТ. В новой схеме компоновки данных разработчики вернули корректные пути выборки полей:
// Изменения в релизе 11.4.7.128:
Продажи.АналитикаУчетаПоПартнерам.Организация.* КАК Организация,
Продажи.АналитикаУчетаПоПартнерам.Партнер.* КАК Партнер,
Если у вас есть возможность обновить конфигурацию, это самый простой и надежный способ. Достаточно обновить базу до релиза 11.4.7.128 или выше, после чего отборы по организациям снова заработают в штатном режиме.
Если ваша база данных снята с замка (находится на редактировании с сохранением поддержки), вы можете исправить ошибку самостоятельно в конфигураторе, не дожидаясь обновления всей системы.
Выполним следующие шаги для ручного исправления:
ВыручкаИСебестоимостьПродаж (или конкретный отчет, например, ВаловаяПрибыльПоПартнерам, если он использует индивидуальный макет).ОсновнаяСхемаКомпоновкиДанных).ВыручкаИСебестоимостьПродаж).АналитикаУчетаНоменклатуры на корректные обращения к АналитикаУчетаПоПартнерам:
Вместо:
Продажи.АналитикаУчетаНоменклатуры.Организация КАК Организация,
Продажи.АналитикаУчетаНоменклатуры.Партнер КАК Партнер
Напишем:
Продажи.АналитикаУчетаПоПартнерам.Организация КАК Организация,
Продажи.АналитикаУчетаПоПартнерам.Партнер КАК Партнер
Если конфигурация строго на замке и обновлять ее в ближайшие дни вы не планируете, можно прибегнуть к механизму расширений или временно подключить отчет как внешний:
ВыручкаИСебестоимостьПродаж и вносим исправления в текст запроса, аналогично Варианту 2. Этот способ хорош тем, что не требует снятия основной конфигурации с поддержки.Склад в МестоХранения. Если вы просто подложите старый отчет без адаптации, система выдаст ошибку «Поле не найдено "Склад"». При использовании старого макета обязательно замените в его тексте все упоминания Склад на новые обращения к МестоХранения (Место хранения).Рекомендуем использовать первый или второй варианты, так как они гарантируют полную совместимость со всеми внутренними механизмами и ролями новой версии конфигурации.