В процессе администрирования баз данных 1С:Предприятие часто возникают ситуации, когда после миграции информационной базы на новый серверный комплекс стандартные отчеты, использующие ПостроительОтчета, перестают корректно выводить данные. В частности, пропадают колонки с промежуточными периодами (днями, месяцами). Давайте разберем, почему это происходит и как устранить данную проблему, даже если на первый взгляд все службы работают штатно.
Первое, на что стоит обратить внимание, — отсутствие ошибок при формировании отчетов. Платформа 1С работает «штатно», база данных отвечает, но отчеты формируются неполными. Это создает ложное ощущение, что проблема кроется в настройках прав, кеше или логике самого отчета. Однако, как показывает практика, при переносе баз на новый сервер часто игнорируется системный уровень взаимодействия между Сервером 1С:Предприятия и СУБД SQL Server.
Основной причиной того, что ПостроительОтчета не выводит группировки, является отсутствие или некорректная версия SQL Native Client на сервере 1С. Хотя современные версии ОС могут позволять 1С подключаться к базе через стандартные драйверы ODBC, механизм Построителя — это «наследие» старых архитектурных решений, которые ожидают специфических ответов от СУБД, предоставляемых именно через SQL Native Client.
Рассмотрим подробнее, почему база «работает неделю»: многие стандартные операции записи и чтения данных используют упрощенные протоколы обмена. Однако сложные выборки Построителя, особенно те, что строят кросс-таблицы (группировки по колонкам), требуют специфической обработки метаданных и работы с курсорами СУБД. Без установленного драйвера SQL Native Client SQL Server может возвращать «урезанный» набор данных, который 1С интерпретирует как корректный результат, но с пустыми значениями группировок.
Для устранения этой ошибки выполним следующие действия:
1С:Предприятие, установлен SQL Native Client той же версии, которая использовалась на стабильно работающем сервере.SQL Server. После установки драйвера обязательно перезапустите службу Агент сервера 1С:Предприятия для инициализации библиотек доступа.Построителя. В некоторых случаях именно откат к версии SQL Native Client, рекомендованной для вашей версии SQL Server, решает вопрос.Если простая установка драйвера не дала результата, рекомендуем воспользоваться следующими методами диагностики:
Использование технологического журнала: настройте фильтрацию по событию DBMSSQL. Это позволит увидеть реальный текст запроса, который 1С отправляет в SQL Server. Если в логах SQL Server запрос возвращает данные, а в приложении они не отображаются — проблема однозначно кроется в прослойке ODBC/Native Client, которая некорректно обрабатывает возврат данных от СУБД.
Анализ запросов: Помните, что ПостроительОтчета часто формирует сложные конструкции с использованием временных таблиц. При отсутствии корректного Native Client, драйвер может не поддерживать выполнение сложных последовательных запросов внутри одной транзакции Построителя.
Итог: Миграция инфраструктуры — это не только перенос файлов базы данных, но и полная репликация системного окружения. Всегда проверяйте идентичность версий драйверов доступа к данным (SQL Native Client, ODBC) на новом сервере, чтобы избежать скрытых ошибок выборки данных в устаревших механизмах платформы 1С.