Дано:
Справочник: Фрукты (двухуровневый).
Группа: Яблоки. Элементы: Зеленые, Желтые, Красные;
Группа: Груши. Элементы: Большие, Спелые, Крупные;
Справочник: Партии (одноуровневый).
Фрукты, Страна.
Во втором справочнике есть две записи:
Яблоки, Турция
Груши, Аргентина
Надо запросом получить Страну, имея элемент справочника Фрукты
ВЫБРАТЬ
Партии.Страна
ИЗ
Справочник.Партии КАК Партии
ГДЕ
&Фрукт В ИЕРАРХИИ (Партии.Фрукты) //Понятно что так нельзя ))
...
пФрукт = Справочники.Фрукты.Зеленые;
Запрос.УстановитьПараметр("Фрукт",пФрукт);
Должны получить Турцию, но как?
Справочник: Фрукты (двухуровневый).
Группа: Яблоки. Элементы: Зеленые, Желтые, Красные;
Группа: Груши. Элементы: Большие, Спелые, Крупные;
Справочник: Партии (одноуровневый).
Фрукты, Страна.
Во втором справочнике есть две записи:
Яблоки, Турция
Груши, Аргентина
Надо запросом получить Страну, имея элемент справочника Фрукты
ВЫБРАТЬ
Партии.Страна
ИЗ
Справочник.Партии КАК Партии
ГДЕ
&Фрукт В ИЕРАРХИИ (Партии.Фрукты) //Понятно что так нельзя ))
...
пФрукт = Справочники.Фрукты.Зеленые;
Запрос.УстановитьПараметр("Фрукт",пФрукт);
Должны получить Турцию, но как?
По теме из базы знаний
Найденные решения
(82) Win98, а принципиально надо передавать в запрос сам фрукт? тогда
так как-то
"Выбрать
|Партии.Страна
|Фрукты.Родитель
|ИЗ
|Справочник.Партии КАК Партии
|ВНУТРЕННЕЕ СОЕДИНЕНИЕ
|Справочник.Фрукты КАК Фрукты
|ПО Партии.Фрукты = Фрукты.Родитель
|ГДЕ
|Фрукты.Ссылка = &Фрукт";
Показатьтак как-то
Остальные ответы
Подписаться на ответы
Инфостарт бот
Сортировка:
Древо развёрнутое
Свернуть все
(1) Win98,
Если такие простые справочники, то используй родителя
ВЫБРАТЬ
Партии.Страна
ИЗ
Справочник.Партии КАК Партии
ГДЕ
Партии.Фрукты=&РодительФрукта
пФрукт = Справочники.Фрукты.Зеленые.Родитель;
Запрос.УстановитьПараметр("РодительФрукта",пФрукт);
Если такие простые справочники, то используй родителя
ВЫБРАТЬ
Партии.Страна
ИЗ
Справочник.Партии КАК Партии
ГДЕ
Партии.Фрукты=&РодительФрукта
пФрукт = Справочники.Фрукты.Зеленые.Родитель;
Запрос.УстановитьПараметр("РодительФрукта",пФрукт);
(1) Win98, это что за конструкция такая ? Впервые вижу, чтобы учет партий был организован в справочнике 8)
И как предполагается использование ? Новая партия, это последний элемент справочника, который при списании партии удаляется ?
В запросе, в принципе можно выбирать первый элемент выборки, естественно упорядочив при этом в нужном направлении
Типа того
Выбрать Первые 1
бла бла бла
где
Партии.Фрукты = &Фрукт
А вообще, регистр накопления нуно юзать
И как предполагается использование ? Новая партия, это последний элемент справочника, который при списании партии удаляется ?
В запросе, в принципе можно выбирать первый элемент выборки, естественно упорядочив при этом в нужном направлении
Типа того
Выбрать Первые 1
бла бла бла
где
Партии.Фрукты = &Фрукт
А вообще, регистр накопления нуно юзать
(1) Win98, тьфу тьфу меня за предыдущий пост (9) невнимательно прочел !!! - от тебя походу вот такое левое соединение хотят
ВЫБРАТЬ
Партии.Страна
ИЗ
Справочник.Партии КАК Партии
Левое Соединение Справочник.Номенклатура Как Номенклатура
По Партии.Фрукты = Номенклатура.Родитель И Номенклатура.Ссылка = &Фрукт
(82) Win98, а принципиально надо передавать в запрос сам фрукт? тогда
так как-то
"Выбрать
|Партии.Страна
|Фрукты.Родитель
|ИЗ
|Справочник.Партии КАК Партии
|ВНУТРЕННЕЕ СОЕДИНЕНИЕ
|Справочник.Фрукты КАК Фрукты
|ПО Партии.Фрукты = Фрукты.Родитель
|ГДЕ
|Фрукты.Ссылка = &Фрукт";
Показатьтак как-то
(80) Win98, Реально не понимаешь или невнимательно читаешь пост.
Нужно передавать фрукт именно параметром? пожалуйста:
Можно передать родителя фрукта? пожалуйста:
Нужно сделать через вложенный запрос для получения родителя и связать внутренним соединением? пожалуйста:
нужно сделать тоже самое без внутреннего соединение но через вложенный запрос в условии? пожалуйста:
Тебе еще вариантов нарезать? В чем твоя проблема, а?
Нужно передавать фрукт именно параметром? пожалуйста:
ВЫБРАТЬ
Партии.Страна
ИЗ
Справочник.Партии КАК Партии
ГДЕ
Партии.Номенклатура = ВЫРАЗИТЬ(&Фрукт КАК Справочник.Номенклатура).Родитель
Можно передать родителя фрукта? пожалуйста:
ВЫБРАТЬ
Партии.Страна
ИЗ
Справочник.Партии КАК Партии
ГДЕ
Партии.Номенклатура = &Фрукт
Нужно сделать через вложенный запрос для получения родителя и связать внутренним соединением? пожалуйста:
ВЫБРАТЬ
Партии.Страна
ИЗ
Справочник.Партии КАК Партии Внутреннее Соединение
(ВЫБРАТЬ
Номенклатура.Родитель КАК Родитель
ИЗ
Справочник.Номенклатура КАК Номенклатура
ГДЕ
Номенклатура.Ссылка = &Фрукт) КАК РодительФрукта
ПО Партии.Номенклатура = РодительФрукта.Родитель
Показатьнужно сделать тоже самое без внутреннего соединение но через вложенный запрос в условии? пожалуйста:
ВЫБРАТЬ
Партии.Страна
ИЗ
Справочник.Партии КАК Партии
ГДЕ
Партии.Номенклатура В
(ВЫБРАТЬ
Номенклатура.Родитель
ИЗ
Справочник.Номенклатура КАК Номенклатура
ГДЕ
Номенклатура.Ссылка = &Фрукт
СГРУППИРОВАТЬ ПО
Номенклатура.Родитель)
ПоказатьТебе еще вариантов нарезать? В чем твоя проблема, а?
(90) Win98, Только если вручную.. в одном посту добиваешь до 10 и отдаешь одному..
Потом не закрываю тему делаешь новый пост и добавляешь вознаграждение .. Пост отправится - вознаграждение будет опять в теме.. снова отдаешь второму
Только так.. одновременно не получится.. только вручную
Потом не закрываю тему делаешь новый пост и добавляешь вознаграждение .. Пост отправится - вознаграждение будет опять в теме.. снова отдаешь второму
Только так.. одновременно не получится.. только вручную
(1) Win98, короче если задача звучала так как написанно в посте и по тем условиям то запросик должен быть таким
ВЫБРАТЬ
Партии.Страна
ИЗ
Справочник.Партии КАК Партии
ГДЕ
Партии.Номенклатура = ВЫРАЗИТЬ(ЗНАЧЕНИЕ(Справочник.Номенклатура.Зеленый) КАК Справочник.Номенклатура).Родитель
(42) Восьмой, да.. Но я его употребляю обычно не в ветке ГДЕ,
а в полях регистратора..
Когда делаю запрос к регистру.. вот там когда из документа регистратора надо тащить дату, номер и все такое, тогда я его и использую..
В основном, если выбранные поля имеют обращение более чем через одну запятую, тогда я его и пользую..
А тут именно ветка ГДЕ такая длинная получилась_))))
а в полях регистратора..
Когда делаю запрос к регистру.. вот там когда из документа регистратора надо тащить дату, номер и все такое, тогда я его и использую..
В основном, если выбранные поля имеют обращение более чем через одну запятую, тогда я его и пользую..
А тут именно ветка ГДЕ такая длинная получилась_))))
(47) adva, По любому нужен оператор ВЫРАЗИТЬ, иначе будет куча левых соединений с справочником номенклатура, а там может таблица с всеми цветами радуги, когда нужен только зеленый...
Не.. ИМХО, ВЫРАЗИТЬ надо чтобы не было запроса в цикле, если обращение более чем через одну точку по полям)))
Не.. ИМХО, ВЫРАЗИТЬ надо чтобы не было запроса в цикле, если обращение более чем через одну точку по полям)))
(47) adva, я вам более скажу что через выразить можно обращаться к полям параметров запроса ссылочного типа т.е.
конструкция в запросе
имеет право на жизнь вполне.
конструкция в запросе
ВЫРАЗИТЬ(&Параметр КАК Справочник.Номенклатура).Родитель КАК Поле1
ВЫРАЗИТЬ(&Параметр1 КАК Справочник.Номенклатура).Наименование КАК Поле2
(48)ВЫРАЗИТЬ, всё-таки лишнее
конструкция ЗНАЧЕНИЕ(Справочник.Номенклатура.Зеленый).Родитель - ТУПО не взлетит
, а конструкция (ЗНАЧЕНИЕ(Справочник.Номенклатура.Зеленый)).Родитель
вполне себе взлетит. По поводу параметров тоже сомнительный способ, честно говоря - лучше сразу в параметр передавать значение реквизита, а не получать через точку, чтобы избежать лишнего соединения.
(61) Восьмой, То есть вместо:
Полетит вполне:
???
...
ГДЕ
Партии.Номенклатура = ВЫРАЗИТЬ(ЗНАЧЕНИЕ(Справочник.Номенклатура.Зеленый) КАК Справочник.Номенклатура).Родитель
Полетит вполне:
...
ГДЕ
Партии.Номенклатура = (ЗНАЧЕНИЕ(Справочник.Номенклатура.Зеленый)).Родитель
???
ВЫБРАТЬ
Фрукты.Ссылка,
Фрукты.Родитель КАК Родитель,
Фрукты.Наименование
ПОМЕСТИТЬ ВТФрукты
ИЗ
Справочник.Фрукты КАК Фрукты
ГДЕ
Фрукты.ЭтоГруппа = ЛОЖЬ
ИНДЕКСИРОВАТЬ ПО
Родитель
;
ВЫБРАТЬ
ВТФрукты.Ссылка,
ВТФрукты.Родитель,
ВТФрукты.Наименование,
Партии.Страна
ИЗ
ВТФрукты КАК ВТФрукты
ЛЕВОЕ СОЕДИНЕНИЕ Справочник.Партии КАК Партии
ПО ВТФрукты.Родитель = Партии.Фрукт
ПоказатьКак правильно заметил (7) пересмотрите свое отношение к хранению какой-либо информации в структуре справочников. Подумайте о регистрах, доп. реквизитах.
Регистр Накопления лучше юзать, или же регистр сведений(если просто хранить информацию) - тогда будет проще...
Тогда не нужно будет ГДЕ, а сразу всё указывать в параметрах виртуальной таблицы, и быстрее запрос будет
Тогда не нужно будет ГДЕ, а сразу всё указывать в параметрах виртуальной таблицы, и быстрее запрос будет
(30) jigourt, если вы решили спросить, то и (28) odin777, (29) odin777, и это в том числе, не относящееся к теме вопроса, скорее для раздела Лайф, думаю меня немного смутил после поста (24) Bukaska, ваш пост
Bukaska, я не удивлюсь, что как-нибудь на ИС кто-нибудь спросит "а как добавить движения в справочнике при проведении документа
поэтому и отписался в (27) odin777.
(31) DoctorRoza, не задача звучала именно так - "есть справочник ОстаткиОборотыНоменклатуры - именно справочник все технологические моменты мы не учитываем - поля справочника - Номенклатура - Склад - Дата операции - вид операции (перечисление приход/расход) - количество - сумма - нужно написать запрос который бы показывал остатки и обороты за произвольный период с возможность отбора по номенклатуре и склада - по возможности не использовать вложенные запросы и временные таблицы - написать запрос нужно было на бумаге от руки без использования конструктора и отводилось на задание час, проверялись навыки составления запросов.
Вобщем задачка легкая просто я тогда без конструктора с трудом составлял запросы и в начале еще чего-то троллить начал не в тему мол "да вы че этож ППЦ че за х...))" Короче в начале не подумал чутка и внимательно задание не прочел где все было четко сказано - ну и малость неадыкватно себя повел по неопытности)))) потом после собеседования посидел подумал решил через конструктор за 10 мин... понял что я еще молодой и зеленый)) и снова стал читать запретные желтые книги, щас уровень на порядок выше но один хрен я еще молодой и зеленый)))))))
З.Ы. Зп у ваканта была 150 на руки))) так что для тек кто считает что он мега крут можете поразвлечься и порешать эту задачку))) DoctorRoza - коллега если бы все было так просто)))))))))
Вобщем задачка легкая просто я тогда без конструктора с трудом составлял запросы и в начале еще чего-то троллить начал не в тему мол "да вы че этож ППЦ че за х...))" Короче в начале не подумал чутка и внимательно задание не прочел где все было четко сказано - ну и малость неадыкватно себя повел по неопытности)))) потом после собеседования посидел подумал решил через конструктор за 10 мин... понял что я еще молодой и зеленый)) и снова стал читать запретные желтые книги, щас уровень на порядок выше но один хрен я еще молодой и зеленый)))))))
З.Ы. Зп у ваканта была 150 на руки))) так что для тек кто считает что он мега крут можете поразвлечься и порешать эту задачку))) DoctorRoza - коллега если бы все было так просто)))))))))
(33) Bukaska, Повторюсь проверялось знание составление запросов - какая разница откуда читать, есесно ориентиром были поля дата и вид операции))) - запрос тот же по сути что и у вирт таблицы оборотного регистра - просто система его за вас дописывает а тут нужно было показать что понимаешь че к чему и как эта хрень работает)))) ну и на адыкватность заодно прверили))))
Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот