При переходе на платформу версии 8.3.14 многие администраторы и разработчики столкнулись с пугающим поведением системы: после успешного обновления «1С:Бухгалтерия» (или других конфигураций) стандартные отчеты, такие как Оборотно-сальдовая ведомость (ОСВ), перестают показывать данные. При этом физически записи в базе данных существуют, их можно увидеть непосредственно в таблицах SQL или через консоль запросов, но виртуальные таблицы регистров бухгалтерии возвращают пустой результат. Разберем подробно причины этого явления и пошаговые методы восстановления работоспособности базы.
Для начала проанализируем ситуацию с технической точки зрения. Платформа 8.3.14 стала для фирмы «1С» технологическим прорывом, так как именно в этой ветке произошел переход на стандарт разработки C++17. Это повлекло за собой глобальное переписывание ядра системы, включая механизмы генерации SQL-запросов и работу с итогами регистров.
Критическая ошибка, зарегистрированная под номером 10209733, заключалась в некорректной работе оптимизатора запросов 1С. При использовании клиент-серверного варианта (особенно на MS SQL Server) система при обращении к виртуальным таблицам ОстаткиИОбороты не могла правильно сопоставить данные из основной таблицы движений _AccRg и вспомогательных таблиц итогов. В результате оптимизатор формировал неверный план выполнения, который «отсекал» все данные, выдавая пользователю пустую форму отчета.
Рассмотрим самый быстрый способ вернуть данные «в строй», если у вас нет возможности немедленно обновить платформу на более свежий билд. Этот метод основан на том, что при понижении режима совместимости платформа принудительно отключает новые механизмы генерации запросов, возвращаясь к проверенным алгоритмам.
Режим совместимости.Версия 8.3.13 (или 8.3.12, в зависимости от того, что стояло ранее).Как показывает практика, после этих действий Оборотно-сальдовая ведомость начинает формироваться корректно, так как платформа перестает использовать проблемные оптимизации, специфичные для движка 8.3.14.
Если изменение режима совместимости нежелательно (например, вы используете новый функционал, требующий именно 8.3.14), разберем процедуру «лечения» итогов. Обычного «Тестирования и исправления» (ТИИ) часто оказывается недостаточно, поэтому выполним полную процедуру пересчета.
Проанализируем шаги в режиме «Предприятие»:
Параллельно с этим крайне полезно выполнить процедуру очистки серверного кэша и реиндексацию таблиц на уровне SQL-сервера. Для этого в SQL Server Management Studio можно выполнить команду для таблиц регистра бухгалтерии:
ALTER INDEX ALL ON _AccRg1234 REBUILD; -- где 1234 - номер вашего регистра
Важно понимать, что «пустые оборотки» — это признанный баг ранних сборок 14-й платформы (например, 8.3.14.1565). Фирма «1С» оперативно выпустила исправления. Рассмотрим рекомендуемые версии для перехода:
Совет: Всегда придерживайтесь версии платформы, которую рекомендует разработчик вашей конфигурации в файле ReadMe.txt к релизу обновления. Если в требованиях указана 8.3.12, не стоит без веских причин переходить на 8.3.14.
Выясним, почему иногда отчеты «зависают» или выдают пустой результат из-за механизмов поиска. В платформе 8.3.14 фоновые задания Полнотекстовый поиск могут блокировать таблицы итогов в моменты их перестроения. Если вышеуказанные методы не помогли на 100%, попробуйте выполнить следующие действия:
1Cv8FTxt (индексы полнотекстового поиска) в папке с данными информационной базы на сервере.Мы проанализировали ситуацию с «исчезновением» данных в отчетах и пришли к выводу, что это системная ошибка взаимодействия нового ядра платформы с SQL-движком. Для восстановления работы 1C:Бухгалтерия мы рекомендуем сначала попробовать снижение режима совместимости до 8.3.13, а в долгосрочной перспективе — обновление платформы до билда не ниже 8.3.14.1643. Не забудьте после любых манипуляций с платформой выполнять полный пересчет итогов, чтобы гарантировать актуальность данных в виртуальных таблицах РегистрБухгалтерии.