В процессе работы с платформой 1С:Предприятие 7.7 (в частности, в конфигурации «Торговля и склад») часто возникает задача разграничения полномочий. Типичная ситуация: пользователю (например, менеджеру) требуется выполнять резервное копирование или выгрузку информационной базы, но при этом необходимо строго запретить ему изменять дату документов, текущую рабочую дату или период запрета редактирования.
Проанализируем архитектурные особенности платформы 1С 7.7 и рассмотрим эффективные варианты решения этой задачи без нарушения безопасности данных.
Разберем, почему нельзя просто дать менеджеру полные права Конфигуратора для выгрузки и одновременно ограничить его действия в программе:
Следовательно, для обеспечения надежного контроля даты необходимо полностью лишить менеджера административных прав в 1С, а процедуру резервного копирования базы данных вынести за рамки его интерактивной работы.
Выясним, как правильно ограничить менеджеру возможность изменения рабочей даты и периода проведения документов:
Право смены рабочей даты. После этого пользователь не сможет менять дату системы через меню «Сервис» -> «Параметры».
Процедура ПриЗаписи()
Если ТекущаяДата() <> ДатаДок Тогда
Если НазваниеПрава("АдминистративныеФункции") = 0 Тогда
Предупреждение("Запрещено менять дату документа!");
СтатусВозврата(0);
Возврат;
КонецЕсли;
КонецЕсли;
КонецПроцедуры
Так как интерактивный доступ к Конфигуратору у менеджера отбирается, разберем альтернативные способы создания выгрузок и архивов информационной базы.
Наиболее надежным решением является архивация каталога базы данных средствами операционной системы по расписанию или через отдельный ярлык на рабочем столе пользователя.
Для файловой базы данных (DBF) можно создать командный файл backup.bat, который упаковывает каталог базы данных с помощью архиватора (например, 7-Zip или WinRAR):
"C:\Program Files\7-Zip\7z.exe" a -tzip "D:\Backups\Base_%date%.zip" "D:\1C_Bases\TradeAndWarehouse\" -xr!*.cdx
Важное замечание: При создании архива файловой базы стандартными архиваторами во время активной работы пользователей существует риск получить нецелостный архив. Рекомендуется запускать резервное копирование во время перерывов или использовать службу теневого копирования тома (VSS).
Если требуется получать именно штатный файл выгрузки данных (.zip из Конфигуратора), можно настроить запуск платформы в пакетном режиме через скрипт. В этом случае скрипт запускается с учетными данными служебного администратора, не раскрывая пароль пользователю.
Пример команды для пакетного запуска 1С 7.7 в режиме Конфигуратора:
1cv7.exe CONFIG /D"D:\1C_Bases\TradeAndWarehouse\" /N"AdminService" /P"SecretPassword" /@C:\Scripts\unload.bat
Где файл команд unload.bat содержит инструкцию для платформы:
[Unload]
UnloadData=D:\Backups\base_dump.zip
Если выгрузка базы требуется не для резервного копирования, а для передачи оперативных данных или анализа на другом ПК, правильным решением будет использование внешних обработок выгрузки в формате XML или текстового файла. В этом случае пользователь работает исключительно в режиме «1С:Предприятие» в рамках выданных ему ограниченных прав, не затрагивая параметры конфигуратора.
Для корректного решения задачи выполняем следующие шаги:
Право смены рабочей даты и ограничиваем доступ к константам закрытия периода.