#0
by Tiger_MDR
Добрый день, форумчане! Много лазил по форумам, читал вумные книжки, но так и не нашёл для себя решения задачи, описанной ниже. Очень надеюсь, что среди Вас найдутся более знающие и более опытные люди, чем я. Итак, в базе есть справочник контрагентов с иерархией ЭЛЕМЕНТОВ, есть регистр накопления с показателями продаж этих контрагентов. Задача: вывести контрагентов в иерархическом виде, для каждого контрагента вывести показатель продаж, а также итоговый показатель продаж тех контрагентов, которые находятся "под ним" в структуре справочника НА ВСЕХ НИЖНИХ УРОВНЯХ. Всю эту кухню надо реализовать на СКД, чтобы иметь возможность строить отчёт с произвольным отбором по реквизитам контрагентов, а также, чтобы можно было менять период продаж. Например, это выглядеть должно так: Бьюсь уже пару недель :( Отдельно иерархию контрагентов получается сделать, показатель продаж достать по конкретному контрагенту нет проблемы. Вся проблема найти сумму по иерархии. Была бы иерархия групп и элементов справочника "Контрагенты", вопросов бы вообще не было. Вроде, кажется, простой вопрос, а ставит в тупик. Подбросьте идею, пожалуйста. Спасибо заранее всем откликнувшимся.
#3
by Tiger_MDR
Пробовал, но как-то безуспешно. Работало только когда действительно выводил иерархически, но тогда появлялись двойные записи, т.е. под Пупкиным ещё один раз Пупкин был, а мне так не нужно. В таблице всё верно. 5100 = 3500+500+1000+100
#5
by Tiger_MDR
Про такую штуковину думал, но так и не понял, в каком месте её лучше прикрутить. Ведь выводить дерево "без лишних строк" можно двумя способами: 1. Соединять набор с самим собой по полям "Ссылка"-"Родитель" на вкладке "связи наборов данных", но тогда в результат выводятся ДЕТАЛЬНЫЕ записи, где итогов иерархии нет. 2. Выводить иерархично, но определять пользовательское поле с условием отбора, но тогда выводятся не все записи: либо без "листиков", либо вообще лажа какая-то.
#8
by YAGolova
Я примерно с подобной задачей бьюсь постоянно. И ниразу ничего адекватного у меня не выходило))) Поэтому буду очень внимательно следить за этой темой. По своим изысканиям: делал и ВЫЧИСЛИТЬВЫРАЖЕНИЕСГРУППИРОВКОЙМАССИВ и вычислитьвыражение, предварительно в запросе как то ставив метку на нужную мне запись, и экспортными функциями как то делал, иногда забиваю на скд и делаю макетом)))) Во общем все мои варианты мне не нравятся самому - поэтому каждый раз нахожусь в поиске нового варианта)
#9
by DrShad
вот вам пример в УПП, иерархия контрагентов построена через реквизит ГоловнойКонтрагент
#12
by Tiger_MDR
Не МММ, но задача есть и я её хочу решить. :) Т.е. если, к примеру, попытаться не использовать стандартную иерархию по родителю, а сделать свою, но тоже по родителю, то будет нужный результат? Фокус-то как раз в иерархии ЭЛЕМЕНТОВ. Завтра попробую замострячить. :)
#13
by Tiger_MDR
Кстати, суммы в Вашем скриншоте не так рассчитываются, как мне нужно. Думаю, вряд ли получится. Но попробую.
#16
by Tiger_MDR
Уууу... Это да. Напротив Иванова в последней колонке должна быть 1000. Остальное, вроде, нормально. Спасибо за поправочку.
#19
by ДемонМаксвелла
соединить табличку с самой собой по условию, что поле1.Родитель=Поле1 или поле1.родитель.родитель=поле1 ...
#24
by ДемонМаксвелла
мне такое не надо, спасибо. нужно правда учесть, что при большом справочнике такой запрос будет очень долго выполняться
#26
by Tiger_MDR
Я простых вопросов не задаю. Это уже крайняя мера для меня - идти на форум и задавать вопрос. Это мой первый вопрос. Обычно, решение нахожу достаточно быстро, но это не тот случай. :( а справочник очень большой. Может достигать 100000 контрагентов и уровней ой-ёй-ёй сколько...
#32
by ДемонМаксвелла
не, это детсад. на 100 000 элементов и скд будет долго считать, хотя и быстрее, имхо, чем запрос с соединением таблицы самой на себя.
#35
by Tiger_MDR
Программно запрос составлять тоже непонятно, как, т.к. пользователь может выбрать любой элемент из этих 100000, а отчёт должен будет вывести ему данные только по этой иерархии. Вышестоящие контрагенты ему в отчёте будут не нужны. Это, кстати, ещё один гемор, который надо лечить.
#36
by Tiger_MDR
Любит СКД выводить вышестоящие уровни, если использовать стандартную группировку по иерархии.
#40
by ДемонМаксвелла
лично мне непонятно, что вам может быть тут непонятно. при сборке запроса вычисляется существующее количество уровней иерархии справочника и в зависимости от вычисленного числа уровней собирается условие соединения таблиц
#41
by Tiger_MDR
Не приходилось ни разу менять текст запроса СКД после нажатия пользователем кнопочки "Сформировать". Попробую и этот вариант. Спасибо.
#44
by Tiger_MDR
Мне это может пригодиться в следующем отчёте, который по своей сути является следующей стадией извращения над этим отчётом. Там надо будет эти же показатели, только за несколько периодов и ещё с отбором по значениям этих самых показателей (+ нулевые тоже будут нужны!).
#45
by mistеr
Мне действительно интересно. Я такое встречал только в двух местах: в МММ-подобных схемах и у терминальщиков-обнальщиков.
#46
by Tiger_MDR
DrShad, спасибо за выражение: Вот именно в таком синтаксисе у меня заработал ресурс так, как надо. Но в целом компоновку пришлось переделать, т.к. группировка по реквизиту мне не подходит.
#47
by Tiger_MDR
Ладно. Результат я получил примерно такой: В параметрах отчёта пользователь указал, что выводить нужно по тем контрагентам, которые под Шишкиным. Вопрос: как избавиться от Сухова, Лапина и самого Шишкина, которых в отчёт не просили выводить. :) Можно даже оставить Шишкина - это не будет проблемой или ошибкой.
Тэги: 1С 8
Ответить:
Комментарии доступны только авторизированным пользователям
Похожие вопросы 1С
- СКД: Как расширить заголовок СКД?
- СКД: СКД: как настроить программно различные варианты группировок в отчете?
- СКД: Кто-нибудь выводил иерархический справочник (групп и элементов) в СКД
- СКД: СКД. Понимает ли СКД ссылки на МенеджерВременныхТаблиц?
- СКД: как в СКД значеняи параметров по умолчанию заполнять?
- СКД: Диаграмма в СКД
- СКД: СКД. Как задать устанавливать параметры вложенных схем СКД?
- СКД: Объединение в СКД
- СКД: Как в СКД передать параметры помимо дат, перечислений, предопределенных элементов...
- СКД: СКД - можно ди получить промежуточные итоги по колонкам
- СКД: СКД Итоги. Начальный и конечный остаток
- СКД: Настройки СКД
В этой группе 1С
- Не запускается Универсальный обмен данными в формате xml
- Обращение к процедуре как к функции (записать)
- как убрать НПП в выводе отчета?
- Генерирование HTML странички из 1С
- Отсутствует ключ защиты конфигурации при выполнении фонового задания
- Как в документообороте использовать программу ImageMagick-7.0.7-Q16?
- Подключение весов Штрих-М к 1с 8,3 через рдп
- ЗУП 2.5 Корректирующая 2 НДФЛ
- После обновления ФабрикаXDTO не находит в пространстве имен АдресРФ
- Обмен из УНФ1.6 в БП2.0
- Конвертация. Не переносится номенклатура нормально, если она включена в документ.
- БП 3.0 Корп - Справочник ОС при синхронизации
- Доменная аутентификация через хром
- ЗУП 3.1 Начисление доплаты до МРОТ
- 1С 8.3. Как обрезать логи, а то они разрослись до 15 Гб.
- Открытие файла .1СD
- УПП 1.3 подключение внешней обработки к документу без изменения конфигурации
- Обычные формы - изменение пропорций формы разделителем (1С:Предприятие 8.3 (8.3.10.2580))
- Запуск клиентского сеанса на сервере
- Как проверить в запросе на пустую дату