СКД: Группировка по регистратору и полю-периоду
Имеем самый простой запрос к виртуальной таблице “Остатков и Оборотов” регистра “ТоварыНаСкладах”.
Собственно схема компоновки: http://goo.gl/oIWhb
В схеме имеется поле – реквизит измерения “Склад”. Всем полям назначены корректные роли.
В настройках в группировках строк имеем группировку по номенклатуре
Ситуация 1:
Настройки: http://goo.gl/6vqwD
Добавляем вывод детальных записей (Поле Регистратор, Сортировка по регистратору).
В результате получаем корректные остатки по измерению номенклатуры, по детальным записям начальные и конечные
остатки, как и ожидалось “СКАЧУТ” – т.е. нарушается связь: начальный остаток записи равен конечному остатку предыдущей записи.
Результат: http://goo.gl/v1KOs
Ситуация 2:
Настройки: http://goo.gl/bPkPV
Исправляем предыдущую ситуацию – вместо детальных записей выводим группировку по регистратору.
Все отлично, т.е. так как и надо. Остатки по регистратору “не скачут”.
Результат: http://goo.gl/9NSgg
Ситуация 3:
Настройки: http://goo.gl/imTyC
Добавляем группировку Колонок “Период месяц”. Так как с группировкой по регистратору вывести не получится, вместо группировки
по регистратору используем детальные записи с полем регистратор.
И возвращаемся к ситуации 1
Хотелось бы обратить внимание как в данном случае выводятся остатки по регистратору – а именно в колонке периода месяц выводятся только
данные по регистраторам из ДАННОГО периода
Результат: http://goo.gl/B6zlO
Ситуация 4:
Настройки: http://goo.gl/IqR9q
Для того чтобы можно было сгруппировать по регистратору и по периоду, меняем в схеме компоновки у поля периода (в данном примере “ПериодМесяц”)
Настройку Роли, а именно снимаем флажок ДОПОЛНИТЕЛЬНОГО ПЕРИОДА
Теперь мы можем сгруппировать и по регистратору и по периоду. Выполняем. И опять облом
Теперь получается что по колонке периоду у всех регистраторов Начальный и Конечный Остатки одинаковы – соответственно Начальный и конечный остатки
по ТЕКУЩЕМУ периоду
(Результат конечно ожидаем, когда знаешь как СКД рассчитывает остатки – но сейчас не об этом)
Да и к тому же в колонке выводятся остатки и для регистраторов из других периодов (но с этим еще можно бороться)
Результат: http://goo.gl/ffQ66
Убил кучу времени чтобы реализовать и группировку строк по регистратору и группировку колонок по периоду так, чтобы остатки выводились корректно по регистраторам,
а именно – начальный остаток записи, равен конечному остатку предыдущей записи и т.д. – т.е. Примерно как при настройках в Ситуации 3, но чтобы остатки “не скакали”
Добиться желаемого результата (и оставить масштабируемость настроек и скорость работы отчета на приемлемом уровне) пока не удается
Если кто сталкивался с такой проблемой и знает решение или ссылки на информацию, которая поможет его найти – подскажите, пожалуйста.
Обманул.. аккаунт требует гугл.
По какой именно ссылке?
Видимо, СКД по-умолчанию неправильно сортирует группировку по регистратору и, поэтому, неправильно считает начальные и конечные остатки.
Помогает следующее: надо добавить в СКД третье поле с ролью “Период”, в котором будет дата регистратора (или поле Период из регистра) и проставить номера периодов – по убыванию от верхней группировки периода к детальной.
Т.е., если надо вывести отчет по группировкам “ПериодМесяц” и “Регистратор”, то:
1) в запросе СКД добавляем еще одно поле “РегистраторДата”
2) Для поля “ПериодМесяц” ставим признак периода и номер периода 3
3) Для поля “РегистраторДата” ставим признак периода и номер периода 2
2) Для поля “Регистратор” ставим признак периода и номер периода 1