Почему в 1С:Бухгалтерия после обновления на платформу 8.3.14 стали пустыми оборотно-сальдовые ведомости и как это исправить?

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

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

Выясним причину проблемы: переход на C++17 и ошибка 10209733

Для начала проанализируем ситуацию с технической точки зрения. Платформа 8.3.14 стала для фирмы «1С» технологическим прорывом, так как именно в этой ветке произошел переход на стандарт разработки C++17. Это повлекло за собой глобальное переписывание ядра системы, включая механизмы генерации SQL-запросов и работу с итогами регистров.

Критическая ошибка, зарегистрированная под номером 10209733, заключалась в некорректной работе оптимизатора запросов 1С. При использовании клиент-серверного варианта (особенно на MS SQL Server) система при обращении к виртуальным таблицам ОстаткиИОбороты не могла правильно сопоставить данные из основной таблицы движений _AccRg и вспомогательных таблиц итогов. В результате оптимизатор формировал неверный план выполнения, который «отсекал» все данные, выдавая пользователю пустую форму отчета.

Метод 1: Изменение режима совместимости конфигурации

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

  1. Запустим базу в режиме Конфигуратор.
  2. Откроем свойства корневого узла конфигурации (правой кнопкой мыши по имени базы — «Открыть свойства»).
  3. Найдем раздел «Совместимость» и параметр Режим совместимости.
  4. Изменим значение на Версия 8.3.13 (или 8.3.12, в зависимости от того, что стояло ранее).
  5. Выполним обновление конфигурации базы данных (клавиша F7).

Как показывает практика, после этих действий Оборотно-сальдовая ведомость начинает формироваться корректно, так как платформа перестает использовать проблемные оптимизации, специфичные для движка 8.3.14.

Метод 2: Исправление через управление итогами и ТИИ

Если изменение режима совместимости нежелательно (например, вы используете новый функционал, требующий именно 8.3.14), разберем процедуру «лечения» итогов. Обычного «Тестирования и исправления» (ТИИ) часто оказывается недостаточно, поэтому выполним полную процедуру пересчета.

Проанализируем шаги в режиме «Предприятие»:

  1. Перейдем в раздел Администрирование — Обслуживание — Регламентные операции — Управление итогами.
  2. Зафиксируем текущий период рассчитанных итогов.
  3. Полностью отключим использование итогов для регистра бухгалтерии (это очистит таблицы итогов в SQL-базе).
  4. Применим изменения.
  5. Снова включим использование итогов и установим период рассчитанных итогов по текущую дату.

Параллельно с этим крайне полезно выполнить процедуру очистки серверного кэша и реиндексацию таблиц на уровне SQL-сервера. Для этого в SQL Server Management Studio можно выполнить команду для таблиц регистра бухгалтерии:

ALTER INDEX ALL ON _AccRg1234 REBUILD; -- где 1234 - номер вашего регистра

Метод 3: Обновление платформы на корректирующий релиз

Важно понимать, что «пустые оборотки» — это признанный баг ранних сборок 14-й платформы (например, 8.3.14.1565). Фирма «1С» оперативно выпустила исправления. Рассмотрим рекомендуемые версии для перехода:

Совет: Всегда придерживайтесь версии платформы, которую рекомендует разработчик вашей конфигурации в файле ReadMe.txt к релизу обновления. Если в требованиях указана 8.3.12, не стоит без веских причин переходить на 8.3.14.

Дополнительные факторы: Полнотекстовый поиск

Выясним, почему иногда отчеты «зависают» или выдают пустой результат из-за механизмов поиска. В платформе 8.3.14 фоновые задания Полнотекстовый поиск могут блокировать таблицы итогов в моменты их перестроения. Если вышеуказанные методы не помогли на 100%, попробуйте выполнить следующие действия:

  1. Остановите службу сервера 1С.
  2. Удалите содержимое каталога 1Cv8FTxt (индексы полнотекстового поиска) в папке с данными информационной базы на сервере.
  3. Запустите службу и в режиме «Предприятие» через Управление полнотекстовым поиском запустите полное пересоздание индекса.

Резюме по решению проблемы

Мы проанализировали ситуацию с «исчезновением» данных в отчетах и пришли к выводу, что это системная ошибка взаимодействия нового ядра платформы с SQL-движком. Для восстановления работы 1C:Бухгалтерия мы рекомендуем сначала попробовать снижение режима совместимости до 8.3.13, а в долгосрочной перспективе — обновление платформы до билда не ниже 8.3.14.1643. Не забудьте после любых манипуляций с платформой выполнять полный пересчет итогов, чтобы гарантировать актуальность данных в виртуальных таблицах РегистрБухгалтерии.

← На главную