#Если Сервер Или ТолстыйКлиентОбычноеПриложение Или ВнешнееСоединение Тогда
#Область ПрограммныйИнтерфейс
#Область Проведение
Процедура ЗарегистрироватьУчетныеМеханизмы(МеханизмыДокумента) Экспорт
МеханизмыДокумента.Добавить("РегламентированныйУчет");
МеханизмыДокумента.Добавить("РеестрДокументов");
МеханизмыДокумента.Добавить("СебестоимостьИПартионныйУчет");
МеханизмыДокумента.Добавить("УчетДоходовРасходов");
МеханизмыДокумента.Добавить("УчетНДС");
МеханизмыДокумента.Добавить("УчетПрочихАктивовПассивов");
КонецПроцедуры
Функция ДанныеДокументаДляПроведения(Документ, Регистры, ДопПараметры = Неопределено) Экспорт
Если ДопПараметры = Неопределено Тогда
ДопПараметры = ПроведениеДокументов.ДопПараметрыИнициализироватьДанныеДокументаДляПроведения();
КонецЕсли;
Если ТипЗнч(Документ) = Тип("ДокументОбъект.СчетФактураПолученныйНалоговыйАгент") Тогда
ДокументСсылка = Документ.Ссылка;
Иначе
ДокументСсылка = Документ;
КонецЕсли;
Запрос = Новый Запрос;
ТекстыЗапроса = Новый СписокЗначений;
Если Не ДопПараметры.ПолучитьТекстыЗапроса Тогда
ЗаполнитьПараметрыИнициализации(Запрос, ДокументСсылка);
ТекстЗапросаТаблицаНДСЗаписиКнигиПродаж(Запрос, ТекстыЗапроса, Регистры);
ТекстЗапросаТаблицаНДСПредъявленный(Запрос, ТекстыЗапроса, Регистры);
ТекстЗапросаТаблицаНДСЗаписиКнигиПокупок(Запрос, ТекстыЗапроса, Регистры);
ТекстЗапросаТаблицаПартииПрочихРасходов(Запрос, ТекстыЗапроса, Регистры);
ТекстЗапросаТаблицаПрочиеРасходы(Запрос, ТекстыЗапроса, Регистры);
ТекстЗапросаТаблицаЖурналУчетаСчетовФактур(Запрос, ТекстыЗапроса, Регистры);
ТекстЗапросаТаблицаРеестрДокументов(Запрос, ТекстыЗапроса, Регистры);
ТекстЗапросаТаблицаДвиженияПоНДС(Запрос, ТекстыЗапроса, Регистры);
ТекстЗапросаТаблицаПрочиеАктивыПассивы(Запрос, ТекстыЗапроса, Регистры);
ТекстЗапросаТаблицаОтражениеДокументовВРеглУчете(Запрос, ТекстыЗапроса, Регистры);
КонецЕсли;
Возврат ПроведениеДокументов.ИнициализироватьДанныеДокументаДляПроведения(Запрос, ТекстыЗапроса, ДопПараметры);
КонецФункции
#КонецОбласти
Процедура ДобавитьКомандыСозданияНаОсновании(КомандыСозданияНаОсновании, Параметры) Экспорт
ВидимостьВФормах = "ФормаДокумента,ФормаСписка,ФормаВыбора";
Команда = Документы.СчетФактураПолученныйНалоговыйАгент.ДобавитьКомандуСоздатьНаОснованииКорректировочныйСчетФактура(КомандыСозданияНаОсновании);
Если Команда <> Неопределено Тогда
Команда.ВидимостьВФормах = ВидимостьВФормах;
КонецЕсли;
Команда = Документы.БлокировкаВычетаНДС.ДобавитьКомандуСоздатьНаОсновании(КомандыСозданияНаОсновании);
Если Команда <> Неопределено Тогда
Команда.ВидимостьВФормах = ВидимостьВФормах;
КонецЕсли;
КонецПроцедуры
Функция ДобавитьКомандуСоздатьНаОснованииКорректировочныйСчетФактура(КомандыСозданияНаОсновании) Экспорт
Если ПравоДоступа("Добавление", Метаданные.Документы.СчетФактураПолученныйНалоговыйАгент) Тогда
КомандаСоздатьНаОсновании = КомандыСозданияНаОсновании.Добавить();
КомандаСоздатьНаОсновании.Обработчик = "УчетНДСРФКлиент.КорректировочныйСчетФактура";
КомандаСоздатьНаОсновании.Идентификатор = "КорректировочныйСчетФактура";
КомандаСоздатьНаОсновании.Представление = НСтр("ru = 'Исправленный счет-фактура'");
КомандаСоздатьНаОсновании.РежимЗаписи = "Проводить";
Возврат КомандаСоздатьНаОсновании;
КонецЕсли;
Возврат Неопределено;
КонецФункции
Функция ДобавитьКомандуСоздатьНаОсновании(КомандыСозданияНаОсновании) Экспорт
Если ПравоДоступа("Добавление", Метаданные.Документы.СчетФактураПолученныйНалоговыйАгент) Тогда
КомандаСоздатьНаОсновании = КомандыСозданияНаОсновании.Добавить();
КомандаСоздатьНаОсновании.Менеджер = Метаданные.Документы.СчетФактураПолученныйНалоговыйАгент.ПолноеИмя();
КомандаСоздатьНаОсновании.Представление = ОбщегоНазначенияУТ.ПредставлениеОбъекта(Метаданные.Документы.СчетФактураПолученныйНалоговыйАгент);
КомандаСоздатьНаОсновании.РежимЗаписи = "Проводить";
Возврат КомандаСоздатьНаОсновании;
КонецЕсли;
Возврат Неопределено;
КонецФункции
Процедура ДобавитьКомандыОтчетов(КомандыОтчетов, Параметры) Экспорт
Отчеты.КарточкаПартииПоВидамНалогообложения.ДобавитьКомандуОтчета(КомандыОтчетов);
КонецПроцедуры
Функция ПредставлениеСчетаФактуры(Номер, Дата, Проведен) Экспорт
МассивПодстрок = Новый Массив;
МассивПодстрок.Добавить(СтрШаблон(НСтр("ru='Счет-фактура № %1 от %2 г.'"), СокрЛП(Номер), Формат(Дата, "ДЛФ=D")));
Если Не Проведен Тогда
МассивПодстрок.Добавить(НСтр("ru='(не проведен)'"));
КонецЕсли;
Возврат СтрСоединить(МассивПодстрок, " ");
КонецФункции
Функция СчетаФактурыПоОснованию(Основание, Организация = Неопределено, РеквизитыСчетаФактуры = Неопределено, Проведен = Истина) Экспорт
Запрос = Новый Запрос("
|ВЫБРАТЬ РАЗЛИЧНЫЕ
| ТаблицаОснований.Ссылка КАК Ссылка,
| ТаблицаОснований.Ссылка.Номер КАК Номер,
| ТаблицаОснований.Ссылка.Дата КАК Дата,
| ТаблицаОснований.Ссылка.ДатаСоставления КАК ДатаСоставления,
| ТаблицаОснований.Ссылка.НомерИсправления КАК НомерИсправления,
| ТаблицаОснований.Ссылка.ДатаИсправления КАК ДатаИсправления,
| ТаблицаОснований.Ссылка.Валюта КАК Валюта,
| ТаблицаОснований.Ссылка.Проведен КАК Проведен,
| ТаблицаОснований.Ссылка.Исправление КАК Исправление,
| ТаблицаОснований.Ссылка.Корректировочный КАК Корректировочный
|ИЗ
| Документ.СчетФактураПолученныйНалоговыйАгент.ДокументыОснования КАК ТаблицаОснований
|ГДЕ
| ТаблицаОснований.Ссылка.ПометкаУдаления = ЛОЖЬ
| И ТаблицаОснований.ДокументОснование = &Основание
| И (ТаблицаОснований.Ссылка.Организация = &Организация
| ИЛИ &Организация = НЕОПРЕДЕЛЕНО)
|
|УПОРЯДОЧИТЬ ПО
| ТаблицаОснований.Ссылка.НомерИсправления УБЫВ
|");
Запрос.УстановитьПараметр("Основание", Основание);
Запрос.УстановитьПараметр("Организация", Организация);
Если Проведен Тогда
Запрос.Текст = СтрЗаменить(Запрос.Текст, "ПометкаУдаления = ЛОЖЬ", "Проведен");
КонецЕсли;
УстановитьПривилегированныйРежим(Истина);
РезультатЗапроса = Запрос.Выполнить();
УстановитьПривилегированныйРежим(Ложь);
РеквизитыСчетаФактуры = Новый Структура;
Для Каждого Колонка Из РезультатЗапроса.Колонки Цикл
РеквизитыСчетаФактуры.Вставить(Колонка.Имя);
КонецЦикла;
ТаблицаСчетовФактур = Новый ТаблицаЗначений;
Для Каждого Колонка Из РезультатЗапроса.Колонки Цикл
ТаблицаСчетовФактур.Колонки.Добавить(Колонка.Имя);
КонецЦикла;
Если НЕ РезультатЗапроса.Пустой() Тогда
ТаблицаСчетовФактур = РезультатЗапроса.Выгрузить();
ЗаполнитьЗначенияСвойств(РеквизитыСчетаФактуры, ТаблицаСчетовФактур[0]);
КонецЕсли;
Возврат ТаблицаСчетовФактур;
КонецФункции
Процедура ПроверитьРеквизитыСчетФактуры(Основание, ПометкаУдаления, Организация = Неопределено) Экспорт
УстановитьПривилегированныйРежим(Истина);
Запрос = Новый Запрос("
|ВЫБРАТЬ РАЗЛИЧНЫЕ
| ТаблицаОснований.Ссылка
|ПОМЕСТИТЬ СчетаФактуры
|ИЗ
| Документ.СчетФактураПолученныйНалоговыйАгент.ДокументыОснования КАК ТаблицаОснований
|ГДЕ
| ТаблицаОснований.ДокументОснование = &Основание
|;
|
|
|ВЫБРАТЬ
| СчетаФактуры.Ссылка КАК Ссылка,
| СчетаФактуры.Ссылка.Организация КАК Организация,
| КОЛИЧЕСТВО(ТаблицаОснований.ДокументОснование) КАК КоличествоОснований
|ИЗ
| СчетаФактуры КАК СчетаФактуры
| ВНУТРЕННЕЕ СОЕДИНЕНИЕ Документ.СчетФактураПолученныйНалоговыйАгент.ДокументыОснования КАК ТаблицаОснований
| ПО СчетаФактуры.Ссылка = ТаблицаОснований.Ссылка
|ГДЕ
| НЕ ТаблицаОснований.Ссылка.ПометкаУдаления
|
|СГРУППИРОВАТЬ ПО
| СчетаФактуры.Ссылка
|");
Запрос.УстановитьПараметр("Основание", Основание);
Выборка = Запрос.Выполнить().Выбрать();
УстановитьПривилегированныйРежим(Ложь);
Пока Выборка.Следующий() Цикл
Если (Организация <> Неопределено И Выборка.Организация <> Организация)
ИЛИ ПометкаУдаления Тогда
Если Выборка.КоличествоОснований = 1 Тогда
ДокументОбъект = Выборка.Ссылка.ПолучитьОбъект();
ДокументОбъект.УстановитьПометкуУдаления(Истина);
Иначе
ДокументОбъект = Выборка.Ссылка.ПолучитьОбъект();
СтрокаКУдалению = ДокументОбъект.ДокументыОснования.Найти(Основание);
ДокументОбъект.ДокументыОснования.Удалить(СтрокаКУдалению);
ДокументОбъект.Записать(РежимЗаписиДокумента.Запись);
КонецЕсли;
КонецЕсли;
КонецЦикла;
КонецПроцедуры
Функция ИсправляемыйСчетФактураПоОснованию(Ссылка, Основание, Организация = Неопределено) Экспорт
Запрос = Новый Запрос("
|ВЫБРАТЬ
| &ДокументОснование КАК Ссылка
|ПОМЕСТИТЬ ОснованияСчетаФактуры
|
|ОБЪЕДИНИТЬ ВСЕ
|
|ВЫБРАТЬ
| ДанныеКорректировок.ДокументОснование КАК Ссылка
|ИЗ
| Документ.КорректировкаПриобретения КАК ДанныеКорректировок
|ГДЕ
| ДанныеКорректировок.Ссылка = &ДокументОснование
|
|ОБЪЕДИНИТЬ ВСЕ
|
|ВЫБРАТЬ
| ДанныеКорректировок.Ссылка КАК Ссылка
|ИЗ
| Документ.КорректировкаПриобретения КАК ДанныеОснования
|
| ВНУТРЕННЕЕ СОЕДИНЕНИЕ
| Документ.КорректировкаПриобретения КАК ДанныеКорректировок
| ПО
| ДанныеКорректировок.ДокументОснование = ДанныеОснования.ДокументОснование
|
|ГДЕ
| ДанныеОснования.Ссылка = &ДокументОснование
|;
|
|ВЫБРАТЬ ПЕРВЫЕ 1
| СчетФактураПолученный.Ссылка КАК Ссылка,
| СчетФактураПолученный.Валюта КАК Валюта,
| СчетФактураПолученный.Организация КАК Организация,
| СчетФактураПолученный.Контрагент КАК Контрагент,
| СчетФактураПолученный.НаправлениеДеятельности КАК НаправлениеДеятельности,
| СчетФактураПолученный.Партнер КАК Партнер,
| СчетФактураПолученный.Договор КАК Договор,
| СчетФактураПолученный.Склад КАК Склад,
| СчетФактураПолученный.КодВидаОперации КАК КодВидаОперации,
| СчетФактураПолученный.Корректировочный КАК Корректировочный,
| СчетФактураПолученный.Номер КАК НомерИсходногоДокумента,
| СчетФактураПолученный.Номер КАК Номер,
| СчетФактураПолученный.Подразделение КАК Подразделение,
| ВЫБОР КОГДА СчетФактураПолученный.Исправление ТОГДА
| ЕСТЬNULL(СчетФактураПолученный.СчетФактураОснование.ДатаСоставления, Неопределено)
| ИНАЧЕ
| СчетФактураПолученный.ДатаСоставления
| КОНЕЦ КАК ДатаИсходногоДокумента,
| ВЫБОР КОГДА СчетФактураПолученный.Исправление ТОГДА
| ЕСТЬNULL(СчетФактураПолученный.СчетФактураОснование.ДатаСоставления, Неопределено)
| ИНАЧЕ
| СчетФактураПолученный.ДатаСоставления
| КОНЕЦ КАК ДатаСоставления,
| ВЫБОР КОГДА СчетФактураПолученный.Исправление ТОГДА
| СчетФактураПолученный.НомерИсправления
| ИНАЧЕ
| Неопределено
| КОНЕЦ КАК НомерИсправленияИсходногоДокумента,
| ВЫБОР КОГДА СчетФактураПолученный.Исправление ТОГДА
| СчетФактураПолученный.Дата
| ИНАЧЕ
| Неопределено
| КОНЕЦ КАК ДатаИсправленияИсходногоДокумента,
| СчетФактураПолученный.ДатаПереходаПраваСобственности КАК ДатаПереходаПраваСобственности,
|
| СчетФактураПолученный.ДокументыОснования.(
| ДокументОснование,
| ИсходныйДокумент,
| НомерИсходногоДокумента,
| ДатаИсходногоДокумента,
| НомерИсправленияИсходногоДокумента,
| ДатаИсправленияИсходногоДокумента
| ) КАК ДокументыОснования
|ИЗ
| Документ.СчетФактураПолученныйНалоговыйАгент КАК СчетФактураПолученный
|
| ВНУТРЕННЕЕ СОЕДИНЕНИЕ Документ.СчетФактураПолученныйНалоговыйАгент.ДокументыОснования КАК СчетФактураПолученныйОснования
| ПО СчетФактураПолученный.Ссылка = СчетФактураПолученныйОснования.Ссылка
| ВНУТРЕННЕЕ СОЕДИНЕНИЕ ОснованияСчетаФактуры КАК ОснованияСчетаФактуры
| ПО ОснованияСчетаФактуры.Ссылка = СчетФактураПолученныйОснования.ДокументОснование
|
|ГДЕ
| СчетФактураПолученный.Ссылка <> &Ссылка
| И (СчетФактураПолученный.Организация = &Организация
| ИЛИ &Организация = НЕОПРЕДЕЛЕНО)
| И СчетФактураПолученный.Проведен
| И НЕ СчетФактураПолученный.ПометкаУдаления
| И НЕ СчетФактураПолученный.Исправление
|
|УПОРЯДОЧИТЬ ПО
| СчетФактураПолученный.Корректировочный УБЫВ,
| СчетФактураПолученный.МоментВремени УБЫВ
|");
Запрос.УстановитьПараметр("ДокументОснование", Основание);
Запрос.УстановитьПараметр("Организация", Организация);
Запрос.УстановитьПараметр("Ссылка", Ссылка);
УстановитьПривилегированныйРежим(Истина);
РезультатЗапроса = Запрос.Выполнить();
УстановитьПривилегированныйРежим(Ложь);
РеквизитыСчетаФактуры = Новый Структура;
Для Каждого Колонка Из РезультатЗапроса.Колонки Цикл
РеквизитыСчетаФактуры.Вставить(Колонка.Имя);
КонецЦикла;
Выборка = РезультатЗапроса.Выбрать();
Если Выборка.Следующий() Тогда
ЗаполнитьЗначенияСвойств(РеквизитыСчетаФактуры, Выборка);
ТаблицаОснований = Выборка.ДокументыОснования.Выгрузить();
Если ТаблицаОснований.Найти(Основание,"ДокументОснование")=Неопределено Тогда
ТаблицаОснований.Очистить();
СтрокаОснования = ТаблицаОснований.Добавить();
ЗаполнитьЗначенияСвойств(СтрокаОснования, Выборка);
СтрокаОснования.ДокументОснование = Основание;
Если Выборка.Корректировочный Тогда
СтрокаОснования.ИсходныйДокумент = Выборка.Ссылка;
РеквизитыСчетаФактурыОснования = Документы.СчетФактураПолученныйНалоговыйАгент.ДанныеСчетаФактуры(Выборка.Ссылка);
ИсходныеДанныеСчетаФактуры = РеквизитыСчетаФактурыОснования.ДокументыОснования;
Для Каждого СтрокаТаблицы Из ИсходныеДанныеСчетаФактуры Цикл
ЗаполнитьЗначенияСвойств(СтрокаОснования, СтрокаТаблицы, "НомерИсходногоДокумента,ДатаИсходногоДокумента");
КонецЦикла;
КонецЕсли;
КонецЕсли;
РеквизитыСчетаФактуры.Вставить("ДокументыОснования", ТаблицаОснований);
КонецЕсли;
Возврат РеквизитыСчетаФактуры;
КонецФункции
Функция ДанныеСчетаФактуры(СчетФактура) Экспорт
Запрос = Новый Запрос(
"ВЫБРАТЬ
| ВЫБОР КОГДА СчетФактураПолученный.Исправление ТОГДА
| СчетФактураПолученный.СчетФактураОснование
| ИНАЧЕ
| НЕОПРЕДЕЛЕНО
| КОНЕЦ КАК СчетФактураОснование,
| СчетФактураПолученный.Валюта КАК Валюта,
| СчетФактураПолученный.Организация КАК Организация,
| СчетФактураПолученный.Контрагент КАК Контрагент,
| СчетФактураПолученный.ИННКонтрагента КАК ИННКонтрагента,
| СчетФактураПолученный.КППКонтрагента КАК КППКонтрагента,
| СчетФактураПолученный.НаправлениеДеятельности КАК НаправлениеДеятельности,
| СчетФактураПолученный.Партнер КАК Партнер,
| СчетФактураПолученный.Договор КАК Договор,
| СчетФактураПолученный.Склад КАК Склад,
| СчетФактураПолученный.КодВидаОперации КАК КодВидаОперации,
| СчетФактураПолученный.Корректировочный КАК Корректировочный,
| СчетФактураПолученный.Номер КАК Номер,
| СчетФактураПолученный.Дата КАК Дата,
| СчетФактураПолученный.ДатаСоставления КАК ДатаСоставления,
| СчетФактураПолученный.ДатаПереходаПраваСобственности КАК ДатаПереходаПраваСобственности,
| СчетФактураПолученный.Подразделение КАК Подразделение,
| СчетФактураПолученный.ДокументыОснования.(
| ДокументОснование,
| ИсходныйДокумент,
| НомерИсходногоДокумента,
| ДатаИсходногоДокумента,
| НомерИсправленияИсходногоДокумента,
| ДатаИсправленияИсходногоДокумента,
| Сумма,
| НалоговаяБаза,
| СтавкаНДС,
| СуммаНДС,
| НаправлениеДеятельности,
| ЗакупкаПодДеятельность
| ) КАК ДокументыОснования
|ИЗ
| Документ.СчетФактураПолученныйНалоговыйАгент КАК СчетФактураПолученный
|ГДЕ
| СчетФактураПолученный.Ссылка = &Ссылка");
Запрос.УстановитьПараметр("Ссылка", СчетФактура);
УстановитьПривилегированныйРежим(Истина);
РезультатЗапроса = Запрос.Выполнить();
УстановитьПривилегированныйРежим(Ложь);
СтруктураДанных = Новый Структура;
Для Каждого Колонка Из РезультатЗапроса.Колонки Цикл
СтруктураДанных.Вставить(Колонка.Имя);
КонецЦикла;
Выборка = РезультатЗапроса.Выбрать();
Если Выборка.Следующий() Тогда
ЗаполнитьЗначенияСвойств(СтруктураДанных, Выборка);
СтруктураДанных.Вставить("ДокументыОснования", Выборка.ДокументыОснования.Выгрузить());
КонецЕсли;
Возврат СтруктураДанных;
КонецФункции
Функция ЕстьСчетаФактурыКОформлению(Параметры) Экспорт
Запрос = Новый Запрос;
Запрос.Параметры.Вставить("ТипСчетаФактуры", ОбщегоНазначения.ИдентификаторОбъектаМетаданных("Документ.СчетФактураПолученныйНалоговыйАгент"));
Запрос.Параметры.Вставить("МассивОрганизаций", Параметры.МассивОрганизаций);
Если Параметры.Свойство("ПоОрганизациям") Тогда
Запрос.Параметры.Вставить("КонецПериода", КонецДня(Параметры.КонецПериода));
Запрос.Текст =
"ВЫБРАТЬ РАЗЛИЧНЫЕ
| ТребуетсяОформлениеСчетаФактуры.Организация КАК Организация
|ИЗ
| РегистрСведений.ТребуетсяОформлениеСчетаФактуры КАК ТребуетсяОформлениеСчетаФактуры
| ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ДанныеПервичныхДокументов КАК ДанныеОснования
| ПО ТребуетсяОформлениеСчетаФактуры.Организация = ДанныеОснования.Организация
| И ТребуетсяОформлениеСчетаФактуры.Основание = ДанныеОснования.Документ
|ГДЕ
| ТребуетсяОформлениеСчетаФактуры.ТипСчетаФактуры = &ТипСчетаФактуры
| И ЕСТЬNULL(ДанныеОснования.ДатаРегистратора, ДАТАВРЕМЯ(1, 1, 1)) <= &КонецПериода
| И &УсловиеОтбора";
ИначеЕсли Параметры.Свойство("БезОграниченияПериода") Тогда
Запрос.Текст =
"ВЫБРАТЬ
| СУММА(1) КАК КоличествоДокументовКОформлению
|ИЗ
| РегистрСведений.ТребуетсяОформлениеСчетаФактуры КАК ТребуетсяОформлениеСчетаФактуры
|ГДЕ
| ТребуетсяОформлениеСчетаФактуры.ТипСчетаФактуры = &ТипСчетаФактуры
| И &УсловиеОтбора";
Иначе
Запрос.Параметры.Вставить("КонецПериода", КонецДня(Параметры.КонецПериода));
Запрос.Текст =
"ВЫБРАТЬ
| СУММА(1) КАК КоличествоДокументовКОформлению
|ИЗ
| РегистрСведений.ТребуетсяОформлениеСчетаФактуры КАК ТребуетсяОформлениеСчетаФактуры
| ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ДанныеПервичныхДокументов КАК ДанныеОснования
| ПО ТребуетсяОформлениеСчетаФактуры.Организация = ДанныеОснования.Организация
| И ТребуетсяОформлениеСчетаФактуры.Основание = ДанныеОснования.Документ
|ГДЕ
| ТребуетсяОформлениеСчетаФактуры.ТипСчетаФактуры = &ТипСчетаФактуры
| И ЕСТЬNULL(ДанныеОснования.ДатаРегистратора, ДАТАВРЕМЯ(1, 1, 1)) <= &КонецПериода
| И &УсловиеОтбора";
КонецЕсли;
Если ЗначениеЗаполнено(Параметры.МассивОрганизаций) Тогда
УсловиеОтбора = "ТребуетсяОформлениеСчетаФактуры.Организация В(&МассивОрганизаций)";
Запрос.Текст = СтрЗаменить(Запрос.Текст,"&УсловиеОтбора", УсловиеОтбора);
Иначе
Запрос.Текст = СтрЗаменить(Запрос.Текст,"И &УсловиеОтбора", "");
КонецЕсли;
Если Параметры.Свойство("ПоОрганизациям") Тогда
Возврат Запрос.Выполнить().Выгрузить().ВыгрузитьКолонку("Организация");
КонецЕсли;
Выборка = Запрос.Выполнить().Выбрать();
Если Выборка.Следующий() И НЕ Выборка.КоличествоДокументовКОформлению = NULL Тогда
Возврат Выборка.КоличествоДокументовКОформлению;
Иначе
Возврат 0;
КонецЕсли;
КонецФункции
Функция СчетаФактурыПоТоварамВПути(Параметры) Экспорт
Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ РАЗРЕШЕННЫЕ
| СчетФактура.Ссылка КАК Ссылка,
| СчетФактура.Ссылка.Дата КАК Дата,
| СчетФактура.Ссылка.Номер КАК Номер,
| СчетФактура.Ссылка.Валюта КАК Валюта,
| СчетФактура.Ссылка.Контрагент КАК Контрагент,
| СчетФактура.Ссылка.Организация КАК Организация,
| СУММА(СчетФактура.Сумма) КАК СуммаДокумента
|ИЗ
| Документ.СчетФактураПолученныйНалоговыйАгент.ДокументыОснования КАК СчетФактура
|ГДЕ
| СчетФактура.Ссылка.Проведен
| И СчетФактура.Ссылка.ДатаПереходаПраваСобственности = ДАТАВРЕМЯ(1,1,1)
| И (&ВсеКонтрагенты ИЛИ СчетФактура.Ссылка.Контрагент = &Контрагент)
| И (&ВсеОрганизации ИЛИ СчетФактура.Ссылка.Организация = &Организация)
|
|СГРУППИРОВАТЬ ПО
| СчетФактура.Ссылка";
Запрос.УстановитьПараметр("ВсеКонтрагенты", Не ЗначениеЗаполнено(Параметры.Контрагент));
Запрос.УстановитьПараметр("Контрагент", Параметры.Контрагент);
Запрос.УстановитьПараметр("ВсеОрганизации", Не ЗначениеЗаполнено(Параметры.Организация));
Запрос.УстановитьПараметр("Организация", Параметры.Организация);
Возврат Запрос.Выполнить().Выгрузить();
КонецФункции
Функция ТекстОтраженияВРеглУчете() Экспорт
#Область НачислениеНДСНалоговогоАгента
НачислениеНДСНалоговогоАгента = "
|ВЫБРАТЬ
|
| Операция.Ссылка КАК Ссылка,
| ЗаписиКнигиПродаж.Период КАК Период,
| Операция.Организация КАК Организация,
| """" КАК ИдентификаторСтроки,
|
| ЗаписиКнигиПродаж.НДС КАК Сумма,
| ЗаписиКнигиПродаж.НДСУпр КАК СуммаУУ,
|
| НЕОПРЕДЕЛЕНО КАК ВидСчетаДт,
| НЕОПРЕДЕЛЕНО КАК ГруппаФинансовогоУчетаДт,
| НЕОПРЕДЕЛЕНО КАК МестоУчетаДт,
|
| ЗНАЧЕНИЕ(Справочник.Валюты.ПустаяСсылка) КАК ВалютаДт,
| ЗНАЧЕНИЕ(Справочник.СтруктураПредприятия.ПустаяСсылка) КАК ПодразделениеДт,
| ЗНАЧЕНИЕ(Справочник.НаправленияДеятельности.ПустаяСсылка) КАК НаправлениеДеятельностиДт,
|
| ЗНАЧЕНИЕ(ПланСчетов.Хозрасчетный.РасчетыНДСНалоговогоАгента) КАК СчетДт,
|
| Операция.Контрагент КАК СубконтоДт1,
| НЕОПРЕДЕЛЕНО КАК СубконтоДт2,
| НЕОПРЕДЕЛЕНО КАК СубконтоДт3,
|
| 0 КАК ВалютнаяСуммаДт,
| 0 КАК КоличествоДт,
| 0 КАК СуммаНУДт,
| 0 КАК СуммаПРДт,
| 0 КАК СуммаВРДт,
|
| НЕОПРЕДЕЛЕНО КАК ВидСчетаКт,
| НЕОПРЕДЕЛЕНО КАК АналитикаУчетаКт,
| НЕОПРЕДЕЛЕНО КАК МестоУчетаКт,
|
| ЗНАЧЕНИЕ(Справочник.Валюты.ПустаяСсылка) КАК ВалютаКт,
| ЗНАЧЕНИЕ(Справочник.СтруктураПредприятия.ПустаяСсылка) КАК ПодразделениеКт,
| ЗНАЧЕНИЕ(Справочник.НаправленияДеятельности.ПустаяСсылка) КАК НаправлениеДеятельностиКт,
|
| ЗНАЧЕНИЕ(ПланСчетов.Хозрасчетный.НДСНалоговогоАгентаПоОтдельнымВидамТоваров) КАК СчетКт,
|
| ЗНАЧЕНИЕ(Перечисление.ВидыПлатежейВГосБюджет.Налог) КАК СубконтоКт1,
| НЕОПРЕДЕЛЕНО КАК СубконтоКт2,
| НЕОПРЕДЕЛЕНО КАК СубконтоКт3,
|
| 0 КАК ВалютнаяСуммаКт,
| 0 КАК КоличествоКт,
| 0 КАК СуммаНУКт,
| 0 КАК СуммаПРКт,
| 0 КАК СуммаВРКт,
| ""Начисление НДС налогового агента"" КАК Содержание
|
|ИЗ
| ДокументыКОтражению КАК ДокументыКОтражению
|
| ВНУТРЕННЕЕ СОЕДИНЕНИЕ
| Документ.СчетФактураПолученныйНалоговыйАгент КАК Операция
| ПО
| ДокументыКОтражению.Ссылка = Операция.Ссылка
|
| ВНУТРЕННЕЕ СОЕДИНЕНИЕ
| РегистрНакопления.НДСЗаписиКнигиПродаж КАК ЗаписиКнигиПродаж
| ПО
| ЗаписиКнигиПродаж.Регистратор = Операция.Ссылка
| И НЕ ЗаписиКнигиПродаж.РегламентнаяОперация
| И ЗаписиКнигиПродаж.Событие = ЗНАЧЕНИЕ(Перечисление.СобытияПоНДСПродажи.НДСНачисленКУплате)
| И ЗаписиКнигиПродаж.ВидЦенности = ЗНАЧЕНИЕ(Перечисление.ВидыЦенностей.ТоварыНалоговыйАгент)
|";
#КонецОбласти
#Область ЗакупкаНДСНалоговогоАгента
ЗакупкаНДСНалоговогоАгента = "
|ВЫБРАТЬ
|
| Операция.Ссылка КАК Ссылка,
| НДСПредъявленный.Период КАК Период,
| Операция.Организация КАК Организация,
| НДСПредъявленный.ИдентификаторСтроки КАК ИдентификаторСтроки,
|
| НДСПредъявленный.НДС КАК Сумма,
| НДСПредъявленный.НДСУпр КАК СуммаУУ,
|
|
| ЗНАЧЕНИЕ(Перечисление.ВидыСчетовРеглУчета.НДСпоПриобретеннымЦенностям) КАК ВидСчетаДт,
| НДСПредъявленный.ВидДеятельностиНДС КАК АналитикаУчетаДт,
| ЗНАЧЕНИЕ(Перечисление.ВидыЦенностей.ТоварыНалоговыйАгент) КАК МестоУчетаДт,
|
| ЗНАЧЕНИЕ(Справочник.Валюты.ПустаяСсылка) КАК ВалютаДт,
| ЗНАЧЕНИЕ(Справочник.СтруктураПредприятия.ПустаяСсылка) КАК ПодразделениеДт,
| ЕСТЬNULL(ВводСобственныхСредств.НаправлениеДеятельности, НДСПредъявленный.НаправлениеДеятельности) КАК НаправлениеДеятельностиДт,
|
| НЕОПРЕДЕЛЕНО КАК СчетДт,
|
| Операция.Контрагент КАК СубконтоДт1,
| НДСПредъявленный.СчетФактура КАК СубконтоДт2,
| НЕОПРЕДЕЛЕНО КАК СубконтоДт3,
|
| 0 КАК ВалютнаяСуммаДт,
| 0 КАК КоличествоДт,
| 0 КАК СуммаНУДт,
| 0 КАК СуммаПРДт,
| 0 КАК СуммаВРДт,
|
| НЕОПРЕДЕЛЕНО КАК ВидСчетаКт,
| НЕОПРЕДЕЛЕНО КАК АналитикаУчетаКт,
| НЕОПРЕДЕЛЕНО КАК МестоУчетаКт,
|
| ЗНАЧЕНИЕ(Справочник.Валюты.ПустаяСсылка) КАК ВалютаКт,
| ЗНАЧЕНИЕ(Справочник.СтруктураПредприятия.ПустаяСсылка) КАК ПодразделениеКт,
| ЗНАЧЕНИЕ(Справочник.НаправленияДеятельности.ПустаяСсылка) КАК НаправлениеДеятельностиКт,
|
| ЗНАЧЕНИЕ(ПланСчетов.Хозрасчетный.РасчетыНДСНалоговогоАгента) КАК СчетКт,
|
| Операция.Контрагент КАК СубконтоКт1,
| НЕОПРЕДЕЛЕНО КАК СубконтоКт2,
| НЕОПРЕДЕЛЕНО КАК СубконтоКт3,
|
| 0 КАК ВалютнаяСуммаКт,
| 0 КАК КоличествоКт,
| 0 КАК СуммаНУКт,
| 0 КАК СуммаПРКт,
| 0 КАК СуммаВРКт,
| ""НДС при приобретении товаров (налоговый агент)"" КАК Содержание
|
|ИЗ
| ДокументыКОтражению КАК ДокументыКОтражению
|
| ВНУТРЕННЕЕ СОЕДИНЕНИЕ
| Документ.СчетФактураПолученныйНалоговыйАгент КАК Операция
| ПО
| ДокументыКОтражению.Ссылка = Операция.Ссылка
|
| ВНУТРЕННЕЕ СОЕДИНЕНИЕ
| РегистрНакопления.НДСПредъявленный КАК НДСПредъявленный
| ПО
| НДСПредъявленный.Регистратор = Операция.Ссылка
| И НЕ НДСПредъявленный.РегламентнаяОперация
|
| ЛЕВОЕ СОЕДИНЕНИЕ ВТВводСобственныхСредств КАК ВводСобственныхСредств
| ПО ДокументыКОтражению.Ссылка = ВводСобственныхСредств.Ссылка
| И НДСПредъявленный.СчетФактура = ВводСобственныхСредств.СчетФактура
| И НДСПредъявленный.НаправлениеДеятельности = ВводСобственныхСредств.ИсходноеНаправлениеДеятельности
|";
#КонецОбласти
#Область УменьшениеНДСНалоговогоАгента
УменьшениеНДСНалоговогоАгента = "
|ВЫБРАТЬ
|
| Операция.Ссылка КАК Ссылка,
| Операция.Дата КАК Период,
| Операция.Организация КАК Организация,
| НДСПредъявленный.ИдентификаторСтроки КАК ИдентификаторСтроки,
|
| -НДСПредъявленный.НДС КАК Сумма,
| -НДСПредъявленный.НДСУпр КАК СуммаУУ,
|
| НЕОПРЕДЕЛЕНО КАК ВидСчетаДт,
| НЕОПРЕДЕЛЕНО КАК АналитикаУчетаДт,
| НЕОПРЕДЕЛЕНО КАК МестоУчетаДт,
|
| ЗНАЧЕНИЕ(Справочник.Валюты.ПустаяСсылка) КАК ВалютаДт,
| ЗНАЧЕНИЕ(Справочник.СтруктураПредприятия.ПустаяСсылка) КАК ПодразделениеДт,
| ЗНАЧЕНИЕ(Справочник.НаправленияДеятельности.ПустаяСсылка) КАК НаправлениеДеятельностиДт,
|
| ЗНАЧЕНИЕ(ПланСчетов.Хозрасчетный.НДСНалоговогоАгентаПоОтдельнымВидамТоваров) КАК СчетДт,
|
| ЗНАЧЕНИЕ(Перечисление.ВидыПлатежейВГосБюджет.Налог) КАК СубконтоДт1,
| НЕОПРЕДЕЛЕНО КАК СубконтоДт2,
| НЕОПРЕДЕЛЕНО КАК СубконтоКд3,
|
| 0 КАК ВалютнаяСуммаДт,
| 0 КАК КоличествоДт,
| 0 КАК СуммаНУДт,
| 0 КАК СуммаПРДт,
| 0 КАК СуммаВРДт,
|
| НЕОПРЕДЕЛЕНО КАК ВидСчетаКт,
| НЕОПРЕДЕЛЕНО КАК ГруппаФинансовогоУчетаКт,
| НЕОПРЕДЕЛЕНО КАК МестоУчетаКт,
|
| ЗНАЧЕНИЕ(Справочник.Валюты.ПустаяСсылка) КАК ВалютаКт,
| ЗНАЧЕНИЕ(Справочник.СтруктураПредприятия.ПустаяСсылка) КАК ПодразделениеКт,
| ЗНАЧЕНИЕ(Справочник.НаправленияДеятельности.ПустаяСсылка) КАК НаправлениеДеятельностиКт,
|
| ЗНАЧЕНИЕ(ПланСчетов.Хозрасчетный.РасчетыНДСНалоговогоАгента) КАК СчетКт,
|
| Операция.Контрагент КАК СубконтоКт1,
| НЕОПРЕДЕЛЕНО КАК СубконтоКт2,
| НЕОПРЕДЕЛЕНО КАК СубконтоКт3,
|
| 0 КАК ВалютнаяСуммаКт,
| 0 КАК КоличествоКт,
| 0 КАК СуммаНУКт,
| 0 КАК СуммаПРКт,
| 0 КАК СуммаВРКт,
| ""Уменьшение НДС налогового агента"" КАК Содержание
|ИЗ
| ДокументыКОтражению КАК ДокументыКОтражению
|
| ВНУТРЕННЕЕ СОЕДИНЕНИЕ
| Документ.СчетФактураПолученныйНалоговыйАгент КАК Операция
| ПО
| ДокументыКОтражению.Ссылка = Операция.Ссылка
|
| ВНУТРЕННЕЕ СОЕДИНЕНИЕ
| РегистрНакопления.НДСПредъявленный КАК НДСПредъявленный
| ПО
| НДСПредъявленный.Регистратор = Операция.Ссылка
| И НЕ НДСПредъявленный.РегламентнаяОперация
| И НДСПредъявленный.НДС < 0
|ГДЕ
| Операция.Корректировочный
|";
#КонецОбласти
ТекстыОтражения = Новый Массив;
ТекстыОтражения.Добавить(НачислениеНДСНалоговогоАгента);
ТекстыОтражения.Добавить(ЗакупкаНДСНалоговогоАгента);
ТекстыОтражения.Добавить(УменьшениеНДСНалоговогоАгента);
Возврат СтрСоединить(ТекстыОтражения, ОбщегоНазначенияУТ.РазделительЗапросовВОбъединении());
КонецФункции
Функция ТекстЗапросаВТОтраженияВРеглУчете() Экспорт
Возврат "";
КонецФункции
Функция ПараметрыЗаполненияПоСчетуФактуре(СчетФактура) Экспорт
УстановитьПривилегированныйРежим(Истина);
ПараметрыЗаполнения = Новый Структура("Основания, ДатаКорректировки");
ПараметрыЗаполнения.Вставить("Корректировочный", Ложь);
ПараметрыЗаполнения.Вставить("Исправление", Ложь);
Запрос = Новый Запрос(
"ВЫБРАТЬ ПЕРВЫЕ 1
| СчетФактураПолученный.Ссылка КАК Ссылка
|ИЗ
| Документ.СчетФактураПолученныйНалоговыйАгент КАК СчетФактураПолученный
| ВНУТРЕННЕЕ СОЕДИНЕНИЕ Документ.СчетФактураПолученныйНалоговыйАгент.ДокументыОснования КАК ОснованийКоррективочныхСФ
| ПО СчетФактураПолученный.Ссылка = ОснованийКоррективочныхСФ.ИсходныйДокумент
| И НЕ СчетФактураПолученный.Исправление
| И (ОснованийКоррективочныхСФ.Ссылка.Проведен)
|ГДЕ
| СчетФактураПолученный.Ссылка = &Ссылка
|
|ОБЪЕДИНИТЬ ВСЕ
|
|ВЫБРАТЬ ПЕРВЫЕ 1
| СчетФактураПолученный.Ссылка КАК Ссылка
|ИЗ
| Документ.СчетФактураПолученныйНалоговыйАгент КАК СчетФактураПолученный
| ВНУТРЕННЕЕ СОЕДИНЕНИЕ Документ.СчетФактураПолученныйНалоговыйАгент.ДокументыОснования КАК ОснованийКоррективочныхСФ
| ПО СчетФактураПолученный.СчетФактураОснование = ОснованийКоррективочныхСФ.ИсходныйДокумент
| И СчетФактураПолученный.Исправление
| И (ОснованийКоррективочныхСФ.Ссылка.Проведен)
|ГДЕ
| СчетФактураПолученный.Ссылка = &Ссылка
|");
Запрос.УстановитьПараметр("Ссылка", СчетФактура);
РезультатЗапроса = Запрос.Выполнить();
УстановитьПривилегированныйРежим(Ложь);
Если РезультатЗапроса.Пустой() Тогда
ПараметрыЗаполнения.Исправление = Истина;
КонецЕсли;
Возврат ПараметрыЗаполнения;
КонецФункции
#Область ДляВызоваИзДругихПодсистем
Процедура ПриЗаполненииОграниченияДоступа(Ограничение) Экспорт
Ограничение.Текст =
"РазрешитьЧтениеИзменение
|ГДЕ
| ВЫБОР
| КОГДА ТипЗначения(Контрагент) = Тип(Справочник.Организации)
| ТОГДА ЗначениеРазрешено(Организация) ИЛИ ЗначениеРазрешено(Контрагент)
| ИНАЧЕ ЗначениеРазрешено(Организация) И ЗначениеРазрешено(Контрагент.Партнер)
| КОНЕЦ";
КонецПроцедуры
#КонецОбласти
Процедура ПриОпределенииНастроекВерсионированияОбъектов(Настройки) Экспорт
КонецПроцедуры
#КонецОбласти
#Область СлужебныеПроцедурыИФункции
#Область Проведение
Функция ДополнительныеИсточникиДанныхДляДвижений(ИмяРегистра) Экспорт
ИсточникиДанных = Новый Соответствие;
Возврат ИсточникиДанных;
КонецФункции
Процедура ЗаполнитьПараметрыИнициализации(Запрос, ДокументСсылка)
Запрос.МенеджерВременныхТаблиц = Новый МенеджерВременныхТаблиц;
Запрос.УстановитьПараметр("Ссылка", ДокументСсылка);
Запрос.Текст =
"ВЫБРАТЬ
| ДанныеДокумента.ДатаСоставления КАК Период,
| ДанныеДокумента.Дата КАК ДатаПолучения,
| ДанныеДокумента.Организация КАК Организация,
| ДанныеДокумента.Контрагент КАК Контрагент,
| ДанныеДокумента.ИННКонтрагента КАК ИННКонтрагента,
| ДанныеДокумента.КППКонтрагента КАК КППКонтрагента,
| ДанныеДокумента.Корректировочный КАК Корректировочный,
| ДанныеДокумента.Исправление КАК Исправление,
| ВЫБОР
| КОГДА ДанныеДокумента.ПолученВЭлектронномВиде ТОГДА
| 2
| ИНАЧЕ
| 1
| КОНЕЦ КАК ПолученВЭлектронномВиде,
| ДанныеДокумента.КодВидаОперации КАК КодВидаОперации,
| ДанныеДокумента.Номер КАК Номер,
| ДанныеДокумента.Номер КАК НомерНаПечать,
| ДанныеДокумента.НомерИсправления КАК НомерИсправления,
| ДанныеДокумента.ДатаИсправления КАК ДатаИсправления,
| ДанныеДокумента.Валюта КАК Валюта,
| ДанныеДокумента.Валюта КАК ВалютаСчетаФактуры,
| ДанныеДокумента.СчетФактураОснование КАК СчетФактураОснование,
| ДанныеДокумента.Подразделение КАК Подразделение,
| ДанныеДокумента.Партнер КАК Партнер,
| ДанныеДокумента.Договор КАК Договор,
| ДанныеДокумента.Склад КАК Склад,
| ДанныеДокумента.НаправлениеДеятельности КАК НаправлениеДеятельности,
| ДанныеДокумента.Ответственный КАК Ответственный,
| ДанныеДокумента.Комментарий КАК Комментарий,
| ДанныеДокумента.Проведен КАК Проведен,
| ДанныеДокумента.ПометкаУдаления КАК ПометкаУдаления,
| ДанныеДокумента.ХозяйственнаяОперация КАК ХозяйственнаяОперация,
| ДанныеДокумента.РучнаяКорректировкаЖурналаСФ КАК РучнаяКорректировкаЖурналаСФ,
| ДанныеДокумента.ДатаПереходаПраваСобственности КАК ДатаПереходаПраваСобственности,
| ДанныеДокумента.КодВидаОперацииНаУменьшение КАК КодВидаОперацииНаУменьшение,
| ДанныеДокумента.СчетФактураОснование.Дата КАК ДатаСчетФактураОснование,
| ДанныеДокумента.Организация.ВалютаРегламентированногоУчета КАК ВалютаРегламентированногоУчета
|ИЗ
| Документ.СчетФактураПолученныйНалоговыйАгент КАК ДанныеДокумента
|ГДЕ
| ДанныеДокумента.Ссылка = &Ссылка";
Результат = Запрос.Выполнить();
Реквизиты = Результат.Выбрать();
Реквизиты.Следующий();
Для Каждого Колонка Из Результат.Колонки Цикл
Запрос.УстановитьПараметр(Колонка.Имя, Реквизиты[Колонка.Имя]);
КонецЦикла;
Запрос.УстановитьПараметр("Период", Реквизиты.ДатаПолучения);
Запрос.УстановитьПараметр("ДатаСоставления", Реквизиты.Период);
Запрос.УстановитьПараметр("ИдентификаторМетаданных", ОбщегоНазначения.ИдентификаторОбъектаМетаданных("Документ.СчетФактураПолученныйНалоговыйАгент"));
Запрос.УстановитьПараметр("СтатьяРасходов", ПланыВидовХарактеристик.СтатьиРасходов.НДСНалоговогоАгента);
УчетНДСРФ.УстановитьПараметрыЗапросаПроведенияПоЖурналуСчетаФактурыПолученного(Реквизиты, Запрос);
ИнформацияПоИсправлению = "";
Если ЗначениеЗаполнено(Реквизиты.ДатаИсправления)
И ЗначениеЗаполнено(Реквизиты.НомерИсправления) Тогда
Если Реквизиты.Исправление Тогда
ШаблонСтроки = "ru = 'Исправление %1 от %2'";
КонецЕсли;
Если Реквизиты.Корректировочный Тогда
ШаблонСтроки = "ru = 'Исправление %1 от %2 (корректировочный)'";
КонецЕсли;
ИнформацияПоИсправлению = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
ШаблонСтроки,
Реквизиты.НомерИсправления,
Реквизиты.ДатаИсправления);
КонецЕсли;
Запрос.УстановитьПараметр("ИнформацияПоИсправлению", ИнформацияПоИсправлению);
РасчетСебестоимостиПрикладныеАлгоритмы.ЗаполнитьПараметрыИнициализации(Запрос, Реквизиты);
КонецПроцедуры
Функция ТекстЗапросаВтСторнируемыеКорректировки()
ТекстЗапроса =
"ВЫБРАТЬ
| Документы.ДокументОснование КАК СторнируемаяКорректировка
|ПОМЕСТИТЬ ВтСторнируемыеКорректировки
|ИЗ
| Документ.СчетФактураПолученныйНалоговыйАгент.ДокументыОснования КАК Документы
| ВНУТРЕННЕЕ СОЕДИНЕНИЕ Документ.СчетФактураПолученныйНалоговыйАгент КАК СчетФактура
| ПО Документы.Ссылка = СчетФактура.Ссылка
|ГДЕ
| &Исправление
| И &Корректировочный
| И СчетФактура.Ссылка <> &Ссылка
| И СчетФактура.Номер ПОДОБНО &Номер
| И Документы.ДокументОснование ССЫЛКА Документ.КорректировкаПриобретения
| И НАЧАЛОПЕРИОДА(СчетФактура.ДатаСоставления, ДЕНЬ) = НАЧАЛОПЕРИОДА(&Период, ДЕНЬ)
| И СчетФактура.Корректировочный
| И НЕ СчетФактура.Исправление
| И СчетФактура.Проведен";
Возврат ТекстЗапроса;
КонецФункции
Функция ТекстЗапросаВтДокументыОснования()
ТекстЗапроса =
"ВЫБРАТЬ ПЕРВЫЕ 1
| ВтСторнируемыеКорректировки.СторнируемаяКорректировка КАК ДокументОснование
|ПОМЕСТИТЬ СторнируемыеКорректировки
|ИЗ
| ВтСторнируемыеКорректировки КАК ВтСторнируемыеКорректировки
|;
|
|ВЫБРАТЬ
| ВЫБОР
| КОГДА &Корректировочный И &Исправление
| ТОГДА СторнируемыеКорректировки.ДокументОснование
| КОГДА &Корректировочный И НЕ &Исправление
| ТОГДА ДокументыОснования.ДокументОснование
| ИНАЧЕ
| ЕСТЬNULL(КорректировкаПриобретения.ДокументОснование,ДокументыОснования.ДокументОснование)
| КОНЕЦ КАК КорректируемыйДокумент,
| ВЫБОР
| КОГДА КорректировкаПриобретения.Номер ЕСТЬ NULL ТОГДА
| ДанныеПервичныхДокументов.ДатаРегистратора
| КОГДА &Корректировочный ТОГДА
| ДокументыОснования.ДатаИсходногоДокумента
| ИНАЧЕ
| ДокументыОснования.ДокументОснование.Дата
| КОНЕЦ КАК ПериодКорректировки,
| ДокументыОснования.ИдентификаторСтроки КАК ИдентификаторСтроки,
| ДокументыОснования.ДокументОснование КАК ДокументОснование,
| ДанныеПервичныхДокументов.ДатаРегистратора КАК ДатаДокументаОснования,
| &ДатаПереходаПраваСобственности КАК ДатаПереходаПраваСобственности,
| ДокументыОснования.ЗакупкаПодДеятельность КАК ЗакупкаПодДеятельность,
| ДокументыОснования.НаправлениеДеятельности КАК НаправлениеДеятельности,
| ДокументыОснования.ИсходныйДокумент КАК ИсходныйДокумент,
| ДокументыОснования.НомерИсходногоДокумента КАК НомерИсходногоДокумента,
| ДокументыОснования.ДатаИсходногоДокумента КАК ДатаИсходногоДокумента,
| ДокументыОснования.НомерИсправленияИсходногоДокумента КАК НомерИсправленияИсходногоДокумента,
| ДокументыОснования.ДатаИсправленияИсходногоДокумента КАК ДатаИсправленияИсходногоДокумента,
| ДокументыОснования.НалоговаяБаза КАК НалоговаяБаза,
| ДокументыОснования.НалоговаяБаза - ДокументыОснования.СуммаНДС КАК СуммаБезНДС,
| ДокументыОснования.СтавкаНДС КАК СтавкаНДС,
| ДокументыОснования.СуммаНДС КАК НДС,
| ДокументыОснования.СуммаНДС * &КоэффициентПересчетаВВалютуУпр КАК СуммаНДСУпр,
| ВЫБОР
| КОГДА &УправленческийУчетОрганизаций
| ТОГДА ДокументыОснования.СуммаНДС * &КоэффициентПересчетаВВалютуУпр
| ИНАЧЕ 0
| КОНЕЦ КАК НДСУпр
|ПОМЕСТИТЬ ВтДокументыОснования
|ИЗ
| Документ.СчетФактураПолученныйНалоговыйАгент.ДокументыОснования КАК ДокументыОснования
| ЛЕВОЕ СОЕДИНЕНИЕ Документ.КорректировкаПриобретения КАК КорректировкаПриобретения
| ПО ДокументыОснования.ДокументОснование = КорректировкаПриобретения.Ссылка
| ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ДанныеПервичныхДокументов КАК ДанныеПервичныхДокументов
| ПО ДанныеПервичныхДокументов.Организация = &Организация
| И ДанныеПервичныхДокументов.Документ = ДокументыОснования.ДокументОснование
| ЛЕВОЕ СОЕДИНЕНИЕ СторнируемыеКорректировки
| ПО (ИСТИНА)
|ГДЕ
| ДокументыОснования.Ссылка = &Ссылка
| И &Организация <> ЗНАЧЕНИЕ(Справочник.Организации.УправленческаяОрганизация)
|;
|УНИЧТОЖИТЬ СторнируемыеКорректировки
|";
Возврат ТекстЗапроса;
КонецФункции
Процедура УстановитьПараметрВалютаОснования(Запрос)
Если Запрос.Параметры.Свойство("ВалютаОснования") Тогда
Возврат;
КонецЕсли;
Если Запрос.Параметры.Ссылка.ДокументыОснования.Количество()
И ЗначениеЗаполнено(Запрос.Параметры.Ссылка.ДокументыОснования[0].ДокументОснование) Тогда
ДокументОснование = Запрос.Параметры.Ссылка.ДокументыОснования[0].ДокументОснование;
ВалютаОснования = ОбщегоНазначения.ЗначениеРеквизитаОбъекта(ДокументОснование, "Валюта");
Иначе
ВалютаОснования = Справочники.Валюты.ПустаяСсылка();
КонецЕсли;
Запрос.УстановитьПараметр("ВалютаОснования", ВалютаОснования);
КонецПроцедуры
Процедура УстановитьПараметрКоэффициентПересчетаВВалютуРегл(Запрос)
Если Запрос.Параметры.Свойство("КоэффициентПересчетаВВалютуРегл") Тогда
Возврат;
КонецЕсли;
УстановитьПараметрВалютаОснования(Запрос);
Коэффициенты = РаботаСКурсамиВалютУТ.ПолучитьКоэффициентыПересчетаВалюты(
Запрос.Параметры.ВалютаОснования,
Запрос.Параметры.ВалютаОснования,
Запрос.Параметры.Период,
Запрос.Параметры.Организация);
Запрос.УстановитьПараметр("КоэффициентПересчетаВВалютуРегл", Коэффициенты.КоэффициентПересчетаВВалютуРегл);
КонецПроцедуры
Процедура УстановитьПараметрКоэффициентПересчетаВВалютуУпр(Запрос)
Если Запрос.Параметры.Свойство("КоэффициентПересчетаВВалютуУпр") Тогда
Возврат;
КонецЕсли;
КоэффициентПересчетаВВалютуУпр = РаботаСКурсамиВалютУТ.ПолучитьКоэффициентПересчетаИзВалютыВВалюту(
Запрос.Параметры.ВалютаРегламентированногоУчета,
Константы.ВалютаУправленческогоУчета.Получить(),
Запрос.Параметры.Период);
Запрос.УстановитьПараметр("КоэффициентПересчетаВВалютуУпр", КоэффициентПересчетаВВалютуУпр);
КонецПроцедуры
Процедура ИнициализироватьВтТаблицаСуммДокументов(Запрос, ТекстыЗапроса)
Если Запрос.Параметры.Свойство("ВтТаблицаСуммДокументовИнициализирована") Тогда
Возврат;
КонецЕсли;
УстановитьПараметрКоэффициентПересчетаВВалютуУпр(Запрос);
ОбщийМассив = Новый Массив();
ОбщийМассив.Добавить(ТекстЗапросаВтСторнируемыеКорректировки());
ОбщийМассив.Добавить(ТекстЗапросаВтДокументыОснования());
ЗапросТаблицаСуммДокументов = Новый Запрос;
ЗапросТаблицаСуммДокументов.МенеджерВременныхТаблиц = Запрос.МенеджерВременныхТаблиц;
ЗапросТаблицаСуммДокументов.УстановитьПараметр("Исправление", Запрос.Параметры.Исправление);
ЗапросТаблицаСуммДокументов.УстановитьПараметр("Корректировочный", Запрос.Параметры.Корректировочный);
ЗапросТаблицаСуммДокументов.УстановитьПараметр("ДатаИсправления", Запрос.Параметры.ДатаИсправления);
ЗапросТаблицаСуммДокументов.УстановитьПараметр("КодВидаОперации", Запрос.Параметры.КодВидаОперации);
ЗапросТаблицаСуммДокументов.УстановитьПараметр("КодВидаОперацииНаУменьшение", Запрос.Параметры.КодВидаОперацииНаУменьшение);
ЗапросТаблицаСуммДокументов.УстановитьПараметр("Номер", Запрос.Параметры.Номер);
ЗапросТаблицаСуммДокументов.УстановитьПараметр("Ссылка", Запрос.Параметры.Ссылка);
ЗапросТаблицаСуммДокументов.УстановитьПараметр("Организация", Запрос.Параметры.Организация);
ЗапросТаблицаСуммДокументов.УстановитьПараметр("Подразделение", Запрос.Параметры.Подразделение);
ЗапросТаблицаСуммДокументов.УстановитьПараметр("Партнер", Запрос.Параметры.Партнер);
ЗапросТаблицаСуммДокументов.УстановитьПараметр("Период", Запрос.Параметры.Период);
ЗапросТаблицаСуммДокументов.УстановитьПараметр("УправленческийУчетОрганизаций", Запрос.Параметры.УправленческийУчетОрганизаций);
ЗапросТаблицаСуммДокументов.УстановитьПараметр("КоэффициентПересчетаВВалютуУпр", Запрос.Параметры.КоэффициентПересчетаВВалютуУпр);
ЗапросТаблицаСуммДокументов.УстановитьПараметр("ИдентификаторМетаданных", Запрос.Параметры.ИдентификаторМетаданных);
ЗапросТаблицаСуммДокументов.УстановитьПараметр("ДатаПереходаПраваСобственности", Запрос.Параметры.ДатаПереходаПраваСобственности);
УстановитьПараметрВалютаОснования(ЗапросТаблицаСуммДокументов);
УстановитьПараметрКоэффициентПересчетаВВалютуРегл(ЗапросТаблицаСуммДокументов);
ТекстЗапроса ="
|
|ВЫБРАТЬ
| ДокументыОснования.ИдентификаторСтроки КАК ИдентификаторСтроки,
| ВЫБОР
| КОГДА НЕ КорректировкаПриобретения.Ссылка ЕСТЬ NULL
| И ДокументыОснования.НДС < 0
| ТОГДА ЗНАЧЕНИЕ(Перечисление.ВидыЦенностей.ВосстановлениеПоКСФ)
| ИНАЧЕ ЗНАЧЕНИЕ(Перечисление.ВидыЦенностей.ТоварыНалоговыйАгент)
| КОНЕЦ КАК ВидЦенности,
| ДокументыОснования.СтавкаНДС КАК СтавкаНДС,
| ДокументыОснования.СуммаБезНДС КАК СуммаБезНДС,
| ДокументыОснования.НДС КАК СуммаНДС,
| ДокументыОснования.НалоговаяБаза КАК СуммаПоСчетуФактуреЖурнал,
| ДокументыОснования.НДС КАК СуммаНДСЖурнал,
| ДокументыОснования.НДСУпр КАК НДСУпр,
| ДокументыОснования.СуммаНДСУпр КАК СуммаНДСУпр,
| ДокументыОснования.ДокументОснование КАК ДокументОснование,
| ДокументыОснования.ЗакупкаПодДеятельность КАК ЗакупкаПодДеятельность,
| ДокументыОснования.ДатаПереходаПраваСобственности КАК ДатаПереходаПраваСобственности,
| ЗНАЧЕНИЕ(Перечисление.ТипыНалогообложенияНДС.ОблагаетсяНДСУПокупателя) КАК НалогообложениеНДС,
| &Подразделение КАК Подразделение,
| ДокументыОснования.НаправлениеДеятельности КАК НаправлениеДеятельности,
| &Партнер КАК Партнер,
| ВЫБОР
| КОГДА ДокументыОснования.НДС < 0
| ТОГДА &КодВидаОперацииНаУменьшение
| ИНАЧЕ &КодВидаОперации
| КОНЕЦ КАК КодВидаОперации
|ПОМЕСТИТЬ ВтТаблицаСуммДокументов
|ИЗ
| ВтДокументыОснования КАК ДокументыОснования
|
| ЛЕВОЕ СОЕДИНЕНИЕ
| Документ.КорректировкаПриобретения КАК КорректировкаПриобретения
| ПО
| ДокументыОснования.ДокументОснование = КорректировкаПриобретения.Ссылка
|";
Если Запрос.Параметры.Исправление Тогда
ТекстЗапроса = СтрЗаменить(ТекстЗапроса, "ДокументыОснования.ДокументОснование", "ДокументыОснования.КорректируемыйДокумент");
ТекстЗапроса = ТекстЗапроса
+ " ОБЪЕДИНИТЬ ВСЕ " + ТекстЗапросаВтТаблицаКорректировки(Запрос, ТекстыЗапроса, Истина);
ОбщийМассив.Добавить(ТекстЗапросаВтПрошлыеКорректировки());
КонецЕсли;
ОбщийМассив.Добавить(ТекстЗапроса);
ЗапросТаблицаСуммДокументов.Текст = СтрСоединить(ОбщийМассив, ОбщегоНазначения.РазделительПакетаЗапросов());
ЗапросТаблицаСуммДокументов.Выполнить();
Запрос.УстановитьПараметр("ВтТаблицаСуммДокументовИнициализирована", Истина);
КонецПроцедуры
Функция ТекстЗапросаВтПрошлыеКорректировки()
ТекстЗапроса =
"ВЫБРАТЬ
| ДокументыОснования.ИдентификаторСтроки КАК ИдентификаторСтроки,
| ДокументыОснования.КорректируемыйДокумент КАК КорректируемыйДокумент,
| ДокументыОснования.СтавкаНДС КАК СтавкаНДС,
| ДокументыОснования.СуммаБезНДС КАК СуммаБезНДС,
| ДокументыОснования.НДС КАК НДС,
| ДокументыОснования.НалоговаяБаза КАК НалоговаяБаза,
| ДокументыОснования.НДСУпр КАК НДСУпр,
| ДокументыОснования.СуммаНДСУпр КАК СуммаНДСУпр,
| ДокументыОснования.ЗакупкаПодДеятельность КАК ЗакупкаПодДеятельность,
| КорректировкаПриобретения.Ссылка КАК ДокументОснование
|ПОМЕСТИТЬ ВтПрошлыеКорректировки
|ИЗ
| ВтДокументыОснования КАК ДокументыОснования
| ВНУТРЕННЕЕ СОЕДИНЕНИЕ Документ.КорректировкаПриобретения КАК КорректировкаПриобретения
| ПО ДокументыОснования.КорректируемыйДокумент = КорректировкаПриобретения.ДокументОснование
|ГДЕ
| &Исправление
| И КорректировкаПриобретения.Проведен
| И КорректировкаПриобретения.Дата < ДокументыОснования.ДатаДокументаОснования
|
|ОБЪЕДИНИТЬ ВСЕ
|
|ВЫБРАТЬ
| ДокументыОснования.ИдентификаторСтроки КАК ИдентификаторСтроки,
| ДокументыОснования.КорректируемыйДокумент КАК КорректируемыйДокумент,
| ДокументыОснования.СтавкаНДС КАК СтавкаНДС,
| ДокументыОснования.СуммаБезНДС КАК СуммаБезНДС,
| ДокументыОснования.НДС КАК НДС,
| ДокументыОснования.НалоговаяБаза КАК НалоговаяБаза,
| ДокументыОснования.НДСУпр КАК НДСУпр,
| ДокументыОснования.СуммаНДСУпр КАК СуммаНДСУпр,
| ДокументыОснования.ЗакупкаПодДеятельность КАК ЗакупкаПодДеятельность,
| ПриобретениеТоваровУслуг.Ссылка КАК ДокументОснование
|ИЗ
| ВтДокументыОснования КАК ДокументыОснования
| ВНУТРЕННЕЕ СОЕДИНЕНИЕ Документ.ПриобретениеТоваровУслуг КАК ПриобретениеТоваровУслуг
| ПО ДокументыОснования.КорректируемыйДокумент = ПриобретениеТоваровУслуг.Ссылка
|ГДЕ
| &Исправление
| И ДокументыОснования.КорректируемыйДокумент <> ДокументыОснования.ДокументОснование
|";
Возврат ТекстЗапроса;
КонецФункции
Функция ТекстЗапросаВтПрошлыеИсправленияКорректировки(Запрос, ТекстыЗапроса)
ИмяРегистра = "ВтПрошлыеИсправленияКорректировки";
ТекстЗапроса =
"ВЫБРАТЬ ПЕРВЫЕ 1
| ВтСторнируемыеКорректировки.СторнируемаяКорректировка КАК ДокументОснование
|ПОМЕСТИТЬ СторнируемыеКорректировки
|ИЗ
| ВтСторнируемыеКорректировки КАК ВтСторнируемыеКорректировки
|;
|
|ВЫБРАТЬ РАЗЛИЧНЫЕ
| ДанныеТабличнойЧасти.ДокументОснование КАК ДокументКорректировки,
| СторнируемыеКорректировки.ДокументОснование КАК ДокументОснование
|ПОМЕСТИТЬ ВтПрошлыеИсправленияКорректировки
|ИЗ
| Документ.СчетФактураПолученныйНалоговыйАгент.ДокументыОснования КАК ДанныеТабличнойЧасти
| ВНУТРЕННЕЕ СОЕДИНЕНИЕ Документ.СчетФактураПолученныйНалоговыйАгент КАК СчетФактураПолученный
| ПО ДанныеТабличнойЧасти.Ссылка = СчетФактураПолученный.Ссылка
| ВНУТРЕННЕЕ СОЕДИНЕНИЕ СторнируемыеКорректировки
| ПО (ИСТИНА)
| ВНУТРЕННЕЕ СОЕДИНЕНИЕ ВтДокументыОснования КАК Основания
| ПО (ИСТИНА)
|ГДЕ
| &Исправление
| И &Корректировочный
| И СчетФактураПолученный.Ссылка <> &Ссылка
| И ДанныеТабличнойЧасти.ДокументОснование ССЫЛКА Документ.КорректировкаПриобретения
| И СчетФактураПолученный.Номер ПОДОБНО &Номер
| И НАЧАЛОПЕРИОДА(СчетФактураПолученный.ДатаСоставления, ДЕНЬ) = НАЧАЛОПЕРИОДА(&Период, ДЕНЬ)
| И НАЧАЛОПЕРИОДА(СчетФактураПолученный.ДатаИсправления,ДЕНЬ) < НАЧАЛОПЕРИОДА(&ДатаИсправления, ДЕНЬ)
| И СчетФактураПолученный.Корректировочный
| И СчетФактураПолученный.Проведен
| И ДанныеТабличнойЧасти.ДокументОснование <> Основания.ДокументОснование";
ТекстыЗапроса.Добавить(ТекстЗапроса, ИмяРегистра);
Возврат ТекстЗапроса;
КонецФункции
Функция ТекстЗапросаВтТаблицаКорректировки(Запрос, ТекстыЗапроса, ПрошлыеКорректировки = Ложь)
ИмяРегистра = "ВтТаблицаКорректировки";
УстановитьПараметрВалютаОснования(Запрос);
УстановитьПараметрКоэффициентПересчетаВВалютуРегл(Запрос);
#Область ТекстКорректировкаПриобретенияРасхождения
ТекстКорректировкаПриобретенияРасхождения = "
|
|ВЫБРАТЬ
| ДокументыОснования.ИдентификаторСтроки КАК ИдентификаторСтроки,
| ЗНАЧЕНИЕ(Перечисление.ВидыЦенностей.ТоварыНалоговыйАгент) КАК ВидЦенности,
| ДокументыОснования.СтавкаНДС КАК СтавкаНДС,
| ДокументыОснования.СуммаБезНДС КАК СуммаБезНДС,
| ДокументыОснования.НДС КАК СуммаНДС,
| ДокументыОснования.НалоговаяБаза КАК СуммаПоСчетуФактуреЖурнал,
| ДокументыОснования.НДС КАК СуммаНДСЖурнал,
| ДокументыОснования.НДСУпр КАК НДСУпр,
| ДокументыОснования.СуммаНДСУпр КАК СуммаНДСУпр,
| ДокументыОснования.КорректируемыйДокумент КАК Основание,
| ВЫРАЗИТЬ(КорректировкаПриобретения.ДокументОснование КАК Документ.ПриобретениеТоваровУслуг).ЗакупкаПодДеятельность КАК ЗакупкаПодДеятельность,
| &ДатаПереходаПраваСобственности КАК ДатаПереходаПраваСобственности,
| КорректировкаПриобретения.НалогообложениеНДС КАК НалогообложениеНДС,
| КорректировкаПриобретения.Подразделение КАК Подразделение,
| КорректировкаПриобретения.НаправлениеДеятельности КАК НаправлениеДеятельности,
| КорректировкаПриобретения.Партнер КАК Партнер,
| ВЫБОР
| КОГДА ДокументыОснования.НДС < 0
| ТОГДА &КодВидаОперацииНаУменьшение
| ИНАЧЕ &КодВидаОперации
| КОНЕЦ КАК КодВидаОперации
|ПОМЕСТИТЬ ВтТаблицаКорректировки
|ИЗ
| Документ.КорректировкаПриобретения КАК КорректировкаПриобретения
| ВНУТРЕННЕЕ СОЕДИНЕНИЕ ВтДокументыОснования КАК ДокументыОснования
| ПО КорректировкаПриобретения.Ссылка = ДокументыОснования.ДокументОснование
|ГДЕ
| &Исправление ИЛИ &Корректировочный
|
|";
#КонецОбласти
#Область ТекстПрошлыеИсправленияКорректировки
ТекстПрошлыеИсправленияКорректировки = "
|
|ВЫБРАТЬ
| ДокументыОснования.ИдентификаторСтроки КАК ИдентификаторСтроки,
| ЗНАЧЕНИЕ(Перечисление.ВидыЦенностей.ТоварыНалоговыйАгент) КАК ВидЦенности,
| ДокументыОснования.СтавкаНДС КАК СтавкаНДС,
| ДокументыОснования.СуммаБезНДС КАК СуммаБезНДС,
| ДокументыОснования.НДС КАК СуммаНДС,
| ДокументыОснования.НалоговаяБаза КАК СуммаПоСчетуФактуреЖурнал,
| ДокументыОснования.НДС КАК СуммаНДСЖурнал,
| ДокументыОснования.НДСУпр КАК НДСУпр,
| ДокументыОснования.СуммаНДСУпр КАК СуммаНДСУпр,
| ПрошлыеИсправленияКорректировки.ДокументОснование КАК Основание,
| ДокументыОснования.ЗакупкаПодДеятельность КАК ЗакупкаПодДеятельность,
| &ДатаПереходаПраваСобственности КАК ДатаПереходаПраваСобственности,
| ЗНАЧЕНИЕ(Перечисление.ТипыНалогообложенияНДС.ОблагаетсяНДСУПокупателя) КАК НалогообложениеНДС,
| &Подразделение КАК Подразделение,
| ДокументыОснования.НаправлениеДеятельности КАК НаправлениеДеятельности,
| &Партнер КАК Партнер,
| ВЫБОР
| КОГДА ДокументыОснования.НДС < 0
| ТОГДА &КодВидаОперацииНаУменьшение
| ИНАЧЕ &КодВидаОперации
| КОНЕЦ КАК КодВидаОперации
|ИЗ
| ВтДокументыОснования КАК ДокументыОснования
| ВНУТРЕННЕЕ СОЕДИНЕНИЕ ВтПрошлыеИсправленияКорректировки КАК ПрошлыеИсправленияКорректировки
| ПО ДокументыОснования.ДокументОснование = ПрошлыеИсправленияКорректировки.ДокументКорректировки
| ВНУТРЕННЕЕ СОЕДИНЕНИЕ Документ.КорректировкаПриобретения КАК КорректировкаПриобретения
| ПО ДокументыОснования.ДокументОснование = КорректировкаПриобретения.Ссылка
|
|";
#КонецОбласти
Если ПрошлыеКорректировки Тогда
ТекстЗапроса = ТекстКорректировкаПриобретенияРасхождения;
ТекстЗапроса = СтрЗаменить(ТекстЗапроса,"ВтДокументыОснования","ВтПрошлыеКорректировки");
ТекстЗапроса = СтрЗаменить(ТекстЗапроса,"ПОМЕСТИТЬ ВтТаблицаКорректировки","");
Иначе
Если Не ПроведениеДокументов.ЕстьТаблицаЗапроса("ВтПрошлыеИсправленияКорректировки", ТекстыЗапроса) Тогда
ТекстЗапросаВтПрошлыеИсправленияКорректировки(Запрос, ТекстыЗапроса);
КонецЕсли;
ТекстЗапроса = ТекстКорректировкаПриобретенияРасхождения
+ " ОБЪЕДИНИТЬ ВСЕ " + ТекстПрошлыеИсправленияКорректировки;
ТекстыЗапроса.Добавить(ТекстЗапроса, ИмяРегистра);
КонецЕсли;
Возврат ТекстЗапроса
КонецФункции
Функция ТекстЗапросаВтТаблицаДокументовДляКоррСФ(Запрос, ТекстыЗапроса)
ИмяРегистра = "ВтТаблицаДанныхДляЖурнала";
Если Не ПроведениеДокументов.ЕстьТаблицаЗапроса("ВтТаблицаКорректировки", ТекстыЗапроса) Тогда
ТекстЗапросаВтТаблицаКорректировки(Запрос, ТекстыЗапроса);
КонецЕсли;
ТекстЗапроса = "
|ВЫБРАТЬ
| ТаблицаДокументов.ИдентификаторСтроки,
| ТаблицаДокументов.НалогообложениеНДС,
| ТаблицаДокументов.ДокументОснование КАК ДокументОснование,
| ТаблицаДокументов.СуммаПоСчетуФактуреУменьшение,
| ТаблицаДокументов.СуммаНДСУменьшение,
| ТаблицаДокументов.СуммаПоСчетуФактуреУвеличение,
| ТаблицаДокументов.СуммаНДСУвеличение,
| ТаблицаДокументов.СуммаПоСчетуФактуреУменьшениеКомиссия,
| ТаблицаДокументов.СуммаНДСУменьшениеКомиссия,
| ТаблицаДокументов.СуммаПоСчетуФактуреУвеличениеКомиссия,
| ТаблицаДокументов.СуммаНДСУвеличениеКомиссия
|
|ПОМЕСТИТЬ ВтТаблицаДокументовДляКоррСФ
|
|ИЗ
| (ВЫБРАТЬ
| ТаблицаКорректировки.ИдентификаторСтроки КАК ИдентификаторСтроки,
| ТаблицаКорректировки.НалогообложениеНДС КАК НалогообложениеНДС,
| ТаблицаКорректировки.Основание КАК ДокументОснование,
| ВЫБОР
| КОГДА ТаблицаКорректировки.СуммаПоСчетуФактуреЖурнал < 0
| ТОГДА ТаблицаКорректировки.СуммаПоСчетуФактуреЖурнал
| ИНАЧЕ 0
| КОНЕЦ КАК СуммаПоСчетуФактуреУменьшение,
| ВЫБОР
| КОГДА ТаблицаКорректировки.СуммаНДСЖурнал < 0
| ТОГДА ТаблицаКорректировки.СуммаНДСЖурнал
| ИНАЧЕ 0
| КОНЕЦ КАК СуммаНДСУменьшение,
| ВЫБОР
| КОГДА ТаблицаКорректировки.СуммаПоСчетуФактуреЖурнал > 0
| ТОГДА ТаблицаКорректировки.СуммаПоСчетуФактуреЖурнал
| ИНАЧЕ 0
| КОНЕЦ КАК СуммаПоСчетуФактуреУвеличение,
| ВЫБОР
| КОГДА ТаблицаКорректировки.СуммаНДСЖурнал > 0
| ТОГДА ТаблицаКорректировки.СуммаНДСЖурнал
| ИНАЧЕ 0
| КОНЕЦ КАК СуммаНДСУвеличение,
| 0 КАК СуммаПоСчетуФактуреУменьшениеКомиссия,
| 0 КАК СуммаНДСУменьшениеКомиссия,
| 0 КАК СуммаПоСчетуФактуреУвеличениеКомиссия,
| 0 КАК СуммаНДСУвеличениеКомиссия
|
| ИЗ
| ВтТаблицаКорректировки КАК ТаблицаКорректировки) КАК ТаблицаДокументов
|";
ТекстыЗапроса.Добавить(ТекстЗапроса, ИмяРегистра);
Возврат ТекстЗапроса;
КонецФункции
Функция ТекстЗапросаВтТаблицаДанныхДляЖурнала(Запрос, ТекстыЗапроса)
ИмяРегистра = "ВтТаблицаДанныхДляЖурнала";
ИнициализироватьВтТаблицаСуммДокументов(Запрос, ТекстыЗапроса);
Если Не ПроведениеДокументов.ЕстьТаблицаЗапроса("ВтТаблицаКорректировки", ТекстыЗапроса) Тогда
ТекстЗапросаВтТаблицаКорректировки(Запрос, ТекстыЗапроса);
КонецЕсли;
Если Не ПроведениеДокументов.ЕстьТаблицаЗапроса("ВтТаблицаДокументовДляКоррСФ", ТекстыЗапроса) Тогда
ТекстЗапросаВтТаблицаДокументовДляКоррСФ(Запрос, ТекстыЗапроса);
КонецЕсли;
Если Не ПроведениеДокументов.ЕстьТаблицаЗапроса("ВтСторноКнигиПродаж", ТекстыЗапроса) Тогда
ТекстЗапросаВтСторноКнигиПродаж(Запрос, ТекстыЗапроса);
КонецЕсли;
ТекстЗапроса = "
|ВЫБРАТЬ
| ТаблицаДанныхДляЖурнала.НомерСчетаФактуры,
| ТаблицаДанныхДляЖурнала.ДатаСчетаФактуры,
| ТаблицаДанныхДляЖурнала.НомерКорректировочногоСчетаФактуры,
| ТаблицаДанныхДляЖурнала.ДатаКорректировочногоСчетаФактуры,
| ТаблицаДанныхДляЖурнала.НомерИсправления,
| ТаблицаДанныхДляЖурнала.ДатаИсправления,
| ТаблицаДанныхДляЖурнала.НомерИсправленияКорректировочногоСчетаФактуры,
| ТаблицаДанныхДляЖурнала.ДатаИсправленияКорректировочногоСчетаФактуры,
|
| ТаблицаДанныхДляЖурнала.СуммаПоСчетуФактуре,
| ТаблицаДанныхДляЖурнала.СуммаНДС,
| ТаблицаДанныхДляЖурнала.СуммаПоСчетуФактуреРазницаУменьшение,
| ТаблицаДанныхДляЖурнала.СуммаПоСчетуФактуреРазницаУвеличение,
| ТаблицаДанныхДляЖурнала.СуммаНДСРазницаУменьшение,
| ТаблицаДанныхДляЖурнала.СуммаНДСРазницаУвеличение,
|
| ТаблицаДанныхДляЖурнала.ПоСтавкеБезНДС,
| ТаблицаДанныхДляЖурнала.КодВидаСделки,
|
| ТаблицаДанныхДляЖурнала.СуммаПоСчетуФактуреКомиссия,
| ТаблицаДанныхДляЖурнала.СуммаНДСКомиссия,
| ТаблицаДанныхДляЖурнала.СуммаПоСчетуФактуреРазницаУменьшениеКомиссия,
| ТаблицаДанныхДляЖурнала.СуммаПоСчетуФактуреРазницаУвеличениеКомиссия,
| ТаблицаДанныхДляЖурнала.СуммаНДСРазницаУменьшениеКомиссия,
| ТаблицаДанныхДляЖурнала.СуммаНДСРазницаУвеличениеКомиссия,
|
| ТаблицаДанныхДляЖурнала.КодВидаОперацииКомиссия
|
|ПОМЕСТИТЬ ВтТаблицаДанныхДляЖурнала
|
|ИЗ
|
| (ВЫБРАТЬ
| &Номер КАК НомерСчетаФактуры,
| &ДатаСоставления КАК ДатаСчетаФактуры,
| NULL КАК НомерКорректировочногоСчетаФактуры,
| NULL КАК ДатаКорректировочногоСчетаФактуры,
| NULL КАК НомерИсправления,
| NULL КАК ДатаИсправления,
| NULL КАК НомерИсправленияКорректировочногоСчетаФактуры,
| NULL КАК ДатаИсправленияКорректировочногоСчетаФактуры,
|
| ТаблицаДанных.СуммаПоСчетуФактуре КАК СуммаПоСчетуФактуре,
| ТаблицаДанных.СуммаНДС КАК СуммаНДС,
| 0 КАК СуммаПоСчетуФактуреРазницаУменьшение,
| 0 КАК СуммаПоСчетуФактуреРазницаУвеличение,
| 0 КАК СуммаНДСРазницаУменьшение,
| 0 КАК СуммаНДСРазницаУвеличение,
|
| ВЫБОР
| КОГДА ТаблицаДанных.НалогообложениеНДС
| В (ЗНАЧЕНИЕ(Перечисление.ТипыНалогообложенияНДС.ПродажаНеОблагаетсяНДС),
| ЗНАЧЕНИЕ(Перечисление.ТипыНалогообложенияНДС.ПродажаОблагаетсяЕНВД))
| ТОГДА ИСТИНА
| ИНАЧЕ ЛОЖЬ
| КОНЕЦ КАК ПоСтавкеБезНДС,
| ТаблицаДанных.КодВидаСделки КАК КодВидаСделки,
|
| ТаблицаДанных.СуммаПоСчетуФактуреКомиссия КАК СуммаПоСчетуФактуреКомиссия,
| ТаблицаДанных.СуммаНДСКомиссия КАК СуммаНДСКомиссия,
| 0 КАК СуммаПоСчетуФактуреРазницаУменьшениеКомиссия,
| 0 КАК СуммаПоСчетуФактуреРазницаУвеличениеКомиссия,
| 0 КАК СуммаНДСРазницаУменьшениеКомиссия,
| 0 КАК СуммаНДСРазницаУвеличениеКомиссия,
|
| """" КАК КодВидаОперацииКомиссия
|
| ИЗ
| (ВЫБРАТЬ
| МАКСИМУМ(ТаблицаДокументов.НалогообложениеНДС) КАК НалогообложениеНДС,
| СУММА(ТаблицаДокументов.СуммаПоСчетуФактуре) КАК СуммаПоСчетуФактуре,
| СУММА(ТаблицаДокументов.СуммаНДС) КАК СуммаНДС,
| СУММА(ТаблицаДокументов.СуммаПоСчетуФактуреКомиссия) КАК СуммаПоСчетуФактуреКомиссия,
| СУММА(ТаблицаДокументов.СуммаНДСКомиссия) КАК СуммаНДСКомиссия,
| """" КАК КодВидаСделки
| ИЗ
| (ВЫБРАТЬ
| ТаблицаСуммДокументов.НалогообложениеНДС КАК НалогообложениеНДС,
| ТаблицаСуммДокументов.СуммаПоСчетуФактуреЖурнал КАК СуммаПоСчетуФактуре,
| ТаблицаСуммДокументов.СуммаНДСЖурнал КАК СуммаНДС,
| 0 КАК СуммаПоСчетуФактуреКомиссия,
| 0 КАК СуммаНДСКомиссия
| ИЗ
| ВтТаблицаСуммДокументов КАК ТаблицаСуммДокументов
|
| ) КАК ТаблицаДокументов
| ) КАК ТаблицаДанных
| ГДЕ
| НЕ &Исправление
| И НЕ &Корректировочный
|
| ОБЪЕДИНИТЬ ВСЕ
|
| ВЫБРАТЬ
| &Номер КАК НомерСчетаФактуры,
| &ДатаСоставления КАК ДатаИсходногоДокумента,
| NULL КАК НомерКорректировочногоСчетаФактуры,
| NULL КАК ДатаКорректировочногоСчетаФактуры,
| &НомерИсправления КАК НомерИсправления,
| &ДатаИсправления КАК ДатаИсправления,
| NULL КАК НомерИсправленияКорректировочногоСчетаФактуры,
| NULL КАК ДатаИсправленияКорректировочногоСчетаФактуры,
|
| ТаблицаДанныхИсправление.СуммаПоСчетуФактуре,
| ТаблицаДанныхИсправление.СуммаНДС,
| 0 КАК СуммаПоСчетуФактуреРазницаУменьшение,
| 0 КАК СуммаПоСчетуФактуреРазницаУвеличение,
| 0 КАК СуммаНДСРазницаУменьшение,
| 0 КАК СуммаНДСРазницаУвеличение,
|
| ВЫБОР
| КОГДА ЕстьNULL(ТаблицаДанныхИсправление.НалогообложениеКорректировки, ТаблицаДанныхИсправление.НалогообложениеОснования)
| В (ЗНАЧЕНИЕ(Перечисление.ТипыНалогообложенияНДС.ПродажаНеОблагаетсяНДС),
| ЗНАЧЕНИЕ(Перечисление.ТипыНалогообложенияНДС.ПродажаОблагаетсяЕНВД))
| ТОГДА ИСТИНА
| ИНАЧЕ ЛОЖЬ
| КОНЕЦ КАК ПоСтавкеБезНДС,
| ТаблицаДанныхИсправление.КодВидаСделки КАК КодВидаСделки,
|
| ТаблицаДанныхИсправление.СуммаПоСчетуФактуреКомиссия КАК СуммаПоСчетуФактуреКомиссия,
| ТаблицаДанныхИсправление.СуммаНДСКомиссия КАК СуммаНДСКомиссия,
| 0 КАК СуммаПоСчетуФактуреРазницаУменьшениеКомиссия,
| 0 КАК СуммаПоСчетуФактуреРазницаУвеличениеКомиссия,
| 0 КАК СуммаНДСРазницаУменьшениеКомиссия,
| 0 КАК СуммаНДСРазницаУвеличениеКомиссия,
|
| ВЫБОР
| КОГДА ТаблицаДанныхИсправление.СуммаПоСчетуФактуреКомиссия <> 0
| ТОГДА &КодВидаОперации
| ИНАЧЕ """"
| КОНЕЦ КАК КодВидаОперацииКомиссия
|
| ИЗ
| (ВЫБРАТЬ
| МАКСИМУМ(ТаблицаДокументов.НалогообложениеОснования) КАК НалогообложениеОснования,
| МАКСИМУМ(ТаблицаДокументов.НалогообложениеКорректировки) КАК НалогообложениеКорректировки,
| СУММА(ТаблицаДокументов.СуммаПоСчетуФактуре) КАК СуммаПоСчетуФактуре,
| СУММА(ТаблицаДокументов.СуммаНДС) КАК СуммаНДС,
| СУММА(ТаблицаДокументов.СуммаПоСчетуФактуреКомиссия) КАК СуммаПоСчетуФактуреКомиссия,
| СУММА(ТаблицаДокументов.СуммаНДСКомиссия) КАК СуммаНДСКомиссия,
| """" КАК КодВидаСделки
| ИЗ
| (ВЫБРАТЬ
| ТаблицаСуммДокументов.НалогообложениеНДС КАК НалогообложениеОснования,
| NULL КАК НалогообложениеКорректировки,
| ТаблицаСуммДокументов.СуммаПоСчетуФактуреЖурнал КАК СуммаПоСчетуФактуре,
| ТаблицаСуммДокументов.СуммаНДСЖурнал КАК СуммаНДС,
| 0 КАК СуммаПоСчетуФактуреКомиссия,
| 0 КАК СуммаНДСКомиссия
| ИЗ
| ВтТаблицаСуммДокументов КАК ТаблицаСуммДокументов
|
| ОБЪЕДИНИТЬ ВСЕ
|
| ВЫБРАТЬ
| NULL,
| ЗНАЧЕНИЕ(Перечисление.ТипыНалогообложенияНДС.ПродажаОблагаетсяНДС),
| -ТаблицаПредыдущийСчетФактура.СуммаБезНДС - ТаблицаПредыдущийСчетФактура.НДС,
| -ТаблицаПредыдущийСчетФактура.НДС,
| 0,
| 0
| ИЗ
| ВтСторноКнигиПродаж КАК ТаблицаПредыдущийСчетФактура
| ) КАК ТаблицаДокументов
| ) КАК ТаблицаДанныхИсправление
| ГДЕ
| &Исправление
| И НЕ &Корректировочный
|
| ОБЪЕДИНИТЬ ВСЕ
|
| ВЫБРАТЬ
| ТаблицаДанныхКорректировка.НомерИсходногоДокумента КАК НомерСчетаФактуры,
| ТаблицаДанныхКорректировка.ДатаИсходногоДокумента КАК ДатаСчетаФактуры,
| &Номер КАК НомерКорректировочногоСчетаФактуры,
| &ДатаСоставления КАК ДатаКорректировочногоСчетаФактуры,
| ТаблицаДанныхКорректировка.НомерИсправленияИсходногоДокумента КАК НомерИсправления,
| ТаблицаДанныхКорректировка.ДатаИсправленияИсходногоДокумента КАК ДатаИсправления,
| &НомерИсправления КАК НомерИсправленияКорректировочногоСчетаФактуры,
| ВЫБОР
| КОГДА &Исправление
| ТОГДА &ДатаИсправления
| КОНЕЦ КАК ДатаИсправленияКорректировочногоСчетаФактуры,
|
| 0 КАК СуммаПоСчетуФактуре,
| 0 КАК СуммаНДС,
| -ТаблицаДанныхКорректировка.СуммаПоСчетуФактуреУменьшение КАК СуммаПоСчетуФактуреРазницаУменьшение,
| ТаблицаДанныхКорректировка.СуммаПоСчетуФактуреУвеличение КАК СуммаПоСчетуФактуреРазницаУвеличение,
| -ТаблицаДанныхКорректировка.СуммаНДСУменьшение КАК СуммаНДСРазницаУменьшение,
| ТаблицаДанныхКорректировка.СуммаНДСУвеличение КАК СуммаНДСРазницаУвеличение,
|
| ВЫБОР
| КОГДА ТаблицаДанныхКорректировка.НалогообложениеНДС
| В (ЗНАЧЕНИЕ(Перечисление.ТипыНалогообложенияНДС.ПродажаНеОблагаетсяНДС),
| ЗНАЧЕНИЕ(Перечисление.ТипыНалогообложенияНДС.ПродажаОблагаетсяЕНВД))
| ТОГДА ИСТИНА
| ИНАЧЕ ЛОЖЬ
| КОНЕЦ КАК ПоСтавкеБезНДС,
| ТаблицаДанныхКорректировка.КодВидаСделки КАК КодВидаСделки,
|
| 0 КАК СуммаПоСчетуФактуреКомиссия,
| 0 КАК СуммаНДСКомиссия,
| -ТаблицаДанныхКорректировка.СуммаПоСчетуФактуреУменьшениеКомиссия КАК СуммаПоСчетуФактуреРазницаУменьшениеКомиссия,
| ТаблицаДанныхКорректировка.СуммаНДСУменьшениеКомиссия КАК СуммаПоСчетуФактуреРазницаУвеличениеКомиссия,
| -ТаблицаДанныхКорректировка.СуммаПоСчетуФактуреУвеличениеКомиссия КАК СуммаНДСРазницаУменьшениеКомиссия,
| ТаблицаДанныхКорректировка.СуммаНДСУвеличениеКомиссия КАК СуммаНДСРазницаУвеличениеКомиссия,
|
| ВЫБОР
| КОГДА ТаблицаДанныхКорректировка.СуммаПоСчетуФактуреУменьшениеКомиссия <> 0
| ИЛИ ТаблицаДанныхКорректировка.СуммаПоСчетуФактуреУвеличениеКомиссия <> 0
| ТОГДА &КодВидаОперации
| ИНАЧЕ """"
| КОНЕЦ КАК КодВидаОперацииКомиссия
|
| ИЗ
| (ВЫБРАТЬ
| ДанныеОснований.НомерИсходногоДокумента КАК НомерИсходногоДокумента,
| ДанныеОснований.ДатаИсходногоДокумента КАК ДатаИсходногоДокумента,
| ДанныеОснований.НомерИсправленияИсходногоДокумента КАК НомерИсправленияИсходногоДокумента,
| ДанныеОснований.ДатаИсправленияИсходногоДокумента КАК ДатаИсправленияИсходногоДокумента,
| МАКСИМУМ(ТаблицаДокументов.НалогообложениеНДС) КАК НалогообложениеНДС,
|
| СУММА(ТаблицаДокументов.СуммаПоСчетуФактуреУменьшение) КАК СуммаПоСчетуФактуреУменьшение,
| СУММА(ТаблицаДокументов.СуммаНДСУменьшение) КАК СуммаНДСУменьшение,
| СУММА(ТаблицаДокументов.СуммаПоСчетуФактуреУвеличение) КАК СуммаПоСчетуФактуреУвеличение,
| СУММА(ТаблицаДокументов.СуммаНДСУвеличение) КАК СуммаНДСУвеличение,
|
| СУММА(ТаблицаДокументов.СуммаПоСчетуФактуреУменьшениеКомиссия) КАК СуммаПоСчетуФактуреУменьшениеКомиссия,
| СУММА(ТаблицаДокументов.СуммаНДСУменьшениеКомиссия) КАК СуммаНДСУменьшениеКомиссия,
| СУММА(ТаблицаДокументов.СуммаПоСчетуФактуреУвеличениеКомиссия) КАК СуммаПоСчетуФактуреУвеличениеКомиссия,
| СУММА(ТаблицаДокументов.СуммаНДСУвеличениеКомиссия) КАК СуммаНДСУвеличениеКомиссия,
| """" КАК КодВидаСделки
| ИЗ
| ВтТаблицаДокументовДляКоррСФ КАК ТаблицаДокументов
|
| ВНУТРЕННЕЕ СОЕДИНЕНИЕ ВтДокументыОснования КАК ДанныеОснований
| ПО ТаблицаДокументов.ИдентификаторСтроки = ДанныеОснований.ИдентификаторСтроки
|
| СГРУППИРОВАТЬ ПО
| НомерИсходногоДокумента,
| ДатаИсходногоДокумента,
| НомерИсправленияИсходногоДокумента,
| ДатаИсправленияИсходногоДокумента
|
| ) КАК ТаблицаДанныхКорректировка
|
| ГДЕ
| &Корректировочный) КАК ТаблицаДанныхДляЖурнала
|
|";
ТекстыЗапроса.Добавить(ТекстЗапроса, ИмяРегистра);
Возврат ТекстЗапроса;
КонецФункции
Функция ТекстЗапросаТаблицаЖурналУчетаСчетовФактур(Запрос, ТекстыЗапроса, Регистры)
ИмяРегистра = "ЖурналУчетаСчетовФактур";
Если Не ПроведениеДокументов.ТребуетсяТаблицаДляДвижений(ИмяРегистра, Регистры) Тогда
Возврат "";
КонецЕсли;
Если Не ПроведениеДокументов.ЕстьТаблицаЗапроса("ВтТаблицаДанныхДляЖурнала", ТекстыЗапроса) Тогда
ТекстЗапросаВтТаблицаДанныхДляЖурнала(Запрос, ТекстыЗапроса);
КонецЕсли;
ТекстЗапроса = "
|ВЫБРАТЬ
| ЖурналУчетаСчетовФактур.Период КАК Период,
| ЖурналУчетаСчетовФактур.Организация КАК Организация,
| ЖурналУчетаСчетовФактур.Контрагент КАК Контрагент,
| ЖурналУчетаСчетовФактур.СчетФактура КАК СчетФактура,
| ЖурналУчетаСчетовФактур.ЧастьЖурнала КАК ЧастьЖурнала,
| ЖурналУчетаСчетовФактур.НомерСчетаФактуры КАК НомерСчетаФактуры,
| ЖурналУчетаСчетовФактур.ДатаСчетаФактуры КАК ДатаСчетаФактуры,
| ЖурналУчетаСчетовФактур.КодВидаОперации КАК КодВидаОперации,
| ЖурналУчетаСчетовФактур.КодВидаСделки КАК КодВидаСделки,
| ЖурналУчетаСчетовФактур.КодСпособаВыставленияПолучения КАК КодСпособаВыставленияПолучения,
| ЖурналУчетаСчетовФактур.Валюта КАК Валюта,
| ЖурналУчетаСчетовФактур.СуммаПоСчетуФактуре КАК СуммаПоСчетуФактуре,
| ЖурналУчетаСчетовФактур.СуммаНДС КАК СуммаНДС,
| ЖурналУчетаСчетовФактур.ИндексСтроки КАК ИндексСтроки,
| ЖурналУчетаСчетовФактур.Сторно КАК Сторно,
| ЖурналУчетаСчетовФактур.ИсправленныйСчетФактура КАК ИсправленныйСчетФактура,
| ЖурналУчетаСчетовФактур.СчетФактураВыданныйПокупателю КАК СчетФактураВыданныйПокупателю,
| ЖурналУчетаСчетовФактур.СчетФактураПолученныйОтПродавца КАК СчетФактураПолученныйОтПродавца,
| ЖурналУчетаСчетовФактур.ИсправлениеСобственнойОшибки КАК ИсправлениеСобственнойОшибки,
| ЖурналУчетаСчетовФактур.ДатаВыставленияПолучения КАК ДатаВыставленияПолучения,
| ЖурналУчетаСчетовФактур.НомерИсправления КАК НомерИсправления,
| ЖурналУчетаСчетовФактур.ДатаИсправления КАК ДатаИсправления,
| ЖурналУчетаСчетовФактур.НомерКорректировочногоСчетаФактуры КАК НомерКорректировочногоСчетаФактуры,
| ЖурналУчетаСчетовФактур.ДатаКорректировочногоСчетаФактуры КАК ДатаКорректировочногоСчетаФактуры,
| ЖурналУчетаСчетовФактур.НомерИсправленияКорректировочногоСчетаФактуры КАК НомерИсправленияКорректировочногоСчетаФактуры,
| ЖурналУчетаСчетовФактур.ДатаИсправленияКорректировочногоСчетаФактуры КАК ДатаИсправленияКорректировочногоСчетаФактуры,
| ЖурналУчетаСчетовФактур.СуммаПоСчетуФактуреРазницаУменьшение КАК СуммаПоСчетуФактуреРазницаУменьшение,
| ЖурналУчетаСчетовФактур.СуммаПоСчетуФактуреРазницаУвеличение КАК СуммаПоСчетуФактуреРазницаУвеличение,
| ЖурналУчетаСчетовФактур.СуммаНДСРазницаУменьшение КАК СуммаНДСРазницаУменьшение,
| ЖурналУчетаСчетовФактур.СуммаНДСРазницаУвеличение КАК СуммаНДСРазницаУвеличение,
| ЖурналУчетаСчетовФактур.ПоСтавкеБезНДС КАК ПоСтавкеБезНДС,
| ЖурналУчетаСчетовФактур.СчетФактураНеВыставляется КАК СчетФактураНеВыставляется,
| ЖурналУчетаСчетовФактур.Продавец КАК Продавец,
| ЖурналУчетаСчетовФактур.КППКонтрагента КАК КППКонтрагента,
| ЖурналУчетаСчетовФактур.Посредник КАК Посредник,
| ЖурналУчетаСчетовФактур.УдалитьСчетФактураВыданныйПокупателю КАК УдалитьСчетФактураВыданныйПокупателю,
| ЖурналУчетаСчетовФактур.Субкомиссионер КАК Субкомиссионер,
| ЖурналУчетаСчетовФактур.НомерСчетаФактурыПродавца КАК НомерСчетаФактурыПродавца,
| ЖурналУчетаСчетовФактур.СуммаПоСчетуФактуреКомиссия КАК СуммаПоСчетуФактуреКомиссия,
| ЖурналУчетаСчетовФактур.СуммаНДСКомиссия КАК СуммаНДСКомиссия,
| ЖурналУчетаСчетовФактур.СуммаПоСчетуФактуреРазницаУменьшениеКомиссия КАК СуммаПоСчетуФактуреРазницаУменьшениеКомиссия,
| ЖурналУчетаСчетовФактур.СуммаПоСчетуФактуреРазницаУвеличениеКомиссия КАК СуммаПоСчетуФактуреРазницаУвеличениеКомиссия,
| ЖурналУчетаСчетовФактур.СуммаНДСРазницаУменьшениеКомиссия КАК СуммаНДСРазницаУменьшениеКомиссия,
| ЖурналУчетаСчетовФактур.СуммаНДСРазницаУвеличениеКомиссия КАК СуммаНДСРазницаУвеличениеКомиссия,
| ЖурналУчетаСчетовФактур.КодВидаОперацииКомиссия КАК КодВидаОперацииКомиссия,
| ЖурналУчетаСчетовФактур.ДатаСчетаФактурыПродавца КАК ДатаСчетаФактурыПродавца,
| ЖурналУчетаСчетовФактур.ИННКонтрагента КАК ИННКонтрагента,
| ЖурналУчетаСчетовФактур.ИННПродавца КАК ИННПродавца,
| ЖурналУчетаСчетовФактур.КПППродавца КАК КПППродавца,
| ЖурналУчетаСчетовФактур.ИННСубкомиссионера КАК ИННСубкомиссионера,
| ЖурналУчетаСчетовФактур.КППСубкомиссионера КАК КППСубкомиссионера
|ИЗ
| РегистрСведений.ЖурналУчетаСчетовФактур КАК ЖурналУчетаСчетовФактур
|ГДЕ
| ЖурналУчетаСчетовФактур.Регистратор = &Ссылка
| И &РучнаяКорректировкаЖурналаСФ
|
|ОБЪЕДИНИТЬ ВСЕ
|
|ВЫБРАТЬ
| &Период КАК Период,
| &Организация КАК Организация,
| &Контрагент КАК Контрагент,
| &Ссылка КАК СчетФактура,
| ЗНАЧЕНИЕ(Перечисление.ЧастиЖурналаУчетаСчетовФактур.ПолученныеСчетаФактуры) КАК ЧастьЖурнала,
| ТаблицаДанныхДляЖурнала.НомерСчетаФактуры КАК НомерСчетаФактуры,
| ТаблицаДанныхДляЖурнала.ДатаСчетаФактуры КАК ДатаСчетаФактуры,
| &КодВидаОперации КАК КодВидаОперации,
| ТаблицаДанныхДляЖурнала.КодВидаСделки КАК КодВидаСделки,
| &ПолученВЭлектронномВиде КАК КодСпособаВыставленияПолучения,
| &ВалютаСчетаФактуры КАК Валюта,
| ТаблицаДанныхДляЖурнала.СуммаПоСчетуФактуре КАК СуммаПоСчетуФактуре,
| ТаблицаДанныхДляЖурнала.СуммаНДС КАК СуммаНДС,
| 0 КАК ИндексСтроки,
| NULL,
| NULL,
| NULL,
| NULL,
| NULL,
| &ДатаПолучения КАК ДатаВыставленияПолучения,
| ТаблицаДанныхДляЖурнала.НомерИсправления КАК НомерИсправления,
| ТаблицаДанныхДляЖурнала.ДатаИсправления КАК ДатаИсправления,
| ТаблицаДанныхДляЖурнала.НомерКорректировочногоСчетаФактуры КАК НомерКорректировочногоСчетаФактуры,
| ТаблицаДанныхДляЖурнала.ДатаКорректировочногоСчетаФактуры КАК ДатаКорректировочногоСчетаФактуры,
| ТаблицаДанныхДляЖурнала.НомерИсправленияКорректировочногоСчетаФактуры КАК НомерИсправленияКорректировочногоСчетаФактуры,
| ТаблицаДанныхДляЖурнала.ДатаИсправленияКорректировочногоСчетаФактуры КАК ДатаИсправленияКорректировочногоСчетаФактуры,
| ТаблицаДанныхДляЖурнала.СуммаПоСчетуФактуреРазницаУменьшение КАК СуммаПоСчетуФактуреРазницаУменьшение,
| ТаблицаДанныхДляЖурнала.СуммаПоСчетуФактуреРазницаУвеличение КАК СуммаПоСчетуФактуреРазницаУвеличение,
| ТаблицаДанныхДляЖурнала.СуммаНДСРазницаУменьшение КАК СуммаНДСРазницаУменьшение,
| ТаблицаДанныхДляЖурнала.СуммаНДСРазницаУвеличение КАК СуммаНДСРазницаУвеличение,
| ТаблицаДанныхДляЖурнала.ПоСтавкеБезНДС КАК ПоСтавкеБезНДС,
| ЛОЖЬ КАК СчетФактураНеВыставляется,
| NULL,
| &КППКонтрагента КАК КППКонтрагента,
| NULL,
| NULL,
| NULL,
| NULL,
| ТаблицаДанныхДляЖурнала.СуммаПоСчетуФактуреКомиссия КАК СуммаПоСчетуФактуреКомиссия,
| ТаблицаДанныхДляЖурнала.СуммаНДСКомиссия КАК СуммаНДСКомиссия,
| ТаблицаДанныхДляЖурнала.СуммаПоСчетуФактуреРазницаУменьшениеКомиссия КАК СуммаПоСчетуФактуреРазницаУменьшениеКомиссия,
| ТаблицаДанныхДляЖурнала.СуммаПоСчетуФактуреРазницаУвеличениеКомиссия КАК СуммаПоСчетуФактуреРазницаУвеличениеКомиссия,
| ТаблицаДанныхДляЖурнала.СуммаНДСРазницаУменьшениеКомиссия КАК СуммаНДСРазницаУменьшениеКомиссия,
| ТаблицаДанныхДляЖурнала.СуммаНДСРазницаУвеличениеКомиссия КАК СуммаНДСРазницаУвеличениеКомиссия,
| ТаблицаДанныхДляЖурнала.КодВидаОперацииКомиссия КАК КодВидаОперацииКомиссия,
| NULL,
| &ИННКонтрагента КАК ИННКонтрагента,
| NULL,
| NULL,
| NULL,
| NULL
|
|ИЗ
| ВтТаблицаДанныхДляЖурнала КАК ТаблицаДанныхДляЖурнала
|ГДЕ
| НЕ &РучнаяКорректировкаЖурналаСФ
|";
ТекстыЗапроса.Добавить(ТекстЗапроса, ИмяРегистра);
Возврат ТекстЗапроса;
КонецФункции
Функция ТекстЗапросаТаблицаРеестрДокументов(Запрос, ТекстыЗапроса, Регистры)
ИмяРегистра = "РеестрДокументов";
Если Не ПроведениеДокументов.ТребуетсяТаблицаДляДвижений(ИмяРегистра, Регистры) Тогда
Возврат "";
КонецЕсли;
ТекстЗапроса =
"ВЫБРАТЬ
| &Ссылка КАК Ссылка,
| &Период КАК ДатаДокументаИБ,
| &Номер КАК НомерДокументаИБ,
| &ИдентификаторМетаданных КАК ТипСсылки,
| &Организация КАК Организация,
| &Контрагент КАК Контрагент,
| &Подразделение КАК Подразделение,
| &Ответственный КАК Ответственный,
| &Комментарий КАК Комментарий,
| &Валюта КАК Валюта,
| 0 КАК Сумма,
| ВЫБОР
| КОГДА &РучнаяКорректировкаЖурналаСФ
| ТОГДА ЗНАЧЕНИЕ(Перечисление.СтатусыОтраженияДокументовВРеглУчете.ОтраженоВУчетеВручную)
| ИНАЧЕ НЕОПРЕДЕЛЕНО
| КОНЕЦ КАК Статус,
| &Проведен КАК Проведен,
| &ПометкаУдаления КАК ПометкаУдаления,
| &ИнформацияПоИсправлению КАК Дополнительно,
| &ДатаСоставления КАК ДатаПервичногоДокумента,
| &НомерНаПечать КАК НомерПервичногоДокумента,
| ВЫБОР
| КОГДА &Партнер = ЗНАЧЕНИЕ(Справочник.Партнеры.ПустаяСсылка)
| ТОГДА ДанныеДокумента.Контрагент.Партнер
| ИНАЧЕ &Партнер
| КОНЕЦ КАК Партнер,
| &НаправлениеДеятельности КАК НаправлениеДеятельности,
| &Склад КАК МестоХранения,
| &Договор КАК Договор,
| ЛОЖЬ КАК ДополнительнаяЗапись,
| &ДатаСоставления КАК ДатаОтраженияВУчете,
| ЛОЖЬ КАК СторноИсправление,
| НЕОПРЕДЕЛЕНО КАК СторнируемыйДокумент,
| НЕОПРЕДЕЛЕНО КАК ИсправляемыйДокумент,
| ЗНАЧЕНИЕ(Перечисление.ХозяйственныеОперации.НачислениеНДСНалоговымАгентом) КАК ХозяйственнаяОперация,
| НЕОПРЕДЕЛЕНО КАК Приоритет
|ИЗ
| Документ.СчетФактураПолученныйНалоговыйАгент КАК ДанныеДокумента
|ГДЕ
| ДанныеДокумента.Ссылка = &Ссылка
|";
ТекстыЗапроса.Добавить(ТекстЗапроса, ИмяРегистра);
Возврат ТекстЗапроса;
КонецФункции
Процедура ИнициализироватьВтНДСЗаписиКнигиПродаж(Запрос, ТекстыЗапроса)
Если Запрос.Параметры.Свойство("ВтНДСЗаписиКнигиПродажИнициализирована") Тогда
Возврат;
КонецЕсли;
ИнициализироватьВтТаблицаСуммДокументов(Запрос, ТекстыЗапроса);
УстановитьПараметрЗапросаНалогообложениеОрганизации(Запрос);
ЗапросНДСЗаписиКнигиПродаж = Новый Запрос;
ЗапросНДСЗаписиКнигиПродаж.МенеджерВременныхТаблиц = Запрос.МенеджерВременныхТаблиц;
ЗапросНДСЗаписиКнигиПродаж.УстановитьПараметр("Организация", Запрос.Параметры.Организация);
ЗапросНДСЗаписиКнигиПродаж.УстановитьПараметр("Контрагент", Запрос.Параметры.Контрагент);
ЗапросНДСЗаписиКнигиПродаж.УстановитьПараметр("КодВидаОперацииНаУменьшение", Запрос.Параметры.КодВидаОперацииНаУменьшение);
ЗапросНДСЗаписиКнигиПродаж.УстановитьПараметр("ДатаСоставления", Запрос.Параметры.ДатаСоставления);
ЗапросНДСЗаписиКнигиПродаж.УстановитьПараметр("Период", Запрос.Параметры.Период);
ЗапросНДСЗаписиКнигиПродаж.УстановитьПараметр("НалогообложениеОрганизации", Запрос.Параметры.НалогообложениеОрганизации);
ЗапросНДСЗаписиКнигиПродаж.УстановитьПараметр("Исправление", Запрос.Параметры.Исправление);
ЗапросНДСЗаписиКнигиПродаж.УстановитьПараметр("СчетФактураОснование", Запрос.Параметры.СчетФактураОснование);
ЗапросНДСЗаписиКнигиПродаж.УстановитьПараметр("Ссылка", Запрос.Параметры.Ссылка);
ЗапросНДСЗаписиКнигиПродаж.Текст =
"ВЫБРАТЬ
| ВтТаблицаСуммДокументов.ИдентификаторСтроки КАК ИдентификаторСтроки,
| ВЫБОР КОГДА
| ВтТаблицаСуммДокументов.ЗакупкаПодДеятельность В ( ЗНАЧЕНИЕ(Перечисление.ТипыНалогообложенияНДС.ПоФактическомуИспользованию),
| ЗНАЧЕНИЕ(Перечисление.ТипыНалогообложенияНДС.ПродажаНеОблагаетсяНДС),
| ЗНАЧЕНИЕ(Перечисление.ТипыНалогообложенияНДС.ПродажаОблагаетсяЕНВД))
| ТОГДА &НалогообложениеОрганизации
| ИНАЧЕ ВтТаблицаСуммДокументов.ЗакупкаПодДеятельность
| КОНЕЦ КАК ВидДеятельностиНДС,
| &ДатаСоставления КАК Период,
| &Организация КАК Организация,
| ВтТаблицаСуммДокументов.ВидЦенности КАК ВидЦенности,
| ВЫБОР КОГДА &Исправление
| ТОГДА &СчетФактураОснование
| ИНАЧЕ &Ссылка
| КОНЕЦ КАК СчетФактура,
| &Контрагент КАК Покупатель,
| NULL КАК ДокументОплаты,
| NULL КАК ДатаОплаты,
| ЗНАЧЕНИЕ(Перечисление.СобытияПоНДСПродажи.НДСНачисленКУплате) КАК Событие,
| &Период КАК ДатаСобытия,
| ВтТаблицаСуммДокументов.СтавкаНДС КАК СтавкаНДС,
| ВтТаблицаСуммДокументов.СуммаНДС КАК НДС,
| ВтТаблицаСуммДокументов.НДСУпр КАК НДСУпр,
| ВтТаблицаСуммДокументов.СуммаБезНДС КАК СуммаБезНДС,
| NULL КАК НомерДокументаОплаты,
| NULL КАК ДатаДокументаОплаты,
| NULL КАК ДоговорКонтрагента,
| ВтТаблицаСуммДокументов.КодВидаОперации КАК КодВидаОперации,
| ВтТаблицаСуммДокументов.НаправлениеДеятельности КАК НаправлениеДеятельности,
| ЗНАЧЕНИЕ(Перечисление.ХозяйственныеОперации.НачислениеНДСНалоговымАгентом) КАК ХозяйственнаяОперация,
| ВтТаблицаСуммДокументов.ИдентификаторСтроки КАК ИдентификаторФинЗаписи,
| ЗНАЧЕНИЕ(Справочник.НастройкиХозяйственныхОпераций.НачислениеНДСНалоговымАгентом) КАК НастройкаХозяйственнойОперации
|ПОМЕСТИТЬ ВтНДСЗаписиКнигиПродаж
|ИЗ
| ВтТаблицаСуммДокументов КАК ВтТаблицаСуммДокументов
|ИНДЕКСИРОВАТЬ ПО
| ИдентификаторСтроки
|";
ЗапросНДСЗаписиКнигиПродаж.Выполнить();
Запрос.УстановитьПараметр("ВтНДСЗаписиКнигиПродажИнициализирована", Истина);
КонецПроцедуры
Функция ТекстЗапросаВтСторноКнигиПродаж(Запрос, ТекстыЗапроса)
ИмяРегистра = "ВтСторноКнигиПродаж";
УстановитьПараметрЗапросаСчетФактураПредыдущееИсправление(Запрос);
ТекстЗапроса = "
|
|ВЫБРАТЬ
| &Период КАК Период,
| &Организация КАК Организация,
| НДСЗаписиКнигиПродаж.Покупатель КАК Покупатель,
| НДСЗаписиКнигиПродаж.СчетФактура КАК СчетФактура,
| НДСЗаписиКнигиПродаж.ВидЦенности КАК ВидЦенности,
| НДСЗаписиКнигиПродаж.СтавкаНДС КАК СтавкаНДС,
| НДСЗаписиКнигиПродаж.ДатаОплаты КАК ДатаОплаты,
| НДСЗаписиКнигиПродаж.ДокументОплаты КАК ДокументОплаты,
| НДСЗаписиКнигиПродаж.Событие КАК Событие,
| &Период КАК ДатаСобытия,
| ВЫБОР
| КОГДА НДСЗаписиКнигиПродаж.ЗаписьДополнительногоЛиста
| ТОГДА ИСТИНА
| КОГДА НАЧАЛОПЕРИОДА(НДСЗаписиКнигиПродаж.Период,КВАРТАЛ) < НАЧАЛОПЕРИОДА(&Период,КВАРТАЛ)
| ТОГДА ИСТИНА
| КОНЕЦ КАК ЗаписьДополнительногоЛиста,
| ВЫБОР
| КОГДА НДСЗаписиКнигиПродаж.КорректируемыйПериод <> ДАТАВРЕМЯ(1,1,1)
| ТОГДА НДСЗаписиКнигиПродаж.КорректируемыйПериод
| КОГДА НАЧАЛОПЕРИОДА(НДСЗаписиКнигиПродаж.Период,КВАРТАЛ) < НАЧАЛОПЕРИОДА(&Период,КВАРТАЛ)
| ТОГДА НДСЗаписиКнигиПродаж.Период
| КОНЕЦ КАК КорректируемыйПериод,
| ВЫБОР
| КОГДА НДСЗаписиКнигиПродаж.ЗаписьДополнительногоЛиста
| ТОГДА ИСТИНА
| КОГДА НАЧАЛОПЕРИОДА(НДСЗаписиКнигиПродаж.Период,КВАРТАЛ) < НАЧАЛОПЕРИОДА(&Период,КВАРТАЛ)
| ТОГДА ИСТИНА
| КОНЕЦ КАК СторнирующаяЗаписьДопЛиста,
| НДСЗаписиКнигиПродаж.ДоговорКонтрагента КАК ДоговорКонтрагента,
| НДСЗаписиКнигиПродаж.ИсправленныйСчетФактура КАК ИсправленныйСчетФактура,
| &Исправление КАК Исправление,
| НДСЗаписиКнигиПродаж.ДатаСчетаФактурыКомиссионера КАК ДатаСчетаФактурыКомиссионера,
| NULL КАК ХозяйственнаяОперация,
| -НДСЗаписиКнигиПродаж.СуммаБезНДС КАК СуммаБезНДС,
| -НДСЗаписиКнигиПродаж.НДС КАК НДС,
| -НДСЗаписиКнигиПродаж.НДСУпр КАК НДСУпр,
| NULL КАК НомерДокументаОплаты,
| NULL КАК ДатаДокументаОплаты,
| NULL КАК КодВидаОперации,
| НДСЗаписиКнигиПродаж.НаправлениеДеятельности,
| НДСЗаписиКнигиПродаж.РегламентнаяОперация КАК РегламентнаяОперация
|ПОМЕСТИТЬ ВтСторноКнигиПродаж
|ИЗ
| РегистрНакопления.НДСЗаписиКнигиПродаж КАК НДСЗаписиКнигиПродаж
|ГДЕ
| НДСЗаписиКнигиПродаж.Событие = ЗНАЧЕНИЕ(Перечисление.СобытияПоНДСПродажи.НДСНачисленКУплате)
| И НДСЗаписиКнигиПродаж.СчетФактура = &СчетФактураОснование
| И НДСЗаписиКнигиПродаж.ИсправленныйСчетФактура = &СчетФактураПредыдущееИсправление
| И НЕ НДСЗаписиКнигиПродаж.РегламентнаяОперация
| И НДСЗаписиКнигиПродаж.Организация = &Организация
| И &Исправление
| И НДСЗаписиКнигиПродаж.Регистратор <> &Ссылка
| И НДСЗаписиКнигиПродаж.НДС > 0
| И &Организация <> ЗНАЧЕНИЕ(Справочник.Организации.УправленческаяОрганизация)
|";
ТекстыЗапроса.Добавить(ТекстЗапроса, ИмяРегистра);
Возврат ТекстЗапроса;
КонецФункции
Функция ТекстЗапросаТаблицаНДСЗаписиКнигиПродаж(Запрос, ТекстыЗапроса, Регистры)
ИмяРегистра = "НДСЗаписиКнигиПродаж";
Если Не ПроведениеДокументов.ТребуетсяТаблицаДляДвижений(ИмяРегистра, Регистры) Тогда
Возврат "";
КонецЕсли;
ИнициализироватьВтНДСЗаписиКнигиПродаж(Запрос, ТекстыЗапроса);
Если НЕ ПроведениеДокументов.ЕстьТаблицаЗапроса("ВтСторноКнигиПродаж", ТекстыЗапроса) Тогда
ТекстЗапросаВтСторноКнигиПродаж(Запрос, ТекстыЗапроса);
КонецЕсли;
ТекстЗапроса =
"ВЫБРАТЬ
| ВтНДСЗаписиКнигиПродаж.Период КАК Период,
| ВтНДСЗаписиКнигиПродаж.Организация КАК Организация,
| ВтНДСЗаписиКнигиПродаж.Покупатель КАК Покупатель,
| ВтНДСЗаписиКнигиПродаж.СчетФактура КАК СчетФактура,
| ВтНДСЗаписиКнигиПродаж.ВидЦенности КАК ВидЦенности,
| ВтНДСЗаписиКнигиПродаж.СтавкаНДС.ПеречислениеСтавкаНДС КАК СтавкаНДС,
| ВтНДСЗаписиКнигиПродаж.ДатаОплаты КАК ДатаОплаты,
| ВтНДСЗаписиКнигиПродаж.ДокументОплаты КАК ДокументОплаты,
| ВтНДСЗаписиКнигиПродаж.Событие КАК Событие,
| ВтНДСЗаписиКнигиПродаж.ДатаСобытия КАК ДатаСобытия,
| NULL КАК ЗаписьДополнительногоЛиста,
| NULL КАК КорректируемыйПериод,
| NULL КАК СторнирующаяЗаписьДопЛиста,
| ВтНДСЗаписиКнигиПродаж.ДоговорКонтрагента КАК ДоговорКонтрагента,
| NULL КАК ИсправленныйСчетФактура,
| NULL КАК Исправление,
| NULL КАК ДатаСчетаФактурыКомиссионера,
| ВтНДСЗаписиКнигиПродаж.ХозяйственнаяОперация КАК ХозяйственнаяОперация,
| ВтНДСЗаписиКнигиПродаж.СуммаБезНДС КАК СуммаБезНДС,
| ВтНДСЗаписиКнигиПродаж.НДС КАК НДС,
| ВтНДСЗаписиКнигиПродаж.НДСУпр КАК НДСУпр,
| ВтНДСЗаписиКнигиПродаж.НомерДокументаОплаты КАК НомерДокументаОплаты,
| ВтНДСЗаписиКнигиПродаж.ДатаДокументаОплаты КАК ДатаДокументаОплаты,
| ВтНДСЗаписиКнигиПродаж.НаправлениеДеятельности КАК НаправлениеДеятельности,
| ВтНДСЗаписиКнигиПродаж.КодВидаОперации КАК КодВидаОперации,
| NULL КАК РегламентнаяОперация
|ИЗ
| ВтНДСЗаписиКнигиПродаж КАК ВтНДСЗаписиКнигиПродаж
|ГДЕ
| НЕ &Исправление
| И ВтНДСЗаписиКнигиПродаж.НДС > 0
| И &Организация <> ЗНАЧЕНИЕ(Справочник.Организации.УправленческаяОрганизация)
|
|ОБЪЕДИНИТЬ ВСЕ
|
|ВЫБРАТЬ
| НДСЗаписиКнигиПродаж.Период,
| НДСЗаписиКнигиПродаж.Организация,
| НДСЗаписиКнигиПродаж.Покупатель КАК Покупатель,
| НДСЗаписиКнигиПродаж.СчетФактура КАК СчетФактура,
| НДСЗаписиКнигиПродаж.ВидЦенности КАК ВидЦенности,
| НДСЗаписиКнигиПродаж.СтавкаНДС КАК СтавкаНДС,
| НДСЗаписиКнигиПродаж.ДатаОплаты КАК ДатаОплаты,
| НДСЗаписиКнигиПродаж.ДокументОплаты КАК ДокументОплаты,
| НДСЗаписиКнигиПродаж.Событие КАК Событие,
| НДСЗаписиКнигиПродаж.ДатаСобытия,
| НДСЗаписиКнигиПродаж.ЗаписьДополнительногоЛиста,
| НДСЗаписиКнигиПродаж.КорректируемыйПериод,
| НДСЗаписиКнигиПродаж.СторнирующаяЗаписьДопЛиста,
| НДСЗаписиКнигиПродаж.ДоговорКонтрагента КАК ДоговорКонтрагента,
| НДСЗаписиКнигиПродаж.ИсправленныйСчетФактура КАК ИсправленныйСчетФактура,
| НДСЗаписиКнигиПродаж.Исправление,
| НДСЗаписиКнигиПродаж.ДатаСчетаФактурыКомиссионера КАК ДатаСчетаФактурыКомиссионера,
| НДСЗаписиКнигиПродаж.ХозяйственнаяОперация,
| НДСЗаписиКнигиПродаж.СуммаБезНДС КАК СуммаБезНДС,
| НДСЗаписиКнигиПродаж.НДС КАК НДС,
| НДСЗаписиКнигиПродаж.НДСУпр КАК НДСУпр,
| НДСЗаписиКнигиПродаж.НомерДокументаОплаты,
| НДСЗаписиКнигиПродаж.ДатаДокументаОплаты,
| НДСЗаписиКнигиПродаж.КодВидаОперации,
| НДСЗаписиКнигиПродаж.НаправлениеДеятельности,
| НДСЗаписиКнигиПродаж.РегламентнаяОперация
|ИЗ
| ВтСторноКнигиПродаж КАК НДСЗаписиКнигиПродаж
|
|ОБЪЕДИНИТЬ ВСЕ
|
|ВЫБРАТЬ
| &Период,
| &Организация,
| &Контрагент,
| &СчетФактураОснование,
| ЗНАЧЕНИЕ(Перечисление.ВидыЦенностей.ТоварыНалоговыйАгент),
| МАКСИМУМ(СуммыИсправления.СтавкаНДС),
| NULL,
| NULL,
| ЗНАЧЕНИЕ(Перечисление.СобытияПоНДСПродажи.НДСНачисленКУплате) КАК Событие,
| &Период,
| ВЫБОР
| КОГДА НАЧАЛОПЕРИОДА(&ДатаСчетФактураОснование, КВАРТАЛ) < НАЧАЛОПЕРИОДА(&Период, КВАРТАЛ) ТОГДА
| ИСТИНА
| ИНАЧЕ
| ЛОЖЬ
| КОНЕЦ,
| ВЫБОР
| КОГДА НАЧАЛОПЕРИОДА(&ДатаСчетФактураОснование, КВАРТАЛ) < НАЧАЛОПЕРИОДА(&Период, КВАРТАЛ) ТОГДА
| &ДатаСчетФактураОснование
| ИНАЧЕ
| НЕОПРЕДЕЛЕНО
| КОНЕЦ,
| ЛОЖЬ,
| NULL,
| &Ссылка,
| ИСТИНА,
| NULL,
| NULL КАК ХозяйственнаяОперация,
| СУММА(СуммыИсправления.СуммаБезНДС) КАК СуммаБезНДС,
| СУММА(СуммыИсправления.НДС) КАК НДС,
| СУММА(СуммыИсправления.НДСУпр) КАК НДСУпр,
| NULL,
| NULL,
| NULL КАК КодВидаОперации,
| NULL КАК НаправлениеДеятельности,
| NULL КАК РегламентнаяОперация
|ИЗ
| (ВЫБРАТЬ
| -Сторно.СуммаБезНДС КАК СуммаБезНДС,
| -Сторно.НДС КАК НДС,
| -Сторно.НДСУпр КАК НДСУпр,
| Сторно.СтавкаНДС КАК СтавкаНДС
| ИЗ
| ВтСторноКнигиПродаж КАК Сторно
|
| ОБЪЕДИНИТЬ ВСЕ
|
| ВЫБРАТЬ
| ТаблицаДанных.СуммаБезНДС,
| ТаблицаДанных.НДС,
| ТаблицаДанных.НДСУпр,
| ТаблицаДанных.СтавкаНДС.ПеречислениеСтавкаНДС КАК СтавкаНДС
| ИЗ
| ВтНДСЗаписиКнигиПродаж КАК ТаблицаДанных) КАК СуммыИсправления
|
|ГДЕ
| &Исправление
| И &Организация <> ЗНАЧЕНИЕ(Справочник.Организации.УправленческаяОрганизация)
|
|ИМЕЮЩИЕ
| СУММА(СуммыИсправления.НДС) <> 0
|
|ОБЪЕДИНИТЬ ВСЕ
|
|ВЫБРАТЬ
| НДСЗаписиКнигиПродаж.Период,
| НДСЗаписиКнигиПродаж.Организация,
| НДСЗаписиКнигиПродаж.Покупатель,
| НДСЗаписиКнигиПродаж.СчетФактура,
| НДСЗаписиКнигиПродаж.ВидЦенности,
| НДСЗаписиКнигиПродаж.СтавкаНДС,
| НДСЗаписиКнигиПродаж.ДатаОплаты,
| НДСЗаписиКнигиПродаж.ДокументОплаты,
| НДСЗаписиКнигиПродаж.Событие,
| НДСЗаписиКнигиПродаж.ДатаСобытия,
| НДСЗаписиКнигиПродаж.ЗаписьДополнительногоЛиста,
| НДСЗаписиКнигиПродаж.КорректируемыйПериод,
| НДСЗаписиКнигиПродаж.СторнирующаяЗаписьДопЛиста,
| НДСЗаписиКнигиПродаж.ДоговорКонтрагента,
| НДСЗаписиКнигиПродаж.ИсправленныйСчетФактура,
| НДСЗаписиКнигиПродаж.Исправление,
| НДСЗаписиКнигиПродаж.ДатаСчетаФактурыКомиссионера,
| НДСЗаписиКнигиПродаж.ХозяйственнаяОперация,
| НДСЗаписиКнигиПродаж.СуммаБезНДС,
| НДСЗаписиКнигиПродаж.НДС,
| НДСЗаписиКнигиПродаж.НДСУпр,
| НДСЗаписиКнигиПродаж.НомерДокументаОплаты,
| НДСЗаписиКнигиПродаж.ДатаДокументаОплаты,
| НДСЗаписиКнигиПродаж.КодВидаОперации,
| НДСЗаписиКнигиПродаж.НаправлениеДеятельности,
| НДСЗаписиКнигиПродаж.РегламентнаяОперация
|ИЗ
| РегистрНакопления.НДСЗаписиКнигиПродаж КАК НДСЗаписиКнигиПродаж
|ГДЕ
| НДСЗаписиКнигиПродаж.Регистратор = &Ссылка
| И НДСЗаписиКнигиПродаж.РегламентнаяОперация
| И &Организация <> ЗНАЧЕНИЕ(Справочник.Организации.УправленческаяОрганизация)
|";
ТекстыЗапроса.Добавить(ТекстЗапроса, ИмяРегистра);
Возврат ТекстЗапроса;
КонецФункции
Функция ТекстЗапросаТаблицаНДСЗаписиКнигиПокупок(Запрос, ТекстыЗапроса, Регистры)
ИмяРегистра = "НДСЗаписиКнигиПокупок";
Если НЕ ПроведениеДокументов.ТребуетсяТаблицаДляДвижений(ИмяРегистра, Регистры) Тогда
Возврат "";
КонецЕсли;
УстановитьПараметрЗапросаСчетФактураПредыдущееИсправление(Запрос);
ИнициализироватьВтНДСЗаписиКнигиПродаж(Запрос, ТекстыЗапроса);
#Область ТекстСторноИсправление
ТекстЗапросаСторноИсправление = "
|
|ВЫБРАТЬ
| &Период КАК Период,
| НДСЗаписиКнигиПокупок.Организация КАК Организация,
| НДСЗаписиКнигиПокупок.Поставщик КАК Поставщик,
| НДСЗаписиКнигиПокупок.СчетФактура КАК СчетФактура,
| НДСЗаписиКнигиПокупок.ВидЦенности КАК ВидЦенности,
| НДСЗаписиКнигиПокупок.СтавкаНДС КАК СтавкаНДС,
| НДСЗаписиКнигиПокупок.СчетУчетаНДС КАК СчетУчетаНДС,
| НДСЗаписиКнигиПокупок.Событие КАК Событие,
| &Период КАК ДатаСобытия,
| &Исправление КАК Исправление,
| ВЫБОР
| КОГДА НДСЗаписиКнигиПокупок.ЗаписьДополнительногоЛиста
| ТОГДА ИСТИНА
| КОГДА НАЧАЛОПЕРИОДА(НДСЗаписиКнигиПокупок.Период,КВАРТАЛ) < НАЧАЛОПЕРИОДА(&Период, КВАРТАЛ)
| ТОГДА ИСТИНА
| КОНЕЦ КАК ЗаписьДополнительногоЛиста,
| ВЫБОР
| КОГДА НДСЗаписиКнигиПокупок.КорректируемыйПериод <> ДАТАВРЕМЯ(1,1,1)
| ТОГДА НДСЗаписиКнигиПокупок.КорректируемыйПериод
| КОГДА НАЧАЛОПЕРИОДА(НДСЗаписиКнигиПокупок.Период,КВАРТАЛ) < НАЧАЛОПЕРИОДА(&Период,КВАРТАЛ)
| ТОГДА НДСЗаписиКнигиПокупок.Период
| КОНЕЦ КАК КорректируемыйПериод,
| НДСЗаписиКнигиПокупок.ИсправленныйСчетФактура КАК ИсправленныйСчетФактура,
| -НДСЗаписиКнигиПокупок.СуммаБезНДС КАК СуммаБезНДС,
| -НДСЗаписиКнигиПокупок.НДС КАК НДС,
| НДСЗаписиКнигиПокупок.НаправлениеДеятельности КАК НаправлениеДеятельности,
| НДСЗаписиКнигиПокупок.РегламентнаяОперация КАК РегламентнаяОперация,
| &КодВидаОперацииНаУменьшение КАК КодВидаОперации
|ИЗ
| РегистрНакопления.НДСЗаписиКнигиПокупок КАК НДСЗаписиКнигиПокупок
| ВНУТРЕННЕЕ СОЕДИНЕНИЕ ВтНДСЗаписиКнигиПродаж КАК ДокументыОснования
| ПО НДСЗаписиКнигиПокупок.СчетФактура = ДокументыОснования.СчетФактура
|
|ГДЕ
| НДСЗаписиКнигиПокупок.Организация = &Организация
| И НДСЗаписиКнигиПокупок.Регистратор <> &Ссылка
| И &Исправление
| И &Корректировочный
| И НЕ НДСЗаписиКнигиПокупок.РегламентнаяОперация
| И НДСЗаписиКнигиПокупок.ИсправленныйСчетФактура = &СчетФактураПредыдущееИсправление
| И НДСЗаписиКнигиПокупок.НДС > 0
|
|";
#КонецОбласти
#Область ТекстКорректировка
ТекстЗапросаКорректировка = "
|
|ВЫБРАТЬ
| &Период КАК Период,
| &Организация КАК Организация,
| &Контрагент КАК Поставщик,
| ВЫБОР КОГДА &Исправление
| ТОГДА &СчетФактураОснование
| ИНАЧЕ &Ссылка
| КОНЕЦ КАК СчетФактура,
| ТаблицаДанных.ВидЦенности КАК ВидЦенности,
| ТаблицаДанных.СтавкаНДС.ПеречислениеСтавкаНДС КАК СтавкаНДС,
| NULL КАК СчетУчетаНДС,
| ЗНАЧЕНИЕ(Перечисление.СобытияПоНДСПокупки.ПредъявленНДСКВычету) КАК Событие,
| &Период КАК ДатаСобытия,
| ЛОЖЬ КАК ЗаписьДополнительногоЛиста,
| NULL КАК КорректируемыйПериод,
| &Исправление КАК Исправление,
| ВЫБОР
| КОГДА &Исправление
| ТОГДА &Ссылка
| КОНЕЦ КАК ИсправленныйСчетФактура,
| -ТаблицаДанных.СуммаБезНДС КАК СуммаБезНДС,
| -ТаблицаДанных.НДС КАК НДС,
| ТаблицаДанных.НаправлениеДеятельности,
| ЛОЖЬ КАК РегламентнаяОперация,
| ТаблицаДанных.КодВидаОперации КАК КодВидаОперации
|ИЗ
| ВтНДСЗаписиКнигиПродаж КАК ТаблицаДанных
| ВНУТРЕННЕЕ СОЕДИНЕНИЕ ВтДокументыОснования КАК ДокументыОснования
| ПО ТаблицаДанных.ИдентификаторСтроки = ДокументыОснования.ИдентификаторСтроки
|
|ГДЕ
| &Корректировочный
| И ТаблицаДанных.НДС < 0
| И &Организация <> ЗНАЧЕНИЕ(Справочник.Организации.УправленческаяОрганизация)
|";
#КонецОбласти
ТекстыОтражения = Новый Массив;
ТекстыОтражения.Добавить(ТекстЗапросаСторноИсправление);
ТекстыОтражения.Добавить(ТекстЗапросаКорректировка);
ТекстЗапроса = СтрСоединить(ТекстыОтражения, ОбщегоНазначенияУТ.РазделительЗапросовВОбъединении());
ТекстыЗапроса.Добавить(ТекстЗапроса, ИмяРегистра);
Возврат ТекстЗапроса
КонецФункции
Функция ТекстЗапросаТаблицаДвиженияПоНДС(Запрос, ТекстыЗапроса, Регистры)
ИмяРегистра = "ДвиженияПоНДС";
Если Не ПроведениеДокументов.ТребуетсяТаблицаДляДвижений(ИмяРегистра, Регистры) Тогда
Возврат "";
КонецЕсли;
ИнициализироватьВтНДСЗаписиКнигиПродаж(Запрос, ТекстыЗапроса);
УстановитьПараметрЗапросаСчетФактураПредыдущееИсправление(Запрос);
ТекстЗапроса =
"ВЫБРАТЬ
| ВЫБОР
| КОГДА ДокументыОснования.ДатаПереходаПраваСобственности > &Период
| ТОГДА ДокументыОснования.ДатаПереходаПраваСобственности
| ИНАЧЕ &Период
| КОНЕЦ КАК Период,
| НачислениеНДС.Организация КАК Организация,
| ЗНАЧЕНИЕ(Перечисление.ТипыЗаписейДвиженийПоНДС.Исходящий) КАК ТипЗаписи,
| НачислениеНДС.Покупатель КАК Контрагент,
| НачислениеНДС.СчетФактура КАК СчетФактура,
| НачислениеНДС.СтавкаНДС КАК СтавкаНДС,
| НачислениеНДС.ВидЦенности КАК ВидЦенности,
|
| НачислениеНДС.СуммаБезНДС КАК СуммаБезНДС,
| НачислениеНДС.НДС КАК НДС,
| НачислениеНДС.НДСУпр КАК НДСУпр,
|
| ЛОЖЬ КАК РегламентнаяОперация,
| НачислениеНДС.ИдентификаторФинЗаписи КАК ИдентификаторФинЗаписи,
| НачислениеНДС.НастройкаХозяйственнойОперации КАК НастройкаХозяйственнойОперации,
| ЛОЖЬ КАК Сторно
|ИЗ
| ВтНДСЗаписиКнигиПродаж КАК НачислениеНДС
| ВНУТРЕННЕЕ СОЕДИНЕНИЕ ВтДокументыОснования КАК ДокументыОснования
| ПО НачислениеНДС.ИдентификаторСтроки = ДокументыОснования.ИдентификаторСтроки
| И НЕ ДокументыОснования.ДатаДокументаОснования ЕСТЬ NULL
|
|ОБЪЕДИНИТЬ ВСЕ
|
|ВЫБРАТЬ
| ДвиженияПоНДС.Период КАК Период,
| ДвиженияПоНДС.Организация КАК Организация,
| ДвиженияПоНДС.ТипЗаписи КАК ТипЗаписи,
| ДвиженияПоНДС.Контрагент КАК Контрагент,
| ДвиженияПоНДС.СчетФактура КАК СчетФактура,
| ДвиженияПоНДС.СтавкаНДС КАК СтавкаНДС,
| ДвиженияПоНДС.ВидЦенности КАК ВидЦенности,
|
| -ДвиженияПоНДС.СуммаБезНДС КАК СуммаБезНДС,
| -ДвиженияПоНДС.НДС КАК НДС,
| -ДвиженияПоНДС.НДСУпр КАК НДСУпр,
|
| ДвиженияПоНДС.РегламентнаяОперация КАК РегламентнаяОперация,
| ДвиженияПоНДС.ИдентификаторФинЗаписи КАК ИдентификаторФинЗаписи,
| ДвиженияПоНДС.НастройкаХозяйственнойОперации КАК НастройкаХозяйственнойОперации,
| ДвиженияПоНДС.Сторно КАК Сторно
|ИЗ
| РегистрНакопления.ДвиженияПоНДС КАК ДвиженияПоНДС
|ГДЕ
| (&Исправление ИЛИ &Корректировочный)
| И &СчетФактураПредыдущееИсправление <> НЕОПРЕДЕЛЕНО
| И ДвиженияПоНДС.Регистратор = &СчетФактураПредыдущееИсправление
|
|ОБЪЕДИНИТЬ ВСЕ
|
|ВЫБРАТЬ
| ДвиженияПоНДС.Период КАК Период,
| ДвиженияПоНДС.Организация КАК Организация,
| ДвиженияПоНДС.ТипЗаписи КАК ТипЗаписи,
| ДвиженияПоНДС.Контрагент КАК Контрагент,
| ДвиженияПоНДС.СчетФактура КАК СчетФактура,
| ДвиженияПоНДС.СтавкаНДС КАК СтавкаНДС,
| ДвиженияПоНДС.ВидЦенности КАК ВидЦенности,
|
| -ДвиженияПоНДС.СуммаБезНДС КАК СуммаБезНДС,
| -ДвиженияПоНДС.НДС КАК НДС,
| -ДвиженияПоНДС.НДСУпр КАК НДСУпр,
|
| ДвиженияПоНДС.РегламентнаяОперация КАК РегламентнаяОперация,
| ДвиженияПоНДС.ИдентификаторФинЗаписи КАК ИдентификаторФинЗаписи,
| ДвиженияПоНДС.НастройкаХозяйственнойОперации КАК НастройкаХозяйственнойОперации,
| ДвиженияПоНДС.Сторно КАК Сторно
|ИЗ
| РегистрНакопления.ДвиженияПоНДС КАК ДвиженияПоНДС
|ГДЕ
| (&Исправление ИЛИ &Корректировочный)
| И &СчетФактураПредыдущееИсправление = НЕОПРЕДЕЛЕНО
| И ДвиженияПоНДС.Регистратор = &СчетФактураОснование
|";
ТекстыЗапроса.Добавить(ТекстЗапроса, ИмяРегистра);
Возврат ТекстЗапроса;
КонецФункции
Функция ТекстЗапросаТаблицаПрочиеАктивыПассивы(Запрос, ТекстыЗапроса, Регистры)
ИмяРегистра = "ПрочиеАктивыПассивы";
Если Не ПроведениеДокументов.ТребуетсяТаблицаДляДвижений(ИмяРегистра, Регистры) Тогда
Возврат "";
КонецЕсли;
ИнициализироватьВтТаблицаСуммДокументов(Запрос, ТекстыЗапроса);
Запрос.УстановитьПараметр("НДС_ОбратноеОбложение", Справочники.ВидыНалоговВзносов.ПолучитьСсылкуПредопределенногоЭлемента("НДС_ОбратноеОбложение"));
ТекстЗапроса =
"ВЫБРАТЬ
| ВЫБОР
| КОГДА ТаблицаСуммДокументов.ДатаПереходаПраваСобственности > &Период
| ТОГДА ТаблицаСуммДокументов.ДатаПереходаПраваСобственности
| ИНАЧЕ &Период
| КОНЕЦ КАК Период,
| ЗНАЧЕНИЕ(ВидДвиженияНакопления.Расход) КАК ВидДвижения,
| &Организация КАК Организация,
| ТаблицаСуммДокументов.Подразделение КАК Подразделение,
| ЗНАЧЕНИЕ(Справочник.НаправленияДеятельности.ПустаяСсылка) КАК НаправлениеДеятельности,
| ЗНАЧЕНИЕ(ПланВидовХарактеристик.СтатьиАктивовПассивов.Налоги) КАК Статья,
| &НДС_ОбратноеОбложение КАК Аналитика,
|
| СУММА(ТаблицаСуммДокументов.НДСУпр) КАК Сумма
|
|ИЗ
| ВтТаблицаСуммДокументов КАК ТаблицаСуммДокументов
|
|СГРУППИРОВАТЬ ПО
| ТаблицаСуммДокументов.ДатаПереходаПраваСобственности,
| ТаблицаСуммДокументов.Подразделение";
ТекстыЗапроса.Добавить(ТекстЗапроса, ИмяРегистра);
Возврат ТекстЗапроса;
КонецФункции
Процедура УстановитьПараметрЗапросаСчетФактураПредыдущееИсправление(Запрос)
Если Запрос.Параметры.Свойство("СчетФактураПредыдущееИсправление") Тогда
Возврат;
КонецЕсли;
Запрос.УстановитьПараметр("СчетФактураПредыдущееИсправление", ?(Запрос.Параметры.Исправление,
СчетФактураПредыдущееИсправление(Запрос.Параметры.СчетФактураОснование, Запрос.Параметры.НомерИсправления),
Неопределено));
КонецПроцедуры
Функция СчетФактураПредыдущееИсправление(СчетФактураОснование, НомерИсправления)
Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ
| СчетФактура.Ссылка КАК ИсправленныйСчетФактура,
| СчетФактура.НомерИсправления КАК НомерИсправления
|ИЗ
| Документ.СчетФактураПолученныйНалоговыйАгент КАК СчетФактура
|ГДЕ
| СчетФактура.СчетФактураОснование = &СчетФактураОснование
| И СчетФактура.Проведен
| И СчетФактура.Исправление
| И СчетФактура.НомерИсправления <> &НомерИсправления
|";
Запрос.УстановитьПараметр("СчетФактураОснование", СчетФактураОснование);
Запрос.УстановитьПараметр("НомерИсправления", НомерИсправления);
ПредыдущийНомер = 0;
ИсправленныйСчетФактура = Неопределено;
НомерИсправленияЧислом = ?(ЗначениеЗаполнено(НомерИсправления),Число(НомерИсправления),1);
Выборка = Запрос.Выполнить().Выбрать();
Пока Выборка.Следующий() Цикл
НомерИзВыборки = Число(Выборка.НомерИсправления);
Если НомерИзВыборки < НомерИсправленияЧислом
И НомерИзВыборки > ПредыдущийНомер Тогда
ПредыдущийНомер = НомерИзВыборки;
ИсправленныйСчетФактура = Выборка.ИсправленныйСчетФактура;
КонецЕсли;
КонецЦикла;
Возврат ИсправленныйСчетФактура
КонецФункции
Функция ТекстЗапросаТаблицаНДСПредъявленный(Запрос, ТекстыЗапроса, Регистры)
ИмяРегистра = "НДСПредъявленный";
Если НЕ ПроведениеДокументов.ТребуетсяТаблицаДляДвижений(ИмяРегистра, Регистры) Тогда
Возврат "";
КонецЕсли;
НастройкиНалоговУчетныхПолитик.ДополнитьМенеджерВременныхТаблицДействующимиПараметрамиНалоговУчетныхПолитик(
Метаданные.РегистрыСведений.НастройкиУчетаНДС.Имя,
Запрос.МенеджерВременныхТаблиц,
Запрос.Параметры.ДатаПолучения,
"ВТНастройкиУчетаНДС",
Запрос.Параметры.Организация);
НастройкиНалоговУчетныхПолитик.ДополнитьМенеджерВременныхТаблицДействующимиПараметрамиНалоговУчетныхПолитик(
Метаданные.РегистрыСведений.УчетнаяПолитикаФинансовогоУчета.Имя,
Запрос.МенеджерВременныхТаблиц,
Запрос.Параметры.ДатаПолучения,
"ВТУчетнаяПолитикаФинансовогоУчета",
Запрос.Параметры.Организация);
НастройкиНалоговУчетныхПолитик.ДополнитьМенеджерВременныхТаблицДействующимиПараметрамиНалоговУчетныхПолитик(
Метаданные.РегистрыСведений.НастройкиУчетаУСН.Имя,
Запрос.МенеджерВременныхТаблиц,
Запрос.Параметры.ДатаПолучения,
"ВТНастройкиУчетаУСН",
Запрос.Параметры.Организация);
ИнициализироватьВтНДСЗаписиКнигиПродаж(Запрос, ТекстыЗапроса);
УстановитьПараметрКоэффициентПересчетаВВалютуУпр(Запрос);
ТекстЗапроса =
"ВЫБРАТЬ
| ЗНАЧЕНИЕ(ВидДвиженияНакопления.Приход) КАК ВидДвижения,
| ВЫБОР
| КОГДА ДокументыОснования.ДатаПереходаПраваСобственности > &Период
| ТОГДА ДокументыОснования.ДатаПереходаПраваСобственности
| ИНАЧЕ &Период
| КОНЕЦ КАК Период,
| ЗаписиКнигиПродаж.Организация КАК Организация,
| ЗаписиКнигиПродаж.СчетФактура КАК СчетФактура,
| ЗаписиКнигиПродаж.Покупатель КАК Поставщик,
| ЗаписиКнигиПродаж.ВидЦенности КАК ВидЦенности,
| ЗаписиКнигиПродаж.СтавкаНДС КАК СтавкаНДС,
| ВЫБОР
| КОГДА ЗаписиКнигиПродаж.ВидЦенности = ЗНАЧЕНИЕ(Перечисление.ВидыЦенностей.ВосстановлениеПоКСФ)
| ТОГДА ЗаписиКнигиПродаж.ВидДеятельностиНДС
| КОГДА НастройкиУчетаНДС.РаздельныйУчетТоваровПоНалогообложениюНДС
| ИЛИ УчетнаяПолитикаФинансовогоУчета.ДетализироватьМатериальныеИПостатейныеЗатратыВСебестоимостиТоваров
| ИЛИ НастройкиУчетаУСН.РаздельныйУчетТоваров
| ТОГДА НЕОПРЕДЕЛЕНО
| ИНАЧЕ ЗаписиКнигиПродаж.ВидДеятельностиНДС
| КОНЕЦ КАК ВидДеятельностиНДС,
| ВЫБОР
| КОГДА &Исправление
| ТОГДА &Ссылка
| ИНАЧЕ НЕОПРЕДЕЛЕНО
| КОНЕЦ КАК ИсправленныйСчетФактура,
| НЕОПРЕДЕЛЕНО КАК РеализацияЭкспорт,
| НЕОПРЕДЕЛЕНО КАК НаправлениеДеятельности,
| ВЫБОР
| КОГДА ЗаписиКнигиПродаж.ВидЦенности = ЗНАЧЕНИЕ(Перечисление.ВидыЦенностей.ВосстановлениеПоКСФ)
| ТОГДА ЗаписиКнигиПродаж.СуммаБезНДС
| ИНАЧЕ 0
| КОНЕЦ КАК СуммаБезНДС,
| ЗаписиКнигиПродаж.НДС КАК НДС,
| ЗаписиКнигиПродаж.НДСУпр КАК НДСУпр,
| НЕОПРЕДЕЛЕНО КАК Событие,
| ЛОЖЬ КАК РегламентнаяОперация,
| ЗаписиКнигиПродаж.ИдентификаторСтроки КАК ИдентификаторСтроки,
| НЕОПРЕДЕЛЕНО КАК КорВидДеятельностиНДС,
| ЗаписиКнигиПродаж.ИдентификаторФинЗаписи КАК ИдентификаторФинЗаписи,
| ЗаписиКнигиПродаж.НастройкаХозяйственнойОперации КАК НастройкаХозяйственнойОперации
|ИЗ
| ВтНДСЗаписиКнигиПродаж КАК ЗаписиКнигиПродаж
| ВНУТРЕННЕЕ СОЕДИНЕНИЕ ВтДокументыОснования КАК ДокументыОснования
| ПО ЗаписиКнигиПродаж.ИдентификаторСтроки = ДокументыОснования.ИдентификаторСтроки
| И НЕ ДокументыОснования.ДатаДокументаОснования ЕСТЬ NULL
|
| ЛЕВОЕ СОЕДИНЕНИЕ
| ВТНастройкиУчетаНДС КАК НастройкиУчетаНДС
| ПО
| ЗаписиКнигиПродаж.Организация = НастройкиУчетаНДС.Организация
|
| ЛЕВОЕ СОЕДИНЕНИЕ
| ВТУчетнаяПолитикаФинансовогоУчета КАК УчетнаяПолитикаФинансовогоУчета
| ПО
| ЗаписиКнигиПродаж.Организация = УчетнаяПолитикаФинансовогоУчета.Организация
|
| ЛЕВОЕ СОЕДИНЕНИЕ
| ВТНастройкиУчетаУСН КАК НастройкиУчетаУСН
| ПО
| ЗаписиКнигиПродаж.Организация = НастройкиУчетаУСН.Организация
|
|ГДЕ
| ЗаписиКнигиПродаж.НДС <> 0
| И ВЫБОР КОГДА НастройкиУчетаНДС.РаздельныйУчетТоваровПоНалогообложениюНДС
| ИЛИ УчетнаяПолитикаФинансовогоУчета.ДетализироватьМатериальныеИПостатейныеЗатратыВСебестоимостиТоваров
| ИЛИ НастройкиУчетаУСН.РаздельныйУчетТоваров
| ТОГДА ИСТИНА
| ИНАЧЕ ЗаписиКнигиПродаж.ВидДеятельностиНДС В
| (&НалогообложениеОрганизации,
| ЗНАЧЕНИЕ(Перечисление.ТипыНалогообложенияНДС.ПродажаОблагаетсяНДС),
| ЗНАЧЕНИЕ(Перечисление.ТипыНалогообложенияНДС.ПроизводствоСДЦ),
| ЗНАЧЕНИЕ(Перечисление.ТипыНалогообложенияНДС.ПродажаНаЭкспорт),
| ЗНАЧЕНИЕ(Перечисление.ТипыНалогообложенияНДС.ЭкспортСырьевыхТоваровУслуг),
| ЗНАЧЕНИЕ(Перечисление.ТипыНалогообложенияНДС.ЭкспортНесырьевыхТоваров),
| ЗНАЧЕНИЕ(Перечисление.ТипыНалогообложенияНДС.Космос),
| ЗНАЧЕНИЕ(Перечисление.ТипыНалогообложенияНДС.ПоФактическомуиспользованию),
| ЗНАЧЕНИЕ(Перечисление.ТипыНалогообложенияНДС.ОпределяетсяРаспределением),
| ЗНАЧЕНИЕ(Перечисление.ТипыНалогообложенияНДС.ВводОСВЭксплуатацию))
| КОНЕЦ
|";
ТекстыЗапроса.Добавить(ТекстЗапроса, ИмяРегистра);
Возврат ТекстЗапроса;
КонецФункции
Процедура ИнициализироватьВтПартииПрочихРасходов(Запрос, ТекстыЗапроса)
Если Запрос.Параметры.Свойство("ВтПартииПрочихРасходовИнициализирована") Тогда
Возврат;
КонецЕсли;
ИнициализироватьВтНДСЗаписиКнигиПродаж(Запрос, ТекстыЗапроса);
ИнициализироватьКлючиАналитикиУчетаПартийДокумента(Запрос);
ЗапросПартииПрочихРасходов = Новый Запрос;
ЗапросПартииПрочихРасходов.МенеджерВременныхТаблиц = Запрос.МенеджерВременныхТаблиц;
ЗапросПартииПрочихРасходов.УстановитьПараметр("Ссылка", Запрос.Параметры.Ссылка);
ЗапросПартииПрочихРасходов.УстановитьПараметр("Организация", Запрос.Параметры.Организация);
ЗапросПартииПрочихРасходов.УстановитьПараметр("СтатьяРасходов", Запрос.Параметры.СтатьяРасходов);
ЗапросПартииПрочихРасходов.УстановитьПараметр("Исправление", Запрос.Параметры.Исправление);
ЗапросПартииПрочихРасходов.УстановитьПараметр("СчетФактураОснование", Запрос.Параметры.СчетФактураОснование);
ЗапросПартииПрочихРасходов.УстановитьПараметр("Ссылка", Запрос.Параметры.Ссылка);
ЗапросПартииПрочихРасходов.УстановитьПараметр("Период", Запрос.Параметры.Период);
ЗапросПартииПрочихРасходов.Текст =
"ВЫБРАТЬ
| Аналитика.АналитикаУчетаПартий КАК АналитикаУчетаПартий,
| ЗНАЧЕНИЕ(ВидДвиженияНакопления.Приход) КАК ВидДвижения,
| 0 КАК ВременнаяРазница,
| ВЫБОР КОГДА &Исправление
| ТОГДА &СчетФактураОснование
| ИНАЧЕ &Ссылка
| КОНЕЦ КАК ДокументПоступленияРасходов,
| ВЫБОР
| КОГДА Аналитика.НалогообложениеНДС <> ЗНАЧЕНИЕ(Перечисление.ТипыНалогообложенияНДС.ПустаяСсылка)
| ТОГДА Аналитика.НалогообложениеНДС
| ИНАЧЕ Аналитика.АналитикаУчетаПартий.НалогообложениеНДС
| КОНЕЦ КАК ВидДеятельностиНДС,
| ДокументыПоступления.СуммаНДС КАК НДСРегл,
| ДокументыПоступления.НДСУпр КАК НДСУпр,
| ДокументыПоступления.СуммаНДСУпр КАК СуммаНДСУпр,
| ДокументыПоступления.ЗакупкаПодДеятельность КАК НалогообложениеНДС,
| ДокументыПоступления.ИдентификаторСтроки КАК НомерСтроки,
| &Организация КАК Организация,
| ВЫБОР
| КОГДА ДокументыПоступления.ДатаПереходаПраваСобственности > &Период
| ТОГДА ДокументыПоступления.ДатаПереходаПраваСобственности
| ИНАЧЕ &Период
| КОНЕЦ КАК Период,
| ДокументыПоступления.Подразделение КАК Подразделение,
| 0 КАК ПостояннаяРазница,
| &Ссылка КАК Регистратор,
| &СтатьяРасходов КАК СтатьяРасходов,
| ВЫБОР
| КОГДА ДокументыПоступления.СуммаНДС < 0
| И ДокументыПоступления.ДокументОснование ССЫЛКА Документ.КорректировкаПриобретения
| ТОГДА ВЫРАЗИТЬ(ДокументыПоступления.ДокументОснование КАК Документ.КорректировкаПриобретения).ДокументОснование
| ИНАЧЕ ДокументыПоступления.ДокументОснование
| КОНЕЦ КАК АналитикаРасходов,
| 0 КАК Стоимость,
| 0 КАК СтоимостьБезНДС,
| 0 КАК СтоимостьРегл
|ПОМЕСТИТЬ ВтПартииПрочихРасходовПрочиеРасходы
|ИЗ
| ВтТаблицаСуммДокументов КАК ДокументыПоступления
| ВНУТРЕННЕЕ СОЕДИНЕНИЕ ВтТаблицаАналитикУчетаПартий КАК Аналитика
| ПО Аналитика.НомерСтроки = ДокументыПоступления.ИдентификаторСтроки
|ГДЕ
| ДокументыПоступления.СуммаНДС <> 0
| И НЕ ДокументыПоступления.ДатаПереходаПраваСобственности = ДАТАВРЕМЯ(1,1,1)
| И НЕ ДокументыПоступления.ВидЦенности = ЗНАЧЕНИЕ(Перечисление.ВидыЦенностей.ВосстановлениеПоКСФ)
|";
ЗапросПартииПрочихРасходов.Выполнить();
НДСПартииПрочихРасходов = РегистрыНакопления.ПартииПрочихРасходов.СоздатьНаборЗаписей();
НДСПартииПрочихРасходов.Загрузить(РасчетСебестоимостиПрикладныеАлгоритмы.ВыгрузитьВременнуюТаблицу(ЗапросПартииПрочихРасходов.МенеджерВременныхТаблиц, "ВтПартииПрочихРасходовПрочиеРасходы"));
ЗапросПартииПрочихРасходов.УстановитьПараметр("НДСПартииПрочихРасходов", НДСПартииПрочихРасходов);
ЗапросПартииПрочихРасходов.Текст =
"ВЫБРАТЬ
| ПартииПрочихРасходов.АналитикаРасходов,
| ЗНАЧЕНИЕ(ПланВидовХарактеристик.СтатьиАктивовПассивов.ПустаяСсылка) КАК АналитикаАктивовПассивов,
| ЗНАЧЕНИЕ(Справочник.КлючиАналитикиУчетаНоменклатуры.ПустаяСсылка) КАК АналитикаУчетаНоменклатуры,
| ПартииПрочихРасходов.АналитикаУчетаПартий,
| ПартииПрочихРасходов.ВидДвижения,
| ПартииПрочихРасходов.ВременнаяРазница,
| ПартииПрочихРасходов.ДокументПоступленияРасходов,
| ЗНАЧЕНИЕ(Перечисление.ТипыНалогообложенияНДС.ПродажаОблагаетсяНДС) КАК ВидДеятельностиНДС,
| ПартииПрочихРасходов.НДСРегл,
| ПартииПрочихРасходов.НДСУпр,
| ПартииПрочихРасходов.НалогообложениеНДС,
| ПартииПрочихРасходов.НомерСтроки,
| ПартииПрочихРасходов.Организация,
| ПартииПрочихРасходов.Период,
| ПартииПрочихРасходов.Подразделение,
| ЗНАЧЕНИЕ(Справочник.НаправленияДеятельности.ПустаяСсылка) КАК НаправлениеДеятельности,
| ПартииПрочихРасходов.ПостояннаяРазница,
| ПартииПрочихРасходов.Регистратор,
| ПартииПрочихРасходов.СтатьяРасходов,
| ПартииПрочихРасходов.Стоимость,
| ПартииПрочихРасходов.СтоимостьБезНДС,
| ПартииПрочихРасходов.СтоимостьРегл,
| ЗНАЧЕНИЕ(Перечисление.ХозяйственныеОперации.ПустаяСсылка) КАК ХозяйственнаяОперация,
| ЗНАЧЕНИЕ(Справочник.НастройкиХозяйственныхОпераций.ПустаяСсылка) КАК НастройкаХозяйственнойОперации,
| """" КАК ИдентификаторФинЗаписи
|ПОМЕСТИТЬ ВтИсходныеПартииПрочихРасходов
|ИЗ
| &НДСПартииПрочихРасходов КАК ПартииПрочихРасходов";
ЗапросПартииПрочихРасходов.Выполнить();
МассивПериодов = НДСПартииПрочихРасходов.ВыгрузитьКолонку("Период");
Если МассивПериодов.Количество() = 0 Тогда
МассивПериодов.Добавить(Запрос.Параметры.Период);
КонецЕсли;
РасчетСебестоимостиПрикладныеАлгоритмы.ЗаполнитьПараметрыИнициализацииПоПериодам(
Запрос,
Запрос.Параметры,
МассивПериодов);
Запрос.УстановитьПараметр("ВтПартииПрочихРасходовИнициализирована", Истина);
КонецПроцедуры
Функция ТекстЗапросаТаблицаВтПартииПрочихРасходов(Запрос, ТекстыЗапроса)
ИмяРегистра = "ВтПартииПрочихРасходов";
ИнициализироватьВтПартииПрочихРасходов(Запрос, ТекстыЗапроса);
ТекстЗапроса = РегистрыНакопления.ПартииПрочихРасходов.ТекстЗапросаТаблицаВтПартииПрочихРасходов(, Истина);
ТекстыЗапроса.Добавить(ТекстЗапроса, ИмяРегистра);
Возврат ТекстЗапроса;
КонецФункции
Функция ТекстЗапросаТаблицаПартииПрочихРасходов(Запрос, ТекстыЗапроса, Регистры)
ИмяРегистра = "ПартииПрочихРасходов";
Если Не ПроведениеДокументов.ТребуетсяТаблицаДляДвижений(ИмяРегистра, Регистры) Тогда
Возврат "";
КонецЕсли;
Если Не ПроведениеДокументов.ЕстьТаблицаЗапроса("ВтПартииПрочихРасходов", ТекстыЗапроса) Тогда
ТекстЗапросаТаблицаВтПартииПрочихРасходов(Запрос, ТекстыЗапроса);
КонецЕсли;
ТекстЗапроса = РегистрыНакопления.ПартииПрочихРасходов.ТекстЗапросаТаблицаПартииПрочихРасходов();
ТекстыЗапроса.Добавить(ТекстЗапроса, ИмяРегистра);
Возврат ТекстЗапроса;
КонецФункции
Функция ТекстЗапросаТаблицаВтИсходныеПрочиеРасходы(Запрос, ТекстыЗапроса)
ИмяРегистра = "ВтИсходныеПрочиеРасходы";
ИнициализироватьВтПартииПрочихРасходов(Запрос, ТекстыЗапроса);
ТекстЗапроса = "
|ВЫБРАТЬ ПЕРВЫЕ 0
| ТаблицаРасходов.Период КАК Период,
| ТаблицаРасходов.ВидДвижения КАК ВидДвижения,
| ТаблицаРасходов.Организация КАК Организация,
| ТаблицаРасходов.Подразделение КАК Подразделение,
| ТаблицаРасходов.НаправлениеДеятельности КАК НаправлениеДеятельности,
| ТаблицаРасходов.СтатьяРасходов КАК СтатьяРасходов,
| ТаблицаРасходов.АналитикаРасходов КАК АналитикаРасходов,
| ЗНАЧЕНИЕ(Перечисление.ТипыНалогообложенияНДС.ПустаяСсылка) КАК ВидДеятельностиНДС,
|
| 0 КАК СуммаСНДС,
| 0 КАК СуммаБезНДС,
| 0 КАК СуммаБезНДСУпр,
|
| 0 КАК СуммаСНДСРегл,
| 0 КАК СуммаБезНДСРегл,
| 0 КАК ПостояннаяРазница,
| 0 КАК ВременнаяРазница,
|
| ТаблицаРасходов.ХозяйственнаяОперация КАК ХозяйственнаяОперация,
| ТаблицаРасходов.АналитикаУчетаНоменклатуры КАК АналитикаУчетаНоменклатуры,
|
| """" КАК ИдентификаторСтроки,
| """" КАК ИдентификаторФинЗаписи,
| ТаблицаРасходов.НастройкаХозяйственнойОперации КАК НастройкаХозяйственнойОперации
|
|ПОМЕСТИТЬ ВтИсходныеПрочиеРасходы
|ИЗ
| РегистрНакопления.ПрочиеРасходы КАК ТаблицаРасходов
|
|ОБЪЕДИНИТЬ ВСЕ
|
|ВЫБРАТЬ
| ТаблицаРасходов.Период КАК Период,
| ТаблицаРасходов.ВидДвижения КАК ВидДвижения,
| ТаблицаРасходов.Организация КАК Организация,
| ТаблицаРасходов.Подразделение КАК Подразделение,
| НЕОПРЕДЕЛЕНО КАК НаправлениеДеятельности,
| ТаблицаРасходов.СтатьяРасходов КАК СтатьяРасходов,
| ТаблицаРасходов.АналитикаРасходов КАК АналитикаРасходов,
| ЗНАЧЕНИЕ(Перечисление.ТипыНалогообложенияНДС.ПродажаОблагаетсяНДС) КАК ВидДеятельностиНДС,
|
| СУММА(ТаблицаРасходов.СуммаНДСУпр) КАК СуммаСНДС,
| 0 КАК СуммаБезНДС,
| 0 КАК СуммаБезНДСУпр,
|
| СУММА(ТаблицаРасходов.НДСРегл) КАК СуммаСНДСРегл,
| 0 КАК СуммаБезНДСРегл,
| 0 КАК ПостояннаяРазница,
| 0 КАК ВременнаяРазница,
|
| &ХозяйственнаяОперация КАК ХозяйственнаяОперация,
| NULL КАК АналитикаУчетаНоменклатуры,
|
| """" КАК ИдентификаторСтроки,
| ТаблицаРасходов.НомерСтроки КАК ИдентификаторФинЗаписи,
| НЕОПРЕДЕЛЕНО КАК НастройкаХозяйственнойОперации
|
|ИЗ
| ВтПартииПрочихРасходовПрочиеРасходы КАК ТаблицаРасходов
|
|СГРУППИРОВАТЬ ПО
| ТаблицаРасходов.Период,
| ТаблицаРасходов.ВидДвижения,
| ТаблицаРасходов.Организация,
| ТаблицаРасходов.Подразделение,
| ТаблицаРасходов.СтатьяРасходов,
| ТаблицаРасходов.АналитикаРасходов,
| ТаблицаРасходов.ВидДеятельностиНДС,
| ТаблицаРасходов.НомерСтроки
|";
ТекстыЗапроса.Добавить(ТекстЗапроса, ИмяРегистра);
Возврат ТекстЗапроса;
КонецФункции
Функция ТекстЗапросаТаблицаВтПрочиеРасходы(Запрос, ТекстыЗапроса)
ИмяРегистра = "ВтПрочиеРасходы";
Если Не ПроведениеДокументов.ЕстьТаблицаЗапроса("ВтИсходныеПрочиеРасходы", ТекстыЗапроса) Тогда
ТекстЗапросаТаблицаВтИсходныеПрочиеРасходы(Запрос, ТекстыЗапроса);
КонецЕсли;
ТекстЗапроса = РегистрыНакопления.ПрочиеРасходы.ТекстЗапросаТаблицаВтПрочиеРасходы("ИдентификаторСтроки");
ТекстыЗапроса.Добавить(ТекстЗапроса, ИмяРегистра);
Возврат ТекстЗапроса;
КонецФункции
Функция ТекстЗапросаТаблицаПрочиеРасходы(Запрос, ТекстыЗапроса, Регистры)
ИмяРегистра = "ПрочиеРасходы";
Если НЕ ПроведениеДокументов.ТребуетсяТаблицаДляДвижений(ИмяРегистра, Регистры) Тогда
Возврат "";
КонецЕсли;
Если Не ПроведениеДокументов.ЕстьТаблицаЗапроса("ВтПрочиеРасходы", ТекстыЗапроса) Тогда
ТекстЗапросаТаблицаВтПрочиеРасходы(Запрос, ТекстыЗапроса);
КонецЕсли;
ТекстЗапроса = РегистрыНакопления.ПрочиеРасходы.ТекстЗапросаТаблицаПрочиеРасходы("ИдентификаторСтроки");
ТекстыЗапроса.Добавить(ТекстЗапроса, ИмяРегистра);
Возврат ТекстЗапроса;
КонецФункции
Процедура ИнициализироватьКлючиАналитикиУчетаПартийДокумента(Запрос)
Если Запрос.Параметры.Свойство("КлючиАналитикиУчетаПартийДокументаИнициализированы") Тогда
Возврат;
КонецЕсли;
УстановитьПараметрЗапросаНалогообложениеОрганизации(Запрос);
ТекстВыборкаПоляАналитик =
"ВЫБРАТЬ
| ТаблицаДокументыПоступления.ИдентификаторСтроки КАК НомерСтроки,
| ""ДокументыОснования"" КАК ИмяТабличнойЧасти,
| ТаблицаДокументыПоступления.Партнер КАК Поставщик,
| СчетФактураПолученныйНалоговыйАгент.Контрагент КАК Контрагент,
| ВЫБОР КОГДА
| ТаблицаДокументыПоступления.ЗакупкаПодДеятельность В ( ЗНАЧЕНИЕ(Перечисление.ТипыНалогообложенияНДС.ПоФактическомуИспользованию),
| ЗНАЧЕНИЕ(Перечисление.ТипыНалогообложенияНДС.ПродажаНеОблагаетсяНДС),
| ЗНАЧЕНИЕ(Перечисление.ТипыНалогообложенияНДС.ПродажаОблагаетсяЕНВД))
| ТОГДА &НалогообложениеОрганизации
| ИНАЧЕ ТаблицаДокументыПоступления.ЗакупкаПодДеятельность
| КОНЕЦ КАК НалогообложениеНДС,
| ТаблицаДокументыПоступления.СтавкаНДС КАК СтавкаНДС,
| ТаблицаДокументыПоступления.ВидЦенности КАК ВидЦенности,
| 0 КАК КодСтроки
|ПОМЕСТИТЬ ВТПоляАналитикУчетаПартий
|ИЗ
| втТаблицаСуммДокументов КАК ТаблицаДокументыПоступления
| ЛЕВОЕ СОЕДИНЕНИЕ Документ.СчетФактураПолученныйНалоговыйАгент КАК СчетФактураПолученныйНалоговыйАгент
| ПО (СчетФактураПолученныйНалоговыйАгент.Ссылка = &Ссылка)";
ТекстЗапроса = Справочники.КлючиАналитикиУчетаПартий.ТекстЗапросаВтТаблицаАналитикУчетаПартий(ТекстВыборкаПоляАналитик, Запрос);
Запрос.Текст = ТекстЗапроса;
Запрос.Выполнить();
Запрос.УстановитьПараметр("КлючиАналитикиУчетаПартийДокументаИнициализированы", Истина);
КонецПроцедуры
Процедура УстановитьПараметрЗапросаНалогообложениеОрганизации(Запрос)
Если Запрос.Параметры.Свойство("НалогообложениеОрганизации") Тогда
Возврат;
КонецЕсли;
ПараметрыУчетаПоОрганизации = УчетНДСУП.ПараметрыУчетаПоОрганизации(Запрос.Параметры.Организация, Запрос.Параметры.Период);
Запрос.УстановитьПараметр("НалогообложениеОрганизации", ПараметрыУчетаПоОрганизации.ОсновноеНалогообложениеНДСПродажи);
КонецПроцедуры
Функция ТекстЗапросаТаблицаОтражениеДокументовВРеглУчете(Запрос, ТекстыЗапроса, Регистры)
ИмяРегистра = "ОтражениеДокументовВРеглУчете";
Если НЕ ПроведениеДокументов.ТребуетсяТаблицаДляДвижений(ИмяРегистра, Регистры) Тогда
Возврат "";
КонецЕсли;
ТекстЗапроса =
"ВЫБРАТЬ
| &ДатаПолучения КАК Период,
| &Организация КАК Организация,
| НАЧАЛОПЕРИОДА(&ДатаСоставления, ДЕНЬ) КАК ДатаОтражения
|ГДЕ
| НЕ &Исправление
|
|ОБЪЕДИНИТЬ
|
|ВЫБРАТЬ
| &ДатаПолучения КАК Период,
| &Организация КАК Организация,
| НАЧАЛОПЕРИОДА(ВЫБОР
| КОГДА &ДатаПереходаПраваСобственности > &Период
| ТОГДА &ДатаПереходаПраваСобственности
| ИНАЧЕ &Период
| КОНЕЦ, ДЕНЬ) КАК ДатаОтражения
|";
ТекстыЗапроса.Добавить(ТекстЗапроса, ИмяРегистра);
Возврат ТекстЗапроса;
КонецФункции
Функция АдаптированныйТекстЗапросаДвиженийПоРегистру(ИмяРегистра) Экспорт
Запрос = Новый Запрос;
ТекстыЗапроса = Новый СписокЗначений;
ПолноеИмяДокумента = "Документ.СчетФактураПолученныйНалоговыйАгент";
СинонимТаблицыДокумента = "";
ВЗапросеЕстьИсточник = Истина;
ТекстыЗапросаВременныхТаблиц = Новый Соответствие();
ПереопределениеРасчетаПараметров = Новый Структура;
ПереопределениеРасчетаПараметров.Вставить("НомерНаПечать", """""");
ПереопределениеРасчетаПараметров.Вставить("ИнформацияПоИсправлению", """""");
ПереопределениеРасчетаПараметров.Вставить("ДатаПолучения", "ДанныеДокумента.Дата");
ЗначенияПараметров = Новый Структура;
ЗначенияПараметров.Вставить("ИдентификаторМетаданных",
ОбщегоНазначения.ИдентификаторОбъектаМетаданных(ПолноеИмяДокумента));
Если ИмяРегистра = "РеестрДокументов" Тогда
ТекстЗапроса = ТекстЗапросаТаблицаРеестрДокументов(Запрос, ТекстыЗапроса, ИмяРегистра);
СинонимТаблицыДокумента = "ДанныеДокумента";
Иначе
ТекстИсключения = НСтр("ru = 'В документе %ПолноеИмяДокумента% не реализована адаптация текста запроса формирования движений по регистру %ИмяРегистра%.'");
ТекстИсключения = СтрЗаменить(ТекстИсключения, "%ПолноеИмяДокумента%", ПолноеИмяДокумента);
ТекстИсключения = СтрЗаменить(ТекстИсключения, "%ИмяРегистра%", ИмяРегистра);
ВызватьИсключение ТекстИсключения;
КонецЕсли;
Если ИмяРегистра = "РеестрДокументов" Тогда
ТекстЗапроса = ОбновлениеИнформационнойБазыУТ.АдаптироватьЗапросПроведенияПоНезависимомуРегистру(
ТекстЗапроса,
ПолноеИмяДокумента,
СинонимТаблицыДокумента,
ВЗапросеЕстьИсточник,
ПереопределениеРасчетаПараметров,
ТекстыЗапросаВременныхТаблиц);
Иначе
ТекстЗапроса = ОбновлениеИнформационнойБазыУТ.АдаптироватьЗапросМеханизмаПроведения(
ТекстЗапроса,
ПолноеИмяДокумента,
СинонимТаблицыДокумента,
ПереопределениеРасчетаПараметров,
ТекстыЗапросаВременныхТаблиц);
КонецЕсли;
Результат = ОбновлениеИнформационнойБазыУТ.РезультатАдаптацииЗапроса();
Результат.ЗначенияПараметров = ЗначенияПараметров;
Результат.ТекстЗапроса = ТекстЗапроса;
Возврат Результат;
КонецФункции
#КонецОбласти
#Область ФормированиеГиперссылкиВЖурналеСчетовФактур
Функция СформироватьГиперссылкуКОформлению(Параметры) Экспорт
Если Не ПравоДоступа("Изменение", Метаданные.Документы.СчетФактураПолученныйНалоговыйАгент)
ИЛИ Не ПравоДоступа("Чтение", Метаданные.РегистрыСведений.ТребуетсяОформлениеСчетаФактуры)
ИЛИ Не ПравоДоступа("Чтение", Метаданные.РегистрыСведений.ДанныеОснованийСчетовФактур) Тогда
Возврат Неопределено;
КонецЕсли;
Параметры.Вставить("МассивОрганизаций",?(ЗначениеЗаполнено(Параметры.Организация),
ОбщегоНазначенияУТКлиентСервер.Массив(Параметры.Организация),
Неопределено));
Параметры.Вставить("БезОграниченияПериода");
Если Параметры.Свойство("КраткоеПредставление") Тогда
ТекстГиперссылки = НСтр("ru = 'СФ полученные (НА)'");
Иначе
ТекстГиперссылки = НСтр("ru = 'Счета-фактуры полученные (налоговый агент)'");
КонецЕсли;
Если ЕстьСчетаФактурыКОформлению(Параметры) = 0 Тогда
Возврат Новый ФорматированнаяСтрока(ТекстГиперссылки,,ЦветаСтиля.НезаполненноеПолеТаблицы,,
ИмяФормыСчетФактураПолученный());
Иначе
Возврат Новый ФорматированнаяСтрока(ТекстГиперссылки,,,,
ИмяФормыСчетФактураПолученный());
КонецЕсли;
КонецФункции
Функция ИмяФормыСчетФактураПолученный() Экспорт
Возврат "Документ.СчетФактураПолученныйНалоговыйАгент.Форма.ФормаРабочееМесто";
КонецФункции
#КонецОбласти
#КонецОбласти
#КонецЕсли