gifts2017

[УТ11] Дебиторка fifo по долгам контрагентов (СКД, управляемый интерфейс)

Опубликовал mxm2 mxm2 (mxm2) в раздел Отчеты - Управленческие

В УТ11 все хорошо с расчетом дебиторской задолженности... но не всегда: в частности, иногда пользователи задним числом перепроводят документы, причем это может происходить не в текущей базе, а, скажем, в смежной бухгалтерии (из которой потом автоматом переносятся документы) - в этом случае предназначенная для отслеживания этого последовательность может не фиксировать изменения... Ну и сам расчет (фоновое задание, если его запускать в течение дня) постоянно конфликтует с интерактивно проводимыми документами, а дебиторка нужна "здесь и сейчас", без всяких "актуализаций". Представленный отчет отчасти решает эту проблему. Он построен по принципу описанному тут http://infostart.ru/public/99848/ (т.е. строит дебиторку на "лету", разрез договоров в нем заменен на разрез АналитикиУчетаПоПартнерам, даты оплаты берутся не из договоров, а из ЗаказовКлиентов, а если нет ЗаказаКлиента и заполнена ДатаПлатежа в Реализации - берется эта ДатаПлатежа, ну, а если и она не заполнена, то используется дата документа)

Отчет можно внедрить как внешний.

Но можно добавить удобства пользователям:

Внедрить отчет в конфигурацию, добавить команду в карточку Партнеров, Контрагентов, Реализаций, Заявок, ПКО, ПП.

Текст Модуля команды:

 &НаСервере
Функция ВернутьПартнераПоДокументу(Документ)
    Возврат Документ.Партнер;
КонецФункции

&НаСервере
Функция ВернутьКонтрагентаПоДокументу(Документ)
    Возврат Документ.Контрагент;
КонецФункции

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

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

    ОткрытьФорму("Отчет.ДолгиКлиентов.Форма", ПараметрыФормы, ПараметрыВыполненияКоманды.Источник, ПараметрыВыполненияКоманды.Уникальность, ПараметрыВыполненияКоманды.Окно);
КонецПроцедуры

Настроить соотвтетствующий тип команды, права и ... все.

PS: Для пользователей с ограниченными правами, возможно, следует добавить роль с правом просмотра справочника КлючиАналитикиУчетаПоПартнерам

PS2: Существует еще одна, продвинутая версия данного отчета, с возможностью нестандартной расшифровки, т.е. непосредственно из формы отчета можно получить взаиморасчеты с клиентами http://infostart.ru/public/165599/

 

 

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

Наименование Файл Версия Размер Кол. Скачив.
Дебиторка11
.erf 12,65Kb
06.12.12
167
.erf 12,65Kb 167 Скачать

См. также

Подписаться Добавить вознаграждение

Комментарии

1. Yura Kavun (kavun.yura) 27.05.12 15:51
Проживания этого последовательность может не фиксировать изменения... Ну и сам расчет (фоновое задание, если его запускать в течение дня) постоянно конфликтует с интерактивно проводимыми документами, а дебиторка нужна "здесь и сейчас", без всяких "актуализаций". Представленный отчет отчасти решает эту проблему. Он построен по принципу описанному тут http://infostart.ru/public/99848/ (т.е. строит дебиторку на "лету", разрез договоров в нем заменен на разрез АналитикиУчетаПоПартнерам, даты оплаты берутся не из договоров, а из ЗаявокПокупателя, если заявки нет, то используется дата документа)
2. Alex Berc (bercut0077) 28.08.12 08:30
Супер, все работает как надо! Вот бы такой же внешний отчет по долгам перед поставщиками! Если не трудно ! Огромная благодарность!
3. Дмитрий Гомзин (plevakin) 12.09.12 17:46
даты оплаты берутся не из договоров, а из ЗаявокПокупателя, если заявки нет, то используется дата документа


В свое время для УТ11 пришлось делать такой же отчет, и он, после перехода на систему, несколько заказов - одна реализация, потребовал доработок. Исходя из описания, не понятно, какая дата будет использоваться если заказов несколько и все они сделаны в разные дни.
И да, к системе 1 заказ - 1 реализация, использовать дату заказа не всегда бывает удобно. Заказ был сделан месяц назад, а отгрузили только сегодня, отсрочка у клиента 10 дней. Получается только отгрузили, а уже 20 дней просрочено.
4. mxm2 mxm2 (mxm2) 12.09.12 18:28
(3) plevakin, дата оплаты берется из заказа из поля "дата оплаты", при необходимости это поле можно скорректировать при проведении документа реализации. при использовании системы несколько заявок - несколько реализаций, все-же эффективнее встроенный механизм, который правда не очень любит правки задним числом.
5. mxm2 mxm2 (mxm2) 12.09.12 19:12
(3) plevakin, случай несколько заказов - одна реализация, тоже может быть отстроен подобным отчетом, просто нужно будет "дробить" сумму реализации, пропорционально сумме заказов. тут появляется другая трудность: как поступать когда сумма заказов не равна сумме реализации.
6. simba08 06.07.15 15:43
Хороший отчет. Для полноты душевного счастья - было бы неплохо увидеть его за период и, соответственно, оплаты и продажи в этом периоде... но это уже немного другой отчет))))
7. Дмитрий Назаров (greenLiss) 08.05.16 16:22
А для УТ10.3 такой же есть ? )
Для написания сообщения необходимо авторизоваться
Прикрепить файл
Дополнительные параметры ответа