Имя: Пароль:
1C
1С v8
Добавляю в общий модуль исключение для печати непроведенного документа
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) много вариантов. можно прямо в эту функцию добавить параметр, по умолчанию = неопределено, и проверять его тип, например