|
Добавляю в общий модуль исключение для печати непроведенного документа |
☑ |
0
sotnikov
20.04.15
✎
11:37
|
Хочу дать пользователям возможность печатать из заказа покупателя документ, выбранный по умолчанию.
Вот кусок функции из общего модуля:
Если ЭтоДокумент И Объект.Метаданные().Проведение = Метаданные.СвойстваОбъектов.Проведение.Разрешить и Не УправлениеДопПравамиПользователей.РазрешитьПечатьНепроведенныхДокументов(Объект.Проведен)
Как мне добавить условие исключения документа заказ покупателя?
|
|
1
KrabCore
20.04.15
✎
11:38
|
поставить проверку типа Объекта?
|
|
2
sotnikov
20.04.15
✎
11:39
|
ну да, проверка, что вид документа не Заказ Покупателя
|
|
3
KrabCore
20.04.15
✎
11:41
|
ТипЗнч(Объект) <> Тип("ДокументОбъект.ЗаказПокупателя")
это если у тебя в Объекте объект, если ссылка - проверяй на ссылку
|
|
4
sotnikov
20.04.15
✎
11:42
|
Я возможно не точно объяснил задачу.
Вот условие:
Если ЭтоДокумент И Объект.Метаданные().Проведение = Метаданные.СвойстваОбъектов.Проведение.Разрешить и Не УправлениеДопПравамиПользователей.РазрешитьПечатьНепроведенныхДокументов(Объект.Проведен) Тогда
Сообщить("Недостаточно полномочий для печати непроведенного документа!");
Возврат Ложь;
КонецЕсли;
Оно распространяется на все документы. Как исключить из него вид документа заказ покупателя?
|
|
5
Nuobu
20.04.15
✎
11:50
|
(4) Если ТипЗнч(Объект) <> Тип("ДокументОбъект.ЗаказПокупателя") И ЭтоДокумент И Объект.Метаданные().Проведение = Метаданные.СвойстваОбъектов.Проведение.Разрешить и Не УправлениеДопПравамиПользователей.РазрешитьПечатьНепроведенныхДокументов(Объект.Проведен) Тогда
Сообщить("Недостаточно полномочий для печати непроведенного документа!");
Возврат Ложь;
КонецЕсли;
Фрагмент кода взял из (3)
|
|
6
sotnikov
20.04.15
✎
11:55
|
Спасибо, понял. Буду попробовать.
|
|
7
samozvanec
20.04.15
✎
12:13
|
таки логичнее исключение описывать в функции УправлениеДопПравамиПользователей.РазрешитьПечатьНепроведенныхДокументов
что будешь делать, если исключением стану 10 документов? все туда же лепить?
|
|
8
DrShad
20.04.15
✎
12:15
|
(7) я бы в таком случае добавил ДополнительныеСвойства объекту и на них проверял
|
|
9
sotnikov
20.04.15
✎
12:35
|
(8) Хочу ограничиться минимальными правками типовой конфы.
(7) В принципе годный совет. Как его реализовать. Вот функция:
Функция РазрешитьПечатьНепроведенныхДокументов(Проведен = Истина) Экспорт
Если Проведен Тогда
Возврат Истина;
КонецЕсли;
РазрешеноПечатать = УправлениеПользователями.ПолучитьЗначениеПраваДляТекущегоПользователя(ПланыВидовХарактеристик.ПраваПользователей.ПечатьНепроведенныхДокументов, Ложь);
Если РазрешеноПечатать.Количество() = 0 Тогда
Возврат Ложь;
ИначеЕсли РазрешеноПечатать.Количество() > 1 Тогда
Возврат Истина;
Иначе
Возврат РазрешеноПечатать[0].Значение;
КонецЕсли;
КонецФункции // РазрешитьПечатьНепроведенныхДокументов()
|
|
10
sotnikov
20.04.15
✎
12:37
|
"Как его реализовать" должно было быть со знаком вопроса -> ?
|
|
11
samozvanec
20.04.15
✎
13:14
|
(9) много вариантов. можно прямо в эту функцию добавить параметр, по умолчанию = неопределено, и проверять его тип, например
|
|
Требовать и эффективности, и гибкости от одной и той же программы — все равно, что искать очаровательную и скромную жену... по-видимому, нам следует остановиться на чем-то одном из двух. Фредерик Брукс-младший