Имя: Пароль:
1C
1С v8
При программном создании документов 1с игнорирует ошибки заполнения и проводит документ?
,
0 Serega103
 
26.03.20
15:04
Добрый день. Подскажите пожалуйста, может кто сталкивался.
Перекидываю документы из одной базы в другую посредством com соединения.
Документ заполняется и проводится.
Потом я замечаю что один из необходимых реквизитов не заполнен и если попытаться провести документ вручную, то 1с ругается.
Так почему же она не ругается при программном проведении? Что нужно поменять в коде чтобы документ не проводился, когда что то не так?
вот фрагмент код:
    База=ПолучитьИзВременногоХранилища(АдресБазы).База;
    ДокИзБазы=База.Документы.КомплектацияНоменклатуры.НайтиПоНомеру(Строка.Номер,Строка.Дата);
    Об=Документы.КомплектацияНоменклатуры.СоздатьДокумент();
    Об.Номер=Строка.Номер;
    Об.Дата=Строка.Дата;    
    Об.Заполнить(Неопределено);
//далее идёт заполнение реквизитов, а потом документ прекрасно проводится, хотя вроде бы не должен
    Попытка
      Об.Записать(РежимЗаписиДокумента.Проведение);
    Исключение
      Об.Записать(РежимЗаписиДокумента.Запись);
    КонецПопытки;
1 lubitelxml
 
26.03.20
15:08
Наверное есть строка Об.ОбменДанными.Загрузка = Истина;?
2 Serega103
 
26.03.20
15:10
(1) кстати такой строки нет, проверю по отладчику, может при Об.Заполнить(неопределено) как то нарисовалось
3 dezss
 
26.03.20
15:10
А где "ПроверитьЗаполнение"?
4 Serega103
 
26.03.20
15:12
(3) это как?
5 dezss
 
26.03.20
15:13
(4) Перед
      Об.Записать(РежимЗаписиДокумента.Проведение);
написать
      Об.ПроверитьЗаполнение();
6 Serega103
 
26.03.20
15:13
(2) Нашёл, никогда этим методом не приходилось раньше пользоваться
7 Serega103
 
26.03.20
15:16
(2) вроде раньше незаполненные реквизиты ругались при записи. А так да, помогло, большое спасибо.
8 ДенисЧ
 
26.03.20
15:20
(1) А ты пробовал с таким флагом провести документ? ))
9 dezss
 
26.03.20
15:48
(7) Ругались только если они в регистре используются и они там обязательные, например.)