выгрузка таблицы значений в временную таблицу
02.12.2009
16:01
#1
"Друзья поделитесь опытом, делал ли кто запрос по таблице значений.
Проблема в том что мне нужно сгруппировать во временной таблице поле склад?
Выдает ошибку что не так?
{Форма.Форма(263)}: Ошибка при вызове метода контекста (Выполнить): {(5, 2)}: Недопустимое поле для группировки "Склад"
<>>ВременнаяТаблица.Склад КАК Склад,
Результат = Запрос.Выполнить();
по причине:
{(5, 2)}: Недопустимое поле для группировки "Склад"
<>>ВременнаяТаблица.Склад КАК Склад,
ТабКод = Новый ТаблицаЗначений;
ТабКод.Колонки.Добавить("Наименование", Новый ОписаниеТипов ("Строка"));
ТабКод.Колонки.Добавить("СуммаОбщ", Новый ОписаниеТипов ("Число"));
ТабКод.Колонки.Добавить("КолвоОбщ", Новый ОписаниеТипов ("Число"));
ТабКод.Колонки.Добавить("Склад", Новый ОписаниеТипов ("Строка"));
....
НоваяСтрока = ТабКод.Добавить();
НоваяСтрока.Наименование = ТекНоменклатура;
НоваяСтрока.СуммаОбщ = ТекСуммаОбщ;
НоваяСтрока.КолвоОбщ = ТекКолВоОбщ;
НоваяСтрока.Склад = ТекСклад;
....
Запрос = Новый Запрос;
Запрос.МенеджерВременныхТаблиц = Новый МенеджерВременныхТаблиц;
Запрос.Текст = "Выбрать * Поместить ВременнаяТаблица из &Таблица Как ВнешнийИсточник";
Запрос.УстановитьПараметр("Таблица",ТабКод);
Результат = Запрос.Выполнить();
Выборка = Результат.Выбрать();
Запрос.Текст = "ВЫБРАТЬ
| ВременнаяТаблица.Наименование КАК Наименование,
| ВременнаяТаблица.СуммаОбщ КАК СуммаОбщ,
| ВременнаяТаблица.КолвоОбщ КАК КолвоОбщ,
| ВременнаяТаблица.Склад КАК Склад,
| ВременнаяТаблица.КолвоСклад КАК КолвоСклад
|ИЗ
| ВременнаяТаблица КАК ВременнаяТаблица
|ГДЕ
| ВременнаяТаблица.СуммаОбщ <> 0
|ИТОГИ ПО
| Склад";
Результат = Запрос.Выполнить();
ВыборкаСклад = Результат.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам);"
Проблема в том что мне нужно сгруппировать во временной таблице поле склад?
Выдает ошибку что не так?
{Форма.Форма(263)}: Ошибка при вызове метода контекста (Выполнить): {(5, 2)}: Недопустимое поле для группировки "Склад"
<>>ВременнаяТаблица.Склад КАК Склад,
Результат = Запрос.Выполнить();
по причине:
{(5, 2)}: Недопустимое поле для группировки "Склад"
<>>ВременнаяТаблица.Склад КАК Склад,
ТабКод = Новый ТаблицаЗначений;
ТабКод.Колонки.Добавить("Наименование", Новый ОписаниеТипов ("Строка"));
ТабКод.Колонки.Добавить("СуммаОбщ", Новый ОписаниеТипов ("Число"));
ТабКод.Колонки.Добавить("КолвоОбщ", Новый ОписаниеТипов ("Число"));
ТабКод.Колонки.Добавить("Склад", Новый ОписаниеТипов ("Строка"));
....
НоваяСтрока = ТабКод.Добавить();
НоваяСтрока.Наименование = ТекНоменклатура;
НоваяСтрока.СуммаОбщ = ТекСуммаОбщ;
НоваяСтрока.КолвоОбщ = ТекКолВоОбщ;
НоваяСтрока.Склад = ТекСклад;
....
Запрос = Новый Запрос;
Запрос.МенеджерВременныхТаблиц = Новый МенеджерВременныхТаблиц;
Запрос.Текст = "Выбрать * Поместить ВременнаяТаблица из &Таблица Как ВнешнийИсточник";
Запрос.УстановитьПараметр("Таблица",ТабКод);
Результат = Запрос.Выполнить();
Выборка = Результат.Выбрать();
Запрос.Текст = "ВЫБРАТЬ
| ВременнаяТаблица.Наименование КАК Наименование,
| ВременнаяТаблица.СуммаОбщ КАК СуммаОбщ,
| ВременнаяТаблица.КолвоОбщ КАК КолвоОбщ,
| ВременнаяТаблица.Склад КАК Склад,
| ВременнаяТаблица.КолвоСклад КАК КолвоСклад
|ИЗ
| ВременнаяТаблица КАК ВременнаяТаблица
|ГДЕ
| ВременнаяТаблица.СуммаОбщ <> 0
|ИТОГИ ПО
| Склад";
Результат = Запрос.Выполнить();
ВыборкаСклад = Результат.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам);"
02.12.2009
16:36
#2
"1. Не понятно где тут у вас группировка.
2. Постарайтесь избегать одинаковых имен: попробуйте заменить так:
Запрос.Текст = "Выбрать ВнешнийИсточник.* Поместить ВТВременнаяТаблица из &Таблица Как ВнешнийИсточник";
> Запрос.УстановитьПараметр("Таблица",ТабКод);
> Результат = Запрос.Выполнить();
> Выборка = Результат.Выбрать();
> Запрос.Текст = "ВЫБРАТЬ
> | ВременнаяТаблица.Наименование КАК Наименование,
> | ВременнаяТаблица.СуммаОбщ КАК СуммаОбщ,
> | ВременнаяТаблица.КолвоОбщ КАК КолвоОбщ,
> | ВременнаяТаблица.Склад КАК Склад,
> | ВременнаяТаблица.КолвоСклад КАК КолвоСклад
> |ИЗ
| ВТВременнаяТаблица КАК ВременнаяТаблица
> |ГДЕ
> | ВременнаяТаблица.СуммаОбщ <> 0
> |ИТОГИ ПО
| ВременнаяТаблица.Склад";
"
2. Постарайтесь избегать одинаковых имен: попробуйте заменить так:
Запрос.Текст = "Выбрать ВнешнийИсточник.* Поместить ВТВременнаяТаблица из &Таблица Как ВнешнийИсточник";
> Запрос.УстановитьПараметр("Таблица",ТабКод);
> Результат = Запрос.Выполнить();
> Выборка = Результат.Выбрать();
> Запрос.Текст = "ВЫБРАТЬ
> | ВременнаяТаблица.Наименование КАК Наименование,
> | ВременнаяТаблица.СуммаОбщ КАК СуммаОбщ,
> | ВременнаяТаблица.КолвоОбщ КАК КолвоОбщ,
> | ВременнаяТаблица.Склад КАК Склад,
> | ВременнаяТаблица.КолвоСклад КАК КолвоСклад
> |ИЗ
| ВТВременнаяТаблица КАК ВременнаяТаблица
> |ГДЕ
> | ВременнаяТаблица.СуммаОбщ <> 0
> |ИТОГИ ПО
| ВременнаяТаблица.Склад";
"
02.12.2009
19:26
#3
А мне кажется, дело в том, что Склад у вас - это строка, да еще и, похоже, неограниченной длины.
~~~ Красноярск, ~~~
~~~ Красноярск, ~~~
02.12.2009
20:12
#4
Я наверно просто выразилась не верно на счет группировки, я новичок в 1С. я имела ввиду вот это мне нужно свернуть поле склад в Таблице значений и не потерять остальные колонки, пробовала свернуть().........!?!?!?, поэтому вот и решила использовать временные таблицы, но пока…и с ними...!?!?!?!?
А строка только лишь потому что если не делать описание типов, то таблицу значений не возможно использовать в запросе…выдает ошибку! Спс я попробую!
А строка только лишь потому что если не делать описание типов, то таблицу значений не возможно использовать в запросе…выдает ошибку! Спс я попробую!
03.12.2009
08:35
#5
"В примере "Склады" это таблица значений с колонками "Код" (строка 9), "Наименование" (строка 50) и "ВидСклада" (перечисление).
МВТ = Новый МенеджерВременныхТаблиц;
Запрос.МенеджерВременныхТаблиц = МВТ;
Запрос.Текст = "Выбрать ВнешнийИсточник.* Поместить ВТВременнаяТаблица из &Таблица Как ВнешнийИсточник";
Запрос.УстановитьПараметр("Таблица", Склады);
Запрос.Выполнить();
Запрос.Текст =
"ВЫБРАТЬ
| ВТВременнаяТаблица.Код,
| ВТВременнаяТаблица.Наименование,
| ВТВременнаяТаблица.ВидСклада КАК ВидСклада
|ИЗ
| ВТВременнаяТаблица КАК ВТВременнаяТаблица
|ИТОГИ ПО
| ВидСклада"
;
ДЗ = Запрос.Выполнить().Выгрузить(ОбходРезультатаЗапроса.ПоГруппировкам);
ДЗ.ВыбратьСтроку();"
МВТ = Новый МенеджерВременныхТаблиц;
Запрос.МенеджерВременныхТаблиц = МВТ;
Запрос.Текст = "Выбрать ВнешнийИсточник.* Поместить ВТВременнаяТаблица из &Таблица Как ВнешнийИсточник";
Запрос.УстановитьПараметр("Таблица", Склады);
Запрос.Выполнить();
Запрос.Текст =
"ВЫБРАТЬ
| ВТВременнаяТаблица.Код,
| ВТВременнаяТаблица.Наименование,
| ВТВременнаяТаблица.ВидСклада КАК ВидСклада
|ИЗ
| ВТВременнаяТаблица КАК ВТВременнаяТаблица
|ИТОГИ ПО
| ВидСклада"
;
ДЗ = Запрос.Выполнить().Выгрузить(ОбходРезультатаЗапроса.ПоГруппировкам);
ДЗ.ВыбратьСтроку();"
03.12.2009
12:28
#6
Нельзя делать группироваку по полю неограниченной длины! В описании типа строка желательно всегда ставить длину.
03.12.2009
12:44
#7
> Я наверно просто выразилась не верно на счет группировки, я новичок в 1С. я имела ввиду вот это мне нужно свернуть поле склад в Таблице значений и не потерять остальные колонки, пробовала свернуть().........!?!?!?, поэтому вот и решила использовать временные таблицы, но пока…и с ними...!?!?!?!?
Так и не понятно, что же хотите и как понимать фразу "свернуть поле склад".
Вам что надо из таблицы получить Список всех складов?
И свернуть и запрос дадут один резальтат, только свернуть сделает это с текущей таблицей, а запрос создаст новую.
Так и не понятно, что же хотите и как понимать фразу "свернуть поле склад".
Вам что надо из таблицы получить Список всех складов?
И свернуть и запрос дадут один резальтат, только свернуть сделает это с текущей таблицей, а запрос создаст новую.
Возможно ли получить из файла обновл. "cfu" для вер. 8.0 --> файл конфиг-ии "cf" для 8.1Раскрывающийся список на панели инструментов 8.1
Читают тему
(гостей: 1)