Как лучше реализовать отбор в построителе объединенного отчета? #266528


#0 by Гений 1С
Есть построитель, в котором используется примерно такой запрос: Выбрать  1 Как Вид дохода, .... Объединить ВСЕ Выбрать  2 Как Вид дохода, .... Объединить ВСЕ Выбрать  3 Как Вид дохода, .... Вопрос - нужно сделать отбор по виду дохода. По моему 8-ка такое не может - что то я проверил, не получается. Неужели вырезать куски запроса?
#1 by Гений 1С
Короче, излагаю более внятно. Выбрать 1 Как ВидДохода, .... {Выбрать ВидДохода, ....} Объединить ВСЕ Выбрать 2 Как ВидДохода, .... {Выбрать ВидДохода, ....} Объединить ВСЕ Выбрать 3 Как Вид дохода, .... {Выбрать ВидДохода, ....} Проверяю в отладчике. ВидДохода есть в Построитель.ДоступныеПоля. Но почему тогда другие поля добавляются, а это поле нет в коде: Например: Ну, сенсейи!
#2 by Гений 1С
Так, ладно, пляски с бубном дальше идут: После этого наконец-то ПостроительОтчета.Отбор.Добавить("ВидДохода"); сработал, но значения не выбираются, не могу понять, как инициализировать список значений.
#3 by zalexey
у построителя поля, которые должны быть в отборе, нужно указать на закладке "Условие"
#4 by zalexey
OFF: "Гений 1С" работал под руководством Волшебника или я что-то путаю? Или кого он взял тогда к себе?
#5 by Гений 1С
Нет, батенька, можно их не описывать в Условия, а добавить программно: ПостроительОтчета.Отбор.Добавить("ВидДохода"); Тоже мне знаток, называется! никогда я не работал под Волшебником. ;-)
#6 by Гений 1С
вопрос теперь стоит в том, как заполнить список доступных значениЙ!
#7 by zalexey
чтобы список значений добавит в отбор, то сначала нужно указать видсравнения ВСписке, а уж следующей строкой в значение передавать список значений
#8 by Гений 1С
А, значит это другое свойство. блин, у меня тип поля ВидДохода - строка, но из запроса он не может выщемить, что значения этого поля - 1, 2, 3, как ему это явно указать?
#9 by zalexey
а почему тогда не строку, а число передаешь?
#10 by Defender aka LINN
ПостроительОтчета.ДоступныеПоля.ВидДохода погляди в отладчике. Там и тип значения будет.
#11 by MikleV
а мож дело в С.Добавить("1");
#12 by Гений 1С
Гм, по ходу наверное никак. Так как тип реквизита - строка, то он не использует список значений. Короче, список доступных значений, я так понял, выбирается из списка. То бишь засада.
#13 by Гений 1С
блин, написал криво. Имелось ввиду что допустимые значения определяются по типу параметра. Т.к. у меня тип параметра Доход - строка, то соответсвенно он рисует просто поле ввода строки и больше ничего не понимает.  МДА... Заменить что ли строку на перечисление?
#14 by MikleV
можно при добавлении отбора по виду дохода приделывать список в поле выбора значения на форме..
#15 by Гений 1С
А можно тогда поле ВидДохода сделать недоступным или невидимым в ПостроительОтчета.Отбор, потому что оно там болтается???
#16 by MikleV
да. ПостроительОтчета.Отбор.Удалить(ИндексПоля) или через доступные поля установить ему Отбор = Ложь
#17 by MikleV
+ 16 только я не понял, ты хочешь чтоб его не видно было или вообще отбор по нему делать не будешь,
#18 by MikleV
это касательно того как через доступные поля
#19 by Defender aka LINN
Гений, кля... Строку ограничь, и будет тебе ЩАСТЬЕ :)
#20 by Гений 1С
да нет, в общем поясняю. Если я делаю выбор этого отбора через галочку в форме, то соответственно мне нужно, чтобы это поле не было видно в таблице ПостроительОтчета.Отбор. Можно на этапе редактирования видимо отбор отключить, а вот перед запуском отчета его подрубить. Если я поставлю этот отбор в таблице ПостроительОтчета.Отбор, то мне нужно вмешиваться в редактирование, в принципе, при входе в редактирование поля нужно предлагать список выбора 1,2,3,4. Гемморно, учитывая, как 1С работает с событиями табличного поля, но можно. В общем, ход мысли понятен, вопрос можно считать типо решенным.
#21 by Гений 1С
Чем строку ограничить?
#22 by Defender aka LINN
и это можно сделать типовыми методами :)
#23 by Defender aka LINN
Длину строки. Для строк неграниченой длины построитель в отборе предлагает только "содержит/не содержит". Для обычных строк - полный сервис. А еще там есть свойство "список значений". Помучай в СП ПостроительОтчета.ДоступныеПоля.Добавить
#24 by MikleV
т.е. у поля список значений, ты его что ли имел ввиду так выше уже пробовалось.. а вот про ограничения строк это для меня новость:)) хорошая)
#25 by Defender aka LINN
Да. правда, при этом проверяется ТОЛЬКО на равенство :(
#26 by Гений 1С
Я может быть туплю, но вот какие настройки перед выполнением. Построитель.Отбор: ДоходныйРасходный    ДоходныйРасходный = "ДОХОДНЫЕ ДОГОВОРЫ"    ЭлементОтбора ВидСравнения    Равно    ВидСравнения Имя    "ДоходныйРасходный"    Строка Использование    истина    Булево Представление    "ДоходныйРасходный"    Строка ПутьКДанным    "ДоходныйРасходный"    Строка ТипЗначения    Строка    ОписаниеТипов То бишь отбор включен.    НастройкаПоляПО_ДоходныйРасходный=ПостроительОтчета.ДоступныеПоля.ДоходныйРасходный; И вот смотрю РезультатЗапроса.Выгрузить - там есть и "ДОХОДНЫЕ ДОГОВОРЫ" и "РАСХОДНЫЕ ДОГОВОРЫ". Что за бред, что я делаю не так?
#27 by Гений 1С
а блин, все понял, ... Условие Где обязательно надо писать, без этого не канает. добавил условия по где - заработало. Примерно так: В каждом из объединяемых запросов. Я таки ее сделал, сцуку.
Тэги:
Ответить:
Комментарии доступны только авторизированным пользователям

В этой группе 1С