Переход с редакции 2.0 на 3.0 для «1С:Бухгалтерия предприятия» — это не просто очередное обновление версии, а полноценная смена архитектуры. Одной из самых неприятных проблем, с которой сталкиваются специалисты, является внезапное «открытие» прошлых периодов. После успешного обновления в конфигураторе и первого запуска в режиме «Предприятие» пользователи обнаруживают, что даты запрета изменения данных исчезли, а регламентные операции за прошлые годы требуют перезакрытия.
В рамках данной статьи мы подробно разберем, почему это происходит, проанализируем внутренние механизмы платформы и выясним, как вернуть системе корректное состояние без многомесячного перепроведения документов.
Проанализируем ситуацию с технической точки зрения. В старой редакции 2.0 механизмы ограничения прав доступа и даты запрета редактирования часто базировались на простых константах или специализированных регистрах сведений (например, УстановкаДатЗапретаИзмененияДанных). В современной редакции 3.0 используется универсальная подсистема из состава БСП (Библиотеки стандартных подсистем).
Данные теперь хранятся в регистре сведений ДатыЗапретаИзменения. Поскольку структура этих регистров в 2.0 и 3.0 кардинально различается, в процессе обновления должен отработать специальный программный обработчик. Рассмотрим основные причины, по которым он может не сработать:
Важно разделять две разные проблемы, которые часто путают при переходе. Проанализируем их отдельно:
Дата запрета изменения: Это административное ограничение, которое не дает пользователям редактировать старые документы. Если она «слетела», это решается простой установкой новой даты в разделе «Администрирование». Это не влияет на расчеты, а лишь блокирует интерфейс.
Состояние закрытия месяца: Это более глубокая проблема. В БП 3.0 используется совершенно новый «Помощник закрытия месяца», который жестко контролирует последовательность проведения документов. Даже если в 2.0 все периоды были «зелеными» (закрытыми), в 3.0 они могут стать «красными». Система заново проверяет актуальность итогов по новым алгоритмам и видит «разрывы» в последовательностях, которые возникли при конвертации данных.
Если объем базы невелик, самым надежным способом будет ручное восстановление настроек. Посмотрим, как это сделать правильно:
Важный момент: Установка даты запрета никак не инициирует перепроведение документов. Это «безопасная» операция, которая просто закрывает доступ на запись объектов ранее указанной даты.
Если «открылся» период именно в помощнике закрытия месяца, и система требует перепроводить документы за несколько лет, мы не можем просто запустить этот процесс — он затянется на недели. Проанализируем ситуацию: документы уже перенесены, их движения сформированы в 2.0 и корректно отражены в 3.0. Нам нужно лишь «объяснить» системе, что эти периоды закрыты успешно.
Для этого мы можем воспользоваться программным заполнением регистра сведений СостоянияЗакрытияМесяца. Рассмотрим пример кода, который устанавливает статус «Выполнено» для регламентных операций:
// Пример обработки для фиксации закрытия периода
Процедура ЗафиксироватьЗакрытиеМесяца(Организация, ПериодЗакрытия)
// ПериодЗакрытия должен быть началом соответствующего месяца
МенеджерЗаписи = РегистрыСведений.СостоянияЗакрытияМесяца.СоздатьМенеджерЗаписи();
МенеджерЗаписи.Организация = Организация;
МенеджерЗаписи.Период = ПериодЗакрытия;
// Устанавливаем статус "Выполнено"
МенеджерЗаписи.Состояние = Перечисления.СостоянияРегламентныхОпераций.Выполнено;
// Записываем состояние
МенеджерЗаписи.Записать();
Сообщить("Статус закрытия месяца " + ПериодЗакрытия + " успешно обновлен.");
КонецПроцедуры
Использование подобных методов позволяет избежать выполнения тяжелых регламентных операций ЗакрытиеМесяца, сохраняя при этом целостность учета, перенесенного из старой базы.
В некоторых случаях мы можем воспользоваться механизмом Даты актуальности учета. Если мы установим дату, ранее которой контроль последовательностей не производится, система перестанет помечать старые периоды как требующие перезакрытия. Это позволяет «отсечь» прошлые ошибки и начать работу в 3.0 с чистого листа в плане актуальности итогов.
Чтобы минимизировать риск «открытия» периодов при последующих переходах или тестировании текущего, выполним следующие шаги:
Тестирование и исправление или консоль администратора. Это поможет системе актуализировать внутренние индексы без изменения проводок документов.Подводя итог, отметим, что открытие периода при переходе на БП 3.0 — это штатная ситуация, обусловленная глубокими архитектурными изменениями. Используя ручную установку дат запрета и программную корректировку регистра СостоянияЗакрытияМесяца, мы можем быстро привести базу в рабочее состояние, не прибегая к ресурсоемкому перепроведению старых данных.