gifts2017

Горизонты мобильной платформы 1С

Опубликовал Дмитрий Шерстобитов (DitriX) в раздел Программирование - Мобильные приложения

Однажды я изучил комментарии к моим курсам по мобильной платформе, чтобы понять: как люди видят мобильную платформу, как хотят ее использовать? В результате рейтинг получился таким: большая часть говорила, что они видят разработки под мобильную платформу в качестве инструмента для инвентаризации, на втором месте – заказы, на третьем – монитор руководителя. Все остальное было практически в единичных экземплярах. Я увидел, что есть проблема, которая заключается в том, что мы привыкли работать со стационарной 1С, привыкли к ее архитектуре, к методам работы с ней. И когда 1С-нику говорят: «установи мне 1С» – это сразу подразумевает под собой: «приди, настрой мне принтер, поставь антивирусник, проверь, не битый ли у меня жесткий диск». И мы это принимаем, как должное. А вот с мобильными телефонами все совсем не так.

Начальные договоренности

По ряду причин не будем говорить о работе мобильной платформы на iOS-устройствах – хотя бы просто в контексте того, что я не являюсь по ним специалистом. Тем более что тот функционал, о котором я буду сейчас рассказывать, на iOS не доступен. Все, о чем будем говорить, касается именно Android.

Разрушители мифов

Изначально я хочу разрушить сразу несколько крепко засевших мифов, которые искоренить не получается. Даже на курсах люди все равно задавали мне эти вопросы.

  • Первый вопрос, который интересовал практически всех – почему из мобильного приложения нельзя печатать? Печатать можно. Но для того, чтобы это делать, надо понимать суть архитектуры Android. Сама печать производится элементарно: создается HTML-документ, посылается специальное приложение, которое настроено для печати и печатается. И это помимо уже существующего мехнизма печати в 8.3.6, который, увы, поддерживают далеко не все принтеры.
  • Далее – работа только в 8.3. Почему-то все решили, что раз мобильная платформа стала доступна только в 8.3, значит, если мы хотим обмениваться с центральной базой данных, то она тоже должна быть на 8.3. Нет. Центральная база может быть на чем угодно, хоть на 7.7 – без разницы.
    Саму мобильную конфигурацию вы действительно можете разработать только на 8.3.х, но обмениваться она может с какой угодно базой данных – хоть с 7.7. Единственное, что это, конечно же, будет немного сложнее.
  • Далее – ждем, пока уберут дублирующий заголовок, добавят запрет поворота экрана и т.д. Это все можно сделать самим – на курсах я рассказывал, как. Если в двух словах, то там надо просто поменять всего лишь пару строчек в xml-файлике, и, таким образом, вы убираете дублирующие заголовки, запрещаете поворот экрана и т.д.
  • Четвертый миф – 1С сама найдет и исправит баги. Тут все грустно. Потому что даже тот сервис по логированию и документированию ошибок, который они предоставляют, страдает тем, что там пишут только решенные ошибки. Для ошибок, которые зарегистрированы, но еще не решены, можно увидеть только номер без описания, чаще всего. И это приносит некоторый дискомфорт, потому что когда появляется проблема, ты не понимаешь, или ты ошибся, или в 1С баг. К сожалению, в мобильной платформе пока багов хватает, хотя их стало значительно меньше.

Основной корень проблем

Теперь о проблеме. Она заключается в том, что когда люди садятся программировать мобильную платформу, они сразу начинают считать себя Android-разработчиками или iOS-разработчиками. И в этом - огромнейшая ошибка, потому что они до сих пор мыслят в контексте стационарной платформы, а здесь надо мыслить совершенно по-другому. В частности, надо понимать, как устроен Android, как там происходит взаимодействие между программами:

  • Допустим, мы в стационарной 1С привыкли к тому, что если нам надо где-то учитывать счетчик посетителей, то у нас есть какая-то программка, которая выгружает эти данные в XML-файлик, а мы его потом по регламенту в 1С подгружаем.
  • А в Android это придется сделать по-другому (хотя, конечно, можно и так). В частности, вызвав намерение и т.д. – об этом мы чуть позже поговорим.

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

Что можно сделать в мобильном приложении 1С?

Что же можно сделать на мобильном приложении 1С из того, что люди думают, что нельзя?

  • Можно сделать полноценную фотографию при помощи встроенного приложения.
    Это сейчас очень актуально, потому что для мобильных приложений возникла большая проблема с фотографиями. В частности, отделы OTK требуют, чтобы торговые агенты фотографировали выкладку товара в магазине, и из-за этого у всех возникла проблема с размером и качеством фотографий (непонятно, как их настроить, и можно ли  повернуть или обрезать снимок). А на самом деле, для этого можно просто вызывать из 1С какое-то встроенное в мобильное устройство приложение, которое позволяет сделать со снимком все, что угодно. Кроме этого, приложение вам возвращает сразу же маленькую превью этой фотографии (320х320) и путь к полноценной фотографии (той, которую вы сделали, с теми настройками, которые вам нужны). И это сделать реально.
  • Отправить файл по почте – тоже не проблема. 1С это уже сделала на 8.3.5. Также файл можно отправить по скайпу, записать на гугл диск и т.д.
  • Найти контакт, получить его URI, открыть – можно и это делать. Кстати говоря, у 1С до сих пор осталась проблема: получить URI контакта можно, но сделать с ней в 1С ничего нельзя. Поэтому тут спорная ситуация.

В результате возникает вопрос – а что же дальше? Почему для мобильных приложений 1С нет возможности сделать push-сообщение (push-notification), чтобы вы, когда опускаете шторку, видели уведомление от сервера? Это же, по сути, один из основных моментов – оповещение пользователя о чем-нибудь (например, о том, что выполнен обмен данными, пришел новый заказ, пришла накладная на сборку товара для кладовщика, который работает с терминалами сбора данных на Android и т.д.). Этой возможности у нас пока что нет. И даже то, что появилось в 8.3.6 - локальные уведомления - они не перерывают это, потому что они только уведомляют 1С, а не пользователя. Если у вас 1С свернуто, то да, пользователь увидит сообщение, а если открыта - то будьте добры, и обработайте сообщение сами, так как пуша вы не увидите.

И вот вопрос – а можно ли это сделать с помощью стороннего приложения по тому же принципу, что и фотографию? А для того, чтобы объяснить нам, почему так нельзя сделать, нам и нужен Android-программист.

Сравнение возможностей 1С по внутренней передаче данных и по работе с внешними Android-приложениями

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

  • Мы делаем вызов какой-то формы. Например, подбора товара.
  • Далее – делаем некую обработку данных в этой форме (например, выбираем в табличную часть документа товары, которые есть на остатке). Причем, если по выбранному в документе складу на остатке ничего нет, то мы можем просто даже не открывать эту форму – сразу передать в 1С, что ничего на остатке нет.
  • А потом при закрытии формы подбора мы возвращаем в табличную часть документа выбранный результат

А теперь возникает вопрос – как из встроенного языка 1С мы можем работать с внешними Android-приложениями? Для такого взаимодействия была выбрана интересная модель – по сути, мы делаем что-то вроде глобального оповещения.

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

Приблизительно то же самое происходит и в 1С на мобильной платформе, когда мы, например, хотим отправить файл:

  • Мы в 1С запускаем специальную команду – отправить файл с помощью стороннего приложения (по сути, эта команда соответствует глобальному оповещению).
  • В этот момент вступает Android. Он проверяет тип сообщения (анализирует, что за намерение вы хотите сделать).
  • Дальше он подбирает соответствующий этой задаче софт. Причем, если для выполнения этого действия может быть предусмотрено 10 различных приложений, то он выставит список из 10 наименований, а если там одна программа, то он сразу же ее запустит. Например, как в случае работы с фотографией – если вы запустите эту функцию у себя, то, вероятнее всего, он откроет какое-то предустановленное на вашем телефоне приложение для камеры, и вы с ним будете работать. А если у вас таких приложений несколько, вы сможете выбрать одно из них.
  • Потом идет открытие приложения.
  • И главное, после того, как все это отработает, идет возврат в 1С результатов работы. При этом нам надо четко понимать, что в данный момент на самом деле произошло – сделал человек фотографию или нет? Может, он просто нажал на кнопку «Отмена»? Это все нам надо каким-то образом отследить. 

Здесь на слайде показано, как можно сделать фотографию средствами Android. Как видите, ничего сложного:

  • Мы указываем путь, куда будет сохранена оригинальная версия фотографии с полным разрешением.
  • Дальше мы говорим, что хотим вызвать некое намерение (сделать IMAGE_CAPTURE).
  • После этого мы добавляем некие данные в так называемые Extras'ы (сообщаем приложению некие дополнительные данные). В данном случае, мы говорим, что хотим полноценный файл сохранить по тому пути, который указали выше.
    Кстати, то же самое можно сделать и с видео. Причем в случае видео мы также можем передать, какого качества мы хотим сделать его сжатие.
  • И после этого мы просто делаем запуск приложения с помощью «Нов.Запустить(Истина)» – вот здесь в скобочках передается значение параметра «Ожидать», которое может быть либо «Истина», либо «Ложь» (по сути, мы задаем модальный или немодальный вызов).
    • Если здесь будет стоять «Ложь» – значит, мы запустили приложение и пошли исполнять код дальше.
    • Если здесь стоит «Истина» – тогда 1С ждет выполнения.
  • Также анализируем результат:
    • Допустим, если мы здесь нажимаем «Отмена», то у нас вернется результат «0» (ничего не было сделано). Или если вызов приложения окажется неудачным, то также вернется результат «0».
    • А вот если приложение вернет фотографию (вы сделаете правильные действия, и приложение отработает нормально), то у вас здесь вернется обычный результат «-1».
  • В результате фотография сохранится по выбранному пути, и вы сможете ее открыть встроенным приложением при помощи «ЗапуститьПриложение(ФайлКартинки)».

Вы видите, что «ЗапуститьПриложение» и «ЗапускПриложенияМобильногоУстройства» – это две разные функции.

Ну это так, очень грубо, так как разница между ними все же более значительная.

Как видите, наличие у меня знакомых Android-программистов позволило мне эту функцию сделать в течение пяти минут. А на Инфостарте мне, например, много раз задавали вопрос: а как же это можно сделать? Это я к тому, что опять-таки, если вы собираетесь разрабатывать какие-то приложения на мобильной платформе, то у вас должен быть Android-программист.

Более подробно про эти функции можно почитать по выше указанным ссылкам.

Попытка создания плагинов к мобильному приложению 1С

Теперь, у нас появляется некоторый новый вариант плагинов к мобильной платформе 1С. Потому что если мы знаем, что можем вызвать любое приложение, передать в него параметры и получить от него ответ, то, значит, мы таким образом можем написать свое приложение, которое может делать все, что нам надо – в частности, push-сообщения, toast-сообщения, виджеты, вибрацию – что угодно. Мы теперь не ограничены тем, что нам дает 1С. Нам 1С не дало виджеты – да и ладно, сами напишем. Не дало push-сообщения – тоже сами напишем.

Но в 1С «ЗапускПриложенияМобильногоУстройства» доступен только на клиенте. Поэтому весь ряд задач мы должны разбивать на две части – клиент и сервер.

  • К примеру, push-сообщения имеет смысл выполнять на сервере – например, когда у вас прошел обмен данными. А есть ли смысл выводить его на клиенте или нет? Ведь если человек на текущий момент работает с 1С, то это значит, что он, по сути, может и так увидеть сообщения.
  • С другой стороны, toast-сообщение (это такое маленькое, всплывающее на экране сообщение) нет смысла выполнять на сервере. Например, у человека в кармане телефон, а тут ему приходит сообщение о том, что выполнен обмен с базой данных – он его не увидит, потому что такое сообщение показывается пару секунд буквально и не задерживается там. Но, если он в этот момент работает с 1С, мы можем ему, например, с помощью toast-сообщения сказать, что этого товара на остатке нет – и тогда это будет уместно. Не выскочит никакого модального окна на весь экран, которое надо судорожно закрывать, возвращаться к списку из 3000 позиций, которые загружаются пару секунд.
  • А некоторые вещи, например, вибрация, - может быть и на клиенте, и на сервере.
  • И звуковые оповещения – тоже на клиенте и на сервере.

К чему я веду? Зачем я разбивал это все на клиент и на сервер? Ответ простой – это принцип работы плагинов.

Мы, получается, пишем некое API, которое должно взаимодействовать с мобильным приложением 1С и на клиенте, и на сервере, чтобы мы могли его вызывать доступными методами в 1С. Кроме этого, мы обязательно должны получить от этих действий какой-то ответ (конечно, push-сообщение мы можем вывести и без ответа, но сделать фото – нам обязательно нужен ответ). Для этого API мы можем использовать два механизма, которые доступны в 1С. Это:

  • Веб-сервер
  • И Интенты – это и есть те самые намерения, которые мы с вами вызываем с помощью «ЗапускПриложенияМобильногоУстройства» из 1С. Но они доступны только на клиенте.

Для этих двух механизмов я здесь привел табличку.

Получается, что если мы на телефоне Android поднимем какой-то элементарный веб-сервер, то в этом случае мы сможем вызывать все то, что показано на предыдущем слайде, прямо с сервера: например, когда к нам с сервера приходят данные, мы можем сделать push-сообщение непосредственно через веб-сервер, установленный на самом телефоне.

  • Кроме этого, получается еще дополнительная фишка – это внешний вызов, минуя 1С. Ведь когда мы говорим о том, что, например, пришло push-сообщение о новом заказе для торгового агента, мы подразумеваем, что у нас в этот момент запущена 1С и, как минимум, выполняется какой-то фоновый обмен данными с центральной базой. А если Android вдруг решит, что 30 Мб памяти для свернутого приложения – это много, то он может просто выкинуть 1С из своей памяти. А раз 1С не работает, обмен не выполняется, то и этого push-сообщения никто не получит.
  • А если у нас на телефоне стоит веб-сервер, мы можем непосредственно с нашей центральной базы (если она находится в локальной сети, либо мы знаем четкий IP-адрес этого мобильного устройства) послать push-сообщение, оповестить виджет, сделать вибро- или звуковое оповещение. И теперь не мобильное приложение 1С будет постоянно опрашивать центральную базу, а сама центральная база будет отсылать сообщения только тем пользователям, которым необходимо.
    Иначе база просто физически может задохнуться из-за того, что ее каждую минуту будет опрашивать большое количество пользователей (например, если у вас 1000 агентов бегает). Поэтому гораздо логичнее отсылать сообщения непосредственно из самой базы: произошло событие для конкретной группы людей (допустим, для 10 людей), и база послала эти данные туда.
  • Этот функционал 1С развили в 8.3.6 и сделали его более логичным, но он не всегда применим в таком контексте, потому что в этом случае - у вас должны все устройства иметь выход в интернет и должны быть подключены учетки Google.

Формы на Android

Многие не любят мобильную платформу 1С, в частности, из-за того, что у нее формы «кривые», так было в 8.3.5. В новой версии 8.3.6 - 1С основательно переработало формы, и теперь мы получили новый мобильный интерфейс и даже всякие мобильные плюшки. Мы с вами уже говорили о том, что можем вызвать фотокамеру и ею фотографировать. А что нам мешает нарисовать свою форму полностью на Android и вызывать ее из 1С? Не форму 1С, а свою форму, написанную на Android уже так, как мы хотим, по всем канонам Android. По сути, нам совершенно ничего не мешает.

Мы можем сделать для Android вот такую вот форму. Можем передавать туда данные из 1С, и при выборе какого-то товара забирать оттуда данные в 1С. Т.е. мы не ограничены только тем, что дает нам 1С. Опять таки, в стационарной версии мы привыкли, что если нам надо нечто этакое, то мы можем просто создать некий скрипт на vbs или js, и сделать некоторые действия. Но, почему-то, никто не думает, что то же самое можно сделать и в мобильной 1С. Ах ну да, все потому что - у вас, скорее всего, просто нет андроид программиста :)

Линейка складских терминалов на платформе Android

Более подробно про терминалы - вы можете узнать тут - http://acode.pro/.

Кроме этого, стоит вопрос о том, на чем работать. Многие люди говорят: «давайте мы для склада вместо терминала возьмем телефон и сканер bluetooth». Или: «давайте мы будем сканировать, делать инвентаризацию 10 тысяч товаров на пяти паллетах видеокамерой телефона, ведь 1С это позволяет». Переубеждение этих людей ничего не дает до тех пор, пока они сами не попробуют это сделать.

Но на данный момент рынок терминальных устройств начинает развиваться – как видите, появился уже ряд моделей терминалов на Android версии 4.0, 4.1, 4.2.

И по этому пути идут все современные компании, которые занимаются производством оборудования - Motorola, Honeywell, Datalogic, Cipherlab. Однако, стоимость их устройств на Андроиде - далеко за 1000$, а те которые не очень далеко за 1000$ - очень слабые для полноценной работы 1С.

Однако, в этой категории присутствуют и достаточно бюджетные модели, которые далеко не за 1000 долларов, а в районе 500, 700, 800. Это адекватные цены, адекватное оборудование, адекватно работает с 1С. Вы можете разрабатывать свои оригинальные решения и стать первыми на этом рынке – все для этого уже есть: информации на тему мобильной платформы в Интернете уже много, терминалы на Android уже есть, значит, можно приступать к работе.

Acode Tools – расширение возможностей мобильной платформы 1С

А чтобы подстегнуть ваше желание работать, я предлагаю вам обратить внимание на Acode Tools:

Acode Tools - позволяет из 1С делать все то, что я здесь написал, и даже больше. Вы можете скомпилировать свой произвольный код, написанный на Android, передать параметры из 1С и получить оттуда ответ. Как видите, это сделать вполне реально. И убедиться в этом вы можете сами. Там вам доступны:

  • Виджеты;
  • Push-сообщения;
  • Вибро;
  • Работа с Bluetooth-сканерами в режиме Serial Port (поддерживается Motorola и Cipherlab). Не надо мучиться с тем, что у 1С баг с активными элементами (в последних версиях платформы мы не можем указать активность элементов), и нам приходилось что-то придумывать, когда нам надо было вернуть активность поля, чтобы просканировать туда товар (или сидеть на платформе 8.3.4.17, где этого бага еще не было). Пожалуйста – подключились через серийный порт и работаем.
  • Проигрывание звуков;
  • GPS-трекинг. Как известно, 1С в Android запускается не как сервис, поэтому иногда она вылетает. И если она вылетает, то, соответственно, в этот момент весь GPS-трекинг у нас обрывается, и из-за этого мы можем получить координаты только с того момента, когда 1С работало (только после того, как Android решил ее выкинуть). В данном случае работает специальная программа, которая поднимает свой фоновый сервис, поэтому выключить ее просто так не получится (только если жестко остановить). Кроме этого, на эту программу не работает fake location (псевдо геоданные).
  • Также доступна запись данных в logcat. Я думаю, многие из тех, кто разрабатывает под мобильную платформу, долго расстраивались, что нереально отловить какие-то данные в серверных процедурах (в тех, которые выполняются в контексте &НаСервере). Теперь мы можем просто записать данные в logcat и в той же программе открыть и посмотреть, что сейчас выполняется, и какая отладочная информация там есть.
  • Работа с FTP;
  • Возможность заархивировать файлы в ZIP. Кстати говоря, напоминаю, что XSLX-файл (файл формата Microsoft Excel 2007) – это, по сути, ZIP-архив, и благодаря функции ZIP-архива вы можете создавать свои XSLX-файлы. И соответственно, обмениваться ими так, как вашей душе будет угодно.
  • Работа с NFC;
  • И т.д. (подробнее на слайде)

Все то, что вы здесь видите, работает в двух ключах: в варианте клиента (через запуск Интентов), и в варианте работы через веб-сервер. Например, если у вас есть два телефона, вы можете поставить на них эту программку, в каждом из них прописать IP-адрес другого телефона и его ID (там для этого есть специальная опция), и  таким образом сможете посылать push-сообщения (или вибро) с одного телефона на другой. И это реально – это не миф.

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

P.S. И отдельно хочу добавить, что мобильный мир не ограничивается только мобильной платформой, потому что в стационарной платформе делают тоже новые функции, которые помогают "влиться" в существующий мир мобильных решений. Например, если нужно сделать отчет для руководителя, то необязательно его делать на 1С, есть куча уже готовых решений, которые нацелены именно на визуальзацию данных, а не на их обработку. Например, можно использовать Microsoft Power BI.

**************

Данная статья написана по материалам доклада, прочитанного автором на Конференции Инфостарта IE 2014 29-31 октября 2014 года.

Приглашаем вас на новую конференцию INFOSTART EVENT 2016 DEVELOPER.

См. также

Подписаться Добавить вознаграждение

Комментарии

1. artem666 Bogomaz (artem666) 02.06.15 14:34
Вся суть мобильной разработки в кастомном дизайне, чего на 1С по определению нельзя сделать
2. Дмитрий Шерстобитов (DitriX) 02.06.15 15:02
(1) что вы под этим понимаете?
3. Алексей Роза (DoctorRoza) 02.06.15 17:08
Поэтому - хочу еще раз напомнить про андроид программиста - он вам однозначно нужен, и тут - без вариантов. Либо пусть ваши 1С программисты проходят курсы по андроиду,


(2) DitriX, Дмитрий! Вот у Вас есть коллеги, друзья 1С-программисты. Сколько из них, в процентах, могут вести разработку и в 1С, и в Android? :) Да и когда будет обзор 8.3.6.182?
4. Дмитрий Шерстобитов (DitriX) 02.06.15 18:19
(3) В смысле? Так совпало, что в последнее время, у меня круг знакомых таков - каждый пишет решения под мобильную 1С и мы вместе помогаем друг другу с тонкостями андроида :) Но я думаю - так не везде.
Ну и конечно есть знакомые программисты андроид - которые помогают.
5. борян петров (TODD22) 02.06.15 18:39
(4) DitriX, а курс по мобильной разработке будет дополнятся? Например работой с http сервисами, json и тд или там это есть и я просто не дошёл ещё до этого? Я на 3 модуле пока :)
6. Дмитрий Шерстобитов (DitriX) 02.06.15 20:58
(5) сейчас новый модуль выйдет, там будет немного про сервисы, json пока не доступен на мобильной.
Та и в целом - ws перевести на http - дело 5 минут, тоже самое и xml на json :)
Там есть более важные темы - это защита соединения от митм атак, т.д. вот про это в новом модуле будет.
7. борян петров (TODD22) 03.06.15 05:22
(6) DitriX, Да защита то же очень интересует. Что бы из вне никто не смог подключаться...
Или DDoSить мой веб сервис. А то будут к нему запросы строить базу нагружать.
8. Константин Нагибович (gradi) 03.06.15 08:28
Почему выбран именно такой способ для получения фотографии? Ведь есть же специальный вызов в 1С для этих целей.
9. Ruslan (flyer) 03.06.15 08:49
еще один мелкий нюанс :) . при открытии видим всплывающую заставку 1с. некоторые клиенты просили ее убрать. хотят видеть свой логотип. а так все супер! 1с на рынке моб.приложений сделали бомбу!!!
10. борян петров (TODD22) 03.06.15 10:04
(9) flyer,
1с на рынке моб.приложений сделали бомбу!!!

Что то пока не заметил как бомбануло... что бомбануло то у 1с с мобильной платформой?
11. Ruslan (flyer) 03.06.15 10:18
(10) TODD22, скорость разработки и тем самым стоимость решения для бизнес приложений уменьшена.
12. Роман Зиновьев (Широкий) 03.06.15 10:23
Кто бы сделал инструмент для программного показа/скрытия виртуальной клавиатуры.
У меня этот момент важен, приходится до сих пор на версии 4.17 сидеть.
13. Дмитрий Шерстобитов (DitriX) 03.06.15 10:34
(7) ну это делает немного по другому. А тут все таки интересует вопрос - что бы не уперли пароли подключения. И касается это не только мобильной платформы.
(8) потому что каждая программа обрабатывает фотографии по своему - попробуйте в 1с выбрать гамму. разрешение, формат, HDR, уровень освещенности и т.д.
(9) ну так заставку можно свою сделать, по бокам конечно внизу будет 1с написано, но 90% заставки - в вашем распоряжении.
(12) а зачем это вам? Какая цель? Вдруг подскажу.
(10) прям слова 5 летней давности про УФ, еще ранее про 8, и т.д. :)
14. Ruslan (flyer) 03.06.15 10:51
(13) DitriX, я вот про эти маленькие заставки и говорю а то например заказчик пиццерия попросили сделать программу Заказа их продукции. заставку им при открытии наваял а вот любимые слова 1с Предприятие нельзя убрать. вот и получается двоякая ситуация как бы программа от Пиццерии а тут еще каким то боком 1с.
15. Дмитрий Шерстобитов (DitriX) 03.06.15 13:09
(14) если я не ошибаюсь, то 1С позволяет менять заставки, во всяком случае на стационарной, но для этого надо писать им. Напишите им и узнайте, вдруг они вам подскажут?
16. Роман Зиновьев (Широкий) 05.06.15 11:46
(13) Для удобной работы пользователей.
Упрощенно: Открываешь форму - у тебя курсор стоит уже в нужном поле и услужливо клавиатура открыта, лишний тап по полю делать не надо.
17. Дмитрий Шерстобитов (DitriX) 06.06.15 14:49
(16) ну тут да, разве только в настройках манифаста полазить
18. Stepan Tyumentsev (st-ty@ngs.ru) 04.07.15 16:48
Тестировал пару раз мобильную платформу под Android, ни чего в ней не меняется в своей основе, apk файл как весил минимум 30 Мбайт, так и продолжает набирать свой "вес", а это всего лишь "hello world"!!! Больше похоже на ковыряние в песочнице, нежели на промышленно-эксплуатируемое приложение.
19. Дмитрий Шерстобитов (DitriX) 04.07.15 19:34
(18) это тоже самое, что винить Excel, что он весит 500Мб, а вам всего то и надо - открывать файлы.
Если вы не знаете, какие там механизмы заложены, то лучше и не говорить про это, ибо знаю на своем опыте - делал когда то приложение под андроид, и библиотека ksoap, которая позволяет работать с веб сервисами - весит 200кБ. и это только одна функция, по сути.
В итоге, элементарное приложение, которое может подключаться к 1с и забирать данные - весило 3Мб, с ресурсами, с нужными библиотеками и т.д.

Так что вы попробуйте реализовать хоть 10% возможности 1С и сразу увидите, что приложение будет весить овер 10Мб, минимум.
Так что вес не такой уж и большой.

И кстати, есть поучительная история, про борьбу Microsoft Office и Lotus 1-2-3, почитайте, как лотус оптимизировал свои решения до идеального блеска, которые работали отлично на машинах того времени, а Microsoft тупо выпускали глючный софт, с оглядкой на то, что технологии развиваются очень быстро, и в оптимизации такого уровня - нет никакого смысла, ибо через год=два, появятся компы в несколько раз сильнее. В итоге - lotus затормозил на год, и выпустил идеальный софт, который идеально работал, но на этом рынке была уже MS, а за это время - компы стали мощнее, и в итоге - все приимущества лотуса - ушло в никуда.

Тоже самое и тут. У меня сейчас есть планшет Nokia N1, там стоит Intel x64 проц, и 1С по скорости проигрывает компу с SSD дисками - в два раза.
К примеру, на моем смартфоне - Moto G, 1С медленнее работает в 20 раз, чем на компе. Не хилый прирост всего за два года?

К чему я - хватить гундеть про размер и про скорость :) У меня есть мобильные базы, которые весят 500Мб, из них - само приложение занимает 50. При таком раскладе - мне пофиг, будет оно занимать 50Мб, или 5Мб.
Dr.LektoR; Fominro; IvanBoychuk123; +3 Ответить
20. Вадим Латышев (pro1c@inbox.ru) 07.07.15 20:20
Либо пусть ваши 1С программисты проходят курсы по андроиду


если они пройдут, то писать на 1С под Android не будут!! :))))

с iOS с такими подходами загнется все еще на этапе публикации....
21. Вадим Латышев (pro1c@inbox.ru) 07.07.15 20:23
Например, если нужно сделать отчет для руководителя, то необязательно его делать на 1С, есть куча уже готовых решений, которые нацелены именно на визуальзацию данных, а не на их обработку.


как правило, по статистике, руководители чаще пользуются Apple и архаичные интерфейсы, которые предлагает мобильная платформа 1C - не прокатит!
22. Дмитрий Шерстобитов (DitriX) 08.07.15 10:33
(20) почему это? Я могу кодить под андроид, но все равно остаюсь в 1С, почему это?
Ответ прост - я не создаю игры, или социальные клиенты, я работаю с бизнес приложениями.
И у моей команды есть ряд готовых решений, которые мы забросили, после 2 лет разработки, о некоторых - мы писали тут. О некоторых - нет.
А забросили по очень простой причине - вышла мобильная платформа.
Вы пробовали разработать до конца хоть одно тиражное решение а потом его поддерживать?
Мне вот просто интересно, очень похоже - что нет, отсюда вы и делаете ваши выводы.

(21) Как правило - используется экосистема, например, в бизнес приложениях ее нет. Т.е. тупо нет.
Вот если мы возьмем все приложения от гугла, рукалицо, контакта и т.д., то вы увидите - они используют интерфейсы своих экосистем, и слать они хотели куда дальше все остальное. Посмотрите на PowerBi, от MS, и что?Каким оно паттернам подчиняется? Эпла? Винфона? Андроида? Нет, оно идентично везде, и вписывается в экосистемы остальных приложений от MS.
Все эти паттерны, стили и т.д. - это все для автономных приложений, и просто общие мысли и соображения, например, решили что меню будет слева, все. Дальше че хочешь то и делай. Решили отказаться вообще от кнопки меню - та не проблема. Но опять таки - есть просто общие соображения и рекомендации.

Вот и 1С - точно также, работает в своей экосистеме. И вашему директору - привычней будет работать именно с идеологией интерфейса 1С.
Почему? Та все просто - вы спросите этих своих директоров, кто из них глубоко сидит в экосистеме приложений эпла? 90% используют только будильник и почту, ну и позвонить. Вот вам и вся экосистема.
Интерефейс, в конце концов, пишет программист, а не 1С. А если у этого программиста нет опыта дизайна интерфейсов, ну так кто ему доктор? Вы посмотрите какие люди формы рисуют в стационарной 1С, это же пипец просто.

Теперь давайте возьмем приложение Viber, очень популярное, расскажите - оно подчиняется патернам интерфейса на iOS? И чем оно отличается от нового интерфейса мобильной 1С?

Поэтому давайте в очередной раз не поднимать пыль на ровном месте.

Сейчас 1С еще подтупливает, тут не поспоришь, но как только эти проблемы решат - я думаю 1С будет вне конкуренции.
Но это мое мнение.
23. Maxim Goncharov (maxx) 07.10.15 18:14
Воспользовался кодом для фотографии родным приложением. Но есть одно НО.... Помимо файла, который я указываю создаётся ещё копия файла самим приложением. Это раз. Во-вторых, если просто удалить этот "дублированный файл" из мобильного приложения 1С, то остаются "следы" пустая пиктограмма при просмотре фотографии в Галерее. Как это можно обойти?
24. Дмитрий Шерстобитов (DitriX) 07.10.15 22:21
(23)А код вы можете привести?
25. Maxim Goncharov (maxx) 09.10.15 10:37
(24) в результате в папке камеры оказыывается 2 файла: с моим именем и именем камеры типа 20115101_6587.jpg
вот код,

#Если МобильноеПриложениеКлиент Тогда
		ТекВремяНач = ТекущаяДата();
		ФайлКартинки= "file:///sdcard/DCIM/Camera/tmp.jpg";
		НовВз=Новый ЗапускПриложенияМобильногоУстройства("android.media.action.IMAGE_CAPTURE");
		НовВз.ДополнительныеДанные.Добавить("output",ФайлКартинки,"Uri");
		Если НовВз.Запустить(Истина) <> 0 тогда 
			СмещениеВремени = ПолучитьСмещениеВремени();//ошибка в платформе в метод мФайл.ПолучитьВремяИзменения() неверно возвращает дату смещает, поэтому вычисляем смещение 
			ТекВремяКон = ТекущаяДата();
			МассивФайлов = НайтиФайлы("file:///sdcard/DCIM/Camera/", "*.jpg");
			Для каждого мФайл из МассивФайлов Цикл
				//файлы камеры, которая она сделала самостоятельно удаляем
				ВремяИзменения = мФайл.ПолучитьВремяИзменения() + СмещениеВремени;
				Если  ВремяИзменения  >= ТекВремяНачи  ВремяИзменения <= ТекВремяКон Тогда
					УдалитьФайлы(мФайл.ПолноеИмя);
				КонецЕсли;
			КонецЦикла;	
		Иначе
			Сообщить("Фото не сделано!");
		КонецЕсли;
	#КонецЕсли
...Показать Скрыть
26. Дмитрий Шерстобитов (DitriX) 10.10.15 10:53
(25) maxx, а чем вы делаете фото? Как называется программа? Так как воспроизвести не смог .
27. Maxim Goncharov (maxx) 12.10.15 13:31
(26) приложение , стандартное Камера (других нет). Планшет Dexp


Поэкпериментировали, на телефонах к примеру не создаётся дубликаты. Но все равно если из 1С удалить файл, то ссылку на фотографию в виду пуcтой пиктограммы в Галерее остаётся. Если перезагрузить устройство, то ссылки пустые убираются.
28. Дмитрий Шерстобитов (DitriX) 12.10.15 17:26
(27) это да, там кэшируются пиктограммы, т.е. привьюшки. Их надо удалять отдельно, а вы попробуйте делать фото не в папку с фотографиями, а в другую какую то папку.
29. Сергей Апухтин (Zasranec0) 03.12.15 15:29
Когда делаем фотографию мы знаем путь к файлу. Как получить превью файл небольшого размера одновременно с нормальным файлом?
В НовВз.Данные пустая строка. Можете помочь?

"Кроме этого, приложение вам возвращает сразу же маленькую превью этой фотографии (320х320) и путь к полноценной фотографии (той, которую вы сделали, с теми настройками, которые вам нужны). И это сделать реально." - как?
30. Дмитрий Шерстобитов (DitriX) 03.12.15 20:04
(29) как оказалось - не на всех устройствах. На большенстве устройств - вы делаете либо это либо другое. Т.е. или получаете полноценную картинку или ее привью. Увы.
Для написания сообщения необходимо авторизоваться
Прикрепить файл
Дополнительные параметры ответа