Имя: Пароль:
1C
 
Как записать документ без ошибки?
0 idw
 
06.10.09
08:14
Подскажите пожалуйста по моей проблеме:
я сделал обработку по загрузки документов из текстового файла, но иногда в загруженных документах бывают не заполнены некоторые реквизиты и обработка вылетает с ошибкой на таком документе. Не подскажите как можно загрузить такие документы, чтобы обработка не вылеатала?

Вот код записи и проведения документа:

Код:
Попытка        
       Объект.Записать(?(Проведен, РежимЗаписиДокумента.Проведение, РежимЗаписиДокумента.Запись));    
       Сообщить(?(ЭтоНовый, "Создан", "Записан") + " документ: " + Объект, СтатусСообщения.Информация);
       Отказ = Ложь;        
   Исключение
       Отказ = Истина;        
   КонецПопытки;
   
   Если Отказ Тогда        
       Сообщить("Ошибка при " + ?(ЭтоНовый, "создани", "записи") + " документа: " + Объект + ", " + ОписаниеОшибки(), СтатусСообщения.Внимание);        
       Объект.Записать(РежимЗаписиДокумента.Запись);
       Возврат Объект.Ссылка;        
   Иначе
       Возврат Объект.Ссылка;
   КонецЕсли;
Можно конечно при ошибки не записывать, но хотелось бы чтобы все документы загружались.
А вылетает вот здесь Объект.Записать(РежимЗаписиДокумента.Запись);
1 ТелепатБот
 
гуру
06.10.09
08:14
2 kn
 
06.10.09
08:26
Попробуй у документа установить ОбменДанными.Загрузка = Истина, тогда возможно
не будут проверяться поля на заполнение.
3 Defender aka LINN
 
06.10.09
08:45
(2) Попробуй провести такой документ и прекрати давать идиотские советы.
4 VoDo
 
06.10.09
08:56
А создавать "Служебныый" реквезит такого типа? И если поле пустое то подставлять свой реквезит.
5 kn
 
06.10.09
09:05
(3)думаю что не все они идиотские
6 Defender aka LINN
 
06.10.09
09:06
(5) Я про конкретно этот.
(0) Записывай его без проведения
7 Serg_1960
 
06.10.09
09:09
Можно не проводить эти "заготовки". Но не дело в базу загонять "полуфабрикаты" документов :( Протокол загрузки с ошибками - и пошли все нафиг. Пусть грамотно заполняют на первоисточнике.
8 idw
 
06.10.09
09:29
(2) у меня в документе нет реквизита ОбменДанными.
(3) у меня такая ошибка выходит не при проведении, а при записи так, как не заполнены обязательные реквизиты.
(7) первоисточник база CRM причем даже не на 1С.
9 Serg_1960
 
06.10.09
09:41
Вы не заблуждаетесь?
ОбменДанными - есть во всех объектах. "Объект.ОбменДанными.Загрузка = Истина" перед записью позволяет записывать "пустые" объекты (вообще без единого значения).
Первоисточник - не подконтролен? Можете правила заполнения значениями "по умолчанию" разработать дабы "не отходить" от типовой?
10 Serg_1960
 
06.10.09
09:45
(9) + если, конечно, у Вас типовая конфа от 1С. Иначе - смотреть что там в процедурах ПередЗаписью и ПриЗаписи и "отключать" функционал если загрузка в истене.
11 mikecool
 
06.10.09
09:49
(7) мне приходится загонять "полуфабрикаты", но только счетов на оплату... делопроизводитель не знает договор, по которому пойдет оплата, подставляю по-умолчанию если есть, иначе - остается пустым и уже выбирается менеджером
12 idw
 
06.10.09
09:51
(7) и (11) а что за полуфабрикат?
13 idw
 
06.10.09
09:52
(9) спасибо попробую данный вариант.
14 Serg_1960
 
06.10.09
10:01
(11) Ничего "против" них не имею, если юзверы адекватные. Т.е. понимают потребность в ручном дозаполнении перед проведением. А если пальцы веером и "сделай нам всё на автомате" - пошли все лесом.

(12) Сорри за условный термин "полуфабрикат". Это я так назвал новые документы, которые в момент записи, т.е. изначально, не проходят контроль в типовой конфе в процедурах "ПередЗаписью" и "ПриЗаписи".
Ошибка? Это не ошибка, это системная функция.