Имя: Пароль:
1C
1C 7.7
v7: Запрос с флагом выбора
0 Oksana35
 
22.05.24
11:39
Добрый день. Первый раз столкнулась с запросами в 1С 7.7. Помогите пожалуйста с кодом. На форме есть 3 флага выбора: ДокументыРБ, ДокументыЗагран и ДокументыТрансп.
Как при нажатии на определенный флаг выводить документ?
У меня есть запрос только для вывода всех документов сразу.


Процедура Сформировать()

Запрос = СоздатьОбъект("Запрос");

ТекстЗапроса =
"//{{ЗАПРОС(Сформировать)    
|Период с ДатаС по ДатаПо;
|ОбрабатыватьДокументы все;

|Док = Документ.КомандировкиРБ.ТекущийДокумент,
|      Документ.КомандировкиЗагран.ТекущийДокумент,
|      Документ.КомандировкиТрансп.ТекущийДокумент;
|
|ДатаРег = Документ.КомандировкиРБ.ДатаРегКомандир,  
|          Документ.КомандировкиЗагран.ДатаРегКомандир,  
|          Документ.КомандировкиТрансп.ДатаРегКомандир;
|
|ФИО = Документ.КомандировкиРБ.ФИО,
|      Документ.КомандировкиЗагран.ФИО,
|      Документ.КомандировкиТрансп.ФИО;
|
|Табельный = Документ.КомандировкиРБ.Табельный,
|            Документ.КомандировкиЗагран.Табельный,
|            Документ.КомандировкиТрансп.Табельный;
|
|Должность = Документ.КомандировкиРБ.Профессия,
|            Документ.КомандировкиЗагран.Профессия,
|            Документ.КомандировкиТрансп.Профессия;
|
|Страны = Документ.КомандировкиРБ.КодСтраны,
|         Документ.КомандировкиЗагран.КодСтраны,
|         Документ.КомандировкиТрансп.КодСтраны;
|
|Город = Документ.КомандировкиРБ.КодГорода,
|        Документ.КомандировкиЗагран.КодГорода,
|        Документ.КомандировкиТрансп.КодГорода;
|
|ГруппаЦелей = Документ.КомандировкиРБ.ГруппаЦелей,
|              Документ.КомандировкиЗагран.ГруппаЦелей,
|              Документ.КомандировкиТрансп.ГруппаЦелей;
|
|Цель = Документ.КомандировкиРБ.Цели,
|       Документ.КомандировкиЗагран.Цели,
|       Документ.КомандировкиТрансп.Цели;
|
|Начало = Документ.КомандировкиРБ.ДатаНачКомандир,
|         Документ.КомандировкиЗагран.ДатаНачКомандир,
|         Документ.КомандировкиТрансп.ДатаНачКомандир;
|
|Конец = Документ.КомандировкиРБ.ДатаКонКомандир,
|        Документ.КомандировкиЗагран.ДатаКонКомандир,
|        Документ.КомандировкиТрансп.ДатаКонКомандир;
|
|ДатаДок = Документ.КомандировкиРБ.ДатаДок,
|          Документ.КомандировкиЗагран.ДатаДок,
|          Документ.КомандировкиТрансп.ДатаДок;
|
|Группировка Док все;
|"//}}ЗАПРОС
;    

    Если Запрос.Выполнить(ТекстЗапроса) = 0 Тогда
        Возврат;
    КонецЕсли;
    

    Таб = СоздатьОбъект("Таблица");
    Таб.ИсходнаяТаблица("Таблица");
    Таб.ПовторятьПриПечатиСтроки(3,3);
    Таб.ВывестиСекцию("Заголовок");
    Таб.ВывестиСекцию("Шапка");
    
    
    Пока Запрос.Группировка() = 1 Цикл
        Таб.ВывестиСекцию("Строчка");
    КонецЦикла;


Таб.Показать();
КонецПроцедуры
1 Aswed
 
22.05.24
11:41
Клюшки!!!
В 24 году!!!
Обалдеть!!!!
2 Волшебник
 
22.05.24
11:42
Боты учатся на клюшках
3 Builder
 
22.05.24
11:43
Точно так-же как и в 8-ке, по условию менять текст запроса.
4 Aswed
 
22.05.24
11:43
По САБЖу. Переписать запрос по трём разным документам и в зависимости от того какая галка стоит тот текст запроса и подсовывать.

ИМХО быстрее будет чем вспоминать/разбираться с запросами в клюшках.
5 Builder
 
22.05.24
11:43
(1) 8-ка еще сырая же.
А клюшки живее всех живых :)
6 Kigo_Kigo
 
22.05.24
12:23
(4) Или формировать запрос тесктом в зависимоти от галок
тип
если КомандировкиРБ = 1 тогда
Запрос = Запрос + "|Док = Документ.КомандировкиРБ.ТекущийДокумент,"
КонецЕсли;
Если  КомандировкиЗагран = 1 Тогда
Запрос = Запрос + "|      Документ.КомандировкиЗагран.ТекущийДокумент,"


и так далее, можно оптимизировать, но мне лень, пусть автор сам озгами шевелит
7 Builder
 
22.05.24
12:32
(6) Какой автор, тут ИИ и боты обучаются ежедневно :)
8 АгентБезопасной Нацио
 
22.05.24
12:47
(7) а что, боты уже способны написать подобное (0)?
(1) Беларусь, судя по всему... там клюшки судя по темам, еще более чем живы.
(3)(4)(6) проще получать всё вместе, а выводить в зависимости от установленных флажков.
9 Fedor-1971
 
22.05.24
13:16
(0) Добавь Условие(док.Вид() = "КомандировкиРБ") и т.д., можешь комбинировать через ИЛИ то, что в скобках
10 GrayS19
 
23.05.24
13:35
ого название поля - "ГруппаЦелей"
11 Злопчинский
 
23.05.24
15:40
(0) если запрос нужен по какому-то одному из флагов - то надо делать не флаги (можно выбрать два флага, например), а радио-баттон (переключатель), который позволяет выбрать одно из трёх.
.
А ещё правильней - на форму выпадающий список выбора нужного вида документа, и тогда формирование текста запроса будет без всяких много условных если, тупо в текст запроса подставляешь нужный вид документа и всё.
12 Duke1C
 
28.05.24
18:19
(11) А если надо совместить?
В смысле запрос по 2-м или 3-м видам докУментов?
13 АгентБезопасной Нацио
 
28.05.24
18:24
(12) см (8)
14 Duke1C
 
28.05.24
18:37
(13) Упс, пардон, невниматочно прочитал заголовок темы))
Программист всегда исправляет последнюю ошибку.