Вход | Регистрация
 
1С:Предприятие :: 1С:Предприятие 8 общая

Внешний источник данных, таблица MS SQL, не хочет принимать в качестве поля ключа GUID

Внешний источник данных, таблица MS SQL, не хочет принимать в качестве поля ключа GUID
Я
   pvase
 
27.05.20 - 19:27
Есть таблица MS SQL, в ней есть поле ID - оно уникальное и имеет тип Уникальный идентификатор (GUID). Так вот, когда выбираешь это поле в качестве поля ключа - то 1С ругается на ошибку SBL, и выдает запрос, в котором видно, что 1С пытается его преобразовать в Numeric(19,0). Неужели в качестве поля ключа можно указывать только целочисленные значения?
   pvase
 
1 - 27.05.20 - 19:37
Вот такую ошибку выдает 1С при попытке записать имзенения в базу с установленным полем ключа с типом GUID:
В процессе обновления информационной базы произошла критическая ошибка
по причине:
Ошибка SDBL:
Тип поля CAST(Reference24.Fld3156 AS NUMERIC(19, 0)) AS Fld3156 несовместим с типом поля Fld3156
   Ненавижу 1С
 
2 - 27.05.20 - 19:38
Внешний источник данных это тоже база 1С?
   pvase
 
3 - 27.05.20 - 19:41
(2) Нет, это база SSIS (SQL Server Integration Services).
   pvase
 
4 - 27.05.20 - 19:46
Похоже что любой другой идентификатор кроме Int, или то, что можно преобразовать в Int 1С не воспринимает. Даже поле Char(50) не проходит.
   Ненавижу 1С
 
5 - 27.05.20 - 19:46
Reference24.Fld3156 откуда такие имена во внешнем источнике?
   ДенисЧ
 
6 - 27.05.20 - 19:50
(5) не пали контору. Сказали же, из SSIS...
   Ненавижу 1С
 
7 - 27.05.20 - 19:53
+(6) пожалуй спалю
так вот ссылки 1С хранит в БД как binary(16), что сама же потом не понимает как внешний источник данных
   pvase
 
8 - 27.05.20 - 19:54
Все я понял, спасибо за наводку. Этот источник использовался как тип поля в справочнике. И когда я пытался поменять тип объекта, 1С пыталась преобразовать уже существующее поле. Когда в справочнике очистил ссылку - то все пошло, потом снова перепрописал на внешний источник и заработало.
   pvase
 
9 - 27.05.20 - 19:55
1С пыталась сохранить ссылки путем обратного преобразования нового ключа к типу старого ключа.
   Ненавижу 1С
 
10 - 27.05.20 - 19:56
(8) понял только, что ты изващенец
   pvase
 
11 - 27.05.20 - 19:58
(10) Делаю НСИ в 1С, данные грузятся из баз в отдельную базу, где потом или автоматом или ручками сводятся воедино. Для загрузки данных используются пакеты SSIS, которые надо запускать не только по расписанию, а и вручную путем выполнения SQL скрипта. Все сделал, а вот ссылки не мог, во теперь все пошло.
   bolero
 
12 - 27.05.20 - 20:03
не вникал, но одобряю

сам заколебался BYTEA <=> UUID конвертировать туда-сюда
   pvase
 
13 - 27.05.20 - 20:07
Не все так просто. Теперь 1С при сохранении справочника с таким полем с ссылкой на внешний источник, у которого ID - Тип GUID очищает этот реквизит. Вот не ожидал, ну что ж будем искать.
   pvase
 
14 - 23.06.20 - 08:16
Решение с GUID такое - надо делать поле с типом Текст, причем как в MS SQL (Char,VarChar,NVarChar), так и в 1С - Строка. Тогда 1С не будет думать что это идентификатор объекта и будет позволять туда сохранять GUID.
   Krolik Bezobraznik
 
15 - 23.06.20 - 09:21
(0) В SQL качестве key может выступать только число.
   ДенисЧ
 
16 - 23.06.20 - 09:24
(15) Чего???????
   МихаилМ
 
17 - 23.06.20 - 10:09
(0)
преобразуйте поле к бинари(16) ,кастом или   добавленем вычисляемого поля или сделайте представление.

Список тем форума
Рекламное место пустует  Рекламное место пустует
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.