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