Вход | Регистрация


Распределение кредита по агентам

Распределение кредита по агентам
Я
   Sv4org
 
04.10.16 - 09:43
Добрый день! Есть отчёт ИнформацияОКлиентах, нужно добавить распеределение кредита по агентам, т.е есть Товарный кредит, Средний месячный оборот продаж, Агент и Котнрагент, нужно тавырный кредит распеределить пропорцианольно оборотам продаж
Вот формула которую скинули!
                           Товарный
                                кредит     Средний 
                                         месячный
                                         оборот 
                                         продаж
    Агент 1    Контрагент1    357    500
    Агент 2    Контрагент1    571    800
    Агент 3    Контрагент1    0    0
    Агент 4    Контрагент1    71    100
            1000    1400


Запрос из СКД.

ВЫБРАТЬ РАЗРЕШЕННЫЕ
    КонтрагентыКонтактнаяИнформация.Ссылка КАК Контрагент,
    КонтрагентыКонтактнаяИнформация.Представление КАК ЮрАдресКонтрагента
ПОМЕСТИТЬ ЮрАдресКонтрагентов
ИЗ
    Справочник.Контрагенты.КонтактнаяИнформация КАК КонтрагентыКонтактнаяИнформация
ГДЕ
    КонтрагентыКонтактнаяИнформация.Вид = ЗНАЧЕНИЕ(Справочник.ВидыКонтактнойИнформации.ЮрАдресКонтрагента)
;

////////////////////////////////////////////////////////////////////////////////

ВЫБРАТЬ РАЗРЕШЕННЫЕ
    КонтрагентыКонтактнаяИнформация.Ссылка КАК Контрагент,
    КонтрагентыКонтактнаяИнформация.Представление КАК ФактАдресКонтрагента
ПОМЕСТИТЬ ФактАдресКонтрагентов
ИЗ
    Справочник.Контрагенты.КонтактнаяИнформация КАК КонтрагентыКонтактнаяИнформация
ГДЕ
    КонтрагентыКонтактнаяИнформация.Вид = ЗНАЧЕНИЕ(Справочник.ВидыКонтактнойИнформации.ФактАдресКонтрагента)
;

////////////////////////////////////////////////////////////////////////////////

ВЫБРАТЬ РАЗРЕШЕННЫЕ
    КонтрагентыКонтактнаяИнформация.Ссылка КАК Контрагент,
    КонтрагентыКонтактнаяИнформация.Представление КАК Телефон
ПОМЕСТИТЬ ТелефоныКонтрагентов
ИЗ
    Справочник.Контрагенты.КонтактнаяИнформация КАК КонтрагентыКонтактнаяИнформация
ГДЕ
    КонтрагентыКонтактнаяИнформация.Вид = ЗНАЧЕНИЕ(Справочник.ВидыКонтактнойИнформации.ТелефонКонтрагента)
;

////////////////////////////////////////////////////////////////////////////////

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

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

ИМЕЮЩИЕ
    СУММА(РасчетыСПокупателямиОбороты.СуммаПриход) <> 0

ОБЪЕДИНИТЬ ВСЕ

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

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

ИМЕЮЩИЕ
    СУММА(РасчетыСПоставщикамиОбороты.СуммаПриход) <> 0
;

////////////////////////////////////////////////////////////////////////////////

ВЫБРАТЬ РАЗРЕШЕННЫЕ
    Контрагенты.Ссылка КАК Контрагент,
    ЮрАдресКонтрагентов.ЮрАдресКонтрагента,
    ТелефоныКонтрагентов.Телефон,
    ДоговорыКонтрагентов.Ссылка КАК Договор,
    ОборотыКлиентов.Период,
    ОборотыКлиентов.Договор.ДатаДоговора КАК ДатаДоговора,
    ЕСТЬNULL(ОборотыКлиентов.СуммаПокупатель, 0) КАК СреднемесячныйОборотПродажи,
    ЕСТЬNULL(ОборотыКлиентов.СуммаПоставщик, 0) КАК СреднемесячныйОборотЗакупки,
    ФактАдресКонтрагентов.ФактАдресКонтрагента,
    ДоговорыКонтрагентов.Агент КАК ДоговорАгент
ИЗ
    Справочник.Контрагенты КАК Контрагенты
        ЛЕВОЕ СОЕДИНЕНИЕ ЮрАдресКонтрагентов КАК ЮрАдресКонтрагентов
        ПО Контрагенты.Ссылка = ЮрАдресКонтрагентов.Контрагент
        ЛЕВОЕ СОЕДИНЕНИЕ ТелефоныКонтрагентов КАК ТелефоныКонтрагентов
        ПО Контрагенты.Ссылка = ТелефоныКонтрагентов.Контрагент
        ПОЛНОЕ СОЕДИНЕНИЕ Справочник.ДоговорыКонтрагентов КАК ДоговорыКонтрагентов
            ЛЕВОЕ СОЕДИНЕНИЕ ОборотыКлиентов КАК ОборотыКлиентов
            ПО ДоговорыКонтрагентов.Ссылка = ОборотыКлиентов.Договор
        ПО Контрагенты.Ссылка = ДоговорыКонтрагентов.Владелец
        ЛЕВОЕ СОЕДИНЕНИЕ ФактАдресКонтрагентов КАК ФактАдресКонтрагентов
        ПО (ФактАдресКонтрагентов.Контрагент = Контрагенты.Ссылка)
ГДЕ
    НЕ Контрагенты.ЭтоГруппа

Подскажите где копать?
 
 
   Sv4org
 
1 - 04.10.16 - 09:56
Please
   Sv4org
 
2 - 04.10.16 - 10:34
Кто нибудь даст хоть какй-то совет?
   Sv4org
 
3 - 06.10.16 - 15:46
*********
   Garykom
 
4 - 06.10.16 - 16:07
   Garykom
 
5 - 06.10.16 - 16:08
   azernot
 
6 - 06.10.16 - 16:18
(4) Залажал всю подколку.. :)

(0) Полностью в запросе корректно не получится. Вылезет проблема округлений. Если проблема округлений не пугает, то копать нужно в сторону получения с помощью временных или вложенных таблиц показателя равному ОборотПродажПоАгентуКлиенту/ОбщийОборотПродажПоКлиенту * ТоварныйКредитПоКлиенту
   DrShad
 
7 - 06.10.16 - 16:21
(6) от округлений тоже можно в пакете избавиться
   azernot
 
8 - 06.10.16 - 16:25
(7) Просуммировать расчётный показатель в отдельной таблице по интересующим групировкам, сравнить с исходным показателем, высчитать разницу и  добавить эту разницу на элемент с максммальным расчётным показателем, для определения которого ещё раз соединить саму с собой таблицу расчётных показателей, с группировкой по максимуму расчётного показателя?
Это получится жесть, а не запрос!
Хотя да, признаю, можно.
   DrShad
 
9 - 06.10.16 - 16:27
(8) но ведь работает - проверено годами, потому как постобработка результата запроса тоже жесть жестяная
   azernot
 
10 - 06.10.16 - 16:36
(9) А вот интересно, то, что у вас работает годами обработает корректно такую ситуацию:

ТоварныйКредит = 1000 руб
Агент1 Оборот 1000 руб
Агент2 Оборот 1000 руб
Агент3 Оборот 1000 руб

Куда эта злосчастная копейка будет отнесена?
 
 Рекламное место пустует
   DrShad
 
11 - 06.10.16 - 16:38
(10) хороший вопрос

смотря что 1С посчитает максимумом
   DrShad
 
12 - 06.10.16 - 16:38
ну и конечно ВЫБРАТЬ ПЕРВЫЕ 1
   DrShad
 
13 - 06.10.16 - 16:39
скоррее всего на Агент1

но уппорядочиванием можно выбрать что нам будет угодно
   azernot
 
14 - 06.10.16 - 16:45
(13) Если у вас N клиентов, у каждого свои агенты или агенты пересекаются, боюсь с "Выбрать первые 1" вы не сможете поиграться, нужно дополнительно выбирать макс/мин по агенту среди одинаковых максимальных значений расчётного показателя, если он не один.. Короче жесть жестянная-прежестянная :)
   DrShad
 
15 - 06.10.16 - 16:47
(14) согласен, но не выгружать же потом результат запроса в ТЗ и там менять?
   azernot
 
16 - 06.10.16 - 16:58
(15) От задачи зависит. Если чисто на "посмотреть в отчёте" то может быть допустимо и забить на округления. Или округлять всегда в "свою" сторону.
А если задача в "заполнить таблицу данных" то вполне приемлемо и покрутить результат в ТЗ.
   Sv4org
 
17 - 07.10.16 - 12:45
Задача "посмотреть в отчёте"  Спасибо всем большое
Немного нашёл в инете но здесь более понятно разъяснили ещё раз спасибо
   eric
 
18 - 12.10.16 - 10:10
Ребят ситуация следующая мне нужно ВсегоКредит/ВсегоПродажи*КонкретногоАгента
   eric
 
19 - 12.10.16 - 10:11
Не знаю какие поля нужно
   eric
 
20 - 12.10.16 - 10:14
Помогите пожалуйста

Список тем форума
Рекламное место пустует  Рекламное место пустует
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.
Тема не обновлялась длительное время, и была помечена как архивная. Добавление сообщений невозможно.
Но вы можете создать новую ветку и вам обязательно ответят!
Каждый час на Волшебном форуме бывает более 2000 человек.
Рекламное место пустует