Имя: Пароль:
1C
 
Чтение большого файла XLS
0 Shalun
 
naïve
27.10.25
12:16
Всем привет! Столкнулся с такой проблемой, что 1с читает ограниченное количество строк в файле xls, если быть точным, то 999. На 1000 строке выдает ошибку, что поле не найдено. Хотя та же 1с определяет верное количество строк в файле, в частности 1564строки.
Подскажите, в каком направлении копать?
1 vis
 
27.10.25
12:18
Символ 160 ?
2 Garykom
 
гуру
27.10.25
12:20
(0) Покажи код как читаешь xls
3 Garykom
 
гуру
27.10.25
12:21
4 mzelensky
 
27.10.25
12:27
(0) СтрЗаменить(СокрЛП(НомерСтроки), Символы.НПП, "")
5 Kongo2019
 
27.10.25
12:30
(0) Не верю. Я тут раз чуть не в 100 метров файл читал, проблем нету.
6 PR
 
27.10.25
12:33
После (1) ветку можно закрывать
7 Мультук
 
гуру
27.10.25
12:41
(0)

А я вангую за вот это

Строка(999) = "999"
Строка(1000) = "1 000"; //Пробел
8 Волшебник
 
27.10.25
12:42
9 Kongo2019
 
27.10.25
12:46
(7) И че? на выходе текст и ты уже рихтуешь его как хошь.
10 Ненавижу 1С
 
гуру
27.10.25
13:04
конечно 1С многим крови попила, придумав дефолтное форматирование чисел с использованием неразрывного пробела
11 Ненавижу 1С
 
гуру
27.10.25
13:05
(9) правильно не результат рихтовать, а правильный результат сразу получать
12 shuhard
 
27.10.25
13:06
(0)[в каком направлении копать?]
в сторону заявления по собственному
13 Kongo2019
 
27.10.25
13:16
(10) Это да, уже автоматом делаешь проверку на этот гробаный пробел, а вдруг откуда-то прибежит зараза.
14 vis
 
27.10.25
13:32
(7) Там не пробел, а (1)
15 vis
 
27.10.25
13:33
Похоже, ТС уже покинул нас
16 Прохожий
 
27.10.25
13:39
(13) Не правду говорите, там не только пробел.
"В «1С» в качестве разделителя групп разрядов используется пробел, точка или другая цифра, настраиваемая в параметрах программы. Для настройки разделителя в 1С, выберите «Настройки» -> «Параметры» -> «Общие» и найдите поле «Разделители». "
Это у каждого пользователя в одной базе может быть разное. Так что под одним юзером работает конвертор, а под другим не работает.
17 Прохожий
 
27.10.25
13:41
(8) "При стандартных региональных настройках для русского языка" с этого и начинается....
18 shuhard
 
27.10.25
13:42
(15) см (12) - ТС понял буквально =)
19 Kongo2019
 
27.10.25
13:43
(16)Ох ма. Нифига себе, а тока пробел ловил всегда. А оно вона как. Не знал о такой засаде. Видать никто туда никогда не лазил, слава тупым юзерам.
20 Shalun
 
naïve
27.10.25
13:54
Парни, всем спасибо!(1) и (7) оказалися прав!
Гребаный пробел засел. Я сделал так:

НомерСтроки = Строка(Row);
НомерСтроки = СтрЗаменить(НомерСтроки, Символ(160), "");

Теперь все работает!
Еще раз благодарствую!
21 unenu
 
27.10.25
13:56
(16) Чтобы не гадать с разделителями, при форматировании строки в число, логично собрать только цифры из строки.
Есть и БСП-метод или переделать по своему.
22 Timon1405
 
27.10.25
14:08
(21) или не велосипедить методы, а прочитать документацию)
https://its.1c.ru/db/metod8dev/content/2514/hdoc
https://its.1c.ru/db/metod8dev#content:2608:hdoc
23 Garykom
 
гуру
27.10.25
14:25
(22) Думаешь у ТС есть доступ к ИТС?

(20) Открой для себя функцию Формат
ЧислоСтрокой = Формат(ЧислоЧислом, "ЧГ=0");
24 vis
 
27.10.25
14:27
(23) СтрЗаменить тоже подходит
25 Timon1405
 
27.10.25
14:35
(23) часть ИТС видна без входа, это видно. печаль в том, что чтобы это найти там, надо знать что искать.
(4)(24) см (16) то что хардкод с СтрЗаменить работает у вас 10 лет, не значит что он будет работать у всех всегда. RTFM!
26 PLUT
 
гуру
27.10.25
15:07
(0) 1С умеет в табличный документ одним заклинанием читать. 2025 год на дворе
27 vis
 
27.10.25
15:51
(26) У всех может быть разная ситуация.
28 Fish
 
гуру
27.10.25
16:08
(24) Не всегда. См (16)
29 Fish
 
гуру
27.10.25
16:08
+(28) А вот "Формат()" всегда уберёт разделитель групп корректно.
30 PR
 
27.10.25
17:28
(26) Умеет
Чтобы обнаруживать ошибки, программист должен иметь ум, которому доставляет удовольствие находить изъяны там, где, казалось, царят красота и совершенство. Фредерик Брукс-младший