Форум 1С
Программистам, бухгалтерам, администраторам, пользователям
Задай вопрос - получи решение проблемы
22 ноя 2024, 10:47

ограничение доступа

Автор gmax007, 11 янв 2012, 01:58

0 Пользователей и 1 гость просматривают эту тему.

gmax007

Здравствуйте. У меня возникла необходимость в 8.2 создать виртуальный склад. то есть склад с которого нельзя продовать, отргружать и тп. На него оприходуется товар который еще не приехал, но его уже покупают. предоплачивают и когда товар приезжает его нужно перемещать на фичиский склад с которого уже отгружается. то есть я так понимаю нужно запретить реализацию и т.п документы по определенному складу. А также нужно чтобы доступ к этому складу был допустим только у 5 сотрудников компании.
Помогите пожалуйста, как проще это сделать. Если можно поподробнее где и как, я начинающий. раньше с 7 работал, там проще.

sergeevds

Проще это да, но после 8-х инструментов в 7-ке снова работать так не хочется...
Я бы на твоем месте создал новую подписку на события, кинул в нее все документы, в которых мне надо запретить проводки по этому складу, а тип события "ПередЗаписью" и процедуру туда свою из общего модуля, у нее параметры будут (Источник,Отказ)
В Источнике находишь склад, проверяешь, равен ли он твоему, если не доступны необходимые роли пользователей тогда отказ.

gmax007

смысл понимаю а как это делать не очень. процедуру как и чо делать не знаю

sergeevds

Создаешь новую подписку на событие, в ней поставь источниками все документы, на которые ты хочешь ограничить доступ по твоему фиктивному складу (поступление, реализация и т.д.). А процедуру поставть, которую сам напишешь в общем модуле, например, у тебя есть общий модуль "ОбработчикСобытий", в нем ты создашь процедуру "ПроверитьНаСкладИсключения(Источник,Отказ)", тогда в твоей подписке процедуру надо будет выставить: ОбработчикСобытий.ПроверитьНаСкладИсключения.
А в тексте процедуры из источника как из ДокументОбъект (или ссылка, это уже смотря что ты поставишь в подписке) берешь склад, или как там называется реквизит, где держиться склад и смотришь не равен ли он твоему фиктивному складу. Если равен, тогда тебе надо отсеить пользователей, у которых нет права изменять его. Тут уже вариантов - хоть жопой жри. Я бы просто поставил роль, т.е. ЕслирольДоступна("ИмяРоли"), но у меня просто в базе все роли расписаны, а если у тебя она одна, то предлагаю смотреть по имени пользователя, т.е. ПараметрыСеанса.ТекущийПользователь = или не равно, это уже тебе решать.

gmax007

спасибо , буду пытаться

Теги:

Похожие темы (5)

Рейтинг@Mail.ru

Поиск