Прелюдия:
Наступил периодически возникающий у меня момент самокопания, в этот момент хочется вылить накипевшее, измарать бумагу, высказаться.
Долго думал: -С чего начать? Потом думал: -А стоит ли начинать?
Потом вспомнил, как люди жалуются на то, что все проекты показаны и рассказаны в радужных цветах: -«как мы классно сделали или внедрили». Виден только результат, нет «мяса». Лично я люблю послушать рассказы про то, как все было «за ширмой». В итоге решил - писать! Но не так, как затевал первоначально, поэтому простите, добавлю немного воды. Поразмышляю о жизни и расскажу о том, как все было, без прикрас.
С другой стороны, я уважаю мнение тех читателей, которым неинтересен тот путь, который прошел персонаж данной статьи. Поэтому, если вам не интересны рассказы о жизни или для вас «МногА букАФ», можно перейти к Разработке или сразу к Выводам.
Мои выводы могут в корне не совпадать с Вашими, поэтому заранее извиняюсь перед теми, кто не согласен. Все мы люди. Люди имеют свое мнение и могут ошибаться.
Содержание:
- Вода, про то, как я решил стать «1С-ником»
- Знакомство с мобильной платформой 1С
- Знакомство с мобильным клиентом
- Первый мобильный заказ
- Сроки и момент истины
- Мобильное приложение за 3-и недели
- Реализация
- Выводы
Вода, про то, как я решил стать «1С-ником»:
Помню, как в 2006 после института говорил, что в 1С ни ногой! Это эксель, а не язык программирования… Сейчас — это лишний повод улыбнуться тем, кто это знает.
Переломный в моей жизни 2012… В тот год я изменил в своей жизни многое, на самом деле очень многое, но многое останется за кадром. Чуть ранее, в 2011 году банковский сотрудник решает изменить свою жизнь и, проанализировав рынок, решает идти в мир 1С. Помню, как перед новым годом я уволился и получил выплату за 3,5 месяца неотгулянного отпуска.
Меня иногда спрашивают люди из других профессий: -Правда, что программисты получают X денег? Но, никто никогда не спрашивал: -Правда, что IT специалисты годами не ходят в отпуск?
Пользуюсь случаем, скажу: -Да, правда! 19 мая 2021 мне стукнет 38, и за всю свою жизнь я был в отпуске примерно 7-8 раз. Но смысл статьи не в этом…
Помню, как в 2012 звонил в местный Франчайзи и спрашивал: -Если я куплю у вас курс, смогу ли программировать на языке 1С?
Правда смешно? Лично меня все это забавляет, но мне не стыдно. Меня терзают другие мысли, но и это не относится к данной теме.
2012 январь. Прохожу официальные платные курсы от фирмы 1С и сдаю на «1С: Профессионал по платформе». Сразу начинаю думать, что я теперь о-го-го! А вот за это смешно и стыдно 😉
2012 март. Начало пути в мире 1С. Куда идти работать?
Многие говорят, что в 1С только 2 входа:
1 Франчайзи
2 Завод
Это не так. Есть еще путь через конторы «Рога и копыта» Аля «Человек-оркестр».
Если честно «Рога и копыта» была перед Франчайзи, но оттуда я бежал через 7 дней, даже денег не взял.
"Когда вспоминаю менеджеров, жующих испорченную колбасу или странную ситуацию с постоянно не хватающими на всех сотрудников стульями пробегают мурашки. Тогда я решил: В малый бизнес больше не ногой."
Я думал: -Франчайзи, вот то место, где можно получить опыт! Видимо, мне не повезло, в тот момент, когда я пришел в «самый мощный Франчайзи всея Руси» там оставался один программист, остальные массово бежали. Самое смешное, через месяц он ушел в SAP. В итоге я занимался доставкой желтых коробочек, посидел на телефоне бесплатного часа консультирования и ушел.
"Самое яркое воспоминание — это когда сотрудники при виде открытого конфигуратора открывали широко глаза и говорили: -А ты че, программировать умеешь!? С другой стороны, я посмотрел на кухню внутри и кое какие уроки усвоил."
Если бы Гоголь родился в наше время, тогда «Мертвые души» были бы про сертификаты на стенах Франчайзи. С другой стороны, каждый крутится как может…
В итоге, я тот самый «Заводской программист», но что радует, не из «Пересидков», хотя это отдельная тема для разговора, когда-нибудь я напишу свои соображения и на эту тему. А может, не напишу…
2012-2015 год. Завод. У каждого завода есть плюсы и минусы, начнем с минусов, чтобы на контрасте плюсы перевесили:
Черная сторона завода – это то унылое место, где ты можешь стремительно взлететь и медленно убиться, если вовремя не возьмешь себя в руки. Можешь получить опыт и вовремя уйти или превратишься в «Пересидка», невостребованного по рынку. Ты ежедневно собираешь велосипеды и отрабатываешь заявки, если ломается код. А кто его пишет и почему он ломается? Посмотри по сторонам, вокруг тебя такие же коллеги. Ломается Ваш код! Почему?
"Боже, сколько раз мне приносили резюме, в котором написано, что человек работает на заводе 8-20 лет. «Доработка конфигурации, разработка отчетов, справочников, регистров» и все…
HR смотрит на опыт и радуется. Я вижу мертвое тело, и мне грустно."
Белая сторона завода — это то замечательное место, где зарплата ниже среднего, зато ты без опыта и навыков программирования сразу становишься ведущим программистом, без навыка руководства можешь стать сразу ИТ директором! Да, это болезнь заводов и крупных именитых корпораций. Хотя это не болезнь – это возможность кому-то не повышать ФОТ, а кому-то «набить руку».
"Завод - «Кузница кадров»."
Завод для меня. Работа «От звонка до звонка». Можно ходить в отпуск и тебе никто не звонит, да в принципе можно ходить в отпуск. Мне доверяли задачи, которые не смогли сделать мои более опытные коллеги, и я их добивал. Я пробовал новое, мне мешали только барьеры отдела IT безопасности. Помню, как я решал одну из таких задач и предложил 5-6 вариантов, и 4 варианта зарубили на корню. Я заскучал… Платформа развивалась слабо, и я стал замечать, что моя работа превращается в копи паст…
Знакомство с мобильной платформой 1С:
За 2014 год я благодарен двум людям. Очень сильно благодарен.
Первый человек коммерческий директор, он предложил попробовать написать обмен УПП с Документооборотом на web-сервисах, так как программист из Москвы сказал, что они быстрее, чем com.
Второй человек известен Вам. Хочу сказать ему еще раз: -Дмитрий, огромное тебе спасибо!
Я вообще считаю, что все события, которые происходят, «происходят неспроста», они могут дать вам импульс, шанс, возможность! Вы можете спрятаться в панцирь рака и прозябать, вспоминая этот момент и задаваться вопросом: -А что, если бы я тогда…?
А ничего! Вы потеряли возможность!
Не упускайте момент! Принимайте вызовы! Ошибайтесь, учитесь, делайте!
Как сейчас помню, мне пришло письмо с предложением пройти БЕСПЛАТНЫЙ тренинг! Я отрекламировал этот тренинг коллегам, но ни один из них не стал его проходить!
Итак, мы запускаем бесплатный тренинг «Разработка мобильного приложения на 1С с нуля – за 7 вечеров!»
|
Глоток свежего воздуха! Я был в первом потоке из тех, кто прошел этот тренинг до конца! И то, что я неделю почти не спал, это мелочи. Для меня это был импульс, я до сих пор под эффектом!
Что дальше? Дальше было много чего, но все это не относится к данному рассказу.
Знакомство с мобильным клиентом:
10.04.2018 фирма 1С выпустила релиз 8.3.12.1412, с долгожданным мобильным клиентом. Помню, как ночью тестировал мобильный клиент и писал статью "Мобильный клиент + HTTP Сервис + Расширение конфигурации"
Глаза горели, руки делали…
Вообще в 2018 году я много писал по двум причинам:
1 Был период самокопания.
2 Ждал серьезную операцию и боялся, что, если что-то пойдет не так… знания пропадут.
Выводы по мобильному клиенту я сделал. Понял, что он мне не подходит. Точнее не так: -Я не смог придумать для чего он нужен. Лично для меня минусы перевесили все плюсы. Но об этом ниже…
2018 декабрь. Компания Пив&ко решили разработать мобильное приложение.
Появилась возможность применить знания, полученные в 2014 году. Мне было очень досадно, что я не мог найти желающих на мобильное приложение более 4-х лет.
Тут проблема в том, что я не имел той картины мира, которую имею сейчас.
В тот же момент, когда мне предложили писать мобильное приложение, мне поступило предложение на должность начальника управления. Еще месяц назад до предложения я писал: 01.11.18 20:11 «пока не готов расти в плоскости руководителя, мне нравится то, чем я занимаюсь в текущий момент.»
Я вообще какой-то «везучий», интересные предложения приходят мне все время одновременно, и я начинаю терзаться и метаться. Вот самое интересное пишу эту статью и опять же терзаюсь, опять поступило два варианта в один день, с разницей предложений в 1 час.
Что же я выбрал в 2018?
Черт возьми, каюсь! До этого момента мне предлагали максимум возглавлять отдел. Выпала возможность сразу попробовать ТОП должность. У меня появилось чувство «опасения», ох как же я люблю это чувство.
Это был вызов: -Слабо? Справишься!?
Выпала возможность, и я ее не упустил, очень интересный и полезный опыт. Очень благодарен за то, что в меня поверили. Ну и в костюме походил…
От мобильного приложения я не отказался… Предупредил, что выхожу в должности с неизвестными для меня задачами, поэтому займусь приложением как освоюсь и пообещал уложиться в 4-5 месяцев с момента старта.
2019 сентябрь. Первый раз на INFOSTART EVENT.
Я ехал с конкретной повесткой:
1 Какие плюсы/минусы мобильной платформы?
2 Сроки разработки мобильного приложения?
3 Просто посмотреть, что это за мероприятие такое.
Посмотрел все доклады из секции мобильной разработки. И вот сижу я на вопросах и ответах и слышу вопрос из зала про сроки разработки.
Ответы примерно такие: -От идеи до первого релиза 8-12 месяцев в среднем. Пару исключений 4-6 месяцев. Это только базовая версия и еще год чтобы приложение «Вылизать».
На тот момент я видел, как долго делают мобильное приложение не на «Мобильной платформе 1С», более 3-х лет и результат не «огонь».
С другой стороны 1 год? Я планировал сделать за 5 месяцев, а тут 1 год…
Я просто обязан сделать быстрее, у меня нет столько времени! Я знал все бизнес-процессы заказчика и это был огромный плюс.
2019 ноябрь. Я уволился с ТОП должности и взялся за мобильное приложение. Не было дизайнеров, постановщиков и команды разработки. «Один в поле воин» как говорится. И вот тут я понимаю, что я не верно рассчитал силы… Я оказался в аду, двое маленьких детей и только ночью можно продуктивно поработать.
П.С. Не подумайте плохо, я люблю своих детей, но работать они дома не дают. Летом 2021, чувствую станет еще веселей))
На фотографии не прикол, это реально один из дней разработки!
Через 3 месяца проект был готов на 70%. У меня появился еще один интересный проект по внедрению «ERP общепит» с бывшими коллегами по Пив&Ко.
2020 середина февраля. Я вышел на новую работу и продолжал делать мобильное приложение для Пив&Ко после работы.
2020 март. Случился повсеместный «COVID», и я опять оказался дома… С этого момента помимо мобильного приложения еще и основная работа. Я спал часа по два в день. Раз в три дня позволял себе поспать 4-5 часов. День и ночь смешались, я потерял всякое понимание происходящего. Я не понимал, какой день недели, время суток в текущий момент, думал, голова лопнет. Несколько раз хотел бросить разработку мобильного приложения, но я еще ни разу не заваливал проекты и каждый раз говорил себе:
-Взялся, ходи! Соберись и делай, осталось немного!
Сделал приложение примерно за 5 месяцев, рассказал о разработке в докладе на митапе Екатеринбург
Доволен ли я был результатом?
И, да и нет!
Меня терзали вопросы:
-В чем плюс мобильной платформы?
-Неужели 4-6 месяцев — это реальный срок?
Мобильное приложение за 3-и недели:
С середины февраля 2020 года я работал на проекте по внедрению ERP Общепит и Комбината Планового Питания для компании входящей в топ 5 по организации питания.
Вы спросите, причем тут мобильное приложение?
Да, его тут не должно было быть! Но, как часто бывает на проектах, отвалился исполнитель определенной работы. До перехода на ERP был создан сайт, вот его функционал нужно было реализовать и подружить с ERP. Сайт выполнял простую функцию, но в работе был непрост. Есть такие разработки из разряда «программист для программиста». Старая реализация была выполнена так, что инструкция по работе с сайтом помещалась на 10 страниц A4! С Вашего позволения прикладывать инструкцию старого сайта не буду. По сути, нужно было зайти в кабинет и проставить количество питающихся, так же были простенькие отчеты.
Если кратко, разработчик старой версии сайта внезапно пропал и у нашей команды добавилось работы...
Так как затевалось использовать планшеты на Андройде по цене около 5000 рублей, и они уже были закуплены, я предложил разработать мобильное приложение.
Из плюсов разработки данного приложения:
-Приложение проще в разы того, что я делал для Пив&ко!
-Была готовая подсистема универсальных http-сервисов PAPI (Pretty API).
-Была масса наработок в мобильной платформе.
И вот тут меня осенило! Черт подери один из рецептов кухни франчей, «работай 160 часов, закрывай 500». Продавай то, что сделал ранее как будто ты делаешь это в первые!
И вот тут проснулся азарт. Выходит, можно сделать быстро и дешево на мобильной платформе 1С.
Кодовое название разработки мобильное приложение «Бабушка»
У меня была полная свобода в реализации, подсистема PAPI (Pretty API) уже была задействована на этом проект ранее для обмена ERP Общепит и Комбината планового питания.
В ERP Общепит были добавлены:
-План обмена, на котором хранился хеш зашифрованного логина с паролем
-Документ «Калькуляция»
-Справочник с табличной частью сопоставлений.
-В подсистему PAPI были добавлены нужные для работы методы:
- Все обмены шли под служебным пользователем.
Мобильное приложение:
У меня было много наработок, которые вошли в данное приложение.
Проекта дизайна не было, поэтому я в интернете нашел логотип компании и цвета брал прям с логотипа. Потратил какое-то время, чтобы сочетание понравилось, и потом от этого оформления шел дальше.
В итоге появился вот такой приветственный экран:
На главном экране прячется админка, но ее активация происходит под определенным логином и паролем, при этом проверяется зашифрованный хеш.
У меня уже была наработка по форме настроек, нужно было только переработать цвета:
Для ускорения настройки устройства присутствует кнопка, которая считывает настройки с заранее подготовленного QR.
Реализация основного функционала реализована в виде дерева, где без труда можно менять количество питающихся. При этом изменения на верхней ветке тиражируется на подчиненные.
Пример, когда проставлять питающихся можно:
Пример, когда проставлять питающихся нельзя:
При выделении блюда выводится «Рецептура» и «Технология приготовления»:
Были реализованы отчеты. Вот тут хочу рассказать подробнее.
Первоначально я реализовал отчет на СКД, но… Но лично меня он не устраивал. Я крутил его и так, и эдак… В итоге я параллельно сделал еще такой же отчет на HTML и принес на суд общественности.
Со счетом 7:0 победил HTML. Поэтому если вам вдруг понадобится вывод отчета в мобильном приложении, делайте сразу на HTML, поверьте, вы получите быструю и гибкую разработку.
По просьбе из комментариев создал статью с примерами HTML таблица для начинающих
Пример отчета:
На все про все ушло около 3-х недель.
Первая версия мобильного приложения ушла на планшетах в 20 садиков. По обратной связи было понятно, что приложение воспринято на удивление положительно.
Люди легко с ним разобрались и не задавали лишних вопросов. Следом приложение улетело еще в 30 садиков и тут случился ключевой момент.
Мне сообщают, что необходимо предусмотреть обновление приложения.
Ранее, когда у них был портал, его не обновляли, но с приложением случилось как говорится «аппетит приходит во время еды».
Отступление:
Я спросил Администратора: -Почему у нас само подписанный сертификат? Почему нам не установить бесплатный сертификат с сайта https://letsencrypt.org/ ?
Администратор: - А что у нас есть с этим проблемы?
Я: -Пока проблем нет, но возможно они будут.
Администратор: -Вот будут проблемы, будем решать!
Так как приложение не затевалось публиковать в «Google Play», я решил попробовать прикрутить типовой механизм обновления из мобильной платформы.
На картинке ниже пример типового обновления:
Когда Вы «собираете» приложение, у вас пропадает функция «Обновить»
Недолгими изысканиями я нашел, где эта возможность включается, в файле ibases.v8i.
Как до него добраться?
А вот так:
//1 Получаем путь к каталогу временных файлов внутри мобильного приложения
ГдеИскать = КаталогВременныхФайлов();
//2 Меняем путь временного каталога на адрес расположения файла
ГдеИскать = СтрЗаменить(ГдеИскать,"/cache/","/files/1C/1cem/");
//3 Бинго!
МассивФайлов = НайтиФайлы(ГдеИскать,ИзменяемыйФайл,Истина);
Какой же параметр отвечает за функцию «Обновить»?
Я нарисовал простенькую конфигурацию и вывел содержимое файла ibases.v8i из мобильной платформы:
Есть еще параметр для авто обновления, но я решил, что его включать не надо.
В конфигураторе в форму настройки был добавлен адрес обновления:
Вот такой код был добавлен:
&НаКлиенте
Процедура URLОбновленияПриИзменении(Элемент)
ИмяКонстанты = Элемент.Имя;
ОбновитьЗначениеКонстанты(ИмяКонстанты);
Результат = URLОбновленияПриИзмененииНаСервере("UpdateURL",НаборКонстант[ИмяКонстанты]);
Если Не Результат.Отработало Тогда
Сообщение = Новый СообщениеПользователю;
Сообщение.Текст = Результат.ТекстОшибки;
Сообщение.Сообщить();
КонецЕсли;
КонецПроцедуры
&НаСервереБезКонтекста
Функция URLОбновленияПриИзмененииНаСервере(ИмяКонстанты,ЗначениеКонстанты)
Возврат СистемныеДанные.ЗаписатьНовыйПараметрВФайл(ИмяКонстанты,ЗначениеКонстанты);
КонецФункции
Была доработана кнопка считывание настроек с QR кода и обновлен QR код настроек.
Был доработан метод авторизации. Теперь я мог для каждого садика возвращать версию, которая актуальна конкретному дошкольному учреждению.
Вот пример, когда версия у садика старая и ее надо обновить:
Дальше я сел изменять инструкцию по установке и обновлению мобильного приложения и вот тут…
Помните мой разговор с администратором?
Ну что же, вот и случилась «проблема»
Само подписанный сертификат не прошел проверку, и наш доблестный администратор начал в судорогах решать проблему, а ведь неделю назад проблемы не было и можно было, не торопясь все порешать. Но ПавелАдминистратор решил, что «Работает, не трожь»… Надеюсь, он икнул в данный момент.
К вечеру он таки установил сертификат и все отработало:
Теперь обновление приложения не составляет труда.
Выбранный подход позволяет просто собрать apk болванку, прописали настройки и путь к обновлению получили АРМ для конкретного сотрудника. Очень удобно для внутрикорпоративного использования.
Почему мобильное приложение, а не мобильный клиент?
Давайте рассмотри плюсы и минусы, уверен я не все расписал:
Мобильная платформа минусы:
-Трудоемко (для первой разработки)
-Необходимо продумать обмены (если они необходимы)
Мобильная платформа плюсы:
+Не зависит от изменений основной конфигурации
+Не использует сеансы (только во время обменов)
+Более дешевые лицензии в сравнении с Мобильным клиентом
+Оффлайн
+Не обязательна 1с на беке
Мобильный клиент минусы:
-Онлайн
-Сеанс
-Лицензии на сеанс дороже, чем на мобильное приложение
-Требует адаптацию форм и кода в основной конфигурации
-Бекенд только 1с
Мобильный клиент плюсы:
+Можно запустить быстро
+Обмены писать не нужно
Вы скажите: А как же «Мобильный клиент с автономным режимом»? Или не скажите?
По большому счету «Мобильный клиент с автономным режимом» - это что-то среднее между мобильным клиентом и мобильным приложением. Я вообще не вижу плюсов у данного подхода, хотя возможно они есть, но для меня неочевидны. Для меня данный подход сочетает в себе совокупность всех минусов. Выходит, что разработка по трудоемкости выше, чем у мобильной платформы. Нужна адаптация форм и кода в основной конфигурации, а в части автономности надо продумывать обмены. Сам не пробовал исхожу из статей официальных источников. Ссылка на зазеркалье автономный клиент.
Я, наверное, должен был сказать: -1С мобильная платформа — это огонь! Используйте для всего!
Если подумать, то она действительно удобна для разработки, но не для всего.
На текущий момент у меня есть еще живые результаты. С середины декабря 2020 годя я работаю на новом амбициозном проекте. Мы запустили приложение на Android и iOS, на все примерно 3 месяца и приложение написано не на мобильной платформе 1С. Его делали примерно 6 человек и это дорого, очень дорого.
При этом, что удивительно разработать можно:
- Быстро и дорого.
- Либо "сэкономить", тогда выйдет долго и еще дороже.
То есть «Скорость» я не могу назвать «фишкой» мобильной платформы 1С!
Что остается? Стоимость и стоимость в разы дешевле!
На сегодня я пришел к следующим выводам по разработке на «мобильной платформе 1С»:
1 Приложения, использующие полностью html верстку, я бы не стал делать на мобильной платформе 1С. Это как забивать гвозди в бетон микроскопом.
Если вся верстка на html, для чего Вам тут 1С?
Я не спорю сделать можно, но это мне напоминает, когда с лады шестерки срезают глушак, делают низкую посадку и наворачивают странный тюнинг. Водитель думает он на болиде, а все смотрят на него с сочувствием.
Для каждой задачи должны быть свои инструменты, если ваша задача сделать красиво, рассмотрите другие варианты не сошелся мир клином.
2 Мобильная платформа 1С очень хорошо подходит для реализации внутренних приложений, закрывающих потребности бизнеса. И это огромный сектор, который жаждет автоматизации.
-Им не нужны красивые дизайны.
-Им нужен функционал.
-Им не нужен большей штат по разработке мобильных приложений.
-У них есть 1С программисты и им этого достаточно.
-У них нет больших бюджетов на разработку мобильных приложений, да и использовать они его будут на Android устройствах. Ну не бегают работяги по складу, кухне, производству с iPad и iPhone. Это как минимум не целесообразно. Даже если брать пример с садиками: 10 садиков на Android = 1 садик на Apple.
Если ваша задача сделать дешево, быстро и легко поддерживаемое приложение с уклоном на функционал, а не красоту, тогда 1С мобильная платформа отличное решение.
На этой ноте завершаю статью. Желаю всем удачи! Профессионального роста и интересных задач!