|
Таблица значений. Изменение у колонки типа значений | ☑ | ||
---|---|---|---|---|
0
Wefast
08.06.16
✎
12:29
|
Есть таблица значений. И колонки имеют строковый тип данных.
Нужно у одной из колонок изменить тип данных на Число, чтобы можно было ее свернуть. ТЧ.Колонки[1].ТипЗначения = ОписаниеТиповЧ; не работает, пишет что не доступно для записи. А вообще у меня есть Табличное поле(Табличный документ), я вставляю туда строки, и мне нужно их свернуть и вывести. Обработка у меня перебирает этот табличный документ и создает таблицу значений |
|||
1
Господин ПЖ
08.06.16
✎
12:32
|
перекладывай в другую колонку
|
|||
2
Pistol
08.06.16
✎
12:33
|
Создавать сразу нужого типа? Да ну, ерунда какая-то...
|
|||
3
Wefast
08.06.16
✎
12:36
|
(2) не могу, обработка много табличных частей перебирает, универсальная можно сказать.
|
|||
4
Wefast
08.06.16
✎
12:37
|
(1) перебором строк что ли?
|
|||
5
mistеr
08.06.16
✎
12:38
|
(3) Слишком универсальная.
|
|||
6
Pistol
08.06.16
✎
12:42
|
(3) странно, что такая универсальная обработка не умеет содержать в колонке тз несколько типов. Справочники, небось, тоже к строке приводишь?
|
|||
7
фобка
08.06.16
✎
12:44
|
(4) выгрузитьколонку() загрузитьколонку()
|
|||
8
Wefast
08.06.16
✎
12:57
|
(6) Ну смотри я создаю колонку и не указываю тип, таким образом тип может быть любыми. Но числовое значение он почему то все равно поместить в виде строки
|
|||
9
Pistol
08.06.16
✎
13:02
|
(8) обработка настолько универсальная, что обрела свой разум? Поставь бряк, посмотри на левую сторону присваивания, на правую...
|
|||
10
Pistol
08.06.16
✎
13:04
|
Код присваивания покажи в конце концов
|
|||
11
ptiz
08.06.16
✎
13:05
|
(8) Покажи, как создаешь таблицу
|
|||
12
mistеr
08.06.16
✎
13:09
|
(8) А что еще ты хотел получить из таб. документа? Самому надо к числу приводить.
|
|||
13
Wefast
09.06.16
✎
21:42
|
Вот что то такое у меня сейчас:
ТабДок = Файл; ТЗ=Новый ТаблицаЗначений(); //Считываем колонки Для Стр=1 По ТабДок.ВысотаТаблицы Цикл Если Стр>1 Тогда ТекСтр=ТЗ.Добавить(); КонецЕсли; ПустаяСтрока=истина; Для Кол=1 По ТабДок.ШиринаТаблицы Цикл Яч=ТабДок.Область(Стр, Кол); Если Яч.СодержитЗначение Тогда Зн=Яч.Значение; Иначе Зн=Яч.Текст; КонецЕсли; Если ТипЗнч(Зн)=Тип("Строка") И ПустаяСтрока(Зн) Тогда Зн=Неопределено; КонецЕсли; //Добавляем колонку Если Стр=1 Тогда Попытка Если ТипЗнч(Число(ТабДок.Область(Стр+1,Кол).Текст)) = Тип("Число") Тогда ТЗ.Колонки.Добавить(Зн,Новый ОписаниеТипов("Число",,,Новый КвалификаторыЧисла(10,2))); КонецЕсли; Исключение ТЗ.Колонки.Добавить(Зн,Новый ОписаниеТипов("Строка",,,,Новый КвалификаторыСтроки(30))); КонецПопытки; Иначе ТекСтр[Кол-1]=Зн; КонецЕсли; КонецЦикла; КонецЦикла; Возврат ТЗ; |
|||
14
Wefast
09.06.16
✎
21:46
|
В итоге я получаю сейчас таблицу значений ТЗ
Сотрудник7 | СУмма | Сотрудник8 | Сумма Создаю таблицу Таб1 = Новый ТаблицаЗначений; Таб1.Колонки.Добавить("Сотрудник",Новый ОписаниеТипов("Строка",,,,Новый КвалификаторыЧисла(50)),"Сотрудник"); Таб1.Колонки.Добавить("Сумма",Новый ОписаниеТипов("Число",,,Новый КвалификаторыЧисла(12,2)),"Сумма"); И пытаюсь выгрузить из моей таблицы колонку в новую таблицу Таб1.ЗагрузитьКолонку(ТЗ.ВыгрузитьКолонку("Сотрудник7"),"Сотрудник"); Отладкой если посмотреть то ТЗ.ВыгрузитьКолонку("Сотрудник7") является массивом с нужными мне данными. Но в итоге Табл1 после этого всего равно пустая |
|||
15
Pistol
09.06.16
✎
21:48
|
(13) если тип числа равен типу число... как это романтично... а если не равен?
|
|||
16
Wefast
09.06.16
✎
21:52
|
(15) Ну вызывается исключение и становится строкой
|
|||
17
Wefast
09.06.16
✎
21:53
|
(15) он Число(ТабДок.Область(Стр+1,Кол).Текст) тут вот не может к числу привести и уходит в исключение
|
|||
18
Pistol
09.06.16
✎
23:21
|
(14) использовать тип строки с квалификатором числа - бесценно...
Ты точно осознаешь, что делаешь? Строки в таблицу Александр Сергеевич добавлять будет? |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |