Имя: Пароль:
1C
1С v8
Строка получаемая из запроса
0 Septera
 
06.12.14
18:14
Платформа 8.1.15.14, запросом получаю строку длиною 10 символов, реквизит из которого получаю также имеет макс. длину 10, после выгрузки в ТЗ колонка наследует этот тип и такая вот борода получается:
// СтрокаТЗ.Код = "1234567890"
Стр = СтрЗаменить(СтрокаТЗ.Код, "0", "10");
// Стр = "1234567891"

1Ска съела "0" оО?! Первое что приходит привести значение к нужному типу еще в запросе, но таблица 200к+ и тесты показали задержку в 2с что вообще не желательно, может есть более интересные решения?
1 grate
 
06.12.14
18:29
попробуй в запросе объединить результат с одной строкой вида "ВЫБРАТЬ "12345678901" КАК КОД,...", а после выгрузки ТЗ просто удали эту строку
не знаю только, сильно ли это скажется на производительности
2 Septera
 
06.12.14
18:32
(1) а если не в запросе?
3 grate
 
06.12.14
18:37
(2) выгрузить колонку в массив, удалить колонку с неправильным типом, добавить колонку с нужным типом, загрузить значения в колонку
4 DmitrO
 
06.12.14
18:40
Стр = СтрЗаменить(Строка(СтрокаТЗ.Код), "0", "10");
Стр = СтрЗаменить(СтрокаТЗ.Код+"", "0", "10");
5 DmitrO
 
06.12.14
18:41
а вообще, это ошибка платформы.
6 Septera
 
06.12.14
18:47
Все намного проще, надо было просто присвоить новой переменной значение строки ТЗ и с ней уже работать:
// СтрокаТЗ.Код = "1234567890"
Перем1 = СтрокаТЗ.Код;
Перем1 = СтрЗаменить(Перем1, "0", "10");
// Перем1 = "12345678910"
7 DmitrO
 
06.12.14
18:49
(5)+ которой в 8.3.5.1248 уже нет, например..
8 Defender aka LINN
 
06.12.14
18:49
(5) Скуяли это ошибка?
9 Ник второй
 
06.12.14
18:52
И скорее всего все ооочеь просто, а именно реквизит
"Стр" имеет длину в 10 символов, поэтому и обрезает )))
10 RomanYS
 
06.12.14
18:52
(5) не ошибка
11 DmitrO
 
06.12.14
18:54
(8)встроенная функция СтрЗаменить не должна принимать тип первого аргумента

(9)если в контексте испытательного стенда есть реквизит типа Строка(10) с именем Стр, то это ошибка в геноме топик стартера :)
12 DmitrO
 
06.12.14
18:55
поправка:
(8)встроенная функция СтрЗаменить не должна принимать тип первого аргумента для образования типа результата функции
13 Defender aka LINN
 
06.12.14
20:40
(11) Дык она какбе и не принимает
Ошибка? Это не ошибка, это системная функция.