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