helpf.pro
Регистрация

v8: Акт сверки взаиморасчетов в разрезе договоров

Gemini8
28.03.2018 15:27Прочитано: 2697

В УПП  нужно сделать Акт сверки с разбивкой по договорам. Хочу сделать впф. Для этого Процедуру заполнения документа акта сверки перенесла в свою обработку (при отсутствии договора в документе не подтягиваются Корректировки, а при разбивке они нужны). Не работает запрос. Загружаю Запрос в Консоль выдает пустую таблицу. тдРезультат пуста. Помогите пж, подскажите что не так. Конфу не очень хочется трогать.

Код 1C v 8.2 УП
 перем Организация, Контрагент, ДоговорКонтрагента, Сделка, ДатаНачала, ДатаОкончания, Комментарий, Ответственный, ВалютаДокумента, ПредставительОрганизации, ПредставительКонтрагента, ОстатокНаНачало, Расхождение, СверкаСогласована, ПоДаннымОрганизации, ПоДаннымКонтрагента, СписокСчетов, Дата, Номер, Проведен, Ссылка;
перем МассивОбъектов, ОбъектыПечати, МетаданныеПоДокументам, мВалютаРегламентированногоУчета;


Организация = СсылкаНаОбъект.Организация;
Контрагент = СсылкаНаОбъект.Контрагент;
ДоговорКонтрагента = СсылкаНаОбъект.ДоговорКонтрагента;
Сделка = СсылкаНаОбъект.Сделка;
ДатаНачала = СсылкаНаОбъект.ДатаНачала;
ДатаОкончания = СсылкаНаОбъект.ДатаОкончания;
Комментарий = СсылкаНаОбъект.Комментарий;
Ответственный = СсылкаНаОбъект.Ответственный;
ВалютаДокумента = СсылкаНаОбъект.ВалютаДокумента;
ПредставительОрганизации = СсылкаНаОбъект.ПредставительОрганизации;
ПредставительКонтрагента = СсылкаНаОбъект.ПредставительКонтрагента;
ОстатокНаНачало = СсылкаНаОбъект.ОстатокНаНачало;
Расхождение = СсылкаНаОбъект.Расхождение;
СверкаСогласована = СсылкаНаОбъект.СверкаСогласована;
ПоДаннымОрганизации = СсылкаНаОбъект.ПоДаннымОрганизации;
ПоДаннымКонтрагента = СсылкаНаОбъект.ПоДаннымКонтрагента;
СписокСчетов = СсылкаНаОбъект.СписокСчетов;
Дата = СсылкаНаОбъект.Дата;
Номер = СсылкаНаОбъект.Номер;
Проведен = СсылкаНаОбъект.Проведен;
ПометкаУдаления = СсылкаНаОбъект.ПометкаУдаления;
Ссылка = СсылкаНаОбъект;
МассивОбъектов = Новый Массив;
МассивОбъектов.Добавить(СсылкаНаОбъект);
ОбъектыПечати = Новый СписокЗначений;


КоличествоСчетов = СписокСчетов.Количество();


ФильтрСписокСчетов = Новый массив();
Для каждого СтрокаСчета Из СписокСчетов Цикл
Если НЕ ЗначениеЗаполнено(СтрокаСчета.Счет) или СтрокаСчета.УчаствуетВРасчетах = Ложь Тогда
Продолжить;
Иначе
ФильтрСписокСчетов.Добавить(СтрокаСчета.Счет);
КонецЕсли; 
КонецЦикла; 
ЗаполнитьПоДаннымБухгалтерскогоУчетаВТ(ФильтрСписокСчетов);
//Процедура заполнения
Если ФильтрСписокСчетов = Неопределено Тогда

СписокСчетовСтрока = "";
Для каждого СтрокаСчета Из СписокСчетов Цикл
Если НЕ ЗначениеЗаполнено(СтрокаСчета.Счет) или СтрокаСчета.УчаствуетВРасчетах = Ложь Тогда
Продолжить;
Иначе
СписокСчетовСтрока = СписокСчетовСтрока + ?(ПустаяСтрока(СписокСчетовСтрока), "", ", ") + Строка(СтрокаСчета.Счет);
КонецЕсли; 
КонецЦикла; 

ФильтрСписокСчетов = БухгалтерскийУчет.ПолучитьМассивСчетов("Хозрасчетный", СписокСчетовСтрока);

Если ФильтрСписокСчетов.Количество() = 0 Тогда
ОбщегоНазначения.СообщитьОбОшибке("Неверно задан список счетов, по которым производится сверка!",,,СтатусСообщения.Важное);
Возврат;
КонецЕсли;

Иначе

СписокСчетовСтрока = "";
Для Каждого Счет ИЗ ФильтрСписокСчетов Цикл
СписокСчетовСтрока = СписокСчетовСтрока + ?(ПустаяСтрока(СписокСчетовСтрока), "", ", ") + Строка(Счет);
КонецЦикла;

ФильтрСписокСчетов = БухгалтерскийУчет.ПолучитьМассивСчетов("Хозрасчетный", СписокСчетовСтрока);

КонецЕсли; 


Запрос = Новый Запрос;
Запрос.УстановитьПараметр("ДатаНачала",    ?(НЕ ЗначениеЗаполнено(ДатаНачала),    Неопределено, ДатаНачала));
Запрос.УстановитьПараметр("ДатаОкончания", ?(НЕ ЗначениеЗаполнено(ДатаОкончания), Неопределено, КонецДня(ДатаОкончания)));
Запрос.УстановитьПараметр("Организация",   Организация);
Запрос.УстановитьПараметр("Контрагент",    Контрагент);
Запрос.УстановитьПараметр("Валюта",        ?(НЕ ЗначениеЗаполнено(ВалютаДокумента) или (ВалютаДокумента = мВалютаРегламентированногоУчета), неопределено,ВалютаДокумента));
Запрос.УстановитьПараметр("ФильтрСписокСчетов", ФильтрСписокСчетов);


АналитикаРасчетов = новый Массив();
АналитикаРасчетов.Добавить(ПланыВидовХарактеристик.ВидыСубконтоХозрасчетные.Контрагенты);
АналитикаРасчетов.Добавить(ПланыВидовХарактеристик.ВидыСубконтоХозрасчетные.Договоры);
Запрос.УстановитьПараметр("АналитикаРасчетов",    АналитикаРасчетов);


Запрос.УстановитьПараметр("ДоговорКонтрагента", ?(НЕ ЗначениеЗаполнено(ДоговорКонтрагента),Неопределено,ДоговорКонтрагента));


Запрос.Текст = 
"ВЫБРАТЬ
| ХозрасчетныйОбороты.Период КАК Дата,
| ХозрасчетныйОбороты.Регистратор КАК ДокументРегистратор,
| ХозрасчетныйОбороты.Субконто2 КАК Договор,
| ВЫБОР
| КОГДАВалюта = НЕОПРЕДЕЛЕНО
| ТОГДА ХозрасчетныйОбороты.СуммаОборотДт
| ИНАЧЕ ХозрасчетныйОбороты.ВалютнаяСуммаОборотДт
| КОНЕЦ КАК Дебет,
| ВЫБОР
| КОГДАВалюта = НЕОПРЕДЕЛЕНО
| ТОГДА ХозрасчетныйОбороты.СуммаОборотКт
| ИНАЧЕ ХозрасчетныйОбороты.ВалютнаяСуммаОборотКт
| КОНЕЦ КАК Кредит,
| ЕСТЬNULL(ХозрасчетныйОбороты.Регистратор.НомерВходящегоДокумента, НЕОПРЕДЕЛЕНО) КАК НомерВходящегоДокумента,
| ЕСТЬNULL(ХозрасчетныйОбороты.Регистратор.ДатаВходящегоДокумента, НЕОПРЕДЕЛЕНО) КАК ДатаВходящегоДокумента,
| ХозрасчетныйОбороты.КорСчет,
| ХозрасчетныйОбороты.КорСубконто1,
| ХозрасчетныйОбороты.КорСубконто2,
| ХозрасчетныйОбороты.КорСубконто3,
| ХозрасчетныйОбороты.Валюта,
| ХозрасчетныйОбороты.ВалютнаяСуммаОборот,
| ВЫБОР
| КОГДА ХозрасчетныйОбороты.КорСубконто1 ССЫЛКА Справочник.ПрочиеДоходыИРасходы
| ТОГДА ХозрасчетныйОбороты.КорСубконто1.ВидПрочихДоходовИРасходов
| ИНАЧЕ НЕОПРЕДЕЛЕНО
| КОНЕЦ КАК ВидПрочихДоходовИРасходов,
| ХозрасчетныйОбороты.Счет
|ПОМЕСТИТЬ ВременнаяТаблицаДанных
|ИЗ
| РегистрБухгалтерии.Хозрасчетный.Обороты(
| &ДатаНачала,
| &ДатаОкончания,
| Регистратор,
| Счет В (&ФильтрСписокСчетов),
| &АналитикаРасчетов,
| Организация =Организация
| И ВЫБОР
| КОГДАВалюта = НЕОПРЕДЕЛЕНО
| ТОГДА ИСТИНА
| ИНАЧЕ Валюта =Валюта
| КОНЕЦ
| И Субконто1 =Контрагент
| И ВЫБОР
| КОГДАДоговорКонтрагента = НЕОПРЕДЕЛЕНО
| ТОГДА ИСТИНА
| ИНАЧЕ Субконто2 =ДоговорКонтрагента
| КОНЕЦ,
| ,
| ) КАК ХозрасчетныйОбороты
|ГДЕ
| ВЫБОР
| КОГДА ХозрасчетныйОбороты.КорСчет В (&ФильтрСписокСчетов)
| ТОГДА ВЫБОР
| КОГДАДоговорКонтрагента = НЕОПРЕДЕЛЕНО
| ТОГДА НЕ ЕСТЬNULL(ХозрасчетныйОбороты.КорСубконто1, НЕОПРЕДЕЛЕНО) =Контрагент
| ИНАЧЕ НЕ(ЕСТЬNULL(ХозрасчетныйОбороты.КорСубконто1, НЕОПРЕДЕЛЕНО) =Контрагент
| И ЕСТЬNULL(ХозрасчетныйОбороты.КорСубконто2, НЕОПРЕДЕЛЕНО) =ДоговорКонтрагента)
| КОНЕЦ
| ИНАЧЕ ИСТИНА
| КОНЕЦ
| И НЕ(ВЫБОР
| КОГДАВалюта = НЕОПРЕДЕЛЕНО
| ТОГДА ХозрасчетныйОбороты.СуммаОборотДт
| ИНАЧЕ ХозрасчетныйОбороты.ВалютнаяСуммаОборотДт
| КОНЕЦ = 0
| И ВЫБОР
| КОГДАВалюта = НЕОПРЕДЕЛЕНО
| ТОГДА ХозрасчетныйОбороты.СуммаОборотКт
| ИНАЧЕ ХозрасчетныйОбороты.ВалютнаяСуммаОборотКт
| КОНЕЦ = 0)
|;
|
|////////////////////////////////////////////////////////////////////////////////
|ВЫБРАТЬ
| ВременнаяТаблицаДанных.Дата,
| ВременнаяТаблицаДанных.ДокументРегистратор,
| ВременнаяТаблицаДанных.Договор,
| СУММА(ВременнаяТаблицаДанных.Дебет) КАК Дебет,
| СУММА(ВременнаяТаблицаДанных.Кредит) КАК Кредит,
| ВременнаяТаблицаДанных.НомерВходящегоДокумента,
| ВременнаяТаблицаДанных.ДатаВходящегоДокумента,
| ВременнаяТаблицаДанных.КорСчет,
| ВЫРАЗИТЬ(ВременнаяТаблицаДанных.КорСубконто1 КАК Справочник.ПрочиеДоходыИРасходы) КАК КорСубконто1,
| ВременнаяТаблицаДанных.Валюта,
| СУММА(ВременнаяТаблицаДанных.ВалютнаяСуммаОборот) КАК ВалютнаяСуммаОборот,
| ВременнаяТаблицаДанных.ВидПрочихДоходовИРасходов,
| ВременнаяТаблицаДанных.Счет
|ИЗ
| ВременнаяТаблицаДанных КАК ВременнаяТаблицаДанных
|
|СГРУППИРОВАТЬ ПО
| ВременнаяТаблицаДанных.Договор,
| ВременнаяТаблицаДанных.НомерВходящегоДокумента,
| ВременнаяТаблицаДанных.ДатаВходящегоДокумента,
| ВременнаяТаблицаДанных.КорСчет,
| ВЫРАЗИТЬ(ВременнаяТаблицаДанных.КорСубконто1 КАК Справочник.ПрочиеДоходыИРасходы),
| ВременнаяТаблицаДанных.Валюта,
| ВременнаяТаблицаДанных.ВидПрочихДоходовИРасходов,
| ВременнаяТаблицаДанных.Счет,
| ВременнаяТаблицаДанных.Дата,
| ВременнаяТаблицаДанных.ДокументРегистратор
|
|ИМЕЮЩИЕ
| НЕ(СУММА(ВременнаяТаблицаДанных.Дебет) = 0
| И СУММА(ВременнаяТаблицаДанных.Кредит) = 0)
|
|УПОРЯДОЧИТЬ ПО
| ВременнаяТаблицаДанных.Дата,
| ВременнаяТаблицаДанных.ДокументРегистратор";


Выборка = Запрос.Выполнить().Выбрать();
ТдРезультат=Запрос.Выполнить().Выгрузить();


Yandex
Возможно, вас также заинтересует
Реклама на портале
all4cf
28.03.2018 22:23Ответ № 1

А от куда ты взял запрос? скорее всего ошибка в передаваемых параметрах.

Мне кажется для УПП такое уже точно есть, поищи готовое решение

Gemini8
29.03.2018 08:57Ответ № 2

Да, спасибо, дело и правда было в переменной мВалютаРегламентированногоУчета. У меня оно пустое, а в конфе нет

Gemini8
29.03.2018 08:58Ответ № 3
Вопрос закрыт!
Подсказка: Вы можете добавить любую страничку в Избранное щелкнув по значку
Вы не можете отправить комментарий анонимно, пожалуйста войдите или зарегистрируйтесь.