![]() |
![]() |
![]() |
|
Маааааленький вопросик про счет фактуры | ☑ | ||
---|---|---|---|---|
0
Valiant
11.05.12
✎
11:59
|
Нужно в очень сильно измененную КА 1.1.16 внедрить корректировочные счет фактуры, но я правильно понял, что в последней версии КА 1.1.19 отказались от документов корректировочный счет фактуры судя по процедуре обновления:
//////////////////////////////////////////////////////////////////////////////// // Процедуры и функции обновления ИБ // Документы виды КорректировочныйСчетФактура... более не используется // производится замена их на документы КорректировкаПоступления/КорректировкаРеализации // с регистрацией счетов-фактур // Процедура ОбработатьКорректировочныеСчетаФактуры() Экспорт ВалютаРегламентированногоУчета = Константы.ВалютаРегламентированногоУчета.Получить(); СчетДоходов = ПланыСчетов.Хозрасчетный.ВыручкаНеОблагаемаяЕНВД; СчетРасходов = ПланыСчетов.Хозрасчетный.СебестоимостьПродажНеОблагаемаяЕНВД; // Обработка корректировочных счетов-фактур выданных Запрос = Новый Запрос; Запрос.Текст = "ВЫБРАТЬ | УдалитьКорректировочныйСчетФактураВыданный.Ссылка, | УдалитьКорректировочныйСчетФактураВыданный.СчетФактура КАК ДокументРеализации, | УдалитьКорректировочныйСчетФактураВыданный.Номер КАК НомерСчетаФактуры, | УдалитьКорректировочныйСчетФактураВыданный.Дата КАК Дата, | УдалитьКорректировочныйСчетФактураВыданный.Организация КАК Организация, | УдалитьКорректировочныйСчетФактураВыданный.Контрагент КАК Контрагент, | УдалитьКорректировочныйСчетФактураВыданный.ДоговорКонтрагента КАК ДоговорКонтрагента, | УдалитьКорректировочныйСчетФактураВыданный.ВалютаДокумента КАК ВалютаДокумента, | УдалитьКорректировочныйСчетФактураВыданный.СчетФактура.Номер КАК НомерИсходногоДокумента, | УдалитьКорректировочныйСчетФактураВыданный.СчетФактура.Дата КАК ДатаИсходногоДокумента, | УдалитьКорректировочныйСчетФактураВыданный.ТоварыИУслуги.( | Номенклатура КАК Номенклатура, | КоличествоДоИзменения КАК КоличествоДоИзменения, | КоличествоПослеИзменения КАК Количество, | ЦенаДоИзменения КАК ЦенаДоИзменения, | ЦенаПослеИзменения КАК Цена, | СтоимостьБезНДСДоИзменения КАК СуммаДоИзменения, | СтоимостьБезНДСПослеИзменения КАК Сумма, | СтавкаНДС КАК СтавкаНДС, | СуммаНДСДоИзменения КАК СуммаНДСДоИзменения, | СуммаНДСПослеИзменения КАК СуммаНДС, | ЕСТЬNULL(УдалитьКорректировочныйСчетФактураВыданный.ТоварыИУслуги.Номенклатура.Услуга, ЛОЖЬ) КАК Услуга, | НаименованиеНоменклатуры КАК Содержание, | ВидЦенности КАК ВидЦенности | ) |ИЗ | Документ.УдалитьКорректировочныйСчетФактураВыданный КАК УдалитьКорректировочныйСчетФактураВыданный |ГДЕ | УдалитьКорректировочныйСчетФактураВыданный.Проведен"; Выборка = Запрос.Выполнить().Выбрать(); Пока Выборка.Следующий() Цикл НовыйДокументКорректировки = Документы.КорректировкаРеализации.СоздатьДокумент(); НовыйДокументКорректировки.ВидОперации = Перечисления.ВидыОперацийИсправленияПоступленияРеализации.СогласованноеИзменение; ЗаполнитьЗначенияСвойств(НовыйДокументКорректировки, Выборка); ВыборкаТоварыИУслуги = Выборка.ТоварыИУслуги.Выбрать(); Пока ВыборкаТоварыИУслуги.Следующий() Цикл Если ВыборкаТоварыИУслуги.Услуга Тогда НоваяСтрока = НовыйДокументКорректировки.Услуги.Добавить(); Иначе НоваяСтрока = НовыйДокументКорректировки.Товары.Добавить(); КонецЕсли; ЗаполнитьЗначенияСвойств(НоваяСтрока, ВыборкаТоварыИУслуги); Если НЕ ВыборкаТоварыИУслуги.Услуга Тогда СчетУчетаНДС = ""; ПолучитьСчетУчетаПоВидуЦенности(НоваяСтрока.СчетУчетаБУ, СчетУчетаНДС, ВыборкаТоварыИУслуги.ВидЦенности, Выборка.ДоговорКонтрагента, ВалютаРегламентированногоУчета); КонецЕсли; НоваяСтрока.СчетРасходовБУ = СчетРасходов; НоваяСтрока.СчетДоходовБУ = СчетДоходов; КонецЦикла; НовыйДокументКорректировки.КорректироватьБУиНУ = Ложь; НовыйДокументКорректировки.Комментарий = "## Создан на основании: " + Выборка.Ссылка + " ##"; Попытка НовыйДокументКорректировки.Записать(РежимЗаписиДокумента.Проведение); Выборка.Ссылка.ПолучитьОбъект().УстановитьПометкуУдаления(Истина); // Создаем счет-фактуру СчетФактура = Документы.СчетФактураВыданный.СоздатьДокумент(); СчетФактура.Заполнить(НовыйДокументКорректировки.Ссылка); СчетФактура.ОпределениеПараметровСчетаФактуры(); СчетФактура.Контрагент = Выборка.Контрагент; СчетФактура.ДоговорКонтрагента = Выборка.ДоговорКонтрагента; СчетФактура.Номер = Выборка.НомерСчетаФактуры; СчетФактура.Дата = Выборка.Дата; СчетФактура.ВидСчетаФактуры = Перечисления.ВидСчетаФактурыВыставленного.Корректировочный; СчетФактура.НомерИсходногоДокумента = Выборка.НомерИсходногоДокумента; СчетФактура.ДатаИсходногоДокумента = Выборка.ДатаИсходногоДокумента; СчетФактура.Комментарий = "## Создан на основании: " + Выборка.Ссылка + " ##"; СчетФактура.ДатаНомерДокументовОплаты.Добавить(); Попытка СчетФактура.Записать(РежимЗаписиДокумента.Проведение); Исключение ОбщегоНазначения.СообщитьОбОшибке(ОписаниеОшибки()); КонецПопытки; Исключение ОбщегоНазначения.СообщитьОбОшибке(ОписаниеОшибки()); КонецПопытки; КонецЦикла; // Обработка корректировочных счетов-фактур полученных Запрос.Текст = "ВЫБРАТЬ | УдалитьКорректировочныйСчетФактураПолученный.Ссылка, | УдалитьКорректировочныйСчетФактураПолученный.Дата КАК Дата, | УдалитьКорректировочныйСчетФактураПолученный.Организация КАК Организация, | УдалитьКорректировочныйСчетФактураПолученный.Контрагент КАК Контрагент, | УдалитьКорректировочныйСчетФактураПолученный.ДоговорКонтрагента КАК ДоговорКонтрагента, | УдалитьКорректировочныйСчетФактураПолученный.СчетФактура КАК ДокументПоступления, | УдалитьКорректировочныйСчетФактураПолученный.НомерВходящегоДокумента КАК НомерВходящегоДокумента, | УдалитьКорректировочныйСчетФактураПолученный.ДатаВходящегоДокумента КАК ДатаВходящегоДокумента, | УдалитьКорректировочныйСчетФактураПолученный.ВалютаДокумента КАК ВалютаДокумента, | УдалитьКорректировочныйСчетФактураПолученный.СчетФактура.ДатаВходящегоДокумента КАК ДатаИсходногоДокумента, | УдалитьКорректировочныйСчетФактураПолученный.СчетФактура.НомерВходящегоДокумента КАК НомерИсходногоДокумента, | УдалитьКорректировочныйСчетФактураПолученный.ВосстановлениеНДС.( | СтавкаНДС КАК СтавкаНДС, | СуммаНДС КАК СуммаНДС, | УдалитьКорректировочныйСчетФактураПолученный.ВосстановлениеНДС.Сумма - УдалитьКорректировочныйСчетФактураПолученный.ВосстановлениеНДС.СуммаНДС КАК Сумма, | ВидЦенности КАК ВидЦенности | ), | УдалитьКорректировочныйСчетФактураПолученный.ВычетНДС.( | СтавкаНДС КАК СтавкаНДС, | СуммаНДС КАК СуммаНДС, | УдалитьКорректировочныйСчетФактураПолученный.ВычетНДС.Сумма - УдалитьКорректировочныйСчетФактураПолученный.ВычетНДС.СуммаНДС КАК Сумма, | ВидЦенности КАК ВидЦенности | ) |ИЗ | Документ.УдалитьКорректировочныйСчетФактураПолученный КАК УдалитьКорректировочныйСчетФактураПолученный |ГДЕ | УдалитьКорректировочныйСчетФактураПолученный.Проведен"; Выборка = Запрос.Выполнить().Выбрать(); Пока Выборка.Следующий() Цикл НовыйДокументКорректировки = Документы.КорректировкаПоступления.СоздатьДокумент(); НовыйДокументКорректировки.ВидОперации = Перечисления.ВидыОперацийИсправленияПоступленияРеализации.СогласованноеИзменение; НовыйДокументКорректировки.ВосстановитьНДС = Истина; НовыйДокументКорректировки.УчитыватьНДС = Истина; ЗаполнитьЗначенияСвойств(НовыйДокументКорректировки, Выборка); ВыборкаВосстановлениеНДС = Выборка.ВосстановлениеНДС.Выбрать(); Пока ВыборкаВосстановлениеНДС.Следующий() Цикл Если ВыборкаВосстановлениеНДС.ВидЦенности = Перечисления.ВидыЦенностей.ПрочиеРаботыИУслуги Тогда НоваяСтрока = НовыйДокументКорректировки.Услуги.Добавить(); НоваяСтрока.СтавкаНДС = ВыборкаВосстановлениеНДС.СтавкаНДС; НоваяСтрока.СуммаДоИзменения = ВыборкаВосстановлениеНДС.Сумма; НоваяСтрока.СуммаНДСДоИзменения = ВыборкаВосстановлениеНДС.СуммаНДС; НоваяСтрока.ЕстьВДокументеПоступления = Истина; ПолучитьСчетУчетаПоВидуЦенности(НоваяСтрока.СчетЗатрат, НоваяСтрока.СчетУчетаНДС, ВыборкаВосстановлениеНДС.ВидЦенности, Выборка.ДоговорКонтрагента, ВалютаРегламентированногоУчета); Иначе НоваяСтрока = НовыйДокументКорректировки.Товары.Добавить(); НоваяСтрока.СтавкаНДС = ВыборкаВосстановлениеНДС.СтавкаНДС; НоваяСтрока.СуммаДоИзменения = ВыборкаВосстановлениеНДС.Сумма; НоваяСтрока.СуммаНДСДоИзменения = ВыборкаВосстановлениеНДС.СуммаНДС; НоваяСтрока.ЕстьВДокументеПоступления = Истина; ПолучитьСчетУчетаПоВидуЦенности(НоваяСтрока.СчетУчетаБУ, НоваяСтрока.СчетУчетаНДС, ВыборкаВосстановлениеНДС.ВидЦенности, Выборка.ДоговорКонтрагента, ВалютаРегламентированногоУчета); КонецЕсли; КонецЦикла; ВыборкаВычетНДС = Выборка.ВычетНДС.Выбрать(); Пока ВыборкаВычетНДС.Следующий() Цикл Если ВыборкаВычетНДС.ВидЦенности = Перечисления.ВидыЦенностей.ПрочиеРаботыИУслуги Тогда НоваяСтрока = НовыйДокументКорректировки.Услуги.Добавить(); НоваяСтрока.СтавкаНДС = ВыборкаВычетНДС.СтавкаНДС; НоваяСтрока.Сумма = ВыборкаВычетНДС.Сумма; НоваяСтрока.СуммаНДС = ВыборкаВычетНДС.СуммаНДС; НоваяСтрока.ЕстьВДокументеПоступления = Истина; ПолучитьСчетУчетаПоВидуЦенности(НоваяСтрока.СчетЗатрат, НоваяСтрока.СчетУчетаНДС, ВыборкаВычетНДС.ВидЦенности, Выборка.ДоговорКонтрагента, ВалютаРегламентированногоУчета); Иначе НоваяСтрока = НовыйДокументКорректировки.Товары.Добавить(); НоваяСтрока.СтавкаНДС = ВыборкаВычетНДС.СтавкаНДС; НоваяСтрока.Сумма = ВыборкаВычетНДС.Сумма; НоваяСтрока.СуммаНДС = ВыборкаВычетНДС.СуммаНДС; НоваяСтрока.ЕстьВДокументеПоступления = Истина; ПолучитьСчетУчетаПоВидуЦенности(НоваяСтрока.СчетУчетаБУ, НоваяСтрока.СчетУчетаНДС, ВыборкаВычетНДС.ВидЦенности, Выборка.ДоговорКонтрагента, ВалютаРегламентированногоУчета); КонецЕсли; КонецЦикла; НовыйДокументКорректировки.корректироватьБУиНУ = Ложь; НовыйДокументКорректировки.Комментарий = "## Создан на основании: " + Выборка.Ссылка + " ##"; Попытка НовыйДокументКорректировки.Записать(РежимЗаписиДокумента.Проведение); Выборка.Ссылка.ПолучитьОбъект().УстановитьПометкуУдаления(Истина); // Создаем счет-фактуру СчетФактура = Документы.СчетФактураПолученный.СоздатьДокумент(); СчетФактура.Заполнить(НовыйДокументКорректировки.Ссылка); СчетФактура.ОпределениеПараметровСчетаФактуры(); СчетФактура.Контрагент = Выборка.Контрагент; СчетФактура.ДоговорКонтрагента = Выборка.ДоговорКонтрагента; СчетФактура.НомерВходящегоДокумента = Выборка.НомерВходящегоДокумента; СчетФактура.ДатаВходящегоДокумента = Выборка.ДатаВходящегоДокумента; СчетФактура.Дата = Выборка.Дата; СчетФактура.ВидСчетаФактуры = Перечисления.ВидСчетаФактурыПолученного.Корректировочный; СчетФактура.НомерИсходногоДокумента = Выборка.НомерИсходногоДокумента; СчетФактура.ДатаИсходногоДокумента = Выборка.ДатаИсходногоДокумента; СчетФактура.Комментарий = "## Создан на основании: " + Выборка.Ссылка + " ##"; Попытка СчетФактура.Записать(РежимЗаписиДокумента.Проведение); Исключение ОбщегоНазначения.СообщитьОбОшибке(ОписаниеОшибки()); КонецПопытки; Исключение ОбщегоНазначения.СообщитьОбОшибке(ОписаниеОшибки()); КонецПопытки; КонецЦикла; КонецПроцедуры вопрос: можно сразу смело внедрять в конфу новые документы КорректировкаПоступления/КорректировкаРеализации, а счет фактуры сделанные на их основании и будут корректировочными, я ведь правильно понимаю ? |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |