Запрос по двум регистрам в СКД: пустое итоговое поле по группировке.

1. Serg_2010 18.02.21 10:59 Сейчас в теме
Коллеги, всем добрый день.
Прошу сильно не пинать - я не спец по запросам, пока только учусь.
Проблема следующая: запрос строится в УТ 11.4 по двум регистрам Остатки товаров и Свободные остатки.
Из первого получаю Склад, Товар, Регистратор, Нач.Ост, Приход, Расход и Кон.Ост.
Результат запроса помещаю в виртуальную таблицу.
Из второго получаю Склад, Товар, Регистратор и конечный остаток товара в резерве.
Второй запрос соединяю с первым через объединение.
И получается следующая картина. Когда в запросе последний документ-регистратор является документом регистра Остатки товаров, то итоговое поле по группировке заполняется, как только последним в поле стоит документ регистратор из регистра Свободные остатки, то поле пустое.

Просьба подсказать как исправить ошибку. Уже весь моск сломал.

Запрос:

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

////////////////////////////////////////////////////////////­////////////////////
ВЫБРАТЬ
	Товары.Склад КАК Склад,
	Товары.Номенклатура КАК Номенклатура,
	Товары.Регистратор КАК Регистратор,
	Товары.ВНаличииНачальныйОстаток КАК ВНаличииНачальныйОстаток,
	Товары.ВНаличииПриход КАК ВНаличииПриход,
	Товары.ВНаличииРасход КАК ВНаличииРасход,
	Товары.ВНаличииКонечныйОстаток КАК ВНаличииКонечныйОстаток,
	Товары.ПериодСекунда КАК ПериодСекунда,
	Товары.ПериодДень КАК ПериодДень,
	0 КАК ВРезервеСоСкладаКонечныйОстаток
ИЗ
	Товары КАК Товары

ОБЪЕДИНИТЬ ВСЕ

ВЫБРАТЬ
	СвободныеОстаткиОстаткиИОбороты.Склад,
	СвободныеОстаткиОстаткиИОбороты.Номенклатура,
	СвободныеОстаткиОстаткиИОбороты.Регистратор,
	0,
	0,
	0,
	0,
	СвободныеОстаткиОстаткиИОбороты.ПериодСекунда,
	СвободныеОстаткиОстаткиИОбороты.ПериодДень,
	СвободныеОстаткиОстаткиИОбороты.ВРезервеСоСкладаКонечныйОстаток
ИЗ
	РегистрНакопления.СвободныеОстатки.ОстаткиИОбороты(, , Авто, Движения, ) КАК СвободныеОстаткиОстаткиИОбороты
Показать
Прикрепленные файлы:
По теме из базы знаний
Найденные решения
3. toypaul 63 18.02.21 12:27 Сейчас в теме
Если я правильно понимаю проблему, то похожу ситуацию разбирали на "митапе по СКД" тут на инфостарте.

И снова же если я правильно помню, то решение заключается в том, что нужно в каждой части запроса добавить еще одно поле. Назвать его например РазделУчета. В первой части там будет строка "Остатки", во второй "Резервы". И по-моему этому полю в роли нужно установить что оно является измерением и обязательным.

Как-то так. Более точно можно в митапе посмотреть (а может автор той темы сюда заглянет)
dhurricane; Serg_2010; SlavaKron; spacecraft; +4 Ответить
4. toypaul 63 18.02.21 12:29 Сейчас в теме
Здесь нужно понимать как СКД получает конечный остаток по регистратору. Оно будет брать его из последнего регистратора. В случае если последний регистратор не из нужного регистра получается косяк. Поэтому СКД нужна такая "подсказка".
Остальные ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. dhurricane 18.02.21 11:45 Сейчас в теме
(1) Попробуйте заменить "0" на "NULL" (без кавычек).
5. spacecraft 18.02.21 13:05 Сейчас в теме
(1) Схему СКД привели бы.
В демо базе все отрабатывает.
Прикрепленные файлы:
6. SlavaKron 18.02.21 13:09 Сейчас в теме
(5) По первой позиции "В наличии конечный остаток" в группировке номенклатуры у вас 0 стоит, а должно быть 12.
7. spacecraft 18.02.21 13:14 Сейчас в теме
(6) да точно. Решение озвучу ниже.
8. spacecraft 18.02.21 13:15 Сейчас в теме
(1) Нужно для Регистратор указать роль "Измерение", а не Период (который по умолчанию для него подставляется).
Вот как раз Схема СКД помогла бы.
9. SlavaKron 18.02.21 14:08 Сейчас в теме
(8)
для Регистратор указать роль "Измерение", а не Период

Так отчет суммирует начальный и конечный остатки в итогах.
Прикрепленные файлы:
123.xml
10. spacecraft 18.02.21 14:43 Сейчас в теме
(9) да, похоже правильный вариант указан в (3).
Так работает. См. вложение.
Прикрепленные файлы:
1.xml
11. SlavaKron 18.02.21 15:05 Сейчас в теме
(10) У меня не взлетело вложение. Да, сработало - это поле не было выедено в детальные записи.
Прикрепленные файлы:
3. toypaul 63 18.02.21 12:27 Сейчас в теме
Если я правильно понимаю проблему, то похожу ситуацию разбирали на "митапе по СКД" тут на инфостарте.

И снова же если я правильно помню, то решение заключается в том, что нужно в каждой части запроса добавить еще одно поле. Назвать его например РазделУчета. В первой части там будет строка "Остатки", во второй "Резервы". И по-моему этому полю в роли нужно установить что оно является измерением и обязательным.

Как-то так. Более точно можно в митапе посмотреть (а может автор той темы сюда заглянет)
dhurricane; Serg_2010; SlavaKron; spacecraft; +4 Ответить
4. toypaul 63 18.02.21 12:29 Сейчас в теме
Здесь нужно понимать как СКД получает конечный остаток по регистратору. Оно будет брать его из последнего регистратора. В случае если последний регистратор не из нужного регистра получается косяк. Поэтому СКД нужна такая "подсказка".
12. Serg_2010 19.02.21 06:20 Сейчас в теме
Оставьте свое сообщение

Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот