|
COMObject и неправильное представление\преобразование числа? | ☑ | ||
---|---|---|---|---|
0
НаборДанных
21.02.15
✎
12:23
|
Здравствуйте!
Что-то торможу, подмогните, кто чем может: http://prntscr.com/67w7ye Суть: Подключаюсь к другой базе по COM, пытаюсь записать данные в РС Адресный классификатор, остальное понятно из картинки. |
|||
1
НаборДанных
21.02.15
✎
12:25
|
Строка ЗаписьАдреса.Код = КлассификаторАдресов.Область(Сч, 1, Сч, 1).Текст; до скрина выглядела как ЗаписьАдреса.Код = Число(КлассификаторАдресов.Область(Сч, 1, Сч, 1).Текст);
Результат там ровно такой-же. |
|||
2
НаборДанных
21.02.15
✎
19:25
|
111
|
|||
3
Cyberhawk
21.02.15
✎
19:28
|
Что тебя смущает-то на картинке в подчеркнутом красным?
|
|||
4
Сергиус
21.02.15
✎
19:31
|
(0)КлассификаторАдресов это макет насколько я понимаю..ты его получаешь на стороне источника COM соединения?
|
|||
5
НаборДанных
21.02.15
✎
19:35
|
(3)То, что из макета я достаю одно значение, а присваивается по итогу другое.
(4) Нет макет у меня во внешней обработке. |
|||
6
НаборДанных
21.02.15
✎
19:38
|
Я так понял, уперся в ограничения типа вариант?
|
|||
7
Сергиус
21.02.15
✎
19:41
|
(6)А почему ты ЗаписьАдреса.Код присваиваешь строку? Делай
ЗаписьАдреса.Код = Число(..) |
|||
8
Cyberhawk
21.02.15
✎
19:42
|
"из макета я достаю одно значение" покажи на картинке
|
|||
9
НаборДанных
21.02.15
✎
19:44
|
(7)Строка ЗаписьАдреса.Код = КлассификаторАдресов.Область(Сч, 1, Сч, 1).Текст; до скрина выглядела как ЗаписьАдреса.Код = Число(КлассификаторАдресов.Область(Сч, 1, Сч, 1).Текст);
Результат там ровно такой-же. (8)Ну на картинке и видно, что, даже не в макете, в файле, одно значение, а после присваивания другое. |
|||
10
НаборДанных
21.02.15
✎
19:44
|
(9)- в макете* все же
|
|||
11
Cyberhawk
21.02.15
✎
19:45
|
(9) Блин, подчеркни или ткни - где увидеть два разных значения-то?
|
|||
12
Cyberhawk
21.02.15
✎
19:45
|
Я вижу дважды одно и то же число на картинке
|
|||
13
Cyberhawk
21.02.15
✎
19:46
|
А, дошло
|
|||
14
Рэйв
21.02.15
✎
19:46
|
(0)Несмотря на то, что простые типы свободна ходят по COM..
Лучше бы их через несколько точек не брать напрямую, а присваивать предварительно переменной. Может поможет:-) |
|||
15
НаборДанных
21.02.15
✎
19:47
|
(11) Бляха муха, ну что уже подчеркивать то?
9 900 000 000 000 001 000 000 000 9 900 000 000 000 000 000 000 000 |
|||
16
Рэйв
21.02.15
✎
19:47
|
не факт конечно, но ..
|
|||
17
НаборДанных
21.02.15
✎
19:47
|
(14)Испробовано, не помогло.
|
|||
18
НаборДанных
21.02.15
✎
19:49
|
Там есть иные значения типа:
2 200 000 000 000 000 000 000 000 2 300 000 000 000 000 000 000 000 Оо видимо округление хз из чего идет.... платформа .106 |
|||
19
Cyberhawk
21.02.15
✎
19:49
|
1. А если коду записи адреса присваивать в обертке "Число" - тоже единичка посередине будет?
2. Если точку останова поставить сразу после строки, где присваивается "Код", картинка не изменится? |
|||
20
НаборДанных
21.02.15
✎
19:52
|
(19)
1 - см(0) и (9) 2 - Нет не изменится, там и переменная введена, все же осле присваивания изменяется числ. |
|||
21
НаборДанных
21.02.15
✎
19:58
|
||||
22
НаборДанных
21.02.15
✎
19:59
|
В общем, вопрос, кто - то из многоуважаемых all ставил себе задачу автоматизации процесса обновления кладр'а на 100500 _ТИПОВЫХ_ _ФАЙЛОВЫХ_ базах? Как решали?
|
|||
23
Cyberhawk
21.02.15
✎
20:03
|
А не через СОМ все нормально отрабатывает в целевой инфобазе?
|
|||
24
Cyberhawk
21.02.15
✎
20:03
|
(можешь скинуть обработку с присвоением кода - проверю у себя)
|
|||
25
НаборДанных
21.02.15
✎
20:05
|
(23)Да конечно, это перенесенная во внешку загрузка Кладр.
(24) Держите https://dl.dropboxusercontent.com/u/37577359/ВОЗагрузкаАдресногоКлассификатора.epf |
|||
26
Cyberhawk
21.02.15
✎
20:49
|
У меня такой же косяк (8.3.5.1248, 8.2.16.352). В партнерке дан ответ, что это косяк СОМ-технологии и даны пути обхода: https://partners.v8.1c.ru/forum/topic/531252
|
|||
27
НаборДанных
21.02.15
✎
21:14
|
(26)Сейчас временно нет доступа в партнерку, сделай скрин всей страницы fireshot'ом и выложи в открытую плиз.
|
|||
28
НаборДанных
21.02.15
✎
21:15
|
Или тут запили ответ плиз!
|
|||
29
Сергиус
21.02.15
✎
22:29
|
Автор, проверил у себя - в табло тоже отображался код с единичкой. Но когда после этого зашел в удаленную базу, там был нормальный код с ноликами. У меня такое ощущение, что это именно проблема отображения в табло, а реально записывается нормальное число.
|
|||
30
Hmster
21.02.15
✎
23:23
|
(0) я тоже с такой проблемой давно столкнулся
v8: Передача больших чисел через ComConnector. проблема в том что в данном случае 1С работает с очень большими числами, а вот винда такие большие числа не поддерживает. я преобразовывал в строку и передавал строку, коннектор уже сам преобразовывает в число. |
|||
31
Torquader
22.02.15
✎
00:12
|
В OLE по-умолчанию, используется тип double - у него точность 17 знаков, так что если число имеет больше знаков, то нужно его передавать как строку - иначе они потеряются.
Понятно, что есть decimal, currency и big-int, но их поддержку никто не обещал, так как им было просто лень выбирать тип хранения от точности числа. |
|||
32
DirecTwiX
22.02.15
✎
00:28
|
(22) Я ставил. Был такой же косяк... Ответ в (31)
|
|||
33
Cyberhawk
22.02.15
✎
05:45
|
(28) https://www.dropbox.com/s/3z2e4o73t8y65b9/FireShot%20Capture%20-%20Платформа%20-%7D%20Проблемы%20при%20обработ_%20-%20https___partners.v8.1c.ru_forum_topic_531252.png?dl=0
Обрати внимание на то, что большинство тут толкуют о передаче чисел через COM туда, ане обратно. В (29) проверил - у меня код тоже записался корректно (без единички посередине). |
|||
34
НаборДанных
22.02.15
✎
10:19
|
Да, всем спасибо, сделал, закрываем, так и думал, что уперся в ограничения типа.
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |