|   |   | 
| 
 | [Решено] Ошибка при добавлении поля отбора построителя | ☑ | ||
|---|---|---|---|---|
| 0
    
        Vladal 25.06.15✎ 13:57 | 
        Есть построитель, в который помещаю таблицу значений для манипуляций с ней.
 В отладчике вижу такие поля: |ПОстроительЗапроса.ДоступныеПоля |_2 |_6 |_7 |ВерхнийПредел |Диапазон |НижнийПредел Добавляю отбор: НовыйОтбор = ПостроительЗапроса.Отбор.Добавить("ВерхнийПредел"); Вываливается ошибка: Недопустимое значение параметра (параметр номер '1') Но когда добавляю отбор по другой колонке, никаких ошибок не возникает: НовыйОтбор = ПостроительЗапроса.Отбор.Добавить("Диапазон"); Также ошибка происходит и если беру данные из отладчика: ПостроительЗапроса.Отбор.Добавить(ПостроительЗапроса.ДоступныеПоля.НижнийПредел.Имя); --- ошибка ПостроительЗапроса.Отбор.Добавить(ПостроительЗапроса.ДоступныеПоля.Диапазон.Имя); --- работает нормально. Из-за чего такое может быть? Ладно бы я допустил ошибку в написании поля, но когда из отладчика явно достаю поле и добавляю в отбор - одно работает, другое нет. | |||
| 1
    
        Зеленый пень 25.06.15✎ 13:59 | 
        Давно построитель научился с таблицей значений работать?
 Как ты её помещаешь? И описаны ли эти поля в блоке {ГДЕ...} ? | |||
| 2
    
        Franchiser 25.06.15✎ 14:01 | 
        Построитель Запроса или Построитель Отчета?
 Тип поля какой? | |||
| 3
    
        Franchiser 25.06.15✎ 14:02 | 
        попробуй типизировать поля тз     | |||
| 4
    
        chelentano 25.06.15✎ 14:02 | 
        (1) Давно. Через источник данных     | |||
| 5
    
        Vladal 25.06.15✎ 14:03 | 
        (1) (2) (3) (4) 
 ПостроительЗапроса = Новый ПостроительЗапроса; ПостроительЗапроса.ИсточникДанных = Новый ОписаниеИсточникаДанных(Источник); Источник - это и есть моя таблица значений | |||
| 6
    
        Vladal 25.06.15✎ 14:04 | 
        Не все ДоступныеПоля одинаково вкусны - некоторые Построителю не нравятся. А именно "НижнийПредел" и "ВерхнийПредел". Другие поля он успешно глотает, а эти два не хочет добавлять.     | |||
| 7
    
        Franchiser 25.06.15✎ 14:06 | 
        что в этих полях, как ты описываешь структуру ТЗ?     | |||
| 8
    
        Vladal 25.06.15✎ 14:06 | 
        (1) (2) (3) (4) -- всё делаю используя типовую процедуру ОбщегоНазначения.ОтобратьСтрокиПоКритериям, в неё и передаю параметрами нужные мне критерии отбора.     | |||
| 9
    
        chelentano 25.06.15✎ 14:06 | 
        Посмотри в отладчике перед установкой отбора, чему равно:
 ПостроительЗапроса.ДоступныеПоля["ВерхнийПредел"].Отбор | |||
| 10
    
        Franchiser 25.06.15✎ 14:07 | 
        обозвать поля по другому не вариант?     | |||
| 11
    
        Vladal 25.06.15✎ 14:09 | 
        (3) (7) да. не типизировал. Но когда типизировал ничего не изменилось.
 (9) пишет Ложь (10) - Я им и унитаз приносил, и плитку из туалета показывал - ну нет у них туалетной бумаги, нет. | |||
| 12
    
        chelentano 25.06.15✎ 14:11 | 
        (11) попробуй выставить в истина     | |||
| 13
    
        Vladal 25.06.15✎ 14:15 | 
        Я нашел ошибку. Поле не было типизировано.
 Я сохранял таблицу значений, и при открытии обработки восстанавливал. А когда модифицировал колонки таблицы, то срабатывало условие Если КолонкиМатрицы.Найти("НижнийПредел") = Неопределено Тогда КолонкиМатрицы.Добавить("НижнийПредел", ОбщегоНазначения.ПолучитьОписаниеТиповЧисла(19),, 20); КонецЕсли; Естестенно, после того, как добавил описание типа колонки, он не назначался. Поэтому в (11) тоже ничего не получилось. Ошибка была в том, что колонка была не типизирована. Спасибою. Получилось. | |||
| 14
    
        chelentano 25.06.15✎ 14:16 | 
        (13) так это тебе ещё в (3) написали     | |||
| 15
    
        Vladal 25.06.15✎ 14:18 | 
        (14) Так я же сразу и дописал типизацию из (13). Вот только таблица восстанавливалась старая, с нетипизированными колонками.
 Спасибо! | |||
| 16
    
        Зеленый пень 25.06.15✎ 16:21 | 
        (5) тьфу блин... :) Я и забыл, что так примитивно можно.
 Интереснее так: Создается построитель с текстом запроса, где первый запрос - "заглушка", таблица с нужными типами и словом ПОМЕСТИТЬ. После игры с группировками отборами делаем ПолучитьЗапрос() и в тексте запроса подменяем заглушку на выбор из &ТЗ, которая передается запросу. В результате можно крутить поля ТЗ через точку", и тестом запроса играться как угодно. | |||
| 17
    
        Franchiser 25.06.15✎ 20:40 | 
        (16) в построитель запроса вроде как нельзя использовать ВТ     | |||
| 18
    
        Зеленый пень 25.06.15✎ 22:20 | 
        (17) ВТ еще как можно. Нельзя напрямую передавать ТЗ как параметр запроса, поэтому приходится изгаляться через .ПолучитьЗапрос(), но это не так сложно.     | 
| Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |