Дебиторка fifo по долгам контрагентов (УТ 10.3).

18.12.14

Разработка - Запросы

Задача ставилась следующим образом: нужно показывать долги контрагентов с разбивкой на общий и просроченный, с подсчетом относительного процента, при условии что взаиморасчеты ведутся в целом по договору. т. е. при любых раскладах «попадаем» на построение отчета по fifo. Здесь описано решение данной задачи с использовнием СКД и ранее описанной методики построения отчета.

Скачать файл

ВНИМАНИЕ: Файлы из Базы знаний - это исходный код разработки. Это примеры решения задач, шаблоны, заготовки, "строительные материалы" для учетной системы. Файлы ориентированы на специалистов 1С, которые могут разобраться в коде и оптимизировать программу для запуска в базе данных. Гарантии работоспособности нет. Возврата нет. Технической поддержки нет.

Наименование По подписке [?] Купить один файл
Файл готовой обработки
.erf 21,54Kb
326
326 Скачать (1 SM) Купить за 1 850 руб.

 

Обращаю внимание, что Отчет не будет показывать просроченные долги в стандартной конфигурации УТ 10.3 (см. PS в конце текста)

Отчет будем строить на СКД с использовантем методики Простейший вариант создания отчета или как быстро создать красивый отчет на СКД (v8 Обычное приложение), т. е. начнем с основной схемы компоновки данных, в которую добавим новый набор данных, определенных запросом:

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

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

////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
МАКСИМУМ(ВзаиморасчетыСКонтрагентамиОстаткиИОбороты.Период) КАК Период,
ВзаиморасчетыСКонтрагентамиОстаткиИОбороты.ДоговорКонтрагента
ПОМЕСТИТЬ ДоговорДатаПоследнегоПереходаЧерезНоль
ИЗ
РегистрНакопления.ВзаиморасчетыСКонтрагентами.ОстаткиИОбороты(
,
&ГраницаКонца,
Регистратор,
,
ДоговорКонтрагента В
(ВЫБРАТЬ
ДоговорСуммаДолга.ДоговорКонтрагента
ИЗ
ДоговорСуммаДолга)) КАК ВзаиморасчетыСКонтрагентамиОстаткиИОбороты
ГДЕ
ВзаиморасчетыСКонтрагентамиОстаткиИОбороты.СуммаУпрНачальныйОстаток <=0 И ВзаиморасчетыСКонтрагентамиОстаткиИОбороты.СуммаУпрКонечныйОстаток > 0

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

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

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

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

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

УПОРЯДОЧИТЬ ПО
ДатаОплаты,
ДатаДокумента
{ХАРАКТЕРИСТИКИ
ТИП(Справочник.Контрагенты)
ВИДЫХАРАКТЕРИСТИК (ВЫБРАТЬ
ВидыКонтактнойИнформации.Ссылка,
ВидыКонтактнойИнформации.Наименование,
ВидыКонтактнойИнформации.ВидОбъектаКонтактнойИнформации
ИЗ
Справочник.ВидыКонтактнойИнформации КАК ВидыКонтактнойИнформации
ГДЕ
ВидыКонтактнойИнформации.ВидОбъектаКонтактнойИнформации = ЗНАЧЕНИЕ(Перечисление.ВидыОбъектовКонтактнойИнформации.Контрагенты)
И ВидыКонтактнойИнформации.ПометкаУдаления = ЛОЖЬ)
ПОЛЕКЛЮЧА Ссылка
ПОЛЕИМЕНИ Наименование
ЗНАЧЕНИЯХАРАКТЕРИСТИК (ВЫБРАТЬ
КонтактнаяИнформация.Объект,
КонтактнаяИнформация.Вид,
КонтактнаяИнформация.Представление
ИЗ
РегистрСведений.КонтактнаяИнформация КАК КонтактнаяИнформация)
ПОЛЕОБЪЕКТА Объект
ПОЛЕВИДА Вид
ПОЛЕЗНАЧЕНИЯ Представление }
;

////////////////////////////////////////////////////////////////////////////////
УНИЧТОЖИТЬ ДоговорРеализацииОбратныйНарастИтог
;

////////////////////////////////////////////////////////////////////////////////
УНИЧТОЖИТЬ ДоговорРеализации
;

////////////////////////////////////////////////////////////////////////////////
УНИЧТОЖИТЬ ДоговорДатаПоследнегоПереходаЧерезНоль
;

////////////////////////////////////////////////////////////////////////////////
УНИЧТОЖИТЬ ДоговорСуммаДолга

Запрос состоит из нескольких подзапросов:

1. ДоговорСуммаДолга:

ВЫБРАТЬ

ВзаиморасчетыСКонтрагентамиОстатки.ДоговорКонтрагента,

СУММА(ВзаиморасчетыСКонтрагентамиОстатки.СуммаУпрОстаток) КАК СуммаУпрОстаток,

ВзаиморасчетыСКонтрагентамиОстатки.ДоговорКонтрагента.Организация КАК Организация,

ВзаиморасчетыСКонтрагентамиОстатки.ДоговорКонтрагента.Владелец КАК Контрагент,

ВЫБОР

КОГДА ВзаиморасчетыСКонтрагентамиОстатки.ДоговорКонтрагента.КонтролироватьЧислоДнейЗадолженности

ТОГДА ВзаиморасчетыСКонтрагентамиОстатки.ДоговорКонтрагента.ДопустимоеЧислоДнейЗадолженности + &СдвигДат

ИНАЧЕ "-"

КОНЕЦ КАК ДопустимоеЧислоДнейДолга,

ВЫБОР

КОГДА ВзаиморасчетыСКонтрагентамиОстатки.ДоговорКонтрагента.КонтролироватьСуммуЗадолженности

ТОГДА ВзаиморасчетыСКонтрагентамиОстатки.ДоговорКонтрагента.ДопустимаяСуммаЗадолженности

ИНАЧЕ "-"

КОНЕЦ КАК ДопустимаяСуммаДолга

ПОМЕСТИТЬ ДоговорСуммаДолга

ИЗ

РегистрНакопления.ВзаиморасчетыСКонтрагентами.Остатки(&ГраницаКонца, {(ДоговорКонтрагента.Организация В ИЕРАРХИИ (&Организация)) КАК ОтборПоОрганизации, (ДоговорКонтрагента.Владелец В ИЕРАРХИИ (&Контрагент)) КАК ОтборПоКонтрагенту}) КАК ВзаиморасчетыСКонтрагентамиОстатки

ГДЕ

ВзаиморасчетыСКонтрагентамиОстатки.СуммаУпрОстаток > 0

СГРУППИРОВАТЬ ПО

ВзаиморасчетыСКонтрагентамиОстатки.ДоговорКонтрагента,

ВЫБОР

КОГДА ВзаиморасчетыСКонтрагентамиОстатки.ДоговорКонтрагента.КонтролироватьЧислоДнейЗадолженности

ТОГДА ВзаиморасчетыСКонтрагентамиОстатки.ДоговорКонтрагента.ДопустимоеЧислоДнейЗадолженности + &СдвигДат

ИНАЧЕ "-"

КОНЕЦ,

ВЫБОР

КОГДА ВзаиморасчетыСКонтрагентамиОстатки.ДоговорКонтрагента.КонтролироватьСуммуЗадолженности

ТОГДА ВзаиморасчетыСКонтрагентамиОстатки.ДоговорКонтрагента.ДопустимаяСуммаЗадолженности

ИНАЧЕ "-"

КОНЕЦ,

ВзаиморасчетыСКонтрагентамиОстатки.ДоговорКонтрагента.Организация,

ВзаиморасчетыСКонтрагентамиОстатки.ДоговорКонтрагента.Владелец

;

- выборка из регистра взаиморасчетов только тех договоров по которым на указанную дату имеется долг контрагента, с попутным получением допустимых сумм задолженности и допустимого количества дней задолженности. Обращаю внимание на то, что в выражении поля ДопустимоеЧислоДнейЗадолженности возможно использование параметра СдвигДат — который обеспечивает сдвиг расчета просроченой задолженности.

Результат этой части запроса (в консоли отчетов) будет примерно таким (здесь для простоты включен отбор по договору):

ДоговорКонтрагента

Организация

Контрагент

ДопустимоеЧислоДнейДолга

ДопустимаяСуммаДолга

СуммаУпрОстаток

5420 от 01.06.2011

ООО Сервис

Горбунков С.Н.

20

4 500,00

8 775,00

 

2. ДоговорДатаПоследнегоПереходаЧерезНоль:

ВЫБРАТЬ

МАКСИМУМ(ВзаиморасчетыСКонтрагентамиОстаткиИОбороты.Период) КАК Период,

ВзаиморасчетыСКонтрагентамиОстаткиИОбороты.ДоговорКонтрагента

ПОМЕСТИТЬ ДоговорДатаПоследнегоПереходаЧерезНоль

ИЗ

РегистрНакопления.ВзаиморасчетыСКонтрагентами.ОстаткиИОбороты(

,

&ГраницаКонца,

Регистратор,

,

ДоговорКонтрагента В

(ВЫБРАТЬ

ДоговорСуммаДолга.ДоговорКонтрагента

ИЗ

ДоговорСуммаДолга)) КАК ВзаиморасчетыСКонтрагентамиОстаткиИОбороты

ГДЕ

ВзаиморасчетыСКонтрагентамиОстаткиИОбороты.СуммаУпрНачальныйОстаток <=0

И ВзаиморасчетыСКонтрагентамиОстаткиИОбороты.СуммаУпрКонечныйОстаток > 0

 

СГРУППИРОВАТЬ ПО

ВзаиморасчетыСКонтрагентамиОстаткиИОбороты.ДоговорКонтрагента

;

- получает дату последнего перехода через 0, для каждого договора, попавшего в результат первого запроса

Результат двух рассмотренных частей запроса:

ДоговорКонтрагента

Период

5420 от 01.06.2011

03.10.2011 13:27:14

  

3. ДоговорРеализации:

ВЫБРАТЬ

ВзаиморасчетыСКонтрагентамиОбороты.ДоговорКонтрагента,

ВзаиморасчетыСКонтрагентамиОбороты.Регистратор,

ВзаиморасчетыСКонтрагентамиОбороты.Период КАК ДатаДокумента,

ВЫБОР

КОГДА ВзаиморасчетыСКонтрагентамиОбороты.ДоговорКонтрагента.КонтролироватьЧислоДнейЗадолженности

ТОГДА ДОБАВИТЬКДАТЕ(ВзаиморасчетыСКонтрагентамиОбороты.Период, ДЕНЬ, ВзаиморасчетыСКонтрагентамиОбороты.ДоговорКонтрагента.ДопустимоеЧислоДнейЗадолженности + &СдвигДат)

ИНАЧЕ ДАТАВРЕМЯ(1, 1, 1, 0, 0, 0)

КОНЕЦ КАК ДатаОплаты,

ВзаиморасчетыСКонтрагентамиОбороты.СуммаУпрПриход - ВзаиморасчетыСКонтрагентамиОбороты.СуммаУпрРасход КАК Приход

ПОМЕСТИТЬ ДоговорРеализации

ИЗ

РегистрНакопления.ВзаиморасчетыСКонтрагентами.Обороты(

,

&ГраницаКонца,

Регистратор,

ДоговорКонтрагента В

(ВЫБРАТЬ

ДоговорСуммаДолга.ДоговорКонтрагента

ИЗ

ДоговорСуммаДолга)) КАК ВзаиморасчетыСКонтрагентамиОбороты

ВНУТРЕННЕЕ СОЕДИНЕНИЕ ДоговорДатаПоследнегоПереходаЧерезНоль КАК ДоговорДатаПоследнегоПереходаЧерезНоль

ПО ВзаиморасчетыСКонтрагентамиОбороты.ДоговорКонтрагента = ДоговорДатаПоследнегоПереходаЧерезНоль.ДоговорКонтрагента

И ВзаиморасчетыСКонтрагентамиОбороты.Период >= ДоговорДатаПоследнегоПереходаЧерезНоль.Период

ГДЕ

ВзаиморасчетыСКонтрагентамиОбороты.СуммаУпрПриход - ВзаиморасчетыСКонтрагентамиОбороты.СуммаУпрРасход > 0

;

- формирует выборку регистраторов регистра взаиморасчетов по договорам из первого запроса начиная с даты последнего перехода через 0 (из второго запроса), при условии, что регистратор увеличивает долг контрагента.

Результат:

ДатаОплаты

ДоговорКонтрагента

Приход

Регистратор

14.11.2011 16:36:29

5420 от 01.06.2011

2 824,56

Реализация товаров и услуг 00000000862 от 25.10.2011 16:36:29

23.10.2011 14:01:43

5420 от 01.06.2011

1 027,08

Реализация товаров и услуг 00000000003 от 03.10.2011 14:01:43

14.11.2011 11:06:31

5420 от 01.06.2011

339,12

Реализация товаров и услуг 00000000840 от 25.10.2011 11:06:31

09.11.2011 11:13:38

5420 от 01.06.2011

802,8

Реализация товаров и услуг 00000000666 от 20.10.2011 11:13:38

23.10.2011 13:27:14

5420 от 01.06.2011

1 147,68

Реализация товаров и услуг 00000000002 от 03.10.2011 13:27:14

17.11.2011 11:20:28

5420 от 01.06.2011

640,08

Реализация товаров и услуг 00000000982 от 28.10.2011 11:20:28

23.10.2011 14:41:04

5420 от 01.06.2011

1 106,28

Реализация товаров и услуг 00000000004 от 03.10.2011 14:41:04

01.11.2011 15:12:47

5420 от 01.06.2011

725,4

Реализация товаров и услуг 00000000371 от 12.10.2011 15:12:47

27.10.2011 15:09:03

5420 от 01.06.2011

162

Реализация товаров и услуг 00000000232 от 07.10.2011 15:09:03

 

4. ДоговорРеализацииОбратныйНарастИтог:

ВЫБРАТЬ

ДоговорРеализации.ДоговорКонтрагента,

ДоговорРеализации.ДатаДокумента,

ДоговорРеализации.ДатаОплаты,

ДоговорРеализации.Регистратор,

ДоговорРеализации.Приход,

ВЫБОР

КОГДА ДоговорРеализации.ДатаОплаты = ДАТАВРЕМЯ(1, 1, 1, 0, 0, 0)

ТОГДА NULL

ИНАЧЕ РАЗНОСТЬДАТ(ДОБАВИТЬКДАТЕ(ДоговорРеализации.ДатаОплаты, ДЕНЬ, 1), &Дата, ДЕНЬ)

КОНЕЦ КАК ДнейПросрочки,

СУММА(ДоговорРеализацияКО.Приход) - ДоговорРеализации.Приход КАК НО,

СУММА(ДоговорРеализацияКО.Приход) КАК КО,

ДоговорСуммаДолга.СуммаУпрОстаток

ПОМЕСТИТЬ ДоговорРеализацииОбратныйНарастИтог

ИЗ

ДоговорСуммаДолга КАК ДоговорСуммаДолга

ВНУТРЕННЕЕ СОЕДИНЕНИЕ ДоговорРеализации КАК ДоговорРеализации

ВНУТРЕННЕЕ СОЕДИНЕНИЕ ДоговорРеализации КАК ДоговорРеализацияКО

ПО ДоговорРеализации.ДоговорКонтрагента = ДоговорРеализацияКО.ДоговорКонтрагента

И (ВЫБОР

КОГДА ДоговорРеализации.ДатаОплаты = ДАТАВРЕМЯ(1, 1, 1, 0, 0, 0)

ТОГДА ВЫБОР

КОГДА ДоговорРеализации.ДатаДокумента = ДоговорРеализацияКО.ДатаДокумента

ТОГДА ДоговорРеализации.Регистратор

ИНАЧЕ ДоговорРеализации.ДатаДокумента

КОНЕЦ

ИНАЧЕ ВЫБОР

КОГДА ДоговорРеализации.ДатаОплаты = ДоговорРеализацияКО.ДатаОплаты

ТОГДА ДоговорРеализации.Регистратор

ИНАЧЕ ДоговорРеализации.ДатаОплаты

КОНЕЦ

КОНЕЦ)

ПО ДоговорСуммаДолга.ДоговорКонтрагента = ДоговорРеализации.ДоговорКонтрагента

 

СГРУППИРОВАТЬ ПО

ДоговорРеализации.ДоговорКонтрагента,

ДоговорРеализации.ДатаДокумента,

ДоговорРеализации.ДатаОплаты,

ДоговорРеализации.Регистратор,

ДоговорРеализации.Приход,

ДоговорСуммаДолга.СуммаУпрОстаток

;

- формирует таблицу обратного нарастающего итога долга контрагента (фактически имитирует рассчет итогов регистра) по результатам третьего запроса.

Результат:

ДатаДокумента

ДатаОплаты

ДнейПросрочки

ДоговорКонтрагента

Регистратор

СуммаУпрОстаток

НО

Приход

КО

20.10.2011 11:13:38

09.11.2011 11:13:38

-9

5420 от 01.06.2011

Реализация товаров и услуг 00000000666 от 20.10.2011 11:13:38

6 270,00

3 803,76

802,8

4 606,56

12.10.2011 15:12:47

01.11.2011 15:12:47

-1

5420 от 01.06.2011

Реализация товаров и услуг 00000000371 от 12.10.2011 15:12:47

6 270,00

4 606,56

725,4

5 331,96

03.10.2011 14:01:43

23.10.2011 14:01:43

8

5420 от 01.06.2011

Реализация товаров и услуг 00000000003 от 03.10.2011 14:01:43

6 270,00

6 600,24

1 027,08

7 627,32

25.10.2011 11:06:31

14.11.2011 11:06:31

-14

5420 от 01.06.2011

Реализация товаров и услуг 00000000840 от 25.10.2011 11:06:31

6 270,00

3 464,64

339,12

3 803,76

07.10.2011 15:09:03

27.10.2011 15:09:03

4

5420 от 01.06.2011

Реализация товаров и услуг 00000000232 от 07.10.2011 15:09:03

6 270,00

5 331,96

162

5 493,96

28.10.2011 11:20:28

17.11.2011 11:20:28

-17

5420 от 01.06.2011

Реализация товаров и услуг 00000000982 от 28.10.2011 11:20:28

6 270,00

 

640,08

640,08

03.10.2011 13:27:14

23.10.2011 13:27:14

8

5420 от 01.06.2011

Реализация товаров и услуг 00000000002 от 03.10.2011 13:27:14

6 270,00

7 627,32

1 147,68

8 775

25.10.2011 16:36:29

14.11.2011 16:36:29

-14

5420 от 01.06.2011

Реализация товаров и услуг 00000000862 от 25.10.2011 16:36:29

6 270,00

640,08

2 824,56

3 464,64

03.10.2011 14:41:04

23.10.2011 14:41:04

8

5420 от 01.06.2011

Реализация товаров и услуг 00000000004 от 03.10.2011 14:41:04

6 270,00

5 493,96

1 106,28

6 600,24

 

5. И наконец, итоговая выборка:

ВЫБРАТЬ

ДоговорРеализацииОбратныйНарастИтог.ДоговорКонтрагента,

ДоговорРеализацииОбратныйНарастИтог.ДатаДокумента КАК ДатаДокумента,

ДоговорРеализацииОбратныйНарастИтог.ДатаОплаты КАК ДатаОплаты,

ДоговорРеализацииОбратныйНарастИтог.Регистратор,

ДоговорРеализацииОбратныйНарастИтог.Приход КАК СуммаДокумента,

ВЫБОР

КОГДА ДоговорРеализацииОбратныйНарастИтог.СуммаУпрОстаток - ДоговорРеализацииОбратныйНарастИтог.КО >= 0

ТОГДА ДоговорРеализацииОбратныйНарастИтог.Приход

ИНАЧЕ ДоговорРеализацииОбратныйНарастИтог.Приход - ДоговорРеализацииОбратныйНарастИтог.КО + ДоговорРеализацииОбратныйНарастИтог.СуммаУпрОстаток

КОНЕЦ КАК СуммаДолга,

ВЫБОР

КОГДА ДоговорРеализацииОбратныйНарастИтог.ДнейПросрочки > 0

ТОГДА ДоговорРеализацииОбратныйНарастИтог.ДнейПросрочки

ИНАЧЕ 0

КОНЕЦ КАК ДнейПросрочки,

ВЫБОР

КОГДА ДоговорРеализацииОбратныйНарастИтог.ДнейПросрочки > 0

ТОГДА ВЫБОР

КОГДА ДоговорРеализацииОбратныйНарастИтог.СуммаУпрОстаток - ДоговорРеализацииОбратныйНарастИтог.КО >= 0

ТОГДА ДоговорРеализацииОбратныйНарастИтог.Приход

ИНАЧЕ ДоговорРеализацииОбратныйНарастИтог.Приход - ДоговорРеализацииОбратныйНарастИтог.КО + ДоговорРеализацииОбратныйНарастИтог.СуммаУпрОстаток

КОНЕЦ

КОНЕЦ КАК СуммаПросроченногоДолга,

ДоговорРеализацииОбратныйНарастИтог.НО,

ДоговорРеализацииОбратныйНарастИтог.КО,

ДоговорРеализацииОбратныйНарастИтог.СуммаУпрОстаток,

ДоговорРеализацииОбратныйНарастИтог.Регистратор.ОтражатьВБухгалтерскомУчете КАК БУ,

ДоговорСуммаДолга.Организация,

ДоговорСуммаДолга.Контрагент,

ДоговорСуммаДолга.ДопустимоеЧислоДнейДолга,

ДоговорСуммаДолга.ДопустимаяСуммаДолга,

СФпоРеализациям.СФ КАК СФ

ИЗ

ДоговорРеализацииОбратныйНарастИтог КАК ДоговорРеализацииОбратныйНарастИтог

ЛЕВОЕ СОЕДИНЕНИЕ ДоговорСуммаДолга КАК ДоговорСуммаДолга

ПО ДоговорРеализацииОбратныйНарастИтог.ДоговорКонтрагента = ДоговорСуммаДолга.ДоговорКонтрагента

{ЛЕВОЕ СОЕДИНЕНИЕ (ВЫБРАТЬ

СчетФактураВыданный.Ссылка КАК СФ,

СчетФактураВыданный.ДокументОснование КАК Реализация

ИЗ

Документ.СчетФактураВыданный КАК СчетФактураВыданный

ГДЕ

СчетФактураВыданный.Проведен = ИСТИНА

И СчетФактураВыданный.ПометкаУдаления = ЛОЖЬ

И СчетФактураВыданный.ДокументОснование В

(ВЫБРАТЬ

ДоговорРеализацииОбратныйНарастИтог.Регистратор

ИЗ

ДоговорРеализацииОбратныйНарастИтог)) КАК СФпоРеализациям

ПО ДоговорРеализацииОбратныйНарастИтог.Регистратор = СФпоРеализациям.Реализация}

ГДЕ

ДоговорРеализацииОбратныйНарастИтог.СуммаУпрОстаток - ДоговорРеализацииОбратныйНарастИтог.НО > 0

 

УПОРЯДОЧИТЬ ПО

ДатаОплаты,

ДатаДокумента

{ХАРАКТЕРИСТИКИ

ТИП(Справочник.Контрагенты)

ВИДЫХАРАКТЕРИСТИК (ВЫБРАТЬ

ВидыКонтактнойИнформации.Ссылка,

ВидыКонтактнойИнформации.Наименование,

ВидыКонтактнойИнформации.ВидОбъектаКонтактнойИнформации

ИЗ

Справочник.ВидыКонтактнойИнформации КАК ВидыКонтактнойИнформации

ГДЕ

ВидыКонтактнойИнформации.ВидОбъектаКонтактнойИнформации = ЗНАЧЕНИЕ(Перечисление.ВидыОбъектовКонтактнойИнформации.Контрагенты)

И ВидыКонтактнойИнформации.ПометкаУдаления = ЛОЖЬ)

ПОЛЕКЛЮЧА Ссылка

ПОЛЕИМЕНИ Наименование

ЗНАЧЕНИЯХАРАКТЕРИСТИК (ВЫБРАТЬ

КонтактнаяИнформация.Объект,

КонтактнаяИнформация.Вид,

КонтактнаяИнформация.Представление

ИЗ

РегистрСведений.КонтактнаяИнформация КАК КонтактнаяИнформация)

ПОЛЕОБЪЕКТА Объект

ПОЛЕВИДА Вид

ПОЛЕЗНАЧЕНИЯ Представление }

;

- формирует дебиторку, и получает необходимые поля для вывода информации на экран почти в окончательном виде, остальное за нас сделает СКД.

Результат

ДатаДокумента

ДатаОплаты

ДнейПросрочки

ДоговорКонтрагента

Регистратор

СуммаУпрОстаток

НО

КО

03.10.2011 14:41:04

23.10.2011 14:41:04

8

5420 от 01.06.2011

Реализация товаров и услуг 00000000004 от 03.10.2011 14:41:04

6 270,00

5 493,96

6 600,24

28.10.2011 11:20:28

17.11.2011 11:20:28

 

5420 от 01.06.2011

Реализация товаров и услуг 00000000982 от 28.10.2011 11:20:28

6 270,00

 

640,08

25.10.2011 16:36:29

14.11.2011 16:36:29

 

5420 от 01.06.2011

Реализация товаров и услуг 00000000862 от 25.10.2011 16:36:29

6 270,00

640,08

3 464,64

20.10.2011 11:13:38

09.11.2011 11:13:38

 

5420 от 01.06.2011

Реализация товаров и услуг 00000000666 от 20.10.2011 11:13:38

6 270,00

3 803,76

4 606,56

25.10.2011 11:06:31

14.11.2011 11:06:31

 

5420 от 01.06.2011

Реализация товаров и услуг 00000000840 от 25.10.2011 11:06:31

6 270,00

3 464,64

3 803,76

12.10.2011 15:12:47

01.11.2011 15:12:47

 

5420 от 01.06.2011

Реализация товаров и услуг 00000000371 от 12.10.2011 15:12:47

6 270,00

4 606,56

5 331,96

07.10.2011 15:09:03

27.10.2011 15:09:03

4

5420 от 01.06.2011

Реализация товаров и услуг 00000000232 от 07.10.2011 15:09:03

6 270,00

5 331,96

5 493,96

 

Добавим мелкие штрихи в СКД:

В полях схемы компоновки данных у Поля «ДоговорКонтрагента», нужно установить в столбце «Роль» флажек «Обязательное», у Поля «Регистратор» в столбце «Выражение представления» заполнить:

ВЫБОР
КОГДА ВЫРАЗИТЬ(Регистратор, "Документ.РеализацияТоваровУслуг") ЕСТЬ НЕ NULL
ТОГДА "Реал № " + СТРОКА(Регистратор.Номер) + " от " +
ФОРМАТ(Регистратор.Дата, "ДФ=dd.MM.yyyy") ИНАЧЕ
Регистратор
КОНЕЦ

Для сокращения длины строки в столбце «Регистратор»

 

Во вкладке «Вычисляемые поля» добавляем новые поля:

«ПроцентПросроченногоДолга» заполняем выражением «100*СуммаПросроченногоДолга/СуммаДолга»

и

«ПроцентПросроченнойСуммы» заполняем выражением «100*СуммаПросроченногоДолга/СуммаДокумента»

 

Во вкладке «Ресурсы» добавляем следующие ресурсы:

ПроцентПросроченногоДолга (выражение «100*Сумма(СуммаПросроченногоДолга)/Сумма(СуммаДолга)»),

ПроцентПросроченнойСуммы(выражение «100*Сумма(СуммаПросроченногоДолга)/Сумма(СуммаДокумента)»),

СуммаДокумента, СуммаДолга, СуммаПросроченногоДолга (Выражение для всех Сумма(с соотв. полем))

 

Прикручиваем форму, слегка изменяем её вид, задаем параметры в модуле формы как ранее описано в //infostart.ru/public/99753/

Получаем итоговый отчет. Работает шустро. Имеется тенденция к замедлению формирования отчета при увеличении периода хранения информации в базе (т.к. возрастает время обработки третьего подзапроса).

P.S.: по умолчанию реквизиты договоров "КонтролироватьЧислоДнейЗадолженности" и "КонтролироватьСуммуЗадолженности", а также сами значения соответствующих реквизитов не доступны для заполнения, если реквизит ВедениеВзаиморасчетов = Перечисления.ВедениеВзаиморасчетовПоДоговорам.ПоДоговоруВЦелом, т.е. для использования данной обработки потребуется правка конфигурации, обеспечивающая возможность ввода соответствующих реквизитов, например в модуле формы элемента справочника договоры контрагентов можно "подправить" процедуру  УстановитьВидимость, так:

Процедура УстановитьВидимость()

// Управление видимостью элементов формы

Если ВестиПоДокументамРасчетовСКонтрагентом Тогда
ВидимостьКонтроляДней = Истина;
Иначе
ВидимостьКонтроляДней = Ложь;
КонецЕсли;

ВидимостьКонтроляДней = Истина; //< --- ДОБАВЛЕННАЯ СТРОКА

...

... 

Либо можно создать внешнюю форму для корректровки элемента справочника ДоговорыКонтрагентов.

См. также

SALE! 15%

Инструментарий разработчика Роли и права Запросы СКД Программист Платформа 1С v8.3 Управляемые формы Запросы Система компоновки данных Конфигурации 1cv8 Платные (руб)

Набор инструментов программиста и специалиста 1С для всех конфигураций на управляемых формах. В состав входят инструменты: Консоль запросов, Консоль СКД, Консоль кода, Редактор объекта, Анализ прав доступа, Метаданные, Поиск ссылок, Сравнение объектов, Все функции, Подписки на события и др. Редактор запросов и кода с раскраской и контекстной подсказкой. Доработанный конструктор запросов тонкого клиента. Продукт хорошо оптимизирован и обладает самым широким функционалом среди всех инструментов, представленных на рынке.

10000 руб.

02.09.2020    159741    876    399    

862

Запросы Программист Бесплатно (free)

Увидел cheatsheet по SQL и захотелось нарисовать подобное, но про запросы.

18.10.2024    9971    sergey279    18    

64

Запросы Программист Платформа 1С v8.3 Запросы Конфигурации 1cv8 Бесплатно (free)

Столкнулся с интересной ситуацией, которую хотел бы разобрать, ввиду её неочевидности. Речь пойдёт про использование функции запроса АВТОНОМЕРЗАПИСИ() и проблемы, которые могут возникнуть.

11.10.2024    5216    XilDen    36    

80

Запросы Программист Запросы Бесплатно (free)

Отлаживая взаимодействие с базой данных, мы регулярно сталкиваемся с зависающими или подозрительно долго выполняющимися обращениями, негативно влияющими на производительность. О том, как в PostgreSQL выявить подозрительные запросы, основываясь на доступной о них информации, расскажем в статье.

16.08.2024    7957    user1840182    5    

28

Математика и алгоритмы Запросы Программист Платформа 1С v8.3 Запросы Бесплатно (free)

Рассмотрим быстрый алгоритм поиска дублей с использованием hash функции по набору полей шапки и табличных частей.

08.07.2024    2411    ivanov660    9    

22

Запросы СКД Программист Стажер Система компоновки данных Россия Бесплатно (free)

Часто при разработке отчетов в СКД возникает ситуация, когда не совсем понятно, почему отчет выводит не те данные, которые нужны, либо не выводит вовсе. Возникает потребность увидеть конечный запрос, который формирует СКД. Как это сделать, рассмотрим в этой статье.

15.05.2024    8741    implecs_team    6    

47

Запросы Программист Стажер Платформа 1С v8.3 Конфигурации 1cv8 Бесплатно (free)

Часто поступают задачи по произвольному распределению общих сумм. После распределения иногда пропадают копейки. Суть решения добавить АвтоНомерЗаписи() в ВТ распределения, и далее используя функции МАКСИМУМ или МИНИМУМ можем положить разницу копеек в первую или последнюю строку знаменателя распределения.

11.04.2024    3401    andrey_sag    10    

36
Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
1. Поручик 4692 27.11.11 20:39 Сейчас в теме
Давненько на эту тему ничего не писали. Боюсь, в понедельник набежит бомонд, и закидают автора веществами. Я даже знаю кто.
2. mxm2 1268 27.11.11 22:13 Сейчас в теме
Отчетец не без "тонких" ))) мест, но зато универсальный и работает. проверено. а так конечно правильнее применять подход с договорами по расчетным документам. Но не могу я народ заставить ))) в свое время "расслабила" их семерка. и еще в принципе отчет легко модифицировать, убрав детализацию по договорам (используя функцию Максимум или Минимум по Допустимым дням задолженности и Допустимой сумме задолженности)... Ну и вобщем готов к здоровой критике, ибо "чем больше я познаЮ, тем больше я не знАю" (с) Сократ
3. anig99 2852 28.11.11 09:21 Сейчас в теме
Собственно кидаться какулями не буду.
Просто есть несколько моментов:
- ссылка на описание методики нерабочая (возможно ещё неотмодерировали)
- оптимизация запроса за счет ограничения выборки по времени по дате последнего перехода в минус - это лучше, чем тупое ограничение выборки по общей дате, но всё же далека от цели... В реальности постоянные контрагенты НИКОГДА не оплачивают долг полностью, а только просроченный. Таким образом, оптимизация работать не будет.
- жаль, что привязка только к договорам.
- ознакомьтесь с материалами по теме. Есть мои статьи и отчеты (правда запросы там путаные), есть и другие (лень сейчас искать)
4. mxm2 1268 28.11.11 10:16 Сейчас в теме
(3) anig99,
- ссылка на описание методики нерабочая (возможно ещё неотмодерировали)

в публикации методика не описана - мне её "на пальцах" объяснил наш экономист...
В реальности постоянные контрагенты НИКОГДА не оплачивают долг полностью, а только просроченный. Таким образом, оптимизация работать не будет.
конечно правилнее отделный регистр, но слишком затратно)..

По поводу статей - на этом сайте?
5. sevipa 28.11.11 10:18 Сейчас в теме
Отчет актуальный. Делали подобный но не с таким глубоким анализом. Изменения в конфу не вводили, а разрешили корректировку реквизитов Договора из формы отчета.
Данный отчет особенно актуален потому что заставить сбытовиков работать по документам расчетов практически нереально по двум причинам, разносят деньги не они и даже не бухгалтерия а финслужба и там то все и виснет... ну а сбыт любит работать прошлым периодом (только не говорите про закрытие периода, всегда есть что-то или кто-то архиважный и архипипецвнеправилзапретов)
6. IDija 154 28.11.11 10:55 Сейчас в теме
При попытке открыть, ругается на компоновку данных:
{(20, 20)}: Таблица не найдена "РегистрСведений.АгентыПоДоговорам.СрезПоследних"
ЛЕВОЕ СОЕДИНЕНИЕ <<?>>РегистрСведений.АгентыПоДоговорам.СрезПоследних(&ГраницаКонца, ) КАК АгентыПоДоговорамСрезПоследних
Точно для ред. 10.3? Может с какого то определенного релиза?
7. Поручик 4692 28.11.11 11:02 Сейчас в теме
(6) Нет в УТ 10.3 никакого релиза такого регистра.
12. IDija 154 28.11.11 12:09 Сейчас в теме
(7) тогда не понятен ваш плюс...
8. mxm2 1268 28.11.11 11:07 Сейчас в теме
(6) IDija,
мой промах... у меня в конфе это применяется, а сюда я выложил с вырезом этого регистра... но видимо "недовырезал" сейчас исправлю. Кстати в статье текст запроса - верный, можно просто перенести, ну и внастройках отчета убрать упоминание "агента"
9. mxm2 1268 28.11.11 11:38 Сейчас в теме
IDija пишет:

При попытке открыть, ругается на компоновку данных:
{(20, 20)}: Таблица не найдена "РегистрСведений.АгентыПоДоговорам.СрезПоследних"
ЛЕВОЕ СОЕДИНЕНИЕ <<?>>РегистрСведений.АгентыПоДоговорам.СрезПоследних(&ГраницаКонца, ) КАК АгентыПоДоговорамСрезПоследних
Точно для ред. 10.3? Может с какого то определенного релиза?


Перезалил файл.
10. mxm2 1268 28.11.11 11:54 Сейчас в теме
anig99 пишет:

Собственно кидаться какулями не буду.
Просто есть несколько моментов:
- ссылка на описание методики нерабочая (возможно ещё неотмодерировали)
- оптимизация запроса за счет ограничения выборки по времени по дате последнего перехода в минус - это лучше, чем тупое ограничение выборки по общей дате, но всё же далека от цели... В реальности постоянные контрагенты НИКОГДА не оплачивают долг полностью, а только просроченный. Таким образом, оптимизация работать не будет.
- жаль, что привязка только к договорам.
- ознакомьтесь с материалами по теме. Есть мои статьи и отчеты (правда запросы там путаные), есть и другие (лень сейчас искать)


Посмотрел Ваши публикации по поводу оптимизации, "буду курить",
У меня клиенты достаточно часто оплачивают долг до нуля, иногда даже авансируют... + договора действуют максимум 1 год.
Привязка к договорам - как в мне требовалось. потенциально можно реализовать любую, что есть в регистре.
11. IDija 154 28.11.11 12:06 Сейчас в теме
>> Кстати в статье текст запроса - верный, можно просто перенести, ну и внастройках отчета убрать упоминание "агента".
Вставлял текст запроса, после двух ошибок исправлять далее не захотелось... разочаровывает статья...
13. mxm2 1268 28.11.11 12:54 Сейчас в теме
(11) IDija, файл уже правильный, его достаточно скачать.
"после двух ошибок исправлять далее не захотелось" - кроме отборов там нет упоминаний об агенте.)

кстати предыдущий файл, тоже правильный только при наличии доп регистра... возможно поздне опишу для чего он нужен...
14. urbanist 86 30.11.11 14:32 Сейчас в теме
Пару лет назад ваял на эту тему:
http://infostart.ru/public/22091/

Сейчас вспомнил и добавил с с просрочкой по интервалам:
http://infostart.ru/public/100137/
15. mxm2 1268 30.11.11 16:30 Сейчас в теме
(14) urbanist, всетаки инфо о доп днях и сумме правильнее брать из договора. а вот решение показывать - по интервалам - красиво. я в свое время исходил из того что отчет должен нормально печататься на а4 и раздаваться менеджерам-селянам (т.е. быть прозрачным и понятным)
16. urbanist 86 30.11.11 16:42 Сейчас в теме
(15) Если информацию о доп.днях и суммы брать из договора,то этот отчет не нужен,т.к.эти поля доступны в случае ведения взаиморасчетов "по расчетным документам" и можно обойтсь штатным отчетом.
В случае ведения учета без установки флага "по расчетным документам" без изменения конфигурации(хотелось бы обойтись) число дней не проставить.А отчет сделан как раз для таких ситуаций и реже,где учет по документам установлен,но запущен.
17. mxm2 1268 30.11.11 17:02 Сейчас в теме
(16) urbanist, про правку - это да..., но по опыту торговлю чаще всего приходится "затачивать"... вот бухию - обычно оставляю в первозданном виде.
23. mxm2 1268 08.11.12 06:44 Сейчас в теме
(16) urbanist, в принципе и без правки можно обойтись... нужно только сделать некую внешнюю обработку в которой будут доступны для записи нужные реквизиты договора... но с правкой - проще.
18. orehova123 02.05.12 11:22 Сейчас в теме
ммм, спасибо! интересно и достаточно подробно, добавлю в закладки
19. mxm2 1268 18.05.12 13:26 Сейчас в теме
Для УТ11 аналогичный отчет: http://infostart.ru/public/128507/ (основная группировка по АналитикеУчетаПоПартнерам)
20. Stas-ch 35 07.11.12 22:16 Сейчас в теме
Спасибо за отчет.
Клиент попросил нечто подобное, только в разрезе клиентов (без учета договора, ибо менеджеры, разносящие банк, часто и договор неправильно указывают). Ну и еще прикрутил к нему интервалы задолженности. Получилось то, что надо!
Правда не понял, что есть поля
НО и КО - если не сложно, опишите.
21. mxm2 1268 07.11.12 22:58 Сейчас в теме
(20) Stas-ch, НО = Начальный остаток, КО = Конечный остаток, по логике отчета вроде это видно. Если модифицировали - смело выкладывайте, возможно кому-то нужен именно Ваш отчет.
22. kotuke 08.11.12 02:35 Сейчас в теме
Данный отчет актуален потому что заставить сбытовиков работать по документам расчетов практически нереально по двум причинам, разносят деньги не они и даже не бухгалтерия а финслужба и там то все и виснет...
24. LexSeIch 211 09.08.13 04:34 Сейчас в теме
Мир этому дому!
Статья интересная, возможно скоро воспользуюсь обработкой, но пока взял на заметку. Хочу разобраться с запросами.
25. serge_focus 4 14.08.13 22:47 Сейчас в теме
Обсуждение похоже затихло...
Однозначно плюс за расписанную процедуру.
Но хочу заметить строить отчет погашая по фифо - очень нерационально. Берем ТЕКУЩИЙ ДОЛГ (+ или - ) и разворотом от сейчас назад по документам-регистратором задолженности. Набераем требуемую сумму - будет в 10 раз быстрее... Тем более если есть задача сохранить "девственность" кода 1С и не использовать для накопления регистры, то зачастую на средней фирме уже через год внешний пересчет всех долгов по ФИФО занимает прилично времени, и блокирует работу...
А пересчет разворотом от сейчас успешно используется со времен 7.7 (здесь примеров полно).
И второе. Количество дней просрочки часто используют для СТОПа отгрузок.
А в случае с задачей оперативного изменения этого параметра, (для - например- предоставления акционных условий в рамках одного договора, на определенный период) использовать параметры отсрочки из "договора" очень неудобно.
Да и при сохранении "девственности" кода 1С лучше использовать свойства объекта(справочник "Контрагенты").
26. mxm2 1268 14.01.14 13:49 Сейчас в теме
(25) serge_focus,
Согласен с Вами. А есть соображения как можно сделать эффективнее с использованием регистров?
Общая идея: записи в регистрах (самопальных) фомируются фоновым заданием (скажем ночью), со сдвигом соответствующей последовательности. А в процессе работы производится "склейка" результатов по регистру и остатка по fifo, непосредственно из документов.
27. ildarovich 7930 04.03.14 16:17 Сейчас в теме
Предлагаю другое, гораздо более быстрое решение той же задачи: http://infostart.ru/public/262300/. Не требующее, к тому же, изменений в конфигурации.
28. Pawlick 10 03.04.14 00:00 Сейчас в теме
Все это здорово, но вот незадача:
этот отчет и http://infostart.ru/public/262300/ от ildarovichа разные результаты показывают...

или это только у меня одного?

И кстати результаты отчета от ildarovichа более похожи на правду...
29. mxm2 1268 03.04.14 07:55 Сейчас в теме
(28) Pawlick, у Вас нет документов введенных одной датой и одним времением по одному контрагенту? Всмотритесь в алгоритм: оптимизированный отчет имеет некоторые особенности.
30. пользователь 08.10.14 16:28
Сообщение было скрыто модератором.
...
31. 20tanush 17.12.14 18:00 Сейчас в теме
Ошибок в запрос как минимум 2:
1. И (ВЫБОР
КОГДА ДоговорРеализации.ДатаОплаты = ДАТАВРЕМЯ(1, 1, 1, 0, 0, 0)
ТОГДА ВЫБОР
КОГДА ДоговорРеализации.ДатаДокумента = ДоговорРеализацияКО.ДатаДокумента
ТОГДА ДоговорРеализации.Регистратор ИНАЧЕ ДоговорРеализации.ДатаДокумента КОНЕЦ
ИНАЧЕ ВЫБОР
КОГДА ДоговорРеализации.ДатаОплаты = ДоговорРеализацияКО.ДатаОплаты
ТОГДА ДоговорРеализации.Регистратор ИНАЧЕ ДоговорРеализации.ДатаОплаты КОНЕЦ
КОНЕЦ)

2. ГДЕ
ВзаиморасчетыСКонтрагентамиОстаткиИОбороты.СуммаУпрНачальныйОстаток И ВзаиморасчетыСКонтрагентамиОстаткиИОбороты.СуммаУпрКонечныйОстаток > 0
32. mxm2 1268 18.12.14 07:15 Сейчас в теме
(31) 20tanush, Как-то не очевидно, что в приведенных фрагментах есть ошибки. Логику запроса - вижу, а вот ошибок - нет. Ткните, как говорится, носом.
33. 20tanush 18.12.14 10:01 Сейчас в теме
Да, на вид все вроде очевидно. Но конструктор запроса спотыкается на этих местах.
В 1. конструкция И (Выбор...) Неверные параметры "И"
И (<<?>> Выбор...) 

Во втором: получаю вот такую ошибку: "Операция не разрешена в предложении ГДЕ
<<?>>ВзаиморасчетыСКонтрагентамиОстаткиИОбороты.СуммаУпрНачальныйОстаток И ВзаиморасчетыСКонтрагентамиОстаткиИОбороты.СуммаУпрКонечныйОстаток > 0"
35. mxm2 1268 18.12.14 15:32 Сейчас в теме
(33) 20tanush, во втором случае следует читать ВзаиморасчетыСКонтрагентамиОстаткиИОбороты.СуммаУпрНачальныйОстаток <=0 И ВзаиморасчетыСКонтрагентамиОстаткиИОбороты.СуммаУпрКонечныйОстаток > 0,
Видимо "<=" - "съел" редактор, в самом тексте обработки все в порядке. В основном тексте - это уже исправлено. Спасибо.
34. 20tanush 18.12.14 10:21 Сейчас в теме
Уважаемый автор! Я прошу прощения, что все время вроде как нахожу ошибки. Но вот в третьем запросе, кроме реализаций попадают еще и платежки исходящие. Думаю, тут надо еще условие поставить, потому что платежки вроде не нужны. Поправьте меня, если я ошибаюсь.
36. nucha 97 28.01.17 00:24 Сейчас в теме
Актуальный и доходчивый алгоритм. Хотя http://infostart.ru/public/262300/ быстрее в 3 раза.
37. Vit_Kherson 14.08.17 21:12 Сейчас в теме
Вопрос к автору или тем кто скачал. (Конфигурация УТ 10.3)
1.Тут как-то возвраты учитываются?
2.Если да, то если в документе ВозвратОтПокупателя в табличной части указан документ РеализацияТоваровиУслуг по которому был Возврат, то будет ли это учитываться как уменьшение долга по указанной Реализации? Или все возвраты учитываются как погашение самого старого долга?
38. mxm2 1268 15.08.17 06:51 Сейчас в теме
(37) Возвраты учитываются как уменьшение суммы долга контрагента по конкретному договору (не по реализации, которая указана в ТЧ возврата)
39. 028 03.10.17 07:21 Сейчас в теме
здесь учитывается ввод начальных остатков: Расчеты с покупателями и заказчиками (счета 1210, 3510)?
Оставьте свое сообщение