|
Передача выделенных строк в запрос, что не так? | ☑ | ||
---|---|---|---|---|
0
ig0z
16.12.16
✎
09:34
|
Запрос = Новый Запрос;
Запрос.Текст = "ВЫБРАТЬ | ТЧПодготовка.Ссылка КАК Ссылка |ПОМЕСТИТЬ ВремТаб |ИЗ | &ТЧПодготовка КАК ТЧПодготовка |; | |//////////////////////////////////////////////////////////////////////////////// |ВЫБРАТЬ | ПеремещениеТМЦТМЦ.Ссылка, | ПеремещениеТМЦТМЦ.НомерСтроки, | ПеремещениеТМЦТМЦ.Номенклатура, | ПеремещениеТМЦТМЦ.ЕдиницаИзмерения, | ПеремещениеТМЦТМЦ.Коэффициент, | ПеремещениеТМЦТМЦ.Количество, | ПеремещениеТМЦТМЦ.ПроизводственныйЗаказ |ИЗ | Документ.ПеремещениеТМЦ.ТМЦ КАК ПеремещениеТМЦТМЦ |ГДЕ | ПеремещениеТМЦТМЦ.Ссылка В(&ВремТаб) | |СГРУППИРОВАТЬ ПО | ПеремещениеТМЦТМЦ.Ссылка, | ПеремещениеТМЦТМЦ.НомерСтроки, | ПеремещениеТМЦТМЦ.Номенклатура, | ПеремещениеТМЦТМЦ.ЕдиницаИзмерения, | ПеремещениеТМЦТМЦ.Количество, | ПеремещениеТМЦТМЦ.ПроизводственныйЗаказ |"; ВыделенныеСтроки = ЭлементыФормы.ТЧДокументы.ВыделенныеСтроки; ТаблицыЗначений = Новый ТаблицаЗначений; ТаблицыЗначений.Колонки.Добавить("Ссылка"); Для Каждого Строка Из ВыделенныеСтроки Цикл Стр = ТаблицыЗначений.Добавить(); Стр.Ссылка = Строка; КонецЦикла; Запрос.УстановитьПараметр("ТЧПодготовка",ТаблицыЗначений); Выгрузка = Запрос.Выполнить().Выгрузить(); Ошибка: {ВнешняяОбработка.ОбработкаПеремещения.Форма.ФормаОбычная1.Форма(191)}: Ошибка при вызове метода контекста (Выполнить) Выгрузка = Запрос.Выполнить().Выгрузить(); по причине: {(2, 2)}: Тип не может быть выбран в запросе <<?>>ТЧПодготовка.Ссылка КАК Ссылка {ВнешняяОбработка.ОбработкаПеремещения.Форма.ФормаОбычная1.Форма(191)}: Ошибка при вызове метода контекста (Выполнить) Выгрузка = Запрос.Выполнить().Выгрузить(); по причине: {(2, 2)}: Тип не может быть выбран в запросе <<?>>ТЧПодготовка.Ссылка КАК Ссылка Таблицу значений всегда раньше нормально передавал, сейчас то что не так? |
|||
1
Cool_Profi
16.12.16
✎
09:35
|
Колонка не типизирована
|
|||
2
Fedor-1971
16.12.16
✎
09:41
|
(0) попробуй так:
|
|||
3
Альбатрос
16.12.16
✎
09:43
|
+(1) ТаблицыЗначений.Колонки.Добавить("Ссылка");
|
|||
4
Альбатрос
16.12.16
✎
09:44
|
Хде типизация?
|
|||
5
aleks_default
16.12.16
✎
09:44
|
Надо не саму таб. чать передавать а выгруженную из нее ТЗ.
|
|||
6
Fedor-1971
16.12.16
✎
09:46
|
2+ ПеремещениеТМЦТМЦ.Ссылка В(&ВремТаб)
Зачем тебе городить временную таблицу, если в запрос можно передать массив ссылок?
Проверь в конфигураторе, что в "Стр" именно ссылка |
|||
7
Fedor-1971
16.12.16
✎
09:50
|
6+ ПеремещениеТМЦТМЦ.Ссылка В(&ВремТаб) - где передача параметра запроса ВремТаб или замена оного на выборку из временной таблицы?
|
|||
8
Fedor-1971
16.12.16
✎
09:51
|
(5) у ТС Строка - может быть ссылкой, если он разбирает массив выделенных строк от ДС с установленной основной таблицей
|
|||
9
aleks_default
16.12.16
✎
09:55
|
(8)ДС в обычных формах это нонсенс
|
|||
10
Fedor-1971
16.12.16
✎
10:03
|
(1)(4) типизация желательна, но не обязательна, главное, что-бы Ссылка была именно ссылкой, а не индексом строки или строка целиком (такой тип в запросе действительно не поддерживается).
(9) ТС не озвучил в каких формах работает и откуда он взял ВыделенныеСтроки. Я только предположил вариант, в котором, Строка будет именно ссылкой |
|||
11
Cool_Profi
16.12.16
✎
10:05
|
(10) Для передачи ТЗ в запрос типизация обязательна
|
|||
12
Fedor-1971
16.12.16
✎
10:13
|
(11) Обосновать сможешь?
в Ссылка можно сложить как ссылки на N разных типов документов, так и цифры (строки) если мне это сильно нужно получить в запрос именно в одном поле. Другой вопрос, как с этой кашей работать в запросе, но к типизации сие отношения не имеет. Типизация нужна для оптимизации работы движка запросов и только. Если мне "Надо" то можно, но работать будет медленнее (опять же "на сколько?") и есть риск вложить тип, который не поддерживает запрос |
|||
13
Cool_Profi
16.12.16
✎
10:15
|
(12) Если в качестве источника используется таблица значений, то у этой таблицы значений должны быть явно указаны типы значений, содержащихся в колонках.
(с) 1с |
|||
14
FIXXXL
16.12.16
✎
10:18
|
(4) (5) можно и ТЧ прям запрос параметром, но только первоначальный запрос на создание временной таблицы, а уже связи с временной таблицей
|
|||
15
ig0z
16.12.16
✎
10:23
|
так: все верно обычные формы и ДС
Запрос = Новый Запрос; Запрос.Текст = "ВЫБРАТЬ | ПеремещениеТМЦ.Ссылка, | ПеремещениеТМЦ.НомерСтроки, | ПеремещениеТМЦ.Номенклатура, | ПеремещениеТМЦ.Количество, | ПеремещениеТМЦ.ЕдиницаИзмерения, | ПеремещениеТМЦ.ПроизводственныйЗаказ |ИЗ | Документ.ПеремещениеТМЦ.ТМЦ КАК ПеремещениеТМЦ |ГДЕ | ПеремещениеТМЦ.Ссылка В(&ТЧ) | |СГРУППИРОВАТЬ ПО | ПеремещениеТМЦ.Ссылка, | ПеремещениеТМЦ.НомерСтроки, | ПеремещениеТМЦ.Номенклатура, | ПеремещениеТМЦ.ЕдиницаИзмерения, | ПеремещениеТМЦ.Количество, | ПеремещениеТМЦ.ПроизводственныйЗаказ"; ВыделенныеСтроки = ЭлементыФормы.ТЧДокументы.ВыделенныеСтроки; ТаблицыЗначений = Новый ТаблицаЗначений; ТаблицыЗначений.Колонки.Добавить("Ссылка"); Для Каждого Строка Из ВыделенныеСтроки Цикл Стр = ТаблицыЗначений.Добавить(); Стр.Ссылка = Строка; КонецЦикла; Запрос.УстановитьПараметр("ТЧ",ТаблицыЗначений); Выгрузка = Запрос.Выполнить().Выгрузить(ОбходРезультатаЗапроса.ПоГруппировкамСИерархией); ТЧПодготовка = Выгрузка; ЭлементыФормы.ТЧПодготовка.СоздатьКолонки(); все работает только иерархии нет (( |
|||
16
ig0z
16.12.16
✎
10:24
|
пятница ...
|
|||
17
ptiz
16.12.16
✎
10:24
|
(12) Пятнично
|
|||
18
Fedor-1971
16.12.16
✎
10:26
|
(13) Это рекомендация как и "4 нормальные формы Бекуса-Наура для разработки реляционных БД". Свою точку зрения я обосновал в (12). "Медленнее будет работать" именно из-за прохода по таблице значений для определением типов того что хранится. Если ТЗ в 20 строк, то этот проход не заметен, если в 10000 уже задумаешься над типизацией, что-бы его исключить
(17) за то, весело |
|||
19
ig0z
16.12.16
✎
10:27
|
Запрос = Новый Запрос;
Запрос.Текст = "ВЫБРАТЬ | ПеремещениеТМЦ.Ссылка КАК Ссылка, | ПеремещениеТМЦ.НомерСтроки, | ПеремещениеТМЦ.Номенклатура, | ПеремещениеТМЦ.Количество, | ПеремещениеТМЦ.ЕдиницаИзмерения, | ПеремещениеТМЦ.ПроизводственныйЗаказ |ИЗ | Документ.ПеремещениеТМЦ.ТМЦ КАК ПеремещениеТМЦ |ГДЕ | ПеремещениеТМЦ.Ссылка В(&ТЧ) |ИТОГИ ПО | Ссылка"; ВыделенныеСтроки = ЭлементыФормы.ТЧДокументы.ВыделенныеСтроки; ТаблицыЗначений = Новый ТаблицаЗначений; ТаблицыЗначений.Колонки.Добавить("Ссылка"); Для Каждого Строка Из ВыделенныеСтроки Цикл Стр = ТаблицыЗначений.Добавить(); Стр.Ссылка = Строка; КонецЦикла; Запрос.УстановитьПараметр("ТЧ",ТаблицыЗначений); Выгрузка = Запрос.Выполнить().Выгрузить(ОбходРезультатаЗапроса.ПоГруппировкамСИерархией); ТЧПодготовка = Выгрузка; ЭлементыФормы.ТЧПодготовка.СоздатьКолонки(); трындец вообще все путаю ... |
|||
20
Fedor-1971
16.12.16
✎
10:30
|
(19) уже переделай на массив ссылок, зачем тебе ТаблицаЗначений с одной колонкой?
тык пятница |
|||
21
Триша
16.12.16
✎
10:42
|
(19) Вот здесь ошибка:
Стр.Ссылка = Строка; Строка - это строка, а не ссылка, надо: Стр.Ссылка = Строка.Ссылка (или как там называется поле в строке) |
|||
22
Cool_Profi
16.12.16
✎
10:55
|
(18) Это не рекомендация. Это условие использования.
|
|||
23
ig0z
16.12.16
✎
11:48
|
Процедура ТЧДокументыПриАктивизацииЯчейки(Элемент)
Запрос = Новый Запрос; Запрос.Текст = "ВЫБРАТЬ | ПеремещениеТМЦ.Ссылка КАК Ссылка, | ПеремещениеТМЦ.НомерСтроки, | ПеремещениеТМЦ.Номенклатура, | ПеремещениеТМЦ.Количество, | ПеремещениеТМЦ.ЕдиницаИзмерения, | ПеремещениеТМЦ.ПроизводственныйЗаказ |ИЗ | Документ.ПеремещениеТМЦ.ТМЦ КАК ПеремещениеТМЦ |ГДЕ | ПеремещениеТМЦ.Ссылка В(&ТЧ) |ИТОГИ ПО | Ссылка"; ВыделенныеСтроки = ЭлементыФормы.ТЧДокументы.ВыделенныеСтроки; ТаблицыЗначений = Новый ТаблицаЗначений; ТаблицыЗначений.Колонки.Добавить("Ссылка"); Для Каждого Строка Из ВыделенныеСтроки Цикл Стр = ТаблицыЗначений.Добавить(); Стр.Ссылка = Строка; КонецЦикла; Запрос.УстановитьПараметр("ТЧ",ТаблицыЗначений); Выгрузка = Запрос.Выполнить().Выгрузить(ОбходРезультатаЗапроса.ПоГруппировкамСИерархией); ТЧПодготовка = Выгрузка; ЭлементыФормы.ТЧПодготовка.СоздатьКолонки(); КонецПроцедуры Процедура ТЧПодготовкаПриВыводеСтроки(Элемент, ОформлениеСтроки, ДанныеСтроки) ТекущаяСтрока = ЭлементыФормы.ТЧДокументы.ТекущаяСтрока; Если ДанныеСтроки.Ссылка = ТекущаяСтрока Тогда ОформлениеСтроки.ЦветТекста = WebЦвета.Черный; ОформлениеСтроки.ЦветФона = WebЦвета.БледноЗеленый; КонецЕсли; КонецПроцедуры вроде бы все ... |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |