#Если Сервер Или ТолстыйКлиентОбычноеПриложение Или ВнешнееСоединение Тогда
#Область ПрограммныйИнтерфейс
#Область Проведение
Процедура ЗарегистрироватьУчетныеМеханизмы(МеханизмыДокумента) Экспорт
МеханизмыДокумента.Добавить("СуммыДокументовВВалютахУчета");
МеханизмыДокумента.Добавить("УчетНДС");
МеханизмыДокумента.Добавить("РеестрДокументов");
КонецПроцедуры
Функция ДанныеДокументаДляПроведения(Документ, Регистры, ДопПараметры = Неопределено) Экспорт
Если ДопПараметры = Неопределено Тогда
ДопПараметры = ПроведениеДокументов.ДопПараметрыИнициализироватьДанныеДокументаДляПроведения();
КонецЕсли;
Если ТипЗнч(Документ) = Тип("ДокументОбъект.ЗаписьКнигиПродаж") Тогда
ДокументСсылка = Документ.Ссылка;
Иначе
ДокументСсылка = Документ;
КонецЕсли;
Запрос = Новый Запрос;
ТекстыЗапроса = Новый СписокЗначений;
Если Не ДопПараметры.ПолучитьТекстыЗапроса Тогда
ЗаполнитьПараметрыИнициализации(Запрос, ДокументСсылка);
СформироватьСуммыДокументаВВалютахУчета(Запрос, ТекстыЗапроса, Регистры);
ТекстЗапросаТаблицаНДСЗаписиКнигиПродаж(Запрос, ТекстыЗапроса, Регистры);
ТекстЗапросаТаблицаДанныеОснованийСчетовФактур(Запрос, ТекстыЗапроса, Регистры);
ТекстЗапросаТаблицаЗаполнениеТоваровСФВыданный(Запрос, ТекстыЗапроса, Регистры);
ТекстЗапросаТаблицаДвиженияПоНДС(Запрос, ТекстыЗапроса, Регистры);
ТекстЗапросаТаблицаРеестрДокументов(Запрос, ТекстыЗапроса, Регистры);
КонецЕсли;
Возврат ПроведениеДокументов.ИнициализироватьДанныеДокументаДляПроведения(Запрос, ТекстыЗапроса, ДопПараметры);
КонецФункции
#КонецОбласти
Процедура ДобавитьКомандыСозданияНаОсновании(КомандыСозданияНаОсновании, Параметры) Экспорт
БизнесПроцессы.Задание.ДобавитьКомандуСоздатьНаОсновании(КомандыСозданияНаОсновании);
Команда = Документы.ЗаписьКнигиПродаж.ДобавитьКомандуСоздатьНаОснованииИсправлениеПрочегоНачисленияНДС(КомандыСозданияНаОсновании);
Если Команда <> Неопределено Тогда
ПодключаемыеКоманды.ДобавитьУсловиеВидимостиКоманды(Команда, "ХозяйственнаяОперация",
Перечисления.ХозяйственныеОперации.ПрочееНачислениеНДС, ВидСравненияКомпоновкиДанных.Равно);
КонецЕсли;
КонецПроцедуры
Функция ДобавитьКомандуСоздатьНаОснованииИсправлениеПрочегоНачисленияНДС(КомандыСозданияНаОсновании) Экспорт
Если ПравоДоступа("Добавление", Метаданные.Документы.СчетФактураВыданный) Тогда
КомандаСоздатьНаОсновании = КомандыСозданияНаОсновании.Добавить();
КомандаСоздатьНаОсновании.Обработчик = "УчетНДСРФКлиент.ИсправлениеПрочегоНачисленияНДС";
КомандаСоздатьНаОсновании.Идентификатор = "ИсправлениеПрочегоНачисленияНДС";
КомандаСоздатьНаОсновании.Представление = НСтр("ru = 'Исправление прочего начисления НДС'");
КомандаСоздатьНаОсновании.РежимЗаписи = "Проводить";
Возврат КомандаСоздатьНаОсновании;
КонецЕсли;
Возврат Неопределено;
КонецФункции
Функция ДобавитьКомандуСоздатьНаОсновании(КомандыСозданияНаОсновании) Экспорт
Если ПравоДоступа("Добавление", Метаданные.Документы.ЗаписьКнигиПродаж) Тогда
КомандаСоздатьНаОсновании = КомандыСозданияНаОсновании.Добавить();
КомандаСоздатьНаОсновании.Менеджер = Метаданные.Документы.ЗаписьКнигиПродаж.ПолноеИмя();
КомандаСоздатьНаОсновании.Представление = ОбщегоНазначенияУТ.ПредставлениеОбъекта(Метаданные.Документы.ЗаписьКнигиПродаж);
КомандаСоздатьНаОсновании.РежимЗаписи = "Проводить";
КомандаСоздатьНаОсновании.ФункциональныеОпции = "ФормироватьОтчетностьПоНДС";
Возврат КомандаСоздатьНаОсновании;
КонецЕсли;
Возврат Неопределено;
КонецФункции
Процедура ДобавитьКомандыОтчетов(КомандыОтчетов, Параметры) Экспорт
КонецПроцедуры
Процедура ЗаполнитьИменаРеквизитовПоХозяйственнойОперации(ХозяйственнаяОперация, МассивВсехРеквизитов, МассивРеквизитовОперации) Экспорт
МассивВсехРеквизитов = Новый Массив;
МассивВсехРеквизитов.Добавить("ДокументРасчетов");
МассивВсехРеквизитов.Добавить("ИсправляемыйДокумент");
МассивВсехРеквизитов.Добавить("Грузоотправитель");
МассивВсехРеквизитов.Добавить("Грузополучатель");
МассивВсехРеквизитов.Добавить("Грузополучатель");
МассивВсехРеквизитов.Добавить("Руководитель");
МассивВсехРеквизитов.Добавить("ГлавныйБухгалтер");
МассивВсехРеквизитов.Добавить("ЗаписьДополнительногоЛиста");
МассивВсехРеквизитов.Добавить("КорректируемыйПериод");
МассивРеквизитовОперации = Новый Массив;
Если ХозяйственнаяОперация = Перечисления.ХозяйственныеОперации.ПрочееНачислениеНДС Тогда
МассивРеквизитовОперации.Добавить("Грузоотправитель");
МассивРеквизитовОперации.Добавить("Грузополучатель");
МассивРеквизитовОперации.Добавить("Грузополучатель");
МассивРеквизитовОперации.Добавить("Руководитель");
МассивРеквизитовОперации.Добавить("ГлавныйБухгалтер");
МассивРеквизитовОперации.Добавить("ЗаписьДополнительногоЛиста");
МассивРеквизитовОперации.Добавить("КорректируемыйПериод");
ИначеЕсли ХозяйственнаяОперация = Перечисления.ХозяйственныеОперации.ИсправлениеПрочегоНачисленияНДС Тогда
МассивРеквизитовОперации.Добавить("ИсправляемыйДокумент");
МассивРеквизитовОперации.Добавить("Грузоотправитель");
МассивРеквизитовОперации.Добавить("Грузополучатель");
МассивРеквизитовОперации.Добавить("Грузополучатель");
МассивРеквизитовОперации.Добавить("Руководитель");
МассивРеквизитовОперации.Добавить("ГлавныйБухгалтер");
ИначеЕсли ХозяйственнаяОперация = Перечисления.ХозяйственныеОперации.ВосстановлениеНДС Тогда
МассивРеквизитовОперации.Добавить("ДокументРасчетов");
МассивРеквизитовОперации.Добавить("ЗаписьДополнительногоЛиста");
МассивРеквизитовОперации.Добавить("КорректируемыйПериод");
КонецЕсли;
КонецПроцедуры
Процедура ЗаполнитьРасхождения(Объект) Экспорт
Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ ПЕРВЫЕ 1
| ЗаписьКнигиПродаж.Ссылка КАК Ссылка
|ПОМЕСТИТЬ ДанныеПоследнегоИсправления
|ИЗ
| Документ.ЗаписьКнигиПродаж КАК ЗаписьКнигиПродаж
|ГДЕ
| ЗаписьКнигиПродаж.Проведен
| И ЗаписьКнигиПродаж.Ссылка <> &Ссылка
| И ЗаписьКнигиПродаж.ХозяйственнаяОперация = ЗНАЧЕНИЕ(Перечисление.ХозяйственныеОперации.ИсправлениеПрочегоНачисленияНДС)
| И ЗаписьКнигиПродаж.ИсправляемыйДокумент = &ИсправляемыйДокумент
|
|УПОРЯДОЧИТЬ ПО
| ЗаписьКнигиПродаж.МоментВремени УБЫВ
|;
|
|
|ВЫБРАТЬ
| ТаблицаЦенности.Номенклатура КАК Номенклатура,
| ТаблицаЦенности.ВидЦенности КАК ВидЦенности,
| ТаблицаЦенности.Сумма КАК Сумма,
| ТаблицаЦенности.СтавкаНДС КАК СтавкаНДС,
| ТаблицаЦенности.СуммаНДС КАК СуммаНДС,
| ТаблицаЦенности.НомерГТД КАК НомерГТД,
| ТаблицаЦенности.КодТНВЭД КАК КодТНВЭД,
| ТаблицаЦенности.Событие КАК Событие
|ПОМЕСТИТЬ ИсходныеДанные
|ИЗ
| Документ.ЗаписьКнигиПродаж.Ценности КАК ТаблицаЦенности
| ВНУТРЕННЕЕ СОЕДИНЕНИЕ ДанныеПоследнегоИсправления КАК ДанныеПоследнегоИсправления
| ПО ТаблицаЦенности.Ссылка = ДанныеПоследнегоИсправления.Ссылка
|
|ОБЪЕДИНИТЬ ВСЕ
|
|ВЫБРАТЬ
| ТаблицаЦенности.Номенклатура КАК Номенклатура,
| ТаблицаЦенности.ВидЦенности КАК ВидЦенности,
| ТаблицаЦенности.Сумма КАК Сумма,
| ТаблицаЦенности.СтавкаНДС КАК СтавкаНДС,
| ТаблицаЦенности.СуммаНДС КАК СуммаНДС,
| ТаблицаЦенности.НомерГТД КАК НомерГТД,
| ТаблицаЦенности.КодТНВЭД КАК КодТНВЭД,
| ТаблицаЦенности.Событие КАК Событие
|ИЗ
| Документ.ЗаписьКнигиПродаж.Ценности КАК ТаблицаЦенности
| ЛЕВОЕ СОЕДИНЕНИЕ ДанныеПоследнегоИсправления КАК ДанныеПоследнегоИсправления
| ПО ИСТИНА
|ГДЕ
| ДанныеПоследнегоИсправления.Ссылка ЕСТЬ NULL
| И ТаблицаЦенности.Ссылка = &ИсправляемыйДокумент
|;
|
|ВЫБРАТЬ
| НовыеДанные.Номенклатура КАК Номенклатура,
| НовыеДанные.ВидЦенности КАК ВидЦенности,
| НовыеДанные.Сумма КАК Сумма,
| НовыеДанные.СтавкаНДС КАК СтавкаНДС,
| НовыеДанные.СуммаНДС КАК СуммаНДС,
| НовыеДанные.НомерГТД КАК НомерГТД,
| НовыеДанные.КодТНВЭД КАК КодТНВЭД,
| НовыеДанные.Событие КАК Событие
|ПОМЕСТИТЬ НовыеДанныеИзТаблицы
|ИЗ
| &НовыеДанные КАК НовыеДанные
|;
|
|ВЫБРАТЬ
| ИсходныеДанные.Номенклатура КАК Номенклатура,
| ИсходныеДанные.ВидЦенности КАК ВидЦенности,
| -ИсходныеДанные.Сумма КАК Сумма,
| ИсходныеДанные.СтавкаНДС КАК СтавкаНДС,
| -ИсходныеДанные.СуммаНДС КАК СуммаНДС,
| ИсходныеДанные.НомерГТД КАК НомерГТД,
| ИсходныеДанные.КодТНВЭД КАК КодТНВЭД,
| ИсходныеДанные.Событие КАК Событие
|ПОМЕСТИТЬ ДанныеДляРасхождения
|ИЗ
| ИсходныеДанные КАК ИсходныеДанные
|
|ОБЪЕДИНИТЬ ВСЕ
|
|ВЫБРАТЬ
| НовыеДанныеИзТаблицы.Номенклатура КАК Номенклатура,
| НовыеДанныеИзТаблицы.ВидЦенности КАК ВидЦенности,
| НовыеДанныеИзТаблицы.Сумма КАК Сумма,
| НовыеДанныеИзТаблицы.СтавкаНДС КАК СтавкаНДС,
| НовыеДанныеИзТаблицы.СуммаНДС КАК СуммаНДС,
| НовыеДанныеИзТаблицы.НомерГТД КАК НомерГТД,
| НовыеДанныеИзТаблицы.КодТНВЭД КАК КодТНВЭД,
| НовыеДанныеИзТаблицы.Событие КАК Событие
|ИЗ
| НовыеДанныеИзТаблицы КАК НовыеДанныеИзТаблицы
|;
|
|ВЫБРАТЬ
| ДанныеДляРасхождения.Номенклатура КАК Номенклатура,
| ДанныеДляРасхождения.ВидЦенности КАК ВидЦенности,
| ДанныеДляРасхождения.СтавкаНДС КАК СтавкаНДС,
| ДанныеДляРасхождения.НомерГТД КАК НомерГТД,
| ДанныеДляРасхождения.КодТНВЭД КАК КодТНВЭД,
| ДанныеДляРасхождения.Событие КАК Событие,
| СУММА(ДанныеДляРасхождения.Сумма) КАК Сумма,
| СУММА(ДанныеДляРасхождения.СуммаНДС) КАК СуммаНДС
|ИЗ
| ДанныеДляРасхождения
|
|СГРУППИРОВАТЬ ПО
| ДанныеДляРасхождения.Номенклатура,
| ДанныеДляРасхождения.ВидЦенности,
| ДанныеДляРасхождения.СтавкаНДС,
| ДанныеДляРасхождения.НомерГТД,
| ДанныеДляРасхождения.КодТНВЭД,
| ДанныеДляРасхождения.Событие
|ИМЕЮЩИЕ
| СУММА(ДанныеДляРасхождения.Сумма) <> 0
| ИЛИ СУММА(ДанныеДляРасхождения.СуммаНДС) <> 0
|";
Запрос.УстановитьПараметр("НовыеДанные", Объект.Ценности.Выгрузить());
Запрос.УстановитьПараметр("ИсправляемыйДокумент", Объект.ИсправляемыйДокумент);
Запрос.УстановитьПараметр("Ссылка", Объект.Ссылка);
Результаты = Запрос.ВыполнитьПакет();
ВыборкаРасхождения = Результаты[Результаты.ВГраница()].Выбрать();
Пока ВыборкаРасхождения.Следующий() Цикл
НоваяСтрока = Объект.Расхождения.Добавить();
ЗаполнитьЗначенияСвойств(НоваяСтрока, ВыборкаРасхождения);
КонецЦикла;
КонецПроцедуры
Функция ПараметрыРегистрацииСчетовФактурВыданных(Объект) Экспорт
ПараметрыРегистрации = УчетНДСУПКлиентСервер.ПараметрыРегистрацииСчетовФактурВыданных();
ПараметрыРегистрации.Ссылка = Объект.Ссылка;
ПараметрыРегистрации.Дата = Объект.Дата;
ПараметрыРегистрации.Организация = Объект.Организация;
ПараметрыРегистрации.Контрагент = Объект.Контрагент;
ПараметрыРегистрации.НалогообложениеНДС = Перечисления.ТипыНалогообложенияНДС.ПустаяСсылка();
Если Объект.ХозяйственнаяОперация = Перечисления.ХозяйственныеОперации.ИсправлениеПрочегоНачисленияНДС Тогда
ПараметрыРегистрации.ИсправлениеОшибок = Истина;
Иначе
ПараметрыРегистрации.ПрочееНачислениеНДС = Истина;
КонецЕсли;
Возврат ПараметрыРегистрации;
КонецФункции
#Область ДляВызоваИзДругихПодсистем
Процедура ПриЗаполненииОграниченияДоступа(Ограничение) Экспорт
Ограничение.Текст =
"РазрешитьЧтениеИзменение
|ГДЕ
| ЗначениеРазрешено(Организация)";
КонецПроцедуры
#КонецОбласти
Процедура ПриОпределенииНастроекВерсионированияОбъектов(Настройки) Экспорт
КонецПроцедуры
#КонецОбласти
#Область СлужебныеПроцедурыИФункции
#Область Проведение
Функция ДополнительныеИсточникиДанныхДляДвижений(ИмяРегистра) Экспорт
ИсточникиДанных = Новый Соответствие;
Возврат ИсточникиДанных;
КонецФункции
Процедура ЗаполнитьПараметрыИнициализации(Запрос, ДокументСсылка)
Запрос.МенеджерВременныхТаблиц = Новый МенеджерВременныхТаблиц;
Запрос.УстановитьПараметр("Ссылка", ДокументСсылка);
Запрос.Текст =
"ВЫБРАТЬ
| ДанныеДокумента.Дата КАК Период,
| ДанныеДокумента.Организация КАК Организация,
| ДанныеДокумента.Контрагент КАК Контрагент,
| ДанныеДокумента.ДокументРасчетов КАК ДокументРасчетов,
| ДанныеДокумента.ИсправляемыйДокумент КАК ИсправляемыйДокумент,
| ДанныеДокумента.ХозяйственнаяОперация КАК ХозяйственнаяОперация,
| ДанныеДокумента.КодВидаОперации КАК КодВидаОперации,
| ДанныеДокумента.Валюта КАК Валюта,
| ДанныеДокумента.ЗаписьДополнительногоЛиста КАК ЗаписьДополнительногоЛиста,
| ДанныеДокумента.ФормироватьСторнирующиеЗаписиДопЛистовВручную КАК ФормироватьСторнирующиеЗаписиДопЛистовВручную,
| ВЫБОР
| КОГДА ДанныеДокумента.ЗаписьДополнительногоЛиста
| ТОГДА ДанныеДокумента.КорректируемыйПериод
| КОГДА ДанныеДокумента.ХозяйственнаяОперация = ЗНАЧЕНИЕ(Перечисление.ХозяйственныеОперации.ИсправлениеПрочегоНачисленияНДС)
| И НЕ СчетФактураВыданныйДокументыОснования.Ссылка ЕСТЬ NULL
| ТОГДА СчетФактураВыданныйДокументыОснования.Ссылка.Дата
| ИНАЧЕ ДАТАВРЕМЯ(1, 1, 1)
| КОНЕЦ КАК КорректируемыйПериод,
| ВЫБОР
| КОГДА ДанныеДокумента.ХозяйственнаяОперация = ЗНАЧЕНИЕ(Перечисление.ХозяйственныеОперации.ИсправлениеПрочегоНачисленияНДС)
| И НЕ СчетФактураВыданныйДокументыОснования.Ссылка ЕСТЬ NULL
| ТОГДА СчетФактураВыданныйДокументыОснования.Ссылка
| ИНАЧЕ
| NULL
| КОНЕЦ КАК ИсправляемыйСчетФактура,
| ДанныеДокумента.Подразделение КАК Подразделение,
| ДанныеДокумента.Номер КАК Номер,
| ДанныеДокумента.Комментарий КАК Комментарий,
| ДанныеДокумента.Проведен КАК Проведен,
| ДанныеДокумента.ПометкаУдаления КАК ПометкаУдаления,
| ДанныеДокумента.СуммаДокумента КАК СуммаДокумента,
| ВЫБОР
| КОГДА ДанныеДокумента.ХозяйственнаяОперация = ЗНАЧЕНИЕ(Перечисление.ХозяйственныеОперации.ИсправлениеПрочегоНачисленияНДС)
| И НЕ СчетФактураВыданный.Ссылка ЕСТЬ NULL
| ТОГДА СчетФактураВыданный.Ссылка
| ИНАЧЕ NULL
| КОНЕЦ КАК ИсправленныйСчетФактура
|ИЗ
| Документ.ЗаписьКнигиПродаж КАК ДанныеДокумента
| ЛЕВОЕ СОЕДИНЕНИЕ Документ.СчетФактураВыданный.ДокументыОснования КАК СчетФактураВыданныйДокументыОснования
| ПО ДанныеДокумента.ИсправляемыйДокумент = СчетФактураВыданныйДокументыОснования.ДокументОснование
| И СчетФактураВыданныйДокументыОснования.Ссылка.Проведен
| ЛЕВОЕ СОЕДИНЕНИЕ Документ.СчетФактураВыданный.ДокументыОснования КАК СчетФактураВыданный
| ПО ДанныеДокумента.Ссылка = СчетФактураВыданный.ДокументОснование
| И СчетФактураВыданныйДокументыОснования.Ссылка.Проведен
|ГДЕ
| ДанныеДокумента.Ссылка = &Ссылка";
Реквизиты = Запрос.Выполнить().Выбрать();
Реквизиты.Следующий();
Запрос.УстановитьПараметр("Период", Реквизиты.Период);
Запрос.УстановитьПараметр("Организация", Реквизиты.Организация);
Запрос.УстановитьПараметр("Контрагент", Реквизиты.Контрагент);
Запрос.УстановитьПараметр("СчетФактура", ?(ЗначениеЗаполнено(Реквизиты.ДокументРасчетов), Реквизиты.ДокументРасчетов, ДокументСсылка));
Запрос.УстановитьПараметр("ИсправляемыйДокумент", Реквизиты.ИсправляемыйДокумент);
Запрос.УстановитьПараметр("ИсправляемыйСчетФактура", Реквизиты.ИсправляемыйСчетФактура);
Запрос.УстановитьПараметр("Валюта", Реквизиты.Валюта);
Запрос.УстановитьПараметр("КодВидаОперации", Реквизиты.КодВидаОперации);
Запрос.УстановитьПараметр("ЗаписьДополнительногоЛиста", Реквизиты.ЗаписьДополнительногоЛиста);
Запрос.УстановитьПараметр("КорректируемыйПериод", Реквизиты.КорректируемыйПериод);
Запрос.УстановитьПараметр("ВалютаРеглУчета", ЗначениеНастроекПовтИсп.ВалютаРегламентированногоУчетаОрганизации(Реквизиты.Организация));
Запрос.УстановитьПараметр("ХозяйственнаяОперация", Реквизиты.ХозяйственнаяОперация);
Запрос.УстановитьПараметр("ЭтоКорректировкаНДС", ЗначениеЗаполнено(Реквизиты.ДокументРасчетов));
Запрос.УстановитьПараметр("ТипСчетаФактуры", ОбщегоНазначения.ИдентификаторОбъектаМетаданных("Документ.СчетФактураВыданный"));
Запрос.УстановитьПараметр("ТипыНоменклатурыТовар", УчетНДСУПСлужебный.ТипыНоменклатурыТовар());
Запрос.УстановитьПараметр("ИдентификаторНеиспользуемойФинЗаписи", ПроведениеДокументов.ИдентификаторНеиспользуемойФинЗаписи());
Запрос.УстановитьПараметр("ИдентификаторМетаданных", ОбщегоНазначения.ИдентификаторОбъектаМетаданных("Документ.ЗаписьКнигиПродаж"));
Запрос.УстановитьПараметр("Подразделение", Реквизиты.Подразделение);
Запрос.УстановитьПараметр("Номер", Реквизиты.Номер);
Запрос.УстановитьПараметр("Комментарий", Реквизиты.Комментарий);
Запрос.УстановитьПараметр("Проведен", Реквизиты.Проведен);
Запрос.УстановитьПараметр("ПометкаУдаления", Реквизиты.ПометкаУдаления);
Запрос.УстановитьПараметр("НомерНаПечать", ПрефиксацияОбъектовКлиентСервер.НомерНаПечать(Реквизиты.номер));
Запрос.УстановитьПараметр("СуммаДокумента", Реквизиты.СуммаДокумента);
Запрос.УстановитьПараметр("ИсправленныйСчетФактура", Реквизиты.ИсправленныйСчетФактура);
КонецПроцедуры
Функция ТекстЗапросаВтТаблицаТоваров(Запрос, ТекстыЗапроса)
ИмяРегистра = "ВТТаблицаТоваров";
СформироватьСуммыДокументаВВалютахУчета(Запрос, ТекстыЗапроса);
ТекстЗапроса =
"ВЫБРАТЬ
| ТаблицаЦенности.Ссылка КАК Ссылка,
| ВЫБОР
| КОГДА ЕСТЬNULL(ТаблицаЦенности.Номенклатура.ТипНоменклатуры, НЕОПРЕДЕЛЕНО) В (&ТипыНоменклатурыТовар)
| ТОГДА ЗНАЧЕНИЕ(Перечисление.ТипыЗапасов.Товар)
| ИНАЧЕ ЗНАЧЕНИЕ(Перечисление.ТипыЗапасов.Услуга)
| КОНЕЦ КАК ТипЗапасов,
| ТаблицаЦенности.ВидЦенности КАК ВидЦенности,
| ТаблицаЦенности.Событие КАК Событие,
| ТаблицаЦенности.НомерГТД КАК НомерГТД,
| ТаблицаЦенности.КодОперации КАК КодОперации0,
| НЕ ТаблицаЦенности.КодТНВЭД.СырьевойТовар КАК НесырьевыеТовары,
| ТаблицаЦенности.НаправлениеДеятельности КАК НаправлениеДеятельности,
| СУММА(ТаблицаЦенности.КоличествоПоРНПТ) КАК КоличествоПоРНПТ,
| ТаблицаЦенности.СтавкаНДС.ПеречислениеСтавкаНДС КАК СтавкаНДС,
| СУММА(Суммы.БазаНДСРегл) КАК СуммаБезНДС,
| СУММА(Суммы.СуммаНДСРегл) КАК НДС
|ПОМЕСТИТЬ ВТТаблицаТоваров
|ИЗ
| Документ.ЗаписьКнигиПродаж.Ценности КАК ТаблицаЦенности
| ЛЕВОЕ СОЕДИНЕНИЕ
| ВтСуммыДокументовВВалютахУчета КАК Суммы
| ПО
| ТаблицаЦенности.Ссылка = Суммы.Ссылка
| И ТаблицаЦенности.ИдентификаторСтроки = Суммы.ИдентификаторСтроки
|
|ГДЕ
| ТаблицаЦенности.Ссылка = &Ссылка
|
|СГРУППИРОВАТЬ ПО
| ТаблицаЦенности.Ссылка,
| ВЫБОР
| КОГДА ЕСТЬNULL(ТаблицаЦенности.Номенклатура.ТипНоменклатуры, НЕОПРЕДЕЛЕНО) В (&ТипыНоменклатурыТовар)
| ТОГДА ЗНАЧЕНИЕ(Перечисление.ТипыЗапасов.Товар)
| ИНАЧЕ ЗНАЧЕНИЕ(Перечисление.ТипыЗапасов.Услуга)
| КОНЕЦ,
| ТаблицаЦенности.ВидЦенности,
| ТаблицаЦенности.Событие,
| ТаблицаЦенности.НаправлениеДеятельности,
| ТаблицаЦенности.СтавкаНДС.ПеречислениеСтавкаНДС,
| ТаблицаЦенности.НомерГТД,
| ТаблицаЦенности.КодОперации,
| ТаблицаЦенности.КодТНВЭД.СырьевойТовар";
ТекстыЗапроса.Добавить(ТекстЗапроса, ИмяРегистра);
Возврат ТекстЗапроса;
КонецФункции
Функция ТекстЗапросаТаблицаНДСЗаписиКнигиПродаж(Запрос, ТекстыЗапроса, Регистры)
ИмяРегистра = "НДСЗаписиКнигиПродаж";
Если НЕ ПроведениеДокументов.ТребуетсяТаблицаДляДвижений(ИмяРегистра, Регистры) Тогда
Возврат "";
КонецЕсли;
Если НЕ ПроведениеДокументов.ЕстьТаблицаЗапроса("ВТТаблицаТоваров", ТекстыЗапроса) Тогда
ТекстЗапросаВтТаблицаТоваров(Запрос, ТекстыЗапроса);
КонецЕсли;
СформироватьСуммыДокументаВВалютахУчета(Запрос, ТекстыЗапроса);
ТекстЗапроса = "
|ВЫБРАТЬ
| &Период КАК Период,
| &Организация КАК Организация,
| &Контрагент КАК Покупатель,
| &СчетФактура КАК СчетФактура,
| ТаблицаЦенности.ВидЦенности КАК ВидЦенности,
| ТаблицаЦенности.Событие КАК Событие,
| &Период КАК ДатаСобытия,
| ТаблицаЦенности.СтавкаНДС.ПеречислениеСтавкаНДС КАК СтавкаНДС,
| ТаблицаЦенности.КодОперации КАК КодОперации0,
| НЕ ТаблицаЦенности.КодТНВЭД.СырьевойТовар КАК НесырьевыеТовары,
| СУММА(Суммы.БазаНДСРегл) КАК СуммаБезНДС,
| СУММА(Суммы.СуммаНДСРегл) КАК НДС,
| &ЗаписьДополнительногоЛиста КАК ЗаписьДополнительногоЛиста,
| &КорректируемыйПериод КАК КорректируемыйПериод,
| ВЫБОР
| КОГДА &ЗаписьДополнительногоЛиста
| И &ХозяйственнаяОперация = ЗНАЧЕНИЕ(Перечисление.ХозяйственныеОперации.ВосстановлениеНДС)
| ТОГДА ТаблицаЦенности.СторнирующаяЗаписьДопЛиста
| ИНАЧЕ ЛОЖЬ
| КОНЕЦ КАК СторнирующаяЗаписьДопЛиста,
| ЛОЖЬ КАК Исправление,
| НЕОПРЕДЕЛЕНО КАК НомерДокументаОплаты,
| НЕОПРЕДЕЛЕНО КАК ДатаДокументаОплаты,
| ТаблицаЦенности.НаправлениеДеятельности КАК НаправлениеДеятельности,
| &КодВидаОперации КАК КодВидаОперации,
| NULL КАК ИсправленныйСчетФактура
|ИЗ
| Документ.ЗаписьКнигиПродаж.Ценности КАК ТаблицаЦенности
| ЛЕВОЕ СОЕДИНЕНИЕ
| ВтСуммыДокументовВВалютахУчета КАК Суммы
| ПО
| ТаблицаЦенности.Ссылка = Суммы.Ссылка
| И ТаблицаЦенности.ИдентификаторСтроки = Суммы.ИдентификаторСтроки
|ГДЕ
| ТаблицаЦенности.Ссылка = &Ссылка
| И &ХозяйственнаяОперация В (
| ЗНАЧЕНИЕ(Перечисление.ХозяйственныеОперации.ПрочееНачислениеНДС),
| ЗНАЧЕНИЕ(Перечисление.ХозяйственныеОперации.ВосстановлениеНДС))
|
|СГРУППИРОВАТЬ ПО
| ТаблицаЦенности.СтавкаНДС,
| ТаблицаЦенности.ВидЦенности,
| ТаблицаЦенности.Событие,
| ТаблицаЦенности.НаправлениеДеятельности,
| ВЫБОР
| КОГДА &ЗаписьДополнительногоЛиста
| И &ХозяйственнаяОперация = ЗНАЧЕНИЕ(Перечисление.ХозяйственныеОперации.ВосстановлениеНДС)
| ТОГДА ТаблицаЦенности.СторнирующаяЗаписьДопЛиста
| ИНАЧЕ ЛОЖЬ
| КОНЕЦ,
| ТаблицаЦенности.КодОперации,
| ТаблицаЦенности.КодТНВЭД.СырьевойТовар
|
|ОБЪЕДИНИТЬ ВСЕ
|
|ВЫБРАТЬ
| &Период КАК Период,
| &Организация КАК Организация,
| &Контрагент КАК Покупатель,
| &СчетФактура КАК СчетФактура,
| ТаблицаЦенности.ВидЦенности КАК ВидЦенности,
| ТаблицаЦенности.Событие КАК Событие,
| &Период КАК ДатаСобытия,
| ТаблицаЦенности.СтавкаНДС.ПеречислениеСтавкаНДС КАК СтавкаНДС,
| ТаблицаЦенности.КодОперации КАК КодОперации0,
| НЕ ТаблицаЦенности.КодТНВЭД.СырьевойТовар КАК НесырьевыеТовары,
| 0 КАК СуммаБезНДС,
| 0 КАК НДС,
| &ЗаписьДополнительногоЛиста КАК ЗаписьДополнительногоЛиста,
| &КорректируемыйПериод КАК КорректируемыйПериод,
| ВЫБОР
| КОГДА &ЗаписьДополнительногоЛиста
| И &ХозяйственнаяОперация = ЗНАЧЕНИЕ(Перечисление.ХозяйственныеОперации.ВосстановлениеНДС)
| ТОГДА ТаблицаЦенности.СторнирующаяЗаписьДопЛиста
| ИНАЧЕ ЛОЖЬ
| КОНЕЦ КАК СторнирующаяЗаписьДопЛиста,
| ЛОЖЬ КАК Исправление,
| ЕСТЬNULL(ДанныеПервичныхДокументов.Номер, ДокументыОплаты.ДокументОплаты.Номер) КАК НомерДокументаОплаты,
| ЕСТЬNULL(ДанныеПервичныхДокументов.Дата, ДокументыОплаты.ДокументОплаты.Дата) КАК ДатаДокументаОплаты,
| ТаблицаЦенности.НаправлениеДеятельности КАК НаправлениеДеятельности,
| &КодВидаОперации КАК КодВидаОперации,
| NULL КАК ИсправленныйСчетФактура
|ИЗ
| Документ.ЗаписьКнигиПродаж.Ценности КАК ТаблицаЦенности
|
| ВНУТРЕННЕЕ СОЕДИНЕНИЕ
| Документ.ЗаписьКнигиПродаж.ДокументыОплаты КАК ДокументыОплаты
| ПО
| ТаблицаЦенности.Ссылка = ДокументыОплаты.Ссылка
|
| ЛЕВОЕ СОЕДИНЕНИЕ
| РегистрСведений.ДанныеПервичныхДокументов КАК ДанныеПервичныхДокументов
| ПО
| ДанныеПервичныхДокументов.Организация = &Организация
| И ДокументыОплаты.ДокументОплаты = ДанныеПервичныхДокументов.Документ
|ГДЕ
| ТаблицаЦенности.Ссылка = &Ссылка
| И &ХозяйственнаяОперация В (
| ЗНАЧЕНИЕ(Перечисление.ХозяйственныеОперации.ПрочееНачислениеНДС),
| ЗНАЧЕНИЕ(Перечисление.ХозяйственныеОперации.ВосстановлениеНДС))
|
|ОБЪЕДИНИТЬ ВСЕ
|
|ВЫБРАТЬ
| &Период КАК Период,
| &Организация КАК Организация,
| НДСЗаписиКнигиПродаж.Покупатель КАК Покупатель,
| НДСЗаписиКнигиПродаж.СчетФактура КАК СчетФактура,
| НДСЗаписиКнигиПродаж.ВидЦенности КАК ВидЦенности,
| НДСЗаписиКнигиПродаж.Событие КАК Событие,
| &Период КАК ДатаСобытия,
| НДСЗаписиКнигиПродаж.СтавкаНДС КАК СтавкаНДС,
| """" КАК КодОперации0,
| NULL КАК НесырьевыеТовары,
| -НДСЗаписиКнигиПродаж.СуммаБезНДСОборот КАК СуммаБезНДС,
| -НДСЗаписиКнигиПродаж.НДСОборот КАК НДС,
| ВЫБОР
| КОГДА НДСЗаписиКнигиПродаж.ЗаписьДополнительногоЛиста
| ТОГДА ИСТИНА
| КОГДА НАЧАЛОПЕРИОДА(НДСЗаписиКнигиПродаж.Период,КВАРТАЛ)
| < НАЧАЛОПЕРИОДА(&Период,КВАРТАЛ)
| ТОГДА ИСТИНА
| КОНЕЦ КАК ЗаписьДополнительногоЛиста,
| ВЫБОР
| КОГДА НДСЗаписиКнигиПродаж.КорректируемыйПериод <> ДАТАВРЕМЯ(1,1,1)
| ТОГДА НДСЗаписиКнигиПродаж.КорректируемыйПериод
| КОГДА НАЧАЛОПЕРИОДА(НДСЗаписиКнигиПродаж.Период,КВАРТАЛ)
| < НАЧАЛОПЕРИОДА(&Период,КВАРТАЛ)
| ТОГДА НДСЗаписиКнигиПродаж.Период
| КОНЕЦ КАК КорректируемыйПериод,
| ВЫБОР
| КОГДА НДСЗаписиКнигиПродаж.ЗаписьДополнительногоЛиста
| ТОГДА ИСТИНА
| КОГДА НАЧАЛОПЕРИОДА(НДСЗаписиКнигиПродаж.Период,КВАРТАЛ)
| < НАЧАЛОПЕРИОДА(&Период,КВАРТАЛ)
| ТОГДА ИСТИНА
| КОНЕЦ КАК СторнирующаяЗаписьДопЛиста,
| ИСТИНА КАК Исправление,
| NULL КАК НомерДокументаОплаты,
| NULL КАК ДатаДокументаОплаты,
| NULL КАК НаправлениеДеятельности,
| NULL КАК КодВидаОперации,
| NULL КАК ИсправленныйСчетФактура
|ИЗ
| РегистрНакопления.НДСЗаписиКнигиПродаж.Обороты(
| ,
| ,
| Регистратор,
| Организация В (&Организация, &Контрагент)
| И СчетФактура = &ИсправляемыйДокумент) КАК НДСЗаписиКнигиПродаж
|ГДЕ
| НДСЗаписиКнигиПродаж.Регистратор <> &Ссылка
| И (НДСЗаписиКнигиПродаж.СуммаБезНДСОборот > 0
| ИЛИ НДСЗаписиКнигиПродаж.НДСОборот > 0)
| И (ВЫБОР
| КОГДА НДСЗаписиКнигиПродаж.Регистратор ССЫЛКА Документ.ЗаписьКнигиПродаж
| ТОГДА ИСТИНА
| КОГДА НДСЗаписиКнигиПродаж.Событие = ЗНАЧЕНИЕ(Перечисление.СобытияПоНДСПродажи.Реализация)
| ТОГДА ИСТИНА
| КОГДА НДСЗаписиКнигиПродаж.Событие = ЗНАЧЕНИЕ(Перечисление.СобытияПоНДСПродажи.ПодтвержденаСтавка0)
| ТОГДА ИСТИНА
| КОГДА НДСЗаписиКнигиПродаж.Событие = ЗНАЧЕНИЕ(Перечисление.СобытияПоНДСПродажи.НалогИсчисляетПокупатель)
| ТОГДА ИСТИНА
| КОГДА НДСЗаписиКнигиПродаж.Событие = ЗНАЧЕНИЕ(Перечисление.СобытияПоНДСПродажи.ВосстановлениеНДС)
| ТОГДА ИСТИНА
| ИНАЧЕ ЛОЖЬ
| КОНЕЦ)
| И &ХозяйственнаяОперация = ЗНАЧЕНИЕ(Перечисление.ХозяйственныеОперации.ИсправлениеПрочегоНачисленияНДС)
|
|ОБЪЕДИНИТЬ ВСЕ
|
|ВЫБРАТЬ
| &Период,
| &Организация,
| &Контрагент,
| &СчетФактура КАК СчетФактура,
| ТаблицаДанных.ВидЦенности,
| ТаблицаДанных.Событие,
| &Период,
| ТаблицаДанных.СтавкаНДС,
| ТаблицаДанных.КодОперации0 КАК КодОперации0,
| ТаблицаДанных.НесырьевыеТовары КАК НесырьевыеТовары,
| СУММА(ТаблицаДанных.СуммаБезНДС) КАК СуммаБезНДС,
| СУММА(ТаблицаДанных.НДС) КАК НДС,
| ВЫБОР
| КОГДА НАЧАЛОПЕРИОДА(&КорректируемыйПериод, КВАРТАЛ) < НАЧАЛОПЕРИОДА(&Период, КВАРТАЛ)
| ТОГДА
| ИСТИНА
| ИНАЧЕ
| ЛОЖЬ
| КОНЕЦ,
| ВЫБОР
| КОГДА НАЧАЛОПЕРИОДА(&КорректируемыйПериод, КВАРТАЛ) < НАЧАЛОПЕРИОДА(&Период, КВАРТАЛ)
| ТОГДА
| &КорректируемыйПериод
| ИНАЧЕ
| НЕОПРЕДЕЛЕНО
| КОНЕЦ,
| ЛОЖЬ КАК СторнирующаяЗаписьДопЛиста,
| ИСТИНА КАК Исправление,
| ЕСТЬNULL(ДанныеПервичныхДокументов.Номер, ДокументыОплаты.ДокументОплаты.Номер) КАК НомерДокументаОплаты,
| ЕСТЬNULL(ДанныеПервичныхДокументов.Дата, ДокументыОплаты.ДокументОплаты.Дата) КАК ДатаДокументаОплаты,
| ТаблицаДанных.НаправлениеДеятельности КАК НаправлениеДеятельности,
| NULL КАК КодВидаОперации,
| &ИсправленныйСчетФактура КАК ИсправленныйСчетФактура
|ИЗ
| ВТТаблицаТоваров КАК ТаблицаДанных
| ЛЕВОЕ СОЕДИНЕНИЕ
| Документ.ЗаписьКнигиПродаж.ДокументыОплаты КАК ДокументыОплаты
| ПО
| ТаблицаДанных.Ссылка = ДокументыОплаты.Ссылка
|
| ЛЕВОЕ СОЕДИНЕНИЕ
| РегистрСведений.ДанныеПервичныхДокументов КАК ДанныеПервичныхДокументов
| ПО
| ДанныеПервичныхДокументов.Организация = &Организация
| И ДокументыОплаты.ДокументОплаты = ДанныеПервичныхДокументов.Документ
|ГДЕ
| ТаблицаДанных.СуммаБезНДС > 0
| И &Организация <> ЗНАЧЕНИЕ(Справочник.Организации.УправленческаяОрганизация)
| И ТаблицаДанных.СтавкаНДС <> ЗНАЧЕНИЕ(Перечисление.СтавкиНДС.НДС0)
| И &ХозяйственнаяОперация = ЗНАЧЕНИЕ(Перечисление.ХозяйственныеОперации.ИсправлениеПрочегоНачисленияНДС)
|
|СГРУППИРОВАТЬ ПО
| &Период,
| &Организация,
| &Контрагент,
| &СчетФактура,
| ТаблицаДанных.ВидЦенности,
| ТаблицаДанных.Событие,
| ТаблицаДанных.СтавкаНДС,
| ВЫБОР
| КОГДА НАЧАЛОПЕРИОДА(&КорректируемыйПериод, КВАРТАЛ) < НАЧАЛОПЕРИОДА(&Период, КВАРТАЛ)
| ТОГДА
| ИСТИНА
| ИНАЧЕ
| ЛОЖЬ
| КОНЕЦ,
| ВЫБОР
| КОГДА НАЧАЛОПЕРИОДА(&КорректируемыйПериод, КВАРТАЛ) < НАЧАЛОПЕРИОДА(&Период, КВАРТАЛ)
| ТОГДА
| &КорректируемыйПериод
| ИНАЧЕ
| НЕОПРЕДЕЛЕНО
| КОНЕЦ,
| &Ссылка,
| ЕСТЬNULL(ДанныеПервичныхДокументов.Номер, ДокументыОплаты.ДокументОплаты.Номер),
| ЕСТЬNULL(ДанныеПервичныхДокументов.Дата, ДокументыОплаты.ДокументОплаты.Дата),
| ТаблицаДанных.НаправлениеДеятельности,
| ТаблицаДанных.КодОперации0,
| ТаблицаДанных.НесырьевыеТовары
|
|ИМЕЮЩИЕ
| СУММА(ТаблицаДанных.СуммаБезНДС) <> 0
| ИЛИ СУММА(ТаблицаДанных.НДС) <> 0
|";
ТекстыЗапроса.Добавить(ТекстЗапроса, ИмяРегистра);
Возврат ТекстЗапроса;
КонецФункции
Функция ТекстЗапросаТаблицаДвиженияПоНДС(Запрос, ТекстыЗапроса, Регистры)
ИмяРегистра = "ДвиженияПоНДС";
Если НЕ ПроведениеДокументов.ТребуетсяТаблицаДляДвижений(ИмяРегистра, Регистры) Тогда
Возврат "";
КонецЕсли;
СформироватьСуммыДокументаВВалютахУчета(Запрос, ТекстыЗапроса);
ТекстЗапроса =
"ВЫБРАТЬ
| &Период КАК Период,
| &Организация КАК Организация,
| ЗНАЧЕНИЕ(Перечисление.ТипыЗаписейДвиженийПоНДС.Исходящий) КАК ТипЗаписи,
| &Контрагент КАК Контрагент,
| &СчетФактура КАК СчетФактура,
| ТаблицаЦенности.ВидЦенности КАК ВидЦенности,
| ТаблицаЦенности.СтавкаНДС КАК СтавкаНДС,
| Суммы.БазаНДСРегл КАК СуммаБезНДС,
| Суммы.СуммаНДСРегл КАК НДС,
| Суммы.СуммаНДСУпр КАК НДСУпр,
| ЛОЖЬ КАК РегламентнаяОперация,
| &ИдентификаторНеиспользуемойФинЗаписи КАК ИдентификаторФинЗаписи,
| НЕОПРЕДЕЛЕНО КАК НастройкаХозяйственнойОперации,
| ЛОЖЬ КАК Сторно
|ИЗ
| Документ.ЗаписьКнигиПродаж.Ценности КАК ТаблицаЦенности
|
| ЛЕВОЕ СОЕДИНЕНИЕ
| ВтСуммыДокументовВВалютахУчета КАК Суммы
| ПО
| ТаблицаЦенности.Ссылка = Суммы.Ссылка
| И ТаблицаЦенности.ИдентификаторСтроки = Суммы.ИдентификаторСтроки
|
|ГДЕ
| ТаблицаЦенности.Ссылка = &Ссылка
| И &ХозяйственнаяОперация В (
| ЗНАЧЕНИЕ(Перечисление.ХозяйственныеОперации.ПрочееНачислениеНДС),
| ЗНАЧЕНИЕ(Перечисление.ХозяйственныеОперации.ВосстановлениеНДС))
|
|";
ТекстыЗапроса.Добавить(ТекстЗапроса, ИмяРегистра);
Возврат ТекстЗапроса;
КонецФункции
Процедура СформироватьСуммыДокументаВВалютахУчета(Запрос, ТекстыЗапроса, Регистры = Неопределено) Экспорт
ТекстЗапросаДанных = "
|ВЫБРАТЬ
| ""Ценности"" КАК ИсточникДанных,
| ЛОЖЬ КАК РаспределятьОбщуюСумму,
| ТаблицаДокумента.Ссылка КАК Ссылка,
| ТаблицаДокумента.Ссылка.Дата КАК Дата,
| ТаблицаДокумента.Ссылка.Организация КАК Организация,
| ТаблицаДокумента.Ссылка.Валюта КАК ВалютаДокумента,
| НЕОПРЕДЕЛЕНО КАК ВалютаВзаиморасчетов,
| ТаблицаДокумента.Ссылка.Дата КАК ПериодБазыНДС,
| ТаблицаДокумента.Ссылка.Дата КАК ДатаКурса,
|
| ТаблицаДокумента.НомерСтроки КАК НомерСтроки,
| ТаблицаДокумента.ИдентификаторСтроки КАК ИдентификаторСтроки,
| ТаблицаДокумента.Сумма КАК СуммаБезНДС,
| ТаблицаДокумента.СтавкаНДС КАК СтавкаНДС,
| ТаблицаДокумента.СуммаНДС КАК СуммаНДС,
| 0 КАК СуммаВзаиморасчетов,
| 0 КАК СуммаНДСВзаиморасчетов,
| 0 КАК СуммаБезНДСРегл,
| 0 КАК СуммаБезНДСУпр,
|
| ЛОЖЬ КАК ОтражаетсяВРасчетах,
| НЕОПРЕДЕЛЕНО КАК ОбъектРасчетов,
| ЛОЖЬ КАК ПересчитыватьПоДаннымРасчетов
|
|ИЗ
| Документ.ЗаписьКнигиПродаж.Ценности КАК ТаблицаДокумента
|
|ГДЕ
| ТаблицаДокумента.Ссылка В (&Ссылка)
|
|ОБЪЕДИНИТЬ ВСЕ
|
|ВЫБРАТЬ
| ""Расхождения"" КАК ИсточникДанных,
| ЛОЖЬ КАК РаспределятьОбщуюСумму,
| ТаблицаДокумента.Ссылка КАК Ссылка,
| ТаблицаДокумента.Ссылка.Дата КАК Дата,
| ТаблицаДокумента.Ссылка.Организация КАК Организация,
| ТаблицаДокумента.Ссылка.Валюта КАК ВалютаДокумента,
| НЕОПРЕДЕЛЕНО КАК ВалютаВзаиморасчетов,
| ТаблицаДокумента.Ссылка.Дата КАК ПериодБазыНДС,
| ТаблицаДокумента.Ссылка.Дата КАК ДатаКурса,
|
| ТаблицаДокумента.НомерСтроки КАК НомерСтроки,
| ТаблицаДокумента.ИдентификаторСтроки КАК ИдентификаторСтроки,
| ТаблицаДокумента.Сумма КАК СуммаБезНДС,
| ТаблицаДокумента.СтавкаНДС КАК СтавкаНДС,
| ТаблицаДокумента.СуммаНДС КАК СуммаНДС,
| 0 КАК СуммаВзаиморасчетов,
| 0 КАК СуммаНДСВзаиморасчетов,
| 0 КАК СуммаБезНДСРегл,
| 0 КАК СуммаБезНДСУпр,
|
| ЛОЖЬ КАК ОтражаетсяВРасчетах,
| НЕОПРЕДЕЛЕНО КАК ОбъектРасчетов,
| ЛОЖЬ КАК ПересчитыватьПоДаннымРасчетов
|
|ИЗ
| Документ.ЗаписьКнигиПродаж.Расхождения КАК ТаблицаДокумента
|
|ГДЕ
| ТаблицаДокумента.Ссылка В (&Ссылка)
|
|";
РегистрыСведений.СуммыДокументовВВалютахУчета.СформироватьПоДаннымДокумента(
Запрос, ТекстыЗапроса, Регистры, ТекстЗапросаДанных);
КонецПроцедуры
Функция ТекстЗапросаТаблицаДанныеОснованийСчетовФактур(Запрос, ТекстыЗапроса, Регистры)
ИмяРегистра = "ДанныеОснованийСчетовФактур";
Если НЕ ПроведениеДокументов.ТребуетсяТаблицаДляДвижений(ИмяРегистра, Регистры) Тогда
Возврат "";
КонецЕсли;
СформироватьСуммыДокументаВВалютахУчета(Запрос, ТекстыЗапроса);
ТекстЗапроса =
"ВЫБРАТЬ
| Ценности.Ссылка.Дата КАК Период,
| &ТипСчетаФактуры КАК ТипСчетаФактуры,
| Ценности.ВидЦенности КАК ВидЦенности,
| ВЫБОР
| КОГДА ЕСТЬNULL(Ценности.Номенклатура.ТипНоменклатуры, НЕОПРЕДЕЛЕНО) В (&ТипыНоменклатурыТовар)
| ТОГДА ЗНАЧЕНИЕ(Перечисление.ТипыЗапасов.Товар)
| ИНАЧЕ ЗНАЧЕНИЕ(Перечисление.ТипыЗапасов.Услуга)
| КОНЕЦ КАК ТипЗапасов,
| Ценности.СтавкаНДС КАК СтавкаНДС,
| Ценности.НомерГТД КАК НомерГТД,
| Ценности.КодТНВЭД КАК КодТНВЭД,
| ВЫБОР
| КОГДА Ценности.СуммаНДС < 0
| ТОГДА ИСТИНА
| ИНАЧЕ ЛОЖЬ
| КОНЕЦ КАК УменьшениеСуммы,
|
| ДАТАВРЕМЯ(1, 1, 1) КАК ДатаСчетаФактурыКомиссионера,
| НЕОПРЕДЕЛЕНО КАК ПокупательКомиссионногоТовара,
| НЕОПРЕДЕЛЕНО КАК СчетФактураВыданныйКомиссионером,
|
| СУММА(Суммы.СуммаБезНДС) КАК СуммаБезНДС,
| СУММА(Суммы.СуммаНДС) КАК СуммаНДС,
| СУММА(Суммы.СуммаБезНДСРегл) КАК СуммаБезНДСРегл,
| СУММА(Суммы.БазаНДСРегл) КАК БазаНДСРегл,
| СУММА(Суммы.СуммаНДСРегл) КАК СуммаНДСРегл,
|
| Ценности.Ссылка.Дата КАК Дата,
| ЗНАЧЕНИЕ(Перечисление.ТипыНалогообложенияНДС.ПродажаОблагаетсяНДС) КАК НалогообложениеНДС,
| Ценности.Ссылка.Валюта КАК Валюта,
| Ценности.Ссылка.Организация КАК Организация,
| Ценности.Ссылка.Подразделение КАК Подразделение,
| Ценности.Ссылка.Контрагент КАК Контрагент,
| НЕОПРЕДЕЛЕНО КАК Договор,
| Ценности.Ссылка.Грузоотправитель КАК Грузоотправитель,
| Ценности.Ссылка.Грузополучатель КАК Грузополучатель,
| ЛОЖЬ КАК ЭтоВозврат,
| ЛОЖЬ КАК ИсправлениеОшибок,
| ЛОЖЬ КАК КорректировкаПоСогласованиюСторон,
| НЕОПРЕДЕЛЕНО КАК КорректируемыйДокумент
|ИЗ
| Документ.ЗаписьКнигиПродаж.Ценности КАК Ценности
| ЛЕВОЕ СОЕДИНЕНИЕ
| ВтСуммыДокументовВВалютахУчета КАК Суммы
| ПО
| Ценности.Ссылка = Суммы.Ссылка
| И Ценности.ИдентификаторСтроки = Суммы.ИдентификаторСтроки
|ГДЕ
| Ценности.Ссылка = &Ссылка
| И Ценности.Ссылка.ХозяйственнаяОперация = ЗНАЧЕНИЕ(Перечисление.ХозяйственныеОперации.ПрочееНачислениеНДС)
|
|СГРУППИРОВАТЬ ПО
| Ценности.Ссылка,
| Ценности.ВидЦенности,
| ВЫБОР
| КОГДА ЕСТЬNULL(Ценности.Номенклатура.ТипНоменклатуры, НЕОПРЕДЕЛЕНО) В (&ТипыНоменклатурыТовар)
| ТОГДА ЗНАЧЕНИЕ(Перечисление.ТипыЗапасов.Товар)
| ИНАЧЕ ЗНАЧЕНИЕ(Перечисление.ТипыЗапасов.Услуга)
| КОНЕЦ,
| Ценности.СтавкаНДС,
| Ценности.НомерГТД,
| Ценности.КодТНВЭД,
| ВЫБОР
| КОГДА Ценности.СуммаНДС < 0
| ТОГДА ИСТИНА
| ИНАЧЕ ЛОЖЬ
| КОНЕЦ
|
|ОБЪЕДИНИТЬ ВСЕ
|
|ВЫБРАТЬ
| Расхождения.Ссылка.Дата КАК Период,
| &ТипСчетаФактуры КАК ТипСчетаФактуры,
| Расхождения.ВидЦенности КАК ВидЦенности,
| ВЫБОР
| КОГДА ЕСТЬNULL(Расхождения.Номенклатура.ТипНоменклатуры, НЕОПРЕДЕЛЕНО) В (&ТипыНоменклатурыТовар)
| ТОГДА ЗНАЧЕНИЕ(Перечисление.ТипыЗапасов.Товар)
| ИНАЧЕ ЗНАЧЕНИЕ(Перечисление.ТипыЗапасов.Услуга)
| КОНЕЦ КАК ТипЗапасов,
| Расхождения.СтавкаНДС КАК СтавкаНДС,
| Расхождения.НомерГТД КАК НомерГТД,
| Расхождения.КодТНВЭД КАК КодТНВЭД,
| ВЫБОР
| КОГДА Расхождения.СуммаНДС < 0
| ТОГДА ИСТИНА
| ИНАЧЕ ЛОЖЬ
| КОНЕЦ КАК УменьшениеСуммы,
|
| ДАТАВРЕМЯ(1, 1, 1) КАК ДатаСчетаФактурыКомиссионера,
| НЕОПРЕДЕЛЕНО КАК ПокупательКомиссионногоТовара,
| НЕОПРЕДЕЛЕНО КАК СчетФактураВыданныйКомиссионером,
|
| СУММА(Суммы.СуммаБезНДС) КАК СуммаБезНДС,
| СУММА(Суммы.СуммаНДС) КАК СуммаНДС,
| СУММА(Суммы.СуммаБезНДСРегл) КАК СуммаБезНДСРегл,
| СУММА(Суммы.БазаНДСРегл) КАК БазаНДСРегл,
| СУММА(Суммы.СуммаНДСРегл) КАК СуммаНДСРегл,
|
| Расхождения.Ссылка.Дата КАК Дата,
| ЗНАЧЕНИЕ(Перечисление.ТипыНалогообложенияНДС.ПродажаОблагаетсяНДС) КАК НалогообложениеНДС,
| Расхождения.Ссылка.Валюта КАК Валюта,
| Расхождения.Ссылка.Организация КАК Организация,
| Расхождения.Ссылка.Подразделение КАК Подразделение,
| Расхождения.Ссылка.Контрагент КАК Контрагент,
| НЕОПРЕДЕЛЕНО КАК Договор,
| Расхождения.Ссылка.Грузоотправитель КАК Грузоотправитель,
| Расхождения.Ссылка.Грузополучатель КАК Грузополучатель,
| ЛОЖЬ КАК ЭтоВозврат,
| ИСТИНА КАК ИсправлениеОшибок,
| ЛОЖЬ КАК КорректировкаПоСогласованиюСторон,
| Расхождения.Ссылка.ИсправляемыйДокумент КАК КорректируемыйДокумент
|ИЗ
| Документ.ЗаписьКнигиПродаж.Расхождения КАК Расхождения
| ЛЕВОЕ СОЕДИНЕНИЕ
| ВтСуммыДокументовВВалютахУчета КАК Суммы
| ПО
| Расхождения.Ссылка = Суммы.Ссылка
| И Расхождения.ИдентификаторСтроки = Суммы.ИдентификаторСтроки
|ГДЕ
| Расхождения.Ссылка = &Ссылка
| И Расхождения.Ссылка.ХозяйственнаяОперация = ЗНАЧЕНИЕ(Перечисление.ХозяйственныеОперации.ИсправлениеПрочегоНачисленияНДС)
|
|СГРУППИРОВАТЬ ПО
| Расхождения.Ссылка,
| &ТипСчетаФактуры,
| Расхождения.ВидЦенности,
| ВЫБОР
| КОГДА ЕСТЬNULL(Расхождения.Номенклатура.ТипНоменклатуры, НЕОПРЕДЕЛЕНО) В (&ТипыНоменклатурыТовар)
| ТОГДА ЗНАЧЕНИЕ(Перечисление.ТипыЗапасов.Товар)
| ИНАЧЕ ЗНАЧЕНИЕ(Перечисление.ТипыЗапасов.Услуга)
| КОНЕЦ,
| Расхождения.СтавкаНДС,
| Расхождения.НомерГТД,
| Расхождения.КодТНВЭД,
| ВЫБОР
| КОГДА Расхождения.СуммаНДС < 0
| ТОГДА ИСТИНА
| ИНАЧЕ ЛОЖЬ
| КОНЕЦ
|";
ТекстыЗапроса.Добавить(ТекстЗапроса, ИмяРегистра);
Возврат ТекстЗапроса;
КонецФункции
Функция ТекстЗапросаТаблицаЗаполнениеТоваровСФВыданный(Запрос, ТекстыЗапроса, Регистры)
ИмяРегистра = "ЗаполнениеТоваровСФВыданный";
Если НЕ ПроведениеДокументов.ТребуетсяТаблицаДляДвижений(ИмяРегистра, Регистры) Тогда
Возврат "";
КонецЕсли;
СформироватьСуммыДокументаВВалютахУчета(Запрос, ТекстыЗапроса);
ТекстЗапроса =
"ВЫБРАТЬ
| СчетФактураВыданныйДокументыОснования.Ссылка КАК ИсходныйСчетФактура,
| Ценности.Номенклатура КАК Номенклатура,
| ЗНАЧЕНИЕ(Справочник.ХарактеристикиНоменклатуры.ПустаяСсылка) КАК Характеристика,
| ЗНАЧЕНИЕ(Справочник.Номенклатура.ПустаяСсылка) КАК НоменклатураНабора,
| ЗНАЧЕНИЕ(Справочник.ХарактеристикиНоменклатуры.ПустаяСсылка) КАК ХарактеристикаНабора,
| ВЫБОР
| КОГДА
| Ценности.Номенклатура = ЗНАЧЕНИЕ(Справочник.Номенклатура.ПустаяСсылка)
| ТОГДА
| Ценности.ВидЦенности
| ИНАЧЕ
| """"
| КОНЕЦ КАК Содержание,
| ВЫБОР
| КОГДА ЕСТЬNULL(Ценности.Номенклатура.ТипНоменклатуры, НЕОПРЕДЕЛЕНО) В (&ТипыНоменклатурыТовар)
| ТОГДА ЗНАЧЕНИЕ(Перечисление.ТипыЗапасов.Товар)
| ИНАЧЕ ЗНАЧЕНИЕ(Перечисление.ТипыЗапасов.Услуга)
| КОНЕЦ КАК ТипЗапасов,
| Ценности.СтавкаНДС КАК СтавкаНДС,
| Ценности.НомерГТД КАК НомерГТД,
| Ценности.КодТНВЭД КАК КодТНВЭД,
| Ценности.Номенклатура.ЕдиницаИзмерения КАК ЕдиницаИзмерения,
|
| СУММА(Ценности.Количество) КАК Количество,
| СУММА(Суммы.СуммаБезНДС + Суммы.СуммаНДС) КАК Сумма,
| СУММА(Суммы.СуммаНДС) КАК СуммаНДС,
| СУММА(Суммы.БазаНДСРегл + Суммы.СуммаНДСРегл) КАК СуммаРегл,
| СУММА(Суммы.СуммаНДСРегл) КАК СуммаНДСРегл,
| СУММА(Ценности.КоличествоПоРНПТ) КАК КоличествоПоРНПТ,
|
| Ценности.Ссылка.Валюта КАК Валюта,
| Ценности.Ссылка КАК ДокументРеализации
|ИЗ
| Документ.ЗаписьКнигиПродаж.Ценности КАК Ценности
| ЛЕВОЕ СОЕДИНЕНИЕ
| ВтСуммыДокументовВВалютахУчета КАК Суммы
| ПО
| Ценности.Ссылка = Суммы.Ссылка
| И Ценности.ИдентификаторСтроки = Суммы.ИдентификаторСтроки
| ЛЕВОЕ СОЕДИНЕНИЕ
| Документ.СчетФактураВыданный.ДокументыОснования КАК СчетФактураВыданныйДокументыОснования
| ПО
| Ценности.Ссылка = СчетФактураВыданныйДокументыОснования.ДокументОснование
| И НЕ СчетФактураВыданныйДокументыОснования.Ссылка.ПометкаУдаления
|ГДЕ
| Ценности.Ссылка = &Ссылка
| И Ценности.Ссылка.ХозяйственнаяОперация = ЗНАЧЕНИЕ(Перечисление.ХозяйственныеОперации.ПрочееНачислениеНДС)
|
|СГРУППИРОВАТЬ ПО
| СчетФактураВыданныйДокументыОснования.Ссылка,
| Ценности.Номенклатура,
| ВЫБОР
| КОГДА ЕСТЬNULL(Ценности.Номенклатура.ТипНоменклатуры, НЕОПРЕДЕЛЕНО) В (&ТипыНоменклатурыТовар)
| ТОГДА ЗНАЧЕНИЕ(Перечисление.ТипыЗапасов.Товар)
| ИНАЧЕ ЗНАЧЕНИЕ(Перечисление.ТипыЗапасов.Услуга)
| КОНЕЦ,
| Ценности.СтавкаНДС,
| Ценности.НомерГТД,
| Ценности.КодТНВЭД,
| Ценности.Ссылка,
| ВЫБОР
| КОГДА
| Ценности.Номенклатура = ЗНАЧЕНИЕ(Справочник.Номенклатура.ПустаяСсылка)
| ТОГДА
| Ценности.ВидЦенности
| ИНАЧЕ
| """"
| КОНЕЦ
|
|ОБЪЕДИНИТЬ ВСЕ
|
|ВЫБРАТЬ
| СчетФактураВыданныйДокументыОснования.Ссылка КАК ИсходныйСчетФактура,
| Расхождения.Номенклатура КАК Номенклатура,
| ЗНАЧЕНИЕ(Справочник.ХарактеристикиНоменклатуры.ПустаяСсылка) КАК Характеристика,
| ЗНАЧЕНИЕ(Справочник.Номенклатура.ПустаяСсылка) КАК НоменклатураНабора,
| ЗНАЧЕНИЕ(Справочник.ХарактеристикиНоменклатуры.ПустаяСсылка) КАК ХарактеристикаНабора,
| ВЫБОР
| КОГДА
| Расхождения.Номенклатура = ЗНАЧЕНИЕ(Справочник.Номенклатура.ПустаяСсылка)
| ТОГДА
| Расхождения.ВидЦенности
| ИНАЧЕ
| """"
| КОНЕЦ КАК Содержание,
| ВЫБОР
| КОГДА ЕСТЬNULL(Расхождения.Номенклатура.ТипНоменклатуры, НЕОПРЕДЕЛЕНО) В (&ТипыНоменклатурыТовар)
| ТОГДА ЗНАЧЕНИЕ(Перечисление.ТипыЗапасов.Товар)
| ИНАЧЕ ЗНАЧЕНИЕ(Перечисление.ТипыЗапасов.Услуга)
| КОНЕЦ КАК ТипЗапасов,
| Расхождения.СтавкаНДС КАК СтавкаНДС,
| Расхождения.НомерГТД КАК НомерГТД,
| Расхождения.КодТНВЭД КАК КодТНВЭД,
| Расхождения.Номенклатура.ЕдиницаИзмерения КАК ЕдиницаИзмерения,
|
| 0 КАК Количество,
| СУММА(Суммы.СуммаБезНДС + Суммы.СуммаНДС) КАК Сумма,
| СУММА(Суммы.СуммаНДС) КАК СуммаНДС,
| СУММА(Суммы.БазаНДСРегл + Суммы.СуммаНДСРегл) КАК СуммаРегл,
| СУММА(Суммы.СуммаНДСРегл) КАК СуммаНДСРегл,
| 0 КАК КоличествоПоРНПТ,
|
| Расхождения.Ссылка.Валюта КАК Валюта,
| Расхождения.Ссылка.ИсправляемыйДокумент КАК ДокументРеализации
|ИЗ
| Документ.ЗаписьКнигиПродаж.Расхождения КАК Расхождения
| ЛЕВОЕ СОЕДИНЕНИЕ
| ВтСуммыДокументовВВалютахУчета КАК Суммы
| ПО
| Расхождения.Ссылка = Суммы.Ссылка
| И Расхождения.ИдентификаторСтроки = Суммы.ИдентификаторСтроки
| ЛЕВОЕ СОЕДИНЕНИЕ
| Документ.СчетФактураВыданный.ДокументыОснования КАК СчетФактураВыданныйДокументыОснования
| ПО
| Расхождения.Ссылка.ИсправляемыйДокумент = СчетФактураВыданныйДокументыОснования.ДокументОснование
| И НЕ СчетФактураВыданныйДокументыОснования.Ссылка.ПометкаУдаления
|ГДЕ
| Расхождения.Ссылка = &Ссылка
| И Расхождения.Ссылка.ХозяйственнаяОперация = ЗНАЧЕНИЕ(Перечисление.ХозяйственныеОперации.ИсправлениеПрочегоНачисленияНДС)
|
|СГРУППИРОВАТЬ ПО
| СчетФактураВыданныйДокументыОснования.Ссылка,
| Расхождения.Номенклатура,
| ВЫБОР
| КОГДА ЕСТЬNULL(Расхождения.Номенклатура.ТипНоменклатуры, НЕОПРЕДЕЛЕНО) В (&ТипыНоменклатурыТовар)
| ТОГДА ЗНАЧЕНИЕ(Перечисление.ТипыЗапасов.Товар)
| ИНАЧЕ ЗНАЧЕНИЕ(Перечисление.ТипыЗапасов.Услуга)
| КОНЕЦ,
| Расхождения.СтавкаНДС,
| Расхождения.НомерГТД,
| Расхождения.КодТНВЭД,
| Расхождения.Ссылка,
| ВЫБОР
| КОГДА
| Расхождения.Номенклатура = ЗНАЧЕНИЕ(Справочник.Номенклатура.ПустаяСсылка)
| ТОГДА
| Расхождения.ВидЦенности
| ИНАЧЕ
| """"
| КОНЕЦ
|";
ТекстыЗапроса.Добавить(ТекстЗапроса, ИмяРегистра);
Возврат ТекстЗапроса;
КонецФункции
Функция ТекстЗапросаТаблицаРеестрДокументов(Запрос, ТекстыЗапроса, Регистры)
ИмяРегистра = "РеестрДокументов";
Если НЕ ПроведениеДокументов.ТребуетсяТаблицаДляДвижений(ИмяРегистра, Регистры) Тогда
Возврат "";
КонецЕсли;
ТекстЗапроса = "
|ВЫБРАТЬ
| &ИдентификаторМетаданных КАК ТипСсылки,
| &ХозяйственнаяОперация КАК ХозяйственнаяОперация,
| &Организация КАК Организация,
| НЕОПРЕДЕЛЕНО КАК Партнер,
| НЕОПРЕДЕЛЕНО КАК МестоХранения,
| &Контрагент КАК Контрагент,
| &Подразделение КАК Подразделение,
| &Период КАК ДатаДокументаИБ,
| &Ссылка КАК Ссылка,
| &Номер КАК НомерДокументаИБ,
| НЕОПРЕДЕЛЕНО КАК Статус,
| НЕОПРЕДЕЛЕНО КАК Ответственный,
| НЕОПРЕДЕЛЕНО КАК Автор,
| ЛОЖЬ КАК ДополнительнаяЗапись,
| НЕОПРЕДЕЛЕНО КАК Дополнительно,
| &Комментарий КАК Комментарий,
| &Проведен КАК Проведен,
| &ПометкаУдаления КАК ПометкаУдаления,
| &Период КАК ДатаПервичногоДокумента,
| &НомерНаПечать КАК НомерПервичногоДокумента,
| &СуммаДокумента КАК Сумма,
| &Валюта КАК Валюта,
| НЕОПРЕДЕЛЕНО КАК Договор,
| НЕОПРЕДЕЛЕНО КАК НаправлениеДеятельности,
| ЛОЖЬ КАК СторноИсправление,
| НЕОПРЕДЕЛЕНО КАК СторнируемыйДокумент,
| НЕОПРЕДЕЛЕНО КАК ИсправляемыйДокумент,
| &Период КАК ДатаОтраженияВУчете,
| НЕОПРЕДЕЛЕНО КАК Приоритет";
ТекстыЗапроса.Добавить(ТекстЗапроса, ИмяРегистра);
Возврат ТекстЗапроса;
КонецФункции
#КонецОбласти
#Область Печать
Процедура ДобавитьКомандыПечати(КомандыПечати) Экспорт
КомандаПечати = КомандыПечати.Добавить();
КомандаПечати.МенеджерПечати = "Обработка.ПечатьОбщихФорм";
КомандаПечати.Идентификатор = "СчетФактура";
КомандаПечати.Представление = НСтр("ru = 'Счет-фактура'");
КомандаПечати.ПроверкаПроведенияПередПечатью = Истина;
КомандаПечати.ДополнительныеПараметры.Вставить("ПечатьВВалюте", Ложь);
КонецПроцедуры
Процедура Печать(МассивОбъектов, ПараметрыПечати, КоллекцияПечатныхФорм, ОбъектыПечати, ПараметрыВывода) Экспорт
КонецПроцедуры
Процедура ПоместитьВременнуюТаблицуТоваров(МенеджерВременныхТаблиц, ПараметрыЗаполнения = Неопределено) Экспорт
Если ПараметрыЗаполнения = Неопределено Тогда
ПараметрыЗаполнения = ПродажиСервер.ПараметрыЗаполненияВременнойТаблицыТоваров();
КонецЕсли;
Запрос = Новый Запрос;
Запрос.МенеджерВременныхТаблиц = МенеджерВременныхТаблиц;
Запрос.УстановитьПараметр("ПересчитыватьВВалютуРегл", ПараметрыЗаполнения.ПересчитыватьВВалютуРегл);
Запрос.УстановитьПараметр("ВключаяНомераГТД", ПараметрыЗаполнения.ВключаяНомераГТД);
Запрос.УстановитьПараметр("ПустаяХарактеристика", Справочники.ХарактеристикиНоменклатуры.ПустаяСсылка());
Запрос.УстановитьПараметр("ПустаяУпаковка", Справочники.УпаковкиЕдиницыИзмерения.ПустаяСсылка());
Запрос.УстановитьПараметр("ПустаяГТД", Справочники.НомераГТД.ПустаяСсылка());
Запрос.Текст = "
|ВЫБРАТЬ
| ТаблицаДокумента.Ссылка КАК Ссылка,
| ТаблицаДокумента.НомерСтроки КАК НомерСтроки,
| ТаблицаДокумента.Номенклатура КАК Номенклатура,
| ВЫБОР
| КОГДА
| ТаблицаДокумента.Номенклатура = ЗНАЧЕНИЕ(Справочник.Номенклатура.ПустаяСсылка)
| ТОГДА
| ТаблицаДокумента.ВидЦенности
| ИНАЧЕ
| """"
| КОНЕЦ КАК Содержание,
| &ПустаяХарактеристика КАК Характеристика,
| ЗНАЧЕНИЕ(Справочник.СерииНоменклатуры.ПустаяСсылка) КАК Серия,
| ВЫБОР КОГДА &ВключаяНомераГТД ТОГДА
| ТаблицаДокумента.НомерГТД
| ИНАЧЕ
| &ПустаяГТД
| КОНЕЦ КАК НомерГТД,
| ТаблицаДокумента.КодТНВЭД КАК КодТНВЭД,
| &ПустаяУпаковка КАК Упаковка,
| ТаблицаДокумента.Количество КАК Количество,
| ТаблицаДокумента.Количество КАК КоличествоУпаковок,
| ТаблицаДокумента.КоличествоПоРНПТ КАК КоличествоПоРНПТ,
| ТаблицаДокумента.Цена КАК Цена,
|
| ЕСТЬNULL(
| СуммыДокументовВВалютахУчета.СуммаБезНДСРегл,
| ТаблицаДокумента.Сумма
| ) КАК СуммаБезНДС,
|
| ТаблицаДокумента.СтавкаНДС КАК СтавкаНДС,
|
| ЕСТЬNULL(
| СуммыДокументовВВалютахУчета.СуммаНДСРегл,
| ТаблицаДокумента.СуммаНДС
| ) КАК СуммаНДС,
|
| ВЫБОР КОГДА ТаблицаДокумента.Номенклатура.ТипНоменклатуры В
| (ЗНАЧЕНИЕ(Перечисление.ТипыНоменклатуры.Товар),
| ЗНАЧЕНИЕ(Перечисление.ТипыНоменклатуры.МногооборотнаяТара))
| ТОГДА ИСТИНА
| ИНАЧЕ ЛОЖЬ
| КОНЕЦ КАК ЭтоТовар,
| ЛОЖЬ КАК ВернутьМногооборотнуюТару
|
|ПОМЕСТИТЬ ЗаписьКнигиПродажТаблицаТоваров
|ИЗ
| Документ.ЗаписьКнигиПродаж.Ценности КАК ТаблицаДокумента
|
| ВНУТРЕННЕЕ СОЕДИНЕНИЕ
| ТаблицаДанныхДокументов КАК ДанныеДокументов
| ПО
| ТаблицаДокумента.Ссылка = ДанныеДокументов.Ссылка
|
| ЛЕВОЕ СОЕДИНЕНИЕ
| РегистрСведений.СуммыДокументовВВалютахУчета КАК СуммыДокументовВВалютахУчета
| ПО
| ТаблицаДокумента.Ссылка = СуммыДокументовВВалютахУчета.Регистратор
| И ТаблицаДокумента.ИдентификаторСтроки = СуммыДокументовВВалютахУчета.ИдентификаторСтроки
| И СуммыДокументовВВалютахУчета.Активность
| И &ПересчитыватьВВалютуРегл
|";
Запрос.Выполнить();
КонецПроцедуры
Функция ТекстЗапросаДанныхОснованияДляПечатнойФормыСчетФактура() Экспорт
ТекстЗапроса =
"ВЫБРАТЬ
| ДанныеДокументов.Ссылка КАК Ссылка,
| ЗНАЧЕНИЕ(Перечисление.ХозяйственныеОперации.ПустаяСсылка) КАК ХозяйственнаяОперация,
| ДанныеДокументов.Валюта КАК Валюта,
| ДанныеДокументов.Организация КАК Организация,
| НЕОПРЕДЕЛЕНО КАК НалогообложениеНДС,
| НЕОПРЕДЕЛЕНО КАК Подразделение,
| ЗНАЧЕНИЕ(Справочник.Склады.ПустаяСсылка) КАК Склад,
| ДанныеДокументов.Грузоотправитель КАК Грузоотправитель,
| ДанныеДокументов.Грузополучатель КАК Грузополучатель,
| ЛОЖЬ КАК РасчетыЧерезОтдельногоКонтрагента,
| НЕОПРЕДЕЛЕНО КАК Номенклатура,
| """" КАК Содержание,
| ЗНАЧЕНИЕ(Справочник.Организации.ПустаяСсылка) КАК Комиссионер,
| НЕОПРЕДЕЛЕНО КАК Основание,
| НЕОПРЕДЕЛЕНО КАК ОснованиеДата,
| НЕОПРЕДЕЛЕНО КАК ОснованиеНомер,
| НЕОПРЕДЕЛЕНО КАК БанковскийСчетОрганизации,
| НЕОПРЕДЕЛЕНО КАК БанковскийСчетКонтрагента,
| НЕОПРЕДЕЛЕНО КАК БанковскийСчетГрузоотправителя,
| НЕОПРЕДЕЛЕНО КАК БанковскийСчетГрузополучателя,
| НЕОПРЕДЕЛЕНО КАК ДоверенностьНомер,
| НЕОПРЕДЕЛЕНО КАК ДоверенностьДата,
| НЕОПРЕДЕЛЕНО КАК ДоверенностьВыдана,
| НЕОПРЕДЕЛЕНО КАК ДоверенностьЛицо,
| НЕОПРЕДЕЛЕНО КАК Менеджер,
| НЕОПРЕДЕЛЕНО КАК Кладовщик,
| НЕОПРЕДЕЛЕНО КАК ДолжностьКладовщика,
| """" КАК АдресДоставки,
| """" КАК АдресДоставкиЗначенияПолей,
| """" КАК АдресДоставкиЗначение,
| """" КАК ДанныеТранспортнаяНакладная,
| """" КАК СопроводительныеДокументы,
| ДанныеДокументов.Дата КАК Период,
| """" КАК КодСпециальныхОбстоятельств
|
|
|ИЗ
| Документ.ЗаписьКнигиПродаж КАК ДанныеДокументов
|ГДЕ
| ДанныеДокументов.Ссылка В (&ДокументОснование_ЗаписьКнигиПродаж)";
Возврат ТекстЗапроса;
КонецФункции
Функция АдаптированныйТекстЗапросаДвиженийПоРегистру(ИмяРегистра) Экспорт
Запрос = Новый Запрос;
ТекстыЗапроса = Новый СписокЗначений;
ПолноеИмяДокумента = "Документ.ЗаписьКнигиПродаж";
ЗначенияПараметров = Новый Структура;
ЗначенияПараметров.Вставить("ИдентификаторМетаданных", ОбщегоНазначения.ИдентификаторОбъектаМетаданных("Документ.ЗаписьКнигиПродаж"));
Если ИмяРегистра = "РеестрДокументов" Тогда
ТекстЗапроса = ТекстЗапросаТаблицаРеестрДокументов(Запрос, ТекстыЗапроса, ИмяРегистра);
СинонимТаблицыДокумента = "";
Иначе
ТекстИсключения = НСтр("ru = 'В документе %ПолноеИмяДокумента% не реализована адаптация текста запроса формирования движений по регистру %ИмяРегистра%.'");
ТекстИсключения = СтрЗаменить(ТекстИсключения, "%ПолноеИмяДокумента%", ПолноеИмяДокумента);
ТекстИсключения = СтрЗаменить(ТекстИсключения, "%ИмяРегистра%", ИмяРегистра);
ВызватьИсключение ТекстИсключения;
КонецЕсли;
Если ИмяРегистра = "РеестрДокументов" Тогда
ТекстЗапроса = ОбновлениеИнформационнойБазыУТ.АдаптироватьЗапросПроведенияПоНезависимомуРегистру(
ТекстЗапроса, ПолноеИмяДокумента, СинонимТаблицыДокумента, Ложь);
Иначе
ТекстЗапроса = ОбновлениеИнформационнойБазыУТ.АдаптироватьЗапросМеханизмаПроведения(
ТекстЗапроса, ПолноеИмяДокумента, СинонимТаблицыДокумента);
КонецЕсли;
Результат = ОбновлениеИнформационнойБазыУТ.РезультатАдаптацииЗапроса();
Результат.ЗначенияПараметров = ЗначенияПараметров;
Результат.ТекстЗапроса = ТекстЗапроса;
Возврат Результат;
КонецФункции
#КонецОбласти
#КонецОбласти
#КонецЕсли