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

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

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

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

Goodest81

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



Максим75

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

все равно при транслятор запроса потом при выполнении это левое соединение сам сделает (но уже так сказать под капотом платформы).

Goodest81

Цитата: Максим75 от 25 сен 2024, 09:49Goodest81, можно даже без соединения с самим документом делать.
вот прямо РасходнаяНакладнаяТМЦНоменклатура.Ссылка - это и есть сам документ и уже через точку можно получать Контрагента, Дату и прочее

все равно при транслятор запроса потом при выполнении это левое соединение сам сделает (но уже так сказать под капотом платформы).
А какой из этих запросов будет меньше грузить сервер 1С мой или ваш? База 1С огромная

Максим75

Goodest81, вопрос не в том, огромная база или нет.
вопрос за какой период будет выборка. месяц, год, за весь период базы?
и сколько в среднем строк в табличной части. 10, 20, 100 тыщ?
да и вообще, что надо получить? думаю, что по регистрам можно это все получить, а там уже виртуальные таблицы и естественно выше скорость.
потому как сейчас обрабатываются все документы, даже непроведенные.

antoneus

Я бы еще убрал Контрагент.Наименование и оставил просто Контрагент - не нужно нам лишнее неявное соединение со справочником контрагентов.

Goodest81

Цитата: Максим75 от 25 сен 2024, 09:57Goodest81, вопрос не в том, огромная база или нет.
вопрос за какой период будет выборка. месяц, год, за весь период базы?
и сколько в среднем строк в табличной части. 10, 20, 100 тыщ?
да и вообще, что надо получить? думаю, что по регистрам можно это все получить, а там уже виртуальные таблицы и естественно выше скорость.
потому как сейчас обрабатываются все документы, даже непроведенные.
Могут и за год выбрать, за год около 2 тысяч расходных накладных, а начинается с 2017 года, в табличной части строк не много - до 10.

antoneus

2 тыщи, серьезно? Это же ни о чем вообще.

Максим75

Goodest81, та да, меньше 200 в месяц. вообще не особо грузить базу должны.

LexaK

Goodest81, очень не понятно, почему ВидТМЦ  вы берете из шапки документа а не из самих ТМЦ?
если помогло нажмите: Спасибо!

Goodest81

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

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

Теги:

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

Рейтинг@Mail.ru

Поиск