Имя: Пароль:
1C
1С v8
Преобразовать ссылку в строку
,
0 DmitriiRylov
 
23.04.18
15:05
Уважаемые, прошу направить на путь

Суть: Если стороннее ПО, соединяется по COM. В ПО из 1С8 передается параметр в виде GUID (пример: Путь до программы + " " + GUID). Получили в ПО ссылку на объект.

Проблемка: в файловом варианте - работает, в клиент-серверном - нет
В клиент-серверном пишет ошибку "Не удалось Мой_Документ.ПолучитьСсылку по УИД 51a1b24c-0d8f-11e8-80cd-a0d3c1fbc177"

Пошли другим путем: решили передавать в ПО ссылку на объект, ссылку передали в формате "Мой документ 94031 от 20.04.2018 9:32:12"

Теперь надо преобразовать Строку в Ссылку.
1 Fragster
 
гуру
23.04.18
15:06
>В клиент-серверном пишет ошибку "Не удалось Мой_Документ.ПолучитьСсылку по УИД 51a1b24c-0d8f-11e8-80cd-a0d3c1fbc177"
ошибка другая
2 Fragster
 
гуру
23.04.18
15:06
>Пошли другим путем: решили передавать в ПО ссылку на объект, ссылку передали в формате "Мой документ 94031 от 20.04.2018 9:32:12"

ну и зря
3 _Дайвер_
 
23.04.18
15:07
(0) Ссылки на объекты хранятся только на одной стороне
4 _Дайвер_
 
23.04.18
15:08
Доработай вот это

>Проблемка: в файловом варианте - работает, в клиент-серверном - нет
В клиент-серверном пишет ошибку "Не удалось Мой_Документ.ПолучитьСсылку по УИД 51a1b24c-0d8f-11e8-80cd-a0d3c1fbc177"
5 Сияющий в темноте
 
23.04.18
15:57
Наверное,помимо гуид еще и тип документа нужно передавать?
6 DmitriiRylov
 
23.04.18
16:16
спасибо за ответы

(1) что имейте ввиду "ошибка другая"?
(2) понял, буду добивать GUID
(4) есть идея в какую сторону идти?
(5) в файловом варианте работает, не думаю что дело в типе
7 Fragster
 
гуру
23.04.18
16:31
(6).1 >что имейте ввиду "ошибка другая"?
то, чот на самом деле ошибка другая, не "Не удалось Мой_Документ.ПолучитьСсылку по УИД 51a1b24c-0d8f-11e8-80cd-a0d3c1fbc177"
8 DmitriiRylov
 
24.04.18
08:25
(7) Понял, есть идеи куда обратить внимание?
9 catena
 
24.04.18
08:56
(8)Т.е. точный текст ошибки принципиально не разглашается?
10 AlphaSpec
 
24.04.18
09:14
(0) Параметр какого типа передаете в ПолучитьСсылку()? Полагаю , Вам нужно Вашу строку GUID предварительно преобразовать в UUID:
УИД = Новый УникальныйИдентификатор("51a1b24c-0d8f-11e8-80cd-a0d3c1fbc177");
Ссылка = Мой_Документ.ПолучитьСсылку(УИД);
11 Рэйв
 
24.04.18
09:19
(0) Сделай
ЧтотоДляПередачи=ЗначениеВСтрокуВнутр(Ссылка);

Потом можно ЗначениеИзСтрокиВнутр (ПолученнаяСтрока) для обратной связи
12 b_ru
 
24.04.18
09:21
Как насчет передавать тип объекта и код для справочника или номер/дату для документа?
13 DmitriiRylov
 
24.04.18
09:43
(9) его нет, по Com соединению идет коннект Через пользователя Администратор, в журнале регистрации только запись, Сеанс. Завершение COM-соединение

Сам код передачи:
&НаКлиенте
Процедура ПечатьСвидетельство(Команда)
ПутьДоПрограммы = ПолучитьПутьДоПрограммыРегистрацияСвидетельств();
GUID = Объект.Ссылка.УникальныйИдентификатор();
ЗапуститьПриложение(ПутьДоПрограммы + " " + GUID);
КонецПроцедуры

Результат:
C:\Program Files (x86)\cert\Certificate.exe a28e1c04-3180-11e8-80d3-a0d3c1fbc177
14 Сияющий в темноте
 
24.04.18
10:13
(12)Код точно не надо,в случае криворуких обменов уникальность кода нарушается только в путь,пусть учится гуиды передавать,все умеют,и он научится,просто,очень вероятно,что он гуид из строки создает в одной базе,а ссылку по нему получает в другой со всеми вытекающими глюками
15 Сти
 
24.04.18
11:04
(0) Работает в файловой, не работает в серверной... Ссылка из строки УИД какой-то самописной функцией в одном из модулей 1С получается? Сервер эту функцию видит?

Просто если в стороннем приложении написано
connection.Документы.Мой_документ.ПолучитьСсылку(connection.newObject("УникальныйИдентификатор", УИДвВидеСтрокиИзПараметра) все должно работать.
16 b_ru
 
24.04.18
11:21
(14) В случае криворуких обменов надо обмены исправлять, а не гуиднёй заниматься. Коды элементарно делаются уникальными перед запуском в эксплуатацию обменов, а в дальнейшем, если вдруг что-то пошло не так, проще будет анализировать логи обмена и можно руками что-то поправиться, не влазя в код программы.
2 + 2 = 3.9999999999999999999999999999999...