Имя: Пароль:
1C
1С v8
Получение ЦЕНЫ для табличной части документа
0 serpentt
 
28.07.17
09:19
Здравствуйте.
Натолкните в правильное направление, как к запросу по Табличной части документа присоединить ЦеныСрезПоследних?

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

УПОРЯДОЧИТЬ ПО
    Ссылка,
    НомерСтроки

Это краткая часть текста запроса
к ЗаказНаПроизводство.Операции.Номенклатура необходимо присоединить РегистСведений Цены, чтобы получить последнюю цену по выбранному ВидуЦены....

Заранее спасибо.
1 1dvd
 
28.07.17
09:22
Это не запрос к табличной части. Переделайте
2 zvial
 
28.07.17
09:22
Все просто: Левым соединением
3 Vanechka
 
28.07.17
09:22
Можно во вложенном запросе
4 Vanechka
 
28.07.17
09:23
ТЧ в одном запросе с ценами, реквизиты документа в другом
5 serpentt
 
28.07.17
09:24
(2)
С ЛевымСоединением не взлетает
6 serpentt
 
28.07.17
09:26
(1) Хорошо, не правильно выразился.
Вообще в Документе 4-е Табличных части И все данные по ним И самому документу получаются таким запросом(для примера запрос урезал)

Переделывать основной запрос не совсем хочется.
7 serpentt
 
28.07.17
09:27
(3) т.е. Что положить во вложенный Запрос?
8 zvial
 
28.07.17
09:42
(5) Ясен пень. Поскольку, левое соединение нужно цеплять к Документ.ЗаказНаПроизводство.Операции, а не к тому, что у вас
9 zvial
 
28.07.17
09:46
В общем, можно так:

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

ИТОГИ  
    МАКСИМУМ(Номер),
    МАКСИМУМ(ДатаДокумента),
    МАКСИМУМ(Организация)
ПО
    Ссылка
10 serpentt
 
28.07.17
09:46
(8) Вот ПНЮ не ясно ... как к Документ.ЗаказНаПроизводство.Операции присоединить РегистрСведений.ЦеныНоменклатуры.СрезПоследних() при Данном запросе????
11 serpentt
 
28.07.17
09:47
(9) Если так развернуть запрос я понимаю, Я СПРАШИВАЛ в (0) ВОзможность присоединения Региста к Существующему запросу
12 zvial
 
28.07.17
09:47
Обход результата реализовать с обходом по группировке Ссылка. Ну и, цены получаются не на дату каждого документа, а на одну. Что, возможно, некорректно в контексте задачи.
13 zvial
 
28.07.17
09:48
Я ж в (8) написал, что к тому что у вас - НИКАК
14 serpentt
 
28.07.17
09:49
(12) Это как последний вариант
(13) НИКАК- Спасибо :)
15 aleks_default
 
28.07.17
11:37
(13)ты бы хоть проверил прежде чем писать
16 aleks_default
 
28.07.17
11:38
ИЗ
    Документ.ЗаказНаПроизводство КАК ЗаказНаПроизводство

ИЗ
    Документ.ЗаказНаПроизводство.Операции КАК ЗаказНаПроизводствоОперации
17 zvial
 
28.07.17
11:57
(15) Извини, что все не сделал и в щечку не поцеловал. Я не писал что этот вариант решения 100% рабочий. Это шаблон возможного решения.
2 + 2 = 3.9999999999999999999999999999999...