1с как запустить обработку под полными правами

Обновлено: 06.07.2024

Верить нельзя никому, даже себе!
.
Против лома нет приема!
.
Для любой хитрой сущности первого рода
есть сущность второго рода с винтом!
….
(три источника, три составных части
развития любой системы безопасности).

Описание проблемы:

Часто случается так, что в базе работают пользователи с полными правами, но имеют при этом «кривоватые руки». Иногда это бывают влиятельные «ответственные» лица, имеющие достаточно влияния, чтобы под благовидным предлогом «отжать» себе полные права. При этом отобрать у них полные права назад бывает нереально. Иногда это бывает из-за определенной неразберихи в системе прав, либо при начальном этапе внедрения, либо обусловленной сложившимися бизнес-процессами.

Не всегда такие пользователи ответственно относятся к своей работе. И хорошо при этом, что они по незнанию не могут натворить ничего плохого в базе. Хуже, когда кто-то из них узнает о потенциально опасных инструментах (вроде групповых обработок) и начинает жать на «Выполнить», не осознавая в полной мере последствий своих действий.

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

Предлагаемое решение:

К сожалению, в подтверждение к сказанному в эпиграфе к статье, полного и окончательного решения обсуждаемой проблемы нет. Можно предлагать лишь меры частного характера, действующие при определенных условиях и до определенной степени хитрости «сущностей первого рода».

Например, решить озвученную задачу можно методом «умножения»:

1) Создадим второй набор «полных» прав и обзовем его, допустим, роль “SA” (super-administrator) .

2) В какой-нибудь удобный общий серверный модуль добавим экспортную функцию
для усиленной проверки полного доступа к базе вроде следующей:

3) С помощью указанной выше функции перед открытием форм или выполнением команд, имеющих критическое значение, проверяем наличие супер-прав и отказываем в доступе при их отсутствии.


Узкие места предлагаемого решения:

Помимо необходимости внесения изменения в конфигурацию базы, основным недостатком предлагаемого решения является то, что пользователь с «простыми» полными правами может сам себе назначить роль “SA” .

Для этого в 1С есть две стандартных возможности:

  1. Непосредственно в конфигураторе;
  2. Типовые средства управления правами в пользовательском режиме;

Допустим, средствами администрирования операционной системы (через публикацию нужных ярлыков) в конфигуратор 1С запрещено заходить, кому не следует. Тогда нам остается запретить доступ к роли “SA” через средства управления правами типовой конфигурации.

Для реализации этого запрета нужно исключить набор прав “SA” из списков ролей, предлагаемых для выбора типовыми средствами управления правами. Также нужно исключить обработку роли “SA” в тех местах кода конфигурации, где фактически изменяются права пользователей (чтобы не сбросить доступ к роли “SA” , установленный в конфигураторе).

Сделать это достаточно просто, конкретная реализация зависит от конфигурации базы.
Пример реализации запрета для конфигураций «родственных» УТ-11.1 приведен ниже.


Но это еще не все:
Пользователь с «простыми» полными правами может запустить внешнюю обработку, например, какую-нибудь консоль кода,
и с ее помощью назначить себе нужные права, выполнив простенький код:

Чтобы заткнуть эту дырку, потребуется подрезать «простые» полные права:

  1. Запретить для "простых" полных прав запуск внешних отчетов и обработо;
  2. Также запретить публикацию внешних отчетов и обработок в справочнике «Дополнительные отчеты и обработки»;


Но и это еще не все (и продолжать можно до бесконечности):

Работающий пример реализации запрета доступа к роли “ SA ” :

Конфигурация «Управление торговлей, релиз 11.1.9.70» (версия БСП: 2.2.3.44).
Права пользователям задаются в профилях безопасности.

Для запрета доступа к роли “SA” типовыми средствами нужно сделать несколько вставок (выделены авторскими комментариями //+yuraos ) в следующие места исполняемого кода конфигурации:

Программы 1С можно дорабатывать через Конфигуратор. В таких случаях немного осложняется обновление конфигурации.

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

Внешние обработки можно подключить в 1С в список дополнительных отчетов и обработок и разместить в нужном для себя разделе.

Но не все обработки поддерживают такую функцию, также бывает, что обработку нужно открыть разово или использовать редко. В таких случаях используется интерактивное открытие обработки и тогда часто выходит ошибка «Нарушение прав доступа».


Разберем, почему происходит такая ситуация в 1С 8.3, и как ее решить.

Как открыть обработку интерактивно

При интерактивном открытии обработки ее не нужно никуда подключать. Достаточно зайти в раздел «Сервис и настройки — Файл — Открыть» или нажать CTRL + O на клавиатуре.

Получите понятные самоучители по 1С бесплатно:


Затем выбираем саму обработку. В этот момент и выходит ошибка.

Для исправления ошибки назначим пользователю роль, которая позволяет открывать обработки интерактивно. Роль так и называется — Интерактивное открытие внешних отчетов и обработок. Отметим, что эту роль нужно назначить даже пользователю с полными правами.

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

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

Профиль для открытия внешних обработок

Зайдем в меню «Администрирование — Настройки программы — Настройки пользователей и прав».


Раскроем раздел «Группы доступа» и перейдем по ссылке «Профили групп доступа».


Нужный профиль в программе уже создан и называется «Открытие внешних отчетов и обработок».


Откроем его и увидим, что в нем содержится единственная роль «Интерактивное открытие внешних отчетов и обработок».


Как назначить профиль пользователю

В том же разделе, где находится профиль групп доступа, откроем справочник «Пользователи».


Выберем пользователя, которому нужно назначить профиль. Перейдем по ссылке «Права доступа». Ставим флажок для пункта «Открытие внешних отчетов и обработок» и нажмем «Записать» для сохранения настроек.


Обязательно закрываем 1С и запускаем заново. Открываем обработку и ошибки больше не будет.

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

Общая схема системы прав доступа подразумевает:

  1. Создание ролей для доступа к объектам отдельно для чтения и для записи.
  2. Объединение ролей в профили (в том числе поставляемые).
  3. Назначение профилей группам доступа с ограничением доступа по видам доступа.
  4. Добавление в группы доступа пользователей и групп пользователей.


Такой механизм обладает гибкостью и универсальностью. Это позволяет его достаточно широко применять. Однако непосредственное использование этого механизма громоздко и трудоемко.

Во время работы пользователя в базе 1С при попытке выполнить действие (на которое у него нет разрешения) система выдаст окно предупреждения, примерно такого вида:


Если открыть журнал регистрации по пользователю, то можно увидеть объект и недостающее право в событии «Доступ. Отказ в доступе». Например, отсутствие права на чтение константы, как на рисунке ниже:


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

В большинстве случаев (но не во всех) для этого достаточно выполнить следующие шаги:

1. Найти роли, дающие права на объект, в регистре сведений Права ролей

Перейти в меню - Все функции - Регистры сведений - Права ролей (или перейти по навигационной ссылке e1cib/list/РегистрСведений.ПраваРолей)

Примечание: Пункт Все функции, можно включить так: Переходим в меню - Настройки - Параметры - Отображать команду "Все функции"


Регистр типовой, наполнен объектами метаданных и ролями, которые дают на них права.


Выполняем поиск по интересующему нас объекту (документу, отчету, регистру, обработке и т.п.).

Получаем список задействованных ролей (как на рисунке выше с документом Авансовый отчет):

  • Добавление изменение авансовых отчетов (роль)
  • Чтение авансовых отчетов (роль)

Открываем справочник Профилей, это можно сделать так:

  • Переходим в меню - Все функции - Справочники - Профили групп доступа
  • Раздел - НСИ и администрирование - Настройки пользователей и прав - Профили групп доступа
  • Или перейти по навигационной ссылке e1cib/list/Справочник.ПрофилиГруппДоступа

Чтобы определить подходящие профили, добавляем отбор на форму списка

Ещё - Настроить список - Закладка Отбор - Добавляем отбор по полю табличной части Ссылка.Роли.Роль


После этого можно удобно вычислить нужные профили, например, с ролью Чтение авансовых отчетов.

Примечание: Предварительно установите в списке Ещё - Режим просмотра - Список (чтобы убрать группы)


Если нужных профилей не оказалось, то создайте новый профиль или измените существующий.

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

3. Назначить пользователю группу доступа по профилю

Определив нужный профиль доступа, вам необходимо в связанную с ним группу доступа, добавить пользователя.

Группы доступа видны по ссылке в форме Профиля


Если нужной группы доступа нет, то создаем ее.

Открыв связанную с профилем группу доступа, добавляем в неё пользователя


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

Сам процесс можно ускорить соединив все шаги: 1,2,3 - в одном отчете или расширении.

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

Схема запроса для системы компоновки примерно такая:

Таблицу РегистрСведений.ПраваРолей (Отбор: Объект метаданных) связываем по Роли с таблицей Справочник. ПрофилиГруппДоступа.Роли связываем по реквизиту с таблицей Справочник. ГруппыДоступа.Профиль.


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


Вообще можно настраивать как угодно отчет.

Также можно сформировать, например Матрицу Пользователей (кто в какой группе доступа). Перейти в Настройки, где поставить в строках Пользователей, в колонка Профили, в ресурсах Чтение


Открываем 1С:Предприятие - Разделы - НСИ и администрирование - Печатные формы, отчеты и обработки - Дополнительные отчеты и обработки - Добавляем отчет (или перейти по навигационной ссылке e1cib/list/Справочник.ДополнительныеОтчетыИОбработки)

  • Отчет тот же самый добавляем в расширение.
  • Интересным моментом оказалось как динамически вызвать отчет в большинстве форм объектов, максимально просто.

Я выбрал следующий способ:

Почти в каждом модуле формы есть событие ПриСозданииНаСервере(. ), в нем вызывается общее событие СобытияФорм.ПриСозданииНаСервере(. )


а далее в нем событие переопределяемого модуля


именно это событие МодификацияКонфигурацииПереопределяемый.ПриСозданииНаСервере() я перетащил в расширение с ключом выполнения "&После"

чтобы вызвать отчет в процедуре динамически вывожу снизу на форму объекта элемент формы ДекорацияФормы, в который с помощью ФорматированнойСтроки(. ) передаю навигационную ссылку на команду открытия отчета из расширения.


Далее в самой команде отчета с помощью метода АктивноеОкно() определяю форму объекта, из которой произошел запуск и формирую отчет с нужным параметром

Получилось следующее (на примере элемента справочника "Ресурсные спецификации"):

  • Гиперссылка "Права на объект" появляется в формах
  • По ее нажатию вызывается отчет "Права на объект" с указанием объекта в заголовке и отбором по типу метаданных



В отчете видно в колонках какие роли дают какие права, и в строках у кого уже есть такие права и в какую группу можно включить пользователя.

1) Переходим в меню - Настройки - Параметры - Отображать команду "Все функции"

2) Переходим в меню - Все функции - Стандартные - Управление расширениями конфигурации - Добавляем расширение


Для проверки установленных прав под пользователем воспользуйтесь обработкой Запуск 1С под любым пользователем (без необходимости указания пароля) 1С:Зарплата и управление персоналом КОРП, редакция 3.1 (3.1.10.78) - будет работать 1С:Комплексная автоматизация, 1С: Управление торговлей и др, т.к. регистр сведений Права ролей есть почти в каждом прикладном решении. - для других конфигураций можно быстро модифицировать.

Обработка выгрузки и загрузки данных через XML между идентичными конфигурациями с возможностью установки произвольных отборов на выгружаемые объекты.

Подключаемый отчет на системе компоновки данных по типам объектов 1С показывает: 1) Совокупности таблиц SQL для хранения объекта 1С и их предназначение; 2) Число объектов данного типа; 3) Размеры хранения данных и индексов в MB (мегабайтах); 4) Сравнение данных двух баз

Предназначается для запуска сеанса другого пользователя из своего сеанса 1С (если пароль вам неизвестен).

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

Онлайн диаграмма доступных лицензий 1С и показателей ресурсов сервера 1С в различных измерениях и отборах.

Обработка ищет все объекты базы, в которых одновременно присутствуют перечисленные элементы. Построена на базе типовой обработки Все функции - Стандартные - Поиск ссылок на объект, но позволяет накладывать отбор не по одному объекту, а по нескольким, что позволяет настраивать поиск по комбинациям условий

Часто не хватает визуализации хронологии документов в структуре подчиненности и кнопок проведения. Это расширение конфигурации, с функционалом структуры подчиненности документов, отображающее хронологическую последовательность документов во времени и дающее доступ к проведению, отмене проведения, пометке на удаление документов непосредственно в форме подчиненности.

Обработка для массовой проверки доработок конфигурации: Открытие форм, Печать, Формирование отчетов, Проведение документов, Запись справочников, ПВХ, ПВР. Выдает список обнаруженных ошибок. Рекомендуется применять для тестирования обновленной конфигурации, перед установкой пользователям. В коде используются универсальные методы поэтому подходит для большинства конфигураций, построенных на базе библиотеки стандартных подсистем.

Групповая обработка ссылок вида Объект не найден (502:37855254002e11eb11e73b8f36150d9e) заполняется максимально просто копированием и вставкой из буфера: 1) Выделяет уникальные идентификаторы (далее УИ); 2) Ищет ссылки на объекты базы по УИ; 3) Создаёт пустые объекты с указанным УИ; 4) Регистрирует найденные ссылки для обмена данными. Работает на любых продуктах 8.3

Обработка на управляемых формах для работы с календарями google, событиями календарей и контактами.

Обработка проверяет наличие и решает проблему с ошибкой развернутого сальдо в Оборотно-сальдовой ведомости (регистр бухгалтерии Хозрасчетный) из-за ошибки Универсального редактора реквизитов или кода программиста, устанавливающего пустые ссылки в значениях Валюты, Подразделения, Направления деятельности не равными NULL. И пересчёт итогов тут точно не поможет.

Выполнил 3 разных теста для проверки серверного оборудования (тест 1С, тесты gilev) на возможное число 1С онлайн-пользователей одновременно работающих на нем и интерпретировал результаты тестов через легких, средних и тяжелых пользователей с помощью таблицы с профилями реальных пользователей.

Перед началом проекта требуется определить параметры серверного и клиентского оборудования, необходимые для работы внедряемой программы 1С:Предприятие, и учесть будущую нагрузку, которая ляжет на систему в реальной рабочей обстановке. Мощность оборудования должна быть достаточной для нормальной работы пользователей. Но как подобрать сервер простым способом?

На время сеанса отключаем контроль остатков и проверку документов в ERP, КА, УТ типовыми средствами и простым расширением.

Часто при моделировании примеров бизнес-процессов, на запуске в эксплуатацию или закрытии требуется несколько раз прогнать ситуацию с разными настройками, а для этого изменить, удалить ранее введенную цепочку документов. Дается все это с трудом. Ты уверен, что не навредишь своими действиями системе, но документы цепляют друг друга и ругаются контролями остатков, не разрешая тебе менять их в произвольном порядке.

Есть несколько удобных опций для облегчения внесения изменений.

Для уведомления пользователей программных продуктов 1С о разных событиях, в них включена подсистема «Новостной центр». Это довольно удобная штука, т.к. новостные ленты сообщают о выходе обновлений, о новостях и событиях в сфере учёта. Но можно увеличить пользу от новостной подсистемы используя её локально в рамках 1С базы. Например, внутренняя служба техподдержки или внедряющая компания может через новостную ленту оповещать пользователей информационной базы об изменениях в программе, совещаниях, проведении тестирований, заполнения нужных документов или сдача отчетов к определенной дате и т.п.

Пример технического задания для практического понимания основных разделов.

Кратко описаны основополагающие моменты при старте групповой разработки конфигурации несколькими программистами. Полезно для проектной документации как требование к разработчикам или сопровождающей компании

Ссылка на компетенции по 1С:ERP - команда со знаниями, умениями и успешными проектами.

В этой статье речь пойдет о настройке прав доступа пользователей к объектам системы 1С.

В 1С 8для управления доступа пользователей используется отдельный объект метаданных, который называется Роли.

Далее мы рассмотрим, как использовать и настраивать роли в 1С предприятие 8.3.

Обратите внимание! Эта статья написана в помощь программистам. Настройка прав в пользовательском режиме на примере 1С Бухгалтерия рассмотрена в данной статье.

Роли в метаданных

Ниже мы рассмотрим подробно каждый атрибут метаданных при настройке роли пользователя 1С 8.3.

Если вы только начинаете программировать в 1С или просто хотите систематизировать свои знания - попробуйте Школу программирования 1С нашего друга Владимира Милькина. Пошаговые и понятные уроки даже для новичка с поддержкой учителя.
Попробуйте бесплатно по ссылке >>

Общие настройки роли 1С

Если открыть объект метаданных Роль, мы можем увидеть следующую картину:

Настройка ролей

Будем рассматривать только вкладку Права.

Следует обратить внимание на галочки в нижней части:

Настройки прав на всю конфигурацию

Если открыть Роль и кликнуть на корень конфигурации, мы увидим следующие настройки:

Настройка прав на конфигурацию

Подробнее о каждом из прав на всю конфигурацию:

Настройка прав 1С на другие объекты метаданных

Роль менеджера по продажам

Права только для документов:

Только для регистров накопления и бухгалтерии

Только для обработок и отчетов:

Привилегированный режим 1С

Все, что внутри, будет выполняться без проверки прав пользователя.

Доступна ли роль 1С пользователю?

Чтобы узнать, нужно выполнить функцию РольДоступна(), передав туда название роли строкой.
Например:

Нарушение прав доступа

Такую ошибку можно увидеть, если недостаточно прав на чтение/редактирование/удаление данных. Система выдаёт вот такую ошибку:

битая ссылка

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

Для массового поиска таких ошибок подойдет статья как найти битые ссылки в базе 1С.

P.S. Если у Вас все же не получилось разобраться в ролях пользователей, Вы можете заказать услуги 1С программиста.
Видео с примером настройки прав в 1С бухгалтерии 3.0:

Другие статьи по 1С:

    (обновление 1С, резервные копии и т.д); (для пользователей)

Читайте также: