Изменение типа значения в запросе. Кто виноват и что делать?

1. nomad_irk 72 25.01.22 21:11 Сейчас в теме
Имеем УТ11.4.14.95, 1С 8.3.18.1741, СУБД - виндовый Postgres 9.6.7 и запрос:
ВЫБРАТЬ
	КорректировкаРеализации.Ссылка,
	РеализацияТоваровУслугВидыЗапасов.АналитикаУчетаНоменклатуры,
	КорректировкаРеализации.НомерГТД,
	РеализацияТоваровУслугВидыЗапасов.НомерГТД,
	КорректировкаРеализации.КодТНВЭД,
	РеализацияТоваровУслугВидыЗапасов.КодТНВЭД,
	РеализацияТоваровУслугВидыЗапасов.Цена,
	РеализацияТоваровУслугВидыЗапасов.Цена,
	-КорректировкаРеализации.СуммаСНДС,
	РеализацияТоваровУслугВидыЗапасов.СуммаСНДС,
	КорректировкаРеализации.СтавкаНДС,
	РеализацияТоваровУслугВидыЗапасов.СтавкаНДС,
	-КорректировкаРеализации.СуммаНДС,
	РеализацияТоваровУслугВидыЗапасов.СуммаНДС,
	-КорректировкаРеализации.Количество,
	РеализацияТоваровУслугВидыЗапасов.Количество
ИЗ
	Документ.КорректировкаРеализации.ВидыЗапасовОприходование КАК КорректировкаРеализации
		ВНУТРЕННЕЕ СОЕДИНЕНИЕ Документ.РеализацияТоваровУслуг.ВидыЗапасов КАК РеализацияТоваровУслугВидыЗапасов
		ПО КорректировкаРеализации.Ссылка.ДокументОснование = РеализацияТоваровУслугВидыЗапасов.Ссылка
			И КорректировкаРеализации.АналитикаУчетаНоменклатуры = РеализацияТоваровУслугВидыЗапасов.АналитикаУчетаНоменклатуры
			И (КорректировкаРеализации.Ссылка = &Документ)
Показать


Результатом его выполнения является рисунок1. Это ожидаемый адекватный результат.

Дописываем текст запроса до вида:
ВЫБРАТЬ
	КорректировкаРеализации.Ссылка,
	РеализацияТоваровУслугВидыЗапасов.АналитикаУчетаНоменклатуры,
	КорректировкаРеализации.НомерГТД,
	РеализацияТоваровУслугВидыЗапасов.НомерГТД,
	КорректировкаРеализации.КодТНВЭД,
	РеализацияТоваровУслугВидыЗапасов.КодТНВЭД,
	РеализацияТоваровУслугВидыЗапасов.Цена,
	РеализацияТоваровУслугВидыЗапасов.Цена,
	-КорректировкаРеализации.СуммаСНДС,
	РеализацияТоваровУслугВидыЗапасов.СуммаСНДС,
	КорректировкаРеализации.СтавкаНДС,
	РеализацияТоваровУслугВидыЗапасов.СтавкаНДС,
	-КорректировкаРеализации.СуммаНДС,
	РеализацияТоваровУслугВидыЗапасов.СуммаНДС,
	-КорректировкаРеализации.Количество,
	РеализацияТоваровУслугВидыЗапасов.Количество
ИЗ
	Документ.КорректировкаРеализации.ВидыЗапасовОприходование КАК КорректировкаРеализации
		ВНУТРЕННЕЕ СОЕДИНЕНИЕ Документ.РеализацияТоваровУслуг.ВидыЗапасов КАК РеализацияТоваровУслугВидыЗапасов
		ПО КорректировкаРеализации.Ссылка.ДокументОснование = РеализацияТоваровУслугВидыЗапасов.Ссылка
			И КорректировкаРеализации.АналитикаУчетаНоменклатуры = РеализацияТоваровУслугВидыЗапасов.АналитикаУчетаНоменклатуры
			И (КорректировкаРеализации.Ссылка = &Документ)

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

ВЫБРАТЬ
	КорректировкаРеализации.Ссылка,
	РеализацияТоваровУслугВидыЗапасов.АналитикаУчетаНоменклатуры,
	РеализацияТоваровУслугВидыЗапасов.НомерГТД,
	РеализацияТоваровУслугВидыЗапасов.НомерГТД,
	РеализацияТоваровУслугВидыЗапасов.КодТНВЭД,
	РеализацияТоваровУслугВидыЗапасов.КодТНВЭД,
	РеализацияТоваровУслугВидыЗапасов.Цена,
	РеализацияТоваровУслугВидыЗапасов.Цена,
	РеализацияТоваровУслугВидыЗапасов.СуммаСНДС,
	РеализацияТоваровУслугВидыЗапасов.СуммаСНДС,
	РеализацияТоваровУслугВидыЗапасов.СтавкаНДС,
	РеализацияТоваровУслугВидыЗапасов.СтавкаНДС,
	РеализацияТоваровУслугВидыЗапасов.СуммаНДС,
	РеализацияТоваровУслугВидыЗапасов.СуммаНДС,
	РеализацияТоваровУслугВидыЗапасов.Количество,
	РеализацияТоваровУслугВидыЗапасов.Количество
ИЗ
	Документ.КорректировкаРеализации КАК КорректировкаРеализации
		ВНУТРЕННЕЕ СОЕДИНЕНИЕ Документ.РеализацияТоваровУслуг.ВидыЗапасов КАК РеализацияТоваровУслугВидыЗапасов
		ПО КорректировкаРеализации.Ссылка.ДокументОснование = РеализацияТоваровУслугВидыЗапасов.Ссылка
			И (КорректировкаРеализации.Ссылка = &Документ)
Показать


И в результате выполнения получаем картину, показанную на рисунок2. Это очень неожиданный результат.

Судя по метаданным, типы значений у обозначенных колонок в ТЧ "Товары" документа "Реализация товаров услуг" имеют ОпределяемыйТип.ДенежнаяСуммаНеотрицательная, а в ТЧ "ВидыЗапасовОприходование" документа "Корректировка реализации" - ОпределяемыйТип.ДенежнаяСуммаЛюбогоЗнака.

Пробовал выбирать второй подзапрос из объединения в ВТ - бестолку.

Как в таких условиях получить нужный результат?
Прикрепленные файлы:
По теме из базы знаний
Найденные решения
11. nomad_irk 72 26.01.22 08:45 Сейчас в теме
(1)это глюк консоли запросов.
Остальные ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
9. nomad_irk 72 26.01.22 06:22 Сейчас в теме
(1)в файловой БД такое же поведение.
10. nomad_irk 72 26.01.22 08:18 Сейчас в теме
(1)на платформе 8.3.17.1989 и MSSQL 2019 все то же самое.
11. nomad_irk 72 26.01.22 08:45 Сейчас в теме
(1)это глюк консоли запросов.
2. Oldsad 26.01.22 02:09 Сейчас в теме
пробовали преобразовать тип через "выразить"?
3. user1203706 13 26.01.22 02:25 Сейчас в теме
(0) ну выбери так во втором запросе

-РеализацияТоваровУслугВидыЗапасов.СуммаСНДС+2* РеализацияТоваровУслугВидыЗапасов.СуммаСНДС
6. nomad_irk 72 26.01.22 06:00 Сейчас в теме
7. nomad_irk 72 26.01.22 06:03 Сейчас в теме
(3)мне не нужна положительная сумма в первом запросе, мне ее нужно "свернуть" в дальнейшем для получения дельты.
4. user1203706 13 26.01.22 02:26 Сейчас в теме
Даже лучше так

-РеализацияТоваровУслугВидыЗапасов.Количество*0+РеализацияТоваровУслугВидыЗапасов.СуммаСНДС
5. user1203706 13 26.01.22 02:27 Сейчас в теме
чтоб было приведение к типу первого операнда
8. nomad_irk 72 26.01.22 06:07 Сейчас в теме
(5)там не от операнда зависит, а от типа значения поля, почему-то приоритет у неотрицательного типа перед типом с любым знаком.
Оставьте свое сообщение

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