Имя: Пароль:
1C
1С v8
Региональные установки информационной базы не работаю
0 Tester
 
14.02.19
14:19
Всем привет.
Есть задача по выгрузке большого объема информации из 1С в файлы csv, в которых числа должны быть без разделителей триад и с точкой вместо запятой.
Не могу настроить параметры базы для своего сеанса. Для других пользователей должен остаться старый формат.

https://d.radikal.ru/d43/1902/ee/8edc7121032c.png

1С на сервере терминальном, подключаюсь на сервер по rdp напрямую.
Никто не сталкивался с таким?
1 palsergeich
 
14.02.19
14:22
Когда пихаешь число в цсв используй функцию формат явно.
2 palsergeich
 
14.02.19
14:29
Формат(число,"ЧГ=0")
3 palsergeich
 
14.02.19
14:36
Формат(число,"ЧРД=.; ЧГ=0")
Разделитель точка и без неразрывных пробелов по триадам
4 Tester
 
14.02.19
14:37
(3) спасибо, так и делаю, то т.к. вызовов функции очень много (миллионы), то ее выполнение тратит время.
5 palsergeich
 
14.02.19
14:41
(4) друг, когда ты в текстовый файл добавляет число - функция формат вызывается неявно, форматная строка берется из региональных настроек
Боюсь ничего ты не выиграешь в итоге.
Просто так ты в замере увидишь это строку, а при неявном - нет, только сумма всех действий в итоге будет меньше по факту потрачено.
На таких примерах очень хорошо видно, когда на клиенте по замерам сумма 2 секунды, а по факту затрачено 10.)
6 Tester
 
14.02.19
14:44
(5) это что-то новенькое, не знал. Если это действительно так, то выигрыша не будет. Но вопрос исходный не в этом, а почему все-таки не работают региональные настройки.
7 DrWatson
 
14.02.19
14:45
Попробуй явно указать код локализации сеанса - /VL <код локализации сеанса>
8 sieben
 
14.02.19
14:49
(6) Потому что ты путаешь локализацию сеанса и региональные установки базы.
9 Tester
 
15.02.19
11:55
В общем так и не добился толку.
Помогает только снятие флага "Использовать региональные настройки текущего сеанса" и установка нужных параметров. Но тогда настройки применяются для всех пользователей, работающих с разных терминалов. При установленном флаге изменение параметров ОС не влияет на формат 1С. Установка кода локализации сеанса, например, в конфигураторе и запуск 1С работает. Но при этом меняется и формат дат в том числе, тогда как мне надо код локализации ru_RU, но только с измененном форматом числе, а не дат. Ерунда какая-то...
10 palsergeich
 
15.02.19
14:06
(9) Когда котику делать нечего он...
11 Tester
 
15.02.19
15:20
(10) Он пытается как-то ускорить обработку, в которой Формат(число,"ЧРД=.; ЧГ=0") вызывается миллионы раз :(
12 Вафель
 
15.02.19
15:22
(11) может проблема не в формате, а вто м что ты например строки складываешь?
13 Ёпрст
 
гуру
15.02.19
15:27
а свой scv каким объектом хоть создаешь ?
Может, того, через FSO делать ?
14 Tester
 
22.02.19
10:11
(12) (13) Забил в итоге, так и не решив проблему.
15 Ёпрст
 
гуру
22.02.19
11:05
(14) через какой объект делаешь свой текстовый файлик ?
16 Ёпрст
 
гуру
22.02.19
11:08
может того, через  Новый COMОбъект("Scripting.FileSystemObject") попробовать лепить ?
17 palsergeich
 
22.02.19
11:13
(11) у тебя там ещё дохрена строк миллионы раз вызывается.
Реально какой процент от общего вносит формат?
18 Kigo_Kigo
 
22.02.19
11:13
Как вариант, просто попробовать перед записью строки ее форматнуть СтрЗаменить(СтрокаCSV, "РаделительТриад",""); СтрЗаменить(СтрокаCSV, ",",".")
19 palsergeich
 
22.02.19
11:17
(18) стр заменить тоже не бесплатный.
+ Неразрывный пробел может быть не только в числовых значениях, но и в строковых изначально, что приведет к искажению данных
Глупец, лишенный способности посмеяться над собой вместе с другими, не сможет долго выносить программирование. Фредерик Брукс-младший