Каждый бухгалтер и системный администратор в государственных учреждениях регулярно сталкивается с необходимостью обновления комплектов регламентированной отчетности. В программе «1С:Бухгалтерия государственного учреждения, редакция 1.0» (БГУ 1.0) этот процесс обычно проходит через встроенный помощник. Однако нередко пользователи сталкиваются с критической ошибкой: на последнем, 4-м шаге загрузки комплекта (файлы формата .repx) программа полностью прекращает работу и «вылетает» без каких-либо предупреждений или сообщений об ошибках.
В этой статье мы подробно разберем, почему возникает этот сбой, проанализируем техническую суть проблемы и рассмотрим пошаговые методы борьбы с ней — от простых манипуляций с платформой до глубокой очистки базы данных.
Процесс импорта отчетности в БГУ 1.0 управляется служебным механизмом под названием ИмпортКейса. Первые три шага помощника выполняют предварительные действия: чтение файла комплекта, сопоставление объектов и подготовку к транзакции. На четвертом, финальном шаге программа приступает к непосредственной записи новых метаданных отчетности в базу данных и удалению устаревших версий бланков и правил.
Этот процесс сопровождается выполнением тяжелых транзакций, разбором огромных XML-структур через механизмы XDTO и активной перезаписью регистров. Выделяют две основные причины, по которым 1С завершает работу аварийно:
Staterep191N или Staterep33N) объем обрабатываемых в памяти XML-структур превышает этот лимит. Операционная система принудительно завершает процесс 1С, что выглядит как моментальный «вылет» программы. Часто в логах операционной системы Windows этот сбой фиксируется в модулях dbeng8.dll (в файловом режиме) или accnt.dll.Temp, платформа мгновенно закрывается.Выясним первоочередную причину сбоя, которая кроется в устаревшей технологической платформе. Начиная с определенных релизов БГУ 1.0 (в частности, начиная с версии конфигурации 1.0.46 и выше), разработчики 1С кардинально изменили внутренние механизмы обработки отчетности. Программа начинает использовать новые возможности платформы, которые отсутствуют в старых сборках.
Проанализируем требования к платформе:
Для решения этой проблемы обновим платформу 1С. Рекомендуется использовать проверенные и стабильные релизы ветки 8.3.9 (например, 8.3.9.2033 или 8.3.9.2309). Если ваша конфигурация требует более современную платформу, выполните обновление до актуальных версий 8.3.12 или более поздних, предварительно ознакомившись с файлом ReadMe.txt к текущему релизу конфигурации БГУ.
Если обновление платформы не привело к желаемому результату и программа продолжает закрываться на 4-м шаге, это свидетельствует о накоплении «мусора» в локальном кэше или о логических ошибках в самой базе данных. Проведем комплексную очистку и диагностику.
Выполним очистку локального кэша по шагам:
/ClearCache.%LocalAppData%\1C\1Cv8 и %AppData%\1C\1Cv8 и безвозвратно удалим все папки с буквенно-цифровыми наименованиями (например, a3ef890c-...).После очистки кэша обязательно проведем тестирование базы данных. Сделаем резервную копию базы данных (создание архивной копии файла 1Cv8.1CD или выгрузка .dt из Конфигуратора строго обязательна перед любыми процедурами!).
Запустим утилиту тестирования физической целостности файловой базы данных chdbfl.exe (она находится в каталоге установки платформы 1С, в папке bin). Укажем путь к файлу базы данных, установим флаг «Исправлять обнаруженные ошибки» и выполним проверку.
После этого откроем базу данных в режиме Конфигуратора, перейдем в меню «Администрирование» — «Теоретический анализ и исправление» (Тестирование и исправление). Настроим параметры проверки:
Запустим процесс и дождемся его завершения.
Иногда крах программы или системная ошибка удаления (в Журнале регистрации это фиксируется кодом [V8XC0000] [SMXC0110] Ошибка удаления) вызваны тем, что старые элементы комплектов отчетности намертво заблокированы ссылками из пользовательских документов. Программа пытается затереть старый бланк, но СУБД блокирует транзакцию, так как на этот бланк ссылаются существующие отчеты за прошлые периоды.
Рассмотрим, в каких объектах чаще всего застревают неявные («мусорные») ссылки:
ИсторияИзменений (служебный регистр версионирования объектов);ОперандыПоказателей;ПравилаОбработки;ЗначенияПоказателейОтчетов.Чтобы разорвать эти связи и успешно загрузить комплект поверх старых данных, выполним следующие шаги:
OcistkaIstoriiIzmeneniy.epf), либо программно очистить записи регистра сведений ИсторияИзменений по конкретным объектам. Пример программного кода для удаления записей из регистра:
НаборЗаписей = РегистрыСведений.ИсторияИзменений.СоздатьНаборЗаписей();
НаборЗаписей.Отбор.Объект.Установить(СсылкаНаУдаляемыйОбъект);
НаборЗаписей.Записать();
Если стандартные методы не помогают и загрузка все равно падает из-за нехватки ресурсов компьютера, воспользуемся обходными путями, которые снижают нагрузку на оперативную память.
Метод 1. Отключение автоматического сравнения и выборочная загрузка
При запуске «Помощника загрузки комплекта отчетности» на одном из первых шагов обязательно обратим внимание на опцию «Не открывать окно сравнения и объединения, сразу начать загрузку». По умолчанию этот флаг установлен. **Снимем эту галочку!**
В этом случае программа откроет интерактивное окно сравнения и объединения объектов. Мы сможем снять флажки с тех разделов и форм отчетности, которые не изменились или которые наше учреждение гарантированно не сдает (например, формы для специфических бюджетов или неиспользуемые бланки). Выборочная загрузка снижает объем обрабатываемых транзакций в разы, предотвращая переполнение памяти.
Метод 2. Использование 64-битного тонкого/толстого клиента 1С
Если база данных файловая, перенесем ее на компьютер, где установлена 64-разрядная версия платформы «1С:Предприятие» (x64) и запущен 64-битный клиент. 64-разрядный процесс не ограничен лимитом в 2 ГБ и сможет успешно переварить ресурсоемкую операцию разбора XML на 4-м шаге. После успешного обновления комплекта базу можно вернуть на исходные рабочие места со стандартным 32-битным клиентом.
Метод 3. Временный перенос на быстрый локальный диск
Если база данных работает в клиент-серверном режиме (на MS SQL или PostgreSQL), то сетевые задержки и таймауты СУБД могут прерывать долгую транзакцию удаления старых метаданных на 4-м шаге. Проверенное решение администраторов:
Выгрузим базу в файл .dt, развернем ее локально на быстром твердотельном накопителе (SSD) в файловом варианте, без проблем выполним импорт комплекта отчетности под локальной платформой, сделаем новую выгрузку и зальем обновленную базу обратно на сервер СУБД.
В некоторых обсуждениях этой проблемы системные администраторы рекомендуют радикально обновлять платформу до ранних релизов ветки 8.3.10. Предостережем вас от поспешных решений.
В ранних версиях платформы 8.3.10 (вплоть до сборки 8.3.10.2252) существовал критический задокументированный баг работы с механизмами XDTO-сериализации и интеграции данных. В процессе работы этих механизмов происходила спонтанная потеря или очистка измерений в регистре бухгалтерии (например, могло полностью очиститься измерение «Валюта» или КФО/КПС/КЭК на счетах учета).
Для программы БГУ, где ведется строжайший государственный учет в разрезе КФО (код финансового обеспечения) и КПС (классификатор доходов/расходов), использование таких нестабильных платформ могло привести к тотальному искажению баланса и повреждению регистров. Поэтому всегда используйте только стабильные, рекомендованные фирмой «1С» релизы платформ из веток 8.3.9, 8.3.12 или более новые проверенные версии.
Соблюдение этих рекомендаций, регулярная чистка кэша и своевременный контроль версий технологической платформы позволят вам навсегда забыть о проблемах и вылетах при обновлении отчетных форм БГУ.