Добрый день!
Прошу помочь советом!
Мы получаем и продаем товар в штуках и упаковках. Учет в регистрах веду в штуках.
Руководство упрямо хочет видеть отчеты в упаковках.
Поясню проблему на примере. Допустим.
Мы хотим учитывать продажи товара в упаковках по 12 штук.
По первому контрагенту продали 11 штук, т.е. 0 упаковок и 11 штук.
По второму контрагенту продали 13 штук, т.е. 1 упаковку и 1 штуку.
Теперь если мы построим отчет в разрезе контрагентов, то он вернет, что продано 1 упаковка и 12 штук. Если мы перестроим отчет без учета контрагентов, только итоги, то он вернет 2 упаковки.
Оба ответа правильные. Но смотрят только первую колонку в упаковках. О неправильно!

Добавим продажи других товаров в упаковках с различными количеством товаров в них.
И желание в итогах получить общее количество упаковок суммарное (без учета количества штук в них), делает эту задачу не выполнимую (с моей точки зрения).

Подскажите, пожалуйста возможно ли решить эту задачу средствами СКД.
---
Получилось.
Спасибо всем кто принимал участие в обсуждении! ! ! ! ! !

Решение:
В общих модулях создал процедуру:

```1c
    Функция ИтогиУпаковок(Таб) Экспорт
    Таб.Свернуть("Номен, Коэф", "Кол");
    Сум = 0;
    Дроб = 0;
    Для каждого Стр из Таб Цикл
    Уп = Цел(Стр.Кол/Стр.Коэф);
    Дроб = Дроб + Стр.Кол - Уп*Стр.Коэф;
    Сум =Сум + Уп;
    КонецЦикла;
    Возврат Строка(Сум) + " / " + Строка(Дроб)
    КонецФункции
```

В ресурсах СКД записал выражение:

```1c
    ИтогиУпаковок(ТаблицаЗначений(Номенклатура КАК Номен, Коэф КАК Коэф, КолШт КАК Кол))
```

Спасибо организаторам этого форума!
---
Можно. Посмотрите как сделано в УТ 11
---
Посмотрю. Спасибо.
---
Главное коэффициенты проставлять на нужные единицы измерения
---
Посмотрел. Правильно ли я понял?
Создать номенклатуру с единицей учета упаковка. Все, что поступает в штуках документом Сборка/Разборка вручную переделываю в упаковки.
Не понял как это решает проблему с проданным товаром. Продавали/ возвращали в штуках и в упаковках. В отчете интересует общее количество упаковок в разрезе Контрагента покупателя / в разрезе вид оплаты покупателя (наличные или безналичные).
---
Для начала какая у вас конфигурация?

Когда писал про УТ 11, я намекал на Единицы храниния, единицы для отчета, прочие единицы измерения.
Суть в том, что основная единица измерения номенклатуры это единица хранения. Всё пляшет от нее.
Далее в отчетах, если стоит параметр "В единицах учета", то все выводится в единицах хранения. Иначе СКД пересчитывает количество проданной номенклатуры (оно всегда в единицах хранения) в единицы для отчетов.

ВЫБОР КОГДА &ЕдиницыКоличества = 0 ТОГДА
   РасходОсновной
КОГДА &ЕдиницыКоличества = 1 ТОГДА
   РасходОсновной / КоэффициентЕдиницыДляОтчетов
КОНЕЦ
---
Ну и итоги посчитать нужно иначе. Покажите как считаете итоги
---
Конфигурация - очень сильно переделанная УНФ. Но это не суть проблемы.
Делаю, как Вы подсказывали. Учет в регистрах в штуках. У единиц измерения Упаковка имеется коэффициент в соответствии с количеством штук в упаковке.
Пробовал:
1) В запросе пересчитывать на уровне Регистратора количество штук в упаковки. Тогда при группировке в СКД получается, что иногда в штуках цифра больше чем количество штук в упаковке.
2) Пересчитывать на уровне Ресурсов СКД. Использовал функции общего модуля.

```1c
    Функция Упаковок(КолШт, Коэф) Экспорт
    Если Коэф = 0 Тогда
    Коэф = 1;
    КонецЕсли;
    Уп = Цел(КолШт/Коэф);
    Возврат Уп
    КонецФункции

    Функция Штук(КолШт, Коэф) Экспорт
    Если Коэф = 0 Тогда
    Коэф = 1;
    КонецЕсли;
    Уп = Цел(КолШт/Коэф);

    Возврат КолШт - Уп*Коэф
    КонецФункции
```

До группировке Номенклатура в СКД все считается корректно.
Но последующие группировки и итоги должны просто суммировать полученные данные из группировки Номенклатура. Но это не получается.
---
выражение подсчета в итогах просто Сумма(КолШт) ?
---
Не понял проблемы.
Если нужно считать тупо в упаковках без учета "остатка" в штуках, то просто добавьте вычисляемое поле "КвоУпаковок", которое будет возвращать дробное количество упаковок банальным пересчетом количества штук на коэффициент упаковки. Это если говорить о "голой" СКД. По-идее, в типовых отчетах (я в них не силен просто) это уже может быть решено на уровне доступных пользователю настроек.
---
Нет.
Выражение: Упаковок(Сумма(КолШт), Коэф)
где Упаковок - название функции в общем модуле.
       КолШт - количество в штуках, из запроса.
       Коэф - коэффициент пересчета для данной упаковки.
В столбце Расчитывать по указываю поле Номенклатура.
Получаю корректный пересчет до группировки номенклатуры.

Выше группировки Номенклатуры, нужно просто суммировать полученные данные в группировке Номенклатуры.
Пробую использовать функцию Вычислить:

```1c
    Вычислить("Сумма(КолШт)", "Номенклатура")
```

Но получаю ошибку:
Выражение не может быть вычислено "Сумма(НаборДанных1.КолШт), Номенклатура"
---
Уточняю (на вопрос 10). При различных группировках полей СКД. В итоговых группах и общих итогах получается различные вариации количества упаковок и штук.
---
Так если вы используете простое отношение для детальных записей (вычисляемое поле, где тупое деление одного на другое с дробным результатом), то вы получите "ровный" результат для любых итогов. Ну, или я не понимаю что вам надо.
(13) Хоть я и не понял, зачем вам это, но подбить "развернутый итог по нужным группировкам" можно так (в формуле ресурса):

```1c
    Сумма(ВычислитьВыражениеСГруппировкойМассив("Сумма(Упок)", "Контрагент, Номенклатура"))
```
---
Подскажите пожалуйста.
Как для вышестоящих группировок и итогов получить суммарные данные из группировки Номенклатура.
Так не работает.
Вычислить("Сумма(Упок)", "Номенклатура")
---
Сложно понять что там у вас. особенно без структуры отчета

Итак. Группировки выше суммируют значения из всех строк (в группировке номенклатура тоже)

Если Номенклатура считается из общего модуля (Можно было бы через ВЫБРАТЬ КОГДА ТОГДА), то вышестоящие итоги будут считаться просто сумма (вычислить Сумма(упок) так же будет просто сумма)

Сумма(МАССИВ (ТаблицаЗначений (Различные Упок, Номенклатура))) - пробуйте так.

Вообще проще прислать отчет чем описывать свои структуры. быстрее бы ответ получили
---
Отчет использует функции общего модуля:

  Функция Упаковок(КолШт, Коэф) Экспорт
   Если Коэф = 0 Тогда
      Коэф = 1;
   КонецЕсли;
  Уп = Цел(КолШт/Коэф);
 Возврат Уп
КонецФункции

  Функция Штук(КолШт, Коэф) Экспорт
   Если Коэф = 0 Тогда
      Коэф = 1;
   КонецЕсли;
  Уп = Цел(КолШт/Коэф);

 Возврат КолШт - Уп*Коэф
КонецФункции
---
Получилось.
Спасибо всем кто принимал участие в обсуждении! ! ! ! ! !

Решение:
В общих модулях создал процедуру:

```1c
    Функция ИтогиУпаковок(Таб) Экспорт
    Таб.Свернуть("Номен, Коэф", "Кол");
    Сум = 0;
    Дроб = 0;
    Для каждого Стр из Таб Цикл
    Уп = Цел(Стр.Кол/Стр.Коэф);
    Дроб = Дроб + Стр.Кол - Уп*Стр.Коэф;
    Сум =Сум + Уп;
    КонецЦикла;
    Возврат Строка(Сум) + " / " + Строка(Дроб)
    КонецФункции
```

В ресурсах СКД записал выражение:

```1c
    ИтогиУпаковок(ТаблицаЗначений(Номенклатура КАК Номен, Коэф КАК Коэф, КолШт КАК Кол))
```

Спасибо организаторам этого форума!