Многофакторная авторизация. Шаблон проектирования для «1С:Предприятие 8». На примере API «Приватбанка» для юр. лиц

Публикация № 671595

Администрирование - Информационная безопасность

10
Многим из читателей знакомы понятия стандартов разработки и шаблонов проектирования. Для платформы «1С:Предприятие 8» на сайте its.1c.ru описаны базовые стандарты оформления кода и некоторые полезные примеры, но отсутствует информация об высокоуровневых абстракциях. Почти у каждого банка есть реализация обмена с конфигурациями «1С:Предприятие 8», но анализировать код, а тем более реализацию без слёз невозможно. Данная статья предлагает использовать некий шаблон оформления кода для многофакторной авторизации.

Прежде чем начать

Как тестовый пример будем рассматривать описание API банка «Приватбанк». Детально описание можно найти по ссылке. Данный пример хорош тем, что затрагивает взаимодействие с пользователем, мобильными номерами (OTP-авторизация, правда не во всех случаях), а так же имеется разграничения прав как на уровне приложения так и на уровне доступной роли клиента. Даже беглое описание, наверное, вызывает определенные сложности в оценке времени на разработку, а так же вопросы по поводу организации кода.

Анализируем шаги авторизации

Весь процесс состоит из четырех последовательных шагов:

  1. Получение ID сессии — состоит в том, что бы по R03;ID и R03;secret приложения получить R03;R03;token, который будет передаваться с каждым запросом к Web-сервису банка, в данном случае так же получим права доступа;
  2. Авторизация с помощью пары логин/пароль пользователя — основная цель это повысить права доступа R03;token полученного на предыдущем шаге;
  3. Прохождение OTP-авторизации — если используется двух-факторная авторизация необходимо отправить запрос на получения OTP-пароля, который придет на мобильное устройство;
  4. Проверка OTP-авторизации — отправляем подтверждение повышения прав с помощью OTP-пароля.

Определим объекты которые будут необходимы:

  • Id — идентификатор сессии;
  • ExpiresIn — дата в формате Unix Timestamp, когда истечет сессия;
  • ApplicationId — идентификатор приложения;
  • ApplicationSecret — секрет приложения;
  • Login — логин пользователя;
  • Password — пароль пользователя;
  • OtpDev — устройство для получения OTP-пароля;
  • Otp OTP-пароль полученный на устройство;
  • Роли — таблица ролей доступных сессии.

Срок истечения сессии достаточно мал, получается, что нет смысла выполнять предварительную авторизацию и хранить данные сессии. Логично сохранять только текущую сессию и при каждом запросе к Web-сервису банка проверять валидность сессии и необходимые права доступа к команде сервиса. При надобности обновлять сессию и повышать права к определенному уровню. Теперь можно переходить к псевдокоду.

ШАГ 0. Выбор команды Web-сервиса банка

После предварительного анализа уже понятно, что необходимо для каждого запроса выполнять проверку сессии и если есть потребность проходить авторизацию. Сделаем это с помощью псевдокода для выписок банка:

&НаКлиенте
Процедура ВыпискиПоСчетуНаКлиенте()
    
    ВыпискиИзБанка.Очистить();
    
    ОписаниеОповещения = Новый ОписаниеОповещения(
        "ВыполнитьОбновлениеВыписокПоСчету", 
        ЭтотОбъект, 
        Новый Структура("Роль", "ROLE_P24_BUSINESS"));
    
    АвторизироватьКлиентБанк(ОписаниеОповещения);
        
КонецПроцедуры // ВыпискиПоСчетуНаКлиенте()

&НаКлиенте
Процедура ВыполнитьОбновлениеВыписокПоСчету(Результат, 
    ДополнительныеПараметры = Неопределено) Экспорт
    
    Если Результат = Истина Тогда
        ОбновитьДанныеПоСчетуНаСервере();
    КонецЕсли;
    
КонецПроцедуры // ВыполнитьОбновлениеВыписокПоСчету()

Происходит очистка объекта в который будет выполнятся загрузка выписок банка, далее создается описание оповещения, которое будет выполнено при актуальной сессии и доступной роли для данной операции (Роль передается как структура в дополнительных параметрах).

ШАГ 1. Получаем ID сессии

&НаКлиенте
Процедура АвторизироватьКлиентБанк(ОписаниеЭтапаПолученияДанных) 

    // Очищаем чтобы проверить доступные роли для токена и сравнить с необходимой 
    // ролью для выполнения запроса указаного в описании оповещения.
    Роли.Очистить();
    
    // Проходим авторизацию приложения
    ПриложениеАвторизация = АвторизироватьПриложение();
    ОписаниеСледующиегоЭтапаАвторизации = Новый ОписаниеОповещения(
        "ВыполнитьПослеАвторизацииПриложения", 
        ЭтотОбъект, 
        ПриложениеАвторизация);
    
    ОбработатьРезультатАвторизации(ПриложениеАвторизация, 
        ОписаниеЭтапаПолученияДанных, 
        ОписаниеСледующиегоЭтапаАвторизации); 
     
КонецПроцедуры // АвторизироватьКлиентБанк()

&НаСервере
Функция АвторизироватьПриложение()
    
    // Заполняем ApplicationId, ApplicationSecret, Login, Password из БД или данных формы.
    ЗаполнитьДанныеАвторизации(); 
    
    // Id сессии может быть заполнен, тогда при вызове необходимо проверить его валидность
    // https://link.privatbank.ua/console/wiki/client_auth Валидация SessionID.
    ОбработкаОбъект = РеквизитФормыВЗначение("Объект");
    РезультатАвторизации = ОбработкаОбъект.АвторизироватьПриложение(
        ApplicationId, ApplicationSecret, Id);
    ЗначениеВРеквизитФормы(ОбработкаОбъект, "Объект");
    
    Возврат РезультатАвторизации;  
  
КонецФункции // АвторизироватьПриложение()

После авторизации или валидации приложения, необходимо проверить результат выполнения. Если валидация сессии прошла успешно и роль для вызова операции Web-сервера банка доступна, тогда выполняем запрос на получения полезных данных, иначе переходим на следующий этап авторизации.

&НаКлиенте
Процедура ОбработатьРезультатАвторизации(Результат, 
    ОписаниеЭтапаПолученияДанных, 
    ОписаниеСледующиегоЭтапаАвторизаци = Неопределено)
    
    Перем МассивРолей;
    
    Если ТипЗнч(Результат) = Тип("ФиксированнаяСтруктура") Тогда
        
        Результат.Свойство("Id", Id); 
        Результат.Свойство("ExpiresIn", ExpiresIn);
        Если Результат.Свойство("Roles", МассивРолей) Тогда
            
            Роли.Очистить();
            Для Каждого ЭлементМассива Из МассивРолей Цикл
                Роли.Добавить().Роль = ЭлементМассива;   
            КонецЦикла;
            
        КонецЕсли;
          
    КонецЕсли;
    
    АвторизацияПройдена = Ложь;
    Если ТипЗнч(ОписаниеЭтапаПолученияДанных) = Тип("ОписаниеОповещения") Тогда
        
        ПараметрыОтбора = ОписаниеЭтапаПолученияДанных.ДополнительныеПараметры;
        Если ТипЗнч(ПараметрыОтбора) = Тип("Структура") Тогда 
            Если Роли.НайтиСтроки(ПараметрыОтбора).Количество() > 0 Тогда;
                АвторизацияПройдена = Истина;
                ВыполнитьОбработкуОповещения(ОписаниеЭтапаПолученияДанных, Истина);        
            КонецЕсли;        
        КонецЕсли;
        
    КонецЕсли;
    
    Если АвторизацияПройдена = Ложь Тогда
        Если ТипЗнч(ОписаниеСледующиегоЭтапаАвторизаци) = Тип("ОписаниеОповещения") Тогда
            ВыполнитьОбработкуОповещения(ОписаниеСледующиегоЭтапаАвторизаци, 
                ОписаниеЭтапаПолученияДанных);    
        КонецЕсли;
    КонецЕсли;
      
КонецПроцедуры // ОбработатьРезультатАвторизации()

ШАГ 2. Авторизация с помощью пары логин/пароль

// Процедура выполняется после успешной авторизации приложения и если доступные
// роли не удовлетворяют требованиям выполняемого запроса к клиент-банку.
// 
// Параметры:
//  ОписаниеЭтапаПолученияДанных - ОписаниеОповещения - оповещение которое будет выполнено если 
//                                                      авторизация будет успешной.
//  ПриложениеАвторизация        - Произвольный       - результат предыдущего этапа авторизации.
//              
&НаКлиенте
Процедура ВыполнитьПослеАвторизацииПриложения(ОписаниеЭтапаПолученияДанных,
    ПриложениеАвторизация = Неопределено) Экспорт
    
    // Проходим авторизацию клиента
    КлиентАвторизация = АвторизироватьКлиента();
    ОписаниеСледующиегоЭтапаАвторизации = Новый ОписаниеОповещения(
        "ВыполнитьПослеАвторизацииКлиента", 
        ЭтотОбъект, 
        КлиентАвторизация);
    
    ОбработатьРезультатАвторизации(КлиентАвторизация, 
        ОписаниеЭтапаПолученияДанных, 
        ОписаниеСледующиегоЭтапаАвторизации);
      
КонецПроцедуры // ВыполнитьПослеАвторизацииПриложения()

&НаСервере
Функция АвторизироватьКлиента()
    
    ОбработкаОбъект = РеквизитФормыВЗначение("Объект");
    РезультатАвторизации = ОбработкаОбъект.АвторизироватьКлиента(
        Login, Password, Id);
    ЗначениеВРеквизитФормы(ОбработкаОбъект, "Объект");
    
    Возврат РезультатАвторизации;    
        
КонецФункции // АвторизироватьКлиента()

После авторизации пользователя, необходимо проверить результат выполнения. Если валидация сессии прошла успешно и роль для вызова операции Web-сервера банка доступна, тогда выполняем запрос на получения полезных данных, иначе переходим на следующий этап авторизации.

ШАГ 3. Прохождение OTP-авторизации

// Процедура выполняется после успешной авторизации клиента и если необходимо
// пройти OTP-авторизацию клиент-банка.
// 
// Параметры:
//  ОписаниеЭтапаПолученияДанных - ОписаниеОповещения - оповещение которое будет выполнено если 
//                                                      авторизация будет успешной.
//  КлиентАвторизация            - Произвольный       - результат предыдущего этапа авторизации.
// 
&НаКлиенте
Процедура ВыполнитьПослеАвторизацииКлиента(ОписаниеЭтапаПолученияДанных,
    КлиентАвторизация = Неопределено) Экспорт
    
    Если ТипЗнч(КлиентАвторизация) = Тип("ФиксированнаяСтруктура") Тогда
        
        Если ТипЗнч(КлиентАвторизация.Message) = Тип("ФиксированныйМассив") Тогда
            
            ПараметрыФормы = Новый Структура("НомераТелефонов", 
                КлиентАвторизация.Message);
                            
            ОткрытьФорму("ВнешняяОбработка.Приват24.Форма.ФормаВыбораНомераТелефона", 
                ПараметрыФормы, 
                ЭтотОбъект,
                ,
                ,
                ,
                Новый ОписаниеОповещения(
                    "ВыполнитьПослеЗакрытияФормыВыбораТелефона", 
                    ЭтотОбъект, 
                    ОписаниеЭтапаПолученияДанных),
                РежимОткрытияОкнаФормы.БлокироватьОкноВладельца);            
            
        Иначе
            
            ОткрытьФорму("ВнешняяОбработка.Приват24.Форма.ФормаOTP", 
                , 
                ЭтотОбъект,
                ,
                ,
                ,
                Новый ОписаниеОповещения(
                    "ВыполнитьПослеЗакрытияФормыOTP", 
                    ЭтотОбъект, 
                    ОписаниеЭтапаПолученияДанных),
                РежимОткрытияОкнаФормы.БлокироватьОкноВладельца);
        
        КонецЕсли;
        
    КонецЕсли;
              
КонецПроцедуры // ВыполнитьПослеАвторизацииКлиента()

&НаКлиенте
Процедура ВыполнитьПослеЗакрытияФормыВыбораТелефона(РезультатЗакрытия,
    ОписаниеЭтапаПолученияДанных = Неопределено) Экспорт
    
    Если ЗначениеЗаполнено(РезультатЗакрытия) Тогда
        
        OtpDev = РезультатЗакрытия;
        
        КлиентАвторизация = АвторизироватьКлиентаОтправитьOTP();    
        ОписаниеСледующиегоЭтапаАвторизации = Новый ОписаниеОповещения(
            "ВыполнитьПослеАвторизацииКлиента", 
            ЭтотОбъект, 
            КлиентАвторизация);
        
        ОбработатьРезультатАвторизации(КлиентАвторизация, 
            ОписаниеЭтапаПолученияДанных, 
            ОписаниеСледующиегоЭтапаАвторизации);
        
    КонецЕсли;
    
КонецПроцедуры // ВыполнитьПослеЗакрытияФормыВыбораТелефона() 

ШАГ 4. Проверка OTP-авторизации

На последнем этапе уже нет необходимости создавать описание оповещения для следующего этапе авторизации, этот уже последний.

&НаКлиенте
Процедура ВыполнитьПослеЗакрытияФормыOTP(РезультатЗакрытия,
    ОписаниеЭтапаПолученияДанных = Неопределено) Экспорт
    
    Если ЗначениеЗаполнено(РезультатЗакрытия) Тогда
        
        Otp = РезультатЗакрытия;
        
        КлиентАвторизация = АвторизироватьКлиентаПроверитьOTP();
        ОбработатьРезультатАвторизации(КлиентАвторизация,
            ОписаниеЭтапаПолученияДанных);
        
    КонецЕсли;
       
КонецПроцедуры // ВыполнитьПослеЗакрытияФормыOTP()

&НаСервере
Функция АвторизироватьКлиентаПроверитьOTP()
    
    ОбработкаОбъект = РеквизитФормыВЗначение("Объект");
    РезультатАвторизации = ОбработкаОбъект.АвторизироватьКлиентаПроверитьOTP(
        Otp, Id);
    ЗначениеВРеквизитФормы(ОбработкаОбъект, "Объект");
    
    Возврат РезультатАвторизации;
        
КонецФункции // АвторизироватьКлиентаПроверитьOTP()

Если все прошло успешно, будут получены выписки из банка. В случае проблем, ЗначениеВРеквизитФормы использовалось для того что бы формировать вполне симпатичные логи:

10.09.2017 23:36:59:

REQUEST URL
Production Base URL: link.privatbank.ua
Operation: POST /api/auth/createSession

REQUEST BODY
{
"clientId": "*******",
"clientSecret": "*******"
}

10.09.2017 23:36:59:

RESPONSE
{"id":"*******","clientId":"*******","expiresIn":1505079419,"roles":["ROLE_CLIENT"]}

10.09.2017 23:36:59: Выполнен запрос авторизации приложения (279 мс).
10.09.2017 23:36:59: OK: Приложение успешно авторизировано.
10.09.2017 23:36:59:

REQUEST URL
Production Base URL: link.privatbank.ua
Operation: POST /api/p24BusinessAuth/createSession

REQUEST BODY
{
"login": "*******",
"password": "*******",
"sessionId": "*******"
}

10.09.2017 23:37:00:

RESPONSE
{"id":"*******","clientId":"*******","expiresIn":1505079419,"message":"Authentication successfull","roles":["ROLE_P24_BUSINESS","ROLE_CLIENT"]}

10.09.2017 23:37:00: Выполнен запрос авторизации клиента (1 129 мс).
10.09.2017 23:37:00: Authentication successfull
10.09.2017 23:37:00:

REQUEST URL
Production Base URL: link.privatbank.ua
Operation: GET /api/p24b/statements?acc=26006054710862&stdate=10.09.2017&endate=10.09.2017

10.09.2017 23:37:01:

RESPONSE
{}

10.09.2017 23:37:01: Выполнен запрос для получения выписок из банка (552 мс).
10.09.2017 23:37:01: OK: Выписки из банка за указанный период отсутствуют.

Вместо послесловия

Надеюсь, вы заметили шаблон, каждый этап авторизации имеет всего две процедуры или функции: первая процедура предназначена для создания описания оповещения следующего шага авторизации и вызова процедуры/функции/формы текущего шага обработчика, а в самом конце выполняется проверка успешности и переход к получению полезных данных или на следующий шаг авторизации.

Статья в личном блоге клац

10

Специальные предложения

Комментарии
Избранное Подписка Сортировка: Древо
1. koshak84 8 13.09.17 12:53 Сейчас в теме
Сейчас как раз занимаюсь автоматической загрузкой выписок из 3х разных банков в старую-древнюю УПП. Посмотрел код реализации DirectBank в Библиотеке электронных документов и решил пойти другим путем. Просто в конфигурации БЭД написал обработку, которая с заданной периодичностью запрашивает документы из банков по уже готовым алгоритмам, а потом просто выгружает полученные файлы в УПП. Задача решилась малой кровью. А так да, смотреть без слез на то, что написано в БЭД не возможно.
2. bulpi 157 12.10.17 21:18 Сейчас в теме
Автор, надо бы выложить обработку. Иначе единственное, что понятно из этой статьи, так это то, что Вы очень умный, а я нет. Если это было целью, то Вы добились своего.
3. Inkasor 25 13.10.17 01:07 Сейчас в теме
(2)Это шаблон архитектуры, весь код с примерами прямо в статье, какая ещё обработка?
4. bulpi 157 13.10.17 09:28 Сейчас в теме
В коде есть ссылки на объекты, например, Роли. В коде есть ссылки на формы обработки. Без обработки это не код, а сочинение на вольную тему. Представьте, что Вы читатель статьи, и Вам нужно что-то сделать. Как ? Впрочем, хозяин-барин.
5. pbazeliuk 1700 13.10.17 10:15 Сейчас в теме
(4) Роли это простая структура которая согласуется с описанием АPI (https://link.privatbank.ua/console/wiki/p24business_auth), это не роли конфигурации.
"Объект" это объект обработки, основной реквизит формы.
Каждый переход в модуль обработки, это обычный HTTP запрос к сервису банка и преобразование ответа в структуру\массив, цель статьи не дать готовое решение, а подумать и развить аналитические навыки.

Вот, Петр Цап, тоже написал статью над которой необходимо было подумать, и там ни строчки кода, но есть классные идеи.
6. Inkasor 25 13.10.17 15:31 Сейчас в теме
(5) Спасибо на добром слове :) Я ваши статьи тоже сейчас активно осмысливаю на предмет практического применения, вот эта была прямо вообще в тему.
Оставьте свое сообщение

См. также

Типичные ошибки при разработке прав доступа 101

Статья Программист Нет файла v8 v8::Права Бесплатно (free) Роли и права

Рассмотрим самые распространенные ошибки в разработке прав доступа.

02.10.2019    5405    YPermitin    39       

Проверка наличия роли у пользователя 3

Статья Программист Нет файла v8 v8::Права 1cv8.cf Бесплатно (free) Роли и права

Допустим, мы добавили новую роль в конфигурацию. Потом добавили её в профиль группы доступа и назначили соответствующую группу доступа пользователю. Однако, в конфигурациях на основе БСП все известные программные проверки данной роли при включении пользователя в предопределенную группу доступа "Администраторы" не работают. В статье приведено решение данной задачи.

29.06.2019    2834    ni_cola    7       

Назад в прошлое! Небольшие заметки по администрированию пользователей в УПП 71

Статья Системный администратор Программист Стажер Нет файла v8 УПП1 Бесплатно (free) Роли и права

Небольшие заметки по функционалу "Администрирование пользователей" конфигурации "Управление производственным предприятием" версии 1.3. Затрагиваются такие темы как: роли, профили доступа, дополнительные права, настройки пользователей и ограничения доступа на уровне записей (RLS).

06.06.2019    6232    YPermitin    16       

Подсистема БСП «Управление доступом», основные объекты и регистры 105

Статья Программист Нет файла v8 v8::УФ v8::Права 1cv8.cf Бесплатно (free) БСП (Библиотека стандартных подсистем) Роли и права

Основные принципы работы подсистемы «Управление доступом» из состава БСП. Виды доступа, ограничение доступа на уровне записей. Описание основных объектов и регистров, используемых подсистемой.

23.05.2019    7980    ids79    8       

Возможности типовых шаблонов ограничения доступа на уровне записей (RLS) 162

Статья Программист Нет файла v8 v8::Права Бесплатно (free) Практика программирования БСП (Библиотека стандартных подсистем) Роли и права

Краткий обзор применения типовых шаблонов ограничения доступа на уровне записей в конфигурациях, созданных на базе БСП: #ПоЗначениям, #ПоНаборамЗначений, #ПоЗначениямРасширенный, #ПоЗначениямИНаборамРасширенный

03.02.2019    15426    ids79    9       

Влияние настройки роли на потребление памяти 150

Статья Системный администратор Программист Нет файла v8::Права 1cv8.cf Бесплатно (free) Роли и права

На днях разбирался с проблемой с потреблением памяти процессами конфигуратора и rphost. Как оказалось - причина в настройках ролей. Один поворот не туда, и настройки роли приводят к чрезмерному потреблению оперативки.

29.01.2019    9337    mickey.1cx    14       

Использование утилиты ring для выяснения данных о программных лицензиях 33

Статья Системный администратор Программист Нет файла v8 Windows Бесплатно (free) Информационная безопасность

Использование утилиты ring для управления программными лицензиями без ее установки на компьютер пользователя.

22.12.2018    5552    Vovan58    20       

Загрузка платежей из Сбербанк Онлайн по картам физических лиц 7

Статья Программист Нет файла v8 1cv8.cf Россия Банковские операции Бесплатно (free) Обмен с банком

Код для загрузки выписки по карте из Сбербанк.Онлайн НЕ Сбербанк Бизнес Онлайн.

27.09.2018    3652    compguru    0       

Доработка RLS для УНФ 30

Статья Программист Нет файла v8::Права 1cv8.cf Бесплатно (free) Информационная безопасность

Инструкция для тех, кто столкнулся с RLS на управляемых формах впервые и не знает, с чего начать.

14.05.2018    10347    FesenkoA    5       

Решение проблемы автоматического утверждения расчета кадровиком документов. Разграничение прав кадровиков и расчетчиков. ЗУП 3.1 25

Статья Программист Нет файла v8 v8::СПР v8::Права ЗУП3.x БУ Зарплата Управление персоналом (HRM) Бесплатно (free) Информационная безопасность

Статья посвящена тем, кто столкнулся с проблемой автоматической установки "Расчет утвердил". Также рассматривается решение проблемы с отображением ФОТ и оклада у кадровика. Добавление роли ЧтениеДанныхДляНачисленияЗарплатыРасширенная кадровику без последствий для расчетчика.

04.04.2018    15024    leaderonex    22       

Проверка безопасности установленных паролей 6

Статья Системный администратор Нет файла v8 Бесплатно (free) Информационная безопасность

Код выводит не установленные пароли, а так же очень простые (1, 123) пароли пользователей. Список можно пополнять.

08.03.2018    7266    nomadon    12       

Информирование об утечке базы 1С 22

Статья Системный администратор Нет файла v8 1cv8.cf Windows Бесплатно (free) Информационная безопасность

Когда работаешь в крупном холдинге, количество сотрудников, имеющих доступ к базам 1С неизменно растет. Рано или поздно появится задача по контролю утечки баз 1С. Конечно мы применим все меры по предотвращению утечки баз, но и информирование о случаях утечки тоже не повредит.

03.03.2018    11054    dima_home    79       

Отключаем предупреждения безопасности в 1С 8.3.9 и выше вручную 20

Статья Системный администратор Нет файла v8 v8::УФ v8::Права 1cv8.cf Бесплатно (free) Информационная безопасность

Как включить/выключить механизм защиты от опасных действий реализованный в новой версии платформы 1С:Предприятие 8.3.9. Одним из нововведений новой версии платформы 1С:Предприятие 8.3.9 стал механизм от опасных действий. После установки новой версии платформы 1С (начиная версии 8.3.9.2033) при попытке открыть внешнюю обработку или расширение программа выдает сообщение..

01.11.2017    27401    webresurs    10       

Управление доступом: роли, права, профили, группы доступа, функциональные опции, RLS 223

Статья Системный администратор Программист Нет файла v8::Права Бесплатно (free) Роли и права

В 1С достаточно много механизмов, отвечающих за доступ к данным. Группы доступа, профили групп доступа, роли, права доступа, функциональные опции, RLS. Иногда сложно сразу понять, зачем все это нужно, как эти элементы друг с другом связаны и как ими пользоваться.

11.10.2017    65636    ekaruk    14       

Как создать свой профиль доступа в пользовательском режиме в 1С:Бухгалтерии 3.0 12

Статья Системный администратор Программист Нет файла v8 БП3.0 Россия Бесплатно (free) Информационная безопасность

Допустим, есть следующая задача. Нужно добавить нового пользователя «Анна» в базу 1С:Бухгалтерия 3.0. При этом Анна должна только выставлять и распечатывать Счета на оплату. При этом все остальные документы и справочники только для просмотра. Т.е. добавлять новую номенклатуру и контрагентов она не может. Обязательное условие - не изменять типовую конфигурацию.

06.09.2017    12300    alfanika    3       

Копирование групп доступа между пользователями 5

Статья Программист Нет файла v8 УТ11 Бесплатно (free) Информационная безопасность

Доработки, позволяющие переносить группы доступа между пользователями. Подходит для Управление торговлей для Украины, редакция 3.1, Управление торговлей, редакция 11.1 и, я думаю, для других конфигураций, написанных на базе БСП.

03.09.2017    7108    Pervuy    0       

1001-й способ ограничить пользователей 1С 8

Статья Программист Внешняя обработка (ert,epf) v8 v8::Права Розница Бесплатно (free) Информационная безопасность

Описан еще один способ ограничить пользователя 1С, при помощи подписки на события

13.07.2017    11469    donpadlo    39       

Этюды по программированию. Разграничение прав 16

Статья Программист Нет файла v8 Бесплатно (free) Информационная безопасность

Задача: Имеется конфигурация на базе Библиотеки Стандартных Подсистем(БСП) -практически любая стандартная конфигурация 1С. Есть, к примеры заказы покупателей. Есть группы менеджеров, каждая из которых должна иметь доступ только к заказам своей группы.

29.04.2017    12050    milkers    8       

Недостаточно прав доступа или опять забыли дать права на новые объекты 198

Статья Программист Нет файла v8 Бесплатно (free) Информационная безопасность

При постоянной доработке конфигураций в больших коллективах иногда возникает ситуация, когда программист поместил новые объекты в базу, а права на них дать забыл. При этом обновлять базу не позволяет бизнес. Что же делать? Есть небольшая хитрость.

06.04.2017    23472    Silenser    55       

Права доступа в 1С:Документооборот 2.1 40

Статья Системный администратор Программист Нет файла v8 ДО Документооборот и делопроизводство Бесплатно (free) Информационная безопасность

В программе 1С:Документооборот ред 2.1 механизм системы прав доступа сильно изменился. С одной стороны, права доступа в данной версии стали проще и быстрее, с другой стороны - права по рабочим группам объектов теперь могут противоречить политикам доступа. Разберемся в данной статье как работает механизм прав доступа в 1с документообороте 2.1.

16.09.2016    56858    vlush78    0       

Генерация паролей 1С 8.3 (код, инструкция) 24

Статья Программист Нет файла v8 Windows Бесплатно (free) Информационная безопасность Практика программирования

Инструкция по самостоятельному написанию генерации пароля в 8.3. Может кому-нибудь пригодится, т.к. весь материал на ИС за монетку а делать-то на самом деле нечего

22.07.2016    14721    Tomy82    18       

Работа с 1С:ДиректБанк в системе ДБО iBank 2 18

Инструменты и обработки Бухгалтер Архив с данными v8 КА1 БП2.0 ЗУП2.5 УТ10 УПП1 УНФ ERP2 Россия Windows Банковские операции Бесплатно (free) Обмен с банком Бухгалтерский учет

В современных типовых конфигурациях фирмы "1С" есть возможность работать с системой ДБО iBank 2 напрямую из 1С:Предприятия. Пользователям доступны такие функции, как подпись и отправка платежа в банк, подтверждение платежа по SMS и получение выписки. Промышленная система ДБО iBank 2 установлена в более чем трети российских банков, и многие из них уже начали предоставление сервиса прямого обмена. В статье вкратце описан порядок подключения услуги и настройки DirectBank с системой ДБО iBank 2.

26.05.2016    22505    ph_1984    29       

ubuntu + 1Cv8. Как правильно задать права доступа к базе в терминальном режиме 19

Статья Системный администратор Программист Нет файла v8 Linux Бесплатно (free) Информационная безопасность

Очень часто возникает проблема с установкой прав доступа в Linux. Один пользователь заходит в базу 1С нормально, а вот второго уже не пускает. Решение проблемы очень простое.

30.03.2016    16623    viptextil    14       

Загрузка выписки из Банк - клиента в 1С: Бухгалтерию - настройка 5

Статья Бухгалтер Нет файла v8 БП2.0 БУ Windows Банковские операции Бесплатно (free) Обмен с банком

Регулярно приходится объяснять бухгалтерам как формировать платежные поручения в банк-клиенте, а также еще раз заносить их в программы 1С. Чтобы избежать двойной нудной работы достаточно настроить простой перенос загрузку выписок из банк в программу. Сложность данной операции не велика для любого бухгалтера и он способен справиться с этим самостоятельно, разобраемся.

23.03.2016    32249    Bylka    2       

Готовим конфигурацию "Бухгалтерия предприятия 3.0" к аудиторской проверке 4

Статья Программист Нет файла v8 БП2.0 Россия Windows Бесплатно (free) Информационная безопасность

Бывают такие ситуации, что, предоставляя данные для аудиторской проверки, мы переживаем, как бы проверяющие не узнали чего лишнего. В этой статье я расскажу, как скрыть документы и ограничить отчеты по периоду на примере конфигурации "Бухгалтерия предприятия 3.0"

21.03.2016    8489    duhh    14       

Клиент банк из 1С 36

Статья Системный администратор Программист Бухгалтер Нет файла v8 КА1 БП2.0 УТ10 УНФ ERP2 БУ УУ Windows Банковские операции Бесплатно (free) Обмен с банком

Хочу рассказать про отличную возможность 1с Бухгалтерии 3.0 (и некоторых других конфигураций) использования клиент банка прямо из 1С. Теперь не надо делать выгрузку в файлик и загружать выписки из файлика. Достаточно нажать кнопку Обмен с банком в 1С и получить необходимые документы. А для платежек нажать кнопку Создать и отправить электронные документы.

12.02.2016    47005    ameli-130412    64       

Ограничение доступа к справочнику Склады для УТ 10.3 10

Статья Системный администратор Нет файла v8 УТ10 Россия Windows Бесплатно (free) Информационная безопасность

Краткая инструкция простого метода, как ограничить видимость складов для определенных пользователей в УТ 10.3.

25.12.2015    15468    Viktor_Ermakov    8       

Новый вид доступа в УТ 11. Как в УТ 11 изменить константу "ПараметрыОграниченияДоступа" 28

Статья Программист Нет файла v8 УТ11 Россия Бесплатно (free) Информационная безопасность

В УТ11 существуют стандартные виды ограничения прав доступа. Например: "Подразделения", "Склады", "Кассы", "ВидыЦен" и т.д. До поры до времени такой набор стандартных видов ограничений устраивает пользователей. Но что делать, если возникла необходимость добавить новый вид доступа? Об этом и пойдет речь в данной статье.

16.12.2015    21611    Spacer    9       

Запуск под пользователем (асинхронный вызов) 12

Статья Системный администратор Программист Нет файла v8 1cv8.cf Windows Бесплатно (free) Информационная безопасность Администрирование данных 1С

Часто бывает необходимо запустить для отладки под другим пользователем, маленький кусок кода не испортит конфигурацию

30.07.2015    8545    kvikster    7       

Разделение доступа к документам с учетом подразделения 21

Статья Системный администратор Программист Нет файла v8 БП2.0 Windows Бесплатно (free) Информационная безопасность

Задача: имеется типовая Бухгалтерия КОРП 3.0. Организация одна, имеется ряд подразделений (не обособленных). Необходимо разделить доступ к документам и отчетам с учетом подразделения. Центральный офис должен видеть все данные.

20.07.2015    24063    mmtv68    8       

Ограничение доступа к контрагентам для конфигурации, в которой функционал ограничения отсутствует по умолчанию 14

Статья Системный администратор Программист Нет файла v8 УТ10 Windows Бесплатно (free) Информационная безопасность Администрирование данных 1С

Добрый день, читатель! Я покажу тебе, как в конфигурации (в которой функционал ограничения отсутствует по умолчанию) ограничить сотрудников компании (менеджеров) при работе в 1С только определенными контрагентами. Например, при заведении Заказа Покупателя (или Поставщика) менеджер может видеть и создавать документы только по определенным Контрагентам. Это сделано для удобства работы отдела продаж, когда за каждым Менеджером в отделе закреплен определенный круг Клиентов. Другие менеджеры не могут видеть и менять чужие заказы, так как в них указаны не их Контрагенты (не закрепленные за ними). Думаю, я понятно объяснил, что я хочу вам показать.

05.06.2015    16235    pvlunegov    47       

Темная сторона обмена по правилам 38

Статья Системный администратор Программист Нет файла v8 1cv8.cf Бесплатно (free) Информационная безопасность Перенос данных из 1C8 в 1C8

Правила обмена (конвертации) используются в обменах данными повсеместно. Однако за удобство и простоту согласования разных конфигураций приходится платить потенциальной угрозой безопасности: возможностью выполнить в принимающей базе произвольный код на языке 1С.

16.03.2015    13465    saiten    38       

"Скажи пароль" или как работать со свойством СохраняемоеЗначениеПароля объекта типа ПользовательИнформационнойБазы 53

Статья Системный администратор Программист Нет файла v8 1cv8.cf Бесплатно (free) Информационная безопасность

Ряд статей уже затрагивали тему проверки текущего пароля пользователя и работу со свойством "СохраняемоеЗначениеПароля", но конкретики по данному вопросу мало. Данная короткая статья призвана исправить этот пробел.

28.01.2015    21529    mbreaker    16       

Настройка DCOM компоненты "Excel.Application" на 64-битном сервере приложений 1С 136

Статья Системный администратор Нет файла v8 1cv8.cf Windows Бесплатно (free) Администрирование данных 1С Информационная безопасность

Описание настройки на 64-битном сервере приложений 1С, позволяющие создавать и использовать COMОбъект "Excel.Application" на сервере 1С. Это поможет обработать большие файлы excel на сервере, в том числе через фоновые задания. Все описанные действия родились по мотивам прочтения тысячи форумов и было опробовано сначала на разработческом сервере, затем на боевом. Поэтому решил выложить это сюда, наверняка спасет вам хотя бы 1 день жизни.

27.01.2015    55612    vet7777    55       

Использование подсистемы "Управление доступом" из состава БСП версии 2.2+ 227

Статья Системный администратор Программист Нет файла v8 1cv8.cf Бесплатно (free) Практика программирования БСП (Библиотека стандартных подсистем) Роли и права

В статье описана последовательность манипуляций с подсистемой "Управление доступом" из библиотеки стандартных подсистем "1С" (БСП), результатом которых является реализация возможности настройки ограничения доступа к данным на уровне записей таблиц базы данных (RLS), применяя в качестве разграничителя доступа (критерия ограничения) любой из справочников конфигурации. Данная статья полезна для разработчиков, которые имеют дело либо с одной из типовых конфигураций "1С" (таких как "Бухгалтерия предприятие 3.0" или "Управление торговлей 11"), либо собираются внедрять (или дорабатывать) указанную выше подсистему в какую-либо другую конфигурацию.

18.11.2014    56971    Bassgood    81       

Открытие файлов внешних обработок/отчетов без проблем с безопасным режимом в 1С 8.3 (Разрешаем доступ к привилегированному режиму исполнения кода для безопасного режима настройкой профиля безопасности кластера) 33

Статья Системный администратор Программист Нет файла v8 1cv8.cf Бесплатно (free) Информационная безопасность Администрирование данных 1С

Если по какой-то причине вы используете внешние файлы обработок/отчетов (через меню файл - открыть...), то наверняка столкнулись с проблемой невозможности выполнения элементарных операций записи данных. Помогут профили безопасности кластера сервера 1С.

12.09.2014    35018    Puk2    7       

Использование механизма разделения данных вместо RLS 82

Статья Системный администратор Программист Нет файла v8 1cv8.cf Windows Бесплатно (free) Информационная безопасность

RLS, как известно, подтормаживает систему. 1С уже давненько реализовала механизм разделения данных, но до сих пор он не используется в типовых конфигурациях. Интересно, почему?

06.09.2014    42753    newgluk    35       

Некоторые особенности работы с настройками прав доступа пользователей в типовых конфигурациях на управляемом приложении 165

Статья Системный администратор Программист Нет файла v8 1cv8.cf Windows Бесплатно (free) Информационная безопасность

Разработчики в управляемых приложениях применили новый механизм настройки прав доступа, о которых и пойдет речь. Будут перечислены все те грабли, которые собрал автор, чтобы вы о них знали.

04.09.2014    71958    Stim213    31       

Что делать если платформа 8.3 не видит программные ключи 8.2 57

Статья Системный администратор Программист Нет файла v8 1cv8.cf Бесплатно (free) Информационная безопасность Администрирование данных 1С

Столкнулся с тем что при установке двух платформ 1С 8.3 и 8.2 на один сервер, 8.3 не видит программные ключи, После поиска в просторах интернета нужной инфы не нашел, и пришлось писать в техподдержку, вот что ответили:

18.06.2014    53011    Andruykha    25       

Распределение ролей пользователей к информационной базе для проверки аудиторами в типовых конфигурациях БП, ЗУП, ЗКБУ и БГУ. 6

Статья Системный администратор Нет файла v8 1cv8.cf Россия Windows Бесплатно (free) Роли и права

В данной статье мы рассмотрим методику создания ролей пользователей к информационным базам для проверки аудиторами в типовых конфигурациях .

13.05.2014    22462    OV_GCompany    5       

Управление торговлей 11.1 - настройка нестандартных ролей 69

Статья Системный администратор Программист Нет файла v8 УТ10 Россия Windows Бесплатно (free) Информационная безопасность Пользователю системы Администрирование данных 1С

Особенности настройки прав в УТ 11.1 ..рано или поздно, пользователям становится недостаточно того "мощного" функционала, что придуман в УТ 11.1, и дается задание для программиста 1С, чтобы он настроил более тонкие изменения, и ограничения прав.

11.05.2014    67985    Lapitskiy    18       

Задублированные лицензии 5

Статья Системный администратор Нет файла v8 Windows Бесплатно (free) Информационная безопасность

Исправление ошибки: "На компьютере используются две копии одного и того же файла программной лицензии".

17.04.2014    19089    greenLiss    8       

1С УПП. Перемещение товаров. Ограничение по складам и подразделениям 7

Статья Программист Нет файла v8 УПП1 Россия Windows Оптовая торговля Производство готовой продукции (работ, услуг) Бесплатно (free) Информационная безопасность

1. Описание стандартного механизма ограничения Доступа на уровне записей для документа Перемещение товаров при одновременном использовании ограничений по Подразделениям и Складам 2. Настройка доступа к документу Перемещение товаров, только при условии доступности обоих складов (Склад-получатель и Склад-отправитель) документа

21.01.2014    15675    DenDSMG    1       

Отключение режима Конфигуратор для пользователей 1С 27

Статья Системный администратор Нет файла v8 Россия Windows Бесплатно (free) Информационная безопасность Администрирование данных 1С

Часто бывает так, что из-за специфики работы бухгалтера, ему нужно давать полные права. А это дает возможность залезать в Конфигуратор. Также при ошибке открытия или функционирования сторонних обработок программа предлагает посмотреть и исправить дело в Конфигураторе. Естественно, пользователи программ 1С не будут сами разбираться с возникшими проблемами, а вот полазить и пощелкать мышкой очень даже могут. Так как можно заблокировать им доступ в конфигуратор? Очень короткая статейка показывает самый быстрый, на мой взгляд, и , главное, эффективный способ блокировки входа в Конфигуратор на примере 1С 8.2.

08.11.2013    23669    xten    26       

Как ограничить "кривые руки" с полными правами или нужны ли в 1С “супер-права”? 10

Статья Системный администратор Программист Нет файла v8 1cv8.cf Бесплатно (free) Информационная безопасность

Предлагается вариант решения проблемы ограничения прав пользователей с "полными правами" в режиме 1С:Предприятие на доступ к функционалу, имеющему критическое значение для целостности данных и общего функционирования системы.

01.11.2013    24764    yuraos    32