Запрет на изменение и перенос в другую группу номенлатуры

1. medved577 1 11.01.17 19:51 Сейчас в теме
Имеется КА 2.2.1, хотелось бы разрешить редактирование номенклатуры одному человеку - тут все понятно, другим только на просмотр - тут тоже более менее, а вот как можно запретить перенос элементов справочника в другую группу? Кто делал подобное? Может есть у кого пример реализации?
Найденные решения
13. YNik 12.01.17 21:29 Сейчас в теме
(12), В конфигураторе, в конфигурации, Общие, Подписки на события.
Перед этим в Общих модулях создаешь свой общий модуль (если еще нет своего), например МойОбщийМодуль, в нем создаешь процедуру, например:
Процедура ОбработкаЗаписиСправочникаНоменклатура (Источник, Отказ) Экспорт
   Если Не Источник.ЭтоНовый() И (Источник.Родитель <> Источник.Ссылка.Родитель) Тогда
        НельзяМенятьРодителя = ...; //условие, определяющее, кому нельзя менять родителя
        Если НельзяМенятьРодителя Тогда
            Отказ = Истина;
            Сообщить("Нет прав на изменение группы номенклатуры!");
            Возврат;
        КонецЕсли;
    КонецЕсли;
КонецПроцедуры
Показать

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

vitaminich; AlexeyPapanov; Intercititude; +3 Ответить
Остальные ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. YNik 12.01.17 05:01 Сейчас в теме
(1), делал такое в УТ 10.3, добавлял в подписку на события перед записью в справочник обработчик, в котором делал проверку:
	Если (ТипЗнч(Источник) = Тип("СправочникОбъект.Номенклатура")) И 
			Не Источник.ЭтоНовый() И (Источник.Родитель <> Источник.Ссылка.Родитель) Тогда
		НельзяМенятьРодителя = ...; //условие, определяющее, кому нельзя менять родителя
		Если НельзяМенятьРодителя Тогда
			Отказ = Истина;
			Сообщить("Нет прав на изменение группы номенклатуры!");
			Возврат;
		КонецЕсли;
	КонецЕсли;
Показать
3. medved577 1 12.01.17 14:25 Сейчас в теме
(2) Т.е. в процедуру ПриЗаписи добавить обработчик?
4. tailer2 12.01.17 14:27 Сейчас в теме
(3) перед записью
и не "в процедуру", а в подписку
6. medved577 1 12.01.17 14:43 Сейчас в теме
(4) не совсем понял - что такое "подписка" ?
8. tailer2 12.01.17 14:49 Сейчас в теме
10. medved577 1 12.01.17 15:48 Сейчас в теме
(8)А что такое "подписка" ? Это где?
11. Hallon 12.01.17 16:00 Сейчас в теме
(10) Подписка на событие имеется ввиду.
12. medved577 1 12.01.17 17:19 Сейчас в теме
(11)Я просто не очень силен еще в 8, это где находится
13. YNik 12.01.17 21:29 Сейчас в теме
(12), В конфигураторе, в конфигурации, Общие, Подписки на события.
Перед этим в Общих модулях создаешь свой общий модуль (если еще нет своего), например МойОбщийМодуль, в нем создаешь процедуру, например:
Процедура ОбработкаЗаписиСправочникаНоменклатура (Источник, Отказ) Экспорт
   Если Не Источник.ЭтоНовый() И (Источник.Родитель <> Источник.Ссылка.Родитель) Тогда
        НельзяМенятьРодителя = ...; //условие, определяющее, кому нельзя менять родителя
        Если НельзяМенятьРодителя Тогда
            Отказ = Истина;
            Сообщить("Нет прав на изменение группы номенклатуры!");
            Возврат;
        КонецЕсли;
    КонецЕсли;
КонецПроцедуры
Показать

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

vitaminich; AlexeyPapanov; Intercititude; +3 Ответить
7. spacecraft 12.01.17 14:46 Сейчас в теме
(1) если всем, кроме одного, только просмотр... зачем еще что-то городить?
Или даже для этого одного тоже запрет на перенос в другую группу?
9. medved577 1 12.01.17 15:47 Сейчас в теме
(7) задача стоит ограничить доступ до уровня - посмотри, добавь в документ
5. DrBlack 24 12.01.17 14:32 Сейчас в теме
На УПП можно решить с помощью RLS, указав права доступа на конкретные группы, на КА не помню уже, есть RLS или нет...
Оставьте свое сообщение

Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот