Имя: Пароль:
1C
1С v8
Запаролить внеш обработку на пользователя
,
0 lirt82
 
03.10.18
08:31
Пишу для базы на управляемых обработку, в бухгалтерии возникла жесткая конкуренция за нее:)...и меня попросили сделать так чтоб пользоваться ей мог только один конкретный пользователь. Как реализовать, нужно учесть что в базе используется несколько внеш. обработок.
1 Vadim_37
 
03.10.18
08:35
ТекущийПользователь()
2 lirt82
 
03.10.18
08:35
:-) форму ввода пароля при запуске?
3 SweetaAngel
 
03.10.18
08:36
Создай спец права и назнач одному пользователю и проверяй через РольДоступна или тупо проверяй Текущего пользователя.
4 lirt82
 
03.10.18
08:39
всем спасибо, сделал форму ввода пароля с проверкой, сам пароль зашью в модуль.
5 SweetaAngel
 
03.10.18
09:14
(4) Ровно до тех пор пока, человек со знанием пароля под большим секретом не расскажет его другому.
6 Cool_Profi
 
03.10.18
09:15
Я бы на роль лучше завязался...
7 lirt82
 
03.10.18
09:31
(5) :)
теперь другая проблема
не могу в этой внешней обработке из формы ввода пароля открыть другую форму этой же обработки. Т.е. после того как ввели пароль должна открыться другая форма.

&НаКлиенте
Процедура ОК(Команда)
    
    Psw = "1";
    Если НЕ ЗначениеЗаполнено(Пароль) Тогда
        Сообщение = Новый СообщениеПользователю;
        Сообщение.Текст = "Введите пароль для запуска обработки!";
        Сообщение.Сообщить();
        Возврат
    ИначеЕсли Пароль <> Psw Тогда        
        Сообщение = Новый СообщениеПользователю;
        Сообщение.Текст = "Неверный пароль!";
        Сообщение.Сообщить();
        Пароль = "";
        Возврат
    Иначе
        ЭтаФорма.Закрыть();
    //тут открыть вторую форму    
    КонецЕсли;      
    
КонецПроцедуры
8 ASU_Diamond
 
03.10.18
09:34
(5) ровно до тех пор, пока главбух не спросит что за хрень твориться.
(0) ты работаешь на конкретного бухгалтера или на организацию? что в постановке задачи было?
9 lirt82
 
03.10.18
09:36
(8) это она и попросила, подскажи лучше с открытием второй формы
10 hhhh
 
03.10.18
09:37
(9)         

Фрм = ПолучитьФорму("ВнешняяОбработка.ЗагрузитьИзExcel.Форма.КорректировкаДанных", ПараметрыФормы, ЭтотОбъект, КлючУник);
        Если Фрм <> Неопределено Тогда
            Фрм.Открыть();
        КонецЕсли;
11 DSSS
 
03.10.18
09:37
Пароль - это какая-то дичь. Но если очень хочется, читай https://its.1c.ru/db/v8std/content/2149184389/hdoc

При создании на сервере сделай проверку на РольДоступа и все
12 lirt82
 
03.10.18
09:44
(10) Переменная не определена (ПараметрыФормы)
13 catena
 
03.10.18
09:49
<Параметры> (необязательный)

Тип: Структура.
Параметры формы. Ключ структуры - имя параметра, а значение - значение параметра формы. Имя элемента должно совпадать с именем параметра структуры.
П = Новый Структура("Ключ", Поставщик);
Форма = ПолучитьФорму("Справочник.Контрагенты.ФормаОбъекта", П);
Форма.Открыть();
14 seevkik
 
03.10.18
09:51
Мне кажется или в дополнительных обработках можно выбрать пользователей которым она видна?
15 lirt82
 
03.10.18
09:56
При этом внешний отчет или обработка должны быть предварительно зарегистрированы в системе.
Блин вот морока)) у гл буха будет просто этот файл храниться не нужно его никуда встраивать в базу...короче в ж эту форму пароля тупо проверка на пользака
16 lirt82
 
03.10.18
09:56
) хотел творчески подойти...
17 lirt82
 
03.10.18
09:58
все нашел решение
https://forum.infostart.ru/forum9/topic132349/
18 catena
 
03.10.18
09:58
(15)Если файл будет у главбуха храниться, нафига вообще какие-то проверки)))
19 lirt82
 
03.10.18
10:01
(18) она вышла за ее комп села другая и запустила эту обработку
20 lirt82
 
03.10.18
10:07
все получилось спасибо (13) (10)
&НаКлиенте
Процедура ОК(Команда)
    
    Psw = "1";
    Если НЕ ЗначениеЗаполнено(Пароль) Тогда
        Сообщение = Новый СообщениеПользователю;
        Сообщение.Текст = "Введите пароль для запуска обработки!";
        Сообщение.Сообщить();
        Возврат
    ИначеЕсли Пароль <> Psw Тогда        
        Сообщение = Новый СообщениеПользователю;
        Сообщение.Текст = "Неверный пароль!";
        Сообщение.Сообщить();
        Пароль = "";
        Возврат
    Иначе
        ЭтаФорма.Закрыть();
        ПараметрыФормы = Новый Структура("ЭтаФорма", Psw);
        Форма = ПолучитьФорму("ВнешняяОбработка.ХХХХХХХХ.Форма.ОсФорма", ПараметрыФормы, ЭтотОбъект);
        Если Форма <> Неопределено Тогда
            Форма.Открыть();
        КонецЕсли;
    КонецЕсли;      
    
КонецПроцедуры
21 catena
 
03.10.18
10:26
(19)Она вышла и не закрыла обработку, за ее комп села другая. В конторе, в которой даже главбух не умеет блокировать машину поможет только порка.
22 Быдло замкадное
 
03.10.18
10:37
перед открытием если текпользователь.имя <> марьиванна тогда отказ = истина
23 bolobol
 
03.10.18
10:39
(22) Перед нажатием кнопки ВыполнитьОбработку!
24 Остап Сулейманович
 
03.10.18
10:39
(22) )))
Первое слово ника совпадает с первым словом стиля кодинга.
25 bolobol
 
03.10.18
10:40
(22) И - пароль! Ибо за компом МарьИванны может оказаться СанСаныч
26 Остап Сулейманович
 
03.10.18
10:46
(25) Лучше переспросить.
ПоказатьВопрос(Обработчик, "А вы точно ли марьиванна?, нажмите Да - если нет, Нет - если да, Отмена - если ПтляБуду.
И случайным образом менять кнопки. Пусть в капчу поиграются.
)))
Чтобы обнаруживать ошибки, программист должен иметь ум, которому доставляет удовольствие находить изъяны там, где, казалось, царят красота и совершенство. Фредерик Брукс-младший