Как управлять вычислением итогов в СКД? #335580


#0 by Гений 1С
Т.е. если у меня написано Сумма(КоличествоСтавок), могу ли я указать что считать нужно только по уникальным значениям по измерениям Должность? Данные: Допустим по должности слесарь - количество ставок 2. Должность Сотрудник КоличествоСтавок Слесарь Вася 2 Слесарь Маша 2 Итог по количеству ставок получается - 4 А итог должен быть 2.
#1 by Гений 1С
и где зубры СКД? попрятались по норам?
#2 by Регистратор
а почему не Среднее(КоличествоСтавок) кроме того если Слесарь Вася 2 Слесарь Маша 3 Итог по количеству ставок получается - 5 А итог должен быть (???) не просматривается логика вычисления кроме среднее
#3 by Defender aka LINN
ИМХО, тут имеется в виду КОЛИЧЕСТВО(Ставка)... Хотя при чем тут "только по уникальным значениям" я так и не вкурил.
#4 by Регистратор
а тогда КоличествоСтавок не должен быть ресурсом а должен иметь тип измерение (или надо еще раз включить это же поле но с псевдонимом) а ресурсом поставить 1 КАК КоличествоУникальное Ну и для группировок Должность, Сотрудник, КоличествоСтавок вывести ресурс КоличествоУникальное
#5 by Гений 1С
Вот пример: Должность ФИО КоличествоСтавок Слесарь Вася 2 Слесарь Маша 2 Повар Саша 3 Повар Даша 3 Повар Дуня 3 Если брать функцию Максимум, итого по подразделению будет равно 3, а мне нужно чтобы было равно 5 по подразделению и 2 или 3 по должности.
#6 by Гений 1С
ОК, экскурс в предметную область. По каждому подразделению по каждой должности в штатном расписании хранится, сколько должно быть ставок и контролируется, чтобы число сотрудников на этой должности в этом подразделении не превышало число ставок. Пример: Должность ФИО КоличествоСтавок КоличествоСотрудниковНаДолжности Слесарь Вася 2 1 Слесарь Маша 2 1 Повар Саша 3 1 Повар Даша 3 1 Повар Дуня 3 1 Итого по подразделению - количество ставок 5, количество сотрудников на должности тоже 5. Все окей. Но вот это 5 я не могу получить по полю "Количество ставок", блин, никак... Хоть вызывай функцию из общего модуля, чтобы она по должности и подразделению посчитала это число ставок.
#7 by Гений 1С
Читайте я описал предметную область подробно.
#8 by Гений 1С
С архитектурой все нормально, если сомневаетесь, спросите у Нуралиева... ;-)
#9 by Immortal
+1 Гений, какая нахер сумма, если ты КОЛИЧЕСТВО различных (по сотрудникам ) ставок считаешь?
#10 by Регистратор
так и берем гуппировка по полям Должность, Плановоеоличество - > ресурс Сумма(ФактическиЗанято) Получим Повар 3 -> 3 Если нало чтоб детализация по ФИО была тогда придется делать левое соединение по полю Должность (и возможно еще какимто полям) чтоб подтянуть итог по фактическим занятым должностям
#11 by Гений 1С
Слушай, структуру отчета я тебе показал. Там должно быть должность, сотрудник, количество ставок по должности и количество занятых штатных единиц сотрудником. Ты же мне предлагаешь другой отчет, это не решение.
#12 by Гений 1С
Давай не заниматься тавтологией. Если такой умный, скажи как посчитать количество? Подразделение  Количество  Количество или Сотрудник  ставок      должностей Цех№5          5           5  Слесарь Вася 2           1  Слесарь Маша 2           1  Повар Саша   3           1  Повар Даша   3           1  Повар Дуня   3           1 А сейчас он мне в итоге по подразделению выдает количество ставок 13!
#13 by Гений 1С
Подразделение--Количество--Количество
#14 by Dionisious
попробуй количество ставок вынести в отдельный набор данных и связь настроить. СКД в этом случае как то хитро агрегатные функции считает. Не уверен что поможет но попробовать стоит.
#15 by Гений 1С
издеваешься? Там офигенно некислый запрос в этом ЗУПЕ. Проще в общий модуль вынести. Но неужели никто из зубров не защитит честь СКД, неужели она для агрегирования не может взять только уникальные значения, т.е. ей нужно просуммировать Слесарь--2 Повар----3 А не суммировать тупо, как она сейчас суммирует: Слесарь--2 Слесарь--2 Повар----3 Повар----3 Повар----3
#16 by Dionisious
при чем тут СКД? Как бы ты это в простом запросе реализовал? Хотя можно еще два раза присоединять таблицу ставок. А в итогах в зависимости от условия брать МАКСИМУМ от из нужной таблицы.
#17 by Гений 1С
Блин, ну есть же в СКД опция - считать итоги только по определенным группировкам, так почему бы не быть опции - считать только по различным значениям этих группировок. СКД - не запрос, а его обработчик.
#18 by Регистратор
есть 3 утверждения 1. Можно получить запросом фактически занятое количество должностей в подраздении (и пр. условиях). Назовем таблица ФАКТ 2.К исходной талице ("должность, сотрудник, количество ставок по должности и количество занятых штатных единиц сотрудником") соединяется внешним соединением таблица ФАКТ из пункла 1 (вероятно по полям должность и подразделение) 3.Получим таблицу где кроме исходных "должность, сотрудник, количество ставок по должности и количество занятых штатных единиц сотрудником" будет поле кактически занятых должностей (конкретно дл данного подразделения и должности) помоему тут все довольно просто и этого достаточно для получения нужных итогов
#19 by Dionisious
Итоги по группировкам - превращаются во вполне нормальную структуру выбора в запросе. СКД не только обработчик запроса но и его построитель. А так я же тебе сказал как средствами СКД можно попробовать сделать, но тебе лень запрос переписывать. Ну что же - ругай СКД может полегчает.
#20 by Гений 1С
Граждане, я сделаю левое соединение, не вопрос, но итоги то все-равно будут не правильные, как вы не понимаете. Даже если я запрос перепишу. Вот я получаю детальные записи: Если я использую Сумма(КоличествоСтавок) то получаю: Цех№5----------13-----------5 Если я использую Максимум(КоличествоСтавок) то получаю: Цех№5-----------3-----------5 И что?
#21 by Dionisious
сейчас попробую набросать примерчик для ЗУПа.
#22 by Гений 1С
"как то хитро агрегатные функции считает" - это наводка, да? типо совета взять бубен и побить в него.
#23 by Гений 1С
ок, пасибо. ;-)
#24 by Dionisious
Получилось. Как тут блин в тект то все это сохранить?
#25 by Dionisious
ШтатноеРасписаниеОрганизацийСрезПоследних.КоличествоСтавок
#26 by Dionisious
+ это в xml и в макет СКД.
#27 by Гений 1С
А ты не можешь внешнюю обработку на slil.ru залить?
#28 by Dionisious
#29 by Гений 1С
Мда, с наборами данных тема понятно, но переписывать 1с-кий запрос на два набора данных - это палево, проще функцию общего модуля юзать, которая для заданной должности и организации вычислит итог.
#30 by Гений 1С
Неужели в рамках одного запроса ничего нельзя сделать?
#31 by Гений 1С
Кстати, на самом деле твой отчет всего лишь хитрый обход проблемы. Я создал отчет с двумя наборами данных, но он по-прежнему выдает неправильные суммы и я понял почему. У тебя два набора ШР (Должность-> Количество ставок) И второй набор Сотрудники(Должность, Сотрудник ->) Ты берешь главной таблицей таблицу ШР, а зависимой Сотрудник. Если сделать наоборот, то получаются такие же кривые суммы, так что существенно это проблему не решает. Ладно, пока забью, буду дергать 1С за усы. Пока что СКД в этом плане лажается.
#32 by Dionisious
что бы получить полное соединение можно в набор ШР добавить соединение по свернутой таблице работников. ИМХО - вполне приличное решение. Да и мой запрос почти покрывает твою задачу чудок доработать и отчет готов.
#33 by Гений 1С
Но ты не решил проблему, а уклонился от нее, хорошо что в данном случае можно решить задачу перестановкой левой и правой таблицы, а если так не решить? Если нужно брать уникальные суммы из левой и правой таблицы? Так что вопрос пока еще открыт.
#34 by Dionisious
пример задачи приведи.
#35 by Гений 1С
1 2 3 4 5 ---------     А Z 5 2 7 Б Y 2 4 1 А X 5 6 9 А Y 5 3 1 --------- Итого: -,-,7,15,17 Значение в колонке 3 зависит только от колонки 1. Значение в колонке 4 зависит от колонки 1 и 2. Значение в колонке 5 зависит только от колонки 2. Мне нужно подсчитать общий итог: В колонке 3 должно быть 7, а не 17. В колонке 5 должно быть 17, а не 18. Перестановками наборов данных не решишь.
#36 by Dionisious
Не поверишь решиось еще проще.
#37 by Dionisious
П1    Итого     П2    П3    П5 А    5    17
#38 by Dionisious
Даже не надо связи нстраивать.
#39 by Dionisious
Наборы данных: 1 ВЫБРАТЬ    П1,    П3 ИЗ    П2,    П5 ИЗ
#40 by Dionisious
Так что СКД рулит. Сейчас попробую с тремя наборами.
#41 by Dionisious
Идеально: П1    Итого         П2    П3    П4    П5 А    5    11    17 X    5    6    9 Y    5    3    1 Z    5    2    7 Б    2    4    1 Y    2    4    1 Итого    7    15    17 Правда тут пришлось связи настроить. Третий набор данных:    П1,    П2,    П4 ИЗ 3 - 1 ПО П1=П1 3 - 2 ПО П2=П2
#42 by Dionisious
Ище вариант результата: П1    П2    П3    П4    П5 А    X    5    6    9 А    Y    5    3    1 А    Z    5    2    7 Б    Y    2    4    1 Итого        7    15    17
#43 by Гений 1С
счас переварю. Но все таки считаю, что только для того, чтобы получить итог, курочить запрос на наборы - это маразм. Может она и рулит, но рулеж этот в маразматическом стиле.
Тэги:
Ответить:
Комментарии доступны только авторизированным пользователям

В этой группе 1С