![]() |
|
Региональные установки информационной базы не работаю | ☑ | ||
---|---|---|---|---|
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) стр заменить тоже не бесплатный.
+ Неразрывный пробел может быть не только в числовых значениях, но и в строковых изначально, что приведет к искажению данных |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |