Имя: Пароль:
1C
 
Если То в Запросах
,
0 Dasvi
 
15.06.22
14:44
В общем, в форме есть галка Поиск по Городам , соответсвенно если она стоит то мы ищем по городам , если нет то нет
Сам поиск осуществляется так
Есть функция (УсловияЗапроса) в которой формируются условия запроса, в этой функции поиск по городам прописан так:
Текст = "";
        Если ПоискПоГородам Тогда
            Если ЗначениеЗаполнено(Города) Тогда
                Текст = Текст + ?(Текст = "", "", " И ") + "
                |            Субконто3.Город = &Город
                |                ";
                Запрос.УстановитьПараметр("Город", Города);
            КонецЕсли;
    КонецЕсли;
Возврат Текст;
И если с этим все просто и понятно , то с функцией которая формирует запрос к реализациям , где с помощью функции (УсловияЗапроса) идет подбор подходящих реализаций, из которых потом мы строим отчет
Например :
Выбрать
|   ГотоваяТабл.Город КАК Город,
ИЗ
Ну и там очень долгий путь Выбрать Из и тд
Суть в том что мне нужно добавить сюда условие, если ПоискПоГородам = Истина то мы Выбераем эти города , если нет то соответственно нет
Лазая на форумах нашел вот ето
|   Выбор Когда (ПоискПоГородам = Истина) Тогда (ГотоваяТабл.Город КАК Город,) но как и ожидалось не работает это так
Не судите строго, слез недавно с c# и сразу в 1С кинулся , и мне чет пока что совсем тяжко
1 patapum
 
15.06.22
14:47
Надо делать ПоискПоГородам параметром и передавать его в запрос. Обращаться &ПоискПоГородам. Ну, и скобки правильно расставить.
2 lodger
 
15.06.22
14:50
(0) в c# никаких субд и скл нету шоле?
3 Dasvi
 
15.06.22
14:52
(1) Спасибо сейчас попробую
4 Dasvi
 
15.06.22
14:54
(2) Есть конечно , та же SQLка , суть в том что в Шарпе я бы оформил это по другому , а тут уже готовый код фиксить надо
5 Максимка_
Космонавтом
 
15.06.22
14:55
Примерно так это работает:

"ВЫБРАТЬ
|    БизнесРегионы.Наименование КАК Наименование
|ИЗ
|    Справочник.БизнесРегионы КАК БизнесРегионы
|ГДЕ
|    ВЫБОР
|            КОГДА &ОтборПоГородам
|                ТОГДА БизнесРегионы.Город В (&Города)
|            ИНАЧЕ ИСТИНА
|        КОНЕЦ"
6 Выпрь
 
15.06.22
15:13
(5) такое лучше через построитель
7 Dasvi
 
15.06.22
15:17
(5) Спасибо суть в принципе уловил, осталось только под этот код подогнать) Надеюсь в будующем таких глупых вопрос будет куда меньше -_-
8 Kassern
 
15.06.22
15:23
(0) Есть несколько вариантов решения
1) в (5)
2) Подстановка текста в сам запрос
|+?(ОтборПоГородам,"ГДЕ БизнесРегионы.Город В (&Города)","");
3) Тоже самое что и 2 вариант, только параметром через СтрЗаменить()
| {ОтборПоГородам}

ТекстЗапроса=СтрЗаменить(ТекстЗапроса,"{ОтборПоГородам}","ГДЕ БизнесРегионы.Город В (&Города)");
4) Через построитель как написали в (6)
5) Через СКД, используя конструкцию {Условие}
9 Kassern
 
15.06.22
15:24
Удобно, когда первое условие статичное, тогда можно смело добавлять через "И ВашеУсловие", ГДЕ уже будет прописано.
10 Максимка_
Космонавтом
 
15.06.22
15:41
(6) я ваще за объектную модель xD
11 Dasvi
 
16.06.22
11:47
(8) Спасибо огромное) Выбрал 2ой Вариант тк как посчитал его более удобным в данной ситуевине)
Про СКД уже наслышан, как раз начну изучать ее после рабочей недели)Так как когда открыл все это стало тяжко) Только более-менее освоился в 1С ке и тут снова привет) Вторую неделю уже так
А так почитал про нее , штука вроде мировая , полезная , про все ее возможности не знаю, но скоро это и выясню