Упростить выражение в запросе

1. ciddex 18.03.19 10:19 Сейчас в теме
Добрый день! Подскажите, есть ли способ упростить данное выражение
ВыручкаИСебестоимостьПродаж.Регистратор ССЫЛКА Документ.РеализацияТоваровУслуг ИЛИ ВыручкаИСебестоимостьПродаж.Регистратор ССЫЛКА Документ.АктВыполненныхРабот ИЛИ ВыручкаИСебестоимостьПродаж.Регистратор ССЫЛКА Документ.ОтчетОРозничныхПродажах
в запросе 1с? Пытался через оператор "В", начинает требовать имя таблицы
По теме из базы знаний
Ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
4. alex.msk 34 18.03.19 10:31 Сейчас в теме
(1)
ВЫБРАТЬ
	ВыручкаИСебестоимостьПродаж.Период КАК Период,
	ВыручкаИСебестоимостьПродаж.Регистратор КАК Регистратор
ИЗ
	РегистрНакопления.ВыручкаИСебестоимостьПродаж КАК ВыручкаИСебестоимостьПродаж
ГДЕ
	ТИПЗНАЧЕНИЯ(ВыручкаИСебестоимостьПродаж.Регистратор) В (ТИП(Документ.РеализацияТоваровУслуг), ТИП(Документ.АктВыполненныхРабот))
9. DJDUH 17 18.03.19 11:00 Сейчас в теме
(1)
ИЛИ
лучше делать через
Объединить
.

три подзапроса в оди по разным регистраторам.
11. ciddex 18.03.19 11:02 Сейчас в теме
(9)
проса в оди по разным регистраторам.
Не совсем понял ваш ответ..
13. YannikAlx 27 18.03.19 11:10 Сейчас в теме
(11) Что ж тут не понять, посмотрите ссылку из (12)
14. ciddex 18.03.19 12:02 Сейчас в теме
(13) Все, понял о чем вы говорите. Никогда не использовал объединить, т.к. это нецелесообразно использовать в большом запросе. Данное выражение используется не в условии "ГДЕ" а в выборке "ВЫБОР КОГДА ТОГДА"
18. Indgo 414 19.03.19 16:25 Сейчас в теме
2. YannikAlx 27 18.03.19 10:29 Сейчас в теме
Не ясно в чем вы видите сложность этого выражения?
Оно предельно просто.
У вас какая цель?
Уменьшить количество букв в запросе - так это не упрощение, это скорее усложнение...

Цель упрощения должна быть рассмотрена с позиции увеличения быстродействия.
alex-l19041; +1 1 Ответить
3. SedovSU@mail.ru 298 18.03.19 10:30 Сейчас в теме
Попробуйте через типы значения. Например, сделайте массив из типов значений Массив.Добавить(Тип("ДокументСсылка.РеализацияТоваровУслуг")). А Запросе напишите ТИПЗНАЧЕНИЯ(ВыручкаИСебестоимостьПродаж.Регистратор) В (&Массив).

Не проверял, может не будет работать. А зачем вам упрощать, выражение вроде не так сложно
5. YannikAlx 27 18.03.19 10:33 Сейчас в теме
(3) А просто побаловаться автор решил...
Так работает же замечательно, а вот намудришь и уже будет чем заняться.... ))))
6. ciddex 18.03.19 10:37 Сейчас в теме
(5) Работает все конечно же, но это повторяется не один раз в коде к примеру, а несколько. И прописывать каждый раз целый текст, если можно упростить это. Я вообще люблю все упростить, чтобы код был не громоздким. Да и для саморазвития хотел узнать
7. SedovSU@mail.ru 298 18.03.19 10:47 Сейчас в теме
(6) Ну как вариант, возьмите все во вложенный запрос, в нем сделайте признак, который бы определял ваше условие выбора, Например

ВЫБОР КОГДА 
      ВыручкаИСебестоимостьПродаж.Регистратор ССЫЛКА Документ.РеализацияТоваровУслуг
      ИЛИ ВыручкаИСебестоимостьПродаж.Регистратор ССЫЛКА Документ.АктВыполненныхРабот
      ИЛИ ВыручкаИСебестоимостьПродаж.Регистратор ССЫЛКА Документ.ОтчетОРозничныхПродажах
         ТОГДА ИСТИНА
ИНАЧЕ ЛОЖЬ КОНЕЦ КАК КакойТоПризнак.


Далее из вложенного запроса оперируйте данным признаком. Можно так сделать, как вариант
8. YannikAlx 27 18.03.19 10:55 Сейчас в теме
(6) не я сказал - "простота - сестра таланта"
Многострочность - это не сложность - и понять ее очень легко, особенно если писать в столбик а не в строчку. А уж выполняться так вообще будет в лет...
Не ищите запутанных способов написания, не забывайте , что оптимизатор может совершенно не поянть чего вы там напридумывали и превратит простую схему в сплошные тормоза.
Сталкивался сам когда время исполнения запроса , казалось бы одного и того же отличалось в десятки раз....
10. ciddex 18.03.19 11:02 Сейчас в теме
(8) Подскажи пожалуйста, если заешь. Вот например эту строчку написал след. образом
НЕ Партнеры.Ссылка В (ЗНАЧЕНИЕ(Справочник.Партнеры.РозничныйПокупатель), ЗНАЧЕНИЕ(Справочник.Партнеры.НашеПредприятие), ЗНАЧЕНИЕ(Справочник.Партнеры.НеизвестныйПартнер)
Не писал каждый раз
Партнеры.Ссылка = ЗНАЧЕНИЕ(Справочник.Партнеры.РозничныйПокупатель)
Нельзя ли данным способом как-то написать и тот запрос, который спрашивал выше?
12. YannikAlx 27 18.03.19 11:09 Сейчас в теме
(10) Конструкции ИЛИ применять стоит вообще осторожно
https://stimul.kiev.ua/materialy.htm?a=ispolzovanie_logicheskogo_ili_v_usloviyakh_zaprosov

Вот и (9) рекомендует...
Лучше написать лишний гектар текста запроса, который выполнится за доли секунды...
15. ciddex 18.03.19 12:04 Сейчас в теме
(12) Это выражение используется не в условии "ГДЕ", а в выборке "КОГДА ТОГДА". Плюс сам запрос огромный, его невозможно так разбить через объединение, но если даже получится, то там потом концов не найти
16. meriferi 19.03.19 07:17 Сейчас в теме
ТИПЗНАЧЕНИЯ(ДвиженияДенежныеСредстваКонтрагент.Регистратор) = ТИП(Документ.ПоступлениеБезналичныхДенежныхСредств)
17. ciddex 19.03.19 09:12 Сейчас в теме
Еще один вопрос. Связал Регистратор с документом "отчет о розничных продажах"
ВыручкаИСебестоимостьПродаж.Регистратор ССЫЛКА Документ.ОтчетОРозничныхПродажах
Можно его вместо отчета о розничных продаж связать с чеками? Когда пытаюсь связать тоже через ССЫЛКА Документ.ЧекККМ выдает ошибку Несовместимые типы "ССЫЛКА"
И Регистратор <<?>>ССЫЛКА Документ.ЧекККМ
Оставьте свое сообщение

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