|
Внешнее соединение и хранилище значения | ☑ | ||
---|---|---|---|---|
0
tttiger
31.10.12
✎
13:33
|
Проблема заключается в том, что при изменении реквизита в регистре сведений соседней базы через внешнее соединение значение реквизита всегда = Неопределено. Реквизит имеет тип: ХранилищеЗначения.
Вот кусок кода: БазаТерминалов = Новый COMОбъект("V82.ComConnector"); ХЭ = БазаТерминалов.Connect("srvr='192.168.10.240'; ref='Label" + "'; usr='Auto'; pwd='88888888'; LicDstr = Y"); мзХЭ = ХЭ.РегистрыСведений.ХранилищеЭтикеток.СоздатьМенеджерЗаписи(); ХрЗн = Новый ХранилищеЗначения(ТабДок); мзХЭ.Этикетка = ХрЗн; мзХЭ.Записать(); Всю голову сломал. |
|||
1
Wobland
31.10.12
✎
13:34
|
ага, понял
|
|||
2
tttiger
31.10.12
✎
13:37
|
Реквизит Этикетка.
Т.Е. в коде я записал туда табдок, смотрю в базе он содержит хранилище значения, но если сделать: новТабДок = мзХЭ.Этикетка.Получить(); то новТабДок = Неопределено |
|||
3
tttiger
31.10.12
✎
13:48
|
Нет идей?
|
|||
4
Wobland
31.10.12
✎
14:00
|
(3) на таком количестве кода как в (2) нет
|
|||
5
tttiger
31.10.12
✎
14:15
|
(4) Код для первой базы :
БазаТерминалов = Новый COMОбъект("V82.ComConnector"); ХЭ = БазаТерминалов.Connect("srvr='192.168.10.240'; ref='Label" + "'; usr='Auto'; pwd='88888888'; LicDstr = Y"); мзХЭ = ХЭ.РегистрыСведений.ХранилищеЭтикеток.СоздатьМенеджерЗаписи(); мзХЭ.КодПродукции = "0000045123"; // мзХЭ.ДатаИзменения = Дата(1,1,1); // Это измерения мзХЭ.А4 = Истина; // ТабДок = Новый ТабличныйДокумент; ХрЗн = Новый ХранилищеЗначения(ТабДок); // Это реквизит мзХЭ.Этикетка = ХрЗн; мзХЭ.Записать(); Код для второй базы : Отбор = Новый Структура("КодПродукции, ДатаИзменения, А4", "0000045123", Дата(1,1,1), Истина); стрРег = РегистрыСведений.ХранилищеЭтикеток.Получить(Отбор); ТабДок = стрРег.Этикетка.Получить(); В результате ТабДок = Неопределено. Вопрос, возможно ли вообще передать каким то образом табличный документ через внешнее соединение? |
|||
6
Wobland
31.10.12
✎
14:16
|
(5) про доступность ТабДока сам читай, тогда я код глядеть не буду
|
|||
7
tttiger
31.10.12
✎
14:19
|
подобных ошибок для моей платформы не нашел. (8.2.14.540)
|
|||
8
tttiger
31.10.12
✎
14:21
|
(6) про какую доступность?
|
|||
9
Wobland
31.10.12
✎
14:22
|
(8) Доступность:
Тонкий клиент, веб-клиент, сервер, толстый клиент, внешнее соединение |
|||
10
tttiger
31.10.12
✎
14:22
|
а, ну если про эту
"Доступность: Тонкий клиент, веб-клиент, сервер, толстый клиент, внешнее соединение" то да написано, что доступно |
|||
11
tttiger
31.10.12
✎
14:23
|
:-)
|
|||
12
Wobland
31.10.12
✎
14:23
|
(10) то есть, можно. поздравляю
|
|||
13
tttiger
31.10.12
✎
14:28
|
(12) Спасибо за то что постебался...
|
|||
14
Wobland
31.10.12
✎
14:29
|
(13) на здоровье. избавишься от регистра, заходи
|
|||
15
tttiger
31.10.12
✎
14:38
|
(14) С какой целью избавляться от регистра? Проблема в нем?
|
|||
16
Wobland
31.10.12
✎
14:40
|
(15) ну ты ж для передачи ТабДока его прикрутил?
|
|||
17
tttiger
31.10.12
✎
14:53
|
(16) Не для передачи, для хранения. В нем куча табдоков хранится, и с соседней базы туда над добавалять их
|
|||
18
Aprobator
31.10.12
✎
14:54
|
(0) так хранилище то ты создаешь в текущей базе, а не в базе приемнике.
|
|||
19
Aprobator
31.10.12
✎
14:57
|
да и сам ТабДок как ты туда записываешь, тоже фиг передастся. Это внутри себя база все нормально видит. А чужое - нет.
|
|||
20
Aprobator
31.10.12
✎
14:57
|
надо и ТабДок тоже в той базе получать.
|
|||
21
Aprobator
31.10.12
✎
15:07
|
как то так вроде:
могу ошибаться конечно, но направление мысли, думаю понятно. |
|||
22
tttiger
31.10.12
✎
15:15
|
(20) Спасибо! Как раз уже в ту сторону начал думать. Только чего то идей нет как хранилище создать во внешнем соединении.
Ту вы файл используете, но все мои муки как раз от того, то поставлена задача избавится от файлового обмена вообще. Т.е. получается непосредственно можно передавать только чтроки, числа, даты и булево? |
|||
23
Aprobator
31.10.12
✎
15:17
|
(22) пробуй (22).
|
|||
24
Aprobator
31.10.12
✎
15:17
|
вернее пробуй (21).
|
|||
25
Aprobator
31.10.12
✎
15:21
|
можно конечно попробовать поиграться с ЗначениеВСтрокуВнутр и ЗначениеИзСтрокиВнутр.
Т.е. в текущей базе получаешь получаешь системное представление созданного значения и пытаешься его поднять в базе приемнике. Может для хранилища и прокатит. Хотя, тестить надо. |
|||
26
Aprobator
31.10.12
✎
15:23
|
вот тока вопрос, можно ли достучаться до методов глобального контекста в базе приемнике.
|
|||
27
Aprobator
31.10.12
✎
15:27
|
хотя через ХЭ.Выполнить(СтрокаКода) - должно доставаться все.
|
|||
28
tttiger
31.10.12
✎
15:31
|
(27) Ясно. Спасибо за участие.
|
|||
29
Aprobator
31.10.12
✎
15:36
|
(28) удачи.
|
|||
30
tttiger
31.10.12
✎
16:04
|
Вот так получилось:
СтрокаТабДок = ЗначениеВСтрокуВнутр(ТабДок); ХЭТабДок = ХЭ.ЗначениеИзСтрокиВнутр(СтрокаТабДок); ХЭХЗ = ХЭ.NewObject("ХранилищеЗначения", ХЭТабДок); мзХЭ.Этикетка = ХЭХЗ; |
|||
31
Aprobator
31.10.12
✎
16:06
|
(30) о кулль. Пасиб, что отчитался. А то самому лениво тестить было. Да и с хранилищем отдать значение для конструктора через запятую, не допер бы.
|
|||
32
Aprobator
31.10.12
✎
16:07
|
может есть смысл в книгу знаний впихнуть?
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |