Имя: Пароль:
1C
 
Цифры после запятой при сохранении ексель
0 smaharbA
 
12.05.11
23:14
1. Было такое 0% (0)
2. Такого не может быть 0% (0)
Всего мнений: 0

Куда пропадают ?
Все прижато вправо, может [:]||||||||||[:] - напомните.
(с региональными и прочими запятыми в ветку не соваться)

Начало тут
http://forums.kuban.ru/showthread.php?t=1101444
1 smaharbA
 
12.05.11
23:15
+ убить Асмодю и Рому за удафком и другие маты

перенесите в 77
2 smaharbA
 
13.05.11
08:42
апну, переведите в v7
3 andrewks
 
13.05.11
08:53
OO как открывает такой xls?
4 ДенисЧ
 
13.05.11
08:55
Что за дурная манера давать ссылки на чужие форумы?
Что, трудно тут описать картину?
5 andrewks
 
13.05.11
08:55
(4) он же в бане был
6 ДенисЧ
 
13.05.11
08:55
(5) Мне пофиг, куда он ходил.
7 smaharbA
 
13.05.11
08:59
(3) не зависит от открывальщика, дело не в нем

(4)
При сохранении печатной формы в ексель и интерактивно и программно отбрасывает знаки после запятой, причем оставляя то количество нулей сколько знаков было, региональные и прочие настройки в норме, поведение хоть от админа, хоть от убогого. На терминале.
При сохранении из адинески запущенной по сети из того же каталога программы (с шары) все нормально.

Еще неделю - две назад все сохраненные в ексель формы выглядят нормально
ексель тоже не при делах, сохраненные на другой машине нормально и в нем.
8 andrewks
 
13.05.11
09:03
(7) "причем оставляя то количество нулей сколько знаков было" - пример пожалуйста, чё-то в пятницу мозг не воспринимает таких верчёных фраз
9 andrewks
 
13.05.11
09:03
(7) 1. это то по теории говоришь, или проверял?
10 smaharbA
 
13.05.11
09:05
(8) в мокселе к примеру
12345.546

при сохраненении в ексель
12345.000

если
0.12

то соответственно
0.00
11 smaharbA
 
13.05.11
09:06
(9) конечно проверял
да и в екселях ранее сохраненные отчеты нормальны
(как компаунд разбирал то же - знаков нету)
12 andrewks
 
13.05.11
09:07
(10) э? не встречал такого. весьма странно
13 smaharbA
 
13.05.11
09:09
(12) вот и я также думаю, голову переломал уже, по сути ексель тут никаким боком, конвертер чисто адинесовский
пусть даже международные кривые - тогда тупо как текст или как дату восприняло, а тут и формат верный выставляет у ячейки
14 andrewks
 
13.05.11
09:09
а копипастом если - всё нормуль?
15 smaharbA
 
13.05.11
09:18
оно нормально и копипастом и если к примеру апостроф спереди вогнать
16 PuhUfa
 
13.05.11
09:19
(9) если на сервер просто залогинится (не терминалом), запустить 1С и сохранить форму, такая же бяда?
17 smaharbA
 
13.05.11
09:21
(16) нет возможности пока, только если подключиться консольно по рдп
(буквально неделя-две взад все было ок, правдо один момент - не помню когда была добавлена 8.2 базовая, других изменений не было)
18 Denp
 
13.05.11
09:27
случаем галка "Точность как на экране" не стоит?
19 andrewks
 
13.05.11
09:27
(17) нескромный вопрос: сервак перезагружать пробовал?
20 Drac0
 
13.05.11
09:33
Такая фигня во всех сессиях или в некоторых?
21 smaharbA
 
13.05.11
09:41
(20) в 3 точно, в остальных не проверял
22 smaharbA
 
13.05.11
09:41
(19) да
23 smaharbA
 
13.05.11
09:42
(18) ексель тут не приделах, сохраненный открывал и на других, пример мокселя в ссылке сабжа есть, там же и результат в екселе
24 andrewks
 
13.05.11
09:42
(21) на свежесозданном виндовом и/или 1с-овском юзере пробовал?
25 smaharbA
 
13.05.11
09:43
(24) нет пока, не подумал, счас попробую
26 Drac0
 
13.05.11
09:48
Обновления автоматические происходят? Если "само сломалось", то возможно дело в них.
27 smaharbA
 
13.05.11
09:50
создал нового виндового и нового адинесовского (с каталогом пользователя конечно) - таже песня
28 smaharbA
 
13.05.11
09:50
(26) обновлений нет
29 andrewks
 
13.05.11
09:52
(27) ещё более странно. осталось только предложить почистить кэш ;-)
30 andrewks
 
13.05.11
09:53
платформа 27-я? не менялась перед "этим"?
31 Drac0
 
13.05.11
09:54
А если снести и заново установить сам Excel? Так, для профилактики ... Некоторые косяки с ним так и решались порой.
32 smaharbA
 
13.05.11
10:02
(31) это не ексель ! при открытии в другом месте - тоже самое.

Скриншоты

http://www.n-d.ru/files/20110513_11_53_01.png
http://www.n-d.ru/files/20110513_11_57_47.png

от числа после запятой не зависит
33 smaharbA
 
13.05.11
10:02
(30) платформы при проверке 21,23,25,26
34 andrewks
 
13.05.11
10:03
(31) при чём здесь эксель, mxl2xls не пользует для сохранения msoffice
35 smaharbA
 
13.05.11
10:04
+(33) 21-ю не могу сменить по причине ВК от раруса, хотя проверял на нескольких разных конфах конечно
с тойже самой платформой и той же конфой (из тогоже места по сети) - на рабочей станции все ок
36 smaharbA
 
13.05.11
10:06
(34) при использовании mxl2xl как фильтра в екселе, мокселевские доки открываются со знаками (они и в адинеске со знаками)
(к слову mxl2xl не участвует в конвертации на сколько помню, это просто дополнение в поставке для возможности работы екселя с мокселем)
37 andrewks
 
13.05.11
10:09
(36) про mxl2xl врать не буду, подзабыл.
но в любом случае 1с при сохранении в xls msoffice не использует
38 smaharbA
 
13.05.11
10:09
это так
39 Denp
 
13.05.11
10:18
а как в эксель выгружаешь? может в коде накосячил?
40 smaharbA
 
13.05.11
10:21
(39) штатно конечно, в первую голову речь об интерактивном сохранении после Таб.Показать
41 smaharbA
 
13.05.11
10:21
+ речь не об одной формоче и не в одной конфигурации
42 Denp
 
13.05.11
10:51
на скрине не видно, так со всеми числами в таблице? и столбец НДС

сделать с нуля простейшую таблицу с парой числе БЕЗ форматирования и сохранить в эксель пробовал?
43 smaharbA
 
13.05.11
10:54
(42) со всеми, и не зависит от количества знаков после запятой, и хоть это .01 хоть 0.99
а вот количество нулей сохраняется по количеству знаков - писал выше
т.е.
если к примеру

хххх.345
то
хххх.000

если
хххх.5
то
хххх.0
44 smaharbA
 
13.05.11
10:55
+ и просто создавал таблису и в предприятии и в конфигураторе с одной заполненной ячейкой и сохранял интерактивно - все по прежнему
45 smaharbA
 
13.05.11
11:02
вот результат простейшей таблицы

http://www.n-d.ru/files/tab1.mxl
http://www.n-d.ru/files/tab1.xls
46 Denp
 
13.05.11
11:08
(45) прибить ветку 1С в реестре? может там что сохранилось кривые настройки
47 smaharbA
 
13.05.11
12:06
(46) см (27)
48 smaharbA
 
13.05.11
12:07
и это у всех пользователей во всех базах во всех формах и на 4-х платформах
- вывод очевиден казалось бы - проблема с ос, но где ?
49 andrewks
 
13.05.11
15:08
ну как?
50 smaharbA
 
13.05.11
19:09
(49) по прежнему, пока написал функцию (в ссылке сабжа есть болванка) - всем сказал интерактивно не сохранять, на всех формах расшифровка в первой строке вызывает меню "в ексель, по почте, обновить т т.п.)
51 Torquader
 
14.05.11
18:15
Попробовать поменять региональные настройки, так как 1С их не использует, а сохраняет как есть. Соответственно, точность она вписать успевает, а вот при записи строки в число с неправильной точкой как раз и происходит "обрезание".
То есть поставить разделитель триад и разделитель частей как в 1С (то есть просто скопировать).
Также интересно, а какой тип данных лежит в Excel после сохранения - число или строка ?
P.S. с Excel были разные глюки - всех и не упомнишь, но с числами "граблей" не видел (но я с дробными и не работаю, чтобы округление шло честно).
52 smaharbA
 
15.05.11
19:59
(51) в сабже читал в скобках ?
53 Torquader
 
15.05.11
22:36
Кстати, есть в Excel какая-то "фигня", когда числа превращаются в нули.
К 1С это, конечно, не относится, но я, писав макросы для работы в Excel видел, как все знаки числа становятся нулями (не помню уже, что я такого сделал).
Поэтому, в сохранённом файле проверить формат значения и выставить "общий", а в 1С убрать использование формата из ячеек (один формат при "перегонке" в другой может давать кучу "камней").
Удачи.
54 Кириллка
 
16.05.11
06:58
(0)забавная тема, хочешь расскажу из-за чего это и как лечить? :)
55 smaharbA
 
16.05.11
07:06
(54) да, хочу
в первые с такой байдой столкнулся
56 Кириллка
 
16.05.11
07:08
+54
1. У тебя где-то в коде есть:
  - получение принтера по-умолчанию;
  - работа с классом WbemScripting и его родня;
  - и всем известно, что ты тоже немножечко "Scripting Guy";
2. У тебя десятичная запятая - запятая, а не точка.

устраняешь одну из причин и будет у тебя счастье :)
57 Кириллка
 
16.05.11
07:10
я вот дефолтный принтер стал узнавать отсюда: "HKCU\Software\Microsoft\Windows NT\CurrentVersion\Windows\Device"
58 smaharbA
 
16.05.11
07:14
(56) а как дефолтный принтер влияет на интерактивное сохранение в ексель ?
и всегда в региональных была запятая - все сохранялось
(естественно региональные пробовал менять, о чем в скобках в сабже)

конечно все это гляну еще раз
59 smaharbA
 
16.05.11
07:16
и еще - дефолтный принтер определяется не через вми, а через шел.апликейшен, да и то интерактивно усером только когда надо его сменить, а это крайне редко
60 smaharbA
 
16.05.11
07:18
+ да и региональные у каждого по отдельности настраиваются - не могли они у всех смениться
61 smaharbA
 
16.05.11
07:20
+ могу дать доступ кто хотит позырить, давайте только айпи - в базах шибко не копаться, они все активны
62 Кириллка
 
16.05.11
07:35
(58)ну вот такой парадокс, у меня есть только теория происходящего - подтвердить ее документально не могу: после того, как воспользовался скриптовой виртуальной машиной, что-то там плохеет внутрях с подсистемой ole (эти список методов, начинающийся на olexxxx), и 1с-ка начинает делать хрень, при сохранении mxl в xls.

Подтверждается просто:
0. Создаем в предприятии руками mxl;
1. в одной ячейке пишем 123.45, выравниваем по левому краю;
2. в другой - 123.45, по центру;
3. в другой - 123.45, по правому;
4. тоже самое, но разделитель ",";
5. тоже самое, но разделитель "-";
6. сохраняем как xls;
7. проверяем, что поведение адекватно;
8. вызываем в этой сессии 1с код: oLocator = СоздатьОбъект("WbemScripting.SWbemLocator");
9. сохраняем как xls;
10. Наблюдаем неадекватность;
11. Открываем 1с поновой - опять все работает хорошо.
63 Кириллка
 
16.05.11
07:37
+62 такое же неадекватное поведение просиходит после использования общеизвестного кода Function GetDefaultPrinter() на vbscript
64 smaharbA
 
16.05.11
07:42
(62) спасибо, буду зырить, чего нарою так же сообщу
(буквально не так давно было все ок)
65 smaharbA
 
16.05.11
07:43
+ хотя вми только в двух базах немного пользуются, в остальных нету и таже песня

еще раз спасибо - зырю
66 Кириллка
 
16.05.11
07:46
(64)ну может в реестре заменил десятичный разделитель на "," и полетело счастье.
67 Кириллка
 
16.05.11
07:48
+66 уточнюсь: заменил разделитель на "," и пользуешься скриптовой виртуальной машиной. Одно без другого к такому эффекту не приводит.
68 andrewks
 
16.05.11
08:35
(67) эта херь потом продолжается только на протяжении сеанса, в котором было шаманство, или достаточно один раз "проколоться", и это г. прописывается где-то в недрах реестра и отравляет потом усерам жизнь?
69 Кириллка
 
16.05.11
09:55
(68)эта хрень действует на 1с, в которой шаманил, и до тех пор, пока эту 1с не закрыл.
70 smaharbA
 
16.05.11
10:19
Проверил на базе чистой от скриптов - таже хня
конечно если сменить разделитель на точку в региональных, сохраняет знаки, но и разделитель тогда точка - а оно еще две недели назад все работало
да и при сетевой работе с конфами как с теми в которых есть вми и с теми в которых его нет - все ок
71 Кириллка
 
16.05.11
10:24
(70)В ПриНачалеРаботыСистемы() сразу делаешь Возврат;
Выполняешь алгоритм из (62) и один фиг тоже самое?
72 smaharbA
 
16.05.11
10:27
(71) нету в этой базе вообще обращений ни к вми ни к другим объектам виндуза - чистая усн, да и на сетевых подключениях нет отброса концов
73 smaharbA
 
16.05.11
10:30
+ да и в таблице созданой из конфигуратора и сохраненной в ексель из конфигуратора (всего одна ячейка) - таже байда
74 Кириллка
 
16.05.11
10:35
(73)ну хз тогда

ps: openconf в конфигураторе тоже ведь использует скриптовую виртуальную машину.
75 smaharbA
 
16.05.11
10:38
(74) уже подумал, отключу и его счас
76 smaharbA
 
16.05.11
10:41
Запустил конфигуратор 26 - чистый от всего, создал таблицу, ввел 1234.54, прижал вправо, сохранил в ексель, получил 1234,00
77 Кириллка
 
16.05.11
11:11
(76)мож у тебя какой самопальный вирус вносит такое поведение? :)
78 TeddySlaf
 
16.05.11
11:43
а вдругие форматы пробовал сохранять? в HTML, в txt?
79 smaharbA
 
16.05.11
11:51
(77) может быть ))
вспомнил, что возился с пайтоном в ООо, как раз в направление уно+оле, может и сковырнул чего - правдо реестр не правил
(78) в хтмл и в текст все нормально
80 Serg_XX
 
16.05.11
13:24
Извините, все читать времени нет

Лист.Cells(НомСтр,НомКол).NumberFormat = "0,00";

и вроде никаких проблем
81 smaharbA
 
16.05.11
17:01
(80) читай сабж
82 andrewks
 
16.05.11
17:05
(81) на зверьков проверял?
83 smaharbA
 
16.05.11
17:12
(82) нет, в теории могут конечно быть, но вероятность крайне низка
84 smaharbA
 
16.05.11
17:13
проверю на досуге
85 Torquader
 
16.05.11
23:52
И ещё такой вопрос - разделитель для чисел и для денежных единиц выбран одинаково ?
Потому как я один раз выбрал разными - до сих пор на той машине Excel криво работает.
В твоём выложенном примере 1С считает разделителем точку, а ты её заставил как-то считать, что у тебя разделитель не точка - соответственно "умная" 1С обрезает всё, что видит до точки.
То есть, каким-то чудом удалось поменять системный (а не пользовательский формат региональных настроек).
Есть мнение, что нужно поискать в HKEY_LOCAL_MASHINE то, что отвечает за настройки (или в HKEY_USERS/DEFAULT) и попробовать поменять там.
Ещё, что даёт пример на VBScript если вывести CSTR(1.23) ?
86 smaharbA
 
16.05.11
23:53
одинаковые
ексель тут не причем - адинес сохраняет своей компонентой.
87 smaharbA
 
16.05.11
23:54
выдает как и положено 1,23
88 smaharbA
 
16.05.11
23:55
именно - зпт
89 Torquader
 
16.05.11
23:56
А если в mxl записать число с запятой вместо точки - как его сохранит ?
90 smaharbA
 
16.05.11
23:57
точно так же - отбрасывает после запятой сохраняя количество знаков (проверено на точке, запятой и дефисе)
91 Torquader
 
16.05.11
23:59
Я твой пример гоняю - так вот, то что написал ты - Excel, конечно, понимает, но почему-то Excel понимает как число с фиксированным количеством знаков, а то, что я дописываю - такое же число - то оно сохраняется в формате общий.
Где в 1С задаётся формат чисел по умолчанию ?
92 Torquader
 
17.05.11
00:01
Вопрос - если выравнивание поставить по левой стороне - тоже знаки отрезает или просто целое число получается ?
93 smaharbA
 
17.05.11
00:02
если центровать то как текст или дата - в зависимости от содержания
94 smaharbA
 
17.05.11
00:03
счас лениво уже снова зырить, но все что спрашиваешь проверялось
95 smaharbA
 
17.05.11
00:03
завтра могу дать доступ, счас уже спать иду
96 Torquader
 
17.05.11
00:05
Просто у тебя в примере в Moxel идёт просто текст, который потом должен стать числом - и он им "становится", но точку никто не воспринимает, как надо.
97 Torquader
 
17.05.11
00:07
Пока удалось получить, что 123,456 и 123-456 в mxl переводятся в 123 456 в Excel, то есть - пошёл как разделитель групп разрядов (вот откуда он это взял) ?
98 smaharbA
 
17.05.11
00:07
(96) воспринимает - читай ветку
99 Torquader
 
17.05.11
00:11
Ещё в Excel есть настройка "использовать системные разделители" - нет ли чего похожего в 1С ?
100 Torquader
 
17.05.11
00:13
Просто в 1С есть метод "ИспользоватьФормат", который задаёт формат для всей таблицы - может с ним что-то "напутано" ?
101 Torquader
 
17.05.11
00:20
И ещё mxl2xl.dll - это конвертер, который прописывается в Excel и позволяет открыть mxl-файлы - что открывает Excel если открывать mxl ?
102 Chameleon1980
 
17.05.11
04:50
(101) Судя по названию я бы сказал, что может конвертит в xl*
103 smaharbA
 
17.05.11
06:23
(101) все нормально открывает, в сабже об этом есть
104 smaharbA
 
17.05.11
06:24
(100) речь ведь не об одной таблице и не об одной конфигурации
105 Кириллка
 
17.05.11
07:35
(104)бинарники 1с родные ставил? или патченные?
106 smaharbA
 
17.05.11
07:39
(105) всякие, беда то в том, что точно байда в системе (еще зырю твои предположения) ибо две недели взад все было ок, а тут манагер отправила счет в екселе, а ей с той стороны указали на отсутствие копеек, а отправляли они регулярно
107 smaharbA
 
17.05.11
07:39
+ да и с тех же каталогов программ и баз по сети все ок
108 Кириллка
 
17.05.11
07:41
(106)а что их зырить? проблема либо воспроизводится, либо нет.
109 smaharbA
 
17.05.11
07:44
счаспока лениво разбираться уже, сделал затычку, после буду зырить, что насмотрю напишу
110 Torquader
 
18.05.11
00:37
(109) Ещё есть мнение, что независимо от платформы выполняется какой-то один зарегистрированный в реестре модуль, который берётся из одной папки 1С, а то, что саму программу запускают из другой - это ему не ведомо.
То есть можно попробовать дать пользователю права администратора, поставить заново 1С и только тогда смотреть, что получилось.
(А ещё лучше вычистить из реестра все ссылки на директории, где жила 1С).