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