Имя: Пароль:
1C
1С v8
Строка неограниченной длины, имеет ли предел?
0 roman383
 
04.02.20
10:52
1С 8.3.15 MSSQL2008
Имеем переменную ТекСтрока. Записываем в нее строку (очень большую, в блокноте сохраняю этот текст и файл занимает около 250 КБ)
ТекСтрока записываем в реквизит регистра сведений (тип Строка(0))
Записываем запись регистра в базу.

Читал что в MSSQL это поле имеет тип "text" который может достигать больших размеров около 2 ГБ
А вот переменная ТекСтрока имеет ли предел? Замечаю, что в реквизит регистра сведений записывается не весь исходный текст, думаю, что виновата переменная "ТекСтрока"
1 roman383
 
04.02.20
10:54
2 ДенисЧ
 
04.02.20
10:54
Ну если ты читал про MSSQL, то можешь посмотреть в структуру БД на самом сервере MSSQL... И увидеть, какой тип там создаётся...
3 mTema32
 
04.02.20
10:55
(0) Я тоже сталкивался.
Нужно было передать строку на клиент. Проблема решилась когда я эту переменную сделал реквизитом формы.
4 roman383
 
04.02.20
10:55
(2) речь не про SQL, а переменную в 1С
5 ДенисЧ
 
04.02.20
10:56
(4) А переменная в 1с нам дана Богом?
Сколько памяти хватит, столько и сохранит...
6 roman383
 
04.02.20
10:57
(5) если это действительно так то это хорошо (а это описано в документации?)
7 ДенисЧ
 
04.02.20
11:03
(6) А там что-то другое написано?
8 unenu
 
04.02.20
11:04
создайте бесконечный цикл по кабанению строки в переменную и убейте систему для теста
например так

стр = "";
счт = 0;
Пока Истина Цикл
Попытка
счт = счт + 1;
стр = стр + "1";
Исключение
Сообщить("приплыли" + счт);
КонецПопытки;
КонецЦикла;
9 roman383
 
04.02.20
11:06
Вот, что написано в документации:
Строка (String)

Описание:

Значения данного типа содержат строку произвольной длины в формате Unicode. Строка закодирована в формате UTF-16. При необходимости указания в строке суррогатной пары, следует использовать два вызова функции Символ() с последовательным указанием значения каждого code unit из суррогатной пары.

Литералы:

Литералы строкового типа представляют собой набор символов, заключенных в кавычки. Для задания в строке символа " (кавычка) необходимо записать две кавычки подряд ("").

Кроме того, допускаются «многострочные» строковые константы. В исходном тексте многострочные константы могут задаваться двумя способами:

● Между фрагментами, представляющими отдельные строки многострочной строки, не должно встречаться никаких символов, за исключением пробелов, переводов строки и строк комментариев.

● Каждая отдельная составляющая не замыкается кавычками, а на каждой последующей строке помещен символ переноса строки «|» (вертикальная черта). В этом варианте комментарии допускаются, если строка начинается с символа комментария «//».
10 roman383
 
04.02.20
11:06
(9) ничего про память
11 roman383
 
04.02.20
11:08
(8) сейчас попробую
12 roman383
 
04.02.20
11:17
(8) в моем примере (блокноте) около 280 тысяч символов
проделал тест с вечным циклом, там уже накопилось более 5 млн символов в переменной, так что видимо (5) прав. Всем спасибо, буду искать ошибку в другом месте
13 Ненавижу 1С
 
гуру
04.02.20
11:47
(12) кстати, работа с типом "текстовый документ" при будет быстрее чем со строкой