Ссылку 1С хранит в базе MS SQL в формате binary(16). Встроенное в MS SQL преобразование binary(16) в GUID (uniqueidentifier) идет по алгоритму, отличному от алгоритма 1С. Для того, чтобы из binary(16) получить ГУИД 1С, в запросе нужно произвести дополнительное преобразование. CAST(CAST(REVERSE(SUBSTRING( [_IDRRef], 9, 8)) AS binary(8))+ SUBSTRING([_IDRRef], 1, 8) as uniqueidentifier) Справочник _Reference47 взят для примера. Предварительно в нем создан элемент с принудительным Уникальным Идентификатором: ГУИД = Новый УникальныйИдентификатор("a0e55759-35f1-400c-8169-e5edbc2486ba"); ТестЭлемент = Справочники.Тест.СоздатьЭлемент(); Ссылка = Справочники.Тест.ПолучитьСсылку(ГУИД); ТестЭлемент.УстановитьСсылкуНового(Ссылка); ТестЭлемент.Наименование = "Принудительный ГУИД"; ТестЭлемент.Записать(); SQL вернул следующее: запрос SELECT [_IDRRef] ,_Description ,CAST([_IDRRef] as uniqueidentifier) GUID_SQL ,CAST(CAST(REVERSE(SUB...
1С 8.3 : Как сбросить пароли пользователей 1C на SQL Server или PostgreSQL Платформа 1С при работе на SQL Server хранит список пользователей в двух местах: в таблице v8users и в файле users.usr который бинарно расположен в таблице Params. Переименовываем таблицу v8users и строчку с файлом users.usr, что приведет к отсутствию в базе пользователей. MS SQL Server Management Studio: EXEC sp_rename 'v8users', 'v8users_old' GO UPDATE Params SET FileName = 'users.usr_old' WHERE FileName = 'users.usr' GO Открываем конфигуратор, платформа не спрашивает пользователя и пароль. При этом в SQL Server будет заново создана таблица v8users. Возвращаем всех пользователей не закрывая конфигуратора DROP TABLE v8users GO EXEC sp_rename 'v8users_old', 'v8users' GO UPDATE Params SET FileName = 'users.usr' WHERE FileName = 'users.usr_old' GO После выполнения запроса в списке пользователей появятся все пользователи 1С, останется только найти нуж...
Комментарии
Отправить комментарий