Вход | Регистрация
 
1С:Предприятие :: 1С:Предприятие 8 общая

Строка неограниченной длины, имеет ли предел?

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

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

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

Описание:

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

Литералы:

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

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

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

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

Список тем форума
Рекламное место пустует  Рекламное место пустует
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.
Тема не обновлялась длительное время, и была помечена как архивная. Добавление сообщений невозможно.
Но вы можете создать новую ветку и вам обязательно ответят!
Каждый час на Волшебном форуме бывает более 2000 человек.