Почему пропал или не формируется отчет по продажам после обновления «1С:Розница» («1С-Рарус: Аптека») с версии 2.1 на 2.2?

Программист 1С v8.3 (Управляемые формы) 1С:Розница Управленческий учет Торговля и дистрибуция
← На главную

Переход со старых редакций конфигураций на новые — это всегда ответственный и технологически сложный процесс. При обновлении «1С:Розница» (а также отраслевых решений на ее основе, таких как «1С-Рарус: Аптека») с редакции 2.1 на 2.2 многие специалисты сталкиваются с неприятной ситуацией: отчет «Продажи» перестает выводить данные. Сам отчет присутствует в интерфейсе, открывается, но при попытке формирования выдает пустой результат, несмотря на наличие документов в базе данных.

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

Почему отчет по продажам становится пустым после обновления?

Переход с версии 2.1 на 2.2 в семействе решений «1С:Розница» сопровождался глобальной переработкой архитектуры конфигурации, структуры регистров накопления и механизмов работы с торговым оборудованием. Это было вызвано адаптацией программы под требования законодательства (54-ФЗ, маркировка лекарственных средств и т.д.). В результате кардинально изменились механизмы компоновки данных для отчетов. Выделим основные технические причины сбоя:

  1. Ошибки в промежуточных релизах конфигурации. При последовательном обновлении (например, через релизы 2.2.5.26 или 2.2.6.30) можно легко натолкнуться на промежуточные версии, содержащие критические ошибки в коде СКД (Схемы компоновки данных) или механизмах проведения документов. Только в более поздних и стабильных сборках (например, 2.2.11.16) эти нестыковки были окончательно устранены разработчиками.
  2. Невыполненные процедуры отложенного обновления данных. В современной БСП (Библиотеке стандартных подсистем) перенос данных в новые структуры регистров перенесен в фоновый режим. Если процедуры отложенного обновления зависли, завершились с ошибкой или не были запущены до конца, новые регистры сведений и накопления останутся пустыми, и отчеты не покажут информацию.
  3. Кэширование несовместимых пользовательских настроек. Варианты отчетов, группировки и отборы, сохраненные пользователями в версии 2.1, кэшируются платформой. При открытии отчета в версии 2.2 система пытается применить старые настройки к измененной схеме компоновки данных, что приводит к некорректным запросам к СУБД и пустому результату.
  4. Специфика отраслевых метаданных «1С-Рарус». Отраслевое решение «Аптека» содержит дополнительные регистры для учета серий лекарственных средств, сроков годности и признаков ЖНВЛП. Если обновление конфигурации выполнено некорректно (без учета правильной последовательности объединения отраслевых объектов), то связи между типовыми регистрами «Розницы» и специфическими регистрами «Раруса» нарушаются.

Шаг 1. Проверяем статус отложенного обновления данных

Давайте первым делом выясним, завершился ли процесс реструктуризации данных в фоновом режиме. Для этого перейдем в раздел Администрирование — Обслуживание — Результаты обновления программы.

Если мы видим предупреждения или незавершенные процедуры, необходимо запустить их принудительно. Для отладки и ручного запуска процедур обновления в режиме «1С:Предприятие» мы можем использовать следующую команду в консоли кода:


// Принудительный запуск отложенных обработчиков обновления данных
ВыборкаПроцедур = РегистрыСведений.ПотокиОбновленияИнформационнойБазы.Выбрать();
Пока ВыборкаПроцедур.Следующий() Цикл
    Если ВыборкаПроцедур.Статус = Перечисления.СтатусыПотоковОбновления.Ошибка Тогда
        ЗаписатьЗаписьРегистра = РегистрыСведений.ПотокиОбновленияИнформационнойБазы.СоздатьМенеджерЗаписи();
        ЗаполнитьЗначенияСвойств(ЗаписатьЗаписьРегистра, ВыборкаПроцедур);
        ЗаписатьЗаписьРегистра.Статус = Перечисления.СтатусыПотоковОбновления.НеЗапускалась;
        ЗаписатьЗаписьРегистра.Записать();
    КонецЕсли;
КонецЦикла;

После сброса статусов ошибок запустим регламентные задания фонового обновления данных. Только убедившись, что все процедуры завершены на 100%, переходим к анализу данных.

Шаг 2. Анализ движений по регистрам накопления

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

Если документы (например, «Отчет о розничных продажах») проведены, но движений по регистрам нет, нам потребуется выполнить групповое перепроведение документов за этот период. Для этого воспользуемся обработкой «Групповое перепроведение документов» в разделе Администрирование.

Шаг 3. Полный сброс и очистка пользовательских настроек

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

Для этого выполним следующие действия:

  1. Перейдем в раздел Администрирование — Настройки пользователей и прав.
  2. Откроем пункт Персональные настройки пользователей — Очистка настроек.
  3. Выберем проблемного пользователя, найдем в списке настроек отчет «Продажи» (или «Выручка и себестоимость продаж») и удалим сохраненные варианты.
  4. Дополнительно рекомендуется очистить локальный кэш конфигурации на компьютере пользователя. Для этого удалим базу данных из списка запуска «1С:Предприятия» и добавим её заново, либо вручную очистим папки %userprofile%\AppData\Local\1C\1Cv8 и %userprofile%\AppData\Roaming\1C\1Cv8.

Шаг 4. Последовательное обновление конфигурации до стабильного релиза

Если вышеописанные действия не привели к результату, и база данных тестируется на промежуточном релизе (например, 2.2.6.30), то велика вероятность программной ошибки в коде самой конфигурации. В этой ситуации лучшим решением будет продолжить обновление до стабильной версии.

Рекомендуется использовать следующую схему обновления:

Для проверки того, что данные в регистрах корректно связываются с сериями лекарств (специфика «Рарус: Аптека»), мы можем выполнить проверочный запрос в консоли:


ВЫБРАТЬ РАЗЛИЧНЫЕ
    Продажи.Номенклатура КАК Номенклатура,
    Продажи.Серия КАК СерияПрепарата,
    Продажи.Количество КАК Количество
ИЗ
    РегистрНакопления.Продажи КАК Продажи
ГДЕ
    Продажи.Период МЕЖДУ &НачалоПериода И &КонецПериода

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

Особенности обмена данными после обновления

Также не стоит забывать, что при переходе на редакцию 2.2 часто ломаются встроенные обмены данными с управляющими системами (например, «1С:Управление торговлей 11» или «1С:Бухгалтерия предприятия 3.0»). Это связано с изменением структуры передаваемых документов и видов оплат (включая СБП и новые типы электронных платежей по ФФД).

Поэтому после успешного обновления «1С-Рарус: Аптека» до версии 2.2 крайне важно актуализировать правила регистрации и правила обмена данными (в формате .xml) в узлах планов обмена, чтобы избежать дублирования или очистки документов продаж при последующих сеансах синхронизации.

← На главную