Заказы на доработку 1С (сервис удаленной работы)

Хранилище

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

Здравствуйте, гость ( Вход | Зарегистрироваться )



> Как оптимизировать запрос с разными условиями (ГДЕ)          
logist Подменю пользователя
сообщение 19.03.12, 21:12
Сообщение #1

Про1С-ник
Иконка группы
Квалифицированный бухгалтерГений телепатии и социального моделированияЗа заслуги на форуме в 2010 годуМодератору Про1С (за заслуги в 2011 году)
Группа: Местный
Сообщений: 9564
Из: Kharkiv, UA
Спасибо сказали: 2539 раз
Рейтинг: 0

Есть запрос у которого может быть от 1-го до 4-х условий. Как составить текст раздела ГДЕ?


Signature
Личные бесплатные консультации не даю, для этого есть форум!

Ardi Подменю пользователя
сообщение 19.03.12, 21:19
Сообщение #2

Живет на форуме
***********
Гений телепатии и социального моделирования
Группа: Пользователи
Сообщений: 4121
Из: Киев
Спасибо сказали: 957 раз
Рейтинг: 0

Это запрос к конкретному типу объекта или к абстрактно-теоретическому?


Signature
Услуги 1С программиста 8.2, 7.7 (Плохо, дорого, очередь). Киев.

Vofka Подменю пользователя
сообщение 19.03.12, 21:20
Сообщение #3

У нас здесь своя атмосфера...
***********
Группа: Основатель
Сообщений: 14050
Из: Киев
Спасибо сказали: 4612 раз
Рейтинг: 3748.8

На примере какого-то кода можно показать идею?

logist Подменю пользователя
сообщение 19.03.12, 21:28
Сообщение #4

Про1С-ник
Иконка группы
Квалифицированный бухгалтерГений телепатии и социального моделированияЗа заслуги на форуме в 2010 годуМодератору Про1С (за заслуги в 2011 году)
Группа: Местный
Сообщений: 9564
Из: Kharkiv, UA
Спасибо сказали: 2539 раз
Рейтинг: 0

ВЫБРАТЬ
                   |    Резерв.Номенклатура,
                   |    Резерв.Контрагент,
                   |    Резерв.Подразделение,
                   |    Резерв.ТипРезерва,
                   |    Резерв.КоличествоОстаток КАК Количество
                   |ИЗ
                   |    РегистрНакопления.Резерв.Остатки КАК Резерв
                   |ГДЕ
                   |    Резерв.Номенклатура = &Номенклатура
                   |    И Резерв.Контрагент = &Контрагент
                   |    И Резерв.Подразделение = &Подразделение
                   |    И Резерв.ТипРезерва = &ТипРезерва


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


Signature
Личные бесплатные консультации не даю, для этого есть форум!

Ardi Подменю пользователя
сообщение 19.03.12, 21:30
Сообщение #5

Живет на форуме
***********
Гений телепатии и социального моделирования
Группа: Пользователи
Сообщений: 4121
Из: Киев
Спасибо сказали: 957 раз
Рейтинг: 0

Во первых нужно использовать не Где а параметры виртуальной таблицы.


Signature
Услуги 1С программиста 8.2, 7.7 (Плохо, дорого, очередь). Киев.

logist Подменю пользователя
сообщение 19.03.12, 21:33
Сообщение #6

Про1С-ник
Иконка группы
Квалифицированный бухгалтерГений телепатии и социального моделированияЗа заслуги на форуме в 2010 годуМодератору Про1С (за заслуги в 2011 году)
Группа: Местный
Сообщений: 9564
Из: Kharkiv, UA
Спасибо сказали: 2539 раз
Рейтинг: 0

Цитата(Ardi @ 19.03.12, 21:30) *
Во первых нужно использовать не Где а параметры виртуальной таблицы.

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


Signature
Личные бесплатные консультации не даю, для этого есть форум!

Ardi Подменю пользователя
сообщение 19.03.12, 21:37
Сообщение #7

Живет на форуме
***********
Гений телепатии и социального моделирования
Группа: Пользователи
Сообщений: 4121
Из: Киев
Спасибо сказали: 957 раз
Рейтинг: 0

Иначе это нереальный быдлокодинг.

тУсловие = "";
Если не ВыбНоменклатура.Пустая() Тогда
тУсловие = тУсловие + ?(тУсловие="",""," и ")+" Резерв.Номенклатура = &Номенклатура ";
КонецЕсли;
Если не ВыбКонтрагент.Пустая() Тогда
тУсловие = тУсловие + ?(тУсловие="",""," и ")+" Резерв.Контрагент = &Контрагент ";
КонецЕсли;


....
                   |    Резерв.Номенклатура,
                   |    Резерв.Контрагент,
                   |    Резерв.Подразделение,
                   |    Резерв.ТипРезерва,
                   |    Резерв.КоличествоОстаток КАК Количество
                   |ИЗ
                   |    РегистрНакопления.Резерв.Остатки КАК Резерв"
+?(тУсловие="",""," Где ")+тУсловие;


Сообщение отредактировал Ardi - 19.03.12, 21:38


Signature
Услуги 1С программиста 8.2, 7.7 (Плохо, дорого, очередь). Киев.

Спасибо сказали: logist,

logist Подменю пользователя
сообщение 19.03.12, 22:05
Сообщение #8

Про1С-ник
Иконка группы
Квалифицированный бухгалтерГений телепатии и социального моделированияЗа заслуги на форуме в 2010 годуМодератору Про1С (за заслуги в 2011 году)
Группа: Местный
Сообщений: 9564
Из: Kharkiv, UA
Спасибо сказали: 2539 раз
Рейтинг: 0

Ardi мега-спасибо!


Signature
Личные бесплатные консультации не даю, для этого есть форум!

endru Подменю пользователя
сообщение 20.03.12, 13:15
Сообщение #9

Говорящий
Иконка группы
Группа: Местный
Сообщений: 90
Из: Киев
Спасибо сказали: 15 раз
Рейтинг: 0

дабы не копипастить,


[необходимо зарегистрироваться для просмотра ссылки]

Не нашли ответа на свой вопрос?
Зарегистрируйтесь и задайте новый вопрос.


Ответить Новая тема
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 

RSS Текстовая версия Сейчас: 15.06.25, 1:55
1С Предприятие 8.3, 1С Предприятие 8.2, 1С Предприятие 8.1, 1С Предприятие 8.0, 1С Предприятие 7.7, Литература 1С, Общие вопросы по администрированию 1С, Методическая поддержка 1С - всё в одном месте: на Украинском 1С форуме!