Доступ, действия, печать
Оснастите свою базу тремя классными 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.
Компонента Действия позволяет описать список действий, которые можно выполнить с обЪектом. Затем на форме обЪекта размещается кнопка "Действия", при нажатии на которую предлагается выбрать действие с обЪектом:
Список действий описывается также в таблице actions.mxl в каталоге ИБ:
Наименование | Правило | Тип обЪекта | Путь | Параметры | Активен |
Ввести/открыть счет фактуру | Документ.РасходнаяНакладная | ВвестиСчетФактура | 1 | ||
Приход=Розница (Цена, Сумма) | Документ.ПриходнаяНакладная | УстановитьПрих=Розн | 1 | ||
Остатки товаров | ТорговыеОтчеты | ОстаткиТоваров | 1 | ||
При запуске 1С | Автозагрузка | ПриЗапуске | 1 |
При нажатии на кнопку по контексту автоматически
определяется тип обЪекта. Можно при нажатии на
кнопку явно указывать тип - это полезно для
организации меню (третья строка).
В колонке ТипОбЪекта указывается тип обЪекта, к
которому применять контроль доступа "Справочник.XXX"
или "Документ.XXX", где XXX - конкретный вид
обЪекта, или * для обЪекта любого вида.
Действие добавляется только если результат
вычисления правила - ИСТИНА или оно не задано
вообще.
Колонка Активен позволяет отключить действие,
указав 0.
Путь указывает на отчет/обработку (внутреннюю
или внешнюю), которая должна вызываться при
выборе действия. В эту обработку в качестве
параметра Контекст.Форма передается таблица
значений, в которой указан контекст обЪекта, из
которого произошел вызов, и параметры из колонки
Параметры.
Параметры - это список значений, разделенных
запятыми. Строки заключаются в кавычки. Значения
указываются парами, например: "НДС",0,"Устанавливать",0,"Режим","Общ".
Параметры позволяют использовать одну обработку
для разных действий.
Компонента Печать позволяет описать список печатных форм обЪекта. Затем на форме обЪекта размещается кнопка "Печать", при нажатии на которую предлагается выбрать действие с обЪектом:
Список форм описывается в таблице 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По-моему то что придумал автор это от безделия на работе. Если б у него было хотя бы 5 крупных клиентов со своей спецификой учета и их надо было перевести на новый план счетов в сжатые сроки, извиняюсь
херней страдать было бы некогда