Имя: Пароль:
1C
1С v8
Запрос к регистру сведений
0 treor
 
26.07.18
12:13
Здравствуйте.
Есть документ "ТребованиеНакладная". Из его табличной части "Материалы" нужно отобрать только те строки, где в качестве счета учета указан 43 счет. Из таб.части есть реквизиты Номенклатура, Партия, Склад, Счет и Количество.
Кроме этих данных нужна еще Цена партии. Она храниться в регистре сведений (измерения: Номенклатура, Партия, Склад, Счет; ресурс: цена).
Вопрос: можно ли как-нибудь выбранные данные из таб.части документа передавать в регистр сведений, чтобы по этим записям сразу получать цену? Вроде отбора
Пока таб.часть обрабатываю во вложенном запросе и затем через левое соединение с регистром получаю цену. Работает. Но мне кажется, что есть более оптимальный вариант решения
1 treor
 
26.07.18
12:13
Запрос.Текст = "ВЫБРАТЬ
                   |    НоменклатураДокументаПо43.Счет,
                   |    НоменклатураДокументаПо43.Склад,
                   |    НоменклатураДокументаПо43.Номенклатура,
                   |    НоменклатураДокументаПо43.Партия,
                   |    НоменклатураДокументаПо43.Количество,
                   |    ЮИ_СебестоимостьПродукцииСрезПоследних.Цена
                   |ИЗ
                   |    (ВЫБРАТЬ
                   |        ТребованиеНакладнаяМатериалы.Счет КАК Счет,
                   |        ТребованиеНакладнаяМатериалы.Ссылка.Склад КАК Склад,
                   |        ТребованиеНакладнаяМатериалы.Номенклатура КАК Номенклатура,
                   |        ТребованиеНакладнаяМатериалы.Партия КАК Партия,
                   |        ТребованиеНакладнаяМатериалы.Количество КАК Количество
                   |    ИЗ
                   |        Документ.ТребованиеНакладная.Материалы КАК ТребованиеНакладнаяМатериалы
                   |    ГДЕ
                   |        ТребованиеНакладнаяМатериалы.Счет = &Счет
                   |        И ТребованиеНакладнаяМатериалы.Ссылка = &Ссылка) КАК НоменклатураДокументаПо43
                   |        ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ЮИ_СебестоимостьПродукции.СрезПоследних(&Период, Регистратор = &Ссылка) КАК ЮИ_СебестоимостьПродукцииСрезПоследних
                   |        ПО НоменклатураДокументаПо43.Номенклатура = ЮИ_СебестоимостьПродукцииСрезПоследних.Номенклатура
                   |            И НоменклатураДокументаПо43.Партия = ЮИ_СебестоимостьПродукцииСрезПоследних.Партия
                   |            И НоменклатураДокументаПо43.Склад = ЮИ_СебестоимостьПродукцииСрезПоследних.Склад
                   |            И НоменклатураДокументаПо43.Счет = ЮИ_СебестоимостьПродукцииСрезПоследних.Счет";
2 treor
 
26.07.18
12:15
(1) сори, код с ошибкой исправленный:

ВЫБРАТЬ
    НоменклатураДокументаПо43.Счет,
    НоменклатураДокументаПо43.Склад,
    НоменклатураДокументаПо43.Номенклатура,
    НоменклатураДокументаПо43.Партия,
    НоменклатураДокументаПо43.Количество,
    ЮИ_СебестоимостьПродукцииСрезПоследних.Цена
ИЗ
    (ВЫБРАТЬ
        ТребованиеНакладнаяМатериалы.Счет КАК Счет,
        ТребованиеНакладнаяМатериалы.Ссылка.Склад КАК Склад,
        ТребованиеНакладнаяМатериалы.Номенклатура КАК Номенклатура,
        ТребованиеНакладнаяМатериалы.Партия КАК Партия,
        ТребованиеНакладнаяМатериалы.Количество КАК Количество
    ИЗ
        Документ.ТребованиеНакладная.Материалы КАК ТребованиеНакладнаяМатериалы
    ГДЕ
        ТребованиеНакладнаяМатериалы.Счет = &Счет
        И ТребованиеНакладнаяМатериалы.Ссылка = &Ссылка) КАК НоменклатураДокументаПо43
        ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ЮИ_СебестоимостьПродукции.СрезПоследних(&Период, ) КАК ЮИ_СебестоимостьПродукцииСрезПоследних
        ПО НоменклатураДокументаПо43.Номенклатура = ЮИ_СебестоимостьПродукцииСрезПоследних.Номенклатура
            И НоменклатураДокументаПо43.Партия = ЮИ_СебестоимостьПродукцииСрезПоследних.Партия
            И НоменклатураДокументаПо43.Склад = ЮИ_СебестоимостьПродукцииСрезПоследних.Склад
            И НоменклатураДокументаПо43.Счет = ЮИ_СебестоимостьПродукцииСрезПоследних.Счет
3 Малыш Джон
 
26.07.18
12:18
1)перетащи в ВТ выборку из табчасти
2)предварительно сделай отбор в параметрах среза последнего:
(Номенклатура, Партия, Склад, Счет) В ( ВЫБРАТЬ Номенклатура, Партия, Склад, Счет Из ВТ)
3) соедини ВТ и срез
4 treor
 
26.07.18
12:21
(3) спасибо, попробую