Почему после обновления платформы на 8.3.23 перестали работать отчеты и как это исправить?

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

Переход на новые версии платформы 1С часто сопровождается не только появлением новых возможностей, но и возникновением специфических ошибок в работе существующих механизмов. Одной из самых резонансных ситуаций стал массовый отказ отчетов в конфигурациях «Управление торговлей 11», «ERP» и «Комплексная автоматизация» при обновлении до релизов ветки 8.3.23 (в частности, 8.3.23.1688). В этой статье мы подробно разберем, почему привычные настройки отчетов начинают выдавать ошибки, как диагностировать скрытые причины сбоев и какие шаги необходимо предпринять для восстановления работоспособности системы.

Анализ причин возникновения ошибок в платформе 8.3.23

Проанализируем ситуацию: отчеты, которые годами работали корректно на версии 8.3.22, после обновления начинают выдавать сообщения о «неверных параметрах в операции сравнения» или вовсе приводят к аварийному завершению работы программы. Основная причина кроется в глубокой переработке механизмов Системы компоновки данных (СКД) и генерации SQL-запросов.

Разберем основные факторы влияния:

  1. Ужесточение типизации: В версии 8.3.23 платформа перестала «прощать» неявное приведение типов в запросах. Если в схеме компоновки данных происходит сравнение поля со значением, которое может принимать тип NULL, или типы данных не совпадают на 100%, платформа блокирует выполнение запроса.
  2. Изменения в работе с расширениями: Если макет отчета или сама схема СКД были заимствованы в расширение, в новой версии платформы может произойти потеря связи между полями схемы и реальными метаданными базы данных.
  3. Ошибки фонового выполнения: В УТ 11 большинство отчетов формируется в фоновом задании. В релизе 8.3.23.1688 был замечен баг сериализации настроек при передаче данных между серверными сессиями, из-за чего основная форма получает «битый» объект вместо результата.

Решение 1: Очистка кеша и сброс пользовательских настроек

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

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

  1. Очистка серверного и клиентского кеша: Необходимо полностью удалить временные файлы 1С как на сервере приложений, так и на рабочих станциях пользователей.
  2. Сброс настроек отчета: Попробуем открыть список «Настройки всех пользователей» (в типовых конфигурациях это раздел НСИ и администрирование — Настройка пользователей и прав) и удалить сохраненные настройки для проблемных отчетов.
  3. Создание настройки «с нуля»: Если отчет заработал после удаления старых настроек, значит, проблема была в несовместимости структуры XML-описания настроек. В этом случае придется заново настроить отбор по Номенклатура и сохранить его как новый вариант.

Решение 2: Исправление ошибок типизации в запросах

Проанализируем ситуацию, когда отчет выдает ошибку: «Неверные параметры в операции сравнения. Нельзя сравнивать поля неограниченной длины и поля несовместимых типов». Это часто происходит в расширениях, где используются перечисления или ссылки.

Посмотрим на пример кода, который может вызывать проблему в 8.3.23:


// Ошибка возникает при строгом сравнении, если типы не были явно приведены в запросе СКД
ЗаявкаНаРасходованиеДенежныхСредств.СостояниеЗаявки = ЗНАЧЕНИЕ(Перечисление.СостоянияЗаявок.ФактическаяЗаявка)

Чтобы решить эту проблему, необходимо убедиться, что в тексте запроса или в параметрах СКД все поля имеют строго определенный тип. Если используется объединение запросов (ОБЪЕДИНИТЬ ВСЕ), проверьте, чтобы во всех частях объединения поля имели одинаковый тип данных, а не NULL. В ряде случаев помогает использование функции ВЫРАЗИТЬ(...) для явного указания типа ссылки.

Решение 3: Работа с макетами в расширениях

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

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

  1. Отключите расширение, в котором находится отчет, и проверьте работу типового отчета.
  2. Если типовой отчет работает, попробуйте обновить заимствованную схему СКД в расширении (удалить и заимствовать заново).
  3. Проверьте, не включен ли режим совместимости расширения, отличный от режима совместимости основной конфигурации.

Решение 4: Проблемы с выводом картинок и критические сбои

Рассмотрим специфическую ошибку, когда программа аварийно закрывается при формировании отчетов с изображениями (например, «Прайс-лист с картинками»). Это известная проблема релизов 8.3.23, связанная с компонентом рендеринга графики.

В данной ситуации возможны два пути решения:

  1. Временное отключение графики: Как показывает практика, снятие флага вывода картинок позволяет отчету сформироваться без ошибок.
  2. Обновление платформы: Данные ошибки (включая проблемы с фоновыми заданиями) были исправлены в более поздних сборках. Мы рекомендуем рассмотреть переход на последние патчи версии 8.3.23 (например, 8.3.23.1865 и выше) или на ветку 8.3.24, где эти критические баги устранены.

Рекомендации по диагностике

Если вышеуказанные способы не помогают, выполним глубокую диагностику системы:

  1. Остановка по ошибке в отладчике: Включите в конфигураторе режим «Остановка по ошибке». Обратите внимание, что для отладки отчетов в УТ 11 необходимо также установить флаг «Отладка фоновых заданий» в настройках подключения.
  2. Анализ Журнала регистрации: Ищите записи с уровнем «Ошибка». Даже если на экране отображается малоинформативное сообщение, в журнале регистрации на стороне сервера может быть зафиксирован подробный стек вызовов.
  3. Тестирование и исправление: Проведите процедуру Тестирование и исправление (ТиИ) с включенной опцией «Реструктуризация таблиц». Это поможет обновить индексы и структуру таблиц в соответствии с требованиями новой платформы.

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

← На главную