Где находится подпись мобильного клиента в 1с
Есть желание организовать функционал подписания актов, накладных с помощью простой электронной подписи (по смс, через мессенджеры, электронную подпись и проч.). Хотел бы спросить, есть ли у кого какие идеи как это можно реализовать? Может быть есть готовые сервисы или обработки для 1С для подобной реализации Может быть есть опыт внедрения данного функционала? В общем готов выслушать любую помощь в данном направлении касательно технической стороны.
(0) пытаемся сделать у себя, но это будет работать только для документов внутри компании и начинать надо с заключения доп.соглашения с сотрудниками.
(2) Так перед этим я заявление писал и мои паспортные данные сверяли. Так что прав (3). Все начинается с бумажки
"Согласно части 2 статьи 6 Федерального закона от 6 апреля 2011 г. №63-ФЗ «Об электронной подписи» (далее — Закон об электронной подписи) информация в электронной форме, подписанная простой электронной подписью или неквалифицированной электронной подписью, признается электронным документом, равнозначным документу на бумажном носителе, подписанному собственноручной подписью, в случаях, установленных федеральными законами, принимаемыми в соответствии с ними нормативными правовыми актами или соглашением между участниками электронного взаимодействия. Нормативные правовые акты и соглашения между участниками электронного взаимодействия, устанавливающие случаи признания электронных документов, подписанных простой электронной подписью, равнозначными документам на бумажных носителях, подписанным собственноручной подписью, должны соответствовать требованиям статьи 9 Закона об электронной подписи."
(4) Это не юридический форум, давайте без флуда. Как я уже выразился, меня интересует техническая сторона и все, что с этим связано
(8) ну а что тут технического то, у нас внешняя SQL база, в документах 1С - кнопулька, по ней в базу пишем образ документа который надо подписать и вебморда которая работает с этим SQL. внешние сервисы - не видел, найдешь - напиши
(11) доп. соглашение с сотрудниками и печатная форма подписанного документа со штампом кто и когда подписывал.
СМС привязан к номеру телефона, т.е. симки, которую нельзя купить без паспорта. Таким образм решаеться вопрос идентификации человека которому отправлено СМС.
В случае прочей фигни (например почты) это все равно верить на слово. Ибо я всегда могу сказать, я не я и почта не моя
(17) невчем, т.е. некий сервис генерирует тебе номер, который отсылается клиенту. Клиент вбивает этот номер у себя и сервис подтверждает этот номер. Т.е. такой одноразовый пароль для входа
(19) пффффф одно. ственно..
и смс - стоит денег!
(26) это все тоже стоит денег и администрировать все это в распределнном по 10 городам холдинга - утопия.
(28) я просто не представляю другие варианты чтобы доказать в суде что подпись сделала вторая сторона, а не вы самостоятельно в одностороннем порядке сами сгенерировали и сами подписали
(27) просто нажимаешь кнопку "подписать" для верности можешь еще раз спросить логин/пароль, можешь для подписей свои пароли держать, отличные от доменных. будет двойное паролирование )))
можно смс - но это дорого и надо держать в актуальном состоянии базу данных сотовых сотрудников в связке с учеткой AD - ну это все технические моменты, тут уже каждый сам решает как ему с этим бороться.
А еще луче пусть видео присылает где он зачитывает вслух текст документа на подпись и говорит подписать. :)
(30) доп. соглашение в котором все прописано, без него - работать не будет, с ним - будет работать так как в нем написано )))
(33) да-да. такие идеи тоже были, "давайте будем записывать подписание договора купли/продажи" и хранить эти записи, только с сотрудниками это не взлетит
(31) Ну т.е. де факто у вас просто галка на форме "Подписано" и каждый самостоятельно ставит ее. Вы просто фиксируете под каким пользователем была проставлена эта галка (считая что пользователь раз ктотто зашел под пользователем Вася, то это Вася и есть и никто другой)
(36) думаем, возможно еще раз попросим пароль перед подписанием.
но в целом - да, именно так это и работает и именно в этом суть "простой подписи", во всех остальных случах - усиленные подписи нужны, а СМС - просто лишние затраты которые существенно ничего не изменит, особенно когда используется для внутренних сотрудников
(0) >какие идеи как это можно реализовать?
Нанять программиста уже пробовали?
А почему не сделать как в типовых? В той же БП, документообороте реализован механизм подписания документов с помощью ЭП. Простую подпись можно сгенерировать самостоятельно и бесплатно.
Или речь про нетленку?
(38) пока нет. Хочу сначала вникнуть в суть вопроса, потом оценить возможные способы реализации и сложность решения, а потом оценит возможность самостоятельной реализации и примерное время на реализацию, чтобы оценить
(40) Всех клиентов заставлять сгенерировать подпись? И учить их пользоваться ЭП и подписывать документы? И брать за обучение еще денег?
(40) я не знаю как заставить сгенерировать сотрудников подпись самостоятельно, а потом еще и заставить подписывать этой подписью документы, если сможете - наверное будет самый лучшй вариант, при этом надо подмнить, что документы которые надо подписывать есть не только в 1С.
(45) генерирует центрадизована ит отдел. Или у вас в базу они тоже самостоятельно себя заводят? Типа вон комп заведи себя в Ад потом в базу
(49) 1С не выдает НЭП, это раз.. во вторых для подписи НЭП-ом нужно специализированное ПО, это все затраты.
(52) с клиентами не получиться просто подписью, с клиентам нужна НЭП, а интеграция НЭП в свои учетные системы - та еще песня и в принципе как должен выглядеть физ. процесс в этом случае? сайт? приложение? где клиент будет подпсиывать?
это все мое видение, которое мы у себя несколько раз обсуждали, на истину в последней инстанции - не претендую. ))
(56) я уже с работы уезжжаю, может быть у вас и получиться. от бизнеса же зависит, но простой подписи на первичных бух.документах налоговая не обрадуется и есть подозрение, что не примет.
(57) могу, но не хочу. ибо это надо администрировать, а профита в сравнении с простой подписью - никакого нет.
(58) Где это такие законы?
Пункт 2 статьи 5 Федерального закона "Об электронной подписи" от 06.04.2011 N 63-ФЗ определяет электронную подпись следующим образом: "Простой электронной подписью является электронная подпись, которая посредством использования кодов, паролей или иных средств подтверждает факт формирования электронной подписи определенным лицом". Другими словами, одноразовые уникальные коды, отправляемые по СМС, являются элементом простой электронной подписи.
(59) Законом предусмотрено, моим соглашением с клиентами - тоже. Не понимаю в чем проблема. Налоговая не примет- их проблемы
(61) Еще раз кто и что будет подписывать. Для разных ситуациях в законе прописаны разные условия применения подписи. Где то достаточно простой (например в случае подписания сотрудником акта приемки ТМЦ). А где то нужен и спецоператор для признания ЮЗД
Здесь возникают вопросы, каким ПО должен генерироваться код? Это можно сделать в 1С? Если код генерируется нашим ПО, то будет ли это считаться подтверждением?
Если реализовать через ответное смс, это было бы более правильно, но я знаю сервисы по рассылке смс, но не знаю таких, которые поддерживают прием смс, не подскажете?
(69) А какая разница в чем?
Это не законно. Ниодин покупатель не будет так делать, так как бухам нужны документы с подписью и печатью, а не ваше хер пойми чё. Что вы будете делать? Отключите газ?
Вы хотя бы провели исследования кто ваш потенциальный пользователь это фигни? Клиенты готовы согласны на это? Ваши юристы проверили судебную практику на случай претензий?
Вам просто налоговая скажет что отгрузки небыло, так как нет подтверждающих документов и снимут расходы. И судья их поддержит.
(69) Без подписанной первички (бумажная подпись/печать или НЭП с соглашением об ЭДО или КЭП\УКЭП без соглашения) они не имеют права документы к учету принимать
(71)+ Хотя ошибаюсь можно если соглашение об ЭДО подписать (и гостайны нет):
"Где используется простая электронная подпись?
Простая электронная подпись чаще всего применяется при банковских операциях, а также для аутентификации в информационных системах, для получения госуслуг, для заверения документов внутри корпоративного электронного документооборота (далее — ЭДО).
Простую электронную подпись нельзя использовать при подписании электронных документов или в информационной системе, которые содержат гостайну.
Юридическая сила ПЭП
Простая подпись приравнивается к собственноручной, если это регламентирует отдельный нормативно-правовой акт или между участниками ЭДО заключено соглашение, где прописаны:
и вместо того чтобы сделать как все, вы хотите устроить переписку в СМС. Мне как клиенту эту ниразу не удобно. Что за вздор с ссылкой в СМС. Я что ее на компьютере вбивать посимвольно должен? Ну спасибо
Ответный СМС это что? СМС это деньги поставить подпись и печать - бесплатно. И какие плюшки вы мне предлагаете для того чтобы я платил вам за подпись?
(72) Да, но "Простая подпись приравнивается к собственноручной" а нам в документе помимо подписи нужна и печать организации
Т.е. в суде очень легко и непринужденно аннулировали акты с такими подписями, тем более когда в договоре они не оговорены
Короче можно сделать:
1. Соглашение об ЭДО правильное
Способ должен быть конфиденциальным и защищенным как минимум секретным паролем/идентификатором, известным только контрагенту
3. Учетная система, в которой можно авторизоваться получив пароль через п.2. Логином выступает ИНН или нечто вроде
4. Контрагент заходит через браузер в учетную систему (1С веб-клиент) по логину/паролю, видит список документов и "подписывает" их.
Снимать подпись низзя! Можно только аннулировать документ по взаимному согласию (снова п.2)
5. Надо сохранять все логи когда, кто, откуда и что делал
(78) Клиент скачал акт по ссылки исправил сумму и отправил вам СМС. В суде чей акт будет в приоритете?
У нас 2 бумажки которые невозможно идентифицировать и однозначно сказать были ли правки и какой документ правильный
В случае кэп есть оператор (3 сторона) и документ блокируется от изменений.
А тут как? Что мешает поставщику подменить акт после подписания?
(81) Т.е.? У меня акт который я скачал по ссылки из СМС (по моим словам). Что значит "Как клиент подтвердит что он отправил акт и что он был получен"? Зачем клиенту вообще подтверждать отправку акта? Это поставщик требует от меня денег и ссылается на якобы подписанный через СМС акт.
(82) Поэтому юрлица и ходят в КБ с ЭЦП. М же про организации говорим?
(77) п.3 учетная система не должна хранить пароли клиентов
И запрещать не клиентам "подписывать" документы или левым клиентам
(83) Ты не понял.
Некая учетная система согласно соглашению ЭДО является оператором ЭДО по сути.
И клиенты "соглашаются" с записями в ней. Если можно подменять записи то это компрометация системы.
Все правильно ходят. Только кто мешает КБ подсунуть на подпись уже с другой суммой? Каким образом клиент видит сумму то а?
(86) так это было. После этого 1С стала за собой файлы подчищать (был вирус, когда 1С формирует файл для КБ, а вирус его модифицировал)
если невозможно идентифицировать, кто то о какой "собственноручной" подписи идет речь, если мы не можем сказать кто это подписывал?
(93) т.е. если у человека 2 фирмы (ИП и ООО, например), то от имени какого клиента он подписывает документы?
(97) ? Откуда логи и пароль взялись? Мы же говорим что выкладываем на файлопомойку файлик и отправляем СМС на телефон ссылку и клиент нам в ответ пишет смс "Ок, принято". И по мнению ТС это и есть реализация простой подписи
(98) Я такого не говорил. См. (77) что я написал
СМС это просто способ получения/восстановления пароля
Создавайте и сохраняйте подписи клиентов в вашем мобильном приложении. Приложение использует несколько вариантов создания подписей:
- По веб технологиям
- Используя нативный интент
Может быть использована например для хранения подписей клиентов за накладные и т.п. Также программа будет полезна начинающему разработчику мобильных приложений в качестве примера использования вызова интента и обработки результата.
Специальные предложения
Все отлично, только стоило бы указать, какие тут применялись программы, и откуда взята информация :)
А то ведь могут и обидеться разработчики. Та и это просто - это хороший тон.
Честно, не знаю откуда взялся. Нашел в свалке кода по мобильной разработке на трекере, решил поделится ну и сразу потренироваться в сборке мобильных приложений. Если чей то кусок, с удовольствием озвучу автора.
Помогите встроить в свою конфу, пожалуйста.
Сейчас постоянно выскакивает ошибка "Не удалось запустить программу!", причем что программка для подписи открывается.
На десктопе работает отлично.
В мобильном приложении на платформах 8.3.14.53 и 8.3.13.45 не работает.
Проблема в js скрипте, в строчке, которая должна эмулировать переход по ссылке при нажатии на кнопку:
document.getElementById("signel").href = signaturePad.toDataURL();
Вот если написать
document.getElementById("signel").href = "1";
Тогда всё отлично работает, возникает событие ПриНажатии. Но теряем передачу картинки в 1С.
Возможно это связано с Android 9, на котором я проверял.
Намучился я с этим примером , мне не хотелось использовать встроенную еще одну программу , пошел по пути JS, и вот все бы хорошо но что то не взлетало . Пол дня просидел , уже на принцип пошел , оказалось что конструкция
document.getElementById("signel").href = signaturePad.toDataURL();
не рабочая . При этом не отрабатывает событие ПриНажатии
пробегая по очередной статье я наткнулся на пример в котором создают отдельно элемент для обмена
Вместо : document.getElementById("signel").href = signaturePad.toDataURL();
Используем : document.getElementById ("BufferData").innerHTML = signaturePad.toDataURL();
Процедура ДокументHTMLПриНажатии(Элемент, ДанныеСобытия, СтандартнаяОбработка)
BufferData = Элементы.ДокументHTML.Документ.getElementById("BufferData").innerHTML;
Если ЗначениеЗаполнено(BufferData) и BufferData<>"js_result" тогда
ДДКартины = СтрЗаменить(BufferData,"data:image/png;base64,","");
ДД = Base64Значение(ДДКартины);
Результат = ПоместитьВоВременноеХранилище(ДД);
конецЕсли;
Коллеги, доброго дня.
Есть Комплексная автоматизация 2.4, подключено расширение, в расширении добавлен справочник. После обновления до последнего релиза и обновления платформы до 8.3.18.1363 при запуске появляется ошибка:
подпись мобильного клиента в приложении на сервере устарела необходимо обновить подпись,
одна кнопка ОК, дальше база запускается нормально. Мобильное приложение не используется.
Кто-нт сталкивался как устранить проблему?
(44) Если конфа на замке, то кнопка очистить подпись не активна. Нельзя так очистить подпись. Об этом писали еще в начале этого обсуждения. А то, что действительно работает и конфа нормально при этом обновляется без танцев с бубном:
"Администрирование" - "Параметры информационной базы" - "Не выполнять проверку подписи.
Ну и добавить в ярлык 1С "/DisableStartupMessages тоже работает, но мне больше нравится первый вариант.
ivan453; Xomka; user802000; reugen; atdonya; Vyacheslide; 1cprogr_nsk; RomanKod; nance; d_sdr; BrainWashed; Wrols; APalkin; doronin70; Бит; 1274gmar; Mike9; nightowl; Orlando Skibraves; PARKER_JOTTER; rabota.v8.1c; antonius888; yurazyuraz; AMNG; miphtemp; Skobuneev; Anton-i-oni; epsilon; baaikarov; Vovanches; tatoshka0403; BarsukM; al.semenenko88; Makyrka; Fedor1970; Xershi; CratosX; danjer74; spallcs; Unknown31; user1544123; k992007; + 42 – Ответить
Тоже установил 8.3.18.1433 появилась такая ошибка. "Не выполнять проверку подписи" как и многим тут не помогло. Про ошибку на 8.3.18.1363 тут пишут, поэтому решил даже не проверять. Поставил 8.3.18.1334 и всё ок. База файловая, опубликована на веб сервере. Ошибка про подпись мобильного клиента появлялась каждый раз при запуске базы по веб-ссылке. При запуске конфигуратора ошибки не было.
У кого-нибудь вылазила если обращаться напрямую к файлу БД? Я что-то не успел протестировать.
Если есть возможность, то можно пройти отладчиком до данного места и понять, что от Вас хочет программа)
В общем, похоже глюк платформы, в 1С сказали, что ранее была уже такая ошибка и они её исправляли. Посоветовали откатить платформу назад.
Мы не пользуемся мобильным клиентом. Поэтому в свойствах конфигурации просто очистили подпись мобильного клиента. Ошибка ушла.
Там же можно сформировать подпись, либо создать закрытый ключ, если кто использует мобильный клиент.
(6) Спасибо. Смотрел в эту сторону, но конфа на поддержке, не хочется только из-за этого снимать поддержку. На поддержке доступна только кнопка Создать закрытый ключ, но это похоже никак не поможет в проблеме.
(7) в 1С рекомендуют отключить пока проверку подписи. В конфигураторе "Администрирование" - "Параметры информационной базы" - "не выполнять проверку подписи". Но этот вариант у нас не сработал.
Это работает если из конфигуратора запустить отладку клавишей [F5]
А вот как сделать, чтобы без конфигуратора отключить проверку подписи? Может какой-то параметр командной строки существует?
(6) Спасибо. Очистили подпись мобильного клиента. Ошибка ушла. При этом база по прежнему осталась НА ПОДДЕРЖКЕ.
(10) Конфигурация / Поддержка / Настройка поддержки.
"Объект поставщика редактируется с сохранением поддержки". Я думаю наверное в этом дело
(11) Ну это уже не совсем на поддержке. Понятно, что поддержка сохранена, но полностью автоматического обновления уже не будет. А без включения возможности изменения доступна только Создать закрытый ключ.
(12) У нас обновления делаются через конфигуратор. Штатно. Руками допиливать ничего не нужно и меня это вполне устраивает. По другому к сожалению, не могу подсказать
Тем временем последний релиз розницы уже требует 8.3.18.1363
+Проверил на последней платформе (8.3.18.1433), ошибка всё ещё не исправлена.
Помогла только очистка подписи.
Вариант "Администрирование" - "Параметры информационной базы" - "Не выполнять проверку подписи" ни к чему не привел.
(21) выше почитайте, или откатиться на более старую платформу. Или снять с поддержки (включить возможность изменения) тогда очистить подпись будет доступна.
(22) на меньшей версии платформы тоже самое. Конфигурация снята с поддержки, кнопка Очистить подпись - не доступна. :-(
(24)
Еще раз проверил, и вправду не снята с поддержки :)
Версия: 8.3.17.2198
Без снятия с поддержки никак не вылечить?
В моём случае конфигурация была снята, поэтому я просто обнулил подпись.
Сейчас зашёл в "Параметры информационной базы" в конфигураторе - увидел нечто похожее на нужное, проверьте плиз, у кого ошибка, что в у вас там стоит и помогает ли перещёлкнуть флажок на "Не выполнять проверку подписи"
Перещелкнуть флажок "Не выполнять проверку подписи" не помогает. Помогает очистить подпись или откатить версию платформы.
Народ, стояла КА 2.4.13.180. Встал на узел и нажал "Возможность редактирования с сохранением поддержки". Потом очистил подпись. И вроде бы все было ок. Но вышла КА 2.4.13.186. Пытаюсь обновиться . и. не обновляется. Копия, в которой я не делал возможность редактирования с сохранением поддержки обновилась до КА 2.4.13.186 без проблем. Как быть? Накатывать cf от 180 конфы, чтобы убрать возможность редактирования и потом накатывать обновление, а потом опять давать возможность редактирования?
Или можно как-то по нормальному обновить конфигурацию?
(31)Если обновлять через конфигуратор - просто идет зависон. Но я привык пользоваться обновлятором. После его запуска примерно через час вылезает ошибка: [1c] недостаточно памяти. При этом на этом же сервере стоит копия этой базы. На копии возможность редактирования я не делал. Так вот эта копия и еще одна копия со старым (неактуальным переносом) были нормально обновлены. И все эти три базы стоят на одном серваке. А раз так, то я делаю вывод, что проблема не совсем в памяти. Хотя и с памятью тоже есть проблемы: стоит сервер 1С х32 (лицензии на х64 -нет) и клиенты все тоже х32.
(33) Клиент 32-х битный падает с ошибкой при превышении порога в 2 гигабайта оперативной памяти. Поможет только 64-х битная версия. и желательно клиента запускать непосредственно на сервере 1С (потому что, как правило, он гораздо мощнее клиентских ПК)
Если обновлять через конфигуратор - просто идет зависон. Но я привык пользоваться обновлятором. После его запуска примерно через час вылезает ошибка: [1c] недостаточно памяти. При этом на этом же сервере стоит копия этой базы. На копии возможность редактирования я не делал. Так вот эта копия и еще одна копия со старым (неактуальным переносом) были нормально обновлены.
1С-овцы написали в ошибках:
Способ обхода:
Установить платформу версии 8.3.18.1438 или больше.
Способ исправления:
В конфигураторе на свойстве "Подпись мобильного клиента" нажать "Очистить подпись".
Это статья для тех, кто интересуется мобильным клиентом. Мы рассмотрим установку мобильного клиента на Android, подключение отладки и сборку apk приложения в конфигурации «Сборщик мобильных приложений».
Это статья для тех, кто интересуется мобильным клиентом. Мы рассмотрим установку мобильного клиента на Android, подключение отладки и сборку apk приложения в конфигурации «Сборщик мобильных приложений».
Наконец-то появилась тестовая мобильная платформа 8.3.12, и теперь мы может протестировать работу мобильного клиента. Не знаю, как Вы, а вот у меня многие знакомые разработчики ждали этого еще с выхода статьи на «1С:Зазеркалье» (Мобильный клиент).
Я предполагаю, что Вы знакомы с установкой мобильного приложения и сборщиком мобильных приложений, а также, что у Вас уже установлен Android SDK, Apache Ant и прочее. Статей на эту тему уже полно.
Возьмем для наших экспериментов демонстрационную конфигурацию «Управляемое приложение» и, для начала, попробуем подключить ее в готовый мобильный клиент. В моем случае, дистрибутив клиента – это файл «1cem-client-arm.apk». Предварительно на смартфоне должна быть включена возможность установки приложений из неизвестных источников. У меня это выглядит так:
Мобильный клиент – это аналог веб-клиента, поэтому, для доступа к базе, ее необходимо опубликовать на веб-сервере. Здесь все стандартно, я публикую на веб-сервере IIS с именем “demo”. База у меня файловая, так что нужно дать права на каталог пользователю IUSR. Радует, что система сама об этом напомнила.
Подключаем базу в мобильном клиенте:
А вот список контрагентов:
Конечно же, это не все места, которые необходимо адаптировать под работу мобильного клиента. Проверить конфигурацию можно с помощью «Главное меню – Конфигурация – Проверка конфигурации»:
У меня нашлось 84 ошибки, включая неподдерживаемые объекты метаданных. Плюс те три места в коде, которые я уже ограничил директивами. Так что придется еще поработать над адаптацией, но это конечно не то же самое, что писать мобильное приложение с нуля.
Запуск под другими ролями происходит также, только необходимо установить право запуска мобильного клиента.
Указываем параметры и готово:
Настройка для предварительно подготовленного apk клиента от 1С завершена.
Теперь соберем свой apk, воспользовавшись сборщиком мобильный приложений. Признаться, я потратил несколько часов, пытаясь собрать приложение первый раз. Сборка проходила, но открывался пустой список баз.
И так, имеем архив мобильной версии платформы. Загружаем его в справочник «Мобильные версии»:
В настройках сборщика отдельно появился пункт для SDK 26 и выше (кто, как и я, давно не обновлял – запускаем SDK Manager и загружаем новые пакеты):
Далее необходимо подготовить файл конфигурации. Вот с этим шагом у меня и были проблемы в самом начале. Потом я открыл документацию и все немного прояснилось. Руководство разработчика говорит по этому поводу следующее: «Каждая конфигурация, которая может работать в мобильном клиенте, содержит некоторую вспомогательную информацию, позволяющую отследить подмену конфигурации».
Файл конфигурации необходимо подписать. При этом для каждой конфигурации формируется свой закрытый ключ, а в файл 1cemca.xml выгружается открытый ключ (поле DSAKey), с помощью которого и сравнивается подпись конфигурации.
Чтобы сформировать ключ и подпись, заходим в свойства конфигурации «Подпись мобильного клиента» (сразу под требуемыми разрешениями, если у Вас свойства разделены по категориям, а не по алфавиту) и видим настройки подписи:
Сначала создаем закрытый ключ, прячем его от шпионов и врагов. Далее формируем подпись конфигурации. На будущее, руководство советует зайти в «Главное меню – Конфигурация – Мобильный клиент – Настройка использования мобильного клиента». В диалоге установить флажок «Проверять подпись мобильного клиента при обновлении конфигурации базы данных» и нажать кнопку «ОК». Судя по руководству, подпись будет меняться, если у нас меняется состав или имена объектных типов метаданных, а также имена и/или состав ключей записи регистров. Т.е. изменение форм определенно не влияет на подпись и, судя по описанию, изменение состава реквизитов существующих справочников, документов (но это не точно).
Подпись готова, можем продолжить. Сразу скажу, что фоновые процессы в мобильном клиенте недоступны, так что их необходимо отключить в разрешениях мобильного клиента. Так же недоступен обмен файлами с ПК. Я дополнительно отключил геопозиционирование, чтобы при сборке не возникала ошибка из-за отсутствия ключа для работы с картами. У меня получился следующий список разрешений:
Заходим в меню «Конфигурация – Мобильный клиент – Записать в файл» и сохраняем «1cemca.xml». В сборщике мобильных приложений добавляем нашу конфигурацию (группу и элемент):
Создаем группу справочника «Мобильные приложения» и настраиваем параметры сборки по умолчанию:
Добавляем нашу Демо конфигурацию:
Добавляем адрес базы на веб-сервере:
Собираем приложение. Первый раз сборка проходит дольше, последующие разы за несколько минут. После успешной сборки сохраняем готовый apk («Получить приложение»):
Публиковать приложение я, конечно, не буду. Воспользуемся прямой установкой и увидим окно авторизации приложения:
Представляю вашему вниманию, продолжение цикла обучающих уроков, в которых на простых примерах показана разработка мобильных приложений на платформе 1С. В этой статье разработаем мобильное приложение 1С в котором при помощи QR-кода будет происходить аутентификация пользователя, где в качестве логина будет использоваться QR-код.
Демонстрация работы мобильного приложения 1С:
Блок-схема работы мобильного приложения 1С:
Схема и принцип работы мобильного приложения 1С
Примечание:
В текущий момент, в 1С существуют три варианта разработки приложения:
1. Приложение на мобильной платформе.
Мобильная платформа 1С
2. Мобильный клиент.
Мобильный клиент 1С
3. Мобильный клиент с автономным режимом.
Мобильный клиент автономный
Установка на устройство доступно в двух видах:
- Публикация конфигурации для мобильной платформы 1С на веб-сервере, с последующей загрузкой на устройстве.
- Сборка apk-файла с помощью сборщика мобильных приложений, с последующей установкой либо напрямую в устройство либо через Google Play.
1. Подготовительные действия.
1.1 Установить платформу 1С на компьютере.
1.2 Установить веб-сервер Apache.
Что для этого необходимо сделать:
В настройках Open Server, выбрать все допустимые IP адреса:
Все доступные IP
Зарегистрировать Apache как службу, установить тип запуска «Вручную»:
Далее выполнить команду:
Установка службы Apache
Тип запуска Apache
1.3 Устройство на ОС Андроид.
В текущей статье разработка будет идти сразу на реальное устройство, без эмуляторов. Для этого, необходимо установить мобильную платформу на ваше устройство. Как это сделать? Просто!
Включить опцию «Неизвестные источники»:
Временно, на устройстве включаем опцию «Неизвестные источники», которая позволит устанавливать приложения миную Google Play, напрямую с помощью apk файла:
2. Разработка основной базы.
Согласно выше представленной блок-схемы, обращения к основной базе возникают в трех случаях:
По сути запрос и восстановление пароля делают одно и тоже, но в дальнейшем такое разделение может быть полезным.
2.1. Запустить платформу 1С от имени Администратора.
2.2. Создать пустую конфигурацию.
Зададим корневой URL: authentication
2.4. Добавить проверочный шаблон URL.
Шаблон URL Ping
Теперь необходимо проверить связку 1С и Apache, а так же научится переносить настройки в конфигурационных файлах.
2.5. Тестовая публикация основной базы.
Публикация на веб сервере
2.6. Перенос настроек публикации.
перенести следующие настройки:
Перенос настроек публикации
После уже не придется переносить настройки, делается это только при первой публикации, но если изменятся какие либо параметры или добавляется новый сервис, тогда необходимо повторить действия по переносу.
2.7. Проверка тестовой публикации.
В результате должна быть отображена страница с текстом «Pong».
Осталось реализовать три основных метода сервиса аутентификации, для этого необходимо добавить недостающие объекты конфигурации.
2.8. Добавляем регистр сведений «ДанныеПользователей».
Непериодический, независимый регистр сведений «ДанныеПользователей», со следующей структурой:
— Измерение «ЛогинПользователя», тип строка, длина 4 символа.
— Ресурс «НомерТелефона», тип строка, маска «79999999999», длина 11 символов.
— Ресурс «ХешПароля», тип строка, длина 100 символов.
Сам пароль не хранится в базе данных, если необходимо хранить, можно реализовать через использование безопасного хранилища паролей в БСП, более подробно о безопасности в 1С: Безопасность 1С
2.9. Добавляем основные шаблоны URL.
- PasswordRequest — запрос пароля, метод GET, шаблон: /PasswordRequest/
- PasswordRecovery — восстановление пароля, метод GET, шаблон: /PasswordRecovery/
- PasswordCheck — проверка пароля, метод GET, шаблон: /PasswordCheck//
Так как, по сути запрос и восстановление пароля делают одно и тоже, то вызывают они одну и туже функцию, которая по входящему логину, читает из регистра сведений данные о пользователе, генерирует новый случайный пароль, формирует и обновляет хеш-сумму пароля и отправляет SMS пользователю:
Обновляем конфигурацию базы данных и запускаем в режиме «1С:Предприятие», добавляем пользователя, например с логином «0000» и корректным номером телефона, в формате «79999999999».
Далее воспользуемся браузером, где в строке адреса вводим:
В результате должен быть получен текст «Пользователь не найден.», так как логина «1234» не существует в нашей базе.
Проверим генерацию пароля, хеша и отправку SMS, по адресу:
Проверяем что хеш пароля сохранился и SMS пришло на телефон:
Хеш пароля сохранен
Осталось реализовать проверку хеша пароля, введенного пользователем в мобильном приложении, с тем что хранится в основной базе данных, для этого прямо в обработчике шаблона URL «PasswordCheckGET» пишем следующий код:
Обновляем конфигурацию основной базы данных и в браузере используем следующий адрес:
Из него следует, что логин «0000» указан верно, но хеш пароля не верный, в результате будет выведено слово «Нет». Если вместо «123» использовать правильный хеш из основной базы, тогда проверка будет пройдена. Следующим шагом, будет разработка мобильного приложения 1С.
3. Разработка мобильного приложения на 1С.
3.1. Создание мобильной конфигурации.
Запускаем платформу 1С от имени администратора и создаем пустую конфигурацию, задаем ей имя «МобильноеПриложение» и в «Назначения использования» указываем «Приложение для мобильной платформы». Далее, в параметре «Используемая функциональность мобильного приложения», добавляем опцию «Камера».
3.2. Настройка взаимодействия с устройством.
Сразу настроим взаимодействие с мобильным устройством, для этого, публикуем мобильное приложение на веб-сервер, открываем меню «Конфигурация» – «Мобильное приложение» – «Публиковать…» и устанавливаем настройки согласно скриншоту, далее нажимаем «Опубликовать»:
Публикация мобильного приложения 1С
Перенос настроек публикации мобильного приложения
После перезапустите веб-сервер и проверьте доступ к публикации с помощью браузера, по адресу:
Должен загрузится XML файл:
XML файл публикации
💡 Дополнительная информация по публикации см. в статье: Разработка мобильных приложений 1С
На устройстве запустите мобильную платформу 1С и добавьте опубликованное приложение, для этого нажать кнопку со знаком «+», ввести адрес:
Нажать загрузить, в результате, опубликованная конфигурация мобильного приложения будет установлена в мобильную платформу 1С. Запускаем установленную конфигурацию из списка в мобильной платформе, тем самым проверяя, что конфигурация загрузилась в мобильное приложение 1С, теперь приступаем непосредственно к разработке основного функционала мобильного приложения на 1С.
3.3. Добавление объектов в мобильное приложение 1С.
Рабочая область начальной страницы
Модуль формы содержит следующий код:
▪ Добавляем общую форму ввода пароля, с наименованием «ФормаВводаПароля», в которой размещены следующие элементы:
— Реквизит «Логин», с включенной опцией «ТолькоПросмотр».
— Реквизит «Пароль», тип «Строка», длина «4».
— Реквизит формы «ХешПароля», тип строка.
— Команда «Войти».
— Команда «ЗапроситьВосстановитьПароль», для запроса восстановления пароля из основной базы.
Модуль формы содержит следующий код:
▪ Необходимо обновить публикацию мобильного приложения 1С на веб-сервере, для этого служит пункт меню «Конфигурация – Мобильное приложение – Обновить публикуемое приложение».
▪ На устройстве запустите мобильную платформу 1С, далее долгим нажатием в списке установленных конфигураций вызовите контекстное меню и выберите пункт «Обновить».
Теперь можно протестировать разработанный функционал мобильного приложения 1С для аутентификации пользователя при помощи QR-кода.
Читайте также: