Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- Процедура СформироватьДвиженияСчетФактурыНаАванс(Источник, Отказ)
- //ск: Маматов И. 15.07.2019 (286735
- СчетаФактурыНаАванс = Перечисления.ВидСчетаФактурыПолученного.СчетаФактурыНаАванс();
- ЭтоСчетФактураНаАванс = СчетаФактурыНаАванс.Найти(Источник.ВидСчетаФактуры) <> Неопределено;
- Если Отказ или не Источник.Исправление или не ЭтоСчетФактураНаАванс Тогда
- Возврат;
- КонецЕсли;
- Если не НужноФормироватьДвиженияПоСчетФактуреНаАванс(Источник) Тогда
- Возврат;
- КонецЕсли;
- СторнироватьНДСПродажиСчетФактурыНаАванс(Источник);
- СформироватьОбратныеПроводкиСчетФактурыНаАванс(Источник);
- //ск: Маматов И. 15.07.2019 )
- КонецПроцедуры
- Функция НужноФормироватьДвиженияПоСчетФактуреНаАванс(Источник)
- //ск: Маматов И. 15.07.2019 (286735
- Запрос = Новый Запрос("ВЫБРАТЬ
- | ХозрасчетныйОбороты.Субконто1 КАК Субконто1,
- | ХозрасчетныйОбороты.Счет КАК Счет,
- | СУММА(ХозрасчетныйОбороты.СуммаОборотДт) КАК СуммаОборотДт
- |ИЗ
- | РегистрБухгалтерии.Хозрасчетный.Обороты(, , Регистратор, Счет = &СчетАвансов, &ВидСубконто2, Субконто1 = &СчетФактураПолученный, , ) КАК ХозрасчетныйОбороты
- |ГДЕ
- | ХозрасчетныйОбороты.Регистратор <> &Регистратор
- |
- |СГРУППИРОВАТЬ ПО
- | ХозрасчетныйОбороты.Субконто1,
- | ХозрасчетныйОбороты.Счет
- |
- |ИМЕЮЩИЕ
- | СУММА(ХозрасчетныйОбороты.СуммаОборотДт) > &СуммаИсправления");
- Запрос.УстановитьПараметр("СчетАвансов", ПланыСчетов.Хозрасчетный.НДСпоАвансамИПредоплатамВыданным);
- Запрос.УстановитьПараметр("ВидСубконто2", ПланыВидовХарактеристик.ВидыСубконтоХозрасчетные.СФПолученные);
- Запрос.УстановитьПараметр("СчетФактураПолученный", Источник.ДокументОснование);
- Запрос.УстановитьПараметр("СуммаИсправления", Источник.СуммаНДСДокумента);
- Запрос.УстановитьПараметр("Регистратор", Источник.Ссылка);
- НужноФормироватьДвижения = Ложь;
- РезультатЗапроса = Запрос.Выполнить();
- Если не РезультатЗапроса.Пустой() Тогда
- НужноФормироватьДвижения = Истина;
- КонецЕсли;
- Возврат НужноФормироватьДвижения;
- //ск: Маматов И. 15.07.2019 )
- КонецФункции
- Процедура СформироватьОбратныеПроводкиСчетФактурыНаАванс(Источник)
- //ск: Маматов И. 15.07.2019 (286735
- ДвиженияХозрасчетный = Источник.Движения.Хозрасчетный;
- Если ДвиженияХозрасчетный.Количество() = 0 Тогда
- Возврат;
- КонецЕсли;
- Сторно = ДвиженияХозрасчетный.Добавить();
- Сторно.СчетДт = ПланыСчетов.Хозрасчетный.НДСпоАвансамИПредоплатамВыданным;
- Для каждого ВидСубконто из Сторно.СчетДт.ВидыСубконто цикл
- Сторно.СубконтоДт[ВидСубконто.ВидСубконто] = ДвиженияХозрасчетный[0].СубконтоКт[ВидСубконто.ВидСубконто];
- КонецЦикла;
- Сторно.СчетКт = ПланыСчетов.Хозрасчетный.НДС;
- Для каждого ВидСубконто из Сторно.СчетКт.ВидыСубконто цикл
- Сторно.СубконтоКт[ВидСубконто.ВидСубконто] = ДвиженияХозрасчетный[0].СубконтоДт[ВидСубконто.ВидСубконто];
- КонецЦикла;
- Сторно.Организация = ДвиженияХозрасчетный[0].Организация;
- Сторно.Период = ДвиженияХозрасчетный[0].Период;
- Запрос = Новый Запрос("ВЫБРАТЬ
- | СУММА(НДСЗаписиКнигиПродажОбороты.НДСОборот) КАК НДСОборот
- |ИЗ
- | РегистрНакопления.НДСЗаписиКнигиПродаж.Обороты(, , Регистратор, СчетФактура = &СчетФактура) КАК НДСЗаписиКнигиПродажОбороты
- |ГДЕ
- | НДСЗаписиКнигиПродажОбороты.Регистратор <> &Регистратор");
- Запрос.УстановитьПараметр("СчетФактура", Источник.ДокументОснование);
- Запрос.УстановитьПараметр("Регистратор", Источник.Ссылка);
- СторноНДС = 0;
- РезультатЗапроса = Запрос.Выполнить();
- Если не РезультатЗапроса.Пустой() Тогда
- Выборка = РезультатЗапроса.Выбрать();
- Выборка.Следующий();
- СторноНДС = -Выборка.НДСОборот;
- КонецЕсли;
- Сторно.Сумма = СторноНДС;
- Сторно.Содержание = "Сторно восстановленного НДС с выданного аванса";
- ВосстановлениеНДС = ДвиженияХозрасчетный.Добавить();
- ВосстановлениеНДС.СчетДт = ПланыСчетов.Хозрасчетный.НДСпоАвансамИПредоплатамВыданным;
- Для каждого ВидСубконто из ВосстановлениеНДС.СчетДт.ВидыСубконто цикл
- ВосстановлениеНДС.СубконтоДт[ВидСубконто.ВидСубконто] = ДвиженияХозрасчетный[0].СубконтоКт[ВидСубконто.ВидСубконто];
- КонецЦикла;
- ВосстановлениеНДС.СчетКт = ПланыСчетов.Хозрасчетный.НДС;
- Для каждого ВидСубконто из ВосстановлениеНДС.СчетКт.ВидыСубконто цикл
- ВосстановлениеНДС.СубконтоКт[ВидСубконто.ВидСубконто] = ДвиженияХозрасчетный[0].СубконтоДт[ВидСубконто.ВидСубконто];
- КонецЦикла;
- ВосстановлениеНДС.Организация = ДвиженияХозрасчетный[0].Организация;
- ВосстановлениеНДС.Период = ДвиженияХозрасчетный[0].Период;
- ВосстановлениеНДС.Сумма = Источник.СуммаНДСДокумента;
- ВосстановлениеНДС.Содержание = "Восстановление НДС с выданного аванса";
- //ск: Маматов И. 15.07.2019 )
- КонецПроцедуры
- Процедура СторнироватьНДСПродажиСчетФактурыНаАванс(Источник)
- //ск: Маматов И. 15.07.2019 (286735
- Источник.Движения.НДСЗаписиКнигиПродаж.Очистить();
- ВидыЦенности = Новый Массив();
- ВидыЦенности.Добавить(Перечисления.ВидыЦенностей.АвансыВыданные);
- ВидыЦенности.Добавить(Перечисления.ВидыЦенностей.Возврат);
- Запрос = Новый Запрос("ВЫБРАТЬ
- | НДСЗаписиКнигиПродажОбороты.Организация КАК Организация,
- | НДСЗаписиКнигиПродажОбороты.Покупатель КАК Покупатель,
- | НДСЗаписиКнигиПродажОбороты.СчетФактура КАК СчетФактура,
- | НДСЗаписиКнигиПродажОбороты.ВидЦенности КАК ВидЦенности,
- | НДСЗаписиКнигиПродажОбороты.СтавкаНДС КАК СтавкаНДС,
- | НДСЗаписиКнигиПродажОбороты.ДатаОплаты КАК ДатаОплаты,
- | НДСЗаписиКнигиПродажОбороты.ДокументОплаты КАК ДокументОплаты,
- | НДСЗаписиКнигиПродажОбороты.Событие КАК Событие,
- | НДСЗаписиКнигиПродажОбороты.ДатаСобытия КАК ДатаСобытия,
- | НДСЗаписиКнигиПродажОбороты.ЗаписьДополнительногоЛиста КАК ЗаписьДополнительногоЛиста,
- | НДСЗаписиКнигиПродажОбороты.СторнирующаяЗаписьДопЛиста КАК СторнирующаяЗаписьДопЛиста,
- | НДСЗаписиКнигиПродажОбороты.ДоговорКонтрагента КАК ДоговорКонтрагента,
- | НДСЗаписиКнигиПродажОбороты.ИсправленныйСчетФактура КАК ИсправленныйСчетФактура,
- | НДСЗаписиКнигиПродажОбороты.СуммаБезНДСОборот КАК СуммаБезНДСОборот,
- | НДСЗаписиКнигиПродажОбороты.НДСОборот КАК НДСОборот,
- | КОНЕЦПЕРИОДА(НДСЗаписиКнигиПродажОбороты.Период, КВАРТАЛ) КАК КорректируемыйПериод
- |ПОМЕСТИТЬ ВТНДСПродажи
- |ИЗ
- | РегистрНакопления.НДСЗаписиКнигиПродаж.Обороты(
- | ,
- | ,
- | Запись,
- | СчетФактура = &СчетФактура
- | И ВидЦенности В (&ВидыЦенности)) КАК НДСЗаписиКнигиПродажОбороты
- |ГДЕ
- | НДСЗаписиКнигиПродажОбороты.Регистратор <> &Регистратор
- |
- |ОБЪЕДИНИТЬ ВСЕ
- |
- |ВЫБРАТЬ
- | НДСЗаписиКнигиПродажОбороты.Организация,
- | НДСЗаписиКнигиПродажОбороты.Покупатель,
- | НДСЗаписиКнигиПродажОбороты.СчетФактура,
- | НДСЗаписиКнигиПродажОбороты.ВидЦенности,
- | НДСЗаписиКнигиПродажОбороты.СтавкаНДС,
- | НДСЗаписиКнигиПродажОбороты.ДатаОплаты,
- | НДСЗаписиКнигиПродажОбороты.ДокументОплаты,
- | НДСЗаписиКнигиПродажОбороты.Событие,
- | НДСЗаписиКнигиПродажОбороты.ДатаСобытия,
- | НДСЗаписиКнигиПродажОбороты.ЗаписьДополнительногоЛиста,
- | НДСЗаписиКнигиПродажОбороты.СторнирующаяЗаписьДопЛиста,
- | НДСЗаписиКнигиПродажОбороты.ДоговорКонтрагента,
- | НДСЗаписиКнигиПродажОбороты.ИсправленныйСчетФактура,
- | НДСЗаписиКнигиПродажОбороты.СуммаБезНДСОборот,
- | НДСЗаписиКнигиПродажОбороты.НДСОборот,
- | КОНЕЦПЕРИОДА(НДСЗаписиКнигиПродажОбороты.Период, КВАРТАЛ)
- |ИЗ
- | РегистрНакопления.НДСЗаписиКнигиПродаж.Обороты(
- | ,
- | ,
- | Запись,
- | ИсправленныйСчетФактура = &СчетФактура
- | И ВидЦенности В (&ВидыЦенности)) КАК НДСЗаписиКнигиПродажОбороты
- |ГДЕ
- | НДСЗаписиКнигиПродажОбороты.Регистратор <> &Регистратор
- |;
- |
- |////////////////////////////////////////////////////////////////////////////////
- |ВЫБРАТЬ
- | ВТНДСПродажи.Организация КАК Организация,
- | ВТНДСПродажи.Покупатель КАК Покупатель,
- | ВТНДСПродажи.СчетФактура КАК СчетФактура,
- | ВТНДСПродажи.ВидЦенности КАК ВидЦенности,
- | ВТНДСПродажи.СтавкаНДС КАК СтавкаНДС,
- | ВТНДСПродажи.ДатаОплаты КАК ДатаОплаты,
- | ВТНДСПродажи.ДокументОплаты КАК ДокументОплаты,
- | ВТНДСПродажи.Событие КАК Событие,
- | ВТНДСПродажи.ДатаСобытия КАК ДатаСобытия,
- | ВТНДСПродажи.ЗаписьДополнительногоЛиста КАК ЗаписьДополнительногоЛиста,
- | ВТНДСПродажи.СторнирующаяЗаписьДопЛиста КАК СторнирующаяЗаписьДопЛиста,
- | ВТНДСПродажи.ДоговорКонтрагента КАК ДоговорКонтрагента,
- | ВТНДСПродажи.ИсправленныйСчетФактура КАК ИсправленныйСчетФактура,
- | СУММА(-ВТНДСПродажи.СуммаБезНДСОборот) КАК СуммаБезНДС,
- | СУММА(-ВТНДСПродажи.НДСОборот) КАК НДС,
- | ВТНДСПродажи.КорректируемыйПериод КАК КорректируемыйПериод
- |ИЗ
- | ВТНДСПродажи КАК ВТНДСПродажи
- |
- |СГРУППИРОВАТЬ ПО
- | ВТНДСПродажи.СторнирующаяЗаписьДопЛиста,
- | ВТНДСПродажи.ЗаписьДополнительногоЛиста,
- | ВТНДСПродажи.ИсправленныйСчетФактура,
- | ВТНДСПродажи.ДоговорКонтрагента,
- | ВТНДСПродажи.Событие,
- | ВТНДСПродажи.ДатаСобытия,
- | ВТНДСПродажи.ДатаОплаты,
- | ВТНДСПродажи.ДокументОплаты,
- | ВТНДСПродажи.ВидЦенности,
- | ВТНДСПродажи.Покупатель,
- | ВТНДСПродажи.Организация,
- | ВТНДСПродажи.СчетФактура,
- | ВТНДСПродажи.СтавкаНДС,
- | ВТНДСПродажи.КорректируемыйПериод");
- Запрос.УстановитьПараметр("Регистратор", Источник.Ссылка);
- Запрос.УстановитьПараметр("СчетФактура", Источник.ДокументОснование);
- Запрос.УстановитьПараметр("ВидыЦенности", ВидыЦенности);
- РезультатЗапроса = Запрос.Выполнить();
- Если РезультатЗапроса.Пустой() Тогда
- Возврат;
- КонецЕсли;
- СуммаНДСДокумента = Источник.СуммаНДСДокумента;
- СуммаДокумента = Источник.СуммаДокумента - СуммаНДСДокумента;
- СторнируемыеЗаписи = РезультатЗапроса.Выгрузить();
- Для каждого СторнируемаяЗапись из СторнируемыеЗаписи цикл
- Сторно = Источник.Движения.НДСЗаписиКнигиПродаж.Добавить();
- ЗаполнитьЗначенияСвойств(Сторно, СторнируемаяЗапись);
- ЭтоЗаписьДопЛиста = Истина;
- Если НачалоКвартала(Источник.Дата) = НачалоКвартала(СторнируемаяЗапись.КорректируемыйПериод)
- И не СторнируемаяЗапись.ЗаписьДополнительногоЛиста Тогда
- ЭтоЗаписьДопЛиста = Ложь;
- Сторно.КорректируемыйПериод = Дата(1, 1, 1);
- КонецЕсли;
- Сторно.ЗаписьДополнительногоЛиста = ЭтоЗаписьДопЛиста;
- Сторно.СторнирующаяЗаписьДопЛиста = ЭтоЗаписьДопЛиста;
- Сторно.Период = Источник.Дата;
- Если СуммаНДСДокумента > 0
- И СуммаДокумента > 0 Тогда
- ЗаписьДопЛиста = Источник.Движения.НДСЗаписиКнигиПродаж.Добавить();
- ЗаполнитьЗначенияСвойств(ЗаписьДопЛиста, Сторно);
- ЗаписьДопЛиста.СторнирующаяЗаписьДопЛиста = Ложь;
- ЗаписьДопЛиста.ИсправленныйСчетФактура = Источник.Ссылка;
- ЗаписьДопЛиста.СуммаБезНДС = СуммаДокумента;
- ЗаписьДопЛиста.НДС = СуммаНДСДокумента;
- СуммаДокумента = СуммаДокумента - ?(Сторно.СуммаБезНДС < 0, -Сторно.СуммаБезНДС, Сторно.СуммаБезНДС);;
- СуммаНДСДокумента = СуммаНДСДокумента - ?(Сторно.НДС < 0, -Сторно.НДС, Сторно.НДС);
- КонецЕсли;
- КонецЦикла;
- Источник.Движения.НДСЗаписиКнигиПродаж.Записывать = Истина;
- //ск: Маматов И. 15.07.2019 )
- КонецПроцедуры
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement