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