Подсчет суммы в группировке по пользовательскому полю 1С

Необходимо вычислить сумму значений пользовательского поля в Итоге по отбору.

Отчет выглядит так, сумма считается в колонке "Количество затрат":

2020-04-23 21 35 09

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

01

В отчет добавим пользовательское поле, кнопки на форме отчета: "Еще" - "Прочее" - "Изменить вариант отчета". В появившемся окне "Пользовательские поля" - кнопка "Добавить" - "Новое поле выражение..." - "Выражение итоговых записей":

Сумма(Выбор
 Когда Строка([Статья калькуляции.Группа статей калькуляции.Наименование]) = "Материальные затраты"
  Тогда [Количество затрат]
 Иначе 0
Конец)

2020-04-23 23 09 40

Указывать "Иначе 0" не обязательно.

Этим выражением, мы сказали системе выполнить отбор по интересующей группе справочника "Материальные затраты", элементы которой указаны в документах для номенклатур, затем подсчитать сумму затрат по полю "Количество затрат" соответственно тому, что попало в отбор.

02

Созданное пользовательское поле добавляем в отчет через кнопку "Настройка" на форме отчета:

2020-04-23 22 30 30

Ненужное поле, которое заменили на новое, можно отключить.

03

Теперь в отчете, затраты по номенклатуре суммируются только в том случае, если для них указана группа статей калькуляции из группы "Материальные затраты":

2020-04-23 22 38 28

P.S.

Изначально, выражение выглядело так:

Выбор
Когда [Статья калькуляции.Группа статей калькуляции.Наименование] = "Материальные затраты"
Тогда Сумма([Количество затрат])
Иначе 0
Конец

2020-04-23 22 45 40

В группировке и в Итоге по колонке кол-ва затрат сумма не работала, возвращала 0 (пустые значения). Поэтому функция "Сумма" должна быть вначале выражения.

mr. Mak

Остались вопросы? Пишите на почту admin@hzit.ru

Администратор сайта hzit.ru
Back to top