Имя: Пароль:
1C
 
Обработка Регистрации счет фактур
0 Alex87r
 
19.10.17
16:57
В БП 3.0 запускаю обработку через помощника НДС. На часть поступлений на РС СФ на аванс не выписываются. Не могу понять, почему. В ЖР пусто.
В отладке нашел место(после СчФ.Записать(РежимЗаписиДокумента.Проведение, РежимПроведенияДокумента.Неоперативный); вываливается в исключения):
Попытка
        СчФ.Записать(РежимЗаписиДокумента.Проведение, РежимПроведенияДокумента.Неоперативный);
        
        Для каждого СтрокаСФ Из СтрокиСФ Цикл
            Если ЗначениеЗаполнено(ДоговорКонтрагентаПоСчетуФактуре)
                И СтрокаСФ.ДоговорКонтрагента <> ДоговорКонтрагентаПоСчетуФактуре Тогда
                Продолжить;
            КонецЕсли;
            СтрокаСФ.СФсформирован = Истина;
            СтрокаСФ.СчетФактура   = СчФ.Ссылка;
        КонецЦикла;
        
    Исключение
        
        Для каждого СтрокаСФ Из СтрокиСФ Цикл
            Если ЗначениеЗаполнено(ДоговорКонтрагентаПоСчетуФактуре)
                И СтрокаСФ.ДоговорКонтрагента <> ДоговорКонтрагентаПоСчетуФактуре Тогда
                Продолжить;
            КонецЕсли;
            СтрокаСФ.СФсформирован = Ложь;
            СтрокаСФ.СчетФактура   = Неопределено;
        КонецЦикла;
        ЕстьОшибки = Истина;
        
    КонецПопытки;


Если провалиться в СчФ.Записать(РежимЗаписиДокумента.Проведение, РежимПроведенияДокумента.Неоперативный);, то попадаю в такую процедуру:

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

Но здесь отказ всегда ложь. Почему все же попадаю в исключение и как расшифровать ошибку?
Основная теорема систематики: Новые системы плодят новые проблемы.