При переносе информационных баз 1С:Управление производственным предприятием (УПП 1.3) на новую инфраструктуру технические специалисты часто сталкиваются с загадочным поведением стандартных отчетов. Ситуация, когда «Универсальный отчет» перестает группировать данные по периодам, выдает неверные итоговые цифры или теряет возможность расшифровки полей, может поставить в тупик даже опытного администратора. Особенно остро это проявляется при миграции с физических серверов на виртуальные машины под управлением устаревших ОС, таких как Windows Server 2008 R2, и смене версий платформы.
В данной статье мы подробно разберем, почему возникают такие ошибки, как на это влияет «даунгрейд» версии платформы 1С и какие настройки SQL Server на виртуальных машинах являются критическими для корректной работы старого механизма ПостроительОтчета.
Одной из ключевых причин некорректной работы отчетов является переход с более высокой версии платформы (например, 8.3.15) на более низкую (8.3.13). Проанализируем, почему это происходит. При первом запуске базы на новой платформе (8.3.15) система часто производит неявную реструктуризацию служебных таблиц. Если затем открыть эту же базу на версии 8.3.13, старая платформа может некорректно считывать данные из модифицированных системных таблиц.
Рассмотрим порядок действий для минимизации рисков при смене платформы:
.dt на исходном сервере..dt. Это принудительно пересоберет структуру таблиц под текущую версию и исключит влияние «наследства» от 8.3.15./ClearCache для очистки серверного кэша метаданных.Многие отчеты в УПП 1.3 построены не на современной системе компоновки данных (СКД), а на классическом объекте ПостроительОтчета. Этот механизм генерирует сложные, многоуровневые SQL-запросы с активным использованием временных таблиц. В виртуальной среде SQL Server 2008 R2 может вести себя нестабильно, если не выполнены специфические настройки.
Разберем основные факторы влияния виртуализации:
Построителя отчета, который ждет быстрого отклика от временных таблиц SQL, это критично. SQL Server может построить неэффективный план запроса, что приведет к искажению итогов или пустым группировкам. Установите режим High Performance как в настройках гостевой ОС, так и на самом гипервизоре.Выясним причину, по которой «SQL не дружит с виртуалкой». Для SQL Server 2008 R2 критически важно наличие Service Pack 3 (SP3). В более ранних версиях существовали ошибки взаимодействия с современными инструкциями процессоров, которые пробрасываются через гипервизор. Отсутствие SP3 часто приводит к логическим ошибкам в результатах запросов, где используются математические агрегаты (СУММА, КОЛИЧЕСТВО) в сочетании с группировками по датам.
Объект ПостроительОтчета крайне чувствителен к региональным настройкам сервера. Если на новом сервере формат даты или системный язык отличаются от старого, трансляция запроса из 1С в T-SQL может проходить с ошибками. Особенно это касается группировок по периодам (день, неделя, месяц).
Проанализируем пример того, как программно может настраиваться Универсальный отчет. Хотя код самого отчета обычно закрыт в типовых конфигурациях, его инициализация опирается на структуру метаданных:
// Пример типичной настройки построителя, которая может давать сбой
Построитель = Новый ПостроительОтчета;
Построитель.Текст = "ВЫБРАТЬ Продажи.Период, Продажи.Сумма ИЗ РегистрНакопления.Продажи КАК Продажи";
Построитель.ЗаполнитьНастройки();
// Если платформа некорректно обрабатывает итоги,
// группировка по периоду вернет пустые значения
Построитель.Выполнить();
Построитель.Вывести(ТабличныйДокумент);
Если после переезда вы видите пустые колонки в группировках, попробуйте выполнить Тестирование и исправление (ТиИ) с включенными опциями «Реиндексация таблиц» и «Пересчет итогов». В 90% случаев при работе с обычными формами и ПостроителемОтчета проблема кроется именно в неактуальных индексах после миграции данных между версиями SQL.
Еще один важный технический нюанс связан с работой сетевых адаптеров на виртуальных машинах Windows Server 2008 R2. Функции TCP Chimney Offload и Receive Side Scaling (RSS) призваны ускорить сеть, но в связке с 1С и SQL они часто вызывают микро-искажения пакетов данных. Для тяжелых отчетов это проявляется как «неверные цифры» при сохранении общей работоспособности базы.
Рекомендуется отключить эти функции командами в консоли (cmd):
netsh int tcp set global chimney=disablednetsh int tcp set global rss=disabledПодводя итог, если Универсальный отчет «сломался» после переезда, пройдите по следующему чек-листу:
.dt, если произошло понижение версии платформы.Соблюдение этих правил позволит вернуть стабильную работу отчетов и гарантировать достоверность данных в вашей системе 1С.