Два вида документов из регистра накопления

1. user1509642 10.04.23 15:42 Сейчас в теме
Есть регистр накопления, регистратором у него могут быть десять видов документов. Как лучше в запросе выбрать данные только по двум видам документов?
По теме из базы знаний
Ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. nomad_irk 80 10.04.23 15:59 Сейчас в теме
(1)
ВЫБРАТЬ
    Поле1,
    Поле2,
    ....
ИЗ
     Таблица
ГДЕ
      Регистратор Ссылка Документ.<МойДокумент1>

ОБЪЕДИНИТЬ ВСЕ

ВЫБРАТЬ
    Поле1,
    Поле2,
    ....
ИЗ
     Таблица
ГДЕ
      Регистратор Ссылка Документ.<МойДокумент2>
Показать
3. user5300 1075 10.04.23 16:01 Сейчас в теме
(1)
Где (Регистр.Регистратор ССЫЛКА Документ.Заказ ИЛИ Регистр.Регистратор ССЫЛКА Документ.Продажи)

5. DesertPunk 10.04.23 16:26 Сейчас в теме
(1)Если хочешь жестко указать виды документов то так:
ВЫБРАТЬ
    МатериалыНаОбъекте.Номенклатура КАК Номенклатура,
    МатериалыНаОбъекте.Количество КАК Количество
ИЗ
    РегистрНакопления.МатериалыНаОбъекте КАК МатериалыНаОбъекте
ГДЕ
    (ТИПЗНАЧЕНИЯ(МатериалыНаОбъекте.Регистратор) = ТИП(Документ.ПоступлениеМатериала)
            ИЛИ ТИПЗНАЧЕНИЯ(МатериалыНаОбъекте.Регистратор) = ТИП(Документ.ВыдачаВПроизводство))

Показать
4. user1509642 10.04.23 16:23 Сейчас в теме
(3) Подскажите пожалуйста, слышал рекомендацию стараться не использовать ИЛИ.
6. Said-We 10.04.23 16:50 Сейчас в теме
(4)
Подскажите пожалуйста, слышал рекомендацию стараться не использовать ИЛИ.

Это не тот случай.
В варианте (2) одну таблицу дважды выбирают и дважды по ней пробегают.
Если таблица одна и та же, то пробегать надо стремится меньшее количество раз.

А вместо ИЛИ по одному и тому же полю, если можно пишут "т.Поле IN (...)". Как минимум так код читабельнее.
7. nomad_irk 80 10.04.23 16:59 Сейчас в теме
(6)нельзя сделать условие Ссылка В (), а типЗначения работает с 8.3.какой-то там версии только.
8. Said-We 10.04.23 17:50 Сейчас в теме
(7) Я же написал. Где нельзя используют ИЛИ.
9. nomad_irk 80 10.04.23 19:49 Сейчас в теме
(8)Оф. позиция 1С по этому поводу не менялась.
Остается не понятным, индексированы ли типы значений в таблицах
В данном случае, действительно правильно использовать ИЛИ
Прикрепленные файлы:
10. Said-We 10.04.23 22:19 Сейчас в теме
(9) 1С много чего пишет. Есть список ошибок при сдаче на сертификат по платформе.
В частности нельзя результат запрос выгружать в ТЗ, чтобы перебрать значения, которые получились в результате выполнения запрос, для вывода например. Необходимо обходить выборками запроса. За это снимают баллы и экзамен считай не сдал.

Смотрим типовые, особенно последние - чего там только нет. Выгрузки в ТЗ сплошь и рядом.

На самом деле фиолетово что 1С и когда пишет. Нужно смотреть на скорость выполнения, в каждом конкретном случае, на тех данных, на которых пишется и на той платформе, которая используется. Что быстрее отрабатывает, то и оставлять.

Для запросов СУБД быстрее будет без объединения.
Там где нельзя IN() рисуем ИЛИ. По сути это тоже самое.
Оставьте свое сообщение

Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот