Имя: Пароль:
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С).
Проблемы невозможно решaть нa том же уровне компетентности, нa котором они возникaют. Альберт Эйнштейн