Получение UUID через COM-соединение #654438


#0 by Dark_Warrior
Доброго всем дня. Прошу подсказки. Ситуация такая - 1с8, нужно через СОМ-соединение получить гуид реквизита Комментарий справочника СерииНоменклатуры (реквизит имеет тип СправочникСсылка.ВидыПроизводителей). Гуид элемента самого справочника СерииНоменклатуры я получил в выборке с помощью команды СтрокаТЗ_ЗаменяемыеЗначения.ГуидСерии = ИБ_УТ.String(Выборка_Номенклатура.Ref.UUID); Для реквизита хотел сделать так - СтрокаТЗ_ЗаменяемыеЗначения.ГуидПроизводителя = ИБ_УТ.String(Выборка_Номенклатура.Комментарий.Ref.UUID); но в ответ получил кучу нулей. Подскажите, в чем ошибка? И какой правильный вариант?
#1 by Wobland
уид реквизита? что это?
#2 by Cube
Куча нулей - пустая ссылка.
#3 by ssh2006
"Комментарий" ссылочного типа?
#4 by Dark_Warrior
Да, это и стало причиной всей работы. Кто-то решил что производителя надо вносить в реквизит Комментарий. Ну я посчитал что Уникальный Номер это и есть UUID. Я был не прав?
#5 by ssh2006
тогда
#6 by Dark_Warrior
что же не так?
#7 by ssh2006
комментарий не заполнен просто
#8 by Dark_Warrior
Пустая ссылка выдается у всех элементов, хотя комментарий заполнен практически у всех
#9 by ssh2006
это уже другой вопрос, нежели <Получение UUID через COM-соединение >. Выполни запрос не в коме, а в базе в консоли, проверь выводимое
#10 by Mordor_1C
А ты точно комментарий серии номенклатуры получаешь, а не комментарий самой номенклатуры.
#11 by hhhh
а почему ВЫборка_НОменклатура? ДОлжна же быть выборка детальных записей.
#12 by Mordor_1C
к
#13 by Dark_Warrior
оп, отмена. был прописан путь не к той базе. в этой действительно не заполнен реквизит Комментарий. Большое спасибо за советы. И можно попутно еще один вопрос?)    Ошибка при вызове метода контекста (ПолучитьСсылку)    СсылкаСерииНоменклатуры = Справочники.СерииНоменклатуры.ПолучитьСсылку(СтрокаТЗ.ГуидСерии); по причине: Несоответствие типов (параметр номер '1') Вылазит когда я пытаюсь из заполненной ТЧ взять гуид и по нему получить ссылку на объект в текущей базе
#14 by Dark_Warrior
Да, точно. Эта проблема уже решена
#15 by GenV
Объект УникальныйИдентификатор должен быть создан по строке в той же базе, где получаешь ссылку.
#16 by Dark_Warrior
можно немного подробнее?
#17 by andreymongol82
СсылкаСерииНоменклатуры = Справочники.СерииНоменклатуры.ПолучитьСсылку(новый УникальныйИдентификатор(СтрокаТЗ.ГуидСерии));
#18 by Kashemir
ИБ_УТ.CreateObject("УникальныйИдентификатор", СтрокаТЗ.ГуидСерии)
#19 by Kashemir
+ т.е. NewObject
#20 by Mordor_1C
#21 by Mordor_1C
Опередил ))
#22 by Dark_Warrior
{Форма.Форма.Форма}: Ошибка при вызове конструктора (УникальныйИдентификатор)        СсылкаСерииНоменклатуры = Справочники.СерииНоменклатуры.ПолучитьСсылку(новый УникальныйИдентификатор(СтрокаТЗ.ГуидСерии)); по причине: Недопустимое значение параметра (параметр номер '1')
#23 by Kashemir
Значит твой гуид вовсе не гуид.
#24 by Dark_Warrior
То есть? а что он тогда?
#25 by Kashemir
Откуда ж я знаю что ты там подсунул. Гуид 1С - 36 строка определенного формата.
#26 by andreymongol82
Я нечаяно. ) Из строки Синтаксис: Новый УникальныйИдентификатор(<Строка>) Параметры: Тип: Строка. Строка GUID. Строка задается в виде "XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX", где Х - символы обозначающие шестнадцатеричное число. Описание: Создает уникальный идентификатор из указанной строки GUID. Уникальность полученного таким образом идентификатора определяется уникальностью строки и поэтому не гарантирована. Пример:
#27 by Dark_Warrior
Получается я взял не то? Если тупо поменять в коде UUID на GUID то получается {Форма.Форма.Форма}: Метод объекта не обнаружен (GUID)
#28 by andreymongol82
Как бы получать гуид нужно методом объекта УникальныйИдентификатор;
#29 by andreymongol82
+ он же по аглицки UUID
#30 by andreymongol82
У тебя вот здесь что-то не строка в виде 36-ричного числа
#31 by andreymongol82
СтрокаТЗ.ГуидСерии
#32 by Dark_Warrior
Так все же гуид и есть UUID, и все было правильно?
#33 by Dark_Warrior
Что там может быть не то?
#34 by andreymongol82
да не знаю, но не строка вида "a763cfbb-f94f-4c67-8e13-0e96a3a7f353"
#35 by Dark_Warrior
нужно представить число в виде строки?
#36 by Reset
Это он пример из СП привел. В СП неправильная строка, да? Вот засланцы :)
#37 by andreymongol82
Еще раз из СП Строка GUID. Строка задается в виде "XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX", где Х - символы обозначающие шестнадцатеричное число. Спасибо. ))
#38 by Dark_Warrior
Вот участок поиска и записи: Для Каждого СтрокаТЗ Из ЗаменяемыеЗначения        Цикл   косяк в данный момент тут. я нуб, и понять в чем дело не могу. {Форма.Форма.Форма}: Ошибка при вызове метода контекста (ПолучитьСсылку)        СсылкаСерииНоменклатуры = Справочники.СерииНоменклатуры.ПолучитьСсылку(СтрокаТЗ.ГуидСерии); по причине: Несоответствие типов (параметр номер '1')
#39 by andreymongol82
Хорошо. Эти две строки нужно заменить Используя совет в и в
#40 by andreymongol82
При этом в СтрокаТЗ.ГуидПроизводителя и СтрокаТЗ.ГуидСерии должны быть строки длиной 36 символов, непустые и вида XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX
#41 by Dark_Warrior
В таком случае получается {Форма.Форма.Форма}: Ошибка при вызове конструктора (УникальныйИдентификатор)        СсылкаСерииНоменклатуры = Справочники.СерииНоменклатуры.ПолучитьСсылку(новый УникальныйИдентификатор(СтрокаТЗ.ГуидСерии)); по причине: Недопустимое значение параметра (параметр номер '1')
#42 by andreymongol82
сейчас в СтрокаТЗ.ГуидСерии там что?
#43 by andreymongol82
Какое значение?
#44 by Dark_Warrior
хм... там гуид, но укороченный. косяк - неправильно заданные параметры ячейки
#45 by Serginio1
УИД=Сервер.XMLСтрока(Сервер.NewObject("УникальныйИдентификатор","22151195-0def-11e2-b65b-c86000c70663"));
#46 by Dark_Warrior
Это что и как?
#47 by hhhh
надо не string, а XMLString имхо. string представление дает. Наверняка с черточками и прочей лабудой.
#48 by andreymongol82
Так копец запутали. Справочники.СерииНоменклатуры.ПолучитьСсылку - это COM или родной объект?
#49 by hhhh
ну, например Строка(ПКО) вам даст "Приходный кассовый ордер". А надо "ПриходныйКассовыйОрдер"
#50 by Reset
не, string дает "правильное" представление guid, в формате
#51 by Reset
"правильное" - по есть пригодное для обратного пребразования.
#52 by Reset
Соль видимо в . Где-то оттяпало кусок строки у него)
#53 by Dark_Warrior
Всем огромное спасибо, все заработало) да,именно неправильное ограничение в ячейке не давало коду работать нормально
Тэги: 1С 8
Ответить:
Комментарии доступны только авторизированным пользователям

В этой группе 1С