|
При чтении из текстового файла строки большой длины обрезаются | ☑ | ||
---|---|---|---|---|
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
|
Всем большое спасибо.
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |