При переходе на новые релизы программ «1С» мы часто ожидаем улучшения функционала и исправления старых ошибок. Однако в версии 3.0.121.31 типовой конфигурации «Бухгалтерия предприятия» многие пользователи столкнулись с катастрофической ситуацией: фоновые процедуры обновления начали массово изменять документы прошлых лет (начиная с 2017 года), игнорируя установленные даты запрета редактирования. Это привело к тому, что оборотно-сальдовая ведомость «разъехалась», а документы по учету основных средств потеряли свои проводки.
В этой статье мы подробно проанализируем причины такого поведения системы, выясним, почему не сработали стандартные механизмы защиты, и разберем по шагам, как восстановить учет и не допустить подобного в будущем.
Проанализируем ситуацию. Основная причина массовых изменений кроется в реализации требований ФСБУ 6/2020 «Основные средства». Разработчики «1С» изменили методику отражения перехода на новый стандарт. Если ранее проводки по списанию стоимости малоценных ОС формировались непосредственно документом Перевод ОС в малоценное оборудование, то в новых релизах эти движения было решено вынести в специализированную Регламентную операцию с типом «Переход на ФСБУ 6».
Рассмотрим, какие именно процедуры обновления инициируют изменения:
Перевод ОС в малоценное оборудование, очищает их движения (проводки) и создает на их основе новые регламентные операции датой 31.12.2021 (или 31.12.2020) в 23:59:59.Хозрасчетный появился новый системный реквизит УточнениеПериода. Он необходим для того, чтобы проводки межотчетного периода (которые делаются 31 декабря) не попадали в обороты декабря, а учитывались только в остатках на начало следующего года. Процедура обновления принудительно перезаписывает старые движения, чтобы заполнить этот реквизит.Реализация (акт, накладная, УПД). Программа заменяет устаревшие виды электронных документов на актуальные, что вызывает программную перезапись объекта.Многие системные администраторы и бухгалтеры задаются вопросом: почему механизм ДатаЗапретаИзменения не остановил этот процесс? Посмотрим на техническую сторону реализации процедур обновления в библиотеке стандартных подсистем (БСП).
Когда выполняется отложенное обновление информационной базы, система использует режим «Загрузка». Проанализируем типичный фрагмент кода, который выполняется в таких случаях:
// Пример кода из типовых механизмов обновления
ДокументОбъект.ОбменДанными.Загрузка = Истина; // Отключение бизнес-логики и проверок
ОбновлениеИнформационнойБазы.ЗаписатьДанные(ДокументОбъект);
При установке свойства ОбменДанными.Загрузка в значение Истина, платформа 1С отключает большинство проверок в модуле объекта, включая проверку на дату запрета редактирования. Это сделано намеренно: если разработчикам нужно изменить структуру данных или пересчитать итоги в соответствии с новым законодательством, программа должна иметь возможность обновить записи даже в закрытых периодах, иначе данные в будущем будут формироваться некорректно.
Ситуация, описанная в релизе 3.0.121.31, была признана официальной ошибкой под номером 000130534. Проблема заключалась в том, что алгоритм «выноса» проводок в регламентные операции срабатывал некорректно, создавая дублирующие записи или полностью очищая проводки без создания замещающих операций. Это и привело к тому, что ОСВ «разъехалась».
Если вы уже обновились и обнаружили изменения в закрытых периодах, рассмотрим варианты решения задачи.
Прежде всего, сформируйте отчет Журнал регистрации. Отфильтруйте события по пользователю, под которым выполнялось обновление, и по метаданным Регламентная операция и Реализация. Так вы увидите точный масштаб изменений. Сравните оборотно-сальдовую ведомость за 2021 год с архивной копией (если она есть).
Разработчики оперативно выпустили исправленный релиз 3.0.122.94. Если вы еще не успели сильно изменить данные в рабочей базе, лучшим решением будет:
Для тех, у кого документы перехода на ФСБУ 6 остались без проводок, на портале ИТС была опубликована специализированная обработка «Корректировка перехода на ФСБУ 6». Проанализируем ее работу:
Перевод ОС в малоценное оборудование.Поскольку было изменено более 5000 документов, они все попали в ПланыОбмена для синхронизации с другими базами (ЗУП, УТ, ERP). Чтобы не «положить» обмен и не испортить данные в соседних системах, необходимо очистить регистрацию изменений:
// Пример программной очистки регистрации для реализации
ПланыОбмена.УдалитьРегистрациюИзменений(УзелОбмена, Метаданные.Документы.РеализацияТоваровУслуг);
Ситуация в релизе 3.0.121.31 еще раз доказывает старую истину: обновление без бэкапа — это риск потери бизнеса. Рассмотрим правила безопасного обновления:
Отложенных обработчиков обновления.Администрирование — Обслуживание — Обновление программы — Результаты обновления. Посмотрите список процедур. Если вы видите процедуры, связанные с изменением документов прошлых лет (как в случае с ФСБУ 6), будьте крайне внимательны.Старт отложенного обновления. Если база большая, это может занять часы и даже дни. Не позволяйте пользователям работать в базе, пока эти процессы не завершены и данные не проверены.Подведем итог. Обновление 1С:БП 3.0.121.31 действительно содержало деструктивный код для учета основных средств. Если вы пострадали от него, необходимо обновиться до актуального релиза (не ниже 3.0.122.x) и воспользоваться штатными средствами исправления данных ФСБУ 6. Помните, что режим Загрузка = Истина делает программу «всесильной», поэтому единственный надежный способ защиты — это предварительное тестирование на копии.