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

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