Доступ, действия, печать

процессе работы с 1С я придумал три классных настройки, которые работают на одинаковом принципе. Доступ - позволяет назначать права доступа к обЪектам (открытие, запись, проведение). Действия - позволяет назначать список действий, которые можно применить к обЪекту. Печать - позволяет назначить список печатных форм для обЪекта. Все настройки хранятся в файлах mxl (access, actions, prints). Это позволяет, только один раз произведя настройку конфигурации, в дальнейшем оперативно редактируя mxl-файл (без замены конфигурации), назначать права доступа, список действий и спецефические печатные формы обЪектов.

Доступ, действия, печать

Оснастите свою базу тремя классными Plug-In

В процессе работы с 1С я придумал три классных настройки, которые работают на одинаковом принципе.
Доступ - позволяет назначать права доступа к обЪектам (открытие, запись, проведение).
Действия - позволяет назначать список действий, которые можно применить к обЪекту.
Печать - позволяет назначить список печатных форм для обЪекта.
Все настройки хранятся в файлах mxl (access, actions, prints). Это позволяет, только один раз произведя настройку конфигурации, в дальнейшем оперативно редактируя mxl-файл (без замены конфигурации), назначать права доступа, список действий и спецефические печатные формы обЪектов.
Вмешательства в конфигурацию обозримы - добавляется код в глобальный модуль и одна глобальная переменная + один внешний отчет. Для контроля доступа в функции ПриЗаписи, ПриПроведении, ПриОткрытии всех контролируемых обЪектов добавляется вызов функции контроля (только один раз).

Как это работает?

Компонента Доступ позволяет записывать права доступа на языке 1С в таблице access.mxl в каталоге ИБ:

Наименование Правило Тип обЪекта фл
Открытие
фл
Запись
фл
Проведение
Активен
В базе магазина коды должны быть до 20000 (Число(Конт.Код)>=0) И (Число(Конт.Код) Справочник.Номенклатура 0 1 0 1
Нельзя смотреть эту накладную СокрЛП(Конт.НомерДок)"МПО-000003" Документ.* 1 1 1 1
Нельзя записать документ задним числом! (Конт.ДатаДок>=ТекущаяДата()) ИЛИ
( (НазваниеНабораПрав()="Бухгалтер") И (Конт.ДатаДок>=ТекущаяДата()-1000) ) ИЛИ
( (НазваниеНабораПрав()="Администратор") ) ИЛИ
( (НазваниеНабораПрав()="Оператор") И (Конт.Проведен()=0) И (Конт.ДатаДок>=ТекущаяДата()-10) )
ИЛИ
( (НазваниеНабораПрав()="Оператор") И (Конт.Проведен()=1) И (глВид(Конт)="Документ.РасходнаяНакладная") И (Конт.ДатаДок>=ТекущаяДата()-10) ) ИЛИ
( (ИмяПользователя()="Товаровед") И (Конт.ДатаДок>=ТекущаяДата()-2) )
Документ.* 0 1 1 1

В колонке ТипОбЪекта указывается тип обЪекта, к которому применять контроль доступа "Справочник.XXX" или "Документ.XXX", где XXX - конкретный вид обЪекта, или * для обЪекта любого вида.
Если результат вычисления правила - ИСТИНА, то доступ на запись, открытие или проведение разрешается, в противном случае выдается предупреждение, указанное в поле Наименование и действие отменяется.
Колонка Активен позволяет отключить контроль, указав 0.

Компонента Действия позволяет описать список действий, которые можно выполнить с обЪектом. Затем на форме обЪекта размещается кнопка "Действия", при нажатии на которую предлагается выбрать действие с обЪектом:

1sactions.gif (2853 bytes)

Список действий описывается также в таблице actions.mxl в каталоге ИБ:

Наименование Правило Тип обЪекта Путь Параметры Активен
Ввести/открыть счет фактуру Документ.РасходнаяНакладная ВвестиСчетФактура 1
Приход=Розница (Цена, Сумма) Документ.ПриходнаяНакладная УстановитьПрих=Розн 1
Остатки товаров ТорговыеОтчеты ОстаткиТоваров 1
При запуске 1С Автозагрузка ПриЗапуске 1

При нажатии на кнопку по контексту автоматически определяется тип обЪекта. Можно при нажатии на кнопку явно указывать тип - это полезно для организации меню (третья строка).
В колонке ТипОбЪекта указывается тип обЪекта, к которому применять контроль доступа "Справочник.XXX" или "Документ.XXX", где XXX - конкретный вид обЪекта, или * для обЪекта любого вида.
Действие добавляется только если результат вычисления правила - ИСТИНА или оно не задано вообще.
Колонка Активен позволяет отключить действие, указав 0.
Путь указывает на отчет/обработку (внутреннюю или внешнюю), которая должна вызываться при выборе действия. В эту обработку в качестве параметра Контекст.Форма передается таблица значений, в которой указан контекст обЪекта, из которого произошел вызов, и параметры из колонки Параметры.
Параметры - это список значений, разделенных запятыми. Строки заключаются в кавычки. Значения указываются парами, например: "НДС",0,"Устанавливать",0,"Режим","Общ". Параметры позволяют использовать одну обработку для разных действий.

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

1sprints.gif (1880 bytes)

Список форм описывается в таблице prints.mxl в каталоге ИБ:

Наименование Правило Тип обЪекта Путь Параметры Активен
Без розницы Документ.ПриходнаяНакладная ПечатьПриходнаяНакладная "ШтрихКод",1,"Прих",1, "Розн",-1, "Наценка",-1, "НДС",1 1
Заявка на инвентаризацию Документ.Инвентаризация ПечатьИнвентаризация "ШтрихКод",1 1
В зал Документ.ПриходнаяНакладная ПечатьПриходнаяНакладная "ШтрихКод",1,"Прих",-1, "Розн",1, "Наценка",-1, "СуммаНакладной",-1 1

При нажатии на кнопку по контексту автоматически определяется тип обЪекта.
В колонке ТипОбЪекта указывается тип обЪекта, к которому применять контроль доступа "Справочник.XXX" или "Документ.XXX", где XXX - конкретный вид обЪекта, или * для обЪекта любого вида.
Действие добавляется только если результат вычисления правила - ИСТИНА или оно не задано вообще.
Колонка Активен позволяет отключить форму, указав 0.
Путь указывает на отчет/обработку (внутреннюю или внешнюю), которая должна вызываться при выборе действия. В эту обработку в качестве параметра Контекст.Форма передается таблица значений, в которой указан контекст обЪекта, из которого произошел вызов, и параметры из колонки Параметры.
Параметры - это список значений, разделенных запятыми. Строки заключаются в кавычки. Значения указываются парами, например: "НДС",0,"Устанавливать",0,"Режим","Общ". Параметры позволяют использовать одну обработку для разных действий. Параметры можно анализировать по-разному, в примерах указано 1 для вывода колонки, -1 для отключения вывода.

Что делать дальше?

Для работы требуются функции KOENIGSOFT, внешний отчет по подлючению этих компонент и образцы отчетов (действия/распечатка), инструкция по установке. Все это можно скачать на сайте автора в разделе РАЗРАБОТКИ.(пока еще не выложено, изучается спрос). Некое представление можно получить по функциям KOENIGSOFT.

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

(С) Осипов Сергей, Калининград, 2001 год

Комментарии

5
  • Хранитель_врат
    А не подскажет ли Klerk.ru, какую практическую пользу должны извлечь читатели из данного опуса?
  • Хранитель_врат
    А вообще зачем это ? При бооольшом желании добраться к чему либо в 1С конфигурации не проблема
    По-моему то что придумал автор это от безделия на работе. Если б у него было хотя бы 5 крупных клиентов со своей спецификой учета и их надо было перевести на новый план счетов в сжатые сроки, извиняюсь
    херней страдать было бы некогда