#0
by Alexx_MNH
Задача: Отчет написан на СКД. Группировки: 1. Менеджер 2. Контрагент Нужно рассчитывать общее значение вычисляемого поля (долга) по контрагенту в целом, при том, что у разных адресов значение долга различно по факту. Кроме этого нужно, чтобы полученные значения долга по контрагентам суммировались по Менеджеру и по общему итогу. Значение долга вычисляется функцией общего модуля. ПРИЧЕМ!!! : суммарный долг по каждому адресу не равен общему долгу по контрагенту, т.к. последний учитывает взаимосвязи всех документов по контрагенту. Проблема в чем - если вывожу долг для каждого адреса равным общему по контрагенту, то чтобы по контрагенту было корректное значение - получаю для него функцией Максимум. Однако для вышестоящих группировок такой фокус не проходит - нужно, чтобы значения, полученные по контрагентам, суммировались. А если для остальных группировок в настройке реквизитов указываю сумма(долг), то суммируются и значения по адресам, в результате чего получаем неверное значение. Подскажите плиз как можно это реализовать на СКД?
#1
by Kashemir
Двумя наборами реализуй. Расчет итогов каждой группировки в этой ситуации будет идти отдельно.
#2
by Alexx_MNH
Так у меня долг - вычисляемое поле - оно же вычисляется и присоединяется уже после обработки наборов? Может как-то через вложенную схему сделать, типа - во вложенной получаем набор без адресов и регистраторов, но с долгом, а потом доворачиваем их? Но опять же как тогда их объединять - долги же замножатся?
#3
by Kashemir
Попробую с приближением к условию задачи. Основной набор создаешь с детализацией до торговой точки. В дополнительный наборе рассчитывай общий долг без детализации до торговой точки(адреса). Естественно соединения наборов не будут содержать соединения по торговой точке. В этой ситуации при выводе значения долга с детализацией до торговой точке для каджой будут повторяться значения общего долга контрагента, однако при получении итога в разрезе всего контрагента значения не будут суммироваться и все так же будет значение общего долга контрагента, однако на вышестоящих группировках (по которым были соединения) будут корректно расчитаны итоги (к примеру просуммированы задолженности всех контрагентов менеджера)
#5
by Alexx_MNH
Интересное предложение! Спасибо! Сейчас попробую! По результатам отпишусь. Можно по-подробнее, что имеешь под этим в виду?
#6
by НЕА123
насчет имеется ввиду: по NULL можно определить, какая группировка (утверждение с натяжкой...). т.е., например, если то это группировка по Контрагенту.
#7
by Alexx_MNH
Не прокатит. СКД, насколько я понимаю логику ее работы, формирует набор записей, а группировка происходит на последнем этапе перед выводом информации. Т.е. когда я получаю значение долга - группировок еще нет. Вот если бы можно было на вкладке Ресурсы указывать вместо стандартных фукций суммы и т.п. вызов функции общего модуля, то тогда бы внутри самой функции можно было бы делать проверку на NULL, чтобы определить для какой группировки мы получаем значение...
#9
by Alexx_MNH
Хых! А по ходу дела так делать можно! Тогда этот вариант тоже можно проверить. В первую очередь проверю вариант с двумя наборами, т.к. он кажется более технически правильным. Затем, если не получится - с NULL и результат скину.
#10
by Alexx_MNH
> В дополнительный наборе рассчитывай общий долг без детализации до торговой точки(адреса). А как рассчитать вычисляемое поле только по одному из наборов данных? Вычисляемые поля рассчитываются же уже после связывания данных различных наборов? Или нет?
#11
by Kashemir
Не могу понять зачем тебе вообще вычисляемое поле. В зависимости от ситуации схема сама определяет возможно ли добавить расчет вычисляемого поля в сам запрос, либо требуется программный дорасчет после получения результатов запроса и связывания. В случае когда в вычисляемом поле используется данные 2 наборов - естественно рассчет будет после связывания.
#12
by Kashemir
+ Если все так уж хочется расчет программный делать - в этой ситуации гораздо быстрее будет расчитать долги гамузом и скормить дополнительным набором типа объект (ТЗ).
#13
by Alexx_MNH
В моей ситуации для получения значения долга используется функция общего модуля, внутри которой идет сложный рассчет. Переносить рассчет внутрь запроса практически нереально. Сейчас попробую, кнечна, указать поля одного набора в параметрах функции, рассчитывающей поле. Однако терзают меня следующие сомнения: функцию 1с в запрос схема вставить не сможет, т.к. язык запросов 1с8 их не поддерживает. Поэтому наверняка навесит ее на объединение. А в этом случае значения одного и того же поля будут заполнены и для адресов и учитываться в суммировании верхних группировок.
#15
by Alexx_MNH
(10,11) Попробовал объединением наборов - все равно считает значения некорректно. Попробовал рассчитывать количество адресов и делить на это количество итоги по группам, однако считает неправильно - делит почему-то на меньшее количество... :(
#16
by Alexx_MNH
Всем спасибо! Победил таки данную задачу. Решил через рассчет количества адресов в отдельном наборе и делением долга контрагента общего, который привязывался к строкам итогов по адресам на их количество. Изначально считалось не правильно, т.к. в наборе я указал отбор по адресу в настройках построителя и хоть выбирал из запроса только контрагента и суммарное значение его адресов, тем не менее при связи наборов отбор по адресу все-таки происходил. После убирания отбора в наборе все стало нормально.
Тэги:
Ответить:
Комментарии доступны только авторизированным пользователям
Похожие вопросы 1С
- СКД: СКД. Понимает ли СКД ссылки на МенеджерВременныхТаблиц?
- СКД: как в СКД значеняи параметров по умолчанию заполнять?
- СКД: Диаграмма в СКД
- СКД: СКД. Как задать устанавливать параметры вложенных схем СКД?
- СКД: Объединение в СКД
- СКД: СКД. Реально ли такое вычисляемое поле сделать?...
- СКД: Как сделать вычисляемое поле в СКД
- СКД: СКД - можно ди получить промежуточные итоги по колонкам
- СКД: Настройки СКД
- СКД: СКД: Программное обращение к полям группировки СКД
- СКД: СКД. Вычисляемое поле на основе агрегатных функций запроса...
- СКД: СКД. Как переоределить действие кнопки "Сформировать" отчета, созданного в СКД?
В этой группе 1С
- Как очистить текущую строку в табличном поле?
- Вывод иерархического справочника в СКД
- v7: Разрушен файл 1SDNLOCK.DBF
- Как сменить программно заголовки колонок в табличной части документа
- как сделать в скд отбор с условием
- Какой тип колонки выбрать в MS SQL для хранения строки неограниченной длинны?
- Как изменить ТипЗначения колонки таблицы значения?
- Запись в DBF файл.
- Выделить цветом ячейки в печатной форме
- Как в мобильное приложение выгрузить не всю номенклатуру, а некоторые группы
- ЗУП: данные из спр.ПодразделенияОрганизации в спр.Подразделения перенести
- Партионный vs учет по среднему
- Ввод начальных остатков по счету 76.ВА в УПП
- Поля регистратора в 1с в8
- Свертка базы, перенос остатков
- 1c++ 7.7 Как добавить еще 1 вид документа в запрос?
- Нумерация строк в области макета документа
- ЗУП - поменять внешнего совместителя на внутреннего + принять на основное место
- ЗУП: Отражение ЗП в регл. учете
- Слежение за работой терминального пользователя