Имя: Пароль:
1C
1С v8
Внешний источник данных с GUID-ами преобразовать в объекты?
,
0 pvase
 
14.08.19
17:19
Здравствуйте. Есть внешний источник данных - некая база в MS SQL. В ней есть таблица, а в таблице есть поле ID, в который пишутся идентификаторы объектов (например: 327:a1011c6f658d0bf011e9be9cead83452) надо эти GUID преобразовать в объекты. Может есть какой-то встроенный механизм, чтобы преобразовать при выводе формы списка таблицы внешнего источника вывести уже готовые объекты, а не строки с GUID (Кроме как для каждой строки делать ЗначениеИзСтрокиВнутр())?
1 Garykom
 
гуру
14.08.19
17:24
ПолучитьСсылку но как совместить хз
2 hhhh
 
14.08.19
17:34
(0) есть там типовые функции в общем модуле: сериализовать, десериализовать.

то есть:

1. делаете для примера таблицу значений ТЗ и в ней кучу ссылок.
2. делаете сериализовать(ТЗ)
3. смотрите в каком виде и формате оно у вас сериализовалось.
4. делаете из вашего MS SQL выгрузку, чтобы выгружало точно в таком же виде, чтобы потом можно было весь файл грузануть одной командой десериализовать.

5. профит.
3 Garykom
 
гуру
14.08.19
17:39
"таблицы внешнего источника" данных же

Было бы логично http://v8.1c.ru/overview/Term_000000795.htm задать ID = Ссылка и тупо соединив по ссылке в запросе с неким объектом метаданных в конфе/базе получить требуемое.
4 Garykom
 
гуру
14.08.19
17:51
Это изврат конечно.
Но что если сделать по всем объектам нужного вида в базе ВТ Ссылка|СтрокаGUID и засунуть ее в запрос по внешнему источнику ?
5 Garykom
 
гуру
14.08.19
17:54
(4)+ Ибо так понял просто привести в запросе Ссылка.УникальныйИдентификатор() к Строке никак.
Да XMLСтрока(Ссылка) шустрее пашет пишут
6 Вафель
 
14.08.19
17:55
(00) пишутся идентификаторы или таки вместе с типом?
7 Eiffil123
 
14.08.19
18:01
как гуид преобразовать в объект? как минимум нужно еще тип объекта и значения всех остальных реквизитов.
ссылку по гуиду можно получить (тоже зная тип ссылки, он в гуиде не хранится)
8 pvase
 
14.08.19
18:34
(6) Там типа такого: 150:811e005056b8ab6011e9a7953bc1c13f и 489:811e005056b8ab6011e9a86e276b6e11 я подозреваю, что с типом. Это записи из журнала регистрации SQLLite.
Сейчас делаю так:
            ДокТип = Справочники[СтрЗаменить(ИмяМетаданных,"Справочник.","")];
            Попытка
                Объект=  ЗначениеИзСтрокиВнутр(Лев(ЗначениеВСтрокуВнутр(ДокТип.ПолучитьСсылку()),46)+Прав(ТекСтр.Значение.Данные.Data,32)+"}");
                ТекСтр.Значение.Данные.Data = Объект;
            Исключение
                ТекСтр.Значение.Данные.Data = ТекСтр.Значение.Данные.DataPresentation;
            КонецПопытки;
9 pvase
 
14.08.19
18:35
Т.е. значения с видами, но без типов, тип находится в другом поле, что видно из кода в (8).
10 aleks_default
 
14.08.19
18:36
До ":" это тип
Независимо от того, куда вы едете — это в гору и против ветра!