|   |   | 
| 
 | Таблица значений в параметрах запроса | ☑ | ||
|---|---|---|---|---|
| 0
    
        Штурман 22.04.14✎ 12:35 | 
        На форме было поле ввода, где выбирался элемент иерархического справочника. Это значение потом передавалось в запрос.
 Когда же вместо поля ввода на форму добавили табличное поле, т.е. таблицу значений, чтобы одновременно выбрать несколько справочников, запрос перестал работать, а теперь попросту выводит все данные подряд за указанный промежуток времени. В чем может быть причина? Код: Массив = Новый Массив(); Для каждого стр из ТЗПодразделения цикл //ТЗПодразделения – ТЗ на форме справочника, про нее речь Массив.Добавить(стр.Подразделение); конеццикла; Подразделение = Массив; //////////////////////////////////////////////////////////////////////////////// Запрос. . . //////////////////////////////////////////////////////////////////////////////// Запрос = Новый Запрос; Запрос.МенеджерВременныхТаблиц = Новый МенеджерВременныхТаблиц; Запрос.Текст = "ВЫБРАТЬ | ТЗРаб.Физлицо, | ТЗРаб.Сотрудник, | ТЗРаб.Подразделение, | ТЗРаб.Должность |ПОМЕСТИТЬ ВремТаб |ИЗ | &тзРаб КАК ТЗРаб |; | |//////////////////////////////////////////////////////////////////////////////// |ВЫБРАТЬ | ВремТаб.Сотрудник, | ПодразделенияОрганизаций.Ссылка КАК ПодразделениеОрганизации, | ДолжностиОрганизаций.Ссылка КАК ДолжностьОрганизации, | ФизическиеЛица.Ссылка КАК ФизЛицо |ПОМЕСТИТЬ ВТРаботники |ИЗ | ВремТаб КАК ВремТаб | ЛЕВОЕ СОЕДИНЕНИЕ Справочник.ДолжностиОрганизаций КАК ДолжностиОрганизаций | ПО ВремТаб.Должность = ДолжностиОрганизаций.Ссылка | ЛЕВОЕ СОЕДИНЕНИЕ Справочник.ПодразделенияОрганизаций КАК ПодразделенияОрганизаций | ПО ВремТаб.Подразделение = ПодразделенияОрганизаций.Ссылка | ЛЕВОЕ СОЕДИНЕНИЕ Справочник.ФизическиеЛица КАК ФизическиеЛица | ПО ВремТаб.Физлицо = ФизическиеЛица.Ссылка |; | |//////////////////////////////////////////////////////////////////////////////// |ВЫБРАТЬ | ВТРаботники.Сотрудник, | ВТРаботники.ПодразделениеОрганизации КАК Подразделение |ИЗ | ВТРаботники КАК ВТРаботники |ГДЕ | ВТРаботники.ПодразделениеОрганизации В ИЕРАРХИИ(&ПодразделениеОрганизации)"; Запрос.УстановитьПараметр("тзРаб", ТЗРаботники); Запрос.УстановитьПараметр("ДатаНачала", НачалоМесяца(ДатаОтчета)); //Дата Запрос.УстановитьПараметр("ДатаОкончания", КонецМесяца(ДатаОтчета)); //Дата Запрос.УстановитьПараметр("ПодразделениеОрганизации", Подразделение); //Справочник ссылка: Подразделения организации РезультатЗапроса2 = Запрос.Выполнить(); Выборка2 = РезультатЗапроса2.Выбрать(); | |||
| 1
    
        Wobland 22.04.14✎ 12:35 | 
        в этом:  добавили табличное поле     | |||
| 2
    
        Штурман 22.04.14✎ 12:39 | 
        Вот картинка для иллюстраци:
 http://f-lite.ru/lfp/i023.radikal.ru/1404/02/2e183a2d8127.png/htm Выше поле выбора, а потом добавили ТЗ | |||
| 3
    
        Штурман 22.04.14✎ 12:39 | 
        (1) а как в запрос передать несколько справочников?     | |||
| 4
    
        Wobland 22.04.14✎ 12:40 | 
        (3) В(&МощныйСписок)     | |||
| 5
    
        Штурман 22.04.14✎ 12:42 | 
        (4) тоже не работает, нужна именно ИЕРАРХИЯ, т.к. справочники имеют кучу уровней вложенности     | |||
| 6
    
        Cube 22.04.14✎ 12:42 | 
        (3) "несколько справочников"
 Король формулировок! :))) | |||
| 7
    
        Cube 22.04.14✎ 12:43 | 
        (5) Разрешаю воспользоваться "В ИЕРАРХИИ"     | |||
| 8
    
        Wobland 22.04.14✎ 12:43 | 
        мда..     | |||
| 9
    
        Wobland 22.04.14✎ 12:44 | 
        (5) это ради иерархии ты ТЗ изобрёл?     | |||
| 10
    
        Штурман 22.04.14✎ 12:45 | 
        (6) (7) по делу есть что сказать?     | |||
| 11
    
        Штурман 22.04.14✎ 12:46 | 
        (9) а есть другие варианты?     | |||
| 12
    
        Cube 22.04.14✎ 12:49 | 
        (10) Я сказал именно по делу. Тебе осталось это просто осознать...     | |||
| 13
    
        Штурман 22.04.14✎ 12:49 | 
        (4) Написал вместо "В ИЕРАРХИИ" просто "В"
 запрос вообще не работает | |||
| 14
    
        Штурман 22.04.14✎ 12:50 | 
        (12) так я в начале топика написал: что запрос выводит не подразделения, относящиеся к выбранным в табличном поле, а практически все подразделения     | |||
| 15
    
        Cube 22.04.14✎ 12:53 | 
        (14) Какие выбрал, такие и выводит. Плюс все, которые входят в те, что ты выбрал...
 Что не так? | |||
| 16
    
        Wobland 22.04.14✎ 12:53 | 
        (14) ты всё ещё пользуешься запросом из (0)?     | |||
| 17
    
        Штурман 22.04.14✎ 12:55 | 
        (15) выводит практически все подразделения конторы, а не только те подразделения, которые входят в выбранные
 а надо чтобы выводились только подразделения, которые входят в выбранные на форме | |||
| 18
    
        Штурман 22.04.14✎ 12:56 | 
        (16) да     | |||
| 19
    
        Cube 22.04.14✎ 12:57 | 
        (17) Давай запрос и структуру стравочника своего. Хватит обсасывать сферических коней в вакууме...     | |||
| 20
    
        Wobland 22.04.14✎ 12:58 | 
        (18) предлагаю выкинуть к чертям эту бабйню и сделать один нормальный запрос     | |||
| 21
    
        Штурман 22.04.14✎ 12:58 | 
        (17) т.е. есть Администрация, в ней Бухгалтерия, а отдельно от них, например Охрана,
 так вот, когда выбираешь Администрацию, надо чтобы в результате выводились Администрация и Бухгалтерия а в запросе выводятся все, т.е. и Охрана, которую вообще не выбирали | |||
| 22
    
        Штурман 22.04.14✎ 12:59 | 
        (19) так я же запрос в (0) разместил     | |||
| 23
    
        Штурман 22.04.14✎ 12:59 | 
        там крестик размернуть     | |||
| 24
    
        Wobland 22.04.14✎ 12:59 | 
        (20) максимум - двойной ради ТЗ. если она вообще там упёрлась     | |||
| 25
    
        Штурман 22.04.14✎ 13:00 | 
        (19) Структура справочника:
 Аднинистрация |---Бухгалтерия Охрана | |||
| 26
    
        Cube 22.04.14✎ 13:01 | 
        (22) Что такое ТЗРаботники? Говори его тип и значение.     | |||
| 27
    
        Cube 22.04.14✎ 13:02 | 
        (26) А, не надо, уже понял)     | |||
| 28
    
        Cube 22.04.14✎ 13:03 | 
        Давай значения массива "Подразделение".     | |||
| 29
    
        Cube 22.04.14✎ 13:04 | 
        +(28) Только не ври!     | |||
| 30
    
        Штурман 22.04.14✎ 13:04 | 
        (26) Это другой запрос, он просто вытягивает актуальные данные о том, где в определенный период работает сотрудник
 (писала сама 1с) ОписаниеТиповФ = Новый ОписаниеТипов("СправочникСсылка.ФизическиеЛица"); ОписаниеТиповС = Новый ОписаниеТипов("СправочникСсылка.СотрудникиОрганизаций"); ОписаниеТиповП = Новый ОписаниеТипов("СправочникСсылка.ПодразделенияОрганизаций"); ОписаниеТиповД = Новый ОписаниеТипов("СправочникСсылка.ДолжностиОрганизаций"); ТЗРаботники = Новый ТаблицаЗначений; ТЗРаботники.Колонки.Добавить("Физлицо", ОписаниеТиповФ); ТЗРаботники.Колонки.Добавить("Сотрудник", ОписаниеТиповС); ТЗРаботники.Колонки.Добавить("Подразделение", ОписаниеТиповП); ТЗРаботники.Колонки.Добавить("Должность", ОписаниеТиповД); Пока Выборка.Следующий() цикл стр = ТЗРаботники.Добавить(); стр.Физлицо = Выборка.Физлицо; стр.Сотрудник = Выборка.Сотрудник; стр.Подразделение = Выборка.Подразделение; стр.Должность = Выборка.Должность; КонецЦикла; | |||
| 31
    
        Штурман 22.04.14✎ 13:07 | 
        (29) странно, написал:
 Для Каждого ЭлементМассива из Подразделение Цикл Сообщить(ЭлементМассива); КонецЦикла; выдает: Итератор для значения не определен Для Каждого ЭлементМассива из Подразделение Цикл | |||
| 32
    
        Cube 22.04.14✎ 13:08 | 
        (31) Может у тебя есть реквизит формы Подразделение с другим типом?     | |||
| 33
    
        Cube 22.04.14✎ 13:09 | 
        (31) Замени все вхождения "Подразделение" на "ВыбранныеПодразделения"     | |||
| 34
    
        Штурман 22.04.14✎ 13:12 | 
        (33) заменил:
 ВыбранныеПодразделения = Новый Массив(); Для каждого стр из ТЗПодразделения цикл ВыбранныеПодразделения.Добавить(стр.Подразделение); конеццикла; --- Запрос.УстановитьПараметр("ПодразделениеОрганизации", ВыбранныеПодразделения); Заработало, спасибо Буду дальше тестировать :) | |||
| 35
    
        vovus 22.04.14✎ 13:16 | 
        Поле ввода старое по ходу и называлось "Подразделение"     | |||
| 36
    
        Cube 22.04.14✎ 13:21 | 
        (34) Ага, а то "запрос коряво работает"... :))     | |||
| 37
    
        Штурман 22.04.14✎ 13:21 | 
        (35) Да, вот косяк, старое поле ввода так и называлось)))     | |||
| 38
    
        AlexITGround 22.04.14✎ 13:22 | 
        (36) стоПудов с этой ошибкой столкнулся каждый из нас     | |||
| 39
    
        Cube 22.04.14✎ 13:28 | 
        (38) А ещё бывает и такое:
 CуммаДокумента = 500; Сообщить(СуммаДокумента); Ошибка... А с виду и не скажешь, где... :) | |||
| 40
    
        Wobland 22.04.14✎ 13:42 | 
        я всё пропустил. Cube, зачем ему ТЗ?     | |||
| 41
    
        Cube 22.04.14✎ 13:51 | 
        (40) Он не сказал, а я не спрашивал))     | |||
| 42
    
        Wobland 22.04.14✎ 13:53 | 
        но что-то такое понял - (27). ну и ладно     | |||
| 43
    
        Штурман 22.04.14✎ 14:17 | 
        (40) в ТЗ можно добавить несколько подразделений, а в поле выбора можно выбрать только одно подразделение     | |||
| 44
    
        Wobland 22.04.14✎ 14:40 | 
        или только один список значений любой длины по вкусу     | 
| Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |