#Если Сервер Или ТолстыйКлиентОбычноеПриложение Или ВнешнееСоединение Тогда
#Область ПрограммныйИнтерфейс
Процедура ЗадатьОписаниеЗаполняемыхРеквизитовПоСтатистике(ОписаниеРеквизитов) Экспорт
Параметры = ЗаполнениеОбъектовПоСтатистике.ПараметрыЗаполняемыхРеквизитов();
Параметры.РазрезыСбораСтатистики.ИспользоватьВсегда = "Автор";
Параметры.ЗаполнятьПриУсловии.ПоляОбъектаЗаполнены = "Автор";
ЗаполнениеОбъектовПоСтатистике.ДобавитьОписаниеЗаполняемыхРеквизитов(ОписаниеРеквизитов,
"Организация", Параметры);
Параметры = ЗаполнениеОбъектовПоСтатистике.ПараметрыЗаполняемыхРеквизитов();
Параметры.РазрезыСбораСтатистики.ИспользоватьВсегда = "Автор, ДокументОснование";
Параметры.ЗаполнятьПриУсловии.ПоляОбъектаЗаполнены = "Автор";
ЗаполнениеОбъектовПоСтатистике.ДобавитьОписаниеЗаполняемыхРеквизитов(ОписаниеРеквизитов,
"Подразделение", Параметры);
КонецПроцедуры
#Область Проведение
Процедура ЗарегистрироватьУчетныеМеханизмы(МеханизмыДокумента) Экспорт
МеханизмыДокумента.Добавить("Взаиморасчеты");
МеханизмыДокумента.Добавить("ОборотныеРегистрыУправленческогоУчета");
МеханизмыДокумента.Добавить("РасчетыСПодотчетниками");
МеханизмыДокумента.Добавить("РеестрДокументов");
МеханизмыДокумента.Добавить("СебестоимостьИПартионныйУчет");
МеханизмыДокумента.Добавить("СуммыДокументовВВалютахУчета");
МеханизмыДокумента.Добавить("УчетДоходовРасходов");
МеханизмыДокумента.Добавить("УчетДенежныхСредств");
МеханизмыДокумента.Добавить("УчетНДС");
МеханизмыДокумента.Добавить("УчетПрочихАктивовПассивов");
МеханизмыДокумента.Добавить("ИсправлениеДокументов");
АвансовыйОтчетЛокализация.ЗарегистрироватьУчетныеМеханизмы(МеханизмыДокумента);
КонецПроцедуры
Функция ДанныеДокументаДляПроведения(Документ, Регистры, ДопПараметры = Неопределено) Экспорт
Если ДопПараметры = Неопределено Тогда
ДопПараметры = ПроведениеДокументов.ДопПараметрыИнициализироватьДанныеДокументаДляПроведения();
КонецЕсли;
Если ТипЗнч(Документ) = Тип("ДокументОбъект.АвансовыйОтчет") Тогда
ДокументСсылка = Документ.Ссылка;
Иначе
ДокументСсылка = Документ;
КонецЕсли;
Запрос = Новый Запрос;
ТекстыЗапроса = Новый СписокЗначений;
Если Не ДопПараметры.ПолучитьТекстыЗапроса Тогда
ЗаполнитьПараметрыИнициализации(Запрос, ДокументСсылка);
СформироватьСуммыДокументаВВалютахУчета(Запрос, ТекстыЗапроса, Регистры);
ТекстЗапросаТаблицаДенежныеСредстваУПодотчетныхЛиц(Запрос, ТекстыЗапроса, Регистры);
ТекстЗапросаТаблицаПрочиеДоходы(Запрос, ТекстыЗапроса, Регистры);
ТекстЗапросаТаблицаПрочиеРасходы(Запрос, ТекстыЗапроса, Регистры);
ТекстЗапросаТаблицаПрочиеАктивыПассивы(Запрос, ТекстыЗапроса, Регистры);
ТекстЗапросаТаблицаПартииПрочихРасходов(Запрос, ТекстыЗапроса, Регистры);
ТекстЗапросаТаблицаДвиженияДенежныхСредств(Запрос, ТекстыЗапроса, Регистры);
ТекстЗапросаТаблицаДвиженияДенежныеСредстваДоходыРасходы(Запрос, ТекстыЗапроса, Регистры);
ТекстЗапросаТаблицаДвиженияДенежныеСредстваКонтрагент(Запрос, ТекстыЗапроса, Регистры);
ТекстЗапросаТаблицаДвиженияКонтрагентКонтрагент(Запрос, ТекстыЗапроса, Регистры);
ТекстЗапросаТаблицаДвиженияПоПрочимАктивамПассивам(Запрос, ТекстыЗапроса, Регистры);
ТекстЗапросаТаблицаРеестрДокументов(Запрос, ТекстыЗапроса, Регистры);
ТекстЗапросаТаблицаДенежныеСредстваВПути(Запрос, ТекстыЗапроса, Регистры);
ОтразитьВУчетеНДС(Запрос, ТекстыЗапроса, Регистры);
АвансовыйОтчетЛокализация.ДополнитьТекстыЗапросовПроведения(Запрос, ТекстыЗапроса, Регистры);
КонецЕсли;
ДобавитьТекстыОтраженияВзаиморасчетов(Запрос, ТекстыЗапроса, Регистры);
Возврат ПроведениеДокументов.ИнициализироватьДанныеДокументаДляПроведения(Запрос, ТекстыЗапроса, ДопПараметры);
КонецФункции
#КонецОбласти
Процедура ПриОпределенииНастроекВерсионированияОбъектов(Настройки) Экспорт
КонецПроцедуры
Функция РеквизитыДокумента(АвансовыйОтчет) Экспорт
Запрос = Новый Запрос("
|ВЫБРАТЬ
| ДанныеДокумента.Дата КАК Дата,
| ДанныеДокумента.Организация КАК Организация,
| ДанныеДокумента.Валюта КАК Валюта,
| ДанныеДокумента.ПодотчетноеЛицо КАК ПодотчетноеЛицо,
| ДанныеДокумента.Подразделение КАК Подразделение
|ИЗ
| Документ.АвансовыйОтчет КАК ДанныеДокумента
|ГДЕ
| ДанныеДокумента.Ссылка = &АвансовыйОтчет
|");
Запрос.УстановитьПараметр("АвансовыйОтчет", АвансовыйОтчет);
Выборка = Запрос.Выполнить().Выбрать();
Если Выборка.Следующий() Тогда
Дата = Выборка.Дата;
Организация = Выборка.Организация;
Валюта = Выборка.Валюта;
ПодотчетноеЛицо = Выборка.ПодотчетноеЛицо;
Подразделение = Выборка.Подразделение;
Иначе
Дата = Дата(1,1,1);
Организация = Справочники.Организации.ПустаяСсылка();
Валюта = Справочники.Валюты.ПустаяСсылка();
ПодотчетноеЛицо = Справочники.Пользователи.ПустаяСсылка();
Подразделение = Справочники.СтруктураПредприятия.ПустаяСсылка();
КонецЕсли;
СтруктураРеквизитов = Новый Структура;
СтруктураРеквизитов.Вставить("Дата", Дата);
СтруктураРеквизитов.Вставить("Организация", Организация);
СтруктураРеквизитов.Вставить("Валюта", Валюта);
СтруктураРеквизитов.Вставить("ПодотчетноеЛицо", ПодотчетноеЛицо);
СтруктураРеквизитов.Вставить("Подразделение", Подразделение);
Возврат СтруктураРеквизитов;
КонецФункции
Процедура УдалитьДобавитьДокументыЗакупки(Ссылка, ДокументыКИзменению, ДополнительныеСвойства, Отказ) Экспорт
РедактируемыйДокументЗакупки = Неопределено;
ДополнительныеСвойства.Свойство("РедактируемыйДокументЗакупки", РедактируемыйДокументЗакупки);
НеЗаписыватьРедактируемыйДокументЗакупки =
ОбщегоНазначенияКлиентСервер.СвойствоСтруктуры(ДополнительныеСвойства,
"НеЗаписыватьРедактируемыйДокументЗакупки",
Ложь);
Для каждого ДокументКИзменению Из ДокументыКИзменению Цикл
Если НеЗаписыватьРедактируемыйДокументЗакупки
И ДокументКИзменению = РедактируемыйДокументЗакупки Тогда
Продолжить;
КонецЕсли;
НачатьТранзакцию();
Попытка
ДокументОбъект = ДокументКИзменению.ПолучитьОбъект();
Если ДокументКИзменению <> РедактируемыйДокументЗакупки Тогда
Попытка
ДокументОбъект.Заблокировать();
Исключение
ТекстСообщения = СтрШаблон(
НСтр("ru = '%1 находится в процессе редактирования пользователем или системой и не может быть изменено.'"),
ДокументОбъект);
ОбщегоНазначенияКлиентСервер.СообщитьПользователю(ТекстСообщения);
ВызватьИсключение;
КонецПопытки;
КонецЕсли;
ДокументОбъект.АвансовыйОтчет = Ссылка;
ДокументОбъект.ДополнительныеСвойства.Вставить("НеОбновлятьАвансовыйОтчет");
ДокументОбъект.Записать();
НаборЗаписей = РегистрыНакопления.ДенежныеСредстваУПодотчетныхЛиц.СоздатьНаборЗаписей();
НаборЗаписей.Отбор.Регистратор.Установить(ДокументОбъект.Ссылка);
ТаблицыДляДвижений = ПроведениеДокументов.ДанныеДокументаДляПроведения(
ДокументОбъект.Ссылка, "ДенежныеСредстваУПодотчетныхЛиц");
УстановитьПривилегированныйРежим(Истина);
НаборЗаписей.Загрузить(ТаблицыДляДвижений["Таблица" + "ДенежныеСредстваУПодотчетныхЛиц"]);
НаборЗаписей.Записать();
УстановитьПривилегированныйРежим(Ложь);
ЗафиксироватьТранзакцию();
Исключение
ОтменитьТранзакцию();
ИнформацияОбОшибке = ИнформацияОбОшибке();
ТекстСообщения = НСтр("ru = 'Не удалось изменить документ закупки по причине: %1'");
ТекстСообщения = СтрШаблон(ТекстСообщения, КраткоеПредставлениеОшибки(ИнформацияОбОшибке));
ОбщегоНазначенияКлиентСервер.СообщитьПользователю(ТекстСообщения);
ТекстОшибки = НСтр("ru = 'Не удалось изменить документ закупки.'", ОбщегоНазначения.КодОсновногоЯзыка());
ЗаписьЖурналаРегистрации(
ТекстОшибки,
УровеньЖурналаРегистрации.Ошибка,,,
ПодробноеПредставлениеОшибки(ИнформацияОбОшибке));
Отказ = Истина;
ВызватьИсключение;
КонецПопытки;
КонецЦикла;
КонецПроцедуры
Функция ПараметрыВыбораСтатейИАналитик(Статус) Экспорт
МассивПаметровВыбора = Новый Массив;
#Область СтатьяРасходов
ПараметрыВыбора = ДоходыИРасходыСервер.ПараметрыВыбораСтатьиИАналитики();
ПараметрыВыбора.ПутьКДанным = "Объект.ПрочиеРасходы";
ПараметрыВыбора.Статья = "СтатьяРасходов";
ПараметрыВыбора.ТипСтатьи = "ТипСтатьи";
ПараметрыВыбора.ЭлементыФормы.Статья.Добавить("ПрочиеРасходыСтатьяРасходов");
СтатусУтвержден = Статус = Перечисления.СтатусыАвансовогоОтчета.Утвержден;
#Область АналитикаАктивовПассивов
ПараметрыВыбора.ВыборСтатьиАктивовПассивов = СтатусУтвержден;
ПараметрыВыбора.АналитикаАктивовПассивов = "АналитикаАктивовПассивов";
ПараметрыВыбора.ЭлементыФормы.АналитикаАктивовПассивов.Добавить("ПрочиеРасходыАналитикаАктивовПассивов");
#КонецОбласти
#Область АналитикаРасходов
ПараметрыВыбора.ВыборСтатьиРасходов = СтатусУтвержден;
ПараметрыВыбора.АналитикаРасходов = "АналитикаРасходов";
ПараметрыВыбора.ЭлементыФормы.АналитикаРасходов.Добавить("ПрочиеРасходыАналитикаРасходов");
#КонецОбласти
МассивПаметровВыбора.Добавить(ПараметрыВыбора);
#КонецОбласти
Возврат МассивПаметровВыбора;
КонецФункции
Процедура ЗаполнитьНастройкиПолейФормы(Настройки) Экспорт
Финансы = ФинансоваяОтчетностьСервер;
Элемент = Настройки.Добавить();
Элемент.Поля.Добавить("ДокументОснование");
Финансы.НовыйОтбор(Элемент.Условие, "ДокументОснование",,, ВидСравненияКомпоновкиДанных.Заполнено);
Элемент.Свойства.Вставить("Видимость");
Элемент = Настройки.Добавить();
Элемент.Поля.Добавить("ОплатаПоставщикамСуммаВзаиморасчетов");
Элемент.Поля.Добавить("ОднаВалюта");
Элемент.Поля.Добавить("НесколькоВалют");
Финансы.НовыйОтбор(Элемент.Условие, "Дополнительно.ИспользоватьНесколькоВалют", Истина);
Элемент.Свойства.Вставить("Видимость");
Элемент = Настройки.Добавить();
Элемент.Поля.Добавить("ПрочиеРасходыГруппаРасходы");
Элемент.Поля.Добавить("ПрочиеРасходыГруппаНДС");
Элемент.Поля.Добавить("ПрочиеРасходыЗаполнитьПодразделение");
Элемент.Поля.Добавить("ПрочиеРасходыЗаполнитьПодразделениеВСтроках");
Элемент.Поля.Добавить("ПрочиеРасходыЗаполнитьСтатьюРасходовАктивовВСтроках");
Финансы.НовыйОтбор(Элемент.Условие, "Статус", Перечисления.СтатусыАвансовогоОтчета.Утвержден);
Элемент.Свойства.Вставить("Видимость");
Элемент = Настройки.Добавить();
Элемент.Поля.Добавить("ПрочиеРасходыОтклонено");
Элемент.Поля.Добавить("ПрочиеРасходыПричинаОтклонения");
Элемент.Поля.Добавить("ДатаУтверждения");
Финансы.НовыйОтбор(Элемент.Условие, "Статус", Перечисления.СтатусыАвансовогоОтчета.Утвержден);
Финансы.НовыйОтбор(Элемент.Условие, "Дополнительно.ИспользоватьСтатусыАвансовыхОтчетов", Истина);
Элемент.Свойства.Вставить("Видимость");
Элемент = Настройки.Добавить();
Элемент.Поля.Добавить("Валюта");
Финансы.НовыйОтбор(Элемент.Условие, "Мультивалютный", Ложь);
Элемент.Свойства.Вставить("Доступность");
Элемент = Настройки.Добавить();
Элемент.Поля.Добавить("Получено");
Элемент.Поля.Добавить("Израсходовано");
Элемент.Поля.Добавить("ОстатокПерерасход");
Элемент.Поля.Добавить("НачальныйОстатокПерерасход");
Элемент.Поля.Добавить("Отклонено");
Элемент.Поля.Добавить("ТекущаяВалюта1");
Элемент.Поля.Добавить("ТекущаяВалюта2");
Финансы.НовыйОтбор(Элемент.Условие, "Дополнительно.МультивалютныйПодвал", Ложь);
Элемент.Свойства.Вставить("Видимость");
Элемент = Настройки.Добавить();
Элемент.Поля.Добавить("ГруппаМультивалютныеСуммы");
Финансы.НовыйОтбор(Элемент.Условие, "Дополнительно.МультивалютныйПодвал", Истина);
Элемент.Свойства.Вставить("Видимость");
Элемент = Настройки.Добавить();
Элемент.Поля.Добавить("ДокументыЗакупкиВалюта");
Элемент.Поля.Добавить("ПрочиеРасходыВалюта");
Элемент.Поля.Добавить("ОплатаПоставщикамВалюта");
Элемент.Поля.Добавить("КонвертацияВалюты");
Финансы.НовыйОтбор(Элемент.Условие, "Мультивалютный", Истина);
Элемент.Свойства.Вставить("Видимость");
Элемент = Настройки.Добавить();
Элемент.Поля.Добавить("ДокументыЗакупки");
Финансы.НовыйОтбор(Элемент.Условие, "Дополнительно.ПечатьЕдиногоАвансовогоОтчета", Истина);
Элемент.Свойства.Вставить("Видимость");
Элемент = Настройки.Добавить();
Элемент.Поля.Добавить("ДокументыЗакупкиЦельВыдачи");
Финансы.НовыйОтбор(Элемент.Условие, "Дополнительно.КонтролироватьВыдачуПодОтчетВРазрезеЦелей", Истина);
Элемент.Свойства.Вставить("Видимость");
КонецПроцедуры
Функция СписокДокументовЗакупки(Ссылка) Экспорт
Запрос = Новый Запрос;
Запрос.Текст = "
|ВЫБРАТЬ
| ДанныеДокумента.Ссылка КАК Ссылка
|ИЗ
| Документ.ПриобретениеТоваровУслуг КАК ДанныеДокумента
|ГДЕ
| ДанныеДокумента.АвансовыйОтчет = &Ссылка
| И ДанныеДокумента.Ссылка.Проведен
|
|ОБЪЕДИНИТЬ ВСЕ
|
|ВЫБРАТЬ
| ДанныеДокумента.Ссылка КАК Ссылка
|ИЗ
| Документ.Бронирование КАК ДанныеДокумента
|ГДЕ
| ДанныеДокумента.АвансовыйОтчет = &Ссылка
| И ДанныеДокумента.Ссылка.Проведен
|";
Запрос.УстановитьПараметр("Ссылка", Ссылка);
Возврат Запрос.Выполнить().Выгрузить().ВыгрузитьКолонку("Ссылка");
КонецФункции
#Область ДляВызоваИзДругихПодсистем
Процедура ПриЗаполненииОграниченияДоступа(Ограничение) Экспорт
Ограничение.Текст =
"РазрешитьЧтениеИзменение
|ГДЕ
| ЗначениеРазрешено(Организация)
| И ЗначениеРазрешено(Подразделение)
| И ЗначениеРазрешено(ПодотчетноеЛицо)
| И ЗначениеРазрешено(ОплатаПоставщикам.Поставщик, NULL КАК ИСТИНА)";
КонецПроцедуры
#КонецОбласти
#Область УчетНДС
Функция ПараметрыЗаполненияВидаДеятельностиНДС(Документ) Экспорт
Реквизиты = Новый Структура("Дата, Организация");
Если ТипЗнч(Документ) = Тип("ДокументСсылка.АвансовыйОтчет") Тогда
Реквизиты = ОбщегоНазначения.ЗначенияРеквизитовОбъекта(Документ, Реквизиты);
Иначе
ЗаполнитьЗначенияСвойств(Реквизиты, Документ);
КонецЕсли;
ПараметрыЗаполнения = УчетНДСУПКлиентСервер.ПараметрыЗаполненияВидаДеятельностиНДС();
ПараметрыЗаполнения.Дата = Реквизиты.Дата;
ПараметрыЗаполнения.Организация = Реквизиты.Организация;
ПараметрыЗаполнения.ПриобретениеНаСтатьи = Истина;
Возврат ПараметрыЗаполнения;
КонецФункции
#КонецОбласти
Функция ПараметрыВзаиморасчеты(ДанныеЗаполнения = Неопределено) Экспорт
Если ОбщегоНазначения.ЗначениеСсылочногоТипа(ДанныеЗаполнения) Тогда
СтруктураДанныеЗаполнения = ОбщегоНазначения.ЗначенияРеквизитовОбъекта(
ДанныеЗаполнения,
"Статус");
Статус = СтруктураДанныеЗаполнения.Статус;
ИначеЕсли ДанныеЗаполнения = Неопределено Тогда
Статус = Неопределено;
Иначе
Статус = ДанныеЗаполнения.Статус;
КонецЕсли;
СтруктураПараметров = ВзаиморасчетыСервер.ПараметрыМеханизма();
СтруктураПараметров.ТипРасчетов = Перечисления.ТипыРасчетовСПартнерами.РасчетыСПоставщиком;
СтруктураПараметров.ИзменяетПланОплаты = Статус = Перечисления.СтатусыАвансовогоОтчета.Утвержден;
СтруктураПараметров.ИзменяетПланОтгрузкиПоставки = Ложь;
СтруктураПараметров.ИзменяетРасчетыСтрокой =
"ИсточникДанных.Статус = ЗНАЧЕНИЕ(Перечисление.СтатусыАвансовогоОтчета.Утвержден)";
СтруктураПараметров.СуммаДокумента = "";
СтруктураПараметров.КурсЧислитель = "";
СтруктураПараметров.КурсЗнаменатель = "";
СтруктураПараметров.ПорядокРасчетов = "";
СтруктураПараметров.ФормаОплаты = "";
СтруктураПараметров.ОплатаВВалюте = "";
СтруктураПараметров.ПутьКДаннымТЧРасшифровкаПлатежа = "Объект.ОплатаПоставщикам";
СтруктураПараметров.Партнер = "Объект.ОплатаПоставщикам.Поставщик";
СтруктураПараметров.Соглашение = "";
СтруктураПараметров.Договор = "";
СтруктураПараметров.Контрагент = "Объект.ОплатаПоставщикам.Контрагент";
СтруктураПараметров.ГруппаФинансовогоУчета = "";
СтруктураПараметров.БанковскийСчетОрганизации = "Объект.БанковскийСчет";
СтруктураПараметров.БанковскийСчетКонтрагента = "";
СтруктураПараметров.Касса = "";
СтруктураПараметров.НаправлениеДеятельности = "";
СтруктураПараметров.Дата = "Объект.Дата";
СтруктураПараметров.ИдентификаторПлатежа = "";
СтруктураПараметров.НалогообложениеНДС = "";
СтруктураПараметров.ЭлементыФормы.ПодборВРасшифровкуПлатежа = "ПодборПоОстаткам";
СтруктураПараметров.ЭлементыФормы.РасшифровкаПлатежа = "ОплатаПоставщикам";
СтруктураПараметров.УчитыватьФилиалы = Ложь;
Возврат СтруктураПараметров;
КонецФункции
Функция ТекстЗапросаДанныеАвансовыхОтчетов(Запрос, ИмяВт = "") Экспорт
РегистраторыДенежныеСредстваВозвращено = Новый Массив;
РегистраторыДенежныеСредстваВозвращено.Добавить(Тип("ДокументСсылка.ПриходныйКассовыйОрдер"));
РегистраторыДенежныеСредстваВозвращено.Добавить(Тип("ДокументСсылка.ПоступлениеБезналичныхДенежныхСредств"));
РегистраторыДенежныеСредстваВыдано = ВводОстатковСервер.ДоступныеТипыВводаОстатков();
РегистраторыДенежныеСредстваВыдано.Добавить(Тип("ДокументСсылка.РасходныйКассовыйОрдер"));
РегистраторыДенежныеСредстваВыдано.Добавить(Тип("ДокументСсылка.Бронирование"));
РегистраторыНачальногоОстатка = Новый Массив;
РегистраторыНачальногоОстатка.Добавить(Тип("ДокументСсылка.ВводОстатков"));
РегистраторыНачальногоОстатка.Добавить(Тип("ДокументСсылка.ВводОстатковСПодотчетниками"));
Запрос.УстановитьПараметр("РегистраторыДенежныеСредстваВыдано", РегистраторыДенежныеСредстваВыдано);
Запрос.УстановитьПараметр("РегистраторыДенежныеСредстваВозвращено", РегистраторыДенежныеСредстваВозвращено);
Запрос.УстановитьПараметр("РегистраторыНачальногоОстатка", РегистраторыНачальногоОстатка);
Если Запрос.Параметры.Свойство("Организация") Тогда
ТекстЗапроса = "
|ВЫБРАТЬ
| &Организация КАК Организация,
| &ПодотчетноеЛицо КАК ПодотчетноеЛицо,
| &Подразделение КАК Подразделение,
| &Ссылка КАК Ссылка,
| &Дата КАК Дата
|ПОМЕСТИТЬ ВТПериоды1
|;";
Иначе
ТекстЗапроса = "
|ВЫБРАТЬ РАЗЛИЧНЫЕ
| ДанныеРегистра.Организация КАК Организация,
| ДанныеРегистра.ПодотчетноеЛицо КАК ПодотчетноеЛицо,
| ДанныеРегистра.Подразделение КАК Подразделение,
| ВЫБОР
| КОГДА ДанныеРегистра.Регистратор ССЫЛКА Документ.АвансовыйОтчет
| ТОГДА ДанныеРегистра.Регистратор
| КОГДА ДанныеРегистра.Регистратор ССЫЛКА Документ.ПриобретениеТоваровУслуг
| ТОГДА ВЫРАЗИТЬ(ДанныеРегистра.Регистратор КАК Документ.ПриобретениеТоваровУслуг).АвансовыйОтчет
| КОГДА ДанныеРегистра.Регистратор ССЫЛКА Документ.Бронирование
| ТОГДА ВЫРАЗИТЬ(ДанныеРегистра.Регистратор КАК Документ.Бронирование).АвансовыйОтчет
| КОНЕЦ КАК Ссылка,
| ВЫБОР
| КОГДА ДанныеРегистра.Регистратор ССЫЛКА Документ.АвансовыйОтчет
| ТОГДА ВЫРАЗИТЬ(ДанныеРегистра.Регистратор КАК Документ.АвансовыйОтчет).Дата
| КОГДА ДанныеРегистра.Регистратор ССЫЛКА Документ.ПриобретениеТоваровУслуг
| ТОГДА ВЫРАЗИТЬ(ДанныеРегистра.Регистратор КАК Документ.ПриобретениеТоваровУслуг).АвансовыйОтчет.Дата
| КОГДА ДанныеРегистра.Регистратор ССЫЛКА Документ.Бронирование
| ТОГДА ВЫРАЗИТЬ(ДанныеРегистра.Регистратор КАК Документ.Бронирование).АвансовыйОтчет.Дата
| КОНЕЦ КАК Дата
|ПОМЕСТИТЬ ВТПериоды1
|ИЗ
| РегистрНакопления.ДенежныеСредстваУПодотчетныхЛиц КАК ДанныеРегистра
|ГДЕ
| ДанныеРегистра.Регистратор В (&МассивДокументов)
| ИЛИ ВЫРАЗИТЬ(ДанныеРегистра.Регистратор КАК Документ.ПриобретениеТоваровУслуг).АвансовыйОтчет В (&МассивДокументов)
| ИЛИ (ВЫРАЗИТЬ(ДанныеРегистра.Регистратор КАК Документ.Бронирование).АвансовыйОтчет В (&МассивДокументов)
| И ВЫРАЗИТЬ(ДанныеРегистра.Регистратор КАК Документ.Бронирование).ПодотчетноеЛицо = ДанныеРегистра.ПодотчетноеЛицо)
|;";
КонецЕсли;
ТекстЗапроса = ТекстЗапроса + "
|
|ВЫБРАТЬ
| ВТПериоды.Организация,
| ВТПериоды.ПодотчетноеЛицо,
| ВТПериоды.Подразделение,
| ВТПериоды.Ссылка,
| ВТПериоды.Дата КАК ДатаТекущийОтчет,
| МАКСИМУМ(Документ.Дата) КАК МаксимальнаяДата
|ПОМЕСТИТЬ МаксимальныеДатыПредыдущихАО
|ИЗ
| ВТПериоды1 КАК ВТПериоды
| ЛЕВОЕ СОЕДИНЕНИЕ Документ.АвансовыйОтчет КАК Документ
| ПО (Документ.Организация = ВТПериоды.Организация)
| И (Документ.ПодотчетноеЛицо = ВТПериоды.ПодотчетноеЛицо)
| И (Документ.Подразделение = ВТПериоды.Подразделение)
| И (Документ.Дата < ВТПериоды.Дата)
| И Документ.Проведен
|СГРУППИРОВАТЬ ПО
| ВТПериоды.Организация,
| ВТПериоды.ПодотчетноеЛицо,
| ВТПериоды.Подразделение,
| ВТПериоды.Ссылка,
| ВТПериоды.Дата
|;
|ВЫБРАТЬ
| ВложенныйЗапрос.Организация,
| ВложенныйЗапрос.ПодотчетноеЛицо,
| ВложенныйЗапрос.Подразделение,
| ВложенныйЗапрос.Ссылка,
| ВложенныйЗапрос.ДатаТекущийОтчет КАК ДатаТекущийОтчет,
| ЕСТЬNULL(ВложенныйЗапрос.ПредыдущаяСсылка.Дата,ДАТАВРЕМЯ(1,1,1)) КАК ДатаПредыдущийОтчет
|ПОМЕСТИТЬ АвансовыйОтчетНаПечатьВТ3
|ИЗ
| (ВЫБРАТЬ
| ВТПериоды.Организация,
| ВТПериоды.ПодотчетноеЛицо,
| ВТПериоды.Подразделение,
| ВТПериоды.Ссылка,
| ВТПериоды.ДатаТекущийОтчет КАК ДатаТекущийОтчет,
| МАКСИМУМ(Документ.Ссылка) КАК ПредыдущаяСсылка
| ИЗ
| МаксимальныеДатыПредыдущихАО КАК ВТПериоды
| ЛЕВОЕ СОЕДИНЕНИЕ Документ.АвансовыйОтчет КАК Документ
| ПО (Документ.Организация = ВТПериоды.Организация)
| И (Документ.ПодотчетноеЛицо = ВТПериоды.ПодотчетноеЛицо)
| И (Документ.Подразделение = ВТПериоды.Подразделение)
| И (Документ.Дата = ВТПериоды.МаксимальнаяДата)
| И Документ.Проведен
| СГРУППИРОВАТЬ ПО
| ВТПериоды.Организация,
| ВТПериоды.ПодотчетноеЛицо,
| ВТПериоды.Подразделение,
| ВТПериоды.Ссылка,
| ВТПериоды.ДатаТекущийОтчет) КАК ВложенныйЗапрос
|;
|ВЫБРАТЬ
| АвансовыйОтчетНаПечатьВТ3.Ссылка,
| ДенежныеСредстваВыдано.Валюта,
| ДенежныеСредстваВыдано.ЦельВыдачи,
|
| СУММА(ВЫБОР
| КОГДА ДенежныеСредстваВыдано.ВидДвижения = ЗНАЧЕНИЕ(ВидДвиженияНакопления.Приход)
| И ТИПЗНАЧЕНИЯ(ДенежныеСредстваВыдано.Регистратор) В (&РегистраторыДенежныеСредстваВыдано)
| И НЕ ТИПЗНАЧЕНИЯ(ДенежныеСредстваВыдано.Регистратор) В (&РегистраторыНачальногоОстатка)
| И ДенежныеСредстваВыдано.ХозяйственнаяОперация <> ЗНАЧЕНИЕ(Перечисление.ХозяйственныеОПерации.ВозвратБронированияПодотчетногоЛица) ТОГДА
| ЕСТЬNULL(ДенежныеСредстваВыдано.Сумма, 0)
| ИНАЧЕ 0
| КОНЕЦ) КАК СуммаВыданоНаличными,
| СУММА(ВЫБОР
| КОГДА ДенежныеСредстваВыдано.ВидДвижения = ЗНАЧЕНИЕ(ВидДвиженияНакопления.Приход)
| И ТИПЗНАЧЕНИЯ(ДенежныеСредстваВыдано.Регистратор) В (&РегистраторыДенежныеСредстваВыдано)
| И НЕ ТИПЗНАЧЕНИЯ(ДенежныеСредстваВыдано.Регистратор) В (&РегистраторыНачальногоОстатка)
| И ДенежныеСредстваВыдано.ХозяйственнаяОперация <> ЗНАЧЕНИЕ(Перечисление.ХозяйственныеОПерации.ВозвратБронированияПодотчетногоЛица) ТОГДА
| ЕСТЬNULL(ДенежныеСредстваВыдано.СуммаРегл, 0)
| ИНАЧЕ 0
| КОНЕЦ) КАК СуммаВыданоНаличнымиРегл,
|
| СУММА(ВЫБОР
| КОГДА ДенежныеСредстваВыдано.ВидДвижения = ЗНАЧЕНИЕ(ВидДвиженияНакопления.Расход)
| И ТИПЗНАЧЕНИЯ(ДенежныеСредстваВыдано.Регистратор) В (&РегистраторыДенежныеСредстваВозвращено) ТОГДА
| ЕСТЬNULL(ДенежныеСредстваВыдано.Сумма, 0)
| ИНАЧЕ 0
| КОНЕЦ) КАК СуммаВозвращено,
| СУММА(ВЫБОР
| КОГДА ДенежныеСредстваВыдано.ВидДвижения = ЗНАЧЕНИЕ(ВидДвиженияНакопления.Расход)
| И ТИПЗНАЧЕНИЯ(ДенежныеСредстваВыдано.Регистратор) В (&РегистраторыДенежныеСредстваВозвращено) ТОГДА
| ЕСТЬNULL(ДенежныеСредстваВыдано.СуммаРегл, 0)
| ИНАЧЕ 0
| КОНЕЦ) КАК СуммаВозвращеноРегл,
|
| 0 КАК СуммаКонвертация,
| 0 КАК СуммаКонвертацияРегл,
|
| СУММА(ВЫБОР
| КОГДА ДенежныеСредстваВыдано.ВидДвижения = ЗНАЧЕНИЕ(ВидДвиженияНакопления.Приход)
| И ТИПЗНАЧЕНИЯ(ДенежныеСредстваВыдано.Регистратор) В (ТИП(Документ.СписаниеБезналичныхДенежныхСредств), ТИП(Документ.ПодтверждениеЗачисленияЗарплаты)) ТОГДА
| ЕСТЬNULL(ДенежныеСредстваВыдано.Сумма, 0)
| ИНАЧЕ
| 0
| КОНЕЦ) КАК СуммаВыданоКартой,
|
| СУММА(ВЫБОР
| КОГДА ДенежныеСредстваВыдано.ВидДвижения = ЗНАЧЕНИЕ(ВидДвиженияНакопления.Приход)
| И ТИПЗНАЧЕНИЯ(ДенежныеСредстваВыдано.Регистратор) В (ТИП(Документ.СписаниеБезналичныхДенежныхСредств), ТИП(Документ.ПодтверждениеЗачисленияЗарплаты)) ТОГДА
| ЕСТЬNULL(ДенежныеСредстваВыдано.СуммаРегл, 0)
| ИНАЧЕ
| 0
| КОНЕЦ) КАК СуммаВыданоКартойРегл
|
|ПОМЕСТИТЬ Выдано
|ИЗ
| АвансовыйОтчетНаПечатьВТ3
|
| ЛЕВОЕ СОЕДИНЕНИЕ
| РегистрНакопления.ДенежныеСредстваУПодотчетныхЛиц КАК ДенежныеСредстваВыдано
| ПО
| ДенежныеСредстваВыдано.Период > АвансовыйОтчетНаПечатьВТ3.ДатаПредыдущийОтчет
| И ДенежныеСредстваВыдано.Период <= АвансовыйОтчетНаПечатьВТ3.ДатаТекущийОтчет
| И ДенежныеСредстваВыдано.Организация = АвансовыйОтчетНаПечатьВТ3.Организация
| И ДенежныеСредстваВыдано.Подразделение = АвансовыйОтчетНаПечатьВТ3.Подразделение
| И ДенежныеСредстваВыдано.ПодотчетноеЛицо = АвансовыйОтчетНаПечатьВТ3.ПодотчетноеЛицо
|
|СГРУППИРОВАТЬ ПО
| АвансовыйОтчетНаПечатьВТ3.Ссылка,
| ДенежныеСредстваВыдано.Валюта,
| ДенежныеСредстваВыдано.ЦельВыдачи
|
|ОБЪЕДИНИТЬ ВСЕ
|
|ВЫБРАТЬ
| АвансовыйОтчетНаПечатьВТ3.Ссылка,
| ДенежныеСредстваВыдано.Валюта,
| ДенежныеСредстваВыдано.ЦельВыдачи,
|
| 0 КАК СуммаВыданоНаличными,
| 0 КАК СуммаВыданоНаличнымиРегл,
| 0 КАК СуммаВозвращено,
| 0 КАК СуммаВозвращеноРегл,
| СУММА(ВЫБОР
| КОГДА ДенежныеСредстваВыдано.ВидДвижения = ЗНАЧЕНИЕ(ВидДвиженияНакопления.Приход)
| И ДенежныеСредстваВыдано.ХозяйственнаяОперация = ЗНАЧЕНИЕ(Перечисление.ХозяйственныеОперации.ПоступлениеДенежныхСредствОтКонвертацииВалюты) ТОГДА
| ЕСТЬNULL(ДенежныеСредстваВыдано.Сумма, 0)
| ИНАЧЕ
| 0
| КОНЕЦ) КАК СуммаКонвертация,
| СУММА(ВЫБОР
| КОГДА ДенежныеСредстваВыдано.ВидДвижения = ЗНАЧЕНИЕ(ВидДвиженияНакопления.Приход)
| И ДенежныеСредстваВыдано.ХозяйственнаяОперация = ЗНАЧЕНИЕ(Перечисление.ХозяйственныеОперации.ПоступлениеДенежныхСредствОтКонвертацииВалюты) ТОГДА
| ЕСТЬNULL(ДенежныеСредстваВыдано.СуммаРегл, 0)
| ИНАЧЕ
| 0
| КОНЕЦ) КАК СуммаКонвертацияРегл,
| 0 КАК СуммаВыданоКартой,
| 0 КАК СуммаВыданоКартойРегл
|ИЗ
| АвансовыйОтчетНаПечатьВТ3
| ЛЕВОЕ СОЕДИНЕНИЕ
| РегистрНакопления.ДенежныеСредстваУПодотчетныхЛиц КАК ДенежныеСредстваВыдано
| ПО
| ДенежныеСредстваВыдано.Регистратор = АвансовыйОтчетНаПечатьВТ3.Ссылка
| И ДенежныеСредстваВыдано.Организация = АвансовыйОтчетНаПечатьВТ3.Организация
| И ДенежныеСредстваВыдано.Подразделение = АвансовыйОтчетНаПечатьВТ3.Подразделение
| И ДенежныеСредстваВыдано.ПодотчетноеЛицо = АвансовыйОтчетНаПечатьВТ3.ПодотчетноеЛицо
|СГРУППИРОВАТЬ ПО
| АвансовыйОтчетНаПечатьВТ3.Ссылка,
| ДенежныеСредстваВыдано.Валюта,
| ДенежныеСредстваВыдано.ЦельВыдачи
|;
|
|
|ВЫБРАТЬ
| Израсходовано.Ссылка КАК Ссылка,
| Израсходовано.Регистратор КАК Регистратор,
| Израсходовано.Валюта КАК Валюта,
| Израсходовано.ЦельВыдачи КАК ЦельВыдачи,
| Израсходовано.Сумма КАК СуммаИзрасходовано,
| Израсходовано.СуммаРегл КАК СуммаИзрасходованоРегл
|ПОМЕСТИТЬ Израсходовано
|ИЗ (
| ВЫБРАТЬ
| АвансовыйОтчетНаПечатьВТ3.Ссылка КАК Ссылка,
| АвансовыйОтчетНаПечатьВТ3.Ссылка КАК Регистратор,
| ДенежныеСредства.Валюта,
| ДенежныеСредства.ЦельВыдачи,
| ЕСТЬNULL(ДенежныеСредства.Сумма, 0) КАК Сумма,
| ЕСТЬNULL(ДенежныеСредства.СуммаРегл, 0) КАК СуммаРегл
| ИЗ
| АвансовыйОтчетНаПечатьВТ3
|
| ВНУТРЕННЕЕ СОЕДИНЕНИЕ
| РегистрНакопления.ДенежныеСредстваУПодотчетныхЛиц КАК ДенежныеСредства
| ПО
| ДенежныеСредства.Регистратор = АвансовыйОтчетНаПечатьВТ3.Ссылка
| И ДенежныеСредства.Организация = АвансовыйОтчетНаПечатьВТ3.Организация
| И ДенежныеСредства.Подразделение = АвансовыйОтчетНаПечатьВТ3.Подразделение
| И ДенежныеСредства.ВидДвижения = ЗНАЧЕНИЕ(ВидДвиженияНакопления.Расход)
|
| ОБЪЕДИНИТЬ ВСЕ
|
| ВЫБРАТЬ
| ДанныеДокумента.АвансовыйОтчет КАК Ссылка,
| ДенежныеСредства.Регистратор КАК Регистратор,
| ДенежныеСредства.Валюта,
| ДенежныеСредства.ЦельВыдачи,
| ДенежныеСредства.СуммаРасход КАК Сумма,
| ДенежныеСредства.СуммаРеглРасход КАК СуммаРегл
| ИЗ
| РегистрНакопления.ДенежныеСредстваУПодотчетныхЛиц.Обороты(,, Регистратор) КАК ДенежныеСредства
| ВНУТРЕННЕЕ СОЕДИНЕНИЕ Документ.ПриобретениеТоваровУслуг КАК ДанныеДокумента
| ПО ДанныеДокумента.Ссылка = ДенежныеСредства.Регистратор
| ГДЕ
| ДанныеДокумента.АвансовыйОтчет В (&МассивДокументов)
|
| ОБЪЕДИНИТЬ ВСЕ
|
| ВЫБРАТЬ
| ДанныеДокумента.АвансовыйОтчет КАК Ссылка,
| ДенежныеСредства.Регистратор КАК Регистратор,
| ДенежныеСредства.Валюта,
| ДенежныеСредства.ЦельВыдачи,
| -ДенежныеСредства.СуммаОборот КАК Сумма,
| -ДенежныеСредства.СуммаРеглОборот КАК СуммаРегл
| ИЗ
| РегистрНакопления.ДенежныеСредстваУПодотчетныхЛиц.Обороты(,, Регистратор) КАК ДенежныеСредства
| ВНУТРЕННЕЕ СОЕДИНЕНИЕ Документ.Бронирование КАК ДанныеДокумента
| ПО ДанныеДокумента.Ссылка = ДенежныеСредства.Регистратор
| ВНУТРЕННЕЕ СОЕДИНЕНИЕ
| АвансовыйОтчетНаПечатьВТ3 КАК АвансовыйОтчетНаПечатьВТ3
| ПО
| ДенежныеСредства.Организация = АвансовыйОтчетНаПечатьВТ3.Организация
| И ДенежныеСредства.Подразделение = АвансовыйОтчетНаПечатьВТ3.Подразделение
| И ДенежныеСредства.ПодотчетноеЛицо = АвансовыйОтчетНаПечатьВТ3.ПодотчетноеЛицо
| ГДЕ
| ДанныеДокумента.АвансовыйОтчет В (&МассивДокументов)
|
| ) КАК Израсходовано
|;
|
|
|ВЫБРАТЬ
| АвансовыйОтчетНаПечатьВТ3.Ссылка,
| ДенежныеСредства.Организация,
| ДенежныеСредства.ПодотчетноеЛицо,
| ДенежныеСредства.ЦельВыдачи,
| ДенежныеСредства.Валюта,
| СУММА(ВЫБОР
| КОГДА ДенежныеСредства.ВидДвижения = ЗНАЧЕНИЕ(ВидДвиженияНакопления.Приход) ТОГДА
| ДенежныеСредства.Сумма
| ИНАЧЕ
| -ДенежныеСредства.Сумма
| КОНЕЦ) КАК СуммаКонечныйОстаток,
| СУММА(ВЫБОР
| КОГДА ДенежныеСредства.ВидДвижения = ЗНАЧЕНИЕ(ВидДвиженияНакопления.Приход) ТОГДА
| ДенежныеСредства.СуммаРегл
| ИНАЧЕ
| -ДенежныеСредства.СуммаРегл
| КОНЕЦ) КАК СуммаРеглКонечныйОстаток,
| СУММА(ВЫБОР КОГДА ДенежныеСредства.Период <= АвансовыйОтчетНаПечатьВТ3.ДатаПредыдущийОтчет
| ИЛИ АвансовыйОтчетНаПечатьВТ3.ДатаПредыдущийОтчет = ДАТАВРЕМЯ(1, 1, 1)
| И ТИПЗНАЧЕНИЯ(ДенежныеСредства.Регистратор) В (&РегистраторыНачальногоОстатка)
| ТОГДА ВЫБОР
| КОГДА ДенежныеСредства.ВидДвижения = ЗНАЧЕНИЕ(ВидДвиженияНакопления.Приход)
| ТОГДА ДенежныеСредства.Сумма
| ИНАЧЕ -ДенежныеСредства.Сумма
| КОНЕЦ
| ИНАЧЕ 0
| КОНЕЦ) КАК СуммаНачальныйОстаток,
| СУММА(ВЫБОР КОГДА ДенежныеСредства.Период <= АвансовыйОтчетНаПечатьВТ3.ДатаПредыдущийОтчет
| ИЛИ АвансовыйОтчетНаПечатьВТ3.ДатаПредыдущийОтчет = ДАТАВРЕМЯ(1, 1, 1)
| И ТИПЗНАЧЕНИЯ(ДенежныеСредства.Регистратор) В (&РегистраторыНачальногоОстатка)
| ТОГДА ВЫБОР
| КОГДА ДенежныеСредства.ВидДвижения = ЗНАЧЕНИЕ(ВидДвиженияНакопления.Приход)
| ТОГДА ДенежныеСредства.СуммаРегл
| ИНАЧЕ -ДенежныеСредства.СуммаРегл
| КОНЕЦ
| ИНАЧЕ 0
| КОНЕЦ) КАК СуммаРеглНачальныйОстаток
|ПОМЕСТИТЬ ОстаткиПредварительные
|ИЗ
| АвансовыйОтчетНаПечатьВТ3
|
| ЛЕВОЕ СОЕДИНЕНИЕ
| РегистрНакопления.ДенежныеСредстваУПодотчетныхЛиц КАК ДенежныеСредства
| ПО
| ДенежныеСредства.Организация = АвансовыйОтчетНаПечатьВТ3.Организация
| И ДенежныеСредства.Подразделение = АвансовыйОтчетНаПечатьВТ3.Подразделение
| И ДенежныеСредства.ПодотчетноеЛицо = АвансовыйОтчетНаПечатьВТ3.ПодотчетноеЛицо
| И (ДенежныеСредства.Период <= АвансовыйОтчетНаПечатьВТ3.ДатаТекущийОтчет
| ИЛИ ДенежныеСредства.Регистратор = АвансовыйОтчетНаПечатьВТ3.Ссылка)
|ГДЕ
| НЕ ДенежныеСредства.Регистратор ССЫЛКА Документ.РасчетКурсовыхРазниц
|СГРУППИРОВАТЬ ПО
| АвансовыйОтчетНаПечатьВТ3.Ссылка,
| ДенежныеСредства.Организация,
| ДенежныеСредства.ПодотчетноеЛицо,
| ДенежныеСредства.ЦельВыдачи,
| ДенежныеСредства.Валюта
|;
|
|
|ВЫБРАТЬ
| Остатки.Ссылка,
| Остатки.Организация,
| Остатки.ПодотчетноеЛицо,
| Остатки.Валюта,
| Остатки.ЦельВыдачи,
| СУММА(ВЫБОР
| КОГДА ЕСТЬNULL(Остатки.СуммаКонечныйОстаток, 0) > 0
| ТОГДА Остатки.СуммаКонечныйОстаток
| ИНАЧЕ 0
| КОНЕЦ) КАК КонечныйОстаток,
| СУММА(ВЫБОР
| КОГДА ЕСТЬNULL(Остатки.СуммаКонечныйОстаток, 0) < 0
| ТОГДА -Остатки.СуммаКонечныйОстаток
| ИНАЧЕ 0
| КОНЕЦ) КАК КонечныйПерерасход,
| СУММА(ВЫБОР
| КОГДА ЕСТЬNULL(Остатки.СуммаРеглКонечныйОстаток, 0) > 0
| ТОГДА Остатки.СуммаРеглКонечныйОстаток
| ИНАЧЕ 0
| КОНЕЦ) КАК КонечныйОстатокРегл,
| СУММА(ВЫБОР
| КОГДА ЕСТЬNULL(Остатки.СуммаРеглКонечныйОстаток, 0) < 0
| ТОГДА -Остатки.СуммаРеглКонечныйОстаток
| ИНАЧЕ 0
| КОНЕЦ) КАК КонечныйПерерасходРегл,
| СУММА(ВЫБОР
| КОГДА ЕСТЬNULL(Остатки.СуммаНачальныйОстаток, 0) > 0
| ТОГДА Остатки.СуммаНачальныйОстаток
| ИНАЧЕ 0
| КОНЕЦ) КАК НачальныйОстаток,
| СУММА(ВЫБОР
| КОГДА ЕСТЬNULL(Остатки.СуммаНачальныйОстаток, 0) < 0
| ТОГДА -Остатки.СуммаНачальныйОстаток
| ИНАЧЕ 0
| КОНЕЦ) КАК НачальныйПерерасход,
| СУММА(ВЫБОР
| КОГДА ЕСТЬNULL(Остатки.СуммаРеглНачальныйОстаток, 0) > 0
| ТОГДА Остатки.СуммаРеглНачальныйОстаток
| ИНАЧЕ 0
| КОНЕЦ) КАК НачальныйОстатокРегл,
| СУММА(ВЫБОР
| КОГДА ЕСТЬNULL(Остатки.СуммаРеглНачальныйОстаток, 0) < 0
| ТОГДА -Остатки.СуммаРеглНачальныйОстаток
| ИНАЧЕ 0
| КОНЕЦ) КАК НачальныйПерерасходРегл
|ПОМЕСТИТЬ ТекущийАвансВрем
|ИЗ
| ОстаткиПредварительные КАК Остатки
|СГРУППИРОВАТЬ ПО
| Остатки.Ссылка,
| Остатки.Организация,
| Остатки.ПодотчетноеЛицо,
| Остатки.ЦельВыдачи,
| Остатки.Валюта
|;
|
|
|ВЫБРАТЬ
| ТекущийАвансВрем.Ссылка,
| ТекущийАвансВрем.Валюта,
| ТекущийАвансВрем.ЦельВыдачи,
| СУММА(ТекущийАвансВрем.КонечныйОстаток),
| СУММА(ТекущийАвансВрем.КонечныйПерерасход),
| СУММА(ТекущийАвансВрем.КонечныйОстатокРегл),
| СУММА(ТекущийАвансВрем.КонечныйПерерасходРегл),
| СУММА(ТекущийАвансВрем.НачальныйОстаток),
| СУММА(ТекущийАвансВрем.НачальныйПерерасход),
| СУММА(ТекущийАвансВрем.НачальныйОстатокРегл),
| СУММА(ТекущийАвансВрем.НачальныйПерерасходРегл)
|ПОМЕСТИТЬ Остатки
|ИЗ
| ТекущийАвансВрем
|СГРУППИРОВАТЬ ПО
| ТекущийАвансВрем.Ссылка,
| ТекущийАвансВрем.Валюта,
| ТекущийАвансВрем.ЦельВыдачи
|ИМЕЮЩИЕ
| СУММА(ТекущийАвансВрем.КонечныйОстаток) <> 0
| ИЛИ СУММА(ТекущийАвансВрем.КонечныйПерерасход) <> 0
| ИЛИ СУММА(ТекущийАвансВрем.НачальныйОстаток) <> 0
| ИЛИ СУММА(ТекущийАвансВрем.НачальныйПерерасход) <> 0
|;
|
|
|ВЫБРАТЬ
| ДанныеШапки.Ссылка КАК Ссылка,
| ДанныеШапки.Ссылка.Организация.ВалютаРегламентированногоУчета КАК ВалютаРегламентированногоУчета,
| ДанныеШапки.Валюта КАК Валюта,
| ДанныеШапки.ЦельВыдачи КАК ЦельВыдачи,
| СУММА(ДанныеШапки.СуммаВыданоНаличными) КАК СуммаВыданоНаличными,
| СУММА(ДанныеШапки.СуммаВыданоКартой) КАК СуммаВыданоКартой,
| СУММА(ДанныеШапки.СуммаВозвращено) КАК СуммаВозвращено,
| СУММА(ДанныеШапки.КонечныйОстаток) КАК КонечныйОстаток,
| СУММА(ДанныеШапки.КонечныйПерерасход) КАК КонечныйПерерасход,
| СУММА(ДанныеШапки.СуммаИзрасходовано) КАК СуммаИзрасходовано,
| СУММА(ДанныеШапки.НачальныйОстаток) КАК НачальныйОстаток,
| СУММА(ДанныеШапки.НачальныйПерерасход) КАК НачальныйПерерасход,
| СУММА(ДанныеШапки.СуммаВыданоНаличнымиРегл) КАК СуммаВыданоНаличнымиРегл,
| СУММА(ДанныеШапки.СуммаВыданоКартойРегл) КАК СуммаВыданоКартойРегл,
| СУММА(ДанныеШапки.СуммаВозвращеноРегл) КАК СуммаВозвращеноРегл,
| СУММА(ДанныеШапки.КонечныйОстатокРегл) КАК КонечныйОстатокРегл,
| СУММА(ДанныеШапки.КонечныйПерерасходРегл) КАК КонечныйПерерасходРегл,
| СУММА(ДанныеШапки.СуммаИзрасходованоРегл) КАК СуммаИзрасходованоРегл,
| СУММА(ДанныеШапки.НачальныйОстатокРегл) КАК НачальныйОстатокРегл,
| СУММА(ДанныеШапки.НачальныйПерерасходРегл) КАК НачальныйПерерасходРегл
|ПОМЕСТИТЬ ИмяВТ
|ИЗ
|(ВЫБРАТЬ
| Выдано.Ссылка КАК Ссылка,
| Выдано.Валюта КАК Валюта,
| Выдано.ЦельВыдачи КАК ЦельВыдачи,
| 0 КАК НачальныйОстаток,
| 0 КАК НачальныйПерерасход,
| Выдано.СуммаВыданоНаличными КАК СуммаВыданоНаличными,
| Выдано.СуммаВыданоКартой КАК СуммаВыданоКартой,
| Выдано.СуммаКонвертация КАК СуммаКонвертация,
| Выдано.СуммаВозвращено КАК СуммаВозвращено,
| 0 КАК КонечныйОстаток,
| 0 КАК КонечныйПерерасход,
| 0 КАК СуммаИзрасходовано,
| 0 КАК НачальныйОстатокРегл,
| 0 КАК НачальныйПерерасходРегл,
| Выдано.СуммаВыданоНаличнымиРегл КАК СуммаВыданоНаличнымиРегл,
| Выдано.СуммаВыданоКартойРегл КАК СуммаВыданоКартойРегл,
| Выдано.СуммаКонвертацияРегл КАК СуммаКонвертацияРегл,
| Выдано.СуммаВозвращеноРегл КАК СуммаВозвращеноРегл,
| 0 КАК КонечныйОстатокРегл,
| 0 КАК КонечныйПерерасходРегл,
| 0 КАК СуммаИзрасходованоРегл
|ИЗ
| Выдано
|ГДЕ
| Выдано.СуммаВыданоНаличными <> 0 ИЛИ Выдано.СуммаВыданоКартой <> 0 ИЛИ Выдано.СуммаКонвертация <> 0 ИЛИ Выдано.СуммаВозвращено <> 0
|
|ОБЪЕДИНИТЬ ВСЕ
|
|ВЫБРАТЬ
| Остатки.Ссылка,
| Остатки.Валюта,
| Остатки.ЦельВыдачи КАК ЦельВыдачи,
| Остатки.НачальныйОстаток КАК НачальныйОстаток,
| Остатки.НачальныйПерерасход КАК НачальныйПерерасход,
| 0 КАК СуммаВыданоНаличными,
| 0 КАК СуммаВыданоКартой,
| 0 КАК СуммаКонвертация,
| 0 КАК СуммаВозвращено,
| Остатки.КонечныйОстаток КАК КонечныйОстаток,
| Остатки.КонечныйПерерасход КАК КонечныйПерерасход,
| 0 КАК СуммаИзрасходовано,
| Остатки.НачальныйОстатокРегл КАК НачальныйОстатокРегл,
| Остатки.НачальныйПерерасходРегл КАК НачальныйПерерасходРегл,
| 0 КАК СуммаВыданоНаличнымиРегл,
| 0 КАК СуммаВыданоКартойРегл,
| 0 КАК СуммаКонвертацияРегл,
| 0 КАК СуммаВозвращеноРегл,
| Остатки.КонечныйОстатокРегл КАК КонечныйОстатокРегл,
| Остатки.КонечныйПерерасходРегл КАК КонечныйПерерасходРегл,
| 0 СуммаИзрасходованоРегл
|ИЗ
| Остатки
|
|ОБЪЕДИНИТЬ ВСЕ
|
|ВЫБРАТЬ
| Израсходовано.Ссылка КАК Ссылка,
| Израсходовано.Валюта КАК Валюта,
| Израсходовано.ЦельВыдачи КАК ЦельВыдачи,
| 0 КАК НачальныйОстаток,
| 0 КАК НачальныйПерерасход,
| 0 КАК СуммаВыданоНаличными,
| 0 КАК СуммаВыданоКартой,
| 0 КАК СуммаКонвертация,
| 0 КАК СуммаВозвращено,
| 0 КАК КонечныйОстаток,
| 0 КАК КонечныйПерерасход,
| Израсходовано.СуммаИзрасходовано КАК СуммаИзрасходовано,
| 0 КАК НачальныйОстатокРегл,
| 0 КАК НачальныйПерерасходРегл,
| 0 КАК СуммаВыданоНаличнымиРегл,
| 0 КАК СуммаВыданоКартойРегл,
| 0 КАК СуммаКонвертацияРегл,
| 0 КАК СуммаВозвращеноРегл,
| 0 КАК КонечныйОстатокРегл,
| 0 КАК КонечныйПерерасходРегл,
| Израсходовано.СуммаИзрасходованоРегл СуммаИзрасходованоРегл
|ИЗ
| Израсходовано) КАК ДанныеШапки
|СГРУППИРОВАТЬ ПО
| ДанныеШапки.Ссылка,
| ДанныеШапки.Валюта,
| ДанныеШапки.ЦельВыдачи
|
|;
|
Если ИмяВт = "" Тогда
ТекстЗапроса = СтрЗаменить(ТекстЗапроса,"ПОМЕСТИТЬ ИмяВТ","");
Иначе
ТекстЗапроса = СтрЗаменить(ТекстЗапроса,"ПОМЕСТИТЬ ИмяВТ",СтрШаблон("ПОМЕСТИТЬ %1",ИмяВт));
КонецЕсли;
Возврат ТекстЗапроса
КонецФункции
#КонецОбласти
#Область СлужебныеПроцедурыИФункции
#Область Проведение
Функция ДополнительныеИсточникиДанныхДляДвижений(ИмяРегистра) Экспорт
ИсточникиДанных = Новый Соответствие;
Возврат ИсточникиДанных;
КонецФункции
Функция АдаптированныйТекстЗапросаДвиженийПоРегистру(ИмяРегистра) Экспорт
Запрос = Новый Запрос;
ТекстыЗапроса = Новый СписокЗначений;
ТекстыЗапросаВременныхТаблиц = Новый Соответствие;
ПолноеИмяДокумента = "Документ.АвансовыйОтчет";
ПереопределениеРасчетаПараметров = Новый Структура;
ПереопределениеРасчетаПараметров.Вставить("Период",
" ВЫБОР
| КОГДА НАЧАЛОПЕРИОДА(ДанныеДокумента.Дата, ДЕНЬ) = ДанныеДокумента.ДатаУтверждения ТОГДА
| ДанныеДокумента.Дата
| ИНАЧЕ
| ДанныеДокумента.ДатаУтверждения
| КОНЕЦ");
Если ИмяРегистра = "РеестрДокументов" Тогда
ТекстЗапроса = ТекстЗапросаТаблицаРеестрДокументов(Запрос, ТекстыЗапроса, ИмяРегистра);
СинонимТаблицыДокумента = "ДанныеДокумента";
ТекстыЗапросаВременныхТаблиц.Вставить(
"ИзрасходованоВСвязанныхДокументах",
ТекстЗапросаВременнаяТаблицаИзрасходованоВСвязанныхДокументах(Запрос, ТекстыЗапроса));
Иначе
ТекстИсключения = НСтр("ru = 'В документе %ПолноеИмяДокумента% не реализована адаптация текста запроса формирования движений по регистру %ИмяРегистра%.'");
ТекстИсключения = СтрЗаменить(ТекстИсключения, "%ПолноеИмяДокумента%", ПолноеИмяДокумента);
ТекстИсключения = СтрЗаменить(ТекстИсключения, "%ИмяРегистра%", ИмяРегистра);
ВызватьИсключение ТекстИсключения;
КонецЕсли;
Если ИмяРегистра = "РеестрДокументов" Тогда
ТекстЗапроса = ОбновлениеИнформационнойБазыУТ.АдаптироватьЗапросПроведенияПоНезависимомуРегистру(
ТекстЗапроса,
ПолноеИмяДокумента,
СинонимТаблицыДокумента,
Истина,
ПереопределениеРасчетаПараметров,
ТекстыЗапросаВременныхТаблиц);
Иначе
ТекстЗапроса = ОбновлениеИнформационнойБазыУТ.АдаптироватьЗапросМеханизмаПроведения(
ТекстЗапроса,
ПолноеИмяДокумента,
СинонимТаблицыДокумента,
ПереопределениеРасчетаПараметров);
КонецЕсли;
Результат = ОбновлениеИнформационнойБазыУТ.РезультатАдаптацииЗапроса();
Результат.ЗначенияПараметров = ЗначенияПараметровПроведения();
Результат.ТекстЗапроса = ТекстЗапроса;
Возврат Результат;
КонецФункции
Процедура ЗаполнитьПараметрыИнициализации(Запрос, ДокументСсылка)
Запрос.МенеджерВременныхТаблиц = Новый МенеджерВременныхТаблиц;
Запрос.УстановитьПараметр("Ссылка", ДокументСсылка);
Запрос.Текст =
"ВЫБРАТЬ
| ДанныеДокумента.Ссылка КАК Ссылка,
| ВЫБОР
| КОГДА НАЧАЛОПЕРИОДА(ДанныеДокумента.Дата, ДЕНЬ) = ДанныеДокумента.ДатаУтверждения ТОГДА
| ДанныеДокумента.Дата
| ИНАЧЕ
| ДанныеДокумента.ДатаУтверждения
| КОНЕЦ КАК Период,
| ДанныеДокумента.Дата КАК ДатаДокумента,
| ДанныеДокумента.Номер КАК Номер,
| ДанныеДокумента.Валюта КАК Валюта,
| ДанныеДокумента.Мультивалютный КАК Мультивалютный,
| ДанныеДокумента.Организация КАК Организация,
| ДанныеДокумента.ПодотчетноеЛицо КАК ПодотчетноеЛицо,
| ДанныеДокумента.Подразделение КАК Подразделение,
| ДанныеДокумента.НаправлениеДеятельности КАК НаправлениеДеятельности,
| ДанныеДокумента.ЗакупкаПодДеятельность КАК ЗакупкаПодДеятельность,
| ДанныеДокумента.Автор КАК Автор,
| ДанныеДокумента.Комментарий КАК Комментарий,
| ДанныеДокумента.СуммаИзрасходовано КАК СуммаИзрасходовано,
| ДанныеДокумента.Статус КАК Статус,
| ДанныеДокумента.ПометкаУдаления КАК ПометкаУдаления,
| ДанныеДокумента.Проведен КАК Проведен,
| ДанныеДокумента.Организация.ВалютаРегламентированногоУчета КАК ВалютаРегламентированногоУчета
|ИЗ
| Документ.АвансовыйОтчет КАК ДанныеДокумента
|
|ГДЕ
| ДанныеДокумента.Ссылка = &Ссылка
|";
Результат = Запрос.Выполнить();
Реквизиты = Результат.Выбрать();
Реквизиты.Следующий();
Для Каждого Колонка Из Результат.Колонки Цикл
Запрос.УстановитьПараметр(Колонка.Имя, Реквизиты[Колонка.Имя]);
КонецЦикла;
Для каждого КлючИЗначение Из ЗначенияПараметровПроведения(Реквизиты) Цикл
Запрос.УстановитьПараметр(КлючИЗначение.Ключ, КлючИЗначение.Значение);
КонецЦикла;
Запрос.УстановитьПараметр("ДатаОстатков", ?(Запрос.Параметры.Период = Запрос.Параметры.ДатаДокумента,
Новый Граница(ДокументСсылка.МоментВремени(), ВидГраницы.Исключая),
Новый Граница(Запрос.Параметры.Период, ВидГраницы.Исключая)));
РасчетСебестоимостиПрикладныеАлгоритмы.ЗаполнитьПараметрыИнициализации(Запрос, Реквизиты);
КонецПроцедуры
Функция ЗначенияПараметровПроведения(Реквизиты = Неопределено)
Значения = Новый Структура;
Значения.Вставить("ИдентификаторМетаданных", ОбщегоНазначения.ИдентификаторОбъектаМетаданных("Документ.АвансовыйОтчет"));
Значения.Вставить("ХозяйственнаяОперация", Перечисления.ХозяйственныеОперации.ПрочиеРасходыПодотчетногоЛица);
Значения.Вставить("ВалютаУправленческогоУчета", Константы.ВалютаУправленческогоУчета.Получить());
Значения.Вставить("ИспользоватьУчетПрочихДоходовРасходов", ПолучитьФункциональнуюОпцию("ИспользоватьУчетПрочихДоходовРасходов"));
Значения.Вставить("КонтролироватьВыдачуПодОтчетВРазрезеЦелей", ПолучитьФункциональнуюОпцию("КонтролироватьВыдачуПодОтчетВРазрезеЦелей"));
Если Реквизиты <> Неопределено Тогда
Коэффициенты = РаботаСКурсамивалютУТ.ПолучитьКоэффициентыПересчетаВалюты(
Реквизиты.Валюта, Неопределено, Реквизиты.Период, Реквизиты.Организация);
Значения.Вставить("КоэффициентПересчетаВВалютуУпр", Коэффициенты.КоэффициентПересчетаВВалютуУпр);
Значения.Вставить("КоэффициентПересчетаВВалютуРегл", Коэффициенты.КоэффициентПересчетаВВалютуРегл);
Значения.Вставить("НомерНаПечать", ПрефиксацияОбъектовКлиентСервер.НомерНаПечать(Реквизиты.Номер));
КонецЕсли;
Возврат Значения;
КонецФункции
Процедура ИнициализироватьКлючиАналитикиУчетаПоПартнерам(Запрос)
Если Запрос.Параметры.Свойство("КлючиАналитикиУчетаПоПартнерамИнициализированы") Тогда
Возврат;
КонецЕсли;
ЗапросАналитик = Новый Запрос("
|ВЫБРАТЬ РАЗЛИЧНЫЕ
| ТаблицаОплата.ОбъектРасчетов КАК ОбъектРасчетов,
| ТаблицаОплата.Поставщик КАК Партнер,
| ТаблицаОплата.Контрагент КАК Контрагент,
| ТаблицаОплата.ОбъектРасчетов.Организация КАК Организация,
| ТаблицаОплата.ОбъектРасчетов.Договор КАК Договор,
| ТаблицаОплата.ОбъектРасчетов.Подразделение КАК Подразделение,
| ТаблицаОплата.ОбъектРасчетов.НаправлениеДеятельности КАК НаправлениеДеятельности
|
|ПОМЕСТИТЬ ТаблицаОбъектовРасчетов
|ИЗ
| Документ.АвансовыйОтчет.ОплатаПоставщикам КАК ТаблицаОплата
|
|ГДЕ
| ТаблицаОплата.Ссылка = &Ссылка
|
|ИНДЕКСИРОВАТЬ ПО
| ОбъектРасчетов
|;
|
|ВЫБРАТЬ РАЗЛИЧНЫЕ
| &Организация КАК Организация,
| ТаблицаОбъектовРасчетов.Контрагент КАК Контрагент,
| ТаблицаОбъектовРасчетов.Партнер КАК Партнер,
| ТаблицаОбъектовРасчетов.Договор КАК Договор,
| ТаблицаОбъектовРасчетов.НаправлениеДеятельности КАК НаправлениеДеятельности
|ИЗ
| ТаблицаОбъектовРасчетов КАК ТаблицаОбъектовРасчетов
|
| ЛЕВОЕ СОЕДИНЕНИЕ
| РегистрСведений.АналитикаУчетаПоПартнерам КАК Аналитика
| ПО
| &Организация = Аналитика.Организация
| И ТаблицаОбъектовРасчетов.Контрагент = Аналитика.Контрагент
| И ТаблицаОбъектовРасчетов.Партнер = Аналитика.Партнер
| И ТаблицаОбъектовРасчетов.Договор = Аналитика.Договор
| И ТаблицаОбъектовРасчетов.НаправлениеДеятельности = Аналитика.НаправлениеДеятельности
|ГДЕ
| Аналитика.КлючАналитики ЕСТЬ NULL
|");
ЗапросАналитик.МенеджерВременныхТаблиц = Запрос.МенеджерВременныхТаблиц;
ЗапросАналитик.УстановитьПараметр("Ссылка", Запрос.Параметры.Ссылка);
ЗапросАналитик.УстановитьПараметр("Организация", Запрос.Параметры.Организация);
ЗапросАналитик.УстановитьПараметр("ПустойДоговор", Справочники.ДоговорыКонтрагентов.ПустаяСсылка());
Выборка = ЗапросАналитик.Выполнить().Выбрать();
Пока Выборка.Следующий() Цикл
РегистрыСведений.АналитикаУчетаПоПартнерам.СоздатьКлючАналитики(Выборка);
КонецЦикла;
Запрос.УстановитьПараметр("КлючиАналитикиУчетаПоПартнерамИнициализированы", Истина);
КонецПроцедуры
Функция ТекстЗапросаВременнаяТаблицаРасшифровкаПлатежа(Запрос, ТекстыЗапроса)
ИнициализироватьКлючиАналитикиУчетаПоПартнерам(Запрос);
ИмяРегистра = "ТаблицаОплатаПоставщикам";
ТекстЗапроса = "
|ВЫБРАТЬ
| ТаблицаОплатаПоставщикам.НомерСтроки КАК НомерСтроки,
| ТаблицаОплатаПоставщикам.ОбъектРасчетов КАК ОбъектРасчетов,
| ТаблицаОбъектовРасчетов.Организация КАК ОбъектРасчетовОрганизация,
| ТаблицаОбъектовРасчетов.Партнер КАК ОбъектРасчетовПартнер,
| ТаблицаОбъектовРасчетов.Контрагент КАК ОбъектРасчетовКонтрагент,
| ТаблицаОбъектовРасчетов.Договор КАК ОбъектРасчетовДоговор,
| ТаблицаОбъектовРасчетов.Подразделение КАК ОбъектРасчетовПодразделение,
| ТаблицаОбъектовРасчетов.НаправлениеДеятельности КАК ОбъектРасчетовНаправлениеДеятельности,
|
| ТаблицаОплатаПоставщикам.Сумма КАК Сумма,
| ТаблицаОплатаПоставщикам.Валюта КАК Валюта,
| ТаблицаОплатаПоставщикам.СуммаВзаиморасчетов,
| ТаблицаОплатаПоставщикам.ВалютаВзаиморасчетов,
|
| Аналитика.КлючАналитики КАК АналитикаУчетаПоПартнерам,
| ТаблицаОплатаПоставщикам.ИдентификаторСтроки КАК ИдентификаторСтроки
|
|ПОМЕСТИТЬ ТаблицаОплатаПоставщикам
|ИЗ
| Документ.АвансовыйОтчет.ОплатаПоставщикам КАК ТаблицаОплатаПоставщикам
|
| ВНУТРЕННЕЕ СОЕДИНЕНИЕ
| ТаблицаОбъектовРасчетов КАК ТаблицаОбъектовРасчетов
| ПО
| ТаблицаОплатаПоставщикам.ОбъектРасчетов = ТаблицаОбъектовРасчетов.ОбъектРасчетов
| И ТаблицаОплатаПоставщикам.Контрагент = ТаблицаОбъектовРасчетов.Контрагент
| И ТаблицаОплатаПоставщикам.Поставщик = ТаблицаОбъектовРасчетов.Партнер
|
| ЛЕВОЕ СОЕДИНЕНИЕ
| РегистрСведений.АналитикаУчетаПоПартнерам КАК Аналитика
| ПО
| &Организация = Аналитика.Организация
| И ТаблицаОбъектовРасчетов.Контрагент = Аналитика.Контрагент
| И ТаблицаОбъектовРасчетов.Партнер = Аналитика.Партнер
| И ТаблицаОбъектовРасчетов.Договор = Аналитика.Договор
| И ТаблицаОбъектовРасчетов.НаправлениеДеятельности = Аналитика.НаправлениеДеятельности
|ГДЕ
| ТаблицаОплатаПоставщикам.Ссылка = &Ссылка
| И ТаблицаОплатаПоставщикам.Ссылка.Статус = ЗНАЧЕНИЕ(Перечисление.СтатусыАвансовогоОтчета.Утвержден)";
ТекстыЗапроса.Добавить(ТекстЗапроса, ИмяРегистра);
Возврат ТекстЗапроса;
КонецФункции
Функция ТекстЗапросаВТКурсыВалютУпр(Запрос, ТекстыЗапроса)
ИмяРегистра = "ВТКурсыВалютУпр";
ТекстЗапроса =
"ВЫБРАТЬ
| КурсВалюты.Валюта КАК Валюта,
| КурсВалюты.КурсЧислитель * КурсВалютыУпр.КурсЗнаменатель / (КурсВалюты.КурсЗнаменатель * КурсВалютыУпр.КурсЧислитель) КАК КоэффициентПересчета
|ПОМЕСТИТЬ ВТКурсыВалютУпр
|ИЗ РегистрСведений.ОтносительныеКурсыВалют.СрезПоследних(&Период, БазоваяВалюта = &ВалютаРегламентированногоУчета) КАК КурсВалюты
| ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрСведений.ОтносительныеКурсыВалют.СрезПоследних(
| &Период,
| Валюта = &ВалютаУправленческогоУчета И БазоваяВалюта = &ВалютаРегламентированногоУчета) КАК КурсВалютыУпр
| ПО (ИСТИНА)
|ГДЕ
| КурсВалюты.КурсЗнаменатель <> 0
| И КурсВалютыУпр.КурсЧислитель <> 0";
ТекстыЗапроса.Добавить(ТекстЗапроса, ИмяРегистра);
Возврат ТекстЗапроса;
КонецФункции
Функция ТекстЗапросаВТКурсыВалютРегл(Запрос, ТекстыЗапроса)
ИмяРегистра = "ВТКурсыВалютРегл";
ТекстЗапроса =
"ВЫБРАТЬ
| КурсВалюты.Валюта КАК Валюта,
| КурсВалюты.КурсЧислитель * КурсВалютыРегл.КурсЗнаменатель / (КурсВалюты.КурсЗнаменатель * КурсВалютыРегл.КурсЧислитель) КАК КоэффициентПересчета
|ПОМЕСТИТЬ ВТКурсыВалютРегл
|ИЗ РегистрСведений.ОтносительныеКурсыВалют.СрезПоследних(&Период, БазоваяВалюта = &ВалютаРегламентированногоУчета) КАК КурсВалюты
| ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрСведений.ОтносительныеКурсыВалют.СрезПоследних(
| &Период,
| Валюта = &ВалютаРегламентированногоУчета И БазоваяВалюта = &ВалютаРегламентированногоУчета) КАК КурсВалютыРегл
| ПО (ИСТИНА)
|ГДЕ
| КурсВалюты.КурсЗнаменатель <> 0
| И КурсВалютыРегл.КурсЧислитель <> 0";
ТекстыЗапроса.Добавить(ТекстЗапроса, ИмяРегистра);
Возврат ТекстЗапроса;
КонецФункции
Функция ТекстЗапросаВТКурсыВалютСтрокОтчета(Запрос, ТекстыЗапроса)
ИмяРегистра = "ВТКурсыВалютСтрокОтчета";
ТекстыЗапросовПоКоэффициентамПересчета = Новый СписокЗначений;
ТекстЗапросаВТКурсыВалютУпр(Запрос, ТекстыЗапросовПоКоэффициентамПересчета);
ТекстЗапросаВТКурсыВалютРегл(Запрос, ТекстыЗапросовПоКоэффициентамПересчета);
Если Не ПроведениеДокументов.ЕстьТаблицаЗапроса("ВТКурсыВалютУпр", ТекстыЗапроса) Тогда
Для Каждого ЭлементСписка Из ТекстыЗапросовПоКоэффициентамПересчета Цикл
ТекстыЗапроса.Добавить(ЭлементСписка.Значение, ЭлементСписка.Представление);
КонецЦикла;
КонецЕсли;
Если Не ПроведениеДокументов.ЕстьТаблицаЗапроса("ВТКурсыВалютРегл", ТекстыЗапроса) Тогда
Для Каждого ЭлементСписка Из ТекстыЗапросовПоКоэффициентамПересчета Цикл
ТекстыЗапроса.Добавить(ЭлементСписка.Значение, ЭлементСписка.Представление);
КонецЦикла;
КонецЕсли;
ИсключаяТаблицы = Новый Массив;
Для Каждого ВременнаяТаблица Из Запрос.МенеджерВременныхТаблиц.Таблицы Цикл
ИсключаяТаблицы.Добавить(ВременнаяТаблица.ПолноеИмя);
КонецЦикла;
Запрос.Текст = "
|ВЫБРАТЬ
| ДенежныеСредства.СуммаОстаток КАК Получено,
| ДенежныеСредства.СуммаУпрОстаток КАК СуммаУпрОстаток,
| ДенежныеСредства.СуммаРеглОстаток КАК СуммаРеглОстаток,
| ДенежныеСредства.ЦельВыдачи КАК ЦельВыдачи,
| ДенежныеСредства.Валюта КАК Валюта
|ИЗ
| РегистрНакопления.ДенежныеСредстваУПодотчетныхЛиц.Остатки(
| &ДатаОстатков,
| Организация = &Организация
| И Подразделение = &Подразделение
| И ПодотчетноеЛицо = &ПодотчетноеЛицо
| И (Валюта = &Валюта
| ИЛИ &Мультивалютный)) КАК ДенежныеСредства
|ГДЕ
| ДенежныеСредства.СуммаОстаток > 0
| И &КонтролироватьВыдачуПодОтчетВРазрезеЦелей
|
|ОБЪЕДИНИТЬ ВСЕ
|
|ВЫБРАТЬ
| ДенежныеСредства.СуммаОстаток,
| ДенежныеСредства.СуммаУпрОстаток,
| ДенежныеСредства.СуммаРеглОстаток,
| НЕОПРЕДЕЛЕНО КАК ЦельВыдачи,
| ДенежныеСредства.Валюта КАК Валюта
|ИЗ
| РегистрНакопления.ДенежныеСредстваУПодотчетныхЛиц.Остатки(
| &ДатаОстатков,
| Организация = &Организация
| И Подразделение = &Подразделение
| И ПодотчетноеЛицо = &ПодотчетноеЛицо
| И (Валюта = &Валюта
| ИЛИ &Мультивалютный)) КАК ДенежныеСредства
|ГДЕ
| ДенежныеСредства.СуммаОстаток > 0
| И НЕ &КонтролироватьВыдачуПодОтчетВРазрезеЦелей
|";
Результат = Запрос.Выполнить();
КурсыВалютАвансов = Новый ТаблицаЗначений;
Для Каждого Колонка Из Результат.Колонки Цикл
КурсыВалютАвансов.Колонки.Добавить(Колонка.Имя, Колонка.ТипЗначения);
КонецЦикла;
КурсыВалютАвансов.Колонки.Добавить("КоэффициентПересчетаУпр", Новый ОписаниеТипов("Число"));
КурсыВалютАвансов.Колонки.Добавить("КоэффициентПересчетаРегл", Новый ОписаниеТипов("Число"));
Выборка = Результат.Выбрать();
Пока Выборка.Следующий() Цикл
НоваяСтрока = КурсыВалютАвансов.Добавить();
ЗаполнитьЗначенияСвойств(НоваяСтрока, Выборка);
НоваяСтрока.КоэффициентПересчетаУпр = НоваяСтрока.СуммаУпрОстаток / НоваяСтрока.Получено;
НоваяСтрока.КоэффициентПересчетаРегл = НоваяСтрока.СуммаРеглОстаток / НоваяСтрока.Получено;
КонецЦикла;
ВременныеТаблицы = Новый Массив;
ВременныеТаблицы = ТекстыЗапросовПоКоэффициентамПересчета.ВыгрузитьЗначения();
ТекстЗапросаВременныхТаблиц = "
|ВЫБРАТЬ
| ПрочиеРасходы.Валюта КАК Валюта,
| ПрочиеРасходы.СтатьяДвиженияДенежныхСредств КАК СтатьяДвиженияДенежныхСредств,
| ПрочиеРасходы.ИдентификаторСтроки КАК ИдентификаторСтроки,
| ПрочиеРасходы.СуммаСНДС КАК Сумма,
| ПрочиеРасходы.СуммаИтог КАК СуммаИтог
|ПОМЕСТИТЬ СтрокиОтчета
|ИЗ
| Документ.АвансовыйОтчет.ПрочиеРасходы КАК ПрочиеРасходы
|ГДЕ
| ПрочиеРасходы.Ссылка = &Ссылка
| И НЕ ПрочиеРасходы.Отменено
| И ПрочиеРасходы.Ссылка.Статус = ЗНАЧЕНИЕ(Перечисление.СтатусыАвансовогоОтчета.Утвержден)
|
|ОБЪЕДИНИТЬ ВСЕ
|
|ВЫБРАТЬ
| ОплатаПоставщикам.Валюта КАК Валюта,
| ОплатаПоставщикам.СтатьяДвиженияДенежныхСредств КАК СтатьяДвиженияДенежныхСредств,
| ОплатаПоставщикам.ИдентификаторСтроки КАК ИдентификаторСтроки,
| ОплатаПоставщикам.Сумма КАК Сумма,
| ОплатаПоставщикам.СуммаИтог КАК СуммаИтог
|ИЗ
| Документ.АвансовыйОтчет.ОплатаПоставщикам КАК ОплатаПоставщикам
|ГДЕ
| ОплатаПоставщикам.Ссылка = &Ссылка
| И ОплатаПоставщикам.Ссылка.Статус = ЗНАЧЕНИЕ(Перечисление.СтатусыАвансовогоОтчета.Утвержден)
|
|ОБЪЕДИНИТЬ ВСЕ
|
|ВЫБРАТЬ
| КонвертацияВалюты.Валюта КАК Валюта,
| КонвертацияВалюты.СтатьяДвиженияДенежныхСредств КАК СтатьяДвиженияДенежныхСредств,
| КонвертацияВалюты.ИдентификаторСтроки КАК ИдентификаторСтроки,
| КонвертацияВалюты.Сумма КАК Сумма,
| КонвертацияВалюты.СуммаИтог КАК СуммаИтог
|ИЗ
| Документ.АвансовыйОтчет.КонвертацияВалюты КАК КонвертацияВалюты
|ГДЕ
| КонвертацияВалюты.Ссылка = &Ссылка
| И КонвертацияВалюты.Ссылка.Статус = ЗНАЧЕНИЕ(Перечисление.СтатусыАвансовогоОтчета.Утвержден)
|;
|ВЫБРАТЬ
| ТаблицаДанных.*
|ПОМЕСТИТЬ КурсыВалютАвансов
|ИЗ
| &КурсыВалютАвансов КАК ТаблицаДанных
|";
ВременныеТаблицы.Добавить(ТекстЗапросаВременныхТаблиц);
Запрос.Текст = СтрСоединить(ВременныеТаблицы, ";");
Запрос.УстановитьПараметр("КурсыВалютАвансов", КурсыВалютАвансов);
Результат = Запрос.Выполнить();
Запрос.Текст = "
|ВЫБРАТЬ
| СтрокиОтчета.ИдентификаторСтроки КАК ИдентификаторСтроки,
| СтрокиОтчета.Валюта КАК Валюта,
| СтрокиОтчета.Сумма + КурсыВалютАвансов.Получено - СтрокиОтчета.СуммаИтог КАК Сумма,
| КурсыВалютАвансов.КоэффициентПересчетаУпр КАК КоэффициентПересчетаУпр,
| КурсыВалютАвансов.КоэффициентПересчетаРегл КАК КоэффициентПересчетаРегл
|ИЗ
| СтрокиОтчета КАК СтрокиОтчета
|
| ЛЕВОЕ СОЕДИНЕНИЕ КурсыВалютАвансов КАК КурсыВалютАвансов
| ПО КурсыВалютАвансов.Валюта = СтрокиОтчета.Валюта
| И (КурсыВалютАвансов.ЦельВыдачи = СтрокиОтчета.СтатьяДвиженияДенежныхСредств
| ИЛИ НЕ &КонтролироватьВыдачуПодОтчетВРазрезеЦелей)
|ГДЕ
| СтрокиОтчета.СуммаИтог - СтрокиОтчета.Сумма < ЕСТЬNULL(КурсыВалютАвансов.Получено, 0)
| И СтрокиОтчета.СуммаИтог > ЕСТЬNULL(КурсыВалютАвансов.Получено, 0)
|
| ОБЪЕДИНИТЬ ВСЕ
|
|ВЫБРАТЬ
| СтрокиОтчета.ИдентификаторСтроки КАК ИдентификаторСтроки,
| СтрокиОтчета.Валюта КАК Валюта,
| СтрокиОтчета.СуммаИтог - КурсыВалютАвансов.Получено КАК Сумма,
| ТаблицаКурсыВалютУпр.КоэффициентПересчета КАК КоэффициентПересчетаУпр,
| ТаблицаКурсыВалютРегл.КоэффициентПересчета КАК КоэффициентПересчетаРегл
|ИЗ
| СтрокиОтчета КАК СтрокиОтчета
|
| ЛЕВОЕ СОЕДИНЕНИЕ КурсыВалютАвансов КАК КурсыВалютАвансов
| ПО КурсыВалютАвансов.Валюта = СтрокиОтчета.Валюта
| И (КурсыВалютАвансов.ЦельВыдачи = СтрокиОтчета.СтатьяДвиженияДенежныхСредств
| ИЛИ НЕ &КонтролироватьВыдачуПодОтчетВРазрезеЦелей)
|
| ЛЕВОЕ СОЕДИНЕНИЕ ВТКурсыВалютУпр КАК ТаблицаКурсыВалютУпр
| ПО ТаблицаКурсыВалютУпр.Валюта = СтрокиОтчета.Валюта
| ЛЕВОЕ СОЕДИНЕНИЕ ВТКурсыВалютРегл КАК ТаблицаКурсыВалютРегл
| ПО ТаблицаКурсыВалютРегл.Валюта = СтрокиОтчета.Валюта
|ГДЕ
| СтрокиОтчета.СуммаИтог - СтрокиОтчета.Сумма < ЕСТЬNULL(КурсыВалютАвансов.Получено, 0)
| И СтрокиОтчета.СуммаИтог > ЕСТЬNULL(КурсыВалютАвансов.Получено, 0)
|";
Результат = Запрос.Выполнить();
РазделеннаяСтрокаРасхода = Новый ТаблицаЗначений;
Для Каждого Колонка Из Результат.Колонки Цикл
РазделеннаяСтрокаРасхода.Колонки.Добавить(Колонка.Имя, Колонка.ТипЗначения);
КонецЦикла;
РазделеннаяСтрокаРасхода.Колонки.Добавить("СуммаУпр", Новый ОписаниеТипов("Число"));
РазделеннаяСтрокаРасхода.Колонки.Добавить("СуммаРегл", Новый ОписаниеТипов("Число"));
Выборка = Результат.Выбрать();
Пока Выборка.Следующий() Цикл
НоваяСтрока = РазделеннаяСтрокаРасхода.Добавить();
ЗаполнитьЗначенияСвойств(НоваяСтрока, Выборка);
НоваяСтрока.СуммаУпр = НоваяСтрока.Сумма * НоваяСтрока.КоэффициентПересчетаУпр;
НоваяСтрока.СуммаРегл = НоваяСтрока.Сумма * НоваяСтрока.КоэффициентПересчетаРегл;
КонецЦикла;
РазделеннаяСтрокаРасхода.Свернуть("ИдентификаторСтроки,Валюта", "СуммаУпр, СуммаРегл, Сумма");
РазделеннаяСтрокаРасхода.Колонки.Добавить("КоэффициентПересчетаУпр", Новый ОписаниеТипов("Число"));
РазделеннаяСтрокаРасхода.Колонки.Добавить("КоэффициентПересчетаРегл", Новый ОписаниеТипов("Число"));
Для Каждого СтрокаТаблицы Из РазделеннаяСтрокаРасхода Цикл
СтрокаТаблицы.КоэффициентПересчетаУпр = СтрокаТаблицы.СуммаУпр / СтрокаТаблицы.Сумма;
СтрокаТаблицы.КоэффициентПересчетаРегл = СтрокаТаблицы.СуммаРегл / СтрокаТаблицы.Сумма;
КонецЦикла;
ТекстЗапроса = "
|ВЫБРАТЬ
| ТаблицаДанных.ИдентификаторСтроки КАК ИдентификаторСтроки,
| ТаблицаДанных.Валюта КАК Валюта,
| ТаблицаДанных.КоэффициентПересчетаУпр КАК КоэффициентПересчетаУпр,
| ТаблицаДанных.КоэффициентПересчетаРегл КАК КоэффициентПересчетаРегл
|ПОМЕСТИТЬ РазделеннаяСтрокаРасхода
|ИЗ
| &РазделеннаяСтрокаРасхода КАК ТаблицаДанных
|;
|
|ВЫБРАТЬ
| СтрокиОтчета.ИдентификаторСтроки КАК ИдентификаторСтроки,
| ВЫБОР КОГДА СтрокиОтчета.Валюта = &ВалютаУправленческогоУчета
| ТОГДА 1
| ИНАЧЕ ВЫРАЗИТЬ(КурсыВалютАвансов.КоэффициентПересчетаУпр КАК ЧИСЛО(31,18))
| КОНЕЦ КАК КоэффициентПересчетаУпр,
| ВЫБОР КОГДА СтрокиОтчета.Валюта = &ВалютаРегламентированногоУчета
| ТОГДА 1
| ИНАЧЕ ВЫРАЗИТЬ(КурсыВалютАвансов.КоэффициентПересчетаРегл КАК ЧИСЛО(31,18))
| КОНЕЦ КАК КоэффициентПересчетаРегл
|ПОМЕСТИТЬ ВТКурсыВалютСтрокОтчета
|ИЗ
| СтрокиОтчета КАК СтрокиОтчета
|
| ЛЕВОЕ СОЕДИНЕНИЕ КурсыВалютАвансов КАК КурсыВалютАвансов
| ПО КурсыВалютАвансов.Валюта = СтрокиОтчета.Валюта
| И (КурсыВалютАвансов.ЦельВыдачи = СтрокиОтчета.СтатьяДвиженияДенежныхСредств
| ИЛИ НЕ &КонтролироватьВыдачуПодОтчетВРазрезеЦелей)
|
|ГДЕ
| НЕ КурсыВалютАвансов.Получено ЕСТЬ NULL
| И СтрокиОтчета.СуммаИтог <= КурсыВалютАвансов.Получено
| И СтрокиОтчета.СуммаИтог <> 0
|
|ОБЪЕДИНИТЬ ВСЕ
|
|ВЫБРАТЬ
| СтрокиОтчета.ИдентификаторСтроки КАК ИдентификаторСтроки,
| ВЫРАЗИТЬ(ЕСТЬNULL(ТаблицаКурсыВалютУпр.КоэффициентПересчета, 0) КАК ЧИСЛО(31,18)) КАК КоэффициентПересчетаУпр,
| ВЫРАЗИТЬ(ЕСТЬNULL(ТаблицаКурсыВалютРегл.КоэффициентПересчета, 0) КАК ЧИСЛО(31,18)) КАК КоэффициентПересчетаРегл
|ИЗ
| СтрокиОтчета КАК СтрокиОтчета
|
| ЛЕВОЕ СОЕДИНЕНИЕ КурсыВалютАвансов КАК КурсыВалютАвансов
| ПО КурсыВалютАвансов.Валюта = СтрокиОтчета.Валюта
| И (КурсыВалютАвансов.ЦельВыдачи = СтрокиОтчета.СтатьяДвиженияДенежныхСредств
| ИЛИ НЕ &КонтролироватьВыдачуПодОтчетВРазрезеЦелей)
|
| ЛЕВОЕ СОЕДИНЕНИЕ ВТКурсыВалютУпр КАК ТаблицаКурсыВалютУпр
| ПО ТаблицаКурсыВалютУпр.Валюта = СтрокиОтчета.Валюта
| ЛЕВОЕ СОЕДИНЕНИЕ ВТКурсыВалютРегл КАК ТаблицаКурсыВалютРегл
| ПО ТаблицаКурсыВалютРегл.Валюта = СтрокиОтчета.Валюта
|ГДЕ
| СтрокиОтчета.СуммаИтог - СтрокиОтчета.Сумма >= ЕСТЬNULL(КурсыВалютАвансов.Получено, 0)
| ИЛИ СтрокиОтчета.СуммаИтог = 0
|
|ОБЪЕДИНИТЬ ВСЕ
|
|ВЫБРАТЬ
| РазделеннаяСтрокаРасхода.ИдентификаторСтроки КАК ИдентификаторСтроки,
| ВЫБОР КОГДА РазделеннаяСтрокаРасхода.Валюта = &ВалютаУправленческогоУчета
| ТОГДА 1
| ИНАЧЕ ВЫРАЗИТЬ(РазделеннаяСтрокаРасхода.КоэффициентПересчетаУпр КАК ЧИСЛО(31,18))
| КОНЕЦ КАК КоэффициентПересчетаУпр,
| ВЫБОР КОГДА РазделеннаяСтрокаРасхода.Валюта = &ВалютаРегламентированногоУчета
| ТОГДА 1
| ИНАЧЕ ВЫРАЗИТЬ(РазделеннаяСтрокаРасхода.КоэффициентПересчетаРегл КАК ЧИСЛО(31,18))
| КОНЕЦ КАК КоэффициентПересчетаРегл
|ИЗ
| РазделеннаяСтрокаРасхода КАК РазделеннаяСтрокаРасхода
|";
Запрос.УстановитьПараметр("РазделеннаяСтрокаРасхода", РазделеннаяСтрокаРасхода);
ИсключаяТаблицы.Добавить("СтрокиОтчета");
ИсключаяТаблицы.Добавить("КурсыВалютАвансов");
ОбщегоНазначенияУТ.УничтожитьВременныеТаблицы(Запрос.МенеджерВременныхТаблиц, , ИсключаяТаблицы);
ТекстыЗапроса.Добавить(ТекстЗапроса, ИмяРегистра);
Возврат ТекстЗапроса;
КонецФункции
Функция ТекстЗапросаТаблицаКурсовыхРазниц(Запрос, ТекстыЗапроса)
ИмяРегистра = "ТаблицаКурсовыхРазниц";
Если Не ПроведениеДокументов.ЕстьТаблицаЗапроса("ВТКурсыВалютУпр", ТекстыЗапроса) Тогда
ТекстЗапросаВТКурсыВалютУпр(Запрос, ТекстыЗапроса);
КонецЕсли;
Если Не ПроведениеДокументов.ЕстьТаблицаЗапроса("ВТКурсыВалютРегл", ТекстыЗапроса) Тогда
ТекстЗапросаВТКурсыВалютРегл(Запрос, ТекстыЗапроса);
КонецЕсли;
Если Не ПроведениеДокументов.ЕстьТаблицаЗапроса("ВТКурсыВалютСтрокОтчета", ТекстыЗапроса) Тогда
ТекстЗапросаВТКурсыВалютСтрокОтчета(Запрос, ТекстыЗапроса);
КонецЕсли;
ТекстЗапроса = "
|ВЫБРАТЬ
| ДанныеДокумента.Валюта КАК Валюта,
| ДанныеДокумента.Валюта КАК ВалютаКонвертации,
| ДанныеДокумента.СтатьяДвиженияДенежныхСредств,
|
| ВЫРАЗИТЬ(ДанныеДокумента.СуммаКонвертации * ТаблицаКурсыВалютУпрКонвертации.КоэффициентПересчета КАК ЧИСЛО(31,2))
| - ВЫРАЗИТЬ(ДанныеДокумента.Сумма * ТаблицаКурсыВалютСтрокОтчета.КоэффициентПересчетаУпр КАК ЧИСЛО(31,2))
| КАК СуммаУпр,
|
| ВЫРАЗИТЬ(ДанныеДокумента.СуммаКонвертации * ТаблицаКурсыВалютРеглКонвертации.КоэффициентПересчета КАК ЧИСЛО(31,2))
| - ВЫРАЗИТЬ(ДанныеДокумента.Сумма * ТаблицаКурсыВалютСтрокОтчета.КоэффициентПересчетаРегл КАК ЧИСЛО(31,2))
| КАК СуммаРегл,
|
| ДанныеДокумента.ИдентификаторСтроки КАК ИдентификаторСтроки
|
|ПОМЕСТИТЬ ТаблицаКурсовыхРазниц
|ИЗ
| Документ.АвансовыйОтчет.КонвертацияВалюты КАК ДанныеДокумента
|
| ЛЕВОЕ СОЕДИНЕНИЕ ВТКурсыВалютУпр КАК ТаблицаКурсыВалютУпрКонвертации
| ПО ТаблицаКурсыВалютУпрКонвертации.Валюта = ДанныеДокумента.ВалютаКонвертации
|
| ЛЕВОЕ СОЕДИНЕНИЕ ВТКурсыВалютРегл КАК ТаблицаКурсыВалютРеглКонвертации
| ПО ТаблицаКурсыВалютРеглКонвертации.Валюта = ДанныеДокумента.ВалютаКонвертации
|
| ЛЕВОЕ СОЕДИНЕНИЕ ВТКурсыВалютСтрокОтчета КАК ТаблицаКурсыВалютСтрокОтчета
| ПО ТаблицаКурсыВалютСтрокОтчета.ИдентификаторСтроки = ДанныеДокумента.ИдентификаторСтроки
|
|ГДЕ
| ДанныеДокумента.Ссылка = &Ссылка
| И ДанныеДокумента.Ссылка.Мультивалютный
|";
ТекстыЗапроса.Добавить(ТекстЗапроса, ИмяРегистра);
Возврат ТекстЗапроса;
КонецФункции
Функция ТекстЗапросаТаблицаДенежныеСредстваУПодотчетныхЛиц(Запрос, ТекстыЗапроса, Регистры)
ИмяРегистра = "ДенежныеСредстваУПодотчетныхЛиц";
Если Не ПроведениеДокументов.ТребуетсяТаблицаДляДвижений(ИмяРегистра, Регистры) Тогда
Возврат "";
КонецЕсли;
Если Не ПроведениеДокументов.ЕстьТаблицаЗапроса("ВТКурсыВалютСтрокОтчета", ТекстыЗапроса) Тогда
ТекстЗапросаВТКурсыВалютСтрокОтчета(Запрос, ТекстыЗапроса);
КонецЕсли;
Если Не ПроведениеДокументов.ЕстьТаблицаЗапроса("ВТКурсыВалютУпр", ТекстыЗапроса) Тогда
ТекстЗапросаВТКурсыВалютУпр(Запрос, ТекстыЗапроса);
КонецЕсли;
Если Не ПроведениеДокументов.ЕстьТаблицаЗапроса("ВТКурсыВалютРегл", ТекстыЗапроса) Тогда
ТекстЗапросаВТКурсыВалютРегл(Запрос, ТекстыЗапроса);
КонецЕсли;
ТекстЗапроса = "
|ВЫБРАТЬ
| &Период КАК Период,
| ЗНАЧЕНИЕ(ВидДвиженияНакопления.Расход) КАК ВидДвижения,
| &Организация КАК Организация,
| &ПодотчетноеЛицо КАК ПодотчетноеЛицо,
| &Подразделение КАК Подразделение,
| ПрочиеРасходы.Валюта КАК Валюта,
| ВЫБОР КОГДА &КонтролироватьВыдачуПодОтчетВРазрезеЦелей ТОГДА
| ПрочиеРасходы.СтатьяДвиженияДенежныхСредств
| КОНЕЦ КАК ЦельВыдачи,
|
| ПрочиеРасходы.СуммаСНДС КАК Сумма,
| ПрочиеРасходы.СуммаСНДС * ТаблицаКурсыВалютСтрокОтчета.КоэффициентПересчетаУпр КАК СуммаУпр,
| ПрочиеРасходы.СуммаСНДС * ТаблицаКурсыВалютСтрокОтчета.КоэффициентПересчетаРегл КАК СуммаРегл,
|
| ПрочиеРасходы.СуммаСНДС КАК КОтчету,
|
| ЗНАЧЕНИЕ(Перечисление.ХозяйственныеОперации.ПрочиеРасходыПодотчетногоЛица) КАК ХозяйственнаяОперация,
| ВЫБОР КОГДА &КонтролироватьВыдачуПодОтчетВРазрезеЦелей ТОГДА
| ПрочиеРасходы.СтатьяДвиженияДенежныхСредств
| КОНЕЦ КАК СтатьяДвиженияДенежныхСредств,
| ПрочиеРасходы.ИдентификаторСтроки КАК ИдентификаторФинЗаписи,
| ЗНАЧЕНИЕ(Справочник.НастройкиХозяйственныхОпераций.ПрочиеРасходыПодотчетногоЛица) КАК НастройкаХозяйственнойОперации
|
|ИЗ
| Документ.АвансовыйОтчет.ПрочиеРасходы КАК ПрочиеРасходы
|
| ЛЕВОЕ СОЕДИНЕНИЕ ВТКурсыВалютСтрокОтчета КАК ТаблицаКурсыВалютСтрокОтчета
| ПО ТаблицаКурсыВалютСтрокОтчета.ИдентификаторСтроки = ПрочиеРасходы.ИдентификаторСтроки
|
|ГДЕ
| ПрочиеРасходы.Ссылка = &Ссылка
| И НЕ ПрочиеРасходы.Отменено
| И ПрочиеРасходы.Ссылка.Статус = ЗНАЧЕНИЕ(Перечисление.СтатусыАвансовогоОтчета.Утвержден)
|
|ОБЪЕДИНИТЬ ВСЕ
|
|ВЫБРАТЬ
| &Период КАК Период,
| ЗНАЧЕНИЕ(ВидДвиженияНакопления.Расход) КАК ВидДвижения,
| &Организация КАК Организация,
| &ПодотчетноеЛицо КАК ПодотчетноеЛицо,
| &Подразделение КАК Подразделение,
| ОплатаПоставщикам.Валюта КАК Валюта,
| ВЫБОР КОГДА &КонтролироватьВыдачуПодОтчетВРазрезеЦелей ТОГДА
| ОплатаПоставщикам.СтатьяДвиженияДенежныхСредств
| КОНЕЦ КАК ЦельВыдачи,
|
| ОплатаПоставщикам.Сумма КАК Сумма,
| ВЫБОР КОГДА ОплатаПоставщикам.ВалютаВзаиморасчетов = &ВалютаУправленческогоУчета
| ТОГДА ОплатаПоставщикам.СуммаВзаиморасчетов
| ИНАЧЕ ОплатаПоставщикам.Сумма * ТаблицаКурсыВалютСтрокОтчета.КоэффициентПересчетаУпр
| КОНЕЦ КАК СуммаУпр,
| ВЫБОР КОГДА ОплатаПоставщикам.ВалютаВзаиморасчетов = &ВалютаРегламентированногоУчета И ОплатаПоставщикам.Валюта <> &ВалютаРегламентированногоУчета
| ТОГДА ОплатаПоставщикам.СуммаВзаиморасчетов
| ИНАЧЕ ОплатаПоставщикам.Сумма * ТаблицаКурсыВалютСтрокОтчета.КоэффициентПересчетаРегл
| КОНЕЦ КАК СуммаРегл,
| ОплатаПоставщикам.Сумма КАК КОтчету,
|
| ЗНАЧЕНИЕ(Перечисление.ХозяйственныеОперации.ОплатаПоставщикуПодотчетнымЛицом) КАК ХозяйственнаяОперация,
| ВЫБОР КОГДА &КонтролироватьВыдачуПодОтчетВРазрезеЦелей ТОГДА
| ОплатаПоставщикам.СтатьяДвиженияДенежныхСредств
| КОНЕЦ КАК СтатьяДвиженияДенежныхСредств,
| ОплатаПоставщикам.ИдентификаторСтроки КАК ИдентификаторФинЗаписи,
| ЗНАЧЕНИЕ(Справочник.НастройкиХозяйственныхОпераций.ОплатаПоставщикуПодотчетнымЛицом) КАК НастройкаХозяйственнойОперации
|
|ИЗ
| Документ.АвансовыйОтчет.ОплатаПоставщикам КАК ОплатаПоставщикам
|
| ЛЕВОЕ СОЕДИНЕНИЕ ВТКурсыВалютСтрокОтчета КАК ТаблицаКурсыВалютСтрокОтчета
| ПО ТаблицаКурсыВалютСтрокОтчета.ИдентификаторСтроки = ОплатаПоставщикам.ИдентификаторСтроки
|
|ГДЕ
| ОплатаПоставщикам.Ссылка = &Ссылка
| И ОплатаПоставщикам.Ссылка.Статус = ЗНАЧЕНИЕ(Перечисление.СтатусыАвансовогоОтчета.Утвержден)
|
|ОБЪЕДИНИТЬ ВСЕ
|
|ВЫБРАТЬ
| &Период КАК Период,
| ЗНАЧЕНИЕ(ВидДвиженияНакопления.Расход) КАК ВидДвижения,
| &Организация КАК Организация,
| &ПодотчетноеЛицо КАК ПодотчетноеЛицо,
| &Подразделение КАК Подразделение,
| КонвертацияВалюты.Валюта КАК Валюта,
| ВЫБОР КОГДА &КонтролироватьВыдачуПодОтчетВРазрезеЦелей ТОГДА
| КонвертацияВалюты.СтатьяДвиженияДенежныхСредств
| КОНЕЦ КАК ЦельВыдачи,
|
| КонвертацияВалюты.Сумма КАК Сумма,
| КонвертацияВалюты.Сумма * ТаблицаКурсыВалютСтрокОтчета.КоэффициентПересчетаУпр КАК СуммаУпр,
| КонвертацияВалюты.Сумма * ТаблицаКурсыВалютСтрокОтчета.КоэффициентПересчетаРегл КАК СуммаРегл,
| КонвертацияВалюты.Сумма КАК КОтчету,
|
| ЗНАЧЕНИЕ(Перечисление.ХозяйственныеОперации.КонвертацияВалютыПодотчетнымЛицом) КАК ХозяйственнаяОперация,
| ВЫБОР КОГДА &КонтролироватьВыдачуПодОтчетВРазрезеЦелей ТОГДА
| КонвертацияВалюты.СтатьяДвиженияДенежныхСредств
| КОНЕЦ КАК СтатьяДвиженияДенежныхСредств,
| КонвертацияВалюты.ИдентификаторСтроки КАК ИдентификаторФинЗаписи,
| ЗНАЧЕНИЕ(Справочник.НастройкиХозяйственныхОпераций.КонвертацияВалютыПодотчетнымЛицом) КАК НастройкаХозяйственнойОперации
|
|ИЗ
| Документ.АвансовыйОтчет.КонвертацияВалюты КАК КонвертацияВалюты
|
| ЛЕВОЕ СОЕДИНЕНИЕ ВТКурсыВалютСтрокОтчета КАК ТаблицаКурсыВалютСтрокОтчета
| ПО ТаблицаКурсыВалютСтрокОтчета.ИдентификаторСтроки = КонвертацияВалюты.ИдентификаторСтроки
|ГДЕ
| КонвертацияВалюты.Ссылка = &Ссылка
| И &Мультивалютный
| И КонвертацияВалюты.Ссылка.Статус = ЗНАЧЕНИЕ(Перечисление.СтатусыАвансовогоОтчета.Утвержден)
|
|ОБЪЕДИНИТЬ ВСЕ
|
|ВЫБРАТЬ
| &Период КАК Период,
| ЗНАЧЕНИЕ(ВидДвиженияНакопления.Приход) КАК ВидДвижения,
| &Организация КАК Организация,
| &ПодотчетноеЛицо КАК ПодотчетноеЛицо,
| &Подразделение КАК Подразделение,
| КонвертацияВалюты.ВалютаКонвертации КАК Валюта,
| ВЫБОР КОГДА &КонтролироватьВыдачуПодОтчетВРазрезеЦелей ТОГДА
| КонвертацияВалюты.СтатьяДвиженияДенежныхСредств
| КОНЕЦ КАК ЦельВыдачи,
|
| КонвертацияВалюты.СуммаКонвертации КАК Сумма,
| КонвертацияВалюты.СуммаКонвертации * ЕСТЬNULL(ТаблицаКурсыВалютУпр.КоэффициентПересчета, 0) КАК СуммаУпр,
| КонвертацияВалюты.СуммаКонвертации * ЕСТЬNULL(ТаблицаКурсыВалютРегл.КоэффициентПересчета, 0) КАК СуммаРегл,
| КонвертацияВалюты.СуммаКонвертации КАК КОтчету,
|
| ЗНАЧЕНИЕ(Перечисление.ХозяйственныеОперации.ПоступлениеДенежныхСредствОтКонвертацииВалюты) КАК ХозяйственнаяОперация,
| ВЫБОР КОГДА &КонтролироватьВыдачуПодОтчетВРазрезеЦелей ТОГДА
| КонвертацияВалюты.СтатьяДвиженияДенежныхСредств
| КОНЕЦ КАК СтатьяДвиженияДенежныхСредств,
| КонвертацияВалюты.ИдентификаторСтроки КАК ИдентификаторФинЗаписи,
| ЗНАЧЕНИЕ(Справочник.НастройкиХозяйственныхОпераций.ПоступлениеДенежныхСредствОтКонвертацииВалюты) КАК НастройкаХозяйственнойОперации
|
|ИЗ
| Документ.АвансовыйОтчет.КонвертацияВалюты КАК КонвертацияВалюты
|
| ЛЕВОЕ СОЕДИНЕНИЕ ВТКурсыВалютУпр КАК ТаблицаКурсыВалютУпр
| ПО ТаблицаКурсыВалютУпр.Валюта = КонвертацияВалюты.ВалютаКонвертации
| ЛЕВОЕ СОЕДИНЕНИЕ ВТКурсыВалютРегл КАК ТаблицаКурсыВалютРегл
| ПО ТаблицаКурсыВалютРегл.Валюта = КонвертацияВалюты.ВалютаКонвертации
|
|ГДЕ
| КонвертацияВалюты.Ссылка = &Ссылка
| И &Мультивалютный
| И КонвертацияВалюты.Ссылка.Статус = ЗНАЧЕНИЕ(Перечисление.СтатусыАвансовогоОтчета.Утвержден)
|";
ТекстыЗапроса.Добавить(ТекстЗапроса, ИмяРегистра);
Возврат ТекстЗапроса;
КонецФункции
Функция ТекстЗапросаТаблицаПрочиеДоходы(Запрос, ТекстыЗапроса, Регистры)
ИмяРегистра = "ПрочиеДоходы";
Если Не ПроведениеДокументов.ТребуетсяТаблицаДляДвижений(ИмяРегистра, Регистры) Тогда
Возврат "";
КонецЕсли;
Если Не ПроведениеДокументов.ЕстьТаблицаЗапроса("ТаблицаКурсовыхРазниц", ТекстыЗапроса) Тогда
ТекстЗапросаТаблицаКурсовыхРазниц(Запрос, ТекстыЗапроса);
КонецЕсли;
ТекстЗапроса = "
|ВЫБРАТЬ
| &Период КАК Период,
| ЗНАЧЕНИЕ(ВидДвиженияНакопления.Приход) КАК ВидДвижения,
| &Организация КАК Организация,
| ЗНАЧЕНИЕ(ПланВидовХарактеристик.СтатьиДоходов.КурсовыеРазницы) КАК СтатьяДоходов,
| ЗНАЧЕНИЕ(Перечисление.АналитикаКурсовыхРазниц.ДенежныеСредства) КАК АналитикаДоходов,
| &Подразделение КАК Подразделение,
| ЗНАЧЕНИЕ(Справочник.НаправленияДеятельности.ПустаяСсылка),
|
| ЗНАЧЕНИЕ(Перечисление.ХозяйственныеОперации.КурсовыеРазницыДСПрибыль) КАК ХозяйственнаяОперация,
|
| ТаблицаКурсовыхРазниц.СуммаУпр КАК Сумма,
|
| (ВЫБОР
| КОГДА &УправленческийУчетОрганизаций
| ТОГДА ТаблицаКурсовыхРазниц.СуммаУпр
| ИНАЧЕ 0 КОНЕЦ) КАК СуммаУпр,
| (ВЫБОР
| КОГДА &ИспользоватьУчетПрочихДоходовРасходовРегл
| ТОГДА ТаблицаКурсовыхРазниц.СуммаРегл
| ИНАЧЕ 0 КОНЕЦ) КАК СуммаРегл,
|
| ТаблицаКурсовыхРазниц.ИдентификаторСтроки КАК ИдентификаторФинЗаписи,
| ЗНАЧЕНИЕ(Справочник.НастройкиХозяйственныхОпераций.КурсовыеРазницыДСПрибыль) КАК НастройкаХозяйственнойОперации
|
|ИЗ
| ТаблицаКурсовыхРазниц КАК ТаблицаКурсовыхРазниц
|
|ГДЕ
| &ИспользоватьУчетПрочихДоходовРасходов
| И (ТаблицаКурсовыхРазниц.СуммаУпр > 0 ИЛИ ТаблицаКурсовыхРазниц.СуммаРегл > 0)
|";
ТекстыЗапроса.Добавить(ТекстЗапроса, ИмяРегистра);
Возврат ТекстЗапроса;
КонецФункции
Функция ТекстЗапросаТаблицаВтИсходныеПрочиеРасходы(Запрос, ТекстыЗапроса)
ИмяРегистра = "ВтИсходныеПрочиеРасходы";
Если Не ПроведениеДокументов.ЕстьТаблицаЗапроса("ВТКурсыВалютСтрокОтчета", ТекстыЗапроса) Тогда
ТекстЗапросаВТКурсыВалютСтрокОтчета(Запрос, ТекстыЗапроса);
КонецЕсли;
Если Не ПроведениеДокументов.ЕстьТаблицаЗапроса("ТаблицаКурсовыхРазниц", ТекстыЗапроса) Тогда
ТекстЗапросаТаблицаКурсовыхРазниц(Запрос, ТекстыЗапроса);
КонецЕсли;
НастройкиНалоговУчетныхПолитик.ДополнитьМенеджерВременныхТаблицДействующимиПараметрамиНалоговУчетныхПолитик(
Метаданные.РегистрыСведений.НастройкиСистемыНалогообложения.Имя,
Запрос.МенеджерВременныхТаблиц,
Запрос.Параметры.Период,
"ВТНастройкиСистемыНалогообложения",
Запрос.Параметры.Организация);
ТекстЗапроса = "
|ВЫБРАТЬ
| &Период КАК Период,
| ЗНАЧЕНИЕ(ВидДвиженияНакопления.Приход) КАК ВидДвижения,
| &Организация КАК Организация,
| ТаблицаРасходов.Подразделение КАК Подразделение,
| ТаблицаРасходов.НаправлениеДеятельности КАК НаправлениеДеятельности,
| ТаблицаРасходов.СтатьяРасходов КАК СтатьяРасходов,
| ТаблицаРасходов.АналитикаРасходов КАК АналитикаРасходов,
| Реквизиты.ЗакупкаПодДеятельность КАК ВидДеятельностиНДС,
|
| ТаблицаРасходов.СуммаСНДС * ТаблицаКурсыВалютСтрокОтчета.КоэффициентПересчетаУпр КАК СуммаСНДС,
|
| ВЫРАЗИТЬ(ТаблицаРасходов.СуммаСНДС * ТаблицаКурсыВалютСтрокОтчета.КоэффициентПересчетаУпр КАК ЧИСЛО(31,2))
| - ВЫРАЗИТЬ(ТаблицаРасходов.СуммаНДС * ТаблицаКурсыВалютСтрокОтчета.КоэффициентПересчетаУпр КАК ЧИСЛО(31,2)) КАК СуммаБезНДС,
| ВЫРАЗИТЬ(ТаблицаРасходов.СуммаСНДС * ТаблицаКурсыВалютСтрокОтчета.КоэффициентПересчетаУпр КАК ЧИСЛО(31,2))
| - ВЫРАЗИТЬ(ТаблицаРасходов.СуммаНДС * ТаблицаКурсыВалютСтрокОтчета.КоэффициентПересчетаУпр КАК ЧИСЛО(31,2)) КАК СуммаБезНДСУпр,
|
| ВЫБОР КОГДА НЕ ТаблицаРасходов.ПредъявленСФ И НЕ ТаблицаРасходов.БланкСтрогойОтчетности
| И ЕСТЬNULL(НастройкиСистемыНалогообложения.СистемаНалогообложения, НЕОПРЕДЕЛЕНО) <> ЗНАЧЕНИЕ(Перечисление.СистемыНалогообложения.Упрощенная) ТОГДА
| ВЫРАЗИТЬ(ТаблицаРасходов.СуммаСНДС * ТаблицаКурсыВалютСтрокОтчета.КоэффициентПересчетаРегл КАК ЧИСЛО(31,2))
| - ВЫРАЗИТЬ(ТаблицаРасходов.СуммаНДС * ТаблицаКурсыВалютСтрокОтчета.КоэффициентПересчетаРегл КАК ЧИСЛО(31,2))
| ИНАЧЕ
| ТаблицаРасходов.СуммаСНДС * ТаблицаКурсыВалютСтрокОтчета.КоэффициентПересчетаРегл
| КОНЕЦ КАК СуммаСНДСРегл,
|
| ВЫРАЗИТЬ(ТаблицаРасходов.СуммаСНДС * ТаблицаКурсыВалютСтрокОтчета.КоэффициентПересчетаРегл КАК ЧИСЛО(31,2))
| - ВЫРАЗИТЬ(ТаблицаРасходов.СуммаНДС * ТаблицаКурсыВалютСтрокОтчета.КоэффициентПересчетаРегл КАК ЧИСЛО(31,2)) КАК СуммаБезНДСРегл,
| 0 КАК ПостояннаяРазница,
| 0 КАК ВременнаяРазница,
| ЗНАЧЕНИЕ(Перечисление.ХозяйственныеОперации.ПрочиеРасходы) КАК ХозяйственнаяОперация,
| НЕОПРЕДЕЛЕНО КАК АналитикаУчетаНоменклатуры,
|
| ТаблицаРасходов.ИдентификаторСтроки КАК ИдентификаторФинЗаписи,
| ЗНАЧЕНИЕ(Справочник.НастройкиХозяйственныхОпераций.ПрочиеРасходыПодотчетногоЛица) КАК НастройкаХозяйственнойОперации
|
|ПОМЕСТИТЬ ВтИсходныеПрочиеРасходы
|ИЗ
| Документ.АвансовыйОтчет.ПрочиеРасходы КАК ТаблицаРасходов
| ЛЕВОЕ СОЕДИНЕНИЕ Документ.АвансовыйОтчет КАК Реквизиты
| ПО ТаблицаРасходов.Ссылка = Реквизиты.Ссылка
| ЛЕВОЕ СОЕДИНЕНИЕ ВТКурсыВалютСтрокОтчета КАК ТаблицаКурсыВалютСтрокОтчета
| ПО ТаблицаКурсыВалютСтрокОтчета.ИдентификаторСтроки = ТаблицаРасходов.ИдентификаторСтроки
| ЛЕВОЕ СОЕДИНЕНИЕ ВТНастройкиСистемыНалогообложения КАК НастройкиСистемыНалогообложения
| ПО Реквизиты.Организация = НастройкиСистемыНалогообложения.Организация
|ГДЕ
| ТаблицаРасходов.Ссылка = &Ссылка
| И ТИПЗНАЧЕНИЯ(ТаблицаРасходов.СтатьяРасходов) = ТИП(ПланВидовХарактеристик.СтатьиРасходов)
| И ТаблицаРасходов.Ссылка.Статус = ЗНАЧЕНИЕ(Перечисление.СтатусыАвансовогоОтчета.Утвержден)
| И НЕ ТаблицаРасходов.Отменено
|
|ОБЪЕДИНИТЬ ВСЕ
|
|ВЫБРАТЬ
| &Период КАК Период,
| ЗНАЧЕНИЕ(ВидДвиженияНакопления.Приход) КАК ВидДвижения,
| &Организация КАК Организация,
| ТаблицаРасходов.Подразделение КАК Подразделение,
| ТаблицаРасходов.НаправлениеДеятельности КАК НаправлениеДеятельности,
| (ВЫБОР
| КОГДА &СтатьяРасходовСписаниеНДС = ЗНАЧЕНИЕ(ПланВидовХарактеристик.СтатьиРасходов.ПустаяСсылка)
| ТОГДА ТаблицаРасходов.СтатьяРасходов
| ИНАЧЕ &СтатьяРасходовСписаниеНДС КОНЕЦ) КАК СтатьяРасходов,
| (ВЫБОР
| КОГДА &СтатьяРасходовСписаниеНДС = ЗНАЧЕНИЕ(ПланВидовХарактеристик.СтатьиРасходов.ПустаяСсылка)
| ТОГДА ТаблицаРасходов.АналитикаРасходов
| ИНАЧЕ &АналитикаРасходовСписаниеНДС КОНЕЦ) КАК АналитикаРасходов,
| Реквизиты.ЗакупкаПодДеятельность КАК ВидДеятельностиНДС,
|
| 0 КАК СуммаСНДС,
| 0 КАК СуммаБезНДС,
|
| ТаблицаРасходов.СуммаНДС * ТаблицаКурсыВалютСтрокОтчета.КоэффициентПересчетаУпр КАК СуммаБезНДСУпр,
| ТаблицаРасходов.СуммаНДС * ТаблицаКурсыВалютСтрокОтчета.КоэффициентПересчетаРегл КАК СуммаСНДСРегл,
| ТаблицаРасходов.СуммаНДС * ТаблицаКурсыВалютСтрокОтчета.КоэффициентПересчетаРегл КАК СуммаБезНДСРегл,
| 0 КАК ПостояннаяРазница,
| 0 КАК ВременнаяРазница,
| ЗНАЧЕНИЕ(Перечисление.ХозяйственныеОперации.СписаниеНДСПоПриобретеннымЦенностям) КАК ХозяйственнаяОперация,
| НЕОПРЕДЕЛЕНО КАК АналитикаУчетаНоменклатуры,
|
| ТаблицаРасходов.ИдентификаторСтроки КАК ИдентификаторФинЗаписи,
| ЗНАЧЕНИЕ(Справочник.НастройкиХозяйственныхОпераций.СписаниеНДСПоПриобретеннымЦенностям) КАК НастройкаХозяйственнойОперации
|
|ИЗ
| Документ.АвансовыйОтчет.ПрочиеРасходы КАК ТаблицаРасходов
| ЛЕВОЕ СОЕДИНЕНИЕ Документ.АвансовыйОтчет КАК Реквизиты
| ПО ТаблицаРасходов.Ссылка = Реквизиты.Ссылка
| ЛЕВОЕ СОЕДИНЕНИЕ ВТКурсыВалютСтрокОтчета КАК ТаблицаКурсыВалютСтрокОтчета
| ПО ТаблицаКурсыВалютСтрокОтчета.ИдентификаторСтроки = ТаблицаРасходов.ИдентификаторСтроки
| ЛЕВОЕ СОЕДИНЕНИЕ ВТНастройкиСистемыНалогообложения КАК НастройкиСистемыНалогообложения
| ПО Реквизиты.Организация = НастройкиСистемыНалогообложения.Организация
|ГДЕ
| ТаблицаРасходов.Ссылка = &Ссылка
| И ТаблицаРасходов.Ссылка.Статус = ЗНАЧЕНИЕ(Перечисление.СтатусыАвансовогоОтчета.Утвержден)
| И НЕ ТаблицаРасходов.Отменено
| И НЕ ТаблицаРасходов.ПредъявленСФ
| И НЕ ТаблицаРасходов.БланкСтрогойОтчетности
| И ТИПЗНАЧЕНИЯ(ТаблицаРасходов.СтатьяРасходов) = ТИП(ПланВидовХарактеристик.СтатьиРасходов)
| И ЕСТЬNULL(НастройкиСистемыНалогообложения.СистемаНалогообложения, НЕОПРЕДЕЛЕНО) <> ЗНАЧЕНИЕ(Перечисление.СистемыНалогообложения.Упрощенная)
|
|ОБЪЕДИНИТЬ ВСЕ
|
|ВЫБРАТЬ
| &Период КАК Период,
| ЗНАЧЕНИЕ(ВидДвиженияНакопления.Приход) КАК ВидДвижения,
| &Организация КАК Организация,
| &Подразделение КАК Подразделение,
| ЗНАЧЕНИЕ(Справочник.НаправленияДеятельности.ПустаяСсылка) КАК НаправлениеДеятельности,
| ЗНАЧЕНИЕ(ПланВидовХарактеристик.СтатьиРасходов.КурсовыеРазницы) КАК СтатьяРасходов,
| ЗНАЧЕНИЕ(Перечисление.АналитикаКурсовыхРазниц.ДенежныеСредства) КАК АналитикаРасходов,
| НЕОПРЕДЕЛЕНО КАК ВидДеятельностиНДС,
|
| -ТаблицаКурсовыхРазниц.СуммаУпр КАК СуммаСНДС,
| -ТаблицаКурсовыхРазниц.СуммаУпр КАК СуммаБезНДС,
| -ТаблицаКурсовыхРазниц.СуммаУпр КАК СуммаБезНДСУпр,
|
| -ТаблицаКурсовыхРазниц.СуммаРегл КАК СуммаСНДСРегл,
| -ТаблицаКурсовыхРазниц.СуммаРегл КАК СуммаБезНДСРегл,
| 0 КАК ПостояннаяРазница,
| 0 КАК ВременнаяРазница,
|
| ЗНАЧЕНИЕ(Перечисление.ХозяйственныеОперации.КурсовыеРазницыДСУбыток) КАК ХозяйственнаяОперация,
| НЕОПРЕДЕЛЕНО КАК АналитикаУчетаНоменклатуры,
|
| ТаблицаКурсовыхРазниц.ИдентификаторСтроки КАК ИдентификаторФинЗаписи,
| ЗНАЧЕНИЕ(Справочник.НастройкиХозяйственныхОпераций.КурсовыеРазницыДСУбыток) КАК НастройкаХозяйственнойОперации
|
|ИЗ
| ТаблицаКурсовыхРазниц КАК ТаблицаКурсовыхРазниц
|
|ГДЕ
| ТаблицаКурсовыхРазниц.СуммаУпр < 0 ИЛИ ТаблицаКурсовыхРазниц.СуммаРегл < 0
|";
ТекстыЗапроса.Добавить(ТекстЗапроса, ИмяРегистра);
Возврат ТекстЗапроса;
КонецФункции
Функция ТекстЗапросаТаблицаВтПрочиеРасходы(Запрос, ТекстыЗапроса) Экспорт
ИмяРегистра = "ВтПрочиеРасходы";
Если Не ПроведениеДокументов.ЕстьТаблицаЗапроса("ВтИсходныеПрочиеРасходы", ТекстыЗапроса) Тогда
ТекстЗапросаТаблицаВтИсходныеПрочиеРасходы(Запрос, ТекстыЗапроса);
КонецЕсли;
ТекстЗапроса = РегистрыНакопления.ПрочиеРасходы.ТекстЗапросаТаблицаВтПрочиеРасходы();
ТекстыЗапроса.Добавить(ТекстЗапроса, ИмяРегистра);
Возврат ТекстЗапроса;
КонецФункции
Функция ТекстЗапросаТаблицаПрочиеРасходы(Запрос, ТекстыЗапроса, Регистры)
ИмяРегистра = "ПрочиеРасходы";
Если НЕ ПроведениеДокументов.ТребуетсяТаблицаДляДвижений(ИмяРегистра, Регистры) Тогда
Возврат "";
КонецЕсли;
Если Не ПроведениеДокументов.ЕстьТаблицаЗапроса("ВтПрочиеРасходы", ТекстыЗапроса) Тогда
ТекстЗапросаТаблицаВтПрочиеРасходы(Запрос, ТекстыЗапроса);
КонецЕсли;
ТекстЗапроса = РегистрыНакопления.ПрочиеРасходы.ТекстЗапросаТаблицаПрочиеРасходы();
ТекстыЗапроса.Добавить(ТекстЗапроса, ИмяРегистра);
Возврат ТекстЗапроса;
КонецФункции
Функция ТекстЗапросаТаблицаПрочиеАктивыПассивы(Запрос, ТекстыЗапроса, Регистры)
ИмяРегистра = "ПрочиеАктивыПассивы";
Если НЕ ПроведениеДокументов.ТребуетсяТаблицаДляДвижений(ИмяРегистра, Регистры) Тогда
Возврат "";
КонецЕсли;
Если Не ПроведениеДокументов.ЕстьТаблицаЗапроса("ВТКурсыВалютСтрокОтчета", ТекстыЗапроса) Тогда
ТекстЗапросаВТКурсыВалютСтрокОтчета(Запрос, ТекстыЗапроса);
КонецЕсли;
Если Не ПроведениеДокументов.ЕстьТаблицаЗапроса("ВтПрочиеРасходы", ТекстыЗапроса) Тогда
ТекстЗапросаТаблицаВтПрочиеРасходы(Запрос, ТекстыЗапроса);
КонецЕсли;
Если Не ПроведениеДокументов.ЕстьТаблицаЗапроса("ВтПартииПрочихРасходов", ТекстыЗапроса) Тогда
ТекстЗапросаТаблицаВтПартииПрочихРасходов(Запрос, ТекстыЗапроса);
КонецЕсли;
ТекстЗапроса = "
|ВЫБРАТЬ
| &Период КАК Период,
| ЗНАЧЕНИЕ(ВидДвиженияНакопления.Приход) КАК ВидДвижения,
| &Организация КАК Организация,
| ПрочиеРасходы.Подразделение КАК Подразделение,
| ПрочиеРасходы.НаправлениеДеятельности КАК НаправлениеДеятельности,
| ПрочиеРасходы.СтатьяРасходов КАК Статья,
| ВЫБОР
| КОГДА ПрочиеРасходы.АналитикаАктивовПассивов = ЗНАЧЕНИЕ(Перечисление.СтатьиБезАналитики.ПустаяСсылка)
| ТОГДА НЕОПРЕДЕЛЕНО
| ИНАЧЕ ПрочиеРасходы.АналитикаАктивовПассивов
| КОНЕЦ КАК Аналитика,
|
| ПрочиеРасходы.СуммаСНДС * ТаблицаКурсыВалютСтрокОтчета.КоэффициентПересчетаУпр КАК Сумма
|ИЗ
| Документ.АвансовыйОтчет.ПрочиеРасходы КАК ПрочиеРасходы
|
| ЛЕВОЕ СОЕДИНЕНИЕ ВТКурсыВалютСтрокОтчета КАК ТаблицаКурсыВалютСтрокОтчета
| ПО ТаблицаКурсыВалютСтрокОтчета.ИдентификаторСтроки = ПрочиеРасходы.ИдентификаторСтроки
|ГДЕ
| ПрочиеРасходы.Ссылка = &Ссылка
| И ТИПЗНАЧЕНИЯ(ПрочиеРасходы.СтатьяРасходов) = ТИП(ПланВидовХарактеристик.СтатьиАктивовПассивов)
| И ПрочиеРасходы.Ссылка.Статус = ЗНАЧЕНИЕ(Перечисление.СтатусыАвансовогоОтчета.Утвержден)
| И НЕ ПрочиеРасходы.Отменено
|";
ТекстЗапроса = ТекстЗапроса + "ОБЪЕДИНИТЬ ВСЕ"
+ РегистрыНакопления.ПрочиеАктивыПассивы.ТекстЗапросаТаблицаПрочиеАктивыПассивы();
ТекстыЗапроса.Добавить(ТекстЗапроса, ИмяРегистра);
Возврат ТекстЗапроса;
КонецФункции
Функция ТекстЗапросаТаблицаВтДвиженияПоПрочимАктивамПассивам(Запрос, ТекстыЗапроса)
ИмяРегистра = "ВтДвиженияПоПрочимАктивамПассивам";
Если Не ПроведениеДокументов.ЕстьТаблицаЗапроса("ВтИсходныеДвиженияПоПрочимАктивамПассивам", ТекстыЗапроса) Тогда
ТекстЗапросаТаблицаВтИсходныеДвиженияПоПрочимАктивамПассивам(Запрос, ТекстыЗапроса);
КонецЕсли;
ТекстЗапроса = РегистрыНакопления.ДвиженияПоПрочимАктивамПассивам.ТекстЗапросаТаблицаВтДвиженияПоПрочимАктивамПассивам("ИдентификаторСтроки");
ТекстыЗапроса.Добавить(ТекстЗапроса, ИмяРегистра);
Возврат ТекстЗапроса;
КонецФункции
Функция ТекстЗапросаТаблицаДвиженияПоПрочимАктивамПассивам(Запрос, ТекстыЗапроса, Регистры)
ИмяРегистра = "ДвиженияПоПрочимАктивамПассивам";
Если НЕ ПроведениеДокументов.ТребуетсяТаблицаДляДвижений(ИмяРегистра, Регистры) Тогда
Возврат "";
КонецЕсли;
Если Не ПроведениеДокументов.ЕстьТаблицаЗапроса("ВтДвиженияПоПрочимАктивамПассивам", ТекстыЗапроса) Тогда
ТекстЗапросаТаблицаВтДвиженияПоПрочимАктивамПассивам(Запрос, ТекстыЗапроса);
КонецЕсли;
Если НЕ ПроведениеДокументов.ЕстьТаблицаЗапроса("ВтДвиженияКонтрагентКонтрагент", ТекстыЗапроса) Тогда
ТекстЗапросаВременнаяТаблицаДвиженияКонтрагентКонтрагент(Запрос, ТекстыЗапроса);
КонецЕсли;
МассивТекстовЗапроса = Новый Массив;
ТекстЗапроса = РегистрыНакопления.ДвиженияПоПрочимАктивамПассивам.ТекстЗапросаТаблицаДвиженияПоПрочимАктивамПассивам();
МассивТекстовЗапроса.Добавить(ТекстЗапроса);
МассивТекстовЗапроса.Добавить(ПрочиеАктивыПассивыСервер.ТекстЗапросаВзаимозачетСФилиалами(Истина));
ТекстЗапроса = СтрСоединить(МассивТекстовЗапроса, ОбщегоНазначенияУТ.РазделительЗапросовВОбъединении());
ТекстыЗапроса.Добавить(ТекстЗапроса, ИмяРегистра);
Возврат ТекстЗапроса;
КонецФункции
Функция ТекстЗапросаТаблицаВтИсходныеДвиженияПоПрочимАктивамПассивам(Запрос, ТекстыЗапроса)
ИмяРегистра = "ВтИсходныеДвиженияПоПрочимАктивамПассивам";
Если Не ПроведениеДокументов.ЕстьТаблицаЗапроса("ВТКурсыВалютСтрокОтчета", ТекстыЗапроса) Тогда
ТекстЗапросаВТКурсыВалютСтрокОтчета(Запрос, ТекстыЗапроса);
КонецЕсли;
ТекстЗапроса = "
|ВЫБРАТЬ
| &Период КАК Период,
| &Организация КАК Организация,
| ПрочиеРасходы.Подразделение КАК Подразделение,
| ПрочиеРасходы.НаправлениеДеятельности КАК НаправлениеДеятельности,
| ПрочиеРасходы.СтатьяРасходов КАК Статья,
| ПрочиеРасходы.АналитикаАктивовПассивов КАК Аналитика,
| ЗНАЧЕНИЕ(Перечисление.ВидыДвиженийПрочихАктивовПассивов.Дебет) КАК ДебетКредит,
| ПрочиеРасходы.Ссылка.ЗакупкаПодДеятельность КАК ВидДеятельностиНДС,
|
| ПрочиеРасходы.СуммаСНДС * ТаблицаКурсыВалютСтрокОтчета.КоэффициентПересчетаРегл КАК СуммаРегл,
| ВЫРАЗИТЬ(ПрочиеРасходы.СуммаСНДС * ТаблицаКурсыВалютСтрокОтчета.КоэффициентПересчетаРегл КАК ЧИСЛО(31,2))
| - ВЫРАЗИТЬ(ПрочиеРасходы.СуммаНДС * ТаблицаКурсыВалютСтрокОтчета.КоэффициентПересчетаРегл КАК ЧИСЛО(31,2)) КАК СуммаБезНДСРегл,
|
| ПрочиеРасходы.СуммаСНДС * ТаблицаКурсыВалютСтрокОтчета.КоэффициентПересчетаУпр КАК СуммаУпр,
| ВЫРАЗИТЬ(ПрочиеРасходы.СуммаСНДС * ТаблицаКурсыВалютСтрокОтчета.КоэффициентПересчетаУпр КАК ЧИСЛО(31,2))
| - ВЫРАЗИТЬ(ПрочиеРасходы.СуммаНДС * ТаблицаКурсыВалютСтрокОтчета.КоэффициентПересчетаУпр КАК ЧИСЛО(31,2)) КАК СуммаБезНДСУпр,
|
| ПрочиеРасходы.СуммаСНДС * ТаблицаКурсыВалютСтрокОтчета.КоэффициентПересчетаУпр КАК СуммаСНДС,
| ВЫРАЗИТЬ(ПрочиеРасходы.СуммаСНДС * ТаблицаКурсыВалютСтрокОтчета.КоэффициентПересчетаУпр КАК ЧИСЛО(31,2))
| - ВЫРАЗИТЬ(ПрочиеРасходы.СуммаНДС * ТаблицаКурсыВалютСтрокОтчета.КоэффициентПересчетаУпр КАК ЧИСЛО(31,2)) КАК СуммаБезНДС,
| 0 КАК ПостояннаяРазница,
| 0 КАК ВременнаяРазница,
|
| ПрочиеРасходы.ИдентификаторСтроки КАК ИдентификаторСтроки,
| ПрочиеРасходы.ИдентификаторСтроки КАК ИдентификаторФинЗаписи,
| ЗНАЧЕНИЕ(Справочник.НастройкиХозяйственныхОпераций.ПрочиеРасходыПодотчетногоЛица) КАК НастройкаХозяйственнойОперации
|ПОМЕСТИТЬ ВтИсходныеДвиженияПоПрочимАктивамПассивам
|ИЗ
| Документ.АвансовыйОтчет.ПрочиеРасходы КАК ПрочиеРасходы
|
| ЛЕВОЕ СОЕДИНЕНИЕ ВТКурсыВалютСтрокОтчета КАК ТаблицаКурсыВалютСтрокОтчета
| ПО ТаблицаКурсыВалютСтрокОтчета.ИдентификаторСтроки = ПрочиеРасходы.ИдентификаторСтроки
|ГДЕ
| ПрочиеРасходы.Ссылка = &Ссылка
| И ПрочиеРасходы.Ссылка.Статус = ЗНАЧЕНИЕ(Перечисление.СтатусыАвансовогоОтчета.Утвержден)
| И ПрочиеРасходы.СтатьяРасходов ССЫЛКА ПланВидовХарактеристик.СтатьиАктивовПассивов
| И НЕ ПрочиеРасходы.Отменено
|";
ТекстыЗапроса.Добавить(ТекстЗапроса, ИмяРегистра);
Возврат ТекстЗапроса;
КонецФункции
Процедура СформироватьСуммыДокументаВВалютахУчета(Запрос, ТекстыЗапроса, Регистры = Неопределено) Экспорт
ИмяРегистра = "СуммыДокументовВВалютахУчета";
Если Регистры <> Неопределено И Не ПроведениеДокументов.ТребуетсяТаблицаДляДвижений(ИмяРегистра, Регистры) Тогда
Возврат;
КонецЕсли;
Если ПроведениеДокументов.ЕстьТаблицаЗапроса("СуммыДокументовВВалютахУчета", ТекстыЗапроса) Тогда
Возврат;
КонецЕсли;
ТекстЗапросаТаблицаВтСуммыДокументовВВалютахУчета(Запрос, ТекстыЗапроса);
Текст = "
|////////////////////////////////////////////////////////////////////////////////
|// Таблица СуммыДокументовВВалютахУчета
|"+
"ВЫБРАТЬ
| *
|ИЗ
| ВтСуммыДокументовВВалютахУчета";
ТекстыЗапроса.Добавить(Текст, ИмяРегистра);
КонецПроцедуры
Функция ТекстЗапросаТаблицаВтСуммыДокументовВВалютахУчета(Запрос, ТекстыЗапроса)
ИмяРегистра = "СуммыДокументовВВалютеРегл";
Если Не ПроведениеДокументов.ЕстьТаблицаЗапроса("ВТКурсыВалютСтрокОтчета", ТекстыЗапроса) Тогда
ТекстЗапросаВТКурсыВалютСтрокОтчета(Запрос, ТекстыЗапроса);
КонецЕсли;
Если Не ПроведениеДокументов.ЕстьТаблицаЗапроса("ВТКурсыВалютУпр", ТекстыЗапроса) Тогда
ТекстЗапросаВТКурсыВалютУпр(Запрос, ТекстыЗапроса);
КонецЕсли;
Если Не ПроведениеДокументов.ЕстьТаблицаЗапроса("ВТКурсыВалютРегл", ТекстыЗапроса) Тогда
ТекстЗапросаВТКурсыВалютРегл(Запрос, ТекстыЗапроса);
КонецЕсли;
ТекстЗапроса = "
|ВЫБРАТЬ
| &Ссылка КАК Ссылка,
| ТаблицаДокумента.НомерСтроки,
| &Период КАК Период,
| ВЫБОР КОГДА &Мультивалютный ТОГДА
| ТаблицаДокумента.Валюта
| ИНАЧЕ
| &Валюта
| КОНЕЦ КАК Валюта,
| ВЫБОР КОГДА &Мультивалютный ТОГДА
| ТаблицаДокумента.Валюта
| ИНАЧЕ
| &Валюта
| КОНЕЦ КАК ВалютаДокумента,
| ТаблицаДокумента.ИдентификаторСтроки КАК ИдентификаторСтроки,
| ТаблицаДокумента.СуммаСНДС - ТаблицаДокумента.СуммаНДС КАК СуммаБезНДС,
| ТаблицаДокумента.СтавкаНДС КАК СтавкаНДС,
| ТаблицаДокумента.СуммаНДС КАК СуммаНДС,
| ВЫРАЗИТЬ(ТаблицаДокумента.СуммаСНДС * ТаблицаКурсыВалютСтрокОтчета.КоэффициентПересчетаРегл КАК ЧИСЛО(31,2))
| - ВЫРАЗИТЬ(ТаблицаДокумента.СуммаНДС * ТаблицаКурсыВалютСтрокОтчета.КоэффициентПересчетаРегл КАК ЧИСЛО(31,2)) КАК СуммаБезНДСРегл,
| ТаблицаДокумента.СуммаНДС * ТаблицаКурсыВалютСтрокОтчета.КоэффициентПересчетаРегл КАК СуммаНДСРегл,
| НЕОПРЕДЕЛЕНО КАК ТипРасчетов,
| ВЫРАЗИТЬ(ТаблицаДокумента.СуммаСНДС * ТаблицаКурсыВалютСтрокОтчета.КоэффициентПересчетаУпр КАК ЧИСЛО(31,2))
| - ВЫРАЗИТЬ(ТаблицаДокумента.СуммаНДС * ТаблицаКурсыВалютСтрокОтчета.КоэффициентПересчетаУпр КАК ЧИСЛО(31,2)) КАК СуммаБезНДСУпр,
| ТаблицаДокумента.СуммаНДС * ТаблицаКурсыВалютСтрокОтчета.КоэффициентПересчетаУпр КАК СуммаНДСУпр,
|
| ЛОЖЬ КАК ОтражаетсяВРасчетах,
| ТаблицаДокумента.СуммаСНДС КАК СуммаСНДС,
| &Период КАК ПериодБазыНДС,
| НЕОПРЕДЕЛЕНО КАК ОбъектРасчетов,
| ВЫРАЗИТЬ(ТаблицаДокумента.СуммаСНДС * ТаблицаКурсыВалютСтрокОтчета.КоэффициентПересчетаРегл КАК ЧИСЛО(31,2))
| - ВЫРАЗИТЬ(ТаблицаДокумента.СуммаНДС * ТаблицаКурсыВалютСтрокОтчета.КоэффициентПересчетаРегл КАК ЧИСЛО(31,2)) КАК БазаНДСРегл,
| НЕОПРЕДЕЛЕНО КАК ВалютаВзаиморасчетов,
| 0 КАК СуммаВзаиморасчетов,
| 0 КАК СуммаНДСВзаиморасчетов
|ПОМЕСТИТЬ ВтСуммыДокументовВВалютахУчета
|ИЗ
| Документ.АвансовыйОтчет.ПрочиеРасходы КАК ТаблицаДокумента
|
| ЛЕВОЕ СОЕДИНЕНИЕ ВТКурсыВалютСтрокОтчета КАК ТаблицаКурсыВалютСтрокОтчета
| ПО ТаблицаКурсыВалютСтрокОтчета.ИдентификаторСтроки = ТаблицаДокумента.ИдентификаторСтроки
|ГДЕ
| ТаблицаДокумента.Ссылка = &Ссылка
| И ТаблицаДокумента.Ссылка.Статус = ЗНАЧЕНИЕ(Перечисление.СтатусыАвансовогоОтчета.Утвержден)
| И НЕ ТаблицаДокумента.Отменено
|
|ОБЪЕДИНИТЬ ВСЕ
|
|ВЫБРАТЬ
| &Ссылка КАК Ссылка,
| ТаблицаДокумента.НомерСтроки,
| &Период КАК Период,
| ВЫБОР КОГДА &Мультивалютный ТОГДА
| ТаблицаДокумента.Валюта
| ИНАЧЕ
| &Валюта
| КОНЕЦ КАК Валюта,
| ВЫБОР КОГДА &Мультивалютный ТОГДА
| ТаблицаДокумента.Валюта
| ИНАЧЕ
| &Валюта
| КОНЕЦ КАК ВалютаДокумента,
| ТаблицаДокумента.ИдентификаторСтроки КАК ИдентификаторСтроки,
| ТаблицаДокумента.Сумма КАК СуммаБезНДС,
| НЕОПРЕДЕЛЕНО КАК СтавкаНДС,
| 0 КАК СуммаНДС,
| ТаблицаДокумента.Сумма * ТаблицаКурсыВалютСтрокОтчета.КоэффициентПересчетаРегл КАК СуммаБезНДСРегл,
| 0 КАК СуммаНДСРегл,
| НЕОПРЕДЕЛЕНО КАК ТипРасчетов,
| ТаблицаДокумента.Сумма * ТаблицаКурсыВалютСтрокОтчета.КоэффициентПересчетаУпр КАК СуммаБезНДСУпр,
| 0 КАК СуммаНДСУпр,
| ИСТИНА КАК ОтражаетсяВРасчетах,
| ТаблицаДокумента.Сумма КАК СуммаСНДС,
| НЕОПРЕДЕЛЕНО КАК ПериодБазыНДС,
| ТаблицаДокумента.ОбъектРасчетов КАК ОбъектРасчетов,
| 0 КАК БазаНДСРегл,
| ТаблицаДокумента.ВалютаВзаиморасчетов КАК ВалютаВзаиморасчетов,
| ТаблицаДокумента.СуммаВзаиморасчетов КАК СуммаВзаиморасчетов,
| 0 КАК СуммаНДСВзаиморасчетов
|
|ИЗ
| Документ.АвансовыйОтчет.ОплатаПоставщикам КАК ТаблицаДокумента
|
| ЛЕВОЕ СОЕДИНЕНИЕ ВТКурсыВалютСтрокОтчета КАК ТаблицаКурсыВалютСтрокОтчета
| ПО ТаблицаКурсыВалютСтрокОтчета.ИдентификаторСтроки = ТаблицаДокумента.ИдентификаторСтроки
|ГДЕ
| ТаблицаДокумента.Ссылка = &Ссылка
| И ТаблицаДокумента.Ссылка.Статус = ЗНАЧЕНИЕ(Перечисление.СтатусыАвансовогоОтчета.Утвержден)
|
|ОБЪЕДИНИТЬ ВСЕ
|
|ВЫБРАТЬ
| &Ссылка КАК Ссылка,
| ТаблицаДокумента.НомерСтроки,
| &Период КАК Период,
| ВЫБОР КОГДА ТаблицаДокумента.ВалютаКонвертации <> &ВалютаРегламентированногоУчета ТОГДА
| ТаблицаДокумента.ВалютаКонвертации
| ИНАЧЕ
| ТаблицаДокумента.Валюта
| КОНЕЦ КАК Валюта,
| ВЫБОР КОГДА ТаблицаДокумента.ВалютаКонвертации <> &ВалютаРегламентированногоУчета ТОГДА
| ТаблицаДокумента.ВалютаКонвертации
| ИНАЧЕ
| ТаблицаДокумента.Валюта
| КОНЕЦ КАК ВалютаДокумента,
| ТаблицаДокумента.ИдентификаторСтроки КАК ИдентификаторСтроки,
| ВЫБОР КОГДА ТаблицаДокумента.ВалютаКонвертации <> &ВалютаРегламентированногоУчета ТОГДА
| ТаблицаДокумента.СуммаКонвертации
| ИНАЧЕ
| ТаблицаДокумента.Сумма
| КОНЕЦ КАК СуммаБезНДС,
| НЕОПРЕДЕЛЕНО КАК СтавкаНДС,
| 0 КАК СуммаНДС,
| ВЫБОР КОГДА ТаблицаДокумента.ВалютаКонвертации <> &ВалютаРегламентированногоУчета ТОГДА
| ВЫРАЗИТЬ(ТаблицаДокумента.СуммаКонвертации * ЕСТЬNULL(ТаблицаКурсыВалютРеглСуммаКонвертации.КоэффициентПересчета, 0) КАК ЧИСЛО(31,2))
| ИНАЧЕ
| ВЫРАЗИТЬ(ТаблицаДокумента.Сумма * ЕСТЬNULL(ТаблицаКурсыВалютРеглСумма.КоэффициентПересчета, 0) КАК ЧИСЛО(31,2))
| КОНЕЦ КАК СуммаБезНДСРегл,
| 0 КАК СуммаНДСРегл,
| НЕОПРЕДЕЛЕНО КАК ТипРасчетов,
| ВЫБОР КОГДА ТаблицаДокумента.ВалютаКонвертации <> &ВалютаУправленческогоУчета ТОГДА
| ВЫРАЗИТЬ(ТаблицаДокумента.СуммаКонвертации * ЕСТЬNULL(ТаблицаКурсыВалютУпрСуммаКонвертации.КоэффициентПересчета, 0) КАК ЧИСЛО(31,2))
| ИНАЧЕ
| ВЫРАЗИТЬ(ТаблицаДокумента.Сумма * ЕСТЬNULL(ТаблицаКурсыВалютУпрСумма.КоэффициентПересчета, 0) КАК ЧИСЛО(31,2))
| КОНЕЦ КАК СуммаБезНДСУпр,
| 0 КАК СуммаНДСУпр,
| ЛОЖЬ КАК ОтражаетсяВРасчетах,
| ВЫБОР КОГДА ТаблицаДокумента.ВалютаКонвертации <> &ВалютаРегламентированногоУчета ТОГДА
| ТаблицаДокумента.СуммаКонвертации
| ИНАЧЕ
| ТаблицаДокумента.Сумма
| КОНЕЦ КАК СуммаСНДС,
| &Период КАК ПериодБазыНДС,
| НЕОПРЕДЕЛЕНО КАК ОбъектРасчетов,
| 0 КАК БазаНДСРегл,
| НЕОПРЕДЕЛЕНО КАК ВалютаВзаиморасчетов,
| 0 КАК СуммаВзаиморасчетов,
| 0 КАК СуммаНДСВзаиморасчетов
|
|ИЗ
| Документ.АвансовыйОтчет.КонвертацияВалюты КАК ТаблицаДокумента
|
| ЛЕВОЕ СОЕДИНЕНИЕ ВТКурсыВалютРегл КАК ТаблицаКурсыВалютРеглСумма
| ПО ТаблицаКурсыВалютРеглСумма.Валюта = ТаблицаДокумента.Валюта
| ЛЕВОЕ СОЕДИНЕНИЕ ВТКурсыВалютРегл КАК ТаблицаКурсыВалютРеглСуммаКонвертации
| ПО ТаблицаКурсыВалютРеглСуммаКонвертации.Валюта = ТаблицаДокумента.ВалютаКонвертации
| ЛЕВОЕ СОЕДИНЕНИЕ ВТКурсыВалютУпр КАК ТаблицаКурсыВалютУпрСумма
| ПО ТаблицаКурсыВалютУпрСумма.Валюта = ТаблицаДокумента.Валюта
| ЛЕВОЕ СОЕДИНЕНИЕ ВТКурсыВалютУпр КАК ТаблицаКурсыВалютУпрСуммаКонвертации
| ПО ТаблицаКурсыВалютУпрСуммаКонвертации.Валюта = ТаблицаДокумента.ВалютаКонвертации
|ГДЕ
| ТаблицаДокумента.Ссылка = &Ссылка
| И &Мультивалютный
| И ТаблицаДокумента.Ссылка.Статус = ЗНАЧЕНИЕ(Перечисление.СтатусыАвансовогоОтчета.Утвержден)
|";
ТекстыЗапроса.Добавить(ТекстЗапроса, ИмяРегистра);
Возврат ТекстЗапроса;
КонецФункции
Функция ТекстЗапросаТаблицаВтИсходныеПартииПрочихРасходов(Запрос, ТекстыЗапроса)
ИмяРегистра = "ВтИсходныеПартииПрочихРасходов";
Если Не ПроведениеДокументов.ЕстьТаблицаЗапроса("ВТКурсыВалютСтрокОтчета", ТекстыЗапроса) Тогда
ТекстЗапросаВТКурсыВалютСтрокОтчета(Запрос, ТекстыЗапроса);
КонецЕсли;
ТекстЗапроса = "
|ВЫБРАТЬ
| &Период КАК Период,
| ЗНАЧЕНИЕ(ВидДвиженияНакопления.Приход) КАК ВидДвижения,
| &Организация КАК Организация,
| ПрочиеРасходы.Подразделение КАК Подразделение,
| ПрочиеРасходы.НаправлениеДеятельности КАК НаправлениеДеятельности,
| ПрочиеРасходы.СтатьяРасходов КАК СтатьяРасходов,
| ПрочиеРасходы.АналитикаРасходов КАК АналитикаРасходов,
| НЕОПРЕДЕЛЕНО КАК АналитикаАктивовПассивов,
| &Ссылка КАК ДокументПоступленияРасходов,
| НЕОПРЕДЕЛЕНО КАК АналитикаУчетаПартий,
| НЕОПРЕДЕЛЕНО КАК АналитикаУчетаНоменклатуры,
| НЕОПРЕДЕЛЕНО КАК ВидДеятельностиНДС,
|
| ПрочиеРасходы.СуммаСНДС * ТаблицаКурсыВалютСтрокОтчета.КоэффициентПересчетаУпр Стоимость,
| ВЫРАЗИТЬ(ПрочиеРасходы.СуммаСНДС * ТаблицаКурсыВалютСтрокОтчета.КоэффициентПересчетаРегл КАК ЧИСЛО(31,2))
| - ВЫРАЗИТЬ(ПрочиеРасходы.СуммаНДС * ТаблицаКурсыВалютСтрокОтчета.КоэффициентПересчетаУпр КАК ЧИСЛО(31,2)) КАК СтоимостьБезНДС,
| 0 КАК НДСУпр,
| ВЫРАЗИТЬ(ПрочиеРасходы.СуммаСНДС * ТаблицаКурсыВалютСтрокОтчета.КоэффициентПересчетаРегл КАК ЧИСЛО(31,2))
| - ВЫРАЗИТЬ(ПрочиеРасходы.СуммаНДС * ТаблицаКурсыВалютСтрокОтчета.КоэффициентПересчетаРегл КАК ЧИСЛО(31,2)) КАК СтоимостьРегл,
| 0 КАК ПостояннаяРазница,
| 0 КАК ВременнаяРазница,
| 0 КАК НДСРегл,
| ЗНАЧЕНИЕ(Перечисление.ХозяйственныеОперации.ПрочиеРасходы) КАК ХозяйственнаяОперация,
|
| ПрочиеРасходы.ИдентификаторСтроки КАК ИдентификаторФинЗаписи,
| ЗНАЧЕНИЕ(Справочник.НастройкиХозяйственныхОпераций.ПрочиеРасходыПодотчетногоЛица) КАК НастройкаХозяйственнойОперации
|
|ПОМЕСТИТЬ ВтИсходныеПартииПрочихРасходов
|ИЗ
| Документ.АвансовыйОтчет.ПрочиеРасходы КАК ПрочиеРасходы
|
| ЛЕВОЕ СОЕДИНЕНИЕ ВТКурсыВалютСтрокОтчета КАК ТаблицаКурсыВалютСтрокОтчета
| ПО ТаблицаКурсыВалютСтрокОтчета.ИдентификаторСтроки = ПрочиеРасходы.ИдентификаторСтроки
|ГДЕ
| ПрочиеРасходы.Ссылка = &Ссылка
| И ПрочиеРасходы.Ссылка.Статус = ЗНАЧЕНИЕ(Перечисление.СтатусыАвансовогоОтчета.Утвержден)
| И НЕ ПрочиеРасходы.Отменено
|";
ТекстыЗапроса.Добавить(ТекстЗапроса, ИмяРегистра);
Возврат ТекстЗапроса;
КонецФункции
Функция ТекстЗапросаТаблицаВтПартииПрочихРасходов(Запрос, ТекстыЗапроса) Экспорт
ИмяРегистра = "ВтПартииПрочихРасходов";
Если Не ПроведениеДокументов.ЕстьТаблицаЗапроса("ВтИсходныеПартииПрочихРасходов", ТекстыЗапроса) Тогда
ТекстЗапросаТаблицаВтИсходныеПартииПрочихРасходов(Запрос, ТекстыЗапроса);
КонецЕсли;
ТекстЗапроса = РегистрыНакопления.ПартииПрочихРасходов.ТекстЗапросаТаблицаВтПартииПрочихРасходов();
ТекстыЗапроса.Добавить(ТекстЗапроса, ИмяРегистра);
Возврат ТекстЗапроса;
КонецФункции
Функция ТекстЗапросаТаблицаПартииПрочихРасходов(Запрос, ТекстыЗапроса, Регистры)
ИмяРегистра = "ПартииПрочихРасходов";
Если НЕ ПроведениеДокументов.ТребуетсяТаблицаДляДвижений(ИмяРегистра, Регистры) Тогда
Возврат "";
КонецЕсли;
Если Не ПроведениеДокументов.ЕстьТаблицаЗапроса("ВТКурсыВалютСтрокОтчета", ТекстыЗапроса) Тогда
ТекстЗапросаВТКурсыВалютСтрокОтчета(Запрос, ТекстыЗапроса);
КонецЕсли;
Если Не ПроведениеДокументов.ЕстьТаблицаЗапроса("ВтПартииПрочихРасходов", ТекстыЗапроса) Тогда
ТекстЗапросаТаблицаВтПартииПрочихРасходов(Запрос, ТекстыЗапроса);
КонецЕсли;
ТекстЗапроса = РегистрыНакопления.ПартииПрочихРасходов.ТекстЗапросаТаблицаПартииПрочихРасходов();
ТекстыЗапроса.Добавить(ТекстЗапроса, ИмяРегистра);
Возврат ТекстЗапроса;
КонецФункции
Функция ТекстЗапросаТаблицаДвиженияДенежныхСредств(Запрос, ТекстыЗапроса, Регистры)
ИмяРегистра = "ДвиженияДенежныхСредств";
Если НЕ ПроведениеДокументов.ТребуетсяТаблицаДляДвижений(ИмяРегистра, Регистры) Тогда
Возврат "";
КонецЕсли;
Если Не ПроведениеДокументов.ЕстьТаблицаЗапроса("ВТКурсыВалютУпр", ТекстыЗапроса) Тогда
ТекстЗапросаВТКурсыВалютУпр(Запрос, ТекстыЗапроса);
КонецЕсли;
Если Не ПроведениеДокументов.ЕстьТаблицаЗапроса("ВТКурсыВалютРегл", ТекстыЗапроса) Тогда
ТекстЗапросаВТКурсыВалютРегл(Запрос, ТекстыЗапроса);
КонецЕсли;
ТекстЗапроса = "
|ВЫБРАТЬ
| ДанныеДокумента.Дата КАК Период,
| Значение(Перечисление.ХозяйственныеОперации.КонвертацияВалютыПодотчетнымЛицом) КАК ХозяйственнаяОперация,
| ДанныеДокумента.Организация КАК Организация,
| ДанныеДокумента.Подразделение КАК Подразделение,
|
| ДанныеДокумента.ПодотчетноеЛицо КАК ДенежныеСредства,
| ЗНАЧЕНИЕ(Справочник.НаправленияДеятельности.ПустаяСсылка) КАК НаправлениеДеятельности,
|
| Значение(Перечисление.ТипыДенежныхСредств.ДенежныеСредстваУПодотчетногоЛица) КАК ТипДенежныхСредств,
|
| ВЫБОР КОГДА &КонтролироватьВыдачуПодОтчетВРазрезеЦелей ТОГДА
| ТаблицаКонвертацияВалюты.СтатьяДвиженияДенежныхСредств
| КОНЕЦ КАК СтатьяДвиженияДенежныхСредств,
| ТаблицаКонвертацияВалюты.Валюта КАК Валюта,
|
| ДанныеДокумента.ПодотчетноеЛицо КАК КорДенежныеСредства,
| Значение(Перечисление.ТипыДенежныхСредств.ДенежныеСредстваУПодотчетногоЛица) КАК КорТипДенежныхСредств,
| ТаблицаКонвертацияВалюты.ВалютаКонвертации КАК КорВалюта,
|
| ВЫРАЗИТЬ(ТаблицаКонвертацияВалюты.СуммаКонвертации * ЕСТЬNULL(ТаблицаКурсыВалютУпр.КоэффициентПересчета, 0) КАК ЧИСЛО(31,2)) КАК Сумма,
| ВЫРАЗИТЬ(ТаблицаКонвертацияВалюты.СуммаКонвертации * ЕСТЬNULL(ТаблицаКурсыВалютРегл.КоэффициентПересчета, 0) КАК ЧИСЛО(31,2)) КАК СуммаРегл,
| ТаблицаКонвертацияВалюты.Сумма КАК СуммаВВалюте,
| ТаблицаКонвертацияВалюты.СуммаКонвертации КАК СуммаВКорВалюте,
|
| НЕОПРЕДЕЛЕНО КАК ИсточникГФУДенежныхСредств,
| НЕОПРЕДЕЛЕНО КАК ИсточникКорГФУДенежныхСредств
|ИЗ
| Документ.АвансовыйОтчет.КонвертацияВалюты КАК ТаблицаКонвертацияВалюты
|
| ВНУТРЕННЕЕ СОЕДИНЕНИЕ Документ.АвансовыйОтчет КАК ДанныеДокумента
| ПО ТаблицаКонвертацияВалюты.Ссылка = ДанныеДокумента.Ссылка
|
| ЛЕВОЕ СОЕДИНЕНИЕ ВТКурсыВалютУпр КАК ТаблицаКурсыВалютУпр
| ПО ТаблицаКурсыВалютУпр.Валюта = ТаблицаКонвертацияВалюты.ВалютаКонвертации
| ЛЕВОЕ СОЕДИНЕНИЕ ВТКурсыВалютРегл КАК ТаблицаКурсыВалютРегл
| ПО ТаблицаКурсыВалютРегл.Валюта = ТаблицаКонвертацияВалюты.ВалютаКонвертации
|
|ГДЕ
| ДанныеДокумента.Ссылка = &Ссылка
| И ДанныеДокумента.Статус = ЗНАЧЕНИЕ(Перечисление.СтатусыАвансовогоОтчета.Утвержден)
|";
ТекстыЗапроса.Добавить(ТекстЗапроса, ИмяРегистра);
Возврат ТекстЗапроса;
КонецФункции
Функция ТекстЗапросаТаблицаДвиженияДенежныеСредстваДоходыРасходы(Запрос, ТекстыЗапроса, Регистры)
ИмяРегистра = "ДвиженияДенежныеСредстваДоходыРасходы";
Если НЕ ПроведениеДокументов.ТребуетсяТаблицаДляДвижений(ИмяРегистра, Регистры) Тогда
Возврат "";
КонецЕсли;
Если Не ПроведениеДокументов.ЕстьТаблицаЗапроса("ВТКурсыВалютСтрокОтчета", ТекстыЗапроса) Тогда
ТекстЗапросаВТКурсыВалютСтрокОтчета(Запрос, ТекстыЗапроса);
КонецЕсли;
Если Не ПроведениеДокументов.ЕстьТаблицаЗапроса("ТаблицаКурсовыхРазниц", ТекстыЗапроса) Тогда
ТекстЗапросаТаблицаКурсовыхРазниц(Запрос, ТекстыЗапроса);
КонецЕсли;
ТекстЗапроса = "
|ВЫБРАТЬ
| &Период КАК Период,
| Значение(Перечисление.ХозяйственныеОперации.ПрочиеРасходыПодотчетногоЛица) КАК ХозяйственнаяОперация,
| ДанныеДокумента.Организация КАК Организация,
| ДанныеДокумента.Подразделение КАК Подразделение,
| ТаблицаПрочиеРасходы.Подразделение КАК ПодразделениеДоходовРасходов,
|
| ДанныеДокумента.ПодотчетноеЛицо КАК ДенежныеСредства,
| Значение(Перечисление.ТипыДенежныхСредств.ДенежныеСредстваУПодотчетногоЛица) КАК ТипДенежныхСредств,
| ВЫБОР КОГДА &КонтролироватьВыдачуПодОтчетВРазрезеЦелей ТОГДА
| ТаблицаПрочиеРасходы.СтатьяДвиженияДенежныхСредств
| КОНЕЦ КАК СтатьяДвиженияДенежныхСредств,
|
| ТаблицаПрочиеРасходы.Валюта КАК Валюта,
|
| ТаблицаПрочиеРасходы.НаправлениеДеятельности КАК НаправлениеДеятельностиСтатьи,
| ТаблицаПрочиеРасходы.СтатьяРасходов КАК СтатьяДоходовРасходов,
| НЕОПРЕДЕЛЕНО КАК АналитикаДоходов,
| ТаблицаПрочиеРасходы.АналитикаРасходов КАК АналитикаРасходов,
| ТаблицаПрочиеРасходы.АналитикаАктивовПассивов КАК АналитикаАктивовПассивов,
|
| ТаблицаПрочиеРасходы.СуммаСНДС * ТаблицаКурсыВалютСтрокОтчета.КоэффициентПересчетаУпр КАК Сумма,
| ТаблицаПрочиеРасходы.СуммаСНДС * ТаблицаКурсыВалютСтрокОтчета.КоэффициентПересчетаРегл КАК СуммаРегл,
| ТаблицаПрочиеРасходы.СуммаСНДС КАК СуммаВВалюте,
| ТаблицаПрочиеРасходы.СуммаНДС * ТаблицаКурсыВалютСтрокОтчета.КоэффициентПересчетаУпр КАК СуммаНДС,
| ТаблицаПрочиеРасходы.СуммаНДС * ТаблицаКурсыВалютСтрокОтчета.КоэффициентПересчетаРегл КАК СуммаНДСРегл,
| ТаблицаПрочиеРасходы.СуммаНДС КАК СуммаНДСВВалютеПлатежа,
|
| НЕОПРЕДЕЛЕНО КАК ИсточникГФУДенежныхСредств,
| ТаблицаПрочиеРасходы.СтатьяРасходов КАК ИсточникГФУДоходовРасходов,
| ТаблицаПрочиеРасходы.СтавкаНДС КАК СтавкаНДС
|ИЗ
| Документ.АвансовыйОтчет КАК ДанныеДокумента
|
| ВНУТРЕННЕЕ СОЕДИНЕНИЕ
| Документ.АвансовыйОтчет.ПрочиеРасходы КАК ТаблицаПрочиеРасходы
| ПО
| ТаблицаПрочиеРасходы.Ссылка = &Ссылка
|
| ЛЕВОЕ СОЕДИНЕНИЕ ВТКурсыВалютСтрокОтчета КАК ТаблицаКурсыВалютСтрокОтчета
| ПО ТаблицаКурсыВалютСтрокОтчета.ИдентификаторСтроки = ТаблицаПрочиеРасходы.ИдентификаторСтроки
|ГДЕ
| ДанныеДокумента.Ссылка = &Ссылка
| И ДанныеДокумента.Статус = ЗНАЧЕНИЕ(Перечисление.СтатусыАвансовогоОтчета.Утвержден)
| И НЕ ТаблицаПрочиеРасходы.Отменено
|
|ОБЪЕДИНИТЬ ВСЕ
|
|ВЫБРАТЬ
| &Период КАК Период,
| ЗНАЧЕНИЕ(Перечисление.ХозяйственныеОперации.КурсовыеРазницыДСПрибыль) КАК ХозяйственнаяОперация,
| &Организация КАК Организация,
| &Подразделение КАК Подразделение,
| &Подразделение КАК ПодразделениеДоходовРасходов,
|
| &ПодотчетноеЛицо КАК ДенежныеСредства,
| Значение(Перечисление.ТипыДенежныхСредств.ДенежныеСредстваУПодотчетногоЛица) КАК ТипДенежныхСредств,
| ВЫБОР КОГДА &КонтролироватьВыдачуПодОтчетВРазрезеЦелей ТОГДА
| ТаблицаКурсовыхРазниц.СтатьяДвиженияДенежныхСредств
| КОНЕЦ КАК СтатьяДвиженияДенежныхСредств,
| ТаблицаКурсовыхРазниц.ВалютаКонвертации КАК Валюта,
|
| ЗНАЧЕНИЕ(Справочник.НаправленияДеятельности.ПустаяСсылка) КАК НаправлениеДеятельностиСтатьи,
| ЗНАЧЕНИЕ(ПланВидовХарактеристик.СтатьиДоходов.КурсовыеРазницы) КАК СтатьяДоходовРасходов,
| ЗНАЧЕНИЕ(Перечисление.АналитикаКурсовыхРазниц.ДенежныеСредства) КАК АналитикаДоходов,
| НЕОПРЕДЕЛЕНО КАК АналитикаРасходов,
| НЕОПРЕДЕЛЕНО КАК АналитикаАктивовПассивов,
|
| ТаблицаКурсовыхРазниц.СуммаУпр КАК Сумма,
| ТаблицаКурсовыхРазниц.СуммаРегл КАК СуммаРегл,
| 0 КАК СуммаВВалюте,
| 0 КАК СуммаНДС,
| 0 КАК СуммаНДСРегл,
| 0 КАК СуммаНДСВВалютеПлатежа,
|
| НЕОПРЕДЕЛЕНО КАК ИсточникГФУДенежныхСредств,
| ЗНАЧЕНИЕ(ПланВидовХарактеристик.СтатьиДоходов.КурсовыеРазницы) КАК ИсточникГФУДоходовРасходов,
| НЕОПРЕДЕЛЕНО КАК СтавкаНДС
|ИЗ
| ТаблицаКурсовыхРазниц КАК ТаблицаКурсовыхРазниц
|
|ГДЕ
| ТаблицаКурсовыхРазниц.СуммаУпр > 0 ИЛИ ТаблицаКурсовыхРазниц.СуммаРегл > 0
|
|ОБЪЕДИНИТЬ ВСЕ
|
|ВЫБРАТЬ
| &Период КАК Период,
| ЗНАЧЕНИЕ(Перечисление.ХозяйственныеОперации.КурсовыеРазницыДСУбыток) КАК ХозяйственнаяОперация,
| &Организация КАК Организация,
| &Подразделение КАК Подразделение,
| &Подразделение КАК ПодразделениеДоходовРасходов,
|
| &ПодотчетноеЛицо КАК ДенежныеСредства,
| Значение(Перечисление.ТипыДенежныхСредств.ДенежныеСредстваУПодотчетногоЛица) КАК ТипДенежныхСредств,
| ВЫБОР КОГДА &КонтролироватьВыдачуПодОтчетВРазрезеЦелей ТОГДА
| ТаблицаКурсовыхРазниц.СтатьяДвиженияДенежныхСредств
| КОНЕЦ КАК СтатьяДвиженияДенежныхСредств,
| ТаблицаКурсовыхРазниц.ВалютаКонвертации КАК Валюта,
|
| ЗНАЧЕНИЕ(Справочник.НаправленияДеятельности.ПустаяСсылка) КАК НаправлениеДеятельностиСтатьи,
| ЗНАЧЕНИЕ(ПланВидовХарактеристик.СтатьиРасходов.КурсовыеРазницы) КАК СтатьяДоходовРасходов,
| НЕОПРЕДЕЛЕНО КАК АналитикаДоходов,
| ЗНАЧЕНИЕ(Перечисление.АналитикаКурсовыхРазниц.ДенежныеСредства) КАК АналитикаРасходов,
| НЕОПРЕДЕЛЕНО КАК АналитикаАктивовПассивов,
|
| -ТаблицаКурсовыхРазниц.СуммаУпр КАК Сумма,
| -ТаблицаКурсовыхРазниц.СуммаРегл КАК СуммаРегл,
| 0 КАК СуммаВВалюте,
| 0 КАК СуммаНДС,
| 0 КАК СуммаНДСРегл,
| 0 КАК СуммаНДСВВалютеПлатежа,
|
| НЕОПРЕДЕЛЕНО КАК ИсточникГФУДенежныхСредств,
| ЗНАЧЕНИЕ(ПланВидовХарактеристик.СтатьиДоходов.КурсовыеРазницы) КАК ИсточникГФУДоходовРасходов,
| НЕОПРЕДЕЛЕНО КАК СтавкаНДС
|
|ИЗ
| ТаблицаКурсовыхРазниц КАК ТаблицаКурсовыхРазниц
|
|ГДЕ
| ТаблицаКурсовыхРазниц.СуммаУпр < 0 ИЛИ ТаблицаКурсовыхРазниц.СуммаРегл < 0
|";
ТекстыЗапроса.Добавить(ТекстЗапроса, ИмяРегистра);
Возврат ТекстЗапроса;
КонецФункции
Функция ТекстЗапросаТаблицаДвиженияДенежныеСредстваКонтрагент(Запрос, ТекстыЗапроса, Регистры)
ИмяРегистра = "ДвиженияДенежныеСредстваКонтрагент";
Если НЕ ПроведениеДокументов.ТребуетсяТаблицаДляДвижений(ИмяРегистра, Регистры) Тогда
Возврат "";
КонецЕсли;
Если НЕ ПроведениеДокументов.ЕстьТаблицаЗапроса("ТаблицаОплатаПоставщикам", ТекстыЗапроса) Тогда
ТекстЗапросаВременнаяТаблицаРасшифровкаПлатежа(Запрос, ТекстыЗапроса);
КонецЕсли;
Если Не ПроведениеДокументов.ЕстьТаблицаЗапроса("ВТКурсыВалютСтрокОтчета", ТекстыЗапроса) Тогда
ТекстЗапросаВТКурсыВалютСтрокОтчета(Запрос, ТекстыЗапроса);
КонецЕсли;
ТекстЗапроса =
"ВЫБРАТЬ
| ДанныеДокумента.Период КАК Период,
| ДанныеДокумента.ХозяйственнаяОперация КАК ХозяйственнаяОперация,
| ДанныеДокумента.Организация КАК Организация,
| ДанныеДокумента.Подразделение КАК Подразделение,
|
| ДанныеДокумента.ДенежныеСредства КАК ДенежныеСредства,
| Значение(Перечисление.ТипыДенежныхСредств.ДенежныеСредстваУПодотчетногоЛица) КАК ТипДенежныхСредств,
| ДанныеДокумента.СтатьяДвиженияДенежныхСредств КАК СтатьяДвиженияДенежныхСредств,
| ДанныеДокумента.ВалютаПлатежа КАК ВалютаПлатежа,
|
| ДанныеДокумента.Партнер КАК Партнер,
| ДанныеДокумента.Контрагент КАК Контрагент,
| ДанныеДокумента.Договор КАК Договор,
| ДанныеДокумента.ОбъектРасчетов КАК ОбъектРасчетов,
| НЕОПРЕДЕЛЕНО КАК РасчетныйДокумент,
|
| СУММА(ДанныеДокумента.СуммаОплаты) КАК СуммаОплаты,
| СУММА(ДанныеДокумента.СуммаОплатыРегл) КАК СуммаОплатыРегл,
| СУММА(ДанныеДокумента.СуммаОплатыВВалютеПлатежа) КАК СуммаОплатыВВалютеПлатежа,
|
| СУММА(ДанныеДокумента.СуммаПостоплаты) КАК СуммаПостоплаты,
| СУММА(ДанныеДокумента.СуммаПостоплатыРегл) КАК СуммаПостоплатыРегл,
| СУММА(ДанныеДокумента.СуммаПостоплатыВВалютеПлатежа) КАК СуммаПостоплатыВВалютеПлатежа,
|
| СУММА(ДанныеДокумента.СуммаПредоплаты) КАК СуммаПредоплаты,
| СУММА(ДанныеДокумента.СуммаПредоплатыРегл) КАК СуммаПредоплатыРегл,
| СУММА(ДанныеДокумента.СуммаПредоплатыВВалютеПлатежа) КАК СуммаПредоплатыВВалютеПлатежа,
|
| ДанныеДокумента.ВалютаВзаиморасчетов КАК ВалютаВзаиморасчетов,
|
| СУММА(ДанныеДокумента.СуммаОплатыВВалютеВзаиморасчетов) КАК СуммаОплатыВВалютеВзаиморасчетов,
| СУММА(ДанныеДокумента.СуммаПостоплатыВВалютеВзаиморасчетов) КАК СуммаПостоплатыВВалютеВзаиморасчетов,
| СУММА(ДанныеДокумента.СуммаПредоплатыВВалютеВзаиморасчетов) КАК СуммаПредоплатыВВалютеВзаиморасчетов,
|
| ДанныеДокумента.ИсточникГФУДенежныхСредств КАК ИсточникГФУДенежныхСредств,
| ДанныеДокумента.ИсточникГФУРасчетов КАК ИсточникГФУРасчетов,
| ЛОЖЬ КАК ОтложенноеПроведение
|
|ИЗ (
| ВЫБРАТЬ
| &Период КАК Период,
| Значение(Перечисление.ХозяйственныеОперации.ОплатаПоставщикуПодотчетнымЛицом) КАК ХозяйственнаяОперация,
| ДанныеДокумента.Организация КАК Организация,
| ДанныеДокумента.Подразделение КАК Подразделение,
|
| ДанныеДокумента.ПодотчетноеЛицо КАК ДенежныеСредства,
| ВЫБОР КОГДА &КонтролироватьВыдачуПодОтчетВРазрезеЦелей ТОГДА
| ТаблицаОплатаПоставщикам.СтатьяДвиженияДенежныхСредств
| КОНЕЦ КАК СтатьяДвиженияДенежныхСредств,
| ТаблицаОплатаПоставщикам.Валюта КАК ВалютаПлатежа,
|
| ТаблицаОплатаПоставщикам.Поставщик КАК Партнер,
| ТаблицаОплатаПоставщикам.Контрагент КАК Контрагент,
| ТаблицаОплатаПоставщикам.ОбъектРасчетов.Договор КАК Договор,
| ТаблицаОплатаПоставщикам.ОбъектРасчетов КАК ОбъектРасчетов,
| ВЫБОР КОГДА ТаблицаОплатаПоставщикам.ВалютаВзаиморасчетов = &ВалютаУправленческогоУчета
| ТОГДА ТаблицаОплатаПоставщикам.СуммаВзаиморасчетов
| ИНАЧЕ ТаблицаОплатаПоставщикам.Сумма * ТаблицаКурсыВалютСтрокОтчета.КоэффициентПересчетаУпр
| КОНЕЦ КАК СуммаОплаты,
| ВЫБОР КОГДА ТаблицаОплатаПоставщикам.ВалютаВзаиморасчетов = &ВалютаРегламентированногоУчета И ТаблицаОплатаПоставщикам.Валюта <> &ВалютаРегламентированногоУчета
| ТОГДА ТаблицаОплатаПоставщикам.СуммаВзаиморасчетов
| ИНАЧЕ ТаблицаОплатаПоставщикам.Сумма * ТаблицаКурсыВалютСтрокОтчета.КоэффициентПересчетаРегл
| КОНЕЦ КАК СуммаОплатыРегл,
| ТаблицаОплатаПоставщикам.Сумма КАК СуммаОплатыВВалютеПлатежа,
|
| 0 КАК СуммаПостоплаты,
| 0 КАК СуммаПостоплатыРегл,
| 0 КАК СуммаПостоплатыВВалютеПлатежа,
|
| 0 КАК СуммаПредоплаты,
| 0 КАК СуммаПредоплатыРегл,
| 0 КАК СуммаПредоплатыВВалютеПлатежа,
|
| ТаблицаОплатаПоставщикам.ВалютаВзаиморасчетов КАК ВалютаВзаиморасчетов,
|
| ТаблицаОплатаПоставщикам.СуммаВзаиморасчетов КАК СуммаОплатыВВалютеВзаиморасчетов,
| 0 КАК СуммаПостоплатыВВалютеВзаиморасчетов,
| 0 КАК СуммаПредоплатыВВалютеВзаиморасчетов,
|
| НЕОПРЕДЕЛЕНО КАК ИсточникГФУДенежныхСредств,
| ТаблицаОплатаПоставщикам.ОбъектРасчетов КАК ИсточникГФУРасчетов
| ИЗ
| Документ.АвансовыйОтчет КАК ДанныеДокумента
|
| ВНУТРЕННЕЕ СОЕДИНЕНИЕ
| Документ.АвансовыйОтчет.ОплатаПоставщикам КАК ТаблицаОплатаПоставщикам
| ПО
| ДанныеДокумента.Ссылка = ТаблицаОплатаПоставщикам.Ссылка
|
| ЛЕВОЕ СОЕДИНЕНИЕ ВТКурсыВалютСтрокОтчета КАК ТаблицаКурсыВалютСтрокОтчета
| ПО ТаблицаКурсыВалютСтрокОтчета.ИдентификаторСтроки = ТаблицаОплатаПоставщикам.ИдентификаторСтроки
| ГДЕ
| ДанныеДокумента.Ссылка = &Ссылка
| И ДанныеДокумента.Статус = ЗНАЧЕНИЕ(Перечисление.СтатусыАвансовогоОтчета.Утвержден)
|
| ) КАК ДанныеДокумента
|
|СГРУППИРОВАТЬ ПО
| ДанныеДокумента.Период,
| ДанныеДокумента.ХозяйственнаяОперация,
| ДанныеДокумента.Организация,
| ДанныеДокумента.Подразделение,
| ДанныеДокумента.ДенежныеСредства,
| ДанныеДокумента.СтатьяДвиженияДенежныхСредств,
| ДанныеДокумента.ВалютаПлатежа,
| ДанныеДокумента.Партнер,
| ДанныеДокумента.Контрагент,
| ДанныеДокумента.Договор,
| ДанныеДокумента.ОбъектРасчетов,
| ДанныеДокумента.ВалютаВзаиморасчетов,
| ДанныеДокумента.ИсточникГФУДенежныхСредств,
| ДанныеДокумента.ИсточникГФУРасчетов";
ТекстыЗапроса.Добавить(ТекстЗапроса, ИмяРегистра);
Возврат ТекстЗапроса;
КонецФункции
Функция ТекстЗапросаВременнаяТаблицаДвиженияКонтрагентКонтрагент(Запрос, ТекстыЗапроса)
ИмяВременнойТаблицы = "ВтДвиженияКонтрагентКонтрагент";
Если НЕ ПроведениеДокументов.ЕстьТаблицаЗапроса("ТаблицаОплатаПоставщикам", ТекстыЗапроса) Тогда
ТекстЗапросаВременнаяТаблицаРасшифровкаПлатежа(Запрос, ТекстыЗапроса);
КонецЕсли;
Если Не ПроведениеДокументов.ЕстьТаблицаЗапроса("ВТКурсыВалютСтрокОтчета", ТекстыЗапроса) Тогда
ТекстЗапросаВТКурсыВалютСтрокОтчета(Запрос, ТекстыЗапроса);
КонецЕсли;
МассивТестовПодзапроса = Новый Массив;
ТекстПодзапроса = "// Передали задолженность филиала в организацию
| ВЫБРАТЬ
| &Период КАК Период,
| ЗНАЧЕНИЕ(Перечисление.ХозяйственныеОперации.ПереносПлатежаМеждуФилиалами) КАК ХозяйственнаяОперация,
| ДанныеДокумента.Организация КАК Организация,
| ДанныеДокумента.Подразделение КАК Подразделение,
|
| ТаблицаОплатаПоставщикам.ОбъектРасчетовПартнер КАК Партнер,
| ТаблицаОплатаПоставщикам.ОбъектРасчетовКонтрагент КАК Контрагент,
| ТаблицаОплатаПоставщикам.ОбъектРасчетовНаправлениеДеятельности КАК НаправлениеДеятельности,
| ТаблицаОплатаПоставщикам.ОбъектРасчетовДоговор КАК Договор,
| ТаблицаОплатаПоставщикам.ОбъектРасчетов КАК ОбъектРасчетов,
|
| ЗНАЧЕНИЕ(Справочник.Партнеры.НашеПредприятие) КАК КорПартнер,
| ТаблицаОплатаПоставщикам.ОбъектРасчетовОрганизация КАК КорКонтрагент,
| &НаправлениеДеятельности КАК КорНаправлениеДеятельности,
| ТаблицаОплатаПоставщикам.ОбъектРасчетовДоговор КАК КорДоговор,
| ТаблицаОплатаПоставщикам.ОбъектРасчетов КАК КорОбъектРасчетов,
|
| ВЫБОР КОГДА ТаблицаОплатаПоставщикам.Валюта = &ВалютаУправленческогоУчета
| ТОГДА ТаблицаОплатаПоставщикам.Сумма
| ИНАЧЕ ТаблицаОплатаПоставщикам.Сумма * ТаблицаКурсыВалютСтрокОтчета.КоэффициентПересчетаУпр
| КОНЕЦ КАК Сумма,
| ВЫБОР КОГДА ТаблицаОплатаПоставщикам.Валюта = &ВалютаРегламентированногоУчета
| ТОГДА ТаблицаОплатаПоставщикам.Сумма
| ИНАЧЕ ТаблицаОплатаПоставщикам.Сумма * ТаблицаКурсыВалютСтрокОтчета.КоэффициентПересчетаРегл
| КОНЕЦ КАК СуммаРегл,
| ТаблицаОплатаПоставщикам.Сумма КАК СуммаВВалюте,
|
| ТаблицаОплатаПоставщикам.ВалютаВзаиморасчетов КАК ВалютаВзаиморасчетов,
| ТаблицаОплатаПоставщикам.СуммаВзаиморасчетов КАК СуммаВВалютеВзаиморасчетов,
|
| ТаблицаОплатаПоставщикам.ВалютаВзаиморасчетов КАК КорВалютаВзаиморасчетов,
| ТаблицаОплатаПоставщикам.СуммаВзаиморасчетов КАК КорСуммаВВалютеВзаиморасчетов,
|
| ТаблицаОплатаПоставщикам.ОбъектРасчетов КАК ИсточникГФУРасчетов,
| ТаблицаОплатаПоставщикам.ОбъектРасчетов КАК КорИсточникГФУРасчетов
| ИЗ
| Документ.АвансовыйОтчет КАК ДанныеДокумента
|
| ЛЕВОЕ СОЕДИНЕНИЕ
| ТаблицаОплатаПоставщикам КАК ТаблицаОплатаПоставщикам
| ПО ИСТИНА
|
| ЛЕВОЕ СОЕДИНЕНИЕ ВТКурсыВалютСтрокОтчета КАК ТаблицаКурсыВалютСтрокОтчета
| ПО ТаблицаКурсыВалютСтрокОтчета.ИдентификаторСтроки = ТаблицаОплатаПоставщикам.ИдентификаторСтроки
| ГДЕ
| ДанныеДокумента.Ссылка = &Ссылка
| И ДанныеДокумента.Организация <> ТаблицаОплатаПоставщикам.ОбъектРасчетовОрганизация
|";
МассивТестовПодзапроса.Добавить(ТекстПодзапроса);
ТекстПодзапроса = "
|// Погасили задолженность филиала перед поставщиком
| ВЫБРАТЬ
| &Период КАК Период,
| ЗНАЧЕНИЕ(Перечисление.ХозяйственныеОперации.ПереносПлатежаМеждуФилиалами) КАК ХозяйственнаяОперация,//Кредиторская
| ТаблицаОплатаПоставщикам.ОбъектРасчетовОрганизация КАК Организация,
| ТаблицаОплатаПоставщикам.ОбъектРасчетовПодразделение КАК Подразделение,
|
| ЗНАЧЕНИЕ(Справочник.Партнеры.НашеПредприятие) КАК Партнер,
| ДанныеДокумента.Организация КАК Контрагент,
| &НаправлениеДеятельности КАК НаправлениеДеятельности,
| ТаблицаОплатаПоставщикам.ОбъектРасчетовДоговор КАК Договор,
| ТаблицаОплатаПоставщикам.ОбъектРасчетов КАК ОбъектРасчетов,
|
| ТаблицаОплатаПоставщикам.ОбъектРасчетовПартнер КАК КорПартнер,
| ТаблицаОплатаПоставщикам.ОбъектРасчетовКонтрагент КАК КорКонтрагент,
| ТаблицаОплатаПоставщикам.ОбъектРасчетовНаправлениеДеятельности КАК КорНаправлениеДеятельности,
| ТаблицаОплатаПоставщикам.ОбъектРасчетовДоговор КАК КорДоговор,
| ТаблицаОплатаПоставщикам.ОбъектРасчетов КАК КорОбъектРасчетов,
|
| ВЫБОР КОГДА ТаблицаОплатаПоставщикам.Валюта = &ВалютаУправленческогоУчета
| ТОГДА ТаблицаОплатаПоставщикам.Сумма
| ИНАЧЕ ТаблицаОплатаПоставщикам.Сумма * ТаблицаКурсыВалютСтрокОтчета.КоэффициентПересчетаУпр
| КОНЕЦ КАК Сумма,
| ВЫБОР КОГДА ТаблицаОплатаПоставщикам.Валюта = &ВалютаРегламентированногоУчета
| ТОГДА ТаблицаОплатаПоставщикам.Сумма
| ИНАЧЕ ТаблицаОплатаПоставщикам.Сумма * ТаблицаКурсыВалютСтрокОтчета.КоэффициентПересчетаРегл
| КОНЕЦ КАК СуммаРегл,
| ТаблицаОплатаПоставщикам.Сумма КАК СуммаВВалюте,
|
| ТаблицаОплатаПоставщикам.ВалютаВзаиморасчетов КАК ВалютаВзаиморасчетов,
| ТаблицаОплатаПоставщикам.СуммаВзаиморасчетов КАК СуммаВВалютеВзаиморасчетов,
|
| ТаблицаОплатаПоставщикам.ВалютаВзаиморасчетов КАК КорВалютаВзаиморасчетов,
| ТаблицаОплатаПоставщикам.СуммаВзаиморасчетов КАК КорСуммаВВалютеВзаиморасчетов,
|
| ТаблицаОплатаПоставщикам.ОбъектРасчетов КАК ИсточникГФУРасчетов,
| ТаблицаОплатаПоставщикам.ОбъектРасчетов КАК КорИсточникГФУРасчетов
| ИЗ
| Документ.АвансовыйОтчет КАК ДанныеДокумента
|
| ЛЕВОЕ СОЕДИНЕНИЕ
| ТаблицаОплатаПоставщикам КАК ТаблицаОплатаПоставщикам
| ПО ИСТИНА
|
| ЛЕВОЕ СОЕДИНЕНИЕ ВТКурсыВалютСтрокОтчета КАК ТаблицаКурсыВалютСтрокОтчета
| ПО ТаблицаКурсыВалютСтрокОтчета.ИдентификаторСтроки = ТаблицаОплатаПоставщикам.ИдентификаторСтроки
| ГДЕ
| ДанныеДокумента.Ссылка = &Ссылка
| И ДанныеДокумента.Организация <> ТаблицаОплатаПоставщикам.ОбъектРасчетовОрганизация
|";
МассивТестовПодзапроса.Добавить(ТекстПодзапроса);
ТекстПодзапроса = СтрСоединить(МассивТестовПодзапроса, ОбщегоНазначенияУТ.РазделительЗапросовВОбъединении());
ТекстЗапроса =
"ВЫБРАТЬ
| ДанныеДокумента.Период КАК Период,
| ДанныеДокумента.ХозяйственнаяОперация КАК ХозяйственнаяОперация,
| ДанныеДокумента.Организация КАК Организация,
| ДанныеДокумента.Подразделение КАК Подразделение,
|
| ДанныеДокумента.Партнер КАК Партнер,
| ДанныеДокумента.Контрагент КАК Контрагент,
| ВЫБОР
| КОГДА ЕСТЬNULL(ДанныеДокумента.НаправлениеДеятельности.УчетРасчетовСПоставщиками, ЛОЖЬ) ТОГДА
| ДанныеДокумента.НаправлениеДеятельности
| КОНЕЦ КАК НаправлениеДеятельности,
| ДанныеДокумента.Договор КАК Договор,
| ДанныеДокумента.ОбъектРасчетов КАК ОбъектРасчетов,
|
| ДанныеДокумента.КорПартнер КАК КорПартнер,
| ДанныеДокумента.КорКонтрагент КАК КорКонтрагент,
| ВЫБОР
| КОГДА ЕСТЬNULL(ДанныеДокумента.КорНаправлениеДеятельности.УчетРасчетовСПоставщиками, ЛОЖЬ) ТОГДА
| ДанныеДокумента.КорНаправлениеДеятельности
| КОНЕЦ КАК КорНаправлениеДеятельности,
| ДанныеДокумента.КорДоговор КАК КорДоговор,
| ДанныеДокумента.КорОбъектРасчетов КАК КорОбъектРасчетов,
| &Валюта КАК Валюта,
|
| СУММА(ДанныеДокумента.Сумма) КАК Сумма,
| СУММА(ДанныеДокумента.СуммаРегл) КАК СуммаРегл,
| СУММА(ДанныеДокумента.СуммаВВалюте) КАК СуммаВВалюте,
|
| ДанныеДокумента.ВалютаВзаиморасчетов КАК ВалютаВзаиморасчетов,
| СУММА(ДанныеДокумента.СуммаВВалютеВзаиморасчетов) КАК СуммаВВалютеВзаиморасчетов,
| ДанныеДокумента.КорВалютаВзаиморасчетов КАК КорВалютаВзаиморасчетов,
| СУММА(ДанныеДокумента.КорСуммаВВалютеВзаиморасчетов) КАК КорСуммаВВалютеВзаиморасчетов,
|
| ДанныеДокумента.ИсточникГФУРасчетов КАК ИсточникГФУРасчетов,
| ДанныеДокумента.КорИсточникГФУРасчетов КАК КорИсточникГФУРасчетов
|ПОМЕСТИТЬ ВтДвиженияКонтрагентКонтрагент
|
|ИЗ &ТекстВложенногоЗапроса КАК ДанныеДокумента
|
|СГРУППИРОВАТЬ ПО
| ДанныеДокумента.Период,
| ДанныеДокумента.ХозяйственнаяОперация,
| ДанныеДокумента.Организация,
| ДанныеДокумента.Подразделение,
| ДанныеДокумента.Партнер,
| ДанныеДокумента.Контрагент,
| ВЫБОР
| КОГДА ЕСТЬNULL(ДанныеДокумента.НаправлениеДеятельности.УчетРасчетовСПоставщиками, ЛОЖЬ) ТОГДА
| ДанныеДокумента.НаправлениеДеятельности
| КОНЕЦ,
| ДанныеДокумента.Договор,
| ДанныеДокумента.ОбъектРасчетов,
| ДанныеДокумента.КорПартнер,
| ДанныеДокумента.КорКонтрагент,
| ВЫБОР
| КОГДА ЕСТЬNULL(ДанныеДокумента.КорНаправлениеДеятельности.УчетРасчетовСПоставщиками, ЛОЖЬ) ТОГДА
| ДанныеДокумента.КорНаправлениеДеятельности
| КОНЕЦ,
| ДанныеДокумента.КорДоговор,
| ДанныеДокумента.КорОбъектРасчетов,
| ДанныеДокумента.ВалютаВзаиморасчетов,
| ДанныеДокумента.КорВалютаВзаиморасчетов,
| ДанныеДокумента.ИсточникГФУРасчетов,
| ДанныеДокумента.КорИсточникГФУРасчетов
|";
ТекстЗапроса = СтрЗаменить(ТекстЗапроса, "&ТекстВложенногоЗапроса", "(" + ТекстПодзапроса + ")");
ТекстыЗапроса.Добавить(ТекстЗапроса, ИмяВременнойТаблицы);
Возврат ТекстЗапроса;
КонецФункции
Функция ТекстЗапросаТаблицаДвиженияКонтрагентКонтрагент(Запрос, ТекстыЗапроса, Регистры)
ИмяРегистра = "ДвиженияКонтрагентКонтрагент";
Если НЕ ПроведениеДокументов.ТребуетсяТаблицаДляДвижений(ИмяРегистра, Регистры) Тогда
Возврат "";
КонецЕсли;
Если НЕ ПроведениеДокументов.ЕстьТаблицаЗапроса("ВтДвиженияКонтрагентКонтрагент", ТекстыЗапроса) Тогда
ТекстЗапросаВременнаяТаблицаДвиженияКонтрагентКонтрагент(Запрос, ТекстыЗапроса);
КонецЕсли;
ТекстЗапроса =
"ВЫБРАТЬ
| ДвиженияКонтрагентКонтрагент.Период КАК Период,
| ДвиженияКонтрагентКонтрагент.ХозяйственнаяОперация КАК ХозяйственнаяОперация,
| ДвиженияКонтрагентКонтрагент.Организация КАК Организация,
| ДвиженияКонтрагентКонтрагент.Подразделение КАК Подразделение,
|
| ДвиженияКонтрагентКонтрагент.Партнер КАК Партнер,
| ДвиженияКонтрагентКонтрагент.Контрагент КАК Контрагент,
| ДвиженияКонтрагентКонтрагент.НаправлениеДеятельности КАК НаправлениеДеятельности,
| ДвиженияКонтрагентКонтрагент.Договор КАК Договор,
| ДвиженияКонтрагентКонтрагент.ОбъектРасчетов КАК ОбъектРасчетов,
|
| ДвиженияКонтрагентКонтрагент.КорПартнер КАК КорПартнер,
| ДвиженияКонтрагентКонтрагент.КорКонтрагент КАК КорКонтрагент,
| ДвиженияКонтрагентКонтрагент.КорНаправлениеДеятельности КАК КорНаправлениеДеятельности,
| ДвиженияКонтрагентКонтрагент.КорДоговор КАК КорДоговор,
| ДвиженияКонтрагентКонтрагент.КорОбъектРасчетов КАК КорОбъектРасчетов,
| ДвиженияКонтрагентКонтрагент.Валюта КАК Валюта,
|
| ДвиженияКонтрагентКонтрагент.Сумма КАК Сумма,
| ДвиженияКонтрагентКонтрагент.СуммаРегл КАК СуммаРегл,
| ДвиженияКонтрагентКонтрагент.СуммаВВалюте КАК СуммаВВалюте,
|
| ДвиженияКонтрагентКонтрагент.ВалютаВзаиморасчетов КАК ВалютаВзаиморасчетов,
| ДвиженияКонтрагентКонтрагент.СуммаВВалютеВзаиморасчетов КАК СуммаВВалютеВзаиморасчетов,
| ДвиженияКонтрагентКонтрагент.КорВалютаВзаиморасчетов КАК КорВалютаВзаиморасчетов,
| ДвиженияКонтрагентКонтрагент.КорСуммаВВалютеВзаиморасчетов КАК КорСуммаВВалютеВзаиморасчетов,
|
| ДвиженияКонтрагентКонтрагент.ИсточникГФУРасчетов КАК ИсточникГФУРасчетов,
| ДвиженияКонтрагентКонтрагент.КорИсточникГФУРасчетов КАК КорИсточникГФУРасчетов
|
|ИЗ
| ВтДвиженияКонтрагентКонтрагент КАК ДвиженияКонтрагентКонтрагент
|";
ТекстыЗапроса.Добавить(ТекстЗапроса, ИмяРегистра);
Возврат ТекстЗапроса;
КонецФункции
Функция ТекстЗапросаТаблицаРеестрДокументов(Запрос, ТекстыЗапроса, Регистры)
ИмяРегистра = "РеестрДокументов";
Если НЕ ПроведениеДокументов.ТребуетсяТаблицаДляДвижений(ИмяРегистра, Регистры) Тогда
Возврат "";
КонецЕсли;
Если НЕ ПроведениеДокументов.ЕстьТаблицаЗапроса("ИзрасходованоВСвязанныхДокументах", ТекстыЗапроса) Тогда
ТекстЗапросаВременнаяТаблицаИзрасходованоВСвязанныхДокументах(Запрос, ТекстыЗапроса);
КонецЕсли;
ТекстЗапроса = "
|ВЫБРАТЬ
| &ИдентификаторМетаданных КАК ТипСсылки,
| &ХозяйственнаяОперация КАК ХозяйственнаяОперация,
| &Организация КАК Организация,
| НЕОПРЕДЕЛЕНО КАК Партнер,
| НЕОПРЕДЕЛЕНО КАК МестоХранения,
| &ПодотчетноеЛицо КАК Контрагент,
| &Подразделение КАК Подразделение,
| ДанныеДокумента.Дата КАК ДатаДокументаИБ,
| ДанныеДокумента.Ссылка КАК Ссылка,
| &Номер КАК НомерДокументаИБ,
| &Статус КАК Статус,
| &Автор КАК Ответственный,
| &Автор КАК Автор,
| ЛОЖЬ КАК ДополнительнаяЗапись,
| НЕОПРЕДЕЛЕНО КАК Дополнительно,
| &Комментарий КАК Комментарий,
| &Проведен КАК Проведен,
| &ПометкаУдаления КАК ПометкаУдаления,
| &Период КАК ДатаПервичногоДокумента,
| &НомерНаПечать КАК НомерПервичногоДокумента,
| &СуммаИзрасходовано
| + ЕСТЬNULL(ДанныеДокументов.Сумма, 0) КАК Сумма,
| &Валюта КАК Валюта,
| НЕОПРЕДЕЛЕНО КАК Договор,
| НЕОПРЕДЕЛЕНО КАК НаправлениеДеятельности,
| ЛОЖЬ КАК СторноИсправление,
| НЕОПРЕДЕЛЕНО КАК СторнируемыйДокумент,
| НЕОПРЕДЕЛЕНО КАК ИсправляемыйДокумент,
| &Период КАК ДатаОтраженияВУчете,
| НЕОПРЕДЕЛЕНО КАК Приоритет
|ИЗ
| Документ.АвансовыйОтчет КАК ДанныеДокумента
| ЛЕВОЕ СОЕДИНЕНИЕ ИзрасходованоВСвязанныхДокументах КАК ДанныеДокументов
| ПО ИСТИНА
|ГДЕ
| ДанныеДокумента.Ссылка = &Ссылка
|";
ТекстыЗапроса.Добавить(ТекстЗапроса, ИмяРегистра);
Возврат ТекстЗапроса;
КонецФункции
Функция ТекстЗапросаВременнаяТаблицаИзрасходованоВСвязанныхДокументах(Запрос, ТекстыЗапроса)
ИмяРегистра = "ИзрасходованоВСвязанныхДокументах";
ТекстЗапроса = "
|ВЫБРАТЬ
| СУММА(ВложенныйЗапрос.Сумма) КАК Сумма
|ПОМЕСТИТЬ ИзрасходованоВСвязанныхДокументах
|ИЗ (ВЫБРАТЬ
| ПриобретениеТоваровУслуг.СуммаДокумента КАК Сумма
| ИЗ
| Документ.АвансовыйОтчет КАК ДанныеДокумента
| ВНУТРЕННЕЕ СОЕДИНЕНИЕ Документ.ПриобретениеТоваровУслуг КАК ПриобретениеТоваровУслуг
| ПО ДанныеДокумента.Ссылка = ПриобретениеТоваровУслуг.АвансовыйОтчет
| И ПриобретениеТоваровУслуг.Проведен
| ГДЕ
| ДанныеДокумента.Ссылка = &Ссылка
| И НЕ ДанныеДокумента.Мультивалютный
|
| ОБЪЕДИНИТЬ ВСЕ
|
| ВЫБРАТЬ
| СУММА(ВЫБОР КОГДА Бронирование.ТипОперации = ЗНАЧЕНИЕ(Перечисление.ТипыОперацийСБилетами.Покупка)
| ИЛИ Бронирование.ТипОперации = ЗНАЧЕНИЕ(Перечисление.ТипыОперацийСБилетами.Доплата)
| ТОГДА Бронирование.Сумма
| ИНАЧЕ -Бронирование.Сумма
| КОНЕЦ) КАК Сумма
| ИЗ
| Документ.АвансовыйОтчет КАК ДанныеДокумента
| ВНУТРЕННЕЕ СОЕДИНЕНИЕ Документ.Бронирование.Операции КАК Бронирование
| ПО ДанныеДокумента.Ссылка = Бронирование.Ссылка.АвансовыйОтчет
| И Бронирование.Ссылка.Проведен
| ГДЕ
| ДанныеДокумента.Ссылка = &Ссылка
| И НЕ ДанныеДокумента.Мультивалютный
| ) КАК ВложенныйЗапрос
|";
ТекстыЗапроса.Добавить(ТекстЗапроса, ИмяРегистра);
Возврат ТекстЗапроса;
КонецФункции
Процедура ОтразитьВУчетеНДС(Запрос, ТекстыЗапроса, Регистры)
Если Не УчетНДСУП.ТребуетсяПроведениеПоРегистрамНДС(Регистры) Тогда
Возврат;
КонецЕсли;
НастройкиНалоговУчетныхПолитик.ДополнитьМенеджерВременныхТаблицДействующимиПараметрамиНалоговУчетныхПолитик(
Метаданные.РегистрыСведений.НастройкиУчетаНДСПриУСН.Имя,
Запрос.МенеджерВременныхТаблиц,
Запрос.Параметры.Период,
"ВТНастройкиУчетаНДСПриУСН",
Запрос.Параметры.Организация);
Если Запрос.МенеджерВременныхТаблиц.Таблицы.Найти("ВТНастройкиУчетаНДСПриУСН") = Неопределено Тогда
ТекстЗапроса = "Выбрать
| &Организация КАК Организация,
| ЗНАЧЕНИЕ(Перечисление.ТипыНалогообложенияНДС.ПродажаОблагаетсяНДС) КАК ОсновноеНалогообложение
|ПОМЕСТИТЬ ВТНастройкиУчетаНДСПриУСН
|";
ЗапросНастройкиУчета = Новый Запрос(ТекстЗапроса);
ЗапросНастройкиУчета.МенеджерВременныхТаблиц = Запрос.МенеджерВременныхТаблиц;
ЗапросНастройкиУчета.УстановитьПараметр("Организация", Запрос.Параметры.Организация);
ЗапросНастройкиУчета.Выполнить();
КонецЕсли;
ТекстЦенности = "
|ВЫБРАТЬ
| &Период КАК Период,
| Расходы.Ссылка КАК Ссылка,
| Расходы.Ссылка.Организация КАК Организация,
| Расходы.Ссылка.Подразделение КАК Подразделение,
| Расходы.Контрагент КАК Контрагент,
| НЕОПРЕДЕЛЕНО КАК Договор,
| Расходы.Контрагент КАК Грузоотправитель,
| ВЫБОР КОГДА Расходы.БланкСтрогойОтчетности И Расходы.ЭлектронныйБилет <> ЗНАЧЕНИЕ(Документ.Бронирование.ПустаяСсылка) ТОГДА
| Расходы.ЭлектронныйБилет
| КОГДА Расходы.ПредъявленСФ ИЛИ Расходы.БланкСтрогойОтчетности
| ИЛИ ЕСТЬNULL(НастройкиУчетаНДСПриУСН.ОсновноеНалогообложение, НЕОПРЕДЕЛЕНО) В (ЗНАЧЕНИЕ(Перечисление.ТипыНалогообложенияНДС.ПродажаНеОблагаетсяНДС),
| ЗНАЧЕНИЕ(Перечисление.ТипыНалогообложенияНДС.ЛьготноеНалогообложениеНДСНаУСН)) ТОГДА
| Расходы.ПервичныйДокумент
| ИНАЧЕ
| Расходы.Ссылка
| КОНЕЦ КАК ДокументПриобретения,
| ВЫБОР КОГДА Расходы.ПредъявленСФ ИЛИ Расходы.БланкСтрогойОтчетности
| ИЛИ ЕСТЬNULL(НастройкиУчетаНДСПриУСН.ОсновноеНалогообложение, НЕОПРЕДЕЛЕНО) В (ЗНАЧЕНИЕ(Перечисление.ТипыНалогообложенияНДС.ПродажаНеОблагаетсяНДС),
| ЗНАЧЕНИЕ(Перечисление.ТипыНалогообложенияНДС.ЛьготноеНалогообложениеНДСНаУСН)) ТОГДА
| Расходы.ПервичныйДокумент
| ИНАЧЕ
| Расходы.Ссылка
| КОНЕЦ КАК ИсходныйТорговыйДокумент,
| ЛОЖЬ КАК ИсправлениеОшибок,
| ЛОЖЬ КАК КорректировкаПоСогласованиюСторон,
| ЛОЖЬ КАК УменьшитьСуммуНДСКВычету,
| НЕОПРЕДЕЛЕНО КАК ДокументКорректировкиПриобретения,
| ЗНАЧЕНИЕ(Перечисление.ТипыНалогообложенияНДС.ПродажаОблагаетсяНДС) КАК НалогообложениеНДС,
| ВЫБОР КОГДА Расходы.ПредъявленСФ ИЛИ Расходы.БланкСтрогойОтчетности
| ИЛИ ЕСТЬNULL(НастройкиУчетаНДСПриУСН.ОсновноеНалогообложение, НЕОПРЕДЕЛЕНО) В (ЗНАЧЕНИЕ(Перечисление.ТипыНалогообложенияНДС.ПродажаНеОблагаетсяНДС),
| ЗНАЧЕНИЕ(Перечисление.ТипыНалогообложенияНДС.ЛьготноеНалогообложениеНДСНаУСН)) ТОГДА
| Расходы.Ссылка.ЗакупкаПодДеятельность
| ИНАЧЕ
| ЗНАЧЕНИЕ(Перечисление.ТипыНалогообложенияНДС.ПродажаОблагаетсяНДС)
| КОНЕЦ КАК ВидДеятельностиНДС,
| Расходы.СтавкаНДС КАК СтавкаНДС,
| НЕОПРЕДЕЛЕНО КАК Номенклатура,
| НЕОПРЕДЕЛЕНО КАК ВидЗапасов,
| НЕОПРЕДЕЛЕНО КАК НомерГТД,
| Расходы.Подразделение КАК ПодразделениеУчета,
| Расходы.НаправлениеДеятельности КАК НаправлениеДеятельности,
| ЛОЖЬ КАК ПриобретениеНаПартиюПроизводства,
| НЕОПРЕДЕЛЕНО КАК НаправлениеДеятельностиПартииПроизводства,
| НЕОПРЕДЕЛЕНО КАК СписатьНаРасходы,
| ВЫБОР КОГДА Расходы.ПредъявленСФ ИЛИ Расходы.БланкСтрогойОтчетности
| ИЛИ ЕСТЬNULL(НастройкиУчетаНДСПриУСН.ОсновноеНалогообложение, НЕОПРЕДЕЛЕНО) В (ЗНАЧЕНИЕ(Перечисление.ТипыНалогообложенияНДС.ПродажаНеОблагаетсяНДС),
| ЗНАЧЕНИЕ(Перечисление.ТипыНалогообложенияНДС.ЛьготноеНалогообложениеНДСНаУСН))
| ИЛИ &СтатьяРасходовСписаниеНДС = ЗНАЧЕНИЕ(ПланВидовХарактеристик.СтатьиРасходов.ПустаяСсылка) ТОГДА
| Расходы.СтатьяРасходов
| ИНАЧЕ
| &СтатьяРасходовСписаниеНДС
| КОНЕЦ КАК СтатьяРасходов,
| ВЫБОР КОГДА Расходы.ПредъявленСФ ИЛИ Расходы.БланкСтрогойОтчетности
| ИЛИ ЕСТЬNULL(НастройкиУчетаНДСПриУСН.ОсновноеНалогообложение, НЕОПРЕДЕЛЕНО) В (ЗНАЧЕНИЕ(Перечисление.ТипыНалогообложенияНДС.ПродажаНеОблагаетсяНДС),
| ЗНАЧЕНИЕ(Перечисление.ТипыНалогообложенияНДС.ЛьготноеНалогообложениеНДСНаУСН))
| ИЛИ &СтатьяРасходовСписаниеНДС = ЗНАЧЕНИЕ(ПланВидовХарактеристик.СтатьиРасходов.ПустаяСсылка) ТОГДА
| Расходы.АналитикаРасходов
| ИНАЧЕ
| &АналитикаРасходовСписаниеНДС
| КОНЕЦ КАК АналитикаРасходов,
| Расходы.СтатьяРасходов КАК СтатьяПрочихАктивов,
| Расходы.АналитикаАктивовПассивов КАК АналитикаПрочихАктивов,
| НЕОПРЕДЕЛЕНО КАК Назначение,
| Расходы.ИдентификаторСтроки КАК ИдентификаторСтроки,
| Расходы.ИдентификаторСтроки КАК ИдентификаторФинЗаписи,
| ЗНАЧЕНИЕ(Справочник.НастройкиХозяйственныхОпераций.ПрочиеРасходыПодотчетногоЛица) КАК НастройкаХозяйственнойОперации
|ИЗ
| Документ.АвансовыйОтчет.ПрочиеРасходы КАК Расходы
| ЛЕВОЕ СОЕДИНЕНИЕ
| ВТНастройкиУчетаНДСПриУСН КАК НастройкиУчетаНДСПриУСН
| ПО
| Расходы.Ссылка.Организация = НастройкиУчетаНДСПриУСН.Организация
|ГДЕ
| Расходы.Ссылка В (&Ссылка)
| И Расходы.Ссылка.Статус = ЗНАЧЕНИЕ(Перечисление.СтатусыАвансовогоОтчета.Утвержден)
| И НЕ Расходы.Отменено
|";
УчетНДСУП.ОтразитьПриобретениеУПоставщика(Запрос, ТекстыЗапроса, Регистры, ТекстЦенности);
ТекстЦенности = "
|ВЫБРАТЬ
| &Период КАК Период,
| Расходы.Ссылка КАК Ссылка,
| Расходы.Ссылка.Организация КАК Организация,
| Расходы.Ссылка.Подразделение КАК Подразделение,
| Расходы.Контрагент КАК Контрагент,
| Расходы.Ссылка КАК СчетФактура,
| ЗНАЧЕНИЕ(Перечисление.ТипыНалогообложенияНДС.ПродажаОблагаетсяНДС) КАК ВидДеятельностиНДС,
| Расходы.ИдентификаторСтроки КАК ИдентификаторСтроки,
| Расходы.СтавкаНДС КАК СтавкаНДС,
| Расходы.Подразделение КАК ПодразделениеУчета,
| Расходы.НаправлениеДеятельности КАК НаправлениеДеятельности,
| Расходы.СтатьяРасходов КАК СтатьяРасходов,
| ВЫБОР КОГДА &СтатьяРасходовСписаниеНДС = ЗНАЧЕНИЕ(ПланВидовХарактеристик.СтатьиРасходов.ПустаяСсылка) ТОГДА
| Расходы.СтатьяРасходов
| ИНАЧЕ
| &СтатьяРасходовСписаниеНДС
| КОНЕЦ КАК СтатьяРасходовСписаниеНДС,
| ВЫБОР КОГДА &СтатьяРасходовСписаниеНДС = ЗНАЧЕНИЕ(ПланВидовХарактеристик.СтатьиРасходов.ПустаяСсылка) ТОГДА
| Расходы.АналитикаРасходов
| ИНАЧЕ
| &АналитикаРасходовСписаниеНДС
| КОНЕЦ КАК АналитикаРасходовСписаниеНДС,
| Расходы.ИдентификаторСтроки КАК ИдентификаторФинЗаписи,
| ЗНАЧЕНИЕ(Справочник.НастройкиХозяйственныхОпераций.СписаниеНДСПоПриобретеннымЦенностям) КАК НастройкаХозяйственнойОперации
|ИЗ
| Документ.АвансовыйОтчет.ПрочиеРасходы КАК Расходы
| ЛЕВОЕ СОЕДИНЕНИЕ
| ВТНастройкиУчетаНДСПриУСН КАК НастройкиУчетаНДСПриУСН
| ПО
| Расходы.Ссылка.Организация = НастройкиУчетаНДСПриУСН.Организация
|ГДЕ
| Расходы.Ссылка В (&Ссылка)
| И Расходы.Ссылка.Статус = ЗНАЧЕНИЕ(Перечисление.СтатусыАвансовогоОтчета.Утвержден)
| И НЕ Расходы.Отменено
| И НЕ Расходы.ПредъявленСФ
| И НЕ Расходы.БланкСтрогойОтчетности
| И НЕ ЕСТЬNULL(НастройкиУчетаНДСПриУСН.ОсновноеНалогообложение, НЕОПРЕДЕЛЕНО) В (ЗНАЧЕНИЕ(Перечисление.ТипыНалогообложенияНДС.ПродажаНеОблагаетсяНДС),
| ЗНАЧЕНИЕ(Перечисление.ТипыНалогообложенияНДС.ЛьготноеНалогообложениеНДСНаУСН))
| И НЕ &СписыватьНДСПоРасходамНеПринимаемымВНУ
|";
УчетНДСУП.ОтразитьСписаниеНДСНаРасходы(Запрос, ТекстыЗапроса, Регистры, ТекстЦенности);
КонецПроцедуры
Процедура ДобавитьТекстыОтраженияВзаиморасчетов(Запрос, ТекстыЗапроса, Регистры)
#Область КурсыВалютДокумента
ИмяРегистра = "ВременнаяТаблицаКурсыВалютДокумента";
ТекстЗапросаКурсыВалютДокумента =
"ВЫБРАТЬ
| ДанныеДокументаШапка.Ссылка КАК Ссылка,
| ДанныеДокументаШапка.Организация КАК Организация,
| ДанныеДокументаШапка.Дата КАК ДатаКурса,
| Таблица.ОбъектРасчетов КАК ОбъектРасчетов,
| Таблица.Валюта КАК ВалютаДокумента,
| Таблица.ВалютаВзаиморасчетов КАК ВалютаВзаиморасчетов
|ИЗ
| Документ.АвансовыйОтчет.ОплатаПоставщикам КАК Таблица
| ЛЕВОЕ СОЕДИНЕНИЕ Документ.АвансовыйОтчет КАК ДанныеДокументаШапка
| ПО Таблица.Ссылка = ДанныеДокументаШапка.Ссылка
|ГДЕ
| Таблица.Ссылка В (&Ссылка)";
ТекстЗапросаКурсыВалютДокумента = ВзаиморасчетыСервер.ПолучитьТаблицуКурсовВалютНаправленийДеятельности(ТекстЗапросаКурсыВалютДокумента);
ТекстыЗапроса.Добавить(ТекстЗапросаКурсыВалютДокумента, ИмяРегистра);
Если Не ПроведениеДокументов.ЕстьТаблицаЗапроса("ВТКурсыВалютСтрокОтчета", ТекстыЗапроса) Тогда
ТекстЗапросаВТКурсыВалютСтрокОтчета(Запрос, ТекстыЗапроса);
КонецЕсли;
#КонецОбласти
ТекстОплата = "
|ВЫБРАТЬ
| Таблица.Ссылка КАК Ссылка,
| Таблица.Ссылка.Организация КАК Организация,
| Таблица.Поставщик КАК Партнер,
| ВЫБОР
| КОГДА НАЧАЛОПЕРИОДА(Таблица.Ссылка.Дата, ДЕНЬ) = Таблица.Ссылка.ДатаУтверждения ТОГДА
| Таблица.Ссылка.Дата
| ИНАЧЕ
| Таблица.Ссылка.ДатаУтверждения
| КОНЕЦ КАК ДатаРегистратора,
| Таблица.Ссылка.Номер КАК НомерРегистратора,
|
| Таблица.ВалютаВзаиморасчетов КАК ВалютаВзаиморасчетов,
| Таблица.ОбъектРасчетов КАК ОбъектРасчетов,
| Таблица.Сумма КАК Сумма,
| Таблица.СуммаВзаиморасчетов КАК СуммаВзаиморасчетов,
| 0 КАК УвеличениеОплачивается,
| 0 КАК УменьшениеОплачивается,
| ВЫРАЗИТЬ(Таблица.Сумма * ТаблицаКурсыВалютСтрокОтчета.КоэффициентПересчетаУпр КАК ЧИСЛО(31,2)) КАК СуммаУпр,
| ВЫРАЗИТЬ(Таблица.Сумма * ТаблицаКурсыВалютСтрокОтчета.КоэффициентПересчетаРегл КАК ЧИСЛО(31,2)) КАК СуммаРегл,
|
| ЗНАЧЕНИЕ(Перечисление.ХозяйственныеОперации.ОплатаПоставщику) КАК ХозяйственнаяОперация,
| ЗНАЧЕНИЕ(Справочник.СтатьиДвиженияДенежныхСредств.ПустаяСсылка) КАК СтатьяДвиженияДенежныхСредств,
| Неопределено КАК ЗаявкаНаРасходованиеДенежныхСредств,
| ЗНАЧЕНИЕ(Перечисление.ФормыОплаты.Наличная) КАК ФормаОплаты,
| Таблица.Валюта КАК ВалютаДокумента,
| Таблица.Ссылка.Дата КАК ДатаКурса,
| ДАТАВРЕМЯ(1,1,1) КАК ДатаПогашения,
| Неопределено КАК СвязанныйДокумент,
| Таблица.ИдентификаторСтроки КАК ИдентификаторФинЗаписи,
| ЗНАЧЕНИЕ(Справочник.НастройкиХозяйственныхОпераций.ОплатаПоставщикуПодотчетнымЛицом) КАК НастройкаХозяйственнойОперации
|ИЗ
| Документ.АвансовыйОтчет.ОплатаПоставщикам КАК Таблица
| ЛЕВОЕ СОЕДИНЕНИЕ ВТКурсыВалютСтрокОтчета КАК ТаблицаКурсыВалютСтрокОтчета
| ПО ТаблицаКурсыВалютСтрокОтчета.ИдентификаторСтроки = Таблица.ИдентификаторСтроки
|ГДЕ
| Таблица.Ссылка В (&Ссылка)
| И Таблица.Ссылка.Статус = ЗНАЧЕНИЕ(Перечисление.СтатусыАвансовогоОтчета.Утвержден)";
ВзаиморасчетыСервер.ПроведениеОплатыПоставщику(Запрос, ТекстыЗапроса, Регистры, ТекстОплата);
КонецПроцедуры
Функция ТекстЗапросаТаблицаДенежныеСредстваВПути(Запрос, ТекстыЗапроса, Регистры)
ИмяРегистра = "ДенежныеСредстваВПути";
Если НЕ ПроведениеДокументов.ТребуетсяТаблицаДляДвижений(ИмяРегистра, Регистры) Тогда
Возврат "";
КонецЕсли;
Если Не ПроведениеДокументов.ЕстьТаблицаЗапроса("ВТКурсыВалютУпр", ТекстыЗапроса) Тогда
ТекстЗапросаВТКурсыВалютУпр(Запрос, ТекстыЗапроса);
КонецЕсли;
Если Не ПроведениеДокументов.ЕстьТаблицаЗапроса("ВТКурсыВалютРегл", ТекстыЗапроса) Тогда
ТекстЗапросаВТКурсыВалютРегл(Запрос, ТекстыЗапроса);
КонецЕсли;
Если Не ПроведениеДокументов.ЕстьТаблицаЗапроса("ВТКурсыВалютСтрокОтчета", ТекстыЗапроса) Тогда
ТекстЗапросаВТКурсыВалютСтрокОтчета(Запрос, ТекстыЗапроса);
КонецЕсли;
Если Не ПроведениеДокументов.ЕстьТаблицаЗапроса("ТаблицаКурсовыхРазниц", ТекстыЗапроса) Тогда
ТекстЗапросаТаблицаКурсовыхРазниц(Запрос, ТекстыЗапроса);
КонецЕсли;
ТекстЗапроса = "
|
|ВЫБРАТЬ
| &Период КАК Период,
| ЗНАЧЕНИЕ(ВидДвиженияНакопления.Приход) КАК ВидДвижения,
| &Организация КАК Организация,
| ВЫБОР КОГДА КонвертацияВалюты.Валюта = &ВалютаРегламентированногоУчета
| ТОГДА ЗНАЧЕНИЕ(Перечисление.ВидыПереводовДенежныхСредств.ПриобретениеВалюты)
| ИНАЧЕ ЗНАЧЕНИЕ(Перечисление.ВидыПереводовДенежныхСредств.РеализацияВалюты)
| КОНЕЦ КАК ВидПереводаДенежныхСредств,
| Неопределено КАК Получатель,
| Неопределено КАК Отправитель,
| ЗНАЧЕНИЕ(Справочник.Контрагенты.ПустаяСсылка) КАК Контрагент,
| ЗНАЧЕНИЕ(Справочник.ДоговорыЭквайринга.ПустаяСсылка) КАК Договор,
| КонвертацияВалюты.Валюта КАК Валюта,
|
| КонвертацияВалюты.Сумма КАК Сумма,
| КонвертацияВалюты.Сумма * ТаблицаКурсыВалютСтрокОтчета.КоэффициентПересчетаУпр КАК СуммаУпр,
| КонвертацияВалюты.Сумма * ТаблицаКурсыВалютСтрокОтчета.КоэффициентПересчетаРегл КАК СуммаРегл,
|
| КонвертацияВалюты.СтатьяДвиженияДенежныхСредств КАК СтатьяДвиженияДенежныхСредств,
| ЗНАЧЕНИЕ(Перечисление.ХозяйственныеОперации.КонвертацияВалютыПодотчетнымЛицом) КАК ХозяйственнаяОперация,
| ЗНАЧЕНИЕ(Справочник.НастройкиХозяйственныхОпераций.КонвертацияВалютыПодотчетнымЛицом) КАК НастройкаХозяйственнойОперации,
| КонвертацияВалюты.ИдентификаторСтроки КАК ИдентификаторФинЗаписи
|ИЗ
| Документ.АвансовыйОтчет.КонвертацияВалюты КАК КонвертацияВалюты
| ЛЕВОЕ СОЕДИНЕНИЕ ВТКурсыВалютСтрокОтчета КАК ТаблицаКурсыВалютСтрокОтчета
| ПО ТаблицаКурсыВалютСтрокОтчета.ИдентификаторСтроки = КонвертацияВалюты.ИдентификаторСтроки
|ГДЕ
| КонвертацияВалюты.Ссылка = &Ссылка
| И &Мультивалютный
| И КонвертацияВалюты.Ссылка.Статус = ЗНАЧЕНИЕ(Перечисление.СтатусыАвансовогоОтчета.Утвержден)
|
|ОБЪЕДИНИТЬ ВСЕ
|
|
|ВЫБРАТЬ
| &Период КАК Период,
| ЗНАЧЕНИЕ(ВидДвиженияНакопления.Расход) КАК ВидДвижения,
| &Организация КАК Организация,
| ВЫБОР КОГДА КонвертацияВалюты.Валюта = &ВалютаРегламентированногоУчета
| ТОГДА ЗНАЧЕНИЕ(Перечисление.ВидыПереводовДенежныхСредств.ПриобретениеВалюты)
| ИНАЧЕ ЗНАЧЕНИЕ(Перечисление.ВидыПереводовДенежныхСредств.РеализацияВалюты)
| КОНЕЦ КАК ВидПереводаДенежныхСредств,
| Неопределено КАК Получатель,
| Неопределено КАК Отправитель,
| ЗНАЧЕНИЕ(Справочник.Контрагенты.ПустаяСсылка) КАК Контрагент,
| ЗНАЧЕНИЕ(Справочник.ДоговорыЭквайринга.ПустаяСсылка) КАК Договор,
| КонвертацияВалюты.Валюта КАК Валюта,
|
| КонвертацияВалюты.Сумма КАК Сумма,
| КонвертацияВалюты.СуммаКонвертации * ЕСТЬNULL(ТаблицаКурсыВалютУпр.КоэффициентПересчета, 0) КАК СуммаУпр,
| КонвертацияВалюты.СуммаКонвертации * ЕСТЬNULL(ТаблицаКурсыВалютРегл.КоэффициентПересчета, 0) КАК СуммаРегл,
|
| КонвертацияВалюты.СтатьяДвиженияДенежныхСредств КАК СтатьяДвиженияДенежныхСредств,
| ЗНАЧЕНИЕ(Перечисление.ХозяйственныеОперации.ПоступлениеДенежныхСредствОтКонвертацииВалюты) КАК ХозяйственнаяОперация,
| ЗНАЧЕНИЕ(Справочник.НастройкиХозяйственныхОпераций.ПоступлениеДенежныхСредствОтКонвертацииВалюты) КАК НастройкаХозяйственнойОперации,
| КонвертацияВалюты.ИдентификаторСтроки КАК ИдентификаторФинЗаписи
|ИЗ
| Документ.АвансовыйОтчет.КонвертацияВалюты КАК КонвертацияВалюты
| ЛЕВОЕ СОЕДИНЕНИЕ ВТКурсыВалютУпр КАК ТаблицаКурсыВалютУпр
| ПО ТаблицаКурсыВалютУпр.Валюта = КонвертацияВалюты.ВалютаКонвертации
| ЛЕВОЕ СОЕДИНЕНИЕ ВТКурсыВалютРегл КАК ТаблицаКурсыВалютРегл
| ПО ТаблицаКурсыВалютРегл.Валюта = КонвертацияВалюты.ВалютаКонвертации
|ГДЕ
| КонвертацияВалюты.Ссылка = &Ссылка
| И &Мультивалютный
| И КонвертацияВалюты.Ссылка.Статус = ЗНАЧЕНИЕ(Перечисление.СтатусыАвансовогоОтчета.Утвержден)
|
|ОБЪЕДИНИТЬ ВСЕ
|
|ВЫБРАТЬ
| &Период КАК Период,
| ЗНАЧЕНИЕ(ВидДвиженияНакопления.Расход) КАК ВидДвижения,
| &Организация КАК Организация,
| ВЫБОР КОГДА ТаблицаКурсовыхРазниц.Валюта = &ВалютаРегламентированногоУчета
| ТОГДА ЗНАЧЕНИЕ(Перечисление.ВидыПереводовДенежныхСредств.ПриобретениеВалюты)
| ИНАЧЕ ЗНАЧЕНИЕ(Перечисление.ВидыПереводовДенежныхСредств.РеализацияВалюты)
| КОНЕЦ КАК ВидПереводаДенежныхСредств,
| Неопределено КАК Получатель,
| Неопределено КАК Отправитель,
| ЗНАЧЕНИЕ(Справочник.Контрагенты.ПустаяСсылка) КАК Контрагент,
| ЗНАЧЕНИЕ(Справочник.ДоговорыЭквайринга.ПустаяСсылка) КАК Договор,
| ТаблицаКурсовыхРазниц.Валюта КАК Валюта,
|
| 0 КАК Сумма,
| -ТаблицаКурсовыхРазниц.СуммаУпр КАК СуммаУпр,
| -ТаблицаКурсовыхРазниц.СуммаРегл КАК СуммаРегл,
|
| ТаблицаКурсовыхРазниц.СтатьяДвиженияДенежныхСредств КАК СтатьяДвиженияДенежныхСредств,
| ЗНАЧЕНИЕ(Перечисление.ХозяйственныеОперации.КурсовыеРазницыДСУбыток) КАК ХозяйственнаяОперация,
| ЗНАЧЕНИЕ(Справочник.НастройкиХозяйственныхОпераций.КурсовыеРазницыДСУбыток) КАК НастройкаХозяйственнойОперации,
| ТаблицаКурсовыхРазниц.ИдентификаторСтроки КАК ИдентификаторФинЗаписи
|ИЗ
| ТаблицаКурсовыхРазниц КАК ТаблицаКурсовыхРазниц
|ГДЕ
| ТаблицаКурсовыхРазниц.СуммаУпр < 0 ИЛИ ТаблицаКурсовыхРазниц.СуммаРегл < 0
|
|ОБЪЕДИНИТЬ ВСЕ
|
|ВЫБРАТЬ
| &Период КАК Период,
| ЗНАЧЕНИЕ(ВидДвиженияНакопления.Приход) КАК ВидДвижения,
| &Организация КАК Организация,
| ВЫБОР КОГДА ТаблицаКурсовыхРазниц.Валюта = &ВалютаРегламентированногоУчета
| ТОГДА ЗНАЧЕНИЕ(Перечисление.ВидыПереводовДенежныхСредств.ПриобретениеВалюты)
| ИНАЧЕ ЗНАЧЕНИЕ(Перечисление.ВидыПереводовДенежныхСредств.РеализацияВалюты)
| КОНЕЦ КАК ВидПереводаДенежныхСредств,
| Неопределено КАК Получатель,
| Неопределено КАК Отправитель,
| ЗНАЧЕНИЕ(Справочник.Контрагенты.ПустаяСсылка) КАК Контрагент,
| ЗНАЧЕНИЕ(Справочник.ДоговорыЭквайринга.ПустаяСсылка) КАК Договор,
| ТаблицаКурсовыхРазниц.Валюта КАК Валюта,
|
| 0 КАК Сумма,
| ТаблицаКурсовыхРазниц.СуммаУпр КАК СуммаУпр,
| ТаблицаКурсовыхРазниц.СуммаРегл КАК СуммаРегл,
|
| ТаблицаКурсовыхРазниц.СтатьяДвиженияДенежныхСредств КАК СтатьяДвиженияДенежныхСредств,
| ЗНАЧЕНИЕ(Перечисление.ХозяйственныеОперации.КурсовыеРазницыДСПрибыль) КАК ХозяйственнаяОперация,
| ЗНАЧЕНИЕ(Справочник.НастройкиХозяйственныхОпераций.КурсовыеРазницыДСПрибыль) КАК НастройкаХозяйственнойОперации,
| ТаблицаКурсовыхРазниц.ИдентификаторСтроки КАК ИдентификаторФинЗаписи
|ИЗ
| ТаблицаКурсовыхРазниц КАК ТаблицаКурсовыхРазниц
|ГДЕ
| ТаблицаКурсовыхРазниц.СуммаУпр > 0 ИЛИ ТаблицаКурсовыхРазниц.СуммаРегл > 0
|";
ТекстыЗапроса.Добавить(ТекстЗапроса, ИмяРегистра);
Возврат ТекстЗапроса;
КонецФункции
#КонецОбласти
#Область СозданиеНаОсновании
Процедура ДобавитьКомандыСозданияНаОсновании(КомандыСозданияНаОсновании, Параметры) Экспорт
БизнесПроцессы.Задание.ДобавитьКомандуСоздатьНаОсновании(КомандыСозданияНаОсновании);
Документы.ЗаявкаНаРасходованиеДенежныхСредств.ДобавитьКомандуСоздатьНаОсновании(КомандыСозданияНаОсновании);
Документы.РасходныйКассовыйОрдер.ДобавитьКомандуСоздатьНаОсновании(КомандыСозданияНаОсновании);
Документы.СписаниеБезналичныхДенежныхСредств.ДобавитьКомандуСоздатьНаОсновании(КомандыСозданияНаОсновании);
АвансовыйОтчетЛокализация.ДобавитьКомандыСозданияНаОсновании(КомандыСозданияНаОсновании, Параметры);
ИсправлениеДокументов.ДобавитьКомандуИсправление(КомандыСозданияНаОсновании, ПустаяСсылка().Метаданные());
ИсправлениеДокументов.ДобавитьКомандуСторно(КомандыСозданияНаОсновании, ПустаяСсылка().Метаданные());
КонецПроцедуры
Функция ДобавитьКомандуСоздатьНаОсновании(КомандыСозданияНаОсновании) Экспорт
Если ПравоДоступа("Добавление", Метаданные.Документы.АвансовыйОтчет) Тогда
КомандаСоздатьНаОсновании = КомандыСозданияНаОсновании.Добавить();
КомандаСоздатьНаОсновании.Менеджер = Метаданные.Документы.АвансовыйОтчет.ПолноеИмя();
КомандаСоздатьНаОсновании.Представление = ОбщегоНазначенияУТ.ПредставлениеОбъекта(Метаданные.Документы.АвансовыйОтчет);
КомандаСоздатьНаОсновании.РежимЗаписи = "Проводить";
Возврат КомандаСоздатьНаОсновании;
КонецЕсли;
Возврат Неопределено;
КонецФункции
#КонецОбласти
#Область Отчеты
Процедура ДобавитьКомандыОтчетов(КомандыОтчетов, Параметры) Экспорт
АвансовыйОтчетЛокализация.ДобавитьКомандыОтчетов(КомандыОтчетов, Параметры);
КонецПроцедуры
#КонецОбласти
#Область Печать
Процедура ДобавитьКомандыПечати(КомандыПечати) Экспорт
АвансовыйОтчетЛокализация.ДобавитьКомандыПечати(КомандыПечати);
КонецПроцедуры
Процедура Печать(МассивОбъектов, ПараметрыПечати, КоллекцияПечатныхФорм, ОбъектыПечати, ПараметрыВывода) Экспорт
АвансовыйОтчетЛокализация.Печать(МассивОбъектов, ПараметрыПечати, КоллекцияПечатныхФорм, ОбъектыПечати, ПараметрыВывода)
КонецПроцедуры
Функция ДополнительныеДокументыПечати(МассивДокументов) Экспорт
Запрос = Новый Запрос;
Запрос.Текст = "
|ВЫБРАТЬ
| ДанныеДокумента.Ссылка КАК Ссылка
|ИЗ
| Документ.ПриобретениеТоваровУслуг КАК ДанныеДокумента
|ГДЕ
| Данныедокумента.АвансовыйОтчет В (&МассивДокументов)
| И Данныедокумента.Проведен
|
|";
Запрос.УстановитьПараметр("МассивДокументов", МассивДокументов);
Возврат Запрос.Выполнить().Выгрузить().ВыгрузитьКолонку("Ссылка");
КонецФункции
#КонецОбласти
#КонецОбласти
#КонецЕсли