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