Имя: Пароль:
1C
 
Получение Guid'a из соседней базы(ComОбъект)
,
0 KrabCore
 
03.02.16
10:41
Сильно не пинать, только учусь.

Самописка на бсп, УФ. Подключаюсь из своей самописки к базе УНФ через ком соединение и вытаскиваю запросом нужные мне документы. Создаю и записываю данные куда мне надо, и пытаюсь сделать запись в регистр соответветствий. НО при получении гуида ссылок мне возвращается Неопределено. Пробовал получить гуид разных ссылок(справочники, документы), пробовал так:

СоединениеС1С.String(Документ1С.Ссылка.УникальныйИдентификатор())

Собственно вопрос: как правильно получить гуид ссылки ком объекта?
1 NcSteel
 
03.02.16
10:43
Как получил "Документ1С"?
2 Rlogin
 
03.02.16
10:48
Com_Объект.string(Выборка.Ссылка.uuid())
3 Cyberhawk
 
03.02.16
10:50
Так у тебя документ еще не записан походу, вот и ссылка пустая
4 KrabCore
 
03.02.16
10:52
(1) получаю запросом из базы к которой я подключился через ком

Запрос = БазаИсточник.NewObject("Запрос");
Запрос.Текст = "ВЫБРАТЬ
|    РасходнаяНакладная.Ссылка КАК РасходнаяНакладная
|ИЗ
|    Документ.РасходнаяНакладная КАК РасходнаяНакладная
|ГДЕ
|    РасходнаяНакладная.Дата МЕЖДУ &ДатаНач И &ДатаКон
|    И РасходнаяНакладная.Проведен";
...
...
Выгрузка = Запрос.Выполнить().Выгрузить();
Для каждого Стр из Выгрузка Цикл
...
Документ1С = Стр.РасходнаяНакладная;


(3) да я же не создаю документ в базе, а считываю уже существующий
5 Serginio1
 
03.02.16
10:52
СоединениеС1С.XmlСтрока(Документ1С.Ссылка)
6 KrabCore
 
03.02.16
10:55
(2) Неопределено
(5) Ошибка при вызове метода контекста (XmlСтрока)
7 lEvGl
 
гуру
03.02.16
10:58
Соединение.String(Соединение.Документы.Ордер.НайтиПоНомеру("000000001").УникальныйИдентификатор()))
8 Serginio1
 
03.02.16
11:02
(6) Должен. Попробуй XMLString
9 NcSteel
 
03.02.16
11:02
(4) Почему в 4 БазаИсточник, а в (0) СоединениеС1С?
10 KrabCore
 
03.02.16
11:07
(9) потому что код разбит на несколько процедур

Локализировал проблему

в серверной процедуре получаю таблицу документов  - в них гуид еще есть, потом делаю:
АдресХранилища = ПоместитьВоВременноеХранилище(ТзДокументов, Новый УникальныйИдентификатор())

и возвращаюсь на клиент со списоком строковых представлений для выбора какие документы грузить

потом опять перехожу на сервер и достаю таблицу из хранилища:
ТзДокументов = ПолучитьИзВременногоХранилища(АдресХранилища);

и в этот момент у документов уже нет гуида. получается между серверными вызовами "теряется" гуид ком объекта

может можно как-то по другому передать таблицу ком объектов между серверными вызовами??
11 Cyberhawk
 
03.02.16
11:10
Добавь в ТЗ документов строковую колонку, содержащую ГУИД...
12 NcSteel
 
03.02.16
11:11
(10) Понятно, зачем на клиент прыгаешь?
13 Cyberhawk
 
03.02.16
11:13
(12) Флажками отмечает...
14 KrabCore
 
03.02.16
11:24
(11) не вариант, т.к. мне не только гуид ссылки нужен, а еще и гуиды номенклатуры, и прочие
15 Serginio1
 
03.02.16
11:31
Используй внешние отчеты
Как через оле задать отбор?
16 Рэйв
 
03.02.16
11:31
Предлагаю хитрый финт ушами:


УИДТам=СсылкаСОМ.УникальныйИдентификатор();
НовыйТам=Соединение.Справочники.Номенклатура.СоздатьЭлемент();
НовыйТам.Наименование=УИДТам;
Сообщить(НовыйТам.Наименование);    
:-)
17 Рэйв
 
03.02.16
11:32
проверил.Вроде работает
Выдавать глобальные идеи — это удовольствие; искать сволочные маленькие ошибки — вот настоящая работа. Фредерик Брукс-младший