При работе с распределенными информационными базами (РИБ) в конфигурации 1С:Розница 2.0 часто возникает ситуация, когда в магазине присутствуют только линейные сотрудники (кассиры или товароведы), которым необходимо запустить обмен данными вручную. Однако по умолчанию доступ к разделу Настройка и администрирование и командам синхронизации жестко ограничен ролью ПолныеПрава. Давать кассиру права администратора — грубое нарушение безопасности. Разберем, как решить эту задачу штатным функционалом и небольшими хитростями настройки интерфейса.
Многие технические специалисты начинают с создания нового профиля групп доступа, отмечая в нем все роли, связанные с обменом данными, такие как ВыполнениеСинхронизацииДанных или ЧтениеУзловИнформационныхБаз. Проблема заключается в том, что интерфейсная часть (командный интерфейс) раздела администрирования в типовых конфигурациях на базе БСП скрыта на уровне программного кода или настроек метаданных для всех, кроме администраторов. Даже имея права на сами объекты, пользователь просто не видит кнопку вызова формы обмена. Рассмотрим наиболее эффективные способы обхода этого ограничения.
Этот метод является наиболее безопасным и не требует внесения изменений в конфигурацию. Мы воспользуемся возможностью платформы 1С:Предприятие 8.3 открывать формы по навигационным ссылкам. Проанализируем последовательность действий:
Выполнение синхронизации данных. Без этой роли система выдаст ошибку нарушения прав при попытке запуска процесса.e1cib/app/ОбщаяФорма.СинхронизацияДанных.Enter.Если нет возможности передавать ссылки, можно воспользоваться "административным маневром". Этот способ часто используется системными администраторами при массовой настройке рабочих мест.
Для более продвинутых случаев, когда требуется не просто запустить синхронизацию, а выполнить определенный сценарий, рассмотрим вариант с использованием объекта СценарииОбменаДанными.
Разберем этот метод подробнее:
Администратор может заранее создать сценарий обмена, в котором прописаны конкретные узлы и настройки. После этого создается группа доступа с профилем, содержащим права на Обмен данными. Основная сложность — вывести форму запуска сценария. Как и в первом способе, мы можем использовать прямую ссылку на форму сценария, добавив ее в Избранное кассиру. Это позволит пользователю одной кнопкой инициировать сложный процесс выгрузки и загрузки без возможности случайно изменить настройки самой синхронизации.
Проанализируем ситуацию глубже. Для того чтобы синхронизация проходила без ошибок под правами обычного пользователя, недостаточно одной лишь роли на выполнение обмена. На основе опыта работы с БСП (Библиотекой стандартных подсистем), рекомендуем обратить внимание на следующие моменты:
Просмотр журнала регистрации, система может заблокировать выполнение фонового задания обмена или выдать ошибку доступа.RLS по магазинам, убедитесь, что кассир имеет права на чтение всех объектов, которые должны уйти в обмен. В противном случае может возникнуть ситуация "частичного обмена", когда данные, к которым у кассира нет доступа, просто не попадут в пакет выгрузки.Состояния обмена данными. Это позволит ему видеть на рабочем столе информацию о том, когда прошел последний успешный обмен, не заходя в глубокие настройки.Рассмотрим альтернативный подход. Зачем заставлять кассира нажимать кнопки, если можно автоматизировать процесс? В 1С:Розница 2.0 рекомендуется настраивать Регламентные задания. Если база работает в клиент-серверном варианте, обмен будет идти сам по расписанию под учетной записью сервера. Если же база файловая, можно настроить автоматический запуск обмена при старте или завершении работы программы. Это полностью снимет вопрос прав доступа к интерфейсу синхронизации.
Для реализации автоматического обмена при выходе можно использовать следующий подход в коде (если вы готовы к небольшому конфигурированию):
// В модуле управляемого приложения
Процедура ПередЗавершениемРаботыСистемы(Отказ)
// Код для инициации фонового обмена данными
// с использованием стандартных процедур БСП
ОбменДаннымиСервер.ВыполнитьОбменДаннымиДляВсехНастроек(Истина);
КонецПроцедуры
Мы рассмотрели несколько путей решения проблемы доступа к синхронизации. Самым простым и эффективным для "типовой" эксплуатации без программирования является комбинация специального профиля доступа и прямой ссылки в Избранном. Это сохраняет целостность системы безопасности и предоставляет пользователю удобный инструмент для выполнения его обязанностей. Помните, что безопасность информационной системы строится на принципе минимально необходимых полномочий, и данные методы полностью соответствуют этому принципу.