Как правильно создать СчФактуру
Добрый день!
Выгружаю документ Реализации из одной базы в документ Поступление в другой.
При этом нужно создавать сч.фактуру.
Сделал создание сч. фактуры в обработчике ПослеЗагрузки, методом СчФактура.Заполнить(Объект.Ссылка) и т.д.
Все бы хорошо, но перед выполнением этого кода, приходится записывать выгруженый документ. А при записи вручную теряется перенесенная ссылка. Т.е. поиск по ссылке в таком случае не работает.
Подскажите как победить данную проблему?
Надо или сч.фактуру по другому создавать или как то ссылку передавать.
Выгружаю документ Реализации из одной базы в документ Поступление в другой.
При этом нужно создавать сч.фактуру.
Сделал создание сч. фактуры в обработчике ПослеЗагрузки, методом СчФактура.Заполнить(Объект.Ссылка) и т.д.
Все бы хорошо, но перед выполнением этого кода, приходится записывать выгруженый документ. А при записи вручную теряется перенесенная ссылка. Т.е. поиск по ссылке в таком случае не работает.
Подскажите как победить данную проблему?
Надо или сч.фактуру по другому создавать или как то ссылку передавать.
Ответы
Подписаться на ответы
Инфостарт бот
Сортировка:
Древо развёрнутое
Свернуть все
Да там вроде особых проблем нет.
Просто нужно указать
Приемник "ДокументОснования" и поиск по нему, а в качестве правила конвертации правило по документу реализации.
Ну плюс еще:
"после загрузки" док.ссылка добавляется в параметр с типом список значения
а уже "после загрузки данных" мы эти счета фактуры по списку проводим.
Просто нужно указать
Приемник "ДокументОснования" и поиск по нему, а в качестве правила конвертации правило по документу реализации.
Ну плюс еще:
"после загрузки" док.ссылка добавляется в параметр с типом список значения
а уже "после загрузки данных" мы эти счета фактуры по списку проводим.
Блин столько бился с этой выгрузкой ничего не работало. Думал совсем уже ниче не понимаю...
А оказалось, если перед загрузкой в ПКО пишешь РижимЗаписи= "Проведение";
То опять же документы не переносятся по ссылке и задваиваются. Естественно выгрузка для сч.фактуры тоже не находит док.основание для себя.
Это что баг такой или фича?
Конвертация последняя 2.1.8.1
А оказалось, если перед загрузкой в ПКО пишешь РижимЗаписи= "Проведение";
То опять же документы не переносятся по ссылке и задваиваются. Естественно выгрузка для сч.фактуры тоже не находит док.основание для себя.
Это что баг такой или фича?
Конвертация последняя 2.1.8.1
(4) Это понятно.
Речь ведется о Реализации, если запишешь его вручную ОбъектЗаписать() или ставишь режим РижимЗаписи= "Проведение", то ссылка теряется.
И кстати код тоже автоматически не присваивается, когда ОбъектЗаписать(). Т.е. походу не срабатывают внутренние процедуры, которые должны выполнится в конце загрузки.
Речь ведется о Реализации, если запишешь его вручную ОбъектЗаписать() или ставишь режим РижимЗаписи= "Проведение", то ссылка теряется.
И кстати код тоже автоматически не присваивается, когда ОбъектЗаписать(). Т.е. походу не срабатывают внутренние процедуры, которые должны выполнится в конце загрузки.
Примерно так наверно
Объект.Номер = "";
Объект.Записать();
ДокОб = Документы.СчетФактураПолученный.СоздатьДокумент();
ДокОб.ДокументОснование = Объект;
ДокОб.Дата = Объект.Дата;
СтрДокОснования = ДокОб.ДокументыОснования.Добавить();
СтрДокОснования.ДокументОснование = Объект.Ссылка;
// Заполним реквизиты из стандартного набора по документу основанию.
ЗаполнениеДокументов.ЗаполнитьШапкуДокументаПоОснованию(ДокОб, Объект);
ДокОб.ВидСчетаФактуры = Перечисления.ВидСчетаФактурыПолученного.НаПоступление;
ДокОб.КодВидаОперации = "01";
ДокОб.КодСпособаПолучения = 1;
ДокОб.ДатаВходящегоДокумента = Объект.Дата;
ДокОб.НомерВходящегоДокумента = Объект.Номер;
Попытка
ДокОб.Записать(РежимЗаписиДокумента.Проведение, РежимПроведенияДокумента.НеОперативный);
Исключение
Сообщить("Не удалось провести документ СФ Полученный " + ДокОб.Номер);
КонецПопытки;
Попытка
Если Объект.Проведен = Истина Тогда
Если НЕ ОбъектНайден тогда
Объект.Проведен = Ложь; //иначе типовые механизмы ругаются
КонецЕсли;
Объект.Записать(РежимЗаписиДокумента.Проведение, РежимПроведенияДокумента.НеОперативный);
Сообщить("Проведен документ ПТУ " + Объект.Номер);
Иначе
Объект.Записать(РежимЗаписиДокумента.ОтменаПроведения);
Сообщить("Не удалось провести документ ПТУ " + Объект.Номер);
КонецЕсли;
Объект.Номер = "";
Объект.Записать();
ДокОб = Документы.СчетФактураПолученный.СоздатьДокумент();
ДокОб.ДокументОснование = Объект;
ДокОб.Дата = Объект.Дата;
СтрДокОснования = ДокОб.ДокументыОснования.Добавить();
СтрДокОснования.ДокументОснование = Объект.Ссылка;
// Заполним реквизиты из стандартного набора по документу основанию.
ЗаполнениеДокументов.ЗаполнитьШапкуДокументаПоОснованию(ДокОб, Объект);
ДокОб.ВидСчетаФактуры = Перечисления.ВидСчетаФактурыПолученного.НаПоступление;
ДокОб.КодВидаОперации = "01";
ДокОб.КодСпособаПолучения = 1;
ДокОб.ДатаВходящегоДокумента = Объект.Дата;
ДокОб.НомерВходящегоДокумента = Объект.Номер;
Попытка
ДокОб.Записать(РежимЗаписиДокумента.Проведение, РежимПроведенияДокумента.НеОперативный);
Исключение
Сообщить("Не удалось провести документ СФ Полученный " + ДокОб.Номер);
КонецПопытки;
Попытка
Если Объект.Проведен = Истина Тогда
Если НЕ ОбъектНайден тогда
Объект.Проведен = Ложь; //иначе типовые механизмы ругаются
КонецЕсли;
Объект.Записать(РежимЗаписиДокумента.Проведение, РежимПроведенияДокумента.НеОперативный);
Сообщить("Проведен документ ПТУ " + Объект.Номер);
Иначе
Объект.Записать(РежимЗаписиДокумента.ОтменаПроведения);
Сообщить("Не удалось провести документ ПТУ " + Объект.Номер);
КонецЕсли;
Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот