Реклама на этом месте
Форум 1С
Форум 1С
Программистам. Бухгалтерам. Администраторам. Пользователям
Задай вопрос - получи решение проблемы. Без троллинга и флуда.
14 Дек 2017, 20:06
МультиВход
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Не получили письмо с кодом активации?
 
collapse

Автор Тема: Требуется помощь с отчетом по Дебиторской задолженности  (Прочитано 4268 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн Стервятник

  • *
  • Сообщений: 2
  • РЕПУТАЦИЯ: 0
  • Регистрация: 2013-11-27
  • Сайт: 
  • Профессия: Программист 7.7
Доброе время суток, дамы и господа! У меня вопрос по стандартному отчету "Дебиторская задолженность по срокам долга" из конфигурации "Управление торговлей 10.3". Необходимо добавить в данный отчет два новых столбца "Дата последнего платежа" и "Сумма последнего платежа". Данные берутся из "Платежное поручение входящее" и "Приходно-кассового ордер". Имеется код запросов, который определяет последние периоды оплаты из виртуальной таблицы остатков, отбирает документы, по которым последними вносили оплату и выбирает необходимые суммы. Код работает через консоль запросов.
ВЫБРАТЬ
ВзаиморасчетыСКонтрагентамиПоДокументамРасчетовОстатки.ДоговорКонтрагента,
ВзаиморасчетыСКонтрагентамиПоДокументамРасчетовОстатки.Организация,
ВзаиморасчетыСКонтрагентамиПоДокументамРасчетовОстатки.Контрагент,
    МАКСИМУМ(ВзаиморасчетыСКонтрагентамиПоДокументамРасчетов.Период) КАК Период
ПОМЕСТИТЬ ВТ_Время
ИЗ
    РегистрНакопления.ВзаиморасчетыСКонтрагентамиПоДокументамРасчетов.Остатки КАК ВзаиморасчетыСКонтрагентамиПоДокументамРасчетовОстатки
        ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.ВзаиморасчетыСКонтрагентамиПоДокументамРасчетов КАК ВзаиморасчетыСКонтрагентамиПоДокументамРасчетов
        ПО ВзаиморасчетыСКонтрагентамиПоДокументамРасчетовОстатки.ДоговорКонтрагента = ВзаиморасчетыСКонтрагентамиПоДокументамРасчетов.ДоговорКонтрагента
            И ВзаиморасчетыСКонтрагентамиПоДокументамРасчетовОстатки.Контрагент = ВзаиморасчетыСКонтрагентамиПоДокументамРасчетов.Контрагент
            И ВзаиморасчетыСКонтрагентамиПоДокументамРасчетовОстатки.Организация = ВзаиморасчетыСКонтрагентамиПоДокументамРасчетов.Организация
ГДЕ
    (ВзаиморасчетыСКонтрагентамиПоДокументамРасчетов.Регистратор ССЫЛКА Документ.ПриходныйКассовыйОрдер
            ИЛИ ВзаиморасчетыСКонтрагентамиПоДокументамРасчетов.Регистратор ССЫЛКА Документ.ПлатежноеПоручениеВходящее)

СГРУППИРОВАТЬ ПО
    ВзаиморасчетыСКонтрагентамиПоДокументамРасчетовОстатки.ДоговорКонтрагента,
    ВзаиморасчетыСКонтрагентамиПоДокументамРасчетовОстатки.Организация,
    ВзаиморасчетыСКонтрагентамиПоДокументамРасчетовОстатки.Контрагент;

ВЫБРАТЬ
    ВТ_Время.ДоговорКонтрагента,
    ВТ_Время.Организация,
    ВТ_Время.Контрагент,
    МАКСИМУМ(ВзаиморасчетыСКонтрагентамиПоДокументамРасчетов.Регистратор) КАК Регистратор
ПОМЕСТИТЬ ВТ_ПоследниеДокументы
ИЗ
    ВТ_Время КАК ВТ_Время
        ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.ВзаиморасчетыСКонтрагентамиПоДокументамРасчетов КАК ВзаиморасчетыСКонтрагентамиПоДокументамРасчетов
        ПО ВТ_Время.ДоговорКонтрагента = ВзаиморасчетыСКонтрагентамиПоДокументамРасчетов.ДоговорКонтрагента
            И ВТ_Время.Организация = ВзаиморасчетыСКонтрагентамиПоДокументамРасчетов.Организация
            И ВТ_Время.Контрагент = ВзаиморасчетыСКонтрагентамиПоДокументамРасчетов.Контрагент
            И ВТ_Время.Период = ВзаиморасчетыСКонтрагентамиПоДокументамРасчетов.Период

СГРУППИРОВАТЬ ПО
    ВТ_Время.ДоговорКонтрагента,
    ВТ_Время.Организация,
    ВТ_Время.Контрагент;

ВЫБРАТЬ
    ВТ_ПоследниеДокументы.ДоговорКонтрагента,
    ВТ_ПоследниеДокументы.Организация,
    ВТ_ПоследниеДокументы.Контрагент,
    ВТ_ПоследниеДокументы.Регистратор,
    ВТ_ПоследниеДокументы.Регистратор.СуммаДокумента
ИЗ
    ВТ_ПоследниеДокументы КАК ВТ_ПоследниеДокументы

И собственно сам стандартный отчет по дебиторской задолженности.
ТекстЗапросаПоОстаткам =
"ВЫБРАТЬ
| ВзаиморасчетыПоДокументамОстатки.Организация,
| ВзаиморасчетыПоДокументамОстатки.Контрагент,
| ВзаиморасчетыПоДокументамОстатки.ДоговорКонтрагента,
| ВзаиморасчетыПоДокументамОстатки.Сделка,
| ВзаиморасчетыПоДокументамОстатки.ДокументРасчетовСКонтрагентом,
| ВзаиморасчетыПоДокументамОстатки.СуммаВзаиморасчетовОстаток КАК ОстатокДолга0
|ИЗ
| РегистрНакопления.ВзаиморасчетыСКонтрагентамиПоДокументамРасчетов.Остатки(
| &ДатаОстатков,
| {(Организация).* КАК Организация, (Контрагент).* КАК Контрагент, (ДоговорКонтрагента).* КАК ДоговорКонтрагента, (Сделка).* КАК Сделка}) КАК ВзаиморасчетыПоДокументамОстатки
|ГДЕ
| ВзаиморасчетыПоДокументамОстатки.СуммаВзаиморасчетовОстаток > 0";

ТекстЗапросаПоОборотам =
"ВЫБРАТЬ
| ВзаиморасчетыПоДокументамОбороты.Организация,
| ВзаиморасчетыПоДокументамОбороты.Контрагент,
| ВзаиморасчетыПоДокументамОбороты.ДоговорКонтрагента,
| ВзаиморасчетыПоДокументамОбороты.Сделка,
| ВзаиморасчетыПоДокументамОбороты.ДокументРасчетовСКонтрагентом,
| ВЫБОР
| КОГДА ВзаиморасчетыПоДокументамОбороты.СуммаВзаиморасчетовПриход > 0
| ТОГДА ВзаиморасчетыПоДокументамОбороты.СуммаВзаиморасчетовПриход
| ИНАЧЕ 0
| КОНЕЦ - ВЫБОР
| КОГДА ВзаиморасчетыПоДокументамОбороты.СуммаВзаиморасчетовРасход < 0
| ТОГДА ВзаиморасчетыПоДокументамОбороты.СуммаВзаиморасчетовРасход
| ИНАЧЕ 0
| КОНЕЦ КАК УвеличениеДолга1
|ИЗ
| РегистрНакопления.ВзаиморасчетыСКонтрагентамиПоДокументамРасчетов.Обороты(
| &НачалоИнтервала1,
| &КонецИнтервала1,
| ,
| {(Организация).* КАК Организация, (Контрагент).* КАК Контрагент, (ДоговорКонтрагента).* КАК ДоговорКонтрагента, (Сделка).* КАК Сделка}) КАК ВзаиморасчетыПоДокументамОбороты";

КолИнтервалов = ТабИнтервалы.Количество();

ТекстЗапросаОстатокИОбороты =
"ВЫБРАТЬ
| Остатки.Организация,
| Остатки.Контрагент,
| Остатки.ДоговорКонтрагента,
| Остатки.Сделка,
| Остатки.ДокументРасчетовСКонтрагентом,
| Остатки.ОстатокДолга0";
Для Ном = 1 По КолИнтервалов - 1 Цикл
ОборотыНом = "Обороты" + Ном;
ТекстЗапросаОстатокИОбороты = ТекстЗапросаОстатокИОбороты + ",
| ЕСТЬNULL(Обороты" + Ном + ".УвеличениеДолга" + Ном + ", 0) КАК УвеличениеДолга" + Ном;
КонецЦикла;
ТекстЗапросаОстатокИОбороты = ТекстЗапросаОстатокИОбороты + "
|ИЗ
| (" + ТекстЗапросаПоОстаткам + ") КАК Остатки";
Для Ном = 1 По КолИнтервалов - 1 Цикл
ТекстЗапросаПоОборотамИнтервала = СтрЗаменить(ТекстЗапросаПоОборотам, "УвеличениеДолга1", "УвеличениеДолга" + Ном);
ТекстЗапросаПоОборотамИнтервала = СтрЗаменить(ТекстЗапросаПоОборотамИнтервала, "&НачалоИнтервала1", "&НачалоИнтервала" + Ном);
ТекстЗапросаПоОборотамИнтервала = СтрЗаменить(ТекстЗапросаПоОборотамИнтервала, "&КонецИнтервала1", "&КонецИнтервала" + Ном);
ОборотыНом = "Обороты" + Ном;
ТекстЗапросаОстатокИОбороты = ТекстЗапросаОстатокИОбороты + "
|ЛЕВОЕ СОЕДИНЕНИЕ
| (" + ТекстЗапросаПоОборотамИнтервала + ") КАК " + ОборотыНом + "
| ПО
| Остатки.Организация = " + ОборотыНом + ".Организация
| И Остатки.Контрагент = " + ОборотыНом + ".Контрагент
| И Остатки.ДоговорКонтрагента = " + ОборотыНом + ".ДоговорКонтрагента
| И Остатки.Сделка = " + ОборотыНом + ".Сделка
| И Остатки.ДокументРасчетовСКонтрагентом = " + ОборотыНом + ".ДокументРасчетовСКонтрагентом";
КонецЦикла;

ТекстЗапросаОстаткиПоПериодам =
"ВЫБРАТЬ
| ОстатокИОбороты.Организация,
| ОстатокИОбороты.Контрагент,
| ОстатокИОбороты.ДоговорКонтрагента,
| ОстатокИОбороты.ДоговорКонтрагента.ВалютаВзаиморасчетов КАК ВалютаВзаиморасчетов,
| ОстатокИОбороты.Сделка,
| ОстатокИОбороты.ДокументРасчетовСКонтрагентом,
| ОстатокИОбороты.ОстатокДолга0";
Для Ном = 1 По КолИнтервалов - 1 Цикл
ВыражениеОстатка = "ОстатокИОбороты.ОстатокДолга0";
Для й = 1 По Ном Цикл
ВыражениеОстатка = ВыражениеОстатка + " - ОстатокИОбороты.УвеличениеДолга" + й;
КонецЦикла;
ТекстЗапросаОстаткиПоПериодам = ТекстЗапросаОстаткиПоПериодам + ",
| ВЫБОР
| КОГДА " + ВыражениеОстатка + " > 0
| ТОГДА " + ВыражениеОстатка + "
| ИНАЧЕ 0
| КОНЕЦ КАК ОстатокДолга" + Ном;
КонецЦикла;
ТекстЗапросаОстаткиПоПериодам = ТекстЗапросаОстаткиПоПериодам + "
|ИЗ
| (" + ТекстЗапросаОстатокИОбороты + ") КАК ОстатокИОбороты";

ТекстПоказателей = "
| ОстаткиПоПериодам.ОстатокДолга0 КАК ОстатокДолга";
Для Ном = 1 По КолИнтервалов - 1 Цикл
ТекстПоказателей = ТекстПоказателей + ",
| ОстаткиПоПериодам.ОстатокДолга" + (Ном - 1) + " - ОстаткиПоПериодам.ОстатокДолга" + Ном + " КАК ОстатокПериода" + Ном;
КонецЦикла;
Если КолИнтервалов > 0 Тогда
ТекстПоказателей = ТекстПоказателей + ",
| ОстаткиПоПериодам.ОстатокДолга" + (КолИнтервалов - 1) + " КАК ОстатокПериода" + КолИнтервалов;
КонецЕсли;

ТекстЗапроса =
"ВЫБРАТЬ
| ОстаткиПоПериодам.Организация КАК Организация,
| ПРЕДСТАВЛЕНИЕ(ОстаткиПоПериодам.Организация) КАК ОрганизацияПредставление,
| ОстаткиПоПериодам.Контрагент КАК Контрагент,
| ПРЕДСТАВЛЕНИЕ(ОстаткиПоПериодам.Контрагент) КАК КонтрагентПредставление,
| ОстаткиПоПериодам.ДоговорКонтрагента КАК ДоговорКонтрагента,
| ПРЕДСТАВЛЕНИЕ(ОстаткиПоПериодам.ДоговорКонтрагента) КАК ДоговорКонтрагентаПредставление,
| ОстаткиПоПериодам.ДоговорКонтрагента.ВалютаВзаиморасчетов КАК ВалютаВзаиморасчетов,
| ПРЕДСТАВЛЕНИЕ(ОстаткиПоПериодам.ДоговорКонтрагента.ВалютаВзаиморасчетов) КАК ВалютаВзаиморасчетовПредставление,
| ОстаткиПоПериодам.Сделка КАК Сделка,
| ПРЕДСТАВЛЕНИЕ(ОстаткиПоПериодам.Сделка) КАК СделкаПредставление,
| ОстаткиПоПериодам.ДокументРасчетовСКонтрагентом КАК ДокументРасчетовСКонтрагентом,
| ПРЕДСТАВЛЕНИЕ(ОстаткиПоПериодам.ДокументРасчетовСКонтрагентом) КАК ДокументРасчетовСКонтрагентомПредставление,"
+ ТекстПоказателей + "
| //ПОЛЯ_СВОЙСТВА
| //ПОЛЯ_КАТЕГОРИИ
|{ВЫБРАТЬ
| Организация.*,
| Контрагент.*,
| ДоговорКонтрагента.*,
| ВалютаВзаиморасчетов.*,
| Сделка.*,
| ДокументРасчетовСКонтрагентом.*,"
+ ТекстПоказателей + "
| //ПСЕВДОНИМЫ_СВОЙСТВА
| //ПСЕВДОНИМЫ_КАТЕГОРИИ
|}
|ИЗ
| (" + ТекстЗапросаОстаткиПоПериодам + ") КАК ОстаткиПоПериодам
| //СОЕДИНЕНИЯ
|{ГДЕ"
+ ТекстПоказателей + "
| //УСЛОВИЯ_СВОЙСТВА
| //УСЛОВИЯ_КАТЕГОРИИ
|}
|{УПОРЯДОЧИТЬ ПО
| Организация.*,
| Контрагент.*,
| ДоговорКонтрагента.*,
| Сделка.*,
| ДокументРасчетовСКонтрагентом.*,
| ВалютаВзаиморасчетов.*,
| ОстатокДолга";
Для Ном = 1 По КолИнтервалов Цикл
ТекстЗапроса = ТекстЗапроса + ",
| ОстатокПериода" + Ном;
КонецЦикла;
ТекстЗапроса = ТекстЗапроса + "
| //ПСЕВДОНИМЫ_СВОЙСТВА
| //ПСЕВДОНИМЫ_КАТЕГОРИИ
|}
|ИТОГИ
| СУММА(ОстатокДолга)";
Для Ном = 1 По КолИнтервалов Цикл
ТекстЗапроса = ТекстЗапроса + ",
| СУММА(ОстатокПериода" + Ном + ")";
КонецЦикла;
ТекстЗапроса = ТекстЗапроса + "
| //ИТОГИ_СВОЙСТВА
| //ИТОГИ_КАТЕГОРИИ
|ПО
| ОБЩИЕ
|{ИТОГИ ПО
| Организация.*,
| Контрагент.*,
| ДоговорКонтрагента.*,
| Контрагент.*,
| Сделка.*,
| ДокументРасчетовСКонтрагентом.*,
| ВалютаВзаиморасчетов.*
| //ПСЕВДОНИМЫ_СВОЙСТВА
| //ПСЕВДОНИМЫ_КАТЕГОРИИ
|}";
Каким образом можно запрос по документам оплат добавить в отчет по Дебиторской задолженности, чтобы в отчете появились два столбца "Дата" и "Сумма" последней оплаты? Я пробовал много раз внедрить вышеуказанный код, но так и смог вставить его правильно. Получалось: суммы не соответствуют последним, даты совершенно другие. Вообщем, каша полная. В отдельности всё работает и всё показывает правильно. Помогите пожалуйста, если конечно реально такое сделать... :dfbsdfbsdf:


Оффлайн Стервятник

  • *
  • Сообщений: 2
  • РЕПУТАЦИЯ: 0
  • Регистрация: 2013-11-27
  • Сайт: 
  • Профессия: Программист 7.7
Никто не может помочь добавить в штатный отчет "Дебиторская задолженность по периодам" в УТ10.3 две колонки оплата и дата оплаты (последние)?!


Теги:
 

Нужна помощь про "Отчет о смене без гашение" и "Z отчет"

Автор Serg85Раздел Конфигурирование, программирование в "1С - Предприятие 8"

Ответов: 1
Просмотров: 3758
Последний ответ 23 Ноя 2014, 12:36
от дфтын
Ребята, срочно нужна помощь. Какую процедуру нужно написать в форме справочника, чтобы таблица заполнялась данными из другого справочника?

Автор Олька БякинаРаздел Конфигурирование, программирование в "1С - Предприятие 8"

Ответов: 5
Просмотров: 2758
Последний ответ 27 Май 2016, 15:19
от Олька Бякина
Нужна помощь по "Управление торговлей 10.3"

Автор werstakРаздел Конфигурирование, программирование в "1С - Предприятие 8"

Ответов: 0
Просмотров: 1972
Последний ответ 26 Мар 2011, 12:50
от werstak
Нужна помощь в формировании отчета "Преобразование значения к типу Дата не может быть выполнено"

Автор STLuka1337Раздел Конфигурирование, программирование в "1С - Предприятие 8"

Ответов: 1
Просмотров: 2093
Последний ответ 14 Ноя 2014, 13:24
от cska-fanat-kz
Нужна помощь специалиста 1С (v8.1) (программиста) по работе с "Бухгалтерией"

Автор lx470Раздел Конфигурирование, программирование в "1С - Предприятие 8"

Ответов: 2
Просмотров: 2387
Последний ответ 24 Фев 2011, 15:25
от lx470

* Живое общение

Не устроил ответ?

Зарегистрируйся и задай свой вопрос. Живое общение приносит результат намного быстрее.


Зарегистрироваться

* Реклама

* Поиск

* Последние задачи на разработку (фриланс)

* Реклама

* Последние вакансии

* Топ 10 авторов за месяц

Геннадий ОбьГЭС Геннадий ОбьГЭС
184 Сообщений
ilyay ilyay
75 Сообщений
oleg-x
51 Сообщений
alex0402
50 Сообщений
andron81_81
40 Сообщений
AIFrame
37 Сообщений
MuI_I_Ika MuI_I_Ika
34 Сообщений
BuhRust
30 Сообщений
Golickoff Golickoff
29 Сообщений
Dima Dddd Dima Dddd
26 Сообщений

* Кто онлайн

  • Точка Гостей: 349
  • Точка Скрытых: 0
  • Точка Пользователей: 6
  • Точка Сейчас на форуме:

* Облако тэгов

* Форум 1С с мобильного

* Инструменты

* Дополнительно

Поиск

 
SimplePortal 2.3.5 © 2008-2012, SimplePortal