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