|
v7: Программное формирование колонок табл.значений в цикле | ☑ | ||
---|---|---|---|---|
0
Mister-X07
29.05.14
✎
22:39
|
В выборке запроса формирую ТЗ:
... пока запрос.группировка(1)=1 цикл пока запрос.группировка(2)=1 цикл .... перем=... тз.НоваяКолонка(); тз.УстановитьЗначение(1,тз.КоличествоКолонок,перем); ... Возникает ошибка - номер за пределами значений. Почему? |
|||
1
Mister-X07
29.05.14
✎
22:39
|
поправка
тз.УстановитьЗначение(1,тз.КоличествоКолонок(),перем); |
|||
2
Mister-X07
29.05.14
✎
22:41
|
в качестве перем надо понимать не служебное слово ))
|
|||
3
Мигало
29.05.14
✎
22:41
|
Строка то есть в тз ?
|
|||
4
hhhh
29.05.14
✎
22:43
|
а тз.НоваяСтрока() ??
|
|||
5
Mister-X07
29.05.14
✎
22:48
|
да спасибо, значит надо так:
... тз = создатьОбъект("ТаблицаЗначений"); тз.НоваяКолонка(); тз.новаяСтрока(); пока запрос.группировка(1)=1 цикл пока запрос.группировка(2)=1 цикл .... _перем=... тз.НоваяКолонка(); тз.УстановитьЗначение(1,тз.КоличествоКолонок(),_перем); ... |
|||
6
Mister-X07
29.05.14
✎
22:48
|
значит первая колонка будет служебная
|
|||
7
kobzon
29.05.14
✎
22:51
|
А об следующие строки снова будет спотыкаться?
|
|||
8
Mister-X07
29.05.14
✎
22:51
|
хм, а пробовал кто-то присваивать имена колонок через переменные в цикле/выборке или это не возможно - только через индексы создавать/обращаться к колонкам ТЗ?
|
|||
9
Mister-X07
29.05.14
✎
22:52
|
(7) хватит и одной строки
|
|||
10
Мигало
29.05.14
✎
22:53
|
(8) Возможно. Даже возможно иметь все колонки с одинаковым индетификатором
|
|||
11
Mister-X07
29.05.14
✎
22:54
|
(10) имена колонок нужны разные, потом по них искать нужные значения из строки нужно будет
|
|||
12
Mister-X07
29.05.14
✎
22:55
|
+ как?
|
|||
13
kobzon
29.05.14
✎
22:55
|
Имена какие? к1, к2, к3?
|
|||
14
Mister-X07
29.05.14
✎
22:57
|
(13) наименование номенклатуры
|
|||
15
Мигало
29.05.14
✎
23:01
|
Код номенклатуры пиши в название колонки
|
|||
16
kobzon
29.05.14
✎
23:02
|
А если выборке например присвоить Номенк = Запрос.Номенклатура;
И дальше: Тз.НоваяКолонка(Номенк); |
|||
17
Mister-X07
29.05.14
✎
23:05
|
НоваяКолонка(<Идентификатор>,<Тип>,<Длина>,<Точность>,<Заголовок>,<Ширина>,<Формат>,<Положение>)
хм, а можно ли в качестве Идентификатор писать переменную как в (16), я всегда помещал туда конкретную строку? |
|||
18
Mister-X07
29.05.14
✎
23:06
|
или выражение которое возвращает строку
|
|||
19
Mister-X07
29.05.14
✎
23:11
|
я лично не встречал такое решение, только через индексы
|
|||
20
kobzon
29.05.14
✎
23:14
|
(19) может не прокатить. Делай значит через индексы)
|
|||
21
Mister-X07
29.05.14
✎
23:16
|
(15)
Тз.НоваяКолонка(запрос.ТМЦ.код); думаешь прокатит? |
|||
22
Мигало
29.05.14
✎
23:19
|
(21) Точнее так
Тз.НоваяКолонка("К" + запрос.ТМЦ.код) // Вдруг код это число Если снаименованием то придется делать так Переменная = СокрЛП(Запрос.ТМЦ.Наименование); Пока Найти(Переменная, " ") > 0 Цикл Переменная = СтрЗаменить(Переменная, " ", " "); КонецЦикла; Переменная = СтрЗаменить(Переменная, " ", "_"); Тз.НоваяКолонка(Переменная) |
|||
23
Mister-X07
29.05.14
✎
23:24
|
хм, в базе в номенклатуре код числовой, да еще и уникален по всему справочнику, тогда можно так:
тз.новаяКолонка(запрос.ТМЦ.код) |
|||
24
kobzon
29.05.14
✎
23:25
|
Да, кавычки обязательны)
Кон = Запрос.Контрагент; ТЗ.НоваяКолонка("_" + Кон); |
|||
25
Mister-X07
29.05.14
✎
23:28
|
(23) тогда будут колонки с номерами 3000, 2000... ))
|
|||
26
Mister-X07
29.05.14
✎
23:28
|
лучше как в (22)
Тз.НоваяКолонка("К" + запрос.ТМЦ.код) |
|||
27
Mister-X07
29.05.14
✎
23:30
|
и тогда можно будет искат в выборке в ТЗ:
ПолучитьЗначение(1,"К" + запрос.ТМЦ.код) |
|||
28
Mister-X07
29.05.14
✎
23:30
|
искать ))
|
|||
29
Mister-X07
29.05.14
✎
23:53
|
спс, попробую отпишусь
|
|||
30
Mister-X07
30.05.14
✎
11:31
|
(24) не канает - не верный идентификатор колонки
(22) + (27) все ок, спасибо еще раз |
|||
31
Mister-X07
30.05.14
✎
11:32
|
запрос.ТМЦ.код - тут число
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |