Как перезаполнить счет фактуру в 1с программно

Обновлено: 07.07.2024

БП 2.0.28.6 - типовая
Столкнулся с проблемой:
С пом. внешней обработки за период формирую счета-фактуры выданные на основании данных доков РТУ.
При этом, если у дока нет СчФ - она создается. Здесь все ОК.
Если же у дока есть непроведенная СчФ - я хочу обновить ее реквизиты:

НайденаСФ = УчетНДС.НайтиПодчиненныйСчетФактуру(ДокОсн, "СчетФактураВыданный");
Если НайденаСФ = Неопределено Тогда

Док.Организация=Организация;
Док.Ответственный=Ответственный;
Док.УстановитьВремя(РежимАвтоВремя.НеИспользовать);
Док.Номер=НомерДок;
Док.Дата=ДатаДок+ДБФ.TimeH*60*60+ДБФ.TimeM*60+ДБФ.TimeS;
Док.ВидСчетаФактуры = Перечисления.ВидСчетаФактурыВыставленного.НаРеализацию;
Если УчетНДС.ПолучитьВерсиюПостановления(Док.Дата)=2 Тогда

Док.КодВидаОперации="01";
Док.Выставлен=Истина;
Док.ДатаВыставления=ДатаДок;
Док.КодСпособаВыставления=1;

ДокСФ=НайденаСФ.ПолучитьОбъект();
Если ДокСФ.Проведен Тогда
Сообщить("Найден проведенный документ :"+ДокСФ+". Пропущен");
Возврат;
Иначе
// перезаполним документ заново
ДокСФ.Ответственный=Ответственный;
ДокСФ.УстановитьВремя(РежимАвтоВремя.НеИспользовать);
ДокСФ.Номер=НомерДок;
ДокСФ.Дата=ДатаДок+ДБФ.TimeH*60*60+ДБФ.TimeM*60+ДБФ.TimeS;
ДокСФ.ВидСчетаФактуры = Перечисления.ВидСчетаФактурыВыставленного.НаРеализацию;
Если УчетНДС.ПолучитьВерсиюПостановления(ДокСФ.Дата)=2 Тогда

ДокСФ.КодВидаОперации="01";
ДокСФ.Выставлен=Истина;
ДокСФ.ДатаВыставления=ДатаДок;
ДокСФ.КодСпособаВыставления=1;

ДокСФ.ДокументыОснования.Очистить();
ДокСФ.ДатаНомерДокументовОплаты.Очистить();
ДокСФ.Авансы.Очистить();

Однако при этом открывается форма Счет-фактуры. Соответственно за период на экран выводится куча обновляемых форм счет-фактур.

Как вырубить открытие формы?

(1) ДокСФ.Заполнить(ДокОсн);// вот после этого открываются формы счет-фактуры.

Посмотри процедуру Заполнить() в модуле объекта Счета-фактуры. Наверняка в ней форма и открывается.

Читайте также: