Форум 1С
Программистам, бухгалтерам, администраторам, пользователям
Задай вопрос - получи решение проблемы
03 дек 2024, 20:19

Запрос к документу с вложенной таблицей в СКД

Автор Goodest81, 25 сен 2024, 09:42

0 Пользователей и 1 гость просматривают эту тему.

LexaK

Goodest81, вот этот код
    ВЫБОР
        КОГДА ОтгрузкаТМЦОбороты.КарточкаДокумента.ДокументРегистратор ССЫЛКА Документ.РасходнаяНакладнаяТМЦ
            ТОГДА ВЫРАЗИТЬ(ОтгрузкаТМЦОбороты.КарточкаДокумента.ДокументРегистратор КАК Документ.РасходнаяНакладнаяТМЦ).Дата
    КОНЕЦ КАК ДатаОтгрузки,
    ВЫБОР
        КОГДА ОтгрузкаТМЦОбороты.КарточкаДокумента.ДокументРегистратор ССЫЛКА Документ.РасходнаяНакладнаяТМЦ
            ТОГДА ВЫРАЗИТЬ(ОтгрузкаТМЦОбороты.КарточкаДокумента.ДокументРегистратор КАК Документ.РасходнаяНакладнаяТМЦ).Номер
    КОНЕЦ КАК НомерТТН,
    ВЫБОР
        КОГДА ОтгрузкаТМЦОбороты.КарточкаДокумента.ДокументРегистратор ССЫЛКА Документ.РасходнаяНакладнаяТМЦ
            ТОГДА ВЫРАЗИТЬ(ОтгрузкаТМЦОбороты.КарточкаДокумента.ДокументРегистратор КАК Документ.РасходнаяНакладнаяТМЦ).СуммаВсегоДокумента
    КОНЕЦ КАК СуммаВсегоДокумента

замените на этот

ДокТМЦ.Дата как ДатаОтгрузки,
ДокТМЦ.Номер как НомерТТН,
ДокТМЦ.СуммаВсегоДокумента как СуммаВсегоДокумента,


гораздо проще и понятнее

ДокТМЦ - получить так

ИЗ
    РегистрНакопления.ОтгрузкаТМЦ.Обороты(&НачалоПериода, &КонецПериода, , ) КАК ОтгрузкаТМЦОбороты
левое соединение  Документ.РасходнаяНакладнаяТМЦ ДокТМЦ
по  ОтгрузкаТМЦОбороты.КарточкаДокумента.ДокументРегистратор = ДокТМЦ.Ссылка
если помогло нажмите: Спасибо!

Максим75

Goodest81, выберите периодичность у виртуальной таблицы  Регистратор и у Вас станет доступный регистратор.
тогда прямо с регистратора вытягиваете Номер, Дату, Сумму и прочее, не надо будет извращаться с Выразить.
Только условие накладывайте что Регистратор Ссылка Документ.РасходнаяНакладнаяТМЦ
и все.

ну или все это кино делайте с ОтгрузкаТМЦОбороты.КарточкаДокумента.ДокументРегистратор Ссылка Документ.РасходнаяНакладнаяТМЦ

Goodest81

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

Максим75

Goodest81, так это не работает.
Вам надо соединить с табличной частью документа, связь делать по регистратору и номенклатуре.
можно заменить то соединение, что есть на соединение с табличной частью, а сам документ будет доступен по ссылке.

Goodest81

Максим75,
Я взял 3 таблицы - ДокТМЦ(Документ.РасходнаяНакладнаяТМЦ), РегистрНакопления.ОтгрузкаТМЦ.Обороты, Документ.РасходнаяНакладнаяТМЦ.Номенклатура
Соединил по ссылкам.
Поясню, почему столько таблиц, мне нужен отчет, в котором есть цена себестоимость, цена розничная и различные данные по документу.
В регистре нет цены розничной, есть себестоимость. Почему так - хз. Эта цена есть в документе во вложенной таблице.
Я бы использовал просто документ, но в нем идет не та сумма, т.к. используется курс валют, который меняется,т.е. документ создали - курс валюты один, когда провели - курс валюты уже изменился. Я первоначально использовал документ (начало темы, но потом столкнулся, с тем, что в проведенном документе курс другой, и этот курс есть только в регистре).
Вопрос - такой запрос верный?
Что-то как-то сильно коряво на глаз. Или правильнее было бы пользоваться временными таблицами и как? т.е. вначале выбрать из регистра данные, затем из Расходной накладной, затем из Номенклатуры в расходной накладной, потом все обьединить по ссылкам?
В параметрах виртуальной таблицы регистратора я включил периодичность Регистратор

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

Теги:

Похожие темы (5)

Рейтинг@Mail.ru

Поиск