Как установить дату запрета изменения данных в 1С:УНФ 1.2?

Программист 1С v8.3 (Обычные формы) 1С:Управление нашей фирмой Управленческий учет IT и автоматизация бизнеса
← На главную

При работе со старыми конфигурациями 1С, такими как Управление небольшой фирмой версии 1.2, пользователи часто сталкиваются с вопросом ограничения доступа к редактированию документов прошлых периодов. Давайте разберемся, существует ли такая возможность «из коробки» и какие альтернативные способы решения этой задачи существуют для столь «раритетных» релизов.

Анализ ситуации: наличие штатного функционала

Первым делом проанализируем текущую ситуацию. Версия УНФ 1.2 базировалась на технологической платформе 1С:Предприятие 8.2. В те годы архитектурные стандарты разработки систем для малого бизнеса существенно отличались от современных решений.

Важно понимать, что в типовой поставке УНФ 1.2 механизм Даты запрета изменения данных в том виде, к которому мы привыкли в современных УНФ 3.0 или Бухгалтерии предприятия, попросту отсутствует. Это не является ошибкой или скрытой настройкой — это особенность архитектуры того времени. Если вы попытаетесь найти соответствующую галочку в настройках пользователя или параметров учета, вы ее не обнаружите.

Почему возникает проблема?

Основная сложность заключается в целостности данных. В процессе обмена с другими конфигурациями (например, Бухгалтерией 2.0) часто возникали коллизии. Если в Бухгалтерии период закрыт и запрет установлен, то при обратном обмене из УНФ 1.2, где никаких ограничений нет, данные могут быть перезаписаны или изменены задним числом. Это приводит к расхождениям в управленческой и регламентированной отчетности.

Пути решения проблемы для версии 1.2

Так как штатных средств нет, нам придется использовать методы доработки конфигурации. Рассмотрим основные подходы, которые мы можем применить совместно с вами:

  1. Доработка через Конфигуратор: Это самый надежный способ. Мы можем внедрить проверку даты в процедуру ПередЗаписью модуля объекта нужных нам документов.
  2. Использование ролей и прав доступа: Мы можем создать отдельную роль, которая ограничивает возможность записи документов, если дата документа меньше некоторой критической точки.
  3. Внешние обработки: Можно создать обработку, которая будет проверять записи в базе данных и помечать документы, попавшие в закрытый период, как «только для чтения» (используя свойства формы).

Реализация через модуль объекта

Давайте разберем, как мы можем программно реализовать ограничение. Для этого нам необходимо создать Константу, где мы будем хранить текущую дату запрета, а затем в модуле объекта каждого документа добавить проверку.

Посмотрим на пример логики, которую мы можем встроить:


Процедура ПередЗаписью(Отказ, РежимЗаписи, РежимПроведения)
    ДатаЗапрета = Константы.ДатаЗапретаРедактирования.Получить();
    Если ЭтотОбъект.Дата < ДатаЗапрета Тогда
        Сообщить("Изменение документов в закрытом периоде запрещено!");
        Отказ = Истина;
    КонецЕсли;
КонецПроцедуры

Этот простой метод позволит нам предотвратить случайное редактирование старых документов. Конечно, для полноценной работы системы нам также потребуется создать форму обработки для администратора, где он сможет менять значение константы ДатаЗапретаРедактирования.

О чем стоит помнить при доработке

При внесении изменений в конфигурацию мы должны учитывать несколько важных моментов:

Итоги

Подводя черту, отметим: если вы используете версию УНФ 1.2, не стоит тратить время на поиски штатной «волшебной кнопки». Ее там нет. Единственным верным решением в условиях необходимости закрытия периодов является доработка конфигурации силами программиста. Используйте описанные выше методы проверки даты в МодулеОбъекта, и это позволит вам успешно контролировать сохранность данных даже в такой старой версии платформы.

← На главную