Имя: Пароль:
   
1C
1С v8
ТабличныйДокумент -> ТаблицаЗначений с некороткими строками в ячейках
0 PiotrLoginov
 
12.05.18
17:08
Всем привет. Вопрос на засыпку:
Есть табличный документ. В нем таблица. Несколько колонок. В ячейках - строковые значения небольшой длины (до 20-и символов).
Как "превратить" в ТЗ с колонками, тип значений которых - строка в X символов (допустимая длина - переменная)? Например, 200 символов.

Заполнение в цикле таблицы с заранее добавленными колонками нужных типов не предлагать.
1 hhhh
 
12.05.18
17:13
(0) говори уже ответ, не томи.
2 PiotrLoginov
 
12.05.18
17:14
Код можно не подсказывать. Сам принцип интересует. На данный момент представляется, что это невозможно. Как ни крута СКД, использование в качестве источника данных табличного документа "забыли" прикрутить.
3 PiotrLoginov
 
12.05.18
17:15
(1) да не знаю я.  А то бы не спрашивал

Вообще, всегда использовал ПостроительЗапроса. И всегда испытывал неудобство от того, что длинастроки в итоговой ТЗ была равна длине самого длинного значения в ТабДоке.
4 PiotrLoginov
 
12.05.18
17:17
*длинастроки = длина у квалификатора строки в типе значения колонки
5 aka MIK
 
12.05.18
17:38
(0) сохраняй как Эксель и через адо грузи сразу в тз
6 aka MIK
 
12.05.18
17:40
(2) это помимо того что результат скд напрямую грузиться в тз
7 Wern
 
12.05.18
17:41
Какая то патологическая нелюбовь к циклам? Сильно сомневаюсь что всякие извращения будут быстрее чем цикл.
8 PiotrLoginov
 
12.05.18
17:50
(5) да, про ADO думал. Но - ну его... но спасибо.
(6) так этот результат еще надо "вынуть" из ТабДока

(7) ну зачем же нам извращения
9 Chameleon1980
 
naïve
12.05.18
17:54
через построитель отлично
10 PiotrLoginov
 
12.05.18
17:57
(9) ?
11 Chameleon1980
 
naïve
12.05.18
17:57
+к(9) не устраивает состряпанный построителем запрос - попробуй подсунуть свой с полями нужной длины
12 PiotrLoginov
 
12.05.18
17:58
(11) какой еще запрос ?  если источник - табдок, текст запроса пуст.
13 Chameleon1980
 
naïve
12.05.18
17:59
ммм. не смотрел
14 Chameleon1980
 
naïve
12.05.18
18:00
да. твоя правда - не задумывался
15 Chameleon1980
 
naïve
12.05.18
18:02
а на это мы не можем влиять?
16 Chameleon1980
 
naïve
12.05.18
18:02
17 Chameleon1980
 
naïve
12.05.18
18:06
доступные поля смогем поменять?
18 PiotrLoginov
 
12.05.18
18:06
в данном случае Артикул - это что?  Доступное поле?  Да, можем, но при выполнении построителя результат имеет тип значения каждой колонки не тот, который мы указали, а тот, который он вычислил исходя из данных в ТабДоке
19 PiotrLoginov
 
12.05.18
18:08
т.е. у меня было тестах такое:

Построитель.ДоступныеПоля.ИмяКолонки.ТипЗначения = Новый ОписаниеТипов("Строка", , Новый КвалификаторыСтроки(128));

Но после Построитель.Выполнить() тип опять сбрасывался на строку небольшую длины
20 Chameleon1980
 
naïve
12.05.18
18:09
http://prntscr.com/jgzdvs
было 9 стало 5

(19) а не переинициализируется опять где-то?
21 PiotrLoginov
 
12.05.18
18:11
(20) см. (19)
22 Chameleon1980
 
naïve
12.05.18
18:12
(21) см. сюда

http://prntscr.com/jgzet8
23 Chameleon1980
 
naïve
12.05.18
18:12
ЧЯДНТ?
24 Chameleon1980
 
naïve
12.05.18
18:13
хотя результату пока пофиг на эту длину
более 5ти символов получилось в результате.

А секрет расскажешь зачем?
25 PiotrLoginov
 
12.05.18
18:16
(23) да все ты правильно делаешь.  Но выполни построитель - увидишь, что тип строки "сбросился".

(24) зачем выгружать данные из ТабДока в ТЗ ?  Для случаев, когда какая-то информация хранится в макете.
26 PiotrLoginov
 
12.05.18
18:18
В итоге считаю задачу нерешаемой. В идеале хотелось бы вообще получить ТЗ с колонками неограниченной длины, а РезультатЗапроса в принципе такое не умеет. Так что будем заполнять ТЗ в цикле.

Всем спасибо.
27 Chameleon1980
 
naïve
12.05.18
18:18
(25) 1. да - я уже понял и написал "...хотя результату пока пофиг на эту длину

более 5ти символов получилось в результате. ..."

2. скорее интересует почему именно определенная длина
28 Chameleon1980
 
naïve
12.05.18
18:18
(26) ммм. ну ты заходи, если что :) я к тому, что может приснится решение.
29 mistеr
 
12.05.18
20:44
Решение — добавить в табдок строку со значениями нужной длины.

Но проблемы я так и не понял. К чему все эти извращения и причем здесь СКД?
30 Franchiser
 
naïve
13.05.18
10:06
Можно сделать ТЩ колонкой не ограниченной длины, для этого определи тип колонки
Новый ОписаниеТипов("Строка", , Новый КвалификаторыСтроки(0));
Но в запросе ты не сможешь не сортировать ни группировать по ней. Если определишь 1000 символов то в запросе будет работать все.
AdBlock убивает бесплатный контент. 1Сергей