|
ВЫБРАТЬ ИЗ &СписокЗначений | ☑ | ||
---|---|---|---|---|
0
varyag
13.02.15
✎
12:24
|
Товарищи!
"Выбрать из &ТЗ" использовал сто раз. А Можно ли в качестве источника передать список значений? |
|||
1
piter3
13.02.15
✎
12:25
|
для зачем
|
|||
2
varyag
13.02.15
✎
12:26
|
ну надо.. В консоли то запросов работает:
"ВЫБРАТЬ | СписокАртикулов.Значение КАК Артикул |ПОМЕСТИТЬ ВТ_СписокАртикулов |ИЗ | &СписокАртикулов КАК СписокАртикулов |; | |//////////////////////////////////////////////////////////////////////////////// |ВЫБРАТЬ | ГруппыАналогов.ИдентификаторГруппы, | ВТ_СписокАртикулов.Артикул |ПОМЕСТИТЬ ВТ_Аналоги |ИЗ | ВТ_СписокАртикулов КАК ВТ_СписокАртикулов | ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ГруппыАналогов КАК ГруппыАналогов | ПО ВТ_СписокАртикулов.Артикул = ГруппыАналогов.Артикул |; | |//////////////////////////////////////////////////////////////////////////////// |ВЫБРАТЬ | ВТ_Аналоги.Артикул КАК АртикулНоменклатуры, | ГруппыАналогов.Артикул КАК АртикулАналога, | ВЫБОР | КОГДА ГруппыАналогов.Производитель = ЗНАЧЕНИЕ(Справочник.Производители.ПустаяСсылка) | ТОГДА ""Не указан"" | ИНАЧЕ ГруппыАналогов.Производитель.Наименование | КОНЕЦ КАК Производитель, | ГруппыАналогов.Наименование |ИЗ | ВТ_Аналоги КАК ВТ_Аналоги | ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ГруппыАналогов КАК ГруппыАналогов | ПО (ГруппыАналогов.ИдентификаторГруппы = ВТ_Аналоги.ИдентификаторГруппы) | И (ГруппыАналогов.Артикул <> ВТ_Аналоги.Артикул) | |УПОРЯДОЧИТЬ ПО | АртикулНоменклатуры |ИТОГИ ПО | АртикулНоменклатуры"; |
|||
3
varyag
13.02.15
✎
12:31
|
А в реале пишет
Ошибка при вызове метода контекста (Выполнить) Результат = Запрос.Выполнить(); по причине: {(2, 2)}: Тип не может быть выбран в запросе <<?>>СписокАртикулов.Значение КАК Артикул |
|||
4
salvator
13.02.15
✎
12:35
|
(3) Колонки должны быть явно типизированы.
|
|||
5
mikecool
13.02.15
✎
12:35
|
(3) надо жестко типизировать значение, иначе работать не будет
для ТЗ указываются типы колонок, для СЗ такого не сделаешь |
|||
6
varyag
13.02.15
✎
12:38
|
(5) Т.е. СЗ вообще невозможно типизировать?
|
|||
7
Timon1405
13.02.15
✎
12:38
|
(0) Надо СЗ в массив переделать
|
|||
8
kosts
13.02.15
✎
12:38
|
Всегда так делал
"ВЫБРАТЬ | Ссылка КАК Артикул |ПОМЕСТИТЬ ВТ_СписокАртикулов |ИЗ Справочник.Артикулы как Артикулы |ГДЕ Ссылка в (&СписокАртикулов) |; |
|||
9
varyag
13.02.15
✎
12:39
|
(7) легко) а поможет? щас попроую
|
|||
10
varyag
13.02.15
✎
12:39
|
(8) не то...
|
|||
11
WebberNSK
13.02.15
✎
12:45
|
Создай таблицу заполни колонку по массиву значений из списка и все
|
|||
12
Timon1405
13.02.15
✎
12:50
|
(11) Зачем такие сложности,если можно просто массив передать?
|
|||
13
varyag
16.02.15
✎
05:18
|
(11) Делаю так:
МассивАртикулов = СписокАртикулов.ВыгрузитьЗначения(); ЗапросМассив = Новый Запрос("ВЫБРАТЬ |* |ПОМЕСТИТЬ ВТ_МассивАртикулов |ИЗ | &МассивАртикулов КАК СписокАртикулов |"); ЗапросМассив.УстановитьПараметр("МассивАртикулов", МассивАртикулов); {Форма.Форма.Форма(22)}: Ошибка при вызове метода контекста (Выполнить) Результат = ЗапросМассив.Выполнить().Выгрузить(); по причине: {(5, 2)}: Неверные параметры "МассивАртикулов" <<?>>&МассивАртикулов КАК СписокАртикулов Результат = ЗапросМассив.Выполнить().Выгрузить(); |
|||
14
varyag
16.02.15
✎
05:21
|
(13) к (12)
(11) это понятно - создавать лишние объекты. Интересно так решить, если нельзя - тогда уже буду ТЗ юзать |
|||
15
varyag
16.02.15
✎
05:40
|
Уже решил через ТЗ попробовать - так она не заполняется через ВыгрузитьЗначения(), неужели перебором строк только?
http://storage3.static.itmages.ru/i/15/0216/h_1424054406_2578905_c415e3b056.jpg |
|||
16
SeraFim
16.02.15
✎
06:18
|
Все нормально работает
СписокЗначений = Новый СписокЗначений; СписокЗначений.ТипЗначения = Новый ОписаниеТипов("СправочникСсылка.Номенклатура"); СписокЗначений.Добавить(Справочники.Номенклатура.НайтиПоНаименованию("Колбаска")); СписокЗначений.Добавить(Справочники.Номенклатура.НайтиПоНаименованию("Печеньки")); СписокЗначений.Добавить(Справочники.Номенклатура.НайтиПоНаименованию("Пряники")); Запрос = Новый Запрос; Запрос.УстановитьПараметр("СписокНоменклатуры", СписокЗначений); Запрос.Текст = "ВЫБРАТЬ | СписокНоменклатуры.Значение КАК Номенклатура |ПОМЕСТИТЬ ВТНоменклатура |ИЗ | &СписокНоменклатуры КАК СписокНоменклатуры |; | |//////////////////////////////////////////////////////////////////////////////// |ВЫБРАТЬ | ВТНоменклатура.Номенклатура |ИЗ | ВТНоменклатура КАК ВТНоменклатура"; Результат = Запрос.Выполнить(); Выборка = Результат.Выбрать(); Пока Выборка.Следующий() Цикл Сообщить(Выборка.Номенклатура); КонецЦикла; |
|||
17
varyag
16.02.15
✎
06:30
|
(16) У меня в списке тип строка. Может в этом дело, щас попробую
СписокАртикулов.ТипЗначения = Новый ОписаниеТипов("Строка",, Новый КвалификаторыСтроки(25,ДопустимаяДлина.Переменная)); |
|||
18
varyag
16.02.15
✎
06:34
|
(16) Заработало)
А можно ли представление списка типизировать?)) |
|||
19
varyag
16.02.15
✎
06:47
|
Всем спасибо. Сделал в итоге добавление еще одной ВТ. А для списка значений жесткое типизирование:
Процедура КнопкаВыполнитьНажатие(Кнопка) // Для работы запроса необходимо жесткое типизирование СписокНоменклатуры.ТипЗначения = Новый ОписаниеТипов("СправочникСсылка.Номенклатура");; Запрос = Новый Запрос; Запрос.Текст = "ВЫБРАТЬ | СписокНоменклатуры.Значение КАК Номенклатура |ПОМЕСТИТЬ ВТ_Номенклатура |ИЗ | &СписокНоменклатуры КАК СписокНоменклатуры |; | |//////////////////////////////////////////////////////////////////////////////// |ВЫБРАТЬ | ВТ_Номенклатура.Номенклатура.Артикул КАК Артикул |ПОМЕСТИТЬ ВТ_СписокАртикулов |ИЗ | ВТ_Номенклатура КАК ВТ_Номенклатура |; | |//////////////////////////////////////////////////////////////////////////////// |ВЫБРАТЬ | ГруппыАналогов.ИдентификаторГруппы, | ВТ_СписокАртикулов.Артикул |ПОМЕСТИТЬ ВТ_Аналоги |ИЗ | ВТ_СписокАртикулов КАК ВТ_СписокАртикулов | ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ГруппыАналогов КАК ГруппыАналогов | ПО ВТ_СписокАртикулов.Артикул = ГруппыАналогов.Артикул |; | |//////////////////////////////////////////////////////////////////////////////// |ВЫБРАТЬ | ВТ_Аналоги.Артикул КАК АртикулНоменклатуры, | ГруппыАналогов.Артикул КАК АртикулАналога, | ВЫБОР | КОГДА ГруппыАналогов.Производитель = ЗНАЧЕНИЕ(Справочник.Производители.ПустаяСсылка) | ТОГДА ""Не указан"" | ИНАЧЕ ГруппыАналогов.Производитель.Наименование | КОНЕЦ КАК Производитель, | ГруппыАналогов.Наименование |ИЗ | ВТ_Аналоги КАК ВТ_Аналоги | ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ГруппыАналогов КАК ГруппыАналогов | ПО (ГруппыАналогов.ИдентификаторГруппы = ВТ_Аналоги.ИдентификаторГруппы) | И (ГруппыАналогов.Артикул <> ВТ_Аналоги.Артикул) | |УПОРЯДОЧИТЬ ПО | АртикулНоменклатуры |ИТОГИ ПО | АртикулНоменклатуры"; Запрос.УстановитьПараметр("СписокНоменклатуры", СписокНоменклатуры); Результат = Запрос.Выполнить(); ВыборкаАртикулы = Результат.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам); |
|||
20
yavasya
16.02.15
✎
07:34
|
(16) голодный)
|
|||
21
varyag
16.02.15
✎
10:21
|
(20) :D
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |