Вход | Регистрация
 
1С:Предприятие :: 1С:Предприятие 8 общая

Запрос к Регистру сведений СрезПоследних

Запрос к Регистру сведений СрезПоследних
Я
   Alexsu05
 
20.04.21 - 17:01
Добрый день! Нужна помощь! С запросами только начинаю разбираться

Вроде простая задача. Есть табличная часть документа, есть регистр сведений ЦеныКонтрагентов. Измерения "Контрагент", "Номенклатура", "ЕдиницаИзмерения", ресурс "Цена"
Надо присоединить к таблице с услугами цены из регистра. Но Цена не заполняется, в регистре записи все есть.
Поля Период и Контрагент заполняю сразу через параметры запроса, период - дата документа, Контрагент - контрагент документа


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

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

СГРУППИРОВАТЬ ПО
    втТЧУслуги.Номенклатура,
    втТЧУслуги.ЕдиницаИзмерения,
    втТЧУслуги.Количество,
    втТЧУслуги.Ссылка,
    длгЦеныКонтрагентовСрезПоследних.Цена
   shuhard
 
1 - 20.04.21 - 17:18
(0) в группировке вряд ли нужны: втТЧУслуги.Количество,
        длгЦеныКонтрагентовСрезПоследних.Цена
   Kassern
 
2 - 20.04.21 - 17:20
а нахрена делать вложенный запрос в регистре длгЦеныКонтрагентов? Неужели нельзя просто вашу временную таблицу через левое соединение соединить с регистром сведений?
   Alexsu05
 
3 - 20.04.21 - 17:25
К (2) Наверное можно, но в таком случае запрос к срезу последних будет получать все данные из программы перед соединением
   Alexsu05
 
4 - 20.04.21 - 17:26
Всем спасибо! Запрос работает, это в базе косяки с единицами измерения.
   Kassern
 
5 - 20.04.21 - 17:30
(3) если левое соединение, то он будет получать только по тем данным, которые есть в левой таблице, а не по всем позициям
   Alexsu05
 
6 - 20.04.21 - 17:36
(5) Спасибо за совет, попробую, посмотрю как по скорости будет.

Список тем форума
Рекламное место пустует  Рекламное место пустует
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.