Имя: Пароль:
1C
1С v8
Не срабатывает проверка заполнения реквизитов дока при проведении программно.
0 Boudybuilder
 
04.04.13
02:08
В типовой дописал это при печати.
Но этим способом мне позволяет записать даже пустой док. А при проведении нажтием "ОК" все работает как обычно - для незаполненных реквизитов выдает ошибки.



Функция НапечататьДокументПоУмолчанию(Объект, КоличествоЭкземпляров = 0, НаПринтер = Ложь) Экспорт
   
   ЭтоДокумент = Метаданные.Документы.Содержит(Объект.Метаданные());
   

Если ЭтоДокумент И Объект.Метаданные().Проведение = Метаданные.СвойстваОбъектов.Проведение.Разрешить и Не УправлениеДопПравамиПользователей.РазрешитьПечатьНепроведенныхДокументов(Объект.Проведен) Тогда
       Ответ = Вопрос("Провести документ?",РежимДиалогаВопрос.ДаНет);
       Если Ответ=КодВозвратаДиалога.Да Тогда
           Объект.Записать(РежимЗаписиДокумента.Проведение);
       Иначе //КонецМоего условия
           Сообщить("Недостаточно полномочий для печати непроведенного документа!");
           Возврат Ложь;
       КонецЕсли;
   КонецЕсли;


Как тут заставить док проверяться как надо?
1 vitolt
 
04.04.13
02:50
Проверь - скорее всего в параметр "Объект" передается Ссылка, а не объект (Тип значения ДокументСсылка, а не ДокументОбъект)
В это случае достаточно написать так:
Если Ответ=КодВозвратаДиалога.Да Тогда
    ОбъектТМП = Объект.ПолучитьОбъект();
    ОбъектТМП.Записать(РежимЗаписиДокумента.Проведение);
Иначе //КонецМоего условия