#0
by mzelensky
Доброго времени суток! Сижу ваяю отчетик и тут столкнулся с такой проблемой.Имеется некое числовое поле, необходимо чтобы на самой нижней группировки (при подведении итого) это поле группировалось, а потом на всех вышестоящих подсчитывалась сумма. На СКД это делается довольно легко, так как там можно наложить группировку дополнительную на каждый элемент. А вот "чисто в запросе" такой функции нет :( Как решить проблему??? Для наглядности вот запрос (обрезанный чуток): ВЫБРАТЬ ОбещанныйПлатеж.Регистратор.ОбещаниеКлиента, ГДЕ ОбещанныйПлатеж.Период МЕЖДУ &ДН И &ДК ИТОГИ СУММА(Долг) ПО Контрагент, ОП, Нужно чтобы этот самый "ДОЛГ" начинал расчитываться "СУММОЙ" начиная именно с группировки по "ДокументПродажи"...а внутри этой группировки группировался...ну или скажем брался как "МИНИМУМ". Как это сделать???
#5
by mzelensky
Т.е. нужно чтобы по " Контрагент, ОП, а ниже или если добавить еще одну группировку "ДокументДвижения" - по нему "максимум"
#7
by PVV65
Решение зависит от того, как ты будешь обрабатывать результат запроса. Например, то добавь еще одну агрегатную функцию МАКСИМУМ.
#8
by mzelensky
куда добавить??? обычно обрабатываю - обхожу циклами по группировкам. Количество циклов = количеству группировко + 1.
#9
by PVV65
Сделай две агрегатные функции в запросе Сумма и Максимум по полю Долг и в зависимости от группировки бери соответствующую.
#11
by mzelensky
а как это в запросе прописать??? чтобы брал ту или иную ??? или ты имеешь ввиду брать уже при обработке результатов?
#12
by Evpatiy
Птица счастья завтрашнего дня Прилетела крыльями звеня. Сделай за меня! Сделай за меня, PVV65, до завтрашнего дня!
#13
by Aprobator
нефига не понял, детальную запись по документу движения при обходе результата запроса не можешь достать что ли?
#14
by mzelensky
Могу достать! Мне нужно чтобы поле "Текущий долг" на уровне детальной записи ГРУППИРОВАЛСЯ (или брался как минимум), а на уровне всех вышестоящих группировко расчитывалась агрегатная функция "СУММА" по этому полю!
#16
by Aprobator
ну так сделай подзапрос с группировкой по всем полям и агрегатной функций МИНИМУМ, а потом уже с подзапроса ИТОГИ то и тащи. Вот только что получится в конечном счете? Чего добиться то пытаемся?
#17
by Evpatiy
Ага. Сейчас брошу работу, сяду, изучу простыню твоего кода, потом без ТЗ повтыкаю что же надо сделать в режиме вопрос-ответ на форуме, а потом еще пару часов поиграемся в вопрос-ответ подойдет/не подойдет.
#19
by Evpatiy
Не все деньгами меряется. Просто суть не понятна, объяснения сумбурны, задача не прозрачна, а вместо попыток конкретизировать вопрос простыню кода вываливает с предложением самим разобраться. Вот хз на что расчет. Примерно похоже что ему надо вложения использовать с разными группировками, но поди ж разбери без бутылки
#20
by Aprobator
ну простыня то еще та. Чел явно про ЗаполнитьЗначенияСвойств не слышал и про то, что формат можно непосредственно в макете указывать. Это только то, что сразу навскидку видно. Да и суть всего этого тоже неясна (в я попытался уточнить, но пока тихо).
#21
by mzelensky
врятли получится... смотри, приведу пример по 2 последним группировкам: Реализация 1 - сумма документа "10" текущий долг "10" Реализация 2 - сумма документа "40" текущий долг "30" платежка 1 - 5 руб платежка 2 5 руб Т.е. По одной реализации не было оплат и долг торчик как 10 (единиц). По второй реализации были 2 оплаты по 5 единиц. Теперь пытаемся получить ИТОГИ по полю ДОЛГ - согласно запросу платежки к реализации тянутся через левое соединение, а следовательно для детальных записей (для каждой) (где перебираются платежки) значение "ТЕКУЩИЙ долг" будет равно "30"...а следовательно на групперовке по "реализации" долг уже будет состалять не "30", как должно быть, а "60" (30+30 - т.к. платежек 2)...вот это я и пытаюсь обойти!
#23
by mzelensky
через "заполнитьзначениясвойств" у меня не будет работать, т.к. макет имеет поля в которые должны попадать разные по именам значения. Про формат мне тоже так удобней работать!
#26
by Aprobator
в нормально все объяснил. Тебе надо просто итоговую сумму разделить на количество документов движения. Там в итогах можно формулы катать (на ИТС описалово глянь). Что то типа:
#28
by Ненавижу 1С
ВЫБОР КОГДА ИтогНачинаяСКоторогоМаксимум ЕСТЬ NULL ТОГДА СУММА(Чегототам) ИНАЧЕ МАКСИМУМ(Чегототам) КОНЕЦ КАК Чегототам
#29
by Aprobator
+ только возможно у документадвижения прописать ЕСТЬNULL - подсунуть пустоезначение, а то фиг знает, как там количество реагирует на NULL.
#33
by mzelensky
ну..в результате на уровне этих двух группировок получилось сделать...а вышестоящие все-равно считают не так как нужно. НАписал: ИТОГИ ВЫБОР КОГДА ДокументПродажи ССЫЛКА Документ.РеализацияТоваровУслуг Получается что самая нижняя группировка нормально расчитывается...долг по реализации берется нормально (именно как максимум)...но потом то мне нужно суммировать эти поля (по группировке реализации)...а она учитывает сумму и по детальным...зараза
#36
by mzelensky
Вот так если: ВЫБОР КОГДА КОЛИЧЕСТВО(РАЗЛИЧНЫЕ ДокументОплаты) > 0 ТОГДА СУММА(ТекущийДолг) / КОЛИЧЕСТВО(РАЗЛИЧНЫЕ ДокументОплаты) по ДокументПродажи и ДокументОплаты получается правильно ,а по вышестоящим нет
#38
by mzelensky
получается если платежек нет, то все правильно...если же в группировке по "ОП" есть документы с платежками и доки без них, то получется БРЕД!
#43
by mzelensky
да вот блин НАДО!!! ТАм просто целая серия отчетов имеется (этот третий) и хочу все это объединить в одну обработку...ну т.е. пользователь ток вкладочки переключает и получает разные отчеты...2 из 3 я уже написал...и их пришлось писать именно в ручную (по ряду особенностей)...а вот с этим вот косяк :(
#44
by mzelensky
я решил туда ДЕРЕВО ЗНАЧЕНИЙ ПРИМЕНИТЬ :( будет конечно через задницу, но по крайней мере я добьюсь того, что мне нужно!
#46
by mzelensky
да не...там тоже отчеты хитрые...что-то типа этого...где чисто запросом не получается все, что нужно получить... Короче ладно, сейчас сделаю!!!
#47
by mzelensky
УУУУУУУРРРРРРРРРААААААААААААА!!!!!!!ПОЛУЧИЛОСЬ!!!!!! Кому интересно - могу показать как :)
Тэги:
Ответить:
Комментарии доступны только авторизированным пользователям
Похожие вопросы 1С
В этой группе 1С
- Запретить выбор помеченных на удаление контрагентов
- Выгрузка данных из УТ (8.1) 10.3.8.9 в ТСД
- Перенос документов, помеченных на удаление
- С помощью чего можно нарисовать штрих-код?
- Регистрация бесплатных подписок на ИТС при покупке нескольких ПП
- Самостоятельно (?!) перепроводятся документы даже при запрете редактирования.
- Не указана номенклатурная группа для доходов.
- Процент по группировкам в СКД 8.2
- Как запретить удаление в табличной части документа
- Редактирование данных этого периода запрещено. Изменения не могут быть записаны.
- Можно ли при выводе строки в табличное поле каким-нибудь образом ее изменить?
- v8: 1C 8.2 УТ 11.0.6.7 чей товар на складе?
- Количечтво мест в Бухгалтерии 2.0
- Отбор в списке справочника
- Меняется ориентация страницы при выводе на печать
- ЗУП 2.5.32.5 Отражение зарплаты в регл учете РБП
- Ошибка - "Несоответствие типов"
- v7: Как программно добавить в документ строки и заполнить их.
- Какие должны быть проводки по з.п. в БП 2.0 при совмещенном режиме?
- БП 2.0 КУДиР не заполняется графа7