Имя: Пароль:
1C
1С v8
Как переприсвоить значение элементу строки таблицы значений
,
0 Csar
 
25.03.14
09:50
Ребята, доброе утро.
Подскажите, пожалуйста, советом. Ситуация такая. Есть запрос, его результат выгружается в ТЗ. Далее я вижу, что значения одной из колонок выгружаются с пробелом на конце. Я циклом убираю пробел и переприсваиваю значение тому же элементу строки.
СокрЛП() работает хорошо, но новое значение не присваивается строке - остается старое значение с пробелом.
Для каждого Стр Из ТЗРез Цикл
Стр.НоменклатураКод = СокрЛП(Стр.НоменклатураКод);
КонецЦикла
1 Csar
 
25.03.14
09:52
отладчиком смотрел СокрЛП(Стр.НоменклатураКод) - без пробела, но после операции Стр.НоменклатураКод = СокрЛП(Стр.НоменклатураКод); значение все равно с пробелом.
Тип Стр.НоменклатураКод - строка.
2 ДенисЧ
 
25.03.14
09:52
колонка типизированная, имеет длину. Вот и добивается.
3 RomaH
 
naïve
25.03.14
09:53
а если так?

Для каждого Стр Из ТЗРез Цикл
Стр.НоменклатураКод ="11";
КонецЦикла

присваивается?
4 Csar
 
25.03.14
09:57
(2) точно.
(3) "11         " =)
Значит мне надо в запросе принудительно установить длину на символ меньше? А как это сделать?
5 Csar
 
25.03.14
09:58
(2) А можно ли отменить типизацию в выгруженной ТЗ? Т.е. что бы она была просто строкой?
6 Ненавижу 1С
 
гуру
25.03.14
10:00
(5) можно изменить типизацию на строка переменной длины
7 Csar
 
25.03.14
10:02
(6) подскажите, пожалуйста, как это программно сделать в выгруженной ТЗ?
8 Ненавижу 1С
 
гуру
25.03.14
10:10
(7) создать новую колонку с нужным типом, заполнить ее значениями, старую колонку удалить, новую переименовать в старое имя
9 Csar
 
25.03.14
10:13
(8) Спасибо!
Всем спасибо!
10 WildSery
 
25.03.14
10:59
Достаточно преобразовать прямо в запросе.
ВЫРАЗИТЬ(НоменклатураКод КАК СТРОКА()) КАК НоменклатураКод
Подставить столько символов, сколько в объявлении НоменклатураКод.
На выходе фиксированная строка станет динамической длины.