Содержание:
1. Постановка задачи – ограничение доступа к учету остатков товара на складе
2. Решение задачи – работа в ИБ
1. Постановка задачи – ограничение доступа к учету остатков товара на складе
В конфигурации 1С "Управление нашей фирмой 1.6" не реализовано ограничение прав на уровне записей по "Структурным единицам" (склады и подразделения). Такая возможность все чаще становится востребованной, поэтому в данной статье я расскажу, как реализовать такое ограничение на примере конкретной задачи.
Итак, организация осуществляет розничную и оптовую торговлю через несколько торговых точек и складов. Все сотрудники работают в одной информационной базе. Между складами и торговыми точками также происходит перемещение товаров. Требуется ограничить влияние на учет остатков товаров на складе сотрудников других складов.
2. Решение задачи – работа в ИБ
Для того чтобы получить возможность использовать в отборе видов доступа значения справочника "Структурные единицы", необходимо расширить определяемый тип "ЗначениеДоступа", включив в него тип "СправочникСсылка.СтруктурныеЕдиницы" (1).
Рис. 1 Расширение определяемого типа в 1С 8 УНФ
Также для корректной работы механизма управления доступом, необходимо расширить определяемый тип "ЗначениеДоступаОбъект", включив в него тип "СправочникОбъект.СтруктурныеЕдиницы" (2).
Следующим этапом в процедуре "ПриЗаполненииВидовДоступа" общего модуля "УправлениеДоступомПереопределяемый" необходимо добавить новый вид доступа "Структурные единицы" в 1С УНФ 1.6. Сделать это лучше через расширение. Получим такой код:
Рис. 2 Код для расширения типа в 1С 8 УНФ
На этом этапе нужно сохранить и обновить конфигурацию 1С:Управление нашей формой 8, запустить работу ИБ в режиме "Предприятие" и выполнить код (с помощью обработки): "УправлениеДоступомСлужебный.ОбновитьОписаниеСвойствВидовДоступа();". Завершаем работу в ИБ.
Далее нам необходимо добавить в поставляемые профили групп доступа "Закупки", "Продажи", "Производство" созданный ранее вид доступа "Структурные единицы". Делается это путем доработки через расширение процедуры "ПриЗаполненииПоставляемыхПрофилейГруппДоступа" общего модуля "УправлениеДоступомПереопределяемый". Получим такой код:
Рис. 3 Код расширения процедуры в 1С 8 УНФ
Также сохраняем и обновляем конфигурацию, запускаем ИБ в режиме "Предприятие" и выполняем код (с помощью обработки): "Справочники.ПрофилиГруппДоступа.ОбновитьОписаниеПоставляемыхПрофилей();". Завершаем работу в ИБ и запускаем ее в режиме "Предприятие" вновь.
В 1С:Управление нашей фирмой 8.3 открываем справочник "Профили групп доступа", находим в нем элемент "Закупки" и открываем его форму.
Рис. 4 Справочник Профили групп доступа в 1С 8 УНФ
На ней мы видим сообщение (1) о том, что в поставляемый профиль были внесены изменения. Чтобы привести настройку профиля в соответствие с описанием поставляемого профиля в 1С 8 УНФ, необходимо выполнить команду "Восстановить по начальному заполнению" (3). Далее последовательно появятся два диалоговых окна, где необходимо нажать кнопку "Да".
Рис. 5 Восстановление профиля по начальному заполнению в 1С 8 УНФ
После чего в списке "Ограничения доступа" появится вид доступа "Структурные единицы".
Рис. 6 Вид доступа Структурные единицы в 1С 8 УНФ
Указанные действия необходимо проделать с профилями групп доступа "Продажи" и "Производство".
Далее составим перечень документов, изменение которых мы хотим ограничить, с контролем доступности на складе:
· ПриходнаяНакладная;
· РасходнаяНакладная;
· ПеремещениеЗапасов;
· ИнвентаризацияЗапасов;
· ОприходованиеЗапасов;
· ПересортицаЗапасов;
· СписаниеЗапасов;
· СборкаЗапасов;
· ОтчетОРозничныхПродажах;
· ЧекККМ;
· ЧекККМВозврат.
Поместим эти документы в расширение.
Далее через контекстное меню "Все роли" определяем состав ролей, которые имеют право на "Добавление" и "Изменение" указанных документов для доступа на склад:
· ДобавлениеИзменениеВозвратовОтПокупателей;
· ДобавлениеИзменениеВозвратовПоставщикам;
· ДобавлениеИзменениеПеремещенийЗапасов;
· ДобавлениеИзменениеПодсистемыЗакупки;
· ДобавлениеИзменениеПодсистемыЗапасыИСклад;
· ДобавлениеИзменениеПодсистемыИзлишкиИНедостачи;
· ДобавлениеИзменениеПодсистемыПродажи;
· ДобавлениеИзменениеПодсистемыПроизводство;
· ДобавлениеИзменениеПодсистемыРозничныеПродажи.
Эти роли также поместим в расширение в 1С УНФ 1.6.
Далее в расширении будем поочередно для выбранной роли и документа (при условии, что в основной конфигурации у роли установлены права "Чтение", "Добавление", "Изменение" на документ) устанавливать права следующим образом (на примере документа "Расходная накладная"):
· "Чтение"
· Скопируем текст ограничения доступа из основной конфигурации, его изменять не будем;
Рис. 7 Вид доступа Чтение в 1С 8 УНФ
· "Добавление"
· Скопируем текст ограничения доступа из основной конфигурации и изменим его так, чтобы обрабатывалось ограничение по структурной единице:
Рис. 8 Вид доступа Добавление в 1С 8 УНФ
· "Изменение"
· Скопируем текст ограничения доступа из основной конфигурации и изменим его так, чтобы обрабатывалось ограничение по структурной единице:
Рис. 9 Вид доступа Добавление в 1С 8 УНФ
В работе с документом "Перемещение запасов" есть сложность – он оперирует остатками товара сразу на двух складах. Допустим, что создать не проведенный документ может тот, кому доступны операции на складе-отправителе, а провести документ может тот, кому доступны операции на складе-получателе. Тогда текст ограничения доступа для документа "Перемещение запасов" будет выглядеть следующим образом:
· "Добавление"
Рис. 10 Добавление в Перемещении остатков в 1С 8 УНФ
· "Изменение"
Рис. 11 Изменение в Перемещении остатков в 1С 8 УНФ
В обоих текстах, в отличие от основной конфигурации, используется шаблон ограничения "ПоЗначениямРасширенный". Поэтому надо убедиться в его наличии у редактируемой роли, в противном случае создать его, позаимствовав текст из роли, где он присутствует.
Результирующий состав расширения:
Рис. 12 Результирующий состав расширения в 1С 8 УНФ
На этом работы завершены и дело только за настройкой ограничений 1С:Управление нашей фирмой 1.6 в режиме "Предприятие".
Используя расширение нам удалось свести к минимуму вмешательство в основную конфигурацию, тем самым сведя к минимум трудозатраты на ее последующее обновление с сохранением нашего доработанного функционала.
Специалист компании «Кодерлайн»
Павел Коротин