8.х СКД, расчет итогов

Тема в разделе "Конфигурирование на платформе "1С:Предприятие 8"", создана пользователем pathetique, 30 май 2010.

  1. TopicStarter Overlay
    pathetique
    Offline

    pathetique Опытный в 1С

    Регистрация:
    21 янв 2008
    Сообщения:
    105
    Симпатии:
    0
    Баллы:
    26
    Здравствуйте небольшой вопросик по СКД. Есть предположим некий запрос, который выводит такую таблицу
    Посмотреть вложение 4491
    Условно каждому сотруднику соответствует одно значение ресурса "ресурс" и одно подразделение. Мы левым соединением подключаем данные об использовании рабочего времени за некий период для каждого сотрудника(сколько часов явки, сколько прогулов и т.д.) соответственно каждому сотруднику может соответствовать несколько видов использовании рабочего времени, что видно на первом рисунке.

    В результате нам нужно сгруппировать данные следующим образом: сначала по подразделению(иерархия), потом по сотруднику и в детальных записях уже указать виды использования рабочего времени и количество часов.
    Посмотреть вложение 4492
    Как здесь сделать так, чтобы ресурс "ресурс" не складывался по детальным записям, а группировался по сотрудникам? спасибо.

    Вложения:

  2. BabySG
    Offline

    BabySG Администраторы Команда форума Администратор

    Регистрация:
    10 июн 2007
    Сообщения:
    11.853
    Симпатии:
    12
    Баллы:
    29
    Я бы такое сделал в самом запросе, честно говоря. (Через объединение)
  3. TopicStarter Overlay
    pathetique
    Offline

    pathetique Опытный в 1С

    Регистрация:
    21 янв 2008
    Сообщения:
    105
    Симпатии:
    0
    Баллы:
    26
    не совсем понял, можно расшифровать? :unsure:
  4. BabySG
    Offline

    BabySG Администраторы Команда форума Администратор

    Регистрация:
    10 июн 2007
    Сообщения:
    11.853
    Симпатии:
    12
    Баллы:
    29
    В запросе получаем данное поле только для связи подразделение+сотрудник - т.е. для полней "ниже" - там будет 0.
  5. TopicStarter Overlay
    pathetique
    Offline

    pathetique Опытный в 1С

    Регистрация:
    21 янв 2008
    Сообщения:
    105
    Симпатии:
    0
    Баллы:
    26
    эм..что-то торможу... а что подразумевается под полями ниже? если в запросе нет (и не должно быть) итогов? как с помощью запроса к полям подразделение+сотрудник+зарплата присобачить таблицу с данными о выходах-невыходах-отпусках сотрудника так, чтобы поле "зарплата" при этом не размножалось на количество строк второй таблицы, соответствующей сотруднику???
  6. gosn1ck
    Offline

    gosn1ck Опытный в 1С

    Регистрация:
    13 авг 2009
    Сообщения:
    1.329
    Симпатии:
    1
    Баллы:
    26
    в скд на закладке Ресурсы есть колонка "Расчитывать по..." там укажите группировку и детальные записи не будут расчитываться. более подробно было в книге Е.Ю.Хрусталева - Разработка сложных отчетов в 1С_Предприятии 8
  7. BabySG
    Offline

    BabySG Администраторы Команда форума Администратор

    Регистрация:
    10 июн 2007
    Сообщения:
    11.853
    Симпатии:
    12
    Баллы:
    29
    Не прокатит для данного случая :)

    Приложите свой отчет к сообщению
  8. TopicStarter Overlay
    pathetique
    Offline

    pathetique Опытный в 1С

    Регистрация:
    21 янв 2008
    Сообщения:
    105
    Симпатии:
    0
    Баллы:
    26
    С этим проблемы. :unsure: Он сделан по измененной конфе со своими полями и на настоящее не совсем в той форме чтобы там можно было просто разобраться... поэтому я и взял как пример отдаленный суперупрощенный случай, чтобы мне здесь теоретически объяснили как быть в таких случаях....

    gosn1ck
    Была у меня мысль сделать для разных группировок разный расчет итогов. Например для итогов по сотруднику взять не сумму, а например Максимум(Ресурс) или минимум(Ресурс) а по группировкам выше - уже Сумма(Ресурс).
    Но я понял так, что верхние группировки все-равно будут рассчитываться не на основании сумм нижних группирововк, а по тем же самым детальным записям, то есть все-равно будет суммнировать эти размноженные суммы.
    Хрусталеву прочитал в части того что касается ресурсов и расчетов итогов - ничего не нашел. :smile:
  9. BabySG
    Offline

    BabySG Администраторы Команда форума Администратор

    Регистрация:
    10 июн 2007
    Сообщения:
    11.853
    Симпатии:
    12
    Баллы:
    29
    И не найдете - это надо делать через разные наборы данных, либо в самом запросе. Я делаю в самом запросе. Если будет время, покажу пример.
  10. TopicStarter Overlay
    pathetique
    Offline

    pathetique Опытный в 1С

    Регистрация:
    21 янв 2008
    Сообщения:
    105
    Симпатии:
    0
    Баллы:
    26
    Понятно, тогда ждем :unsure:
  11. gosn1ck
    Offline

    gosn1ck Опытный в 1С

    Регистрация:
    13 авг 2009
    Сообщения:
    1.329
    Симпатии:
    1
    Баллы:
    26
    извините, тогда не понял что хочет автор
  12. BabySG
    Offline

    BabySG Администраторы Команда форума Администратор

    Регистрация:
    10 июн 2007
    Сообщения:
    11.853
    Симпатии:
    12
    Баллы:
    29
    Пример набросаю - будет понятно :)
    Постоянно с этим сталкиваюсь просто
  13. TopicStarter Overlay
    pathetique
    Offline

    pathetique Опытный в 1С

    Регистрация:
    21 янв 2008
    Сообщения:
    105
    Симпатии:
    0
    Баллы:
    26
    :unsure:
  14. DWElf
    Offline

    DWElf

    Регистрация:
    31 янв 2009
    Сообщения:
    33
    Симпатии:
    0
    Баллы:
    1
    Я помню, когда с этим столкнулся, реализовал первое, что в голову пришло:

    Добавил в самом запросе группировку по контрагентам и новое поле "Количество" - c функцией Количество(Ресурс). То есть для каждого ресурса внутри группировки по контрагентам, получил сколько раз он встречается для того или иного контрагента.

    Затем в СКД уже в ресурсах просто брал СУММА(Ресурс / Количество). Получаем, что на самом низшем уровне у него записи в виде дробей (ресурс / сколько раз встречается у данного контрагента), эти дроби не выводим в отчете.
    На уровне контрагента уже получаем просто значение ресурс, а в группировках выше - идет просто суммирование. То есть все правильно считает.

    Но, это, как я до сих пор считаю, решение немного кривое, но зато простое в написании и рабочее. С интересом жду иной реализации.

Поделиться этой страницей