Изменение данных в ТаблицеЗначений запросом

1. Дон Кихот 09.09.20 12:22 Сейчас в теме
Есть таблица значений, в которой вместо строки со значением реквизита Исключая = Истина, нужно подставить строки со всеми другими значениями Ширины. Базовое свойство это ПВХ, а значение в подчиненном справочнике. И сделать это нужно в запросе, куда Таблица Значений передается как параметр. Подскажите пожалуйста каким способом реализовать данный запрос
Прикрепленные файлы:
По теме из базы знаний
Ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. most_fucking 09.09.20 12:34 Сейчас в теме
(2) помещаешь таблицу в запрос в временный запрос и создай все колонки
Прикрепленные файлы:
3. VictorRGB2 13 09.09.20 12:36 Сейчас в теме
ничего, кроме как крутить всякими соединениям временные таблицы в запросе, на ум не приходит
а вот как крутить, зависит от того что есть на входе и что надо получить на выходе
т.е. входную таблица поместить в запрос как временную
дальше через соединения получить результирующую с нужным данными
4. Дон Кихот 09.09.20 13:34 Сейчас в теме
(3)То что на входе есть в скрине, есть еще справочник который содержит все значения свойства Ширина. Получаю все значения этого справочника кроме значения, указанного в скрине. В итоге нужно чтобы строка из ТЗ заменилась на строки со значениями из справочника
5. VictorRGB2 13 09.09.20 14:48 Сейчас в теме
(4)
ВЫБРАТЬ
 тз.Свойство,
 тз.Ширина,
 тз.Исключая
ПОМЕСТИТЬ таблИсходная
ИЗ
 &таблица как тз

;
/////////
ВЫБРАТЬ
 таблИсходная.Ширина,
 спр.Длина,
 спр.Высота
ИЗ
  справочник.Параметры КАК спр
  ЛЕВОЕ СОЕДИНЕНИЕ таблИсходная КАК таблИсходная
  ПО таблИсходная.Исключая = ИСТИНА
  И спр.Свойство = таблИсходная.Свойство
Показать


как-то так, похожий пример давали и в (2)

если по свойству нет связи, то можно только по Исключая = Истина, тогда таблИсходная соединится со всем строками из выборки спр
но при этом для всех спр получится одинаковая ширина
6. Дон Кихот 10.09.20 14:36 Сейчас в теме
(5)
Параметры
Спасибо за помощь, таблица значений первоначально содержала больше колонок, не писал об этом, т.к. нужен был алгоритм, запрос подправил вручную, поэтому могут быть неточности но алгоритм правильный, в итоге получилось так:
"ВЫБРАТЬ
    |	ТабЗависимыеЗначения.БазовыеСвойство,
    |	ТабЗависимыеЗначения.БазовыеЗначения,
    |	ТабЗависимыеЗначения.Исключая
    |ПОМЕСТИТЬ ПолнаяТаблица
    |ИЗ
    |	&ТабЗависимыеЗначения КАК ТабЗависимыеЗначения
    |;
    |
    |////////////////////////////////////////////////////////////­////////////////////
    |ВЫБРАТЬ РАЗЛИЧНЫЕ
    |	ПолнаяТаблица.БазовыеСвойство,
    |	ПолнаяТаблица.БазовыеЗначения
    |ПОМЕСТИТЬ БазовыеСвойстваДляПолученияПолногоСписка
    |ИЗ
    |	ПолнаяТаблица КАК ПолнаяТаблица
    |ГДЕ
    |	ПолнаяТаблица.Исключая
    |;
    |
    |////////////////////////////////////////////////////////////­////////////////////
    |ВЫБРАТЬ РАЗЛИЧНЫЕ
    |	Справочник.Ссылка,
    |	Справочник.Владелец
    |ПОМЕСТИТЬ ЭлементыСпрОбратные
    |ИЗ
    |	БазовыеСвойстваДляПолученияПолногоСписка КАК БазовыеСвойстваДляПолученияПолногоСписка
    |		ЛЕВОЕ СОЕДИНЕНИЕ Справочник.Справочник КАК Справочник
    |		ПО (Справочник.Владелец = БазовыеСвойстваДляПолученияПолногоСписка.БазовыеСвойство)
    |			И (Справочник.Ссылка <> БазовыеСвойстваДляПолученияПолногоСписка.БазовыеЗначения)
    |ГДЕ
    |	НЕ Справочник.Ссылка В
    |				(ВЫБРАТЬ
    |					БазовыеСвойстваДляПолученияПолногоСписка.БазовыеЗначения
    |				ИЗ
    |					БазовыеСвойстваДляПолученияПолногоСписка КАК БазовыеСвойстваДляПолученияПолногоСписка)
    |;
    |
    |////////////////////////////////////////////////////////////­////////////////////
    |ВЫБРАТЬ РАЗЛИЧНЫЕ
    |	ПолнаяТаблица.БазовыеСвойство,
    |	ВЫБОР
    |		КОГДА ПолнаяТаблица.Исключая = ИСТИНА
    |			ТОГДА ЭлементыСпрОбратные.Ссылка
    |		ИНАЧЕ ПолнаяТаблица.БазовыеЗначения
    |	КОНЕЦ КАК БазовыеЗначения,
    |	ПолнаяТаблица.Исключая
    |ИЗ
    |	ПолнаяТаблица КАК ПолнаяТаблица
    |		ПОЛНОЕ СОЕДИНЕНИЕ ЭлементыСпрОбратные КАК ЭлементыСпрОбратные
    |		ПО ПолнаяТаблица.БазовыеСвойство = ЭлементыСпрОбратные.Владелец
    |;
    |
    |////////////////////////////////////////////////////////////­////////////////////
    |УНИЧТОЖИТЬ ПолнаяТаблица
    |;
    |
    |////////////////////////////////////////////////////////////­////////////////////
    |УНИЧТОЖИТЬ БазовыеСвойстваДляПолученияПолногоСписка
    |;
    |
    |////////////////////////////////////////////////////////////­////////////////////
    |УНИЧТОЖИТЬ ЭлементыСпрОбратные";
Показать


Получилось сначала ТЗ загрузил во временную таблицу,
вторым действием получил строки с Истина и поместил во временную таблицу,
третье из справочника выбрал значения кроме тех что были со значением Истина и тоже поместил во временную таблицу,
И четвёртым действием соединил полную таблицу и таблицу с обратными значениями справочника,
установил связи и ключевое Выбор Когда
дал необходимый результат, хотя понимаю что обратные значения справочника можно было получить проще.
7. slasher777 29.09.20 19:47 Сейчас в теме
крутить всякими соединениям временные таблицы в запросе, на ум не приходит
а вот как крутить, зависит от того что есть на входе и что надо получить на выходе
т.е. входную таблица поместить в запрос как временную
дальше через соединения получить результирующую с нужным данными
Оставьте свое сообщение

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