|
Запрос к таблице значений - ошибка "тип не определен..." | ☑ | ||
---|---|---|---|---|
0
Kaukass
09.10.15
✎
15:00
|
Помогите разобраться.
Создал ТЗ, полям задал нужные типы данных, но при попытке обратиться к ТЗ из запроса - вышеупомянутая ошибка. code табл = новый ТаблицаЗначений(); Знак = ДопустимыйЗнак.Любой; ПараметрыСтроки = Новый КвалификаторыСтроки(5,ДопустимаяДлина.Переменная); ПараметрыЧислаК = Новый КвалификаторыЧисла(15,3,Знак ) ; ПараметрыЧислаЦ = Новый КвалификаторыЧисла(15,2, Знак) ; ПараметрыДаты = Новый КвалификаторыДаты(ЧастиДаты.ДатаВремя); Массив = Новый Массив; Массив.Добавить(Тип("Строка")); ОписаниеТиповС = Новый ОписаниеТипов(Массив, , ПараметрыСтроки); Массив.Очистить(); Массив.Добавить(Тип("Дата")); ОписаниеТиповД = Новый ОписаниеТипов(Массив, , ПараметрыДаты); Массив.Очистить(); ОписаниеТиповК = Новый ОписаниеТипов(Массив, , ПараметрыЧислаК); Массив.Очистить(); ОписаниеТиповЧ = Новый ОписаниеТипов(Массив, , ПараметрыЧислаК); Массив.Очистить(); ОписаниеТиповЦ = Новый ОписаниеТипов(Массив, , ПараметрыЧислаЦ); табл.Колонки.Добавить("Период",ОписаниеТиповД); Табл.Колонки.Добавить("Документ",Новый ОписаниеТипов("ДокументСсылка.ПеремещениеТоваров")); Табл.Колонки.Добавить("Номенклатура", Новый ОписаниеТипов("СправочникСсылка.Номенклатура")); табл.Колонки.Добавить("Количество",ОписаниеТиповК); табл.Колонки.Добавить("Цена",ОписаниеТиповЦ); табл.Колонки.Добавить("Сумма",ОписаниеТиповЦ); .... Текст запроса .... "ВЫБРАТЬ | ТЗ.Период, | ТЗ.Регистратор, | ТЗ.Количество КАК Количество, | ТЗ.СУмма КАК СУмма |ПОМЕСТИТЬ ВТ |ИЗ | &ТЗ КАК ТЗ |; | |//////////////////////////////////////////////////////////////////////////////// |ВЫБРАТЬ | ВТ.Период, | ВТ.Регистратор, | СУММА(ВТ.Количество) КАК Количество, | СУММА(ВТ.СУмма) КАК СУмма |ИЗ | ВТ КАК ВТ | |СГРУППИРОВАТЬ ПО | ВТ.Период, | ВТ.Регистратор, | ВТ.Количество" code |
|||
1
GreatOne
09.10.15
✎
15:01
|
Типизурй колонки
|
|||
2
GreatOne
09.10.15
✎
15:02
|
ой, не прочитал.
|
|||
3
jurassic
09.10.15
✎
15:02
|
ошибку покажи
|
|||
4
GreatOne
09.10.15
✎
15:03
|
не вижу колонки "регистратор"
|
|||
5
jurassic
09.10.15
✎
15:04
|
(4) это её в табл нет. а в &ТЗ есть, наверное
|
|||
6
GreatOne
09.10.15
✎
15:06
|
(5) ну вот и получаем ошибку, тип не описан
|
|||
7
Kaukass
09.10.15
✎
15:11
|
И я не вижу. Накосячил при создании ТЗ -колонка Документ, а в запросе Регистратор.
|
|||
8
Kaukass
09.10.15
✎
15:12
|
Спасибо
|
|||
9
Kaukass
09.10.15
✎
15:30
|
Изменил название поля, но ошибка та же
текст code {Форма.ФормаОтчета.Форма(77)}: Тип не определен (ВЫБРАТЬ ТЗ.Период, ТЗ.Регистратор, ТЗ.Количество КАК Количество, ТЗ.СУмма КАК СУмма, ТЗ.Цена ПОМЕСТИТЬ ВТ ИЗ &ТЗ КАК ТЗ ; //////////////////////////////////////////////////////////////////////////////// ВЫБРАТЬ ВТ.Период, ВТ.Регистратор, СУММА(ВТ.Количество) КАК Количество, СУММА(ВТ.СУмма) КАК СУмма ИЗ ВТ КАК ВТ СГРУППИРОВАТЬ ПО ВТ.Период, ВТ.Регистратор, ВТ.Количество) |
|||
10
GreatOne
09.10.15
✎
15:33
|
покажи полный текст ошибки
|
|||
11
GreatOne
09.10.15
✎
15:34
|
ладно, вангую, что на клиенте запрос запускаешь
|
|||
12
Kaukass
09.10.15
✎
15:37
|
(10) Это и есть - полный текст.
Обычное приложение. УТ 10.3 |
|||
13
Kaukass
09.10.15
✎
15:51
|
Оставил одну колонку Дата в ТЗ, но все равно: "Тип не определен"
code ПараметрыДаты = Новый КвалификаторыДаты(ЧастиДаты.Дата); Массив = Новый Массив; Массив.Добавить(Тип("Дата")); ОписаниеТиповД = Новый ОписаниеТипов(Массив, , ПараметрыДаты); ВЫБРАТЬ | ТЗ.Период |ПОМЕСТИТЬ ВТ |ИЗ | &ТЗ КАК ТЗ |; | |//////////////////////////////////////////////////////////////////////////////// |ВЫБРАТЬ | ВТ.Период |ИЗ | ВТ КАК ВТ | |СГРУППИРОВАТЬ ПО | ВТ.Период" |
|||
14
ptiz
09.10.15
✎
15:53
|
Это как понимать?
Массив.Очистить(); ОписаниеТиповК = Новый ОписаниеТипов(Массив, , ПараметрыЧислаК); ... табл.Колонки.Добавить("Количество",ОписаниеТиповК); Вот тут и нет типа. |
|||
15
Kaukass
09.10.15
✎
15:57
|
(14) Так было описано в примере, который нашел.
Как правильно? А описания типов должны быть в одном массиве? |
|||
16
Kaukass
09.10.15
✎
16:11
|
(14) Покажи на примере таблицы с одним полем, как сделать?
|
|||
17
GreatOne
09.10.15
✎
16:13
|
(14) муахахах) и никто не заметил)
|
|||
18
GreatOne
09.10.15
✎
16:14
|
(16) сделай запрос только к регистратору - заработает
|
|||
19
Kaukass
09.10.15
✎
16:25
|
(18) Крегистратору тоже не работает
табл = новый ТаблицаЗначений(); ПараметрыДаты = Новый КвалификаторыДаты(ЧастиДаты.Дата); Массив = Новый Массив; ОписаниеТиповД = Новый ОписаниеТипов(Массив, , ПараметрыДаты); Табл.Колонки.Добавить("Регистратор",Новый ОписаниеТипов("ДокументСсылка.ПеремещениеТоваров")); ДатаЧ = ТекущаяДата(); Строка = Табл.Добавить(); Строка.регистратор = Документы.ПеремещениеТоваров.ПустаяСсылка(); Запрос = Новый("ВЫБРАТЬ | ТЗ.Регистратор |ПОМЕСТИТЬ ВТ |ИЗ | &ТЗ КАК ТЗ |; | |//////////////////////////////////////////////////////////////////////////////// |ВЫБРАТЬ | ВТ.Регистратор |ИЗ | ВТ КАК ВТ" ) ; Запрос.УстановитьПараметр("ТЗ", Табл); |
|||
20
Kaukass
09.10.15
✎
16:27
|
Выходит, какой то косяк при описании типов. Но какой????????????
|
|||
21
GreatOne
09.10.15
✎
16:29
|
мда.......................
Запрос (Query) На основании текста запроса Синтаксис: Новый Запрос(<ТекстЗапроса>) Параметры: <ТекстЗапроса> (необязательный) Тип: Строка. Текст запроса. Значение по умолчанию: Пустая строка. Описание: Создает запрос с указанным текстом. Пример: // Создание запроса с текстом. Запрос = Новый Запрос(ТекстЗапроса); // Создание запроса без текста. Запрос = Новый Запрос; |
|||
22
GreatOne
09.10.15
✎
16:30
|
раз 5 хотел попросить написать код целиком, но надеялся на лучшее
|
|||
23
GreatOne
09.10.15
✎
16:32
|
на будущее - пользуйся конструктором запроса с обработкой результата
|
|||
24
aleks_default
09.10.15
✎
16:44
|
(20) Да тот же самый!
Массив = Новый Массив; ОписаниеТиповД = Новый ОписаниеТипов(Массив, , ПараметрыДаты); - что ты понял из этого куска кода? |
|||
25
GreatOne
09.10.15
✎
16:50
|
(24) все куда тривиальнее. Запрос вообще не построен.
|
|||
26
aleks_default
09.10.15
✎
16:55
|
(25) у, ёёёё...
Короче,ТС, найди в ближайшем парке раздвоенную березу или осину, заложи между стволами руки и... |
|||
27
Kaukass
09.10.15
✎
20:54
|
(26)
Может быть, что ты пришел в этот мир с врожденными знаниями 1С и начал кодить раньше чем самостоятельно научился подтирать задницу, но я пока учусь и далеко не во всем разбираюсь. Было бы полезней, если бы ткнул в проблемные куски кода, сказал:"Уважаемый, у Вас тут и тут ошибки." |
|||
28
Kaukass
09.10.15
✎
21:00
|
Полетела деревянная птица. Не хватало этого:
МенеджерВТ = Новый МенеджерВременныхТаблиц; Запрос.МенеджерВременныхТаблиц = МенеджерВТ; |
|||
29
GreatOne
09.10.15
✎
21:06
|
(27) Эй, инфантил, тебя уже ткнули носом. Тут большинство пришли в 1С вообще без знаний что такое переменная.
Говорить "деточка, вот тут у тебя ошибка" - это детство, добро пожаловать в реальный мир, тут голову надо включать, ответственность и другие мужские радости. И никто тебя тут уважать не будет за просто так. В пособии разраба Радченко описана работа с отладчиком. Ты туда вообще не смотрел! (28) все не так. |
|||
30
GreatOne
09.10.15
✎
21:09
|
Если у тебя до сих пор не работает запрос, посмотри в СП как строится запрос вообще. Что такое конструктор и так далее. Ты не запрос строишь, ты переменной "запрос" присваиваешь какую-то хрень
|
|||
31
Kaukass
09.10.15
✎
21:19
|
Не обратил внимания на эту деталь. Думал, что нет разницы, когда и куда писать текст запроса.
Так тоже работает - проверил: Запрос = новый Запрос("ВЫБРАТЬ * ИЗ Справочник.Номенклатура"); Выборка = Запрос.Выполнить().Выбрать(); Сообщить(Выборка.Количество()); -------- Если работает в обоих случаях, то чем отличается Запрос = Новый Запрос(Текст); от запрос.Текст = Текст? |
|||
32
Kaukass
09.10.15
✎
21:25
|
(29) Ты - воспитанный человек. Я, бы обозвал олигофреном или имбицилом.
|
|||
33
jurassic
10.10.15
✎
06:06
|
(31) разные конструкторы
(32) пишется через Е, как и дебил |
|||
34
фобка
10.10.15
✎
06:15
|
(31) ничем
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |