Имя: Пароль:
1C
1С v8
Внедрение БСП в самописанную конфигурацию
,
0 VladSt
 
22.11.21
14:50
Добрый день
Есть самописанная база. Решил внедрить в нее БСП последнюю 3.1.4...
и все нормально внедрилось, когда я работаю в конфе, но вот все пользователи из справочника Польльзователи получились не авторизованными и не связанными с пользователями конфигурации.
В справочнике Пользователи есть реквизит ИдентификаторПользователяИБ (тип - УникальныйИдентификатор) - теперь он пустой. При установке значения в этот реквизит после записи он опять стирается.
Подскажите, может я не тем путем пошел? Вот код в обработке:

Процедура КнопкаВыполнитьНажатие(Кнопка)
    Выборка = ПользователиИнформационнойБазы.ПолучитьПользователей();
    Для Каждого ЭлементМассива Из Выборка Цикл
        ИмяПользователя = ЭлементМассива.Имя;
        ПолноеИмяПользователя = ЭлементМассива.ПолноеИмя;
        НайтиИУстановитьПользователя(ПолноеИмяПользователя, ЭлементМассива.УникальныйИдентификатор);
    КонецЦикла;
КонецПроцедуры

Процедура НайтиИУстановитьПользователя(ПолноеИмяПользователя, УникальныйИдентификатор)
    Запрос = Новый Запрос;
    Запрос.Текст =
    "ВЫБРАТЬ
    |    Пользователи.ИдентификаторПользователяИБ КАК ИдентификаторПользователяИБ,
    |    Пользователи.Ссылка КАК Ссылка,
    |    Пользователи.Наименование КАК Наименование,
    |    Пользователи.ПометкаУдаления КАК ПометкаУдаления
    |ИЗ
    |    Справочник.Пользователи КАК Пользователи
    |ГДЕ
    |    Пользователи.Наименование = &ПолноеИмя
    |
    |";
    Запрос.Параметры.Вставить("ПолноеИмя", ПолноеИмяПользователя);
    
    флПользовательУстановлен = Ложь;
    Рез = Запрос.Выполнить();
    Выборка = Рез.Выбрать(ОбходРезультатаЗапроса.Прямой);
    Если Выборка.Следующий() Тогда
        Если ЗначениеЗаполнено(Выборка.Ссылка.ИдентификаторПользователяИБ) Тогда
            Возврат;
        КонецЕсли;    
        Объект = Выборка.Ссылка.ПолучитьОбъект();
        Объект.ИдентификаторПользователяИБ = УникальныйИдентификатор;
        Сообщить(Объект.ИдентификаторПользователяИБ);
        Объект.Записать();
        Сообщить("" + Выборка.Ссылка + " " + Объект.ИдентификаторПользователяИБ);
    КонецЕсли;    

КонецПроцедуры
1 VladSt
 
22.11.21
14:57
Объект.ИдентификаторПользователяИБ = УникальныйИдентификатор;
Объект.Записать();

после записи очищается((
2 Мимохожий Однако
 
22.11.21
15:00
Банальный вопрос: Отладчиком смотрел?
3 mTema32
 
22.11.21
15:04
А мне вот интересно как "обычные" формы сочетаются с последней версией БСП?
4 VladSt
 
22.11.21
15:07
(2) Помогло)))
5 Dmitrii
 
гуру
22.11.21
15:10
(3) >> как "обычные" формы сочетаются с последней версией БСП?

А почему бы им и не сочетаться?
У БСП нет ограничения на использование с ОФ или УФ.
Наверное будут некоторые отличия при внедрении и использовании.
6 mTema32
 
22.11.21
15:12
(5) Отличие будет в том, что интерфейс функциональности БСП работать не будет. Тогда вопрос - зачем всю БСП было прикручивать?
7 Dmitrii
 
гуру
22.11.21
15:18
(6) >> интерфейс функциональности БСП работать не будет.

С чего бы ему не работать, если в конфигурации включено "Использовать управляемые формы в обычном приложении"?
8 pechkin
 
22.11.21
15:21
(6) там много функциональности помимо настройки форм
9 VladSt
 
22.11.21
15:21
(6) для того, чтобы плавно перейти из ОФ в УФ
10 Dmitrii
 
гуру
22.11.21
15:23
(0) А нафига вообще заморачиваться?
На форме справочника Пользователи выбрать Ещё...\Дополнительно\Пользователи информационной базы.
В открывшемся списке будут красным выделены элементы справочника Пользователи не сопоставленные пользователям ИБ.
Используя кнопку командной панели "Сопоставить" можно вручную сопоставить пользователей ИБ элементам справочника.

Конечно если у вас не сотни пользователей. Тогда сопоставлять ручками можно быстро устать.
11 VladSt
 
22.11.21
15:31
(10) Спасибо большое. Нигде не нашел этого решения, 2 дня потерял. !!!
Компьютеры — это как велосипед. Только для нашего сознания. Стив Джобс