При переходе на новые релизы 1С:Бухгалтерия 3.0 (в частности, начиная с версии 3.0.106 и выше) многие технические специалисты столкнулись с критической проблемой: после успешного, на первый взгляд, обновления в стандартных бухгалтерских отчетах (оборотно-сальдовая ведомость, анализ счета и другие) перестала отображаться аналитика по субконто. При этом, если открыть сами документы или их движения, все данные на месте. Попытки простого перепроведения документов часто не приносят результата, а в отчетах постоянно висит предложение пересчитать итоги.
В этой статье мы подробно разберем, почему возникает эта ошибка, проанализируем механизмы работы платформы 1С с регистрами бухгалтерии и изучим пошаговые инструкции по восстановлению корректной работы базы данных.
Для начала проанализируем ситуацию с технической точки зрения. Основная причина кроется в системном поле PeriodAdjustment (Корректировка периода). Это поле было введено фирмой 1С в структуру регистра бухгалтерии для оптимизации расчета итогов и работы с виртуальными таблицами. Однако в определенных версиях платформы (особенно в ветках 8.3.18.1741 и ранних 8.3.19) механизм реструктуризации таблиц при обновлении конфигурации срабатывал некорректно.
Рассмотрим подробнее, что происходит внутри базы данных:
_AccntReg (регистр бухгалтерии) должна получить новое поле _PeriodAdjustment.Именно поэтому мы видим данные в движениях (прямой запрос к физической таблице), но не видим их в отчетах (запрос к виртуальным таблицам итогов).
Как показывает практика и опыт участников профессиональных форумов, самым надежным решением является смена версии технологической платформы. Ошибка была официально признана и исправлена в более поздних сборках.
Рассмотрим шаги по исправлению:
.dt или создать копию файла 1Cv8.1CD.Тестирование и исправление.В окне настроек "Тестирование и исправление информационной базы" обязательно выберите следующие пункты:
После завершения процесса платформа принудительно пересоздаст структуру таблиц с учетом исправленных алгоритмов, и поле PeriodAdjustment появится там, где оно должно быть.
Если стандартное тестирование не помогает, разберем более глубокий метод восстановления через программное управление итогами. Иногда виртуальные таблицы итогов "застревают" в некорректном состоянии, и их нужно полностью обнулить.
Посмотрим на пример того, как можно принудительно сбросить и включить итоги через консоль кода или внешнюю обработку:
// Отключаем использование итогов для регистра бухгалтерии
РегистрыБухгалтерии.Хозрасчетный.УстановитьИспользованиеИтогов(Ложь);
// В этот момент физические таблицы итогов очищаются.
// Далее выполняем реструктуризацию в Конфигураторе.
// После реструктуризации включаем итоги обратно
РегистрыБухгалтерии.Хозрасчетный.УстановитьИспользованиеИтогов(Истина);
// Выполняем полный пересчет за весь период существования базы
РегистрыБухгалтерии.Хозрасчетный.ПересчитатьИтоги();
Этот метод гарантирует, что виртуальные таблицы будут построены "с нуля" на основе уже имеющихся проводок в физической таблице движений, где аналитика сохранилась.
Проанализируем ситуацию, когда реструктуризация выполнена, но отчеты все равно показывают пустоту. Проблема может крыться в локальном кэше пользователя или серверном кэше (для клиент-серверного варианта).
Для файловой базы выполните следующие действия:
%AppData%\1C\1cv8\ и удалите все папки с именами-идентификаторами (например, eb92...).Также важно проверить наличие установленных исправлений (патчей). Фирма 1С оперативно выпускала патчи для конфигурации 3.0.106. В разделе "Администрирование" — "Обслуживание" — "Обновление программы" — "Установленные исправления" найдите патчи, в описании которых фигурируют слова PeriodAdjustment или РегистрБухгалтерии. Если они есть и помечены как "не примененные", их необходимо активировать.
Если в вашей базе используются расширения, которые затрагивают ПланСчетов.Хозрасчетный или РегистрБухгалтерии.Хозрасчетный, они могут блокировать корректное изменение структуры данных. Выясним, как это проверить:
В случае, если база сильно повреждена и никакие методы реструктуризации не помогают (как описано в некоторых сообщениях форума), специалисты прибегают к методу создания чистой базы. Рассмотрим этот алгоритм:
Важный итог: Не стоит паниковать при виде пустых отчетов. Главное — убедиться, что данные физически присутствуют в проводках документов. Если это так, то проблема носит чисто технический характер на уровне виртуальных таблиц и решается правильной комбинацией обновления платформы и полного пересчета итогов.