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

18.12.14

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

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

Скачать файлы

Наименование Файл Версия Размер
Файл готовой обработки
.erf 21,54Kb
325
.erf 21,54Kb 325 Скачать

 

Обращаю внимание, что Отчет не будет показывать просроченные долги в стандартной конфигурации УТ 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.: по умолчанию реквизиты договоров "КонтролироватьЧислоДнейЗадолженности" и "КонтролироватьСуммуЗадолженности", а также сами значения соответствующих реквизитов не доступны для заполнения, если реквизит ВедениеВзаиморасчетов = Перечисления.ВедениеВзаиморасчетовПоДоговорам.ПоДоговоруВЦелом, т.е. для использования данной обработки потребуется правка конфигурации, обеспечивающая возможность ввода соответствующих реквизитов, например в модуле формы элемента справочника договоры контрагентов можно "подправить" процедуру  УстановитьВидимость, так:

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

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

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

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

...

... 

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

См. также

Infostart Toolkit: Инструменты разработчика 1С 8.3 на управляемых формах

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

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

13000 руб.

02.09.2020    119965    656    389    

701

Для чего используют конструкцию запроса "ГДЕ ЛОЖЬ" в СКД на примере конфигурации 1С:ERP

Запросы СКД Платформа 1С v8.3 Запросы Система компоновки данных 1С:ERP Управление предприятием 2 Бесплатно (free)

В типовых конфигурациях разработчики компании 1С иногда используют в отчетах, построенных на СКД, такую конструкцию, как "ГДЕ ЛОЖЬ". Такая конструкция говорит о том, что данные в запросе не будут получены совсем. Для чего же нужен тогда запрос?

13.02.2024    5622    KawaNoNeko    23    

23

Набор-объект для СКД по тексту или запросу

Запросы СКД Платформа 1С v8.3 Управляемые формы Конфигурации 1cv8 Абонемент ($m)

Есть список полей в виде текста, или запрос - закидываем в набор СКД.

1 стартмани

31.01.2024    1964    2    Yashazz    0    

29

Запрос 1С copilot

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

Пишем на человеческом языке, что нам надо, и получаем текст запроса на языке 1С. Используются большие языковые модели (LLM GPT) от OpenAI или Яндекс на выбор.

5 стартмани

15.01.2024    6094    29    mkalimulin    23    

48

PrintWizard: поддержка представлений ЗУП в конструкторе

Инструментарий разработчика Запросы Платформа 1С v8.3 Бесплатно (free)

Одной из интересных задач, стоящих в процессе разработки, была поддержка механизма представлений в ЗУП. Но не просто возможность исполнения запросов с ними. Основная проблема была в том, чтобы с ними было удобно работать, а именно: создавать, модифицировать и отлаживать. Кратко о том, что в итоге получилось...

14.12.2023    1714    vandalsvq    7    

28

Объектная модель запроса "Схема запроса" 2

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

Далеко уже не новый тип данных "Схема запроса". Статья о том, как использовать его "попроще". Примеры создания текста запроса с нуля и изменение имеющегося запроса.

06.12.2023    5287    user1923546    26    

43

Начните уже использовать хранилище запросов

HighLoad оптимизация Запросы

Очень немногие из тех, кто занимается поддержкой MS SQL, работают с хранилищем запросов. А ведь хранилище запросов – это очень удобный, мощный и, главное, бесплатный инструмент, позволяющий быстро найти и локализовать проблему производительности и потребления ресурсов запросами. В статье расскажем о том, как использовать хранилище запросов в MS SQL и какие плюсы и минусы у него есть.

11.10.2023    15962    skovpin_sa    14    

98
Комментарии
В избранное Подписаться на ответы Сортировка: Древо развёрнутое
Свернуть все
1. Поручик 4670 27.11.11 20:39 Сейчас в теме
Давненько на эту тему ничего не писали. Боюсь, в понедельник набежит бомонд, и закидают автора веществами. Я даже знаю кто.
2. mxm2 1259 27.11.11 22:13 Сейчас в теме
Отчетец не без "тонких" ))) мест, но зато универсальный и работает. проверено. а так конечно правильнее применять подход с договорами по расчетным документам. Но не могу я народ заставить ))) в свое время "расслабила" их семерка. и еще в принципе отчет легко модифицировать, убрав детализацию по договорам (используя функцию Максимум или Минимум по Допустимым дням задолженности и Допустимой сумме задолженности)... Ну и вобщем готов к здоровой критике, ибо "чем больше я познаЮ, тем больше я не знАю" (с) Сократ
3. anig99 2841 28.11.11 09:21 Сейчас в теме
Собственно кидаться какулями не буду.
Просто есть несколько моментов:
- ссылка на описание методики нерабочая (возможно ещё неотмодерировали)
- оптимизация запроса за счет ограничения выборки по времени по дате последнего перехода в минус - это лучше, чем тупое ограничение выборки по общей дате, но всё же далека от цели... В реальности постоянные контрагенты НИКОГДА не оплачивают долг полностью, а только просроченный. Таким образом, оптимизация работать не будет.
- жаль, что привязка только к договорам.
- ознакомьтесь с материалами по теме. Есть мои статьи и отчеты (правда запросы там путаные), есть и другие (лень сейчас искать)
4. mxm2 1259 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. Поручик 4670 28.11.11 11:02 Сейчас в теме
(6) Нет в УТ 10.3 никакого релиза такого регистра.
12. IDija 154 28.11.11 12:09 Сейчас в теме
(7) тогда не понятен ваш плюс...
8. mxm2 1259 28.11.11 11:07 Сейчас в теме
(6) IDija,
мой промах... у меня в конфе это применяется, а сюда я выложил с вырезом этого регистра... но видимо "недовырезал" сейчас исправлю. Кстати в статье текст запроса - верный, можно просто перенести, ну и внастройках отчета убрать упоминание "агента"
9. mxm2 1259 28.11.11 11:38 Сейчас в теме
IDija пишет:

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


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

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


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

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

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

Во втором: получаю вот такую ошибку: "Операция не разрешена в предложении ГДЕ
<<?>>ВзаиморасчетыСКонтрагентамиОстаткиИОбороты.СуммаУпрНачальныйОстаток И ВзаиморасчетыСКонтрагентамиОстаткиИОбороты.СуммаУпрКонечныйОстаток > 0"
35. mxm2 1259 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 1259 15.08.17 06:51 Сейчас в теме
(37) Возвраты учитываются как уменьшение суммы долга контрагента по конкретному договору (не по реализации, которая указана в ТЧ возврата)
39. 028 03.10.17 07:21 Сейчас в теме
здесь учитывается ввод начальных остатков: Расчеты с покупателями и заказчиками (счета 1210, 3510)?
Оставьте свое сообщение