Имя: Пароль:
1C
 
При чтении из текстового файла строки большой длины обрезаются
,
0 dimm7310
 
31.05.16
16:52
Столкнулся с тем, что 1С при чтении из текстового файла строк большой длины (500-1000 символов) обрезает ее.

            Файл.Открыть(ИмяТекстФайла);
            Для ы = 1 По Файл.КоличествоСтрок() Цикл
                ПолноеОписание = ПолноеОписание + СокрЛП(Файл.ПолучитьСтроку(ы));
            КонецЦикла;



Файл.ПолучитьСтроку(ы) - возвращает обрезанную строку. (какой именно длины не счтал, что-то около 200-250 символов)

Есть способы обойти проблему?
1 dimm7310
 
31.05.16
16:56
1С 7.7
2 Valerianich
 
31.05.16
16:57
256 символов?
3 ДенисЧ
 
31.05.16
16:59
А как проверял? Не через Сообщить() ли?
4 dimm7310
 
31.05.16
17:01
(2) около того
(3) сначала увидел результат куда выгрузилась прочитанная строка (в ячейке экселевского файла), затем смотрел в отладчике, что получается при чтении и в переменной ПолноеОписание
5 bootini
 
31.05.16
17:12
(4) Может ПолноеОписание это уже реквизит элемента(формы) с установленной длиной строки?
6 dimm7310
 
31.05.16
17:18
(5) нет, это просто переменная
7 Fragster
 
гуру
31.05.16
17:19
(в ячейке экселевского файла)
8 dimm7310
 
31.05.16
17:23
(7) "затем смотрел в отладчике, что получается при чтении и в переменной ПолноеОписание"
9 ДенисЧ
 
31.05.16
17:24
отладчик больше 256 символов не покажет...
10 zenik
 
31.05.16
17:27
Сообщить(СтрДлина(СокрЛП(Файл.ПолучитьСтроку(ы)))) - проверь
11 dimm7310
 
31.05.16
17:28
Еще нюанс, при чтении файлов где несколько длинных строк в переменной ПолноеОписание так и остаются только первые 256 символов (такого реквизита формы нет и название переменной я менял).
12 dimm7310
 
31.05.16
17:30
СтрДлина возвращает правильное значение длинны (показывая что более 256 символов)
13 dimm7310
 
31.05.16
17:32
Может есть ограничение платформы на длину строки для переменных?
14 bootini
 
31.05.16
17:32
(11)
    Для НомерСтроки = 1 По КоличествоСтрок Цикл
        
        СтрокаТекста = ТекстДок.ПолучитьСтроку(НомерСтроки);
        
        
            Текст = Текст + СокрЛП(СтрокаТекста);
        

        
    КонецЦикла;

Хз... вот так попробовал забил в переменную три листа текста, ничего не образалось ((
15 dimm7310
 
31.05.16
17:35
(15) Хм, интересно
у тебя 1C 7.7 sql версия ?
16 bootini
 
31.05.16
17:36
(15) нет :)
1С:Предприятие 8.3 (8.3.7.2008)
17 dimm7310
 
31.05.16
19:30
в (11) я ступил, я же смотрел переменную в отладчике. СтрДлинА(ПолноеОписание) показывает что длинна строки более 2000. Значит обрезает при выводе в ячейку печатной формы
18 dimm7310
 
31.05.16
19:42
видио нужно записывать сразу в XLS файл а не сохранять  отчет в XLS формате
19 Mikeware
 
31.05.16
19:47
(18) XLS XLS'у рознь...
20 RomanYS
 
31.05.16
20:50
(18) да штатный сохраняльщик 7.7 обрезает строки и дико тормозит на больших файлах. Была какая-то ВК которая решала обе проблемы, не помню название.
21 Провинциальный 1сник
 
31.05.16
21:02
(20) Дикие тормоза решаемы. Этот баг проявляется, если у ячеек стоит признак "автовысота". Ставим фиксированную - и большие таблицы сохраняются быстро.
22 Провинциальный 1сник
 
31.05.16
21:05
Как вариант, можно сохранять в mxl, а потом открывать бесплатным восьмерочным "1с работа с файлами".
23 RomanYS
 
31.05.16
21:06
(21) спорить не буду, но сильно сомневаюсь. Уж больно нелинейная там зависимость: 3 тыс строк может сохранить за секунды, а 10 тыс будешь ждать час.
24 Mikeware
 
31.05.16
21:16
(23) а зачем спорить с фактами?
(20) mxl_doctor
25 mehfk
 
31.05.16
21:19
Тогда уж лучше Yoksel
26 Злопчинский
 
31.05.16
21:38
(23) это ты оптимист.. на 10 тысячах может и часа четрые висеть.
27 Злопчинский
 
31.05.16
21:44
28 dimm7310
 
01.06.16
09:38
Всем большое спасибо.
Выдавать глобальные идеи — это удовольствие; искать сволочные маленькие ошибки — вот настоящая работа. Фредерик Брукс-младший