Имя: Пароль:
1C
 
Отбор 1с 8.3
,
0 Casper211
 
18.03.16
14:08
Добрый день! Я сделал запрос для регистра сведений в отдельной внешней обработке.

Запрос.Текст =
                "ВЫБРАТЬ
                |    Доставка.Контрагент,
                |    Доставка.ЗаказПокупателя,
                |    Доставка.Перевозчик,
                |    Доставка.КонтактноеЛицоПолучателя,
                |    Доставка.ТелефонПолучателя,
                |    Доставка.СтатусДоставки,
                |    Доставка.ДатаСтатуса,
                |    Доставка.НомерТТН,
                |    Доставка.Периодд
                |ИЗ
                |    РегистрСведений.Доставка КАК Доставка

И результат записываю в табличное поле на форме. Но мне нужно сделать несколько отборов. Как это сделать? Я вставлял параметры, если это было 2 например то делал так:

|ГДЕ
|    Доставка.Периодд МЕЖДУ НАЧАЛОПЕРИОДА(&ДатаВибору, ДЕНЬ) И КОНЕЦПЕРИОДА(&ДатаВибору, ДЕНЬ)
|    И Доставка.Перевозчик В (&Перевозчик)";    

А в форме вывел 2 поля ввода: Дата и Перевозчик. И я сделал так, что в зависимости выбранное значение или нет менялся запрос где были другие параметры, то есть сделал 3 функции где было 3 разные запросы. Но если отбор будет для 10 колонок это тогда что-то тупо получается. Как вообще правильно и лекше делается отбор для запроса?
Спасибо за понимание, помощь и адекватность !!!
1 Timon1405
 
18.03.16
14:12
воу-воу полекше там с отборами
2 lubitelxml
 
18.03.16
14:13
ДатаВибору - это мощно. Есть ДатаВацапу? ))
3 Casper211
 
18.03.16
14:14
(1) в смысле? объясните пожалуйста
4 aleks_default
 
18.03.16
14:18
платформа какая? УФ или ОФ?
5 Casper211
 
18.03.16
14:18
(4) оф
6 aleks_default
 
18.03.16
14:18
а все увидел.
почитай про динамические писки чтоле
7 aleks_default
 
18.03.16
14:19
:)
Списки, конечно же
8 lera01
 
18.03.16
14:20
ОФ же!
9 lera01
 
18.03.16
14:21
Автор, используй построитель запроса и извращайся с отборами как хочешь
10 aleks_default
 
18.03.16
14:21
ОФ на 8.3? вы в каком веке живете?
11 Живой Ископаемый
 
18.03.16
14:22
2(8) Пусть не будут ОФ. [експектопатронум!]
12 Casper211
 
18.03.16
15:05
(9) спс.
Вот так делаю

ПостроительЗапроса = Новый ПостроительЗапроса;
ПостроительЗапроса.Текст ="ВЫБРАТЬ
    |    Доставка.Контрагент,
    |    Доставка.ЗаказПокупателя,
    |    Доставка.Перевозчик,
    |    Доставка.КонтактноеЛицоПолучателя,
    |    Доставка.ТелефонПолучателя,
    |    Доставка.СтатусДоставки,
    |    Доставка.ДатаСтатуса,
    |    Доставка.НомерТТН,
    |    Доставка.Периодд
    |ИЗ
    |    РегистрСведений.Доставка КАК Доставка";    
    
    Отбор = ПостроительЗапроса.Отбор;
    Отбор.Добавить(...
///
Вот здесь нужно отбор сделать да ?? а как его сделать если у меня те параметры, по которым нужно сделать отбор в поле формы.
///    
    
    ПостроительЗапроса.ЗаполнитьНастройки();
    ПостроительЗапроса.Выполнить();
    Результат = ПостроительЗапроса.Результат.Выгрузить();
13 Casper211
 
18.03.16
15:09
Или лучше будет вставить ТабличноеПоле, тип значения "Отбор"??
14 Casper211
 
18.03.16
15:22
ПостроительЗапроса = Новый ПостроительЗапроса;
ПостроительЗапроса.Текст ="ВЫБРАТЬ
    |    Доставка.Контрагент,
    |    Доставка.ЗаказПокупателя,
    |    Доставка.Перевозчик,
    |    Доставка.КонтактноеЛицоПолучателя,
    |    Доставка.ТелефонПолучателя,
    |    Доставка.СтатусДоставки,
    |    Доставка.ДатаСтатуса,
    |    Доставка.НомерТТН,
    |    Доставка.Периодд
    |ИЗ
    |    РегистрСведений.Доставка КАК Доставка";    
    
    Отбор = ПостроительЗапроса.Отбор;
    Отбор.УстановитьДоступныеПоля(ТабличноеПолеОтбор.ПолучитьДоступныеПоля());
    Для каждого СтрокаОтборов  Из ТабличноеПолеОтбор Цикл
        ТекстОтбора = Отбор.Добавить(СтрокаОтборов.Представление);
        ТекстОтбора.Использование = СтрокаОтборов.Использование;
        ТекстОтбора.ВидСравнения = СтрокаОтборов.ВидСравнения;
            ТекстОтбора.Значение = СтрокаОтборов.Значение;
        ТекстОтбора.ЗначениеС = СтрокаОтборов.ЗначениеС;
        ТекстОтбора.ЗначениеПО = СтрокаОтборов.ЗначениеПо;
       КонецЦикла;
    
    
    ПостроительЗапроса.ЗаполнитьНастройки();
    ПостроительЗапроса.Выполнить();
    Результат = ПостроительЗапроса.Результат.Выгрузить();


Но при открытии табличное поле пустое. Что надо сделать, чтобы добавлять отборы? возможно еще что-то нужно сделать? подскажите пожалуйста
15 Casper211
 
18.03.16
15:27
нужно создать табличные части в обработке и присоединить к полю?
16 Casper211
 
18.03.16
15:29
и создать реквизиты табличных частях?
17 Casper211
 
18.03.16
15:32
подскажите в каком направлении двигаться или где прочитать, и увидеть пример((
18 lera01
 
18.03.16
15:50
Сделай обработку с таким запросом. В конструкторе выбери чтоб использовать построитель отчета, вкладку Построитель тоже заполни. В полученной обработке поиграй с отборами, группировками и т.д.  Когда результат тебя удовлетворит, можешь убрать вывод в табличный документ, вместо этого выгружать в таблицу значений или дерево, например. Понаделай на форме реквизитов, например, табличное поле и заполняй его из полученной таблицы значений.
19 Casper211
 
18.03.16
16:17
(18) Я сделал обработку сделал запрос, сделал на форме табличное поле типа "Отбор", но оно пустое и ничего туда добавить нельзя, в этом и проблема.
и вообще я запутался ((( :( Ех.