|   |   | 
| 
 | Справочник "Пользователи" | ☑ | ||
|---|---|---|---|---|
| 0
    
        Scorp1985 05.08.13✎ 06:58 | 
        Здравствуйте все!
 Делаю свою конфигурацию, необходимо привязать элементы справочника "Пользователи" к пользователям БД, а также создавать пользователя БД при создании элемента справочника, и наоборот, при входе пользователя БД создавать (если отсутствует) элемент справочника. Что где прописать, чтобы ничего не упустить? | |||
| 1
    
        IamAlexy 05.08.13✎ 06:59 | 
        открыть любую демку платформы и подглядеть     | |||
| 2
    
        Scorp1985 05.08.13✎ 07:01 | 
        (1) Ну там боюсь что-то упустить, поэтому и прошу указать все места, где нужно проработать...     | |||
| 3
    
        Галахад гуру 05.08.13✎ 07:06 | 
        (2) Это легко. Достаточно потом проверить результат.
 Если результата нет, то где-то ошибка. | |||
| 4
    
        Scorp1985 05.08.13✎ 07:09 | 
        (1) (3) буду признателен за конкретные указания что и где прописать, т.к. опыта совсем мало... =)
 Справочник пользователи у меня имеет лишь один реквизит: ИдентификаторПользователя, ФИО хранится в Наименовании. | |||
| 5
    
        Любопытная 05.08.13✎ 07:25 | 
        (4) Ну неужели опыта настолько мало, что нельзя демо открыть и посмотреть?
 Надо в модуле приложения прописать проверку при запуске системы. Никак они не привязываются на самом деле, тупо по коду находится и все | |||
| 6
    
        sonsimo 05.08.13✎ 07:30 | 
        (5) не всегда. Например, в БСП связь не по коду, а по идентификатору пользователя. Соответственно, такой порядок во всех конфах, построенных на БСП.
 Ну а то, что привязка программная - согласен | |||
| 7
    
        Scorp1985 05.08.13✎ 07:33 | 
        (5) (6) смотрю, там наворочено много) И как раз таки по идентификатору привязка идёт.     | |||
| 8
    
        Web00001 05.08.13✎ 07:46 | 
        Добавить БСП в самописную конфигурацию, уже предлагали?     | |||
| 9
    
        Любопытная 05.08.13✎ 07:48 | 
        (6) Я из БСП подсистему пользователей не щупала, она больно громоздкая. Для собственных целей обошлась старыми дедовскими методами из УТ 10.3.
 А так-то можно из БСП взять конечно | |||
| 10
    
        Scorp1985 05.08.13✎ 08:01 | 
        Взял из БП КОРП кусок модуля, а именно ПриНачалеРаботыСистемы()
 ПользовательОпределен = Ложь; ОписаниеОшибкиОпределенияПользователя = ""; Если Не ЗначениеЗаполнено(ПараметрыСеанса.ТекущийПользователь) Тогда Если УправлениеПользователями.ОпределитьТекущегоПользователя(ОписаниеОшибкиОпределенияПользователя) Тогда ПользовательОпределен = ЗначениеЗаполнено(ПараметрыСеанса.ТекущийПользователь); КонецЕсли; Иначе ПользовательОпределен = Истина; КонецЕсли; Если Не ПользовательОпределен Тогда Если ПустаяСтрока(ОписаниеОшибкиОпределенияПользователя) Тогда ОписаниеОшибкиОпределенияПользователя = "Ошибка идентификации пользователя. Обратитесь к администратору"; КонецЕсли; Предупреждение(ОписаниеОшибкиОпределенияПользователя); ЗавершитьРаботуСистемы(Ложь); Возврат; Иначе Теперь не могу понять, где привязать в документе при создании чтобы подставлялся элемент справочника для текущего пользователя(( | |||
| 11
    
        Галахад гуру 05.08.13✎ 08:03 | 
        При открытии, если документ новый.     | |||
| 12
    
        Cerera 05.08.13✎ 08:04 | 
        (10)
 Если ЭтоНовый() Тогда Пользователь=Справочники.Пользователи.НайтиПоНаименованию(ПараметрыСеанса.ТекущийПользователь); КонецЕсли; | |||
| 13
    
        Scorp1985 05.08.13✎ 08:12 | 
        (12) Спасибо, но ругается((
 {Документ.Накладная.Форма.ФормаДокумента.Форма(11,14)}: Переменная не определена (Справочники) Пользователь=<<?>>Справочники.Пользователи.НайтиПоНаименованию(ПараметрыСеанса.ТекущийПользователь); (Проверка: Тонкий клиент) {Документ.Накладная.Форма.ФормаДокумента.Форма(11,59)}: Переменная не определена (ПараметрыСеанса) Пользователь=Справочники.Пользователи.НайтиПоНаименованию(<<?>>ПараметрыСеанса.ТекущийПользователь); (Проверка: Тонкий клиент) {Документ.Накладная.Форма.ФормаДокумента.Форма(10,7)}: Процедура или функция с указанным именем не определена (ЭтоНовый) Если <<?>>ЭтоНовый() Тогда (Проверка: Тонкий клиент) | |||
| 14
    
        1Сергей 05.08.13✎ 08:13 | 
        ПриСозданииНаСервере     | |||
| 15
    
        Scorp1985 05.08.13✎ 08:24 | 
        В общем, вопрос опять с нуля, привязать код из БП Корп нормально не смог, не работает он. Даже новый пользователь в справочнике не создается.
 Хотелось бы просто и наглядно сделать, без лишних букв. Запустили программу - проверили пользователя - создали. Добавили пользователя в справочник - проверили - создали в БД. Опыта у меня маловато, чтобы разобраться в сложных процедурах типовых конфиг. | |||
| 16
    
        Любопытная 05.08.13✎ 08:27 | 
        (15)Ну ты ж сам все написал. Теперь напиши это на языке 1С и будет тебе счастье. Ну что ты на опыт-то пеняешь. Думаешь - если за тебя все напишут, у тебя опыта прибавится?     | |||
| 17
    
        1Сергей 05.08.13✎ 08:31 | 
        (15) конкретные вопросы задавай     | |||
| 18
    
        George Wheels 05.08.13✎ 08:38 | 
        (15) БП КОРП наверное обычное приложение (у нас так). А у тебя я так понял УФ.     | |||
| 19
    
        Scorp1985 05.08.13✎ 08:41 | 
        (18) Да, как раз до этого дошёл))
 Как в моделе управляемого приложения получить текущего пользователя, пробую пойти за ним на сервер, получаю: &НаСервере Функция ПолучитьТекущегоПользователяСервер() Экспорт НайденноеЗначение = ПараметрыСеанса.ТекущийПользователь; Возврат НайденноеЗначение; КонецФункции // Процедура - обработчик события "При начале работы системы". // Процедура ПриНачалеРаботыСистемы() ТекПользователь = ПолучитьТекущегоПользователяСервер(); {МодульУправляемогоПриложения(11,20)}: Процедура или функция с указанным именем не определена (ПолучитьТекущегоПользователяСервер) ТекПользователь = <<?>>ПолучитьТекущегоПользователяСервер(); (Проверка: Тонкий клиент) | |||
| 20
    
        Любопытная 05.08.13✎ 08:45 | 
        (19) не надо ничего писать в модуле управляемого приложения.
 Вот тебе: в модуле сеанса Процедура УстановкаПараметровСеанса(ТребуемыеПараметры) ПользовательИБ = ПользователиИнформационнойБазы.ТекущийПользователь(); Пользователь = Справочники.Пользователи.НайтиПоКоду(ПользовательИБ.Имя); Если Пользователь = Справочники.Пользователи.ПустаяСсылка() Тогда //Создаем нового пользователя в справочнике Пользователь = Справочники.Пользователи.СоздатьЭлемент(); Пользователь.Код = ПользовательИБ.Имя; Пользователь.Наименование = ПользовательИБ.Имя; Пользователь.Записать(); КонецЕсли; //Инициализируем параметр сеанса ПараметрыСеанса.ТекущийПользователь = Пользователь.Ссылка; КонецПроцедуры В модуле документа &НаСервере Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка) Объект.ОтветственныйЗаСоздание = ПараметрыСеанса.ТекущийПользователь; КонецПроцедуры | |||
| 21
    
        Scorp1985 05.08.13✎ 08:58 | 
        (20) Спасибо, это уже более ли менее понятно))
 осталось только решить: ПараметрыСеанса.ТекущийПользователь = Пользователь.Ссылка; {МодульСеанса(15)}: Поле объекта не обнаружено (ТекущийПользователь) ПараметрыСеанса.ТекущийПользователь = Пользователь.Ссылка; | |||
| 22
    
        Любопытная 05.08.13✎ 09:16 | 
        А параметр сеанса вообще есть такой? Или на шару пишем?     | |||
| 23
    
        Любопытная 05.08.13✎ 09:19 | 
        (21) Более-менее понятно... ну обидно даже, честное слово. Это примитивное, оч. прямолинейное решение задачи. Там все ясно как белый день. А если не ясно, значит еще не дорос, значит садись и разбирайся - что неясно, почему неясно и как сделать так, чтобы прояснилось)     | |||
| 24
    
        Scorp1985 05.08.13✎ 09:25 | 
        (23) Ну тупенький я ещё, но я хочу подрасти))) А Вам большое спасибо!
 Только вот при создании документа в поле Пользователь - пусто :( | |||
| 25
    
        Любопытная 05.08.13✎ 09:30 | 
        (24) Печалька... Ну включай отладчик и смотри - почему же у тебя в поле Пользователь пусто.     | |||
| 26
    
        Любопытная 05.08.13✎ 09:31 | 
        Может у тебя там типы реквизитов не совпадают, может просто не дописал что-то. Тут уже своими мозгами организуйся     | |||
| 27
    
        Scorp1985 05.08.13✎ 09:31 | 
        (25) У меня почему-то если любому реквизиту значение присваиваю в ПриСозданииНаСервере, при открытии формы всё равно пусто((     | |||
| 28
    
        Любопытная 05.08.13✎ 09:39 | 
        (27) У меня модуль телепатии вчера шашлыками с коньяком отключился, так что с этой проблемой я тебе не помогу))Смею предположить, что что-то с формой ты сделал не так... ну выложи картинку формы из конфигуратора, мож тогда определю. 
 Но щас у меня модуль жадности включится, ибо кофе кончился и меня жаба задушит)) | |||
| 29
    
        Scorp1985 05.08.13✎ 09:42 | 
        (28) Можно тогда спросить - процедуры ПриСозданииНаСервере() и ПриОткрытии() нужно где-то ещё привязывать в документе, или они по названию сами привязываются?     | |||
| 30
    
        Scorp1985 05.08.13✎ 09:44 | 
        (28) Пытаюсь проверить вот так:
 &НаКлиенте Процедура ПриОткрытии(Отказ) Сообщить("Сообщение при открытии"); ПересчитатьСуммуНакладной(); КонецПроцедуры Никакого сообщения при открытии формы не наблюдаю :( | |||
| 31
    
        Любопытная 05.08.13✎ 09:44 | 
        см. свойства формы     | |||
| 32
    
        Любопытная 05.08.13✎ 09:45 | 
        кинь цф ф какую-нить файлопомойку, я посмотрю. Мне работать все равно лень     | |||
| 33
    
        Scorp1985 05.08.13✎ 09:49 | 
        (32) Добрая Вы, люблю я добрых людей)) особенно девушек, прям захотелось лично познакомиться))
 сф тут: http://sdrv.ms/13elFUy | |||
| 34
    
        Любопытная 05.08.13✎ 09:52 | 
        (33)Ха-ха     | |||
| 35
    
        Serg_1960 05.08.13✎ 09:53 | 
        ТС, я вот одного не пойму: почему ты тонкого клиента пытаешься всё время сделать толстым?
 Впрочем - бог с тобой. Не хочешь работать на сервере - твои и твоих пользователей проблемы. Загоняй на сервере в структуры нужные данные и работай с ними в тонком клиенте :( | |||
| 36
    
        Любопытная 05.08.13✎ 09:58 | 
        Открываешь свойства формы, тащишь ползунок вниз, там внизу есть раздел События. В этом разделе для каждого события формы, которое ты прописал заполняешь процедуру, которая это событие обрабатывает.
 В дальнейшем, когда будешь описывать какие-то события в модуле формы делаешь так: открываешь модуль формы, открываешь список процедур модуля формы (по кнопке с лупой и надписью "proc") и два раза щелкаешь на названии того события, которое хочешь прописать. Платформа сама создаст процедуру, впишет ее куда надо, а тебе останется написать ее тело. Учись, студент. И книжки читай :) И не верь добрым девушкам, они обычно такими жабами становятся, что не приведи Господь;) | |||
| 37
    
        Aleksey 05.08.13✎ 10:05 | 
        (20) ну и где тут идентификатор, как некоторые говорили?     | |||
| 38
    
        Любопытная 05.08.13✎ 10:07 | 
        (37) Ну так-то я и говорила, что у меня примитив без всяких там идентификаторов работает))     | |||
| 39
    
        Aleksey 05.08.13✎ 10:13 | 
        (38) пришлось лезть в БП 3.0
 ТекущийПользователь = ПользователиИнформационнойБазы.НайтиПоУникальномуИдентификатору( ПользователиИнформационнойБазы.ТекущийПользователь().УникальныйИдентификатор); | |||
| 40
    
        Любопытная 05.08.13✎ 10:20 | 
        (39) Это из БСП. Берешь БСП, внедряешь от нее подсистему Пользователи и все ок. ТОлько надо ИТСы почитать, хотя на них тоже не слишком хорошо написано.     | |||
| 41
    
        Scorp1985 05.08.13✎ 13:00 | 
        (36) спасибо за уроки))
 (38) а мне сложнее и не надо - зачем?) (34) А можно с Вами познакомиться?)) | 
| Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |