Защита данных 1С от правок: роли, закрытый период, запрет записи и журнал изменений

· 9 мин

Содержание

Запретить редактирование в 1С 8.3 проще всего двумя штатными настройками. Первая — дата запрета изменения: всё, что раньше этой даты, нельзя исправить, провести заново или удалить. Вторая — профиль групп доступа без ролей на добавление и изменение: пользователь видит документы и печатает их, но не правит.

Обе настройки есть в типовых конфигурациях на Библиотеке стандартных подсистем: Бухгалтерии 3.0, ЗУП 3.1, Управлении торговлей 11. Конфигуратор понадобится, только если нужно что-то особенное: запретить правку по своему условию или закрыть отдельное поле.

С чего начать: пользователи и выбор способа запрета

Любое ограничение в 1С работает только для именованных пользователей. Если список пользователей пуст, база открывается без пароля, и каждый, кто её запустил, получает полные права. Ни роли, ни даты запрета тогда не помогут.

Перед настройкой проверьте три вещи:

  • 👤 у каждого сотрудника своя учётная запись, никто не работает под общим «Бухгалтером»;
  • 🔑 полные права есть только у администратора (одного-двух человек);
  • 💾 есть свежая резервная копия: ошибка в правах может закрыть доступ и вам самим.

Дальше выберите способ под задачу:

СпособКогда подходитРиски
Профиль групп доступа без прав на изменениеСотруднику нужно только смотреть и печататьЕсли человек состоит в другой группе с правом записи, запрет не сработает
Дата запрета измененияЗакрыли месяц, квартал или год, сдали отчётностьНужно не забывать сдвигать дату после каждого закрытия
Ограничение на уровне записейЗапрет по конкретной организации или складуНагружает базу, требует аккуратной настройки групп
Своя роль или код в расширенииУсловие, которого нет в типовой настройкеНужен программист, расширение придётся проверять после обновлений
Что именно нужно запретить?

Права доступа через роли и профили групп

Права в типовых конфигурациях раздаются не напрямую, а через профили групп доступа. Профиль — это набор ролей. Группа доступа — это профиль плюс список пользователей и ограничения.

Где найти настройки:

КонфигурацияПуть
Бухгалтерия 3.0Администрирование → Настройки пользователей и прав
ЗУП 3.1Администрирование → Настройки пользователей и прав
Управление торговлей 11НСИ и администрирование → Настройки пользователей и прав

Как сделать профиль «только просмотр»

  1. Откройте Профили групп доступа.
  2. Найдите поставляемый профиль, близкий к нужному, например «Бухгалтер».
  3. Поставляемые профили менять нельзя. Нажмите Скопировать и дайте копии понятное имя: «Бухгалтер — просмотр».
  4. На вкладке Разрешенные действия (роли) снимите флажки с ролей, в названии которых есть «добавление», «изменение», «удаление». Роли чтения и просмотра оставьте.
  5. Запишите профиль.
  6. Откройте Группы доступа, создайте группу на основе нового профиля и добавьте в неё сотрудника.
  7. Удалите сотрудника из всех прежних групп с правом записи. Иначе права сложатся, и запрет не появится.

Права в 1С только складываются. Нельзя дать человеку «роль-запрет», которая отнимет права у другой его роли. Поэтому ограничение — это всегда убрать лишнее, а не добавить новое.

Ограничение по организации или складу

Если сотрудник должен править документы одной фирмы и только смотреть другую, включите флажок Ограничивать доступ на уровне записей в тех же настройках пользователей и прав. После этого в группе доступа появится вкладка Ограничения доступа, где задают список разрешённых организаций.

Для такой схемы делают две группы: одна с правом изменения и ограничением «Организация А», вторая только с чтением по всем организациям.

Дата запрета изменения: блокировка проведённых документов

Дата запрета — главный инструмент бухгалтера. Документы с датой раньше границы нельзя изменить, перепровести, удалить или пометить на удаление. Новый документ задним числом тоже не запишется.

Как включить

  1. Откройте Настройки пользователей и прав.
  2. Поставьте флажок Даты запрета изменения и перейдите по одноимённой ссылке.
  3. Выберите, для кого действует запрет: для всех пользователей или для отдельных.
  4. Выберите способ указания даты: одна общая дата, по разделам учёта или по разделам и организациям.
  5. Укажите дату или выберите относительную: конец прошлого месяца, квартала, года.

Относительная дата удобна: её не нужно двигать вручную. «Конец прошлого месяца» 1 ноября сама переедет на 31 октября. Можно добавить отсрочку на несколько дней, чтобы бухгалтер успел дописать первичку за прошлый месяц.

Индивидуальные даты

Главному бухгалтеру можно оставить дату на конец прошлого года, а рядовым сотрудникам — на конец прошлого месяца. Для этого в списке дат добавьте строки по конкретным пользователям или группам пользователей. Строка для пользователя важнее общей.

Чтобы исправить документ в закрытом периоде, администратор временно сдвигает дату, правит, перепроводит и возвращает дату обратно. Не оставляйте период открытым «до понедельника»: за выходные в нём легко появятся лишние правки.

Дата запрета загрузки

Рядом с датами изменения есть отдельная настройка — даты запрета загрузки. Она нужна, если база получает данные через обмен, например из УТ в Бухгалтерию. Без неё синхронизация может перезаписать документы закрытого периода, хотя вручную их не поменять.

Как проверить, что запрет работает

Не полагайтесь на то, что настройка «точно применилась». Проверьте её глазами пользователя:

  1. Создайте тестового пользователя и включите его в те же группы доступа, что у сотрудника.
  2. Зайдите в базу под ним и откройте документ закрытого периода.
  3. Попробуйте изменить сумму и записать. Программа должна отказать с сообщением о дате запрета.
  4. Попробуйте пометить документ на удаление и отменить проведение. Оба действия тоже должны быть запрещены.
  5. Создайте новый документ задним числом. Запись также не должна пройти.

Если хоть одно действие прошло, ищите вторую группу доступа или индивидуальную строку в датах запрета, которая перекрывает общую. После проверки тестового пользователя отключите, чтобы он не остался лазейкой.

Запрет записи в конфигураторе и расширении

Когда типовых настроек мало, ограничение делают на уровне метаданных. Есть два уровня: права роли и программная проверка.

Права роли на документ

В конфигураторе у каждой роли для документа есть отдельные права. Для нашей задачи важны:

  • 📝 Изменение и Интерактивное изменение проведенных — можно ли открыть и записать проведённый документ;
  • 🗑️ Интерактивная пометка удаления и Интерактивное удаление — можно ли удалить;
  • ↩️ Интерактивная отмена проведения — можно ли снять проведение.

Если снять Интерактивное изменение проведенных, пользователь создаёт и проводит новые документы, но проведённые открываются только на просмотр. Чтобы исправить такой документ, его придётся отдать человеку с более широкими правами.

Не правьте роли прямо в типовой конфигурации. Она снимется с поддержки, и каждое обновление превратится в ручное сравнение. Новую роль добавляйте в расширение конфигурации, а затем включайте её в свой профиль групп доступа. Профиль в пользовательском режиме увидит роль из расширения.

Программная проверка перед записью

Если условие нестандартное, проверку пишут в обработчике ПередЗаписью модуля объекта. Установка Отказ = Истина прерывает запись, и пользователь видит сообщение. Пример: запретить изменять документы старше 2025 года всем, у кого нет полных прав.

Процедура ПередЗаписью(Отказ, РежимЗаписи, РежимПроведения)

    Если ОбменДанными.Загрузка Тогда
        Возврат;
    КонецЕсли;

    Если Не ЭтоНовый() И Дата < '20250101' И Не РольДоступна("ПолныеПрава") Тогда
        Сообщение = Новый СообщениеПользователю;
        Сообщение.Текст = "Документ закрытого периода. Изменение запрещено.";
        Сообщение.Сообщить();
        Отказ = Истина;
    КонецЕсли;

КонецПроцедуры

Строка с ОбменДанными.Загрузка пропускает обмены: при загрузке проверки обычно не выполняют. Если обмен тоже нужно ограничить, используйте даты запрета загрузки.

В типовой конфигурации этот код размещают в расширении: заимствуют документ и перехватывают его обработчик аннотацией &Перед("ПередЗаписью"). Расширения появились в платформе 8.3.6, а для перехвата методов объектов нужна версия заметно новее, поэтому на старой платформе сначала обновитесь.

Только просмотр на форме

Иногда достаточно открыть форму без права правки, но не трогать права. В обработчике ПриСозданииНаСервере формы задают ТолькоПросмотр = Истина по нужному условию. Это ограничение интерфейса, а не данных: обработка или обмен всё равно смогут записать объект. Для настоящей защиты нужны права или проверка в ПередЗаписью.

Внешние обработки: закрываем обходной путь

Внешняя обработка — частая дыра в настройке. Сотрудник без права менять документы открывает чужую .epf, а она меняет данные программно. Через внешние обработки часто делают групповую перепроводку, замену реквизитов, «исправление» остатков.

Что сделать:

  1. Проверьте, у кого есть права Интерактивное открытие внешних обработок и Интерактивное открытие внешних отчетов. В типовых конфигурациях они входят в отдельную роль, которую лучше оставить только администраторам.
  2. Нужные обработки регистрируйте как дополнительные: Администрирование → Печатные формы, отчеты и обработки → Дополнительные отчеты и обработки. В карточке укажите, каким пользователям она доступна.
  3. Дополнительные обработки по умолчанию работают в безопасном режиме и не получают привилегий больше, чем у пользователя.

Обработку можно использовать и для обратной задачи — массово проставить запрет. Но это разовая операция, а не механизм защиты. Защищают данные только права и даты запрета.

Контроль версий и история изменений

Даже при хорошей настройке прав полезно знать, кто и что исправил. В типовых конфигурациях для этого два инструмента.

История изменений объектов

В Бухгалтерии 3.0 включается в Администрирование → Общие настройки, блок «История изменений». Включите хранение и в настройках отметьте объекты: документы, справочники, способ хранения версий.

После этого в форме документа появится команда истории изменений в меню Еще. Она показывает все версии документа, автора и время. Две версии можно сравнить: отчёт подсвечивает изменённые реквизиты и строки табличных частей. Нужную версию можно восстановить.

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

Журнал регистрации

Администрирование → Обслуживание → Журнал регистрации фиксирует события платформы: вход, запись и удаление объектов, ошибки. Отберите события по пользователю и типу «Данные. Изменение» — увидите, какие объекты он записывал и когда.

Журнал не показывает, какие поля изменились. Он отвечает на вопрос «кто трогал», а история изменений — на вопрос «что именно поменяли».

Частые ошибки при запрете редактирования

  • ❌ Пользователь в двух группах доступа. Одна даёт чтение, другая — запись. Права суммируются, запрета нет. Проверить можно в карточке пользователя: там видно все его группы.
  • ❌ Флажок записей не включён. Ограничения по организациям настроены в группах, но флажок Ограничивать доступ на уровне записей выключен. Ограничения просто не применяются.
  • ❌ Дату запрета поставили один раз. Абсолютная дата застряла в прошлом году, а текущие закрытые месяцы открыты. Используйте относительную дату.
  • ❌ Забыли про обмен. Ручную правку закрыли, а синхронизация меняет закрытый период. Нужна ещё дата запрета загрузки.
  • ❌ Изменили поставляемую роль в конфигураторе. Конфигурация снята с поддержки, обновление стало трудным. Вернуть изменения можно сравнением с поставщиком, но проще сразу работать через расширения.
  • ❌ Всех сделали администраторами. Профиль «Администратор» обходит большинство ограничений. Он нужен одному человеку, который настраивает систему.
Можно ли запретить редактирование в 1С одному пользователю, не трогая остальных?
Да. Добавьте в даты запрета строку для этого пользователя или включите его в группу доступа с профилем только на чтение. Остальные сохранят свои права.
Сможет ли пользователь с правом только на чтение печатать документы?
Да. Печатные формы и отчёты доступны с ролями чтения. Запрещены запись, проведение и удаление.
Действует ли дата запрета на регламентные операции закрытия месяца?
Да. Закрыть месяц, попавший в закрытый период, не получится. Сначала сдвиньте дату, выполните закрытие и верните дату.
Как запретить менять уже распечатанный или отправленный документ?
Штатно — только датой запрета или правами на проведённые документы. Запрет по признаку «отправлен» делают проверкой в расширении: в ПередЗаписью проверяют нужный реквизит или статус.
Защищает ли дата запрета от изменений в конфигураторе?
Нет. Дата запрета работает в пользовательском режиме. Администратор с доступом к конфигуратору и полными правами может её изменить, поэтому доступ к конфигуратору стоит держать у одного-двух человек.