СКД: Группировка по регистратору и полю-периоду

Все дальнейшие примеры приведены для платформы 8.2.14.439 / Демонстрационная конфигурация УТ 11.0.4.5 Все сокращенные ссылки ведут в Google Docs (учетная запись не требуется).

Имеем самый простой запрос к виртуальной таблице “Остатков и Оборотов” регистра “ТоварыНаСкладах”.

Собственно схема компоновки: 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, но чтобы остатки “не скакали”
Добиться желаемого результата (и оставить масштабируемость настроек и скорость работы отчета на приемлемом уровне) пока не удается :(

Если кто сталкивался с такой проблемой и знает решение или ссылки на информацию, которая поможет его найти – подскажите, пожалуйста.

Подписаться
Уведомить о
guest
3 комментариев
Старые
Новые Популярные
Межтекстовые Отзывы
Посмотреть все комментарии
Mokey
12 лет назад

Обманул.. аккаунт требует гугл.

Сергей Марусов
Сергей Марусов
12 лет назад

По какой именно ссылке?

mc1
mc1
12 лет назад

Видимо, СКД по-умолчанию неправильно сортирует группировку по регистратору и, поэтому, неправильно считает начальные и конечные остатки.
Помогает следующее: надо добавить в СКД третье поле с ролью “Период”, в котором будет дата регистратора (или поле Период из регистра) и проставить номера периодов – по убыванию от верхней группировки периода к детальной.
Т.е., если надо вывести отчет по группировкам “ПериодМесяц” и “Регистратор”, то:
1) в запросе СКД добавляем еще одно поле “РегистраторДата”
2) Для поля “ПериодМесяц” ставим признак периода и номер периода 3
3) Для поля “РегистраторДата” ставим признак периода и номер периода 2
2) Для поля “Регистратор” ставим признак периода и номер периода 1