![]() |
|
БП 2.0. Программное перезаполнение счет-фактуры | ☑ | ||
---|---|---|---|---|
0
KUBIK
09.08.12
✎
16:40
|
БП 2.0.28.6 - типовая
Столкнулся с проблемой: С пом. внешней обработки за период формирую счета-фактуры выданные на основании данных доков РТУ. При этом, если у дока нет СчФ - она создается. Здесь все ОК. Если же у дока есть непроведенная СчФ - я хочу обновить ее реквизиты: Код: НайденаСФ = УчетНДС.НайтиПодчиненныйСчетФактуру(ДокОсн, "СчетФактураВыданный"); Если НайденаСФ = Неопределено Тогда Док = Документы.СчетФактураВыданный.СоздатьДокумент(); Док.Организация=Организация; Док.Ответственный=Ответственный; Док.УстановитьВремя(РежимАвтоВремя.НеИспользовать); Док.Номер=НомерДок; Док.Дата=ДатаДок+ДБФ.TimeH*60*60+ДБФ.TimeM*60+ДБФ.TimeS; Док.ВидСчетаФактуры = Перечисления.ВидСчетаФактурыВыставленного.НаРеализацию; Если УчетНДС.ПолучитьВерсиюПостановления(Док.Дата)=2 Тогда Док.КодВидаОперации="01"; Док.Выставлен=Истина; Док.ДатаВыставления=ДатаДок; Док.КодСпособаВыставления=1; КонецЕсли; Док.Заполнить(ДокОсн); Попытка Док.Записать(); Исключение Сообщить("Не удалось создать Счет-фактуру для документа №"+НомерДокОсн + " от " + Формат(ДатаДокОсн,"ДЛФ=Д") + ", "+ОписаниеОшибки(),СтатусСообщения.Важное); КонецПопытки; Иначе ДокСФ=НайденаСФ.ПолучитьОбъект(); Если ДокСФ.Проведен Тогда Сообщить("Найден проведенный документ :"+ДокСФ+". Пропущен"); Возврат; Иначе // перезаполним документ заново ДокСФ.Ответственный=Ответственный; ДокСФ.УстановитьВремя(РежимАвтоВремя.НеИспользовать); ДокСФ.Номер=НомерДок; ДокСФ.Дата=ДатаДок+ДБФ.TimeH*60*60+ДБФ.TimeM*60+ДБФ.TimeS; ДокСФ.ВидСчетаФактуры = Перечисления.ВидСчетаФактурыВыставленного.НаРеализацию; Если УчетНДС.ПолучитьВерсиюПостановления(ДокСФ.Дата)=2 Тогда ДокСФ.КодВидаОперации="01"; ДокСФ.Выставлен=Истина; ДокСФ.ДатаВыставления=ДатаДок; ДокСФ.КодСпособаВыставления=1; КонецЕсли; ДокСФ.ДокументыОснования.Очистить(); ДокСФ.ДатаНомерДокументовОплаты.Очистить(); ДокСФ.Авансы.Очистить(); ДокСФ.Заполнить(ДокОсн); // вот после этого открываются формы счет-фактуры!!!! Попытка ДокСФ.Записать(); Исключение Сообщить("Не удалось записать Счет-фактуру для документа №"+НомерДокОсн + " от " + Формат(ДатаДокОсн,"ДЛФ=Д") + ", "+ОписаниеОшибки(),СтатусСообщения.Важное); КонецПопытки; КонецЕсли; КонецЕсли; Однако при этом открывается форма Счет-фактуры. Соответственно за период на экран выводится куча обновляемых форм счет-фактур. Как вырубить открытие формы? |
|||
1
KUBIK
09.08.12
✎
16:41
|
Сории БП 2.0.38.6
|
|||
2
JustBeFree
09.08.12
✎
16:47
|
(1) ДокСФ.Заполнить(ДокОсн);// вот после этого открываются формы счет-фактуры!!!!
Посмотри процедуру Заполнить() в модуле объекта Счета-фактуры. Наверняка в ней форма и открывается. |
|||
3
KUBIK
09.08.12
✎
16:48
|
(2) Посмотрел отладчиком - именно так и есть. Может можно принудительно ее как-нибудь закрыть, не влезая в МО?
|
|||
4
KUBIK
09.08.12
✎
16:50
|
(3) причем форма открывается только если объект уже есть в БД
|
|||
5
JustBeFree
09.08.12
✎
16:50
|
(3) Если ссылка на форму доступна в обработке, то можно. Но думаю, что вряд ли.
Проще вытащить процедуру Заполнить() в обработку и удалить все ненужное. |
|||
6
KUBIK
09.08.12
✎
16:51
|
(5) видимо так и придется... а там много букв :)))))
|
|||
7
JustBeFree
09.08.12
✎
16:52
|
(6) Ага. Имей ввиду, что вместе с процедурой Заполнить() придется перетащить еще с десяток процедур, но на их допиливание уйдет минут 15-20.
|
|||
8
KUBIK
09.08.12
✎
16:53
|
(7) Спасибо! Буду скопипастить... :((
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |