Мобильное приложение на 1С без никого... За полчаса...
Разработка - Мобильная разработка
Не прошло и три года...
Всем добра!
Не прошло и три года с момента, как учебная версия 1С стала бесплатной (то есть абсолютно). Для запуска любой современной конфигурации она, конечно, не подойдет (достаточно справочника объектов метаданных информационной базы, чтобы вылезти за пределы дозволенного), но для разработки мобильного приложения и связки его с какой-нить базой с демопрайсом, вполне сгодится.
Куда, как?
Если у вас нет дома 1С, ломать ее вас душит совесть, а купить - жаба, то освоить разработку почти всего на 1С не составляет никакой проблемы. Для этого достаточно нажать кнопку со своей ОСью и ввести пару слов в "анкете" - Тыдыщь...
В преамбуле написано, что вы можете чуть ли не все (например, можно доработать любую имеющуюся конфигурацию), но это не так, ибо отладить вы ее не сможете - ограничение на небольшое количество элементов справочников, регистров и иного просто сделает невозможным запуск даже пустой конфигурации. Но нам это и не нужно...
Итак, приступим к волшебству (ну или к ужасному колдунству, ибо я опять буду раздражать ратующих за права переменных на достойное имя).
ТЕСТОВАЯ КОНФА С ПРАЙСОМ
Итак, давайте запилим тестовую конфу с прайсом, загрузим его с какого-нить экселя, сделаем отображение картинки в форме элемента номенклатуры и замутим транспорт с помощью веб-сервисов. Погнали!
1. Справочник с номенклатурой.
Ну тут все просто:
- Создадим справочник
- Добавим парочку реквизитов (ПолнНаименование, Цена)
- Добавим реквизит, в котором будем хранить картинку - "фото", укажем тип значения - "ХранилищеЗначений"
Дальше создадим форму списка и форму элемента, в которой будем показывать картинку.
Ну форма проста до безобразия: Код, Наименование, ПолнНаименование и Картинка (поле внизу).
Лирическое отступление...
Для того, чтобы отобразить на управляемой форме (про обычные я уже давно забыл, как про страшный сон) картинку (в том числе и в мобильном приложении), достаточно создать реквизит формы с типом "Строка" и положить туда адрес временного хранилища, в которое, в свою очередь, нужно положить двоичные данные картинки. Т.е. тут все просто.
В реквизиты формы добавляем реквизит "Картинка", куда будем класть и ложить адреса временного хранилища.
Дальше давайте напишем супермегакод, который покажет нам картинку и заставит загрузиться ее из файла (потом проделаем это же для камеры мобильного устройства).
Итак, что тут с кодом не понятно? Элементарно же, да?
Отображение картинки на форме
1. При создании на сервере смотрим, есть ли у нас ссылка (мало ли это новый элемент справочника, которых на любительской версии 1С мы можем создать очень немного.
2. Проверим, есть ли там у нас что в хранилище значений. Да, я лезу туда через много точек - имею право.
3. Если есть, то покладем и положим это во временное хранилище, а адрес засунем в реквизит "Картинка".
С этим все.
Теперь давайте разберемся, как загрузить картинку из файла (например, для нового товара или для старого, у которого картинки нет, или у которого картинка по какой-то причине нас перестала устраивать).
Загрузка картинки из файла
1. Для реквизита формы "Картинка" в подменю я добавил команду "УстановитьФото", хотя мог бы сделать это и через нажатие на картинку (в мобильном приложении именно так и будет сделано).
2. При выполнении этой команды у нас открывается диалог выбора фалов, который ограничивается фильтрами.
3. При любом действии с диалогом у нас отрабатывает оповещение, в котором мы сначала проверяем, есть ли вообще что-то в переменной "рез" (ратующие за права переменных иметь хорошее имя - плачьте!), и если там ничего нет - выходим.
4. Ежели у нас там что-то есть, то файл мы передаем в процедуру "УстановитьФотоНаСервере", туда же передаем и сцылку (ибо процедура у нас без контекста).
5. Ну а дальше просто засовываем двоичные данные в хранилище значений с максимальным сжатием, пихаем это все в объект и записываем.
6. Дальше надо перечитать текущий объект (мы его изменили) и установить картинку в поле - об этом мы уже говорили.
Форма номенклатуры готова. Перейдем к веб-сервисам...
2. Веб-сервисы!
Ну тут тоже все дико элементарно. Создаем веб-сервис как-то так:
Здесь вроде как важно выбрать пакет XDTO. Например, пакет с ядром основных типов в 1С, который выбрал я. Ну и все эти URI, имена веб-сервисов и... Блин, больше ничего нет...
Добавим две операции:
1. Операция GetGoods, возвращающая... да, то же самое хранилище значений, как в случае с картинкой.
2. Операция SetPhoto с двумя параметрами - Код и Фотка. По коду мы будем идентифицировать наш товар, а фотка будет содержать фотку...
Ну и напишем этот злосчастный код (как же всем охота уже все эти "лоу коде" или вообще без него, где никто не сможет творить разную дичь с именами переменных и даже постоянных)
С первой функцией все предельно просто - в две строки мы выгружаем данные из запроса в таблицу, которую пакуем в хранилище значений и отправляем вызывающей стороне.
Со второй операцией тоже все просто: находим номенклатуру по коду и засовываем в реквизит с фоткой двоичные данные из хранилища значений. Ну и от имен переменных пусть будет плохо тем, кому от этого бывает плохо )))
Мобильное приложение
Итак, добрались мы с вами до мобильного приложения. Я, обычно, ничего не горожу в нем - там не надо никаких справочников, документов, регистров и прочей неведомой фигни. Мобильное приложение служит для того, чтобы быть устройством ввода для основной базы, а не для того, чтобы хранить в себе миллион непонятных сущностей, которые в нашем конкретном случае уж точно не нужны.
Итак, архитектура всего этого проста до безобразия:
1. Константа с адресом сервера, на котором опубликован наш веб-сервис.
2. Общая форма MAIN, в которой все и будет работать.
В форме у нас две закладки (Товары и Настройка), в виде закладок указано, что они отображаются для тачскрина. На первой закоадке товары с фоткой, на второй - настройки (поле для ввода адреса сервера с веб-сервисом):
Ну и много кода:
Здесь к нас парочка процедур для "дергания" веб-сервисов. В принципе элементарно - создается WSСоединение, "на основании" соединения создается WSПрокси, через который и дергается наш сервис. Про публикацию этого всего статей здесь миллионы, так что не буду особо заморачиваться.
Здесь первым номером идет процедура команды подключения к веб-сервису (загрузить данные). Она связана с кнопочкой, которую нужно жамкнуть после ввода адреса (она прям за адресом). Если данные получили - переключаемся на закладку с товарами, если нет - сообщаем ошибку (а ошибки будут, ибо для учебной версии доступно только одно соединение).
Ну а дальше идут процедуры и функции для вывода картинки, т.е. помещения ее во временное хранилище из хранилища значений, ну и обратные операции тоже наличествуют.
Ну и как финал - механизм фотографирования мобильной платформы, который никак не удалось создателям запихать в асинхронную обертку.
Ну и вот что получилось:



А здесь то, что в итоге получилось в тестовой базе с прайсом:
А что там по поводу экселя?
Да, я там выше обмолвился случайно про загрузку из экселя, при том кнопку загрузки видно на последнем скрине. Ну так и быть, придется выдать код (даже не картинку) - пусть от этого кода сведет зубы всем ценителям:
&НаСервереБезКонтекста
Процедура ЗагрузитьТоварыНаСервере( ДД, Расширение )
ИФ = ПолучитьИмяВременногоФайла( Расширение );
ДД.Записать( ИФ );
ТД = Новый ТабличныйДокумент;
ТД.Прочитать( ИФ, СпособЧтенияЗначенийТабличногоДокумента.Текст );
Ч = Новый ОписаниеТипов("число", Новый КвалификаторыЧисла( 15, 2, ДопустимыйЗнак.Неотрицательный ) );
НачатьЧтение = Ложь;
Для А = 1 По ТД.ВысотаТаблицы Цикл
Если НачатьЧтение Тогда
Ц = СокрЛП( ТД.Область(А, 4).Текст );
Если НЕ ПустаяСтрока( Ц ) Тогда
Наименование = СокрЛП( ТД.Область(А, 3).Текст );
Ссылка = Справочники.Номенклатура.НайтиПоНаименованию( Наименование );
Если ПустаяСтрока( Ссылка ) Тогда
О = Справочники.Номенклатура.СоздатьЭлемент();
О.Наименование = Наименование;
О.ПолнНаименование = Наименование;
О.Цена = Ч.ПривестиЗначение(
СтрЗаменить(
СтрЗаменить(
СтрЗаменить(Ц, " руб.", ""),",","."
)," ", "")
);
О.Записать();
КонецЕсли;
КонецЕсли;
ИначеЕсли ТД.Область(А, 4).Текст = "Цена" Тогда
НачатьЧтение = Истина
КонецЕсли;
КонецЦикла;
КонецПроцедуры
&НаКлиенте
Процедура ЗагрузитьТовары(Команда)
Длг = Новый ДиалогВыбораФайла( РежимДиалогаВыбораФайла.Открытие );
Длг.Фильтр = "*.xls|*.xls|*.xlsx|*.xlsx";
Длг.Показать( Новый ОписаниеОповещения( "ПриВыбореФайлаКартинки",ЭтаФорма ) );
КонецПроцедуры
&НаКлиенте
Процедура ПриВыбореФайлаКартинки(Рез, Доп) Экспорт
Если Рез = Неопределено Тогда Возврат КонецЕсли;
фл = Новый Файл( Рез[0] );
ЗагрузитьТоварыНаСервере( Новый ДвоичныеДанные(Рез[0]), Фл.Расширение );
ОповеститьОбИзменении(Тип("СправочникСписок.Номенклатура"));
КонецПроцедуры
Файл был какой-то такой (первый прайс, попавшийся в гугле):
*********************************************************************************
***************************** Все, всем пока и удачи! ************************************
*********************************************************************************
Вступайте в нашу телеграмм-группу Инфостарт
Вы можете заказать платную адаптацию этой статьи под ваши задачи на «Бирже заказов».
- 0% комиссии — оплата напрямую исполнителю;
- Исполнители любого масштаба — от отдельных специалистов до команд под проект;
- Прямой обмен контактами между заказчиком и исполнителем;
- Безопасная сделка — при необходимости;
- Рейтинги, кейсы и прозрачная система откликов.
См. также
Мобильная разработка Сканер штрих-кода Терминал сбора данных 1С:Предприятие 8 1С:Розница 2 1С:Управление нашей фирмой 1.6 1С:ERP Управление предприятием 2 1С:Управление торговлей 11 1С:Комплексная автоматизация 2.х Управленческий учет Платные (руб)
Сбор заказов, инвентаризация, проверка ценников, просмотр полной информации об остатках и ценах со смартфона Онлайн - все это содержит в себе решение 1С "Штрихкод-информер" (штрих-код чекер). Отправка данных со смартфона выполняется либо напрямую в открытую форму документа, отсканировав QR-код, либо в общую корзину учетной системы, не подходя к компьютеру. Кассир или оператор сможет просмотреть список присланных данных и загрузить в любую форму, поддерживающую работу с ТСД. Для работы с мобильным приложением требуется опубликовать HTTP-сервис из поставляемого расширения.
3050 руб.
03.12.2018 72919 250 108
Сканер штрих-кода Терминал сбора данных Мобильная разработка Монитор заказов Оптовая торговля Розничная торговля Ценообразование, анализ цен Разработчик Пользователь 1С:Предприятие 8 1С:Розница 2 1С:Управление нашей фирмой 1.6 1С:ERP Управление предприятием 2 1С:Управление торговлей 11 1С:Комплексная автоматизация 2.х Розничная и сетевая торговля (FMCG) Оптовая торговля, дистрибуция, логистика Управленческий учет Платные (руб)
Простой мобильный ТСД (терминал сбора данных) сканер для 1С для смартфонов на iOS и Android, не требующий сложных настроек и установки дополнительных программ. Обмен между Вашей 1С и мобильным приложением осуществляется через облачный сервис и расширение конфигурации. Работает с конфигурациями УТ 11, ERP, КА2, Розница 2, Розница 3, УНФ 1.6, УНФ 3.0. Полнофункциональный демо-доступ для своей конфигурации можно запросить в настройках мобильного приложения - все необходимое придет на почту автоматически. Решение предназначено для считывания штрихкодов, а не для их создания и печати.
3050 руб.
22.04.2019 124915 739 207
Сканер штрих-кода Оптовая торговля Розничная торговля Логистика, склад и ТМЦ Терминал сбора данных Мобильная разработка Разработчик Пользователь 1С:Предприятие 8 1С:Комплексная автоматизация 1.х 1С:Управление торговлей 10 1С:Розница 2 1С:Бухгалтерия 3.0 1С:Управление торговлей 11 1С:Комплексная автоматизация 2.х 1С:Управление нашей фирмой 3.0 1С:Розница 3.0 Россия Управленческий учет Платные (руб)
Android смартфон как беспроводной сканер штрих-кодов, QR-кодов (2D), терминал сбора данных (ТСД), подписка на штрих-код Комбайн
2196 руб.
18.01.2017 152655 235 237
Мобильная разработка Бесплатно (free)
Android-клиент: конструктор и выполнение запросов 1С по HTTP к опубликованной базе. Часть экосистемы КонфигРедактор.
06.10.2026 1890 54 aleksandrboldyusov 0
Мобильная разработка Разработчик 1С 8.3 1С:ERP Управление предприятием 2 1С:Бухгалтерия 3.0 1С:Управление торговлей 11 1С:Комплексная автоматизация 2.х Абонемент ($m)
Эта подключаемая обработка для любой конфигурации 1С, позволяет отправить любой объект (и рекуррентно связанные с ним объекты) на устройства c NodaLogic, где они будут полнофункциональны и доступны офлайн, по ним можно вести переписку как со стороны чата в NodaLogic, так и со стороны 1С, заполнять данные и загрузить в 1С по мере надобности. Т.е. обработка содержит генератор UI/UX интерфейса NodaLogic и создает объекты для обмена. При этом не надо ни разбираться в NodaLogic вообще, ни иметь базу/сервер/решение на стороне NL – только учетка и мобильное устройство, а со стороны 1С достаточно галочками отметить, какие поля должны быть на формах. Все данные хранятся в ХранилищеОбщихНастроек, поэтому никакого расширения не нужно, сервера со стороны 1С для связи с устройствами тоже не нужно. Тестировалось на 1С:Предприятие 8.3 (8.3.27.1326), 1С:Комплексная автоматизация 2 (2.4.8.63)
1 стартмани
12.05.2026 1553 6 informa1555 1
Мобильная разработка Разработчик Бесплатно (free)
Мне нужен был высокопроизводительный язык для фронт-сайда, я его сделал, а потом подумал, а что, если сделать 1С-синтаксис? Вот что из этого вышло. Продолжение статьи https://infostart.ru/1c/articles/2614496/
12.03.2026 2837 informa1555 11
Мобильная разработка Разработчик 1С 8.3 1С:Комплексная автоматизация 2.х 1С:КА Управленческий учет Абонемент ($m)
В этой статье простейший документ - ориентированный пример складского учета на клиент-серверной платформе NodaLogic с автономными мобильными рабочими местами. Это чисто скелетный пример как можно вынести часть учета во внешний контур. И расширение - модуль связи с 1С. Тестировалось на платформе 1С:Предприятие 8.3 (8.3.27.1326), 1С:Комплексная автоматизация 2 (2.4.8.63).
1 стартмани
13.02.2026 4128 informa1555 5
WEB-интеграция Мобильная разработка Разработчик 1С:Предприятие 8 1С:Библиотека стандартных подсистем Россия Бесплатно (free)
Бесплатное приложение для интеграции веб-клиента 1С с Android-устройством. Просто установите, укажите веб-адрес вашей базы 1С - и пользуйтесь привычным интерфейсом с расширенным доступом к функциям устройства: лазерный и имидж-сканер ТСД, сканер штрихкода камерой, GPS, Bluetooth, фотокамера, NFC и многое другое.
05.08.2025 4687 221 OneScan 25
ПС - я не ставил минус, если что :)
ЗЫ: часто читая достаточно большие произведения ловлю себя на мысли, что у авторе дедлайн от издательства и ближе к концу все внезапно разруливается совершенно фантастическим (даже для фантастического произведения) образом.
Вообще, развернуть веб-сервер Апач - это дело ТРЕХ минут (набрать в гугле apace2, перейти по сцылке, найти бинарники, найти для винды, выбрать первый, жамкнуть на соответствующем дистрибе (для обучения программированию 32-битная в винде мне попалась), распаковать скачанное на "С", запустить СМД от админа, СД с:\апач24\бин, хттпд.ехе -к инсталл, хттпд.ехе -к старт - все). Ну а дальше главное в конфигуратор 1С заходить от админа системы, а там просто галочки. Ну а все эт эСэСэЛ - для этого статей тоже море.
С одной стороны, написано максимально коротко, без разъяснений - т.е. для тех кто в курсе. Тех кто знает. С другой - а зачем тем кто знает такой "набросок" вместо "картины"?
Берет учебную платформу. Ну ок, значит для новичков. Но не пишет как создать мобильное приложение, как поместить в смартфон, даже ссылок на статьи нет. Т.е. это новичок уже должен уметь сам?!
Простыни кода и картинок не удосужился поместить в сворачиваемые области.
За что плюсы-то?!
Берет учебную платформу. Ну ок, значит для новичков. Но не пишет как создать мобильное приложение, как поместить в смартфон, даже ссылок на статьи нет. Т.е. это новичок уже должен уметь сам?!
И что конкретно необходимо разъяснить? По пунктам?
По поводу платформы вначале сказал о бесплатном варианте, что выгодно для многих и не только для начинающих. О взломе(что неуместно, вы сами понимаете) и покупке также упомянул. Кстати, новичок может купить комплект для разработчика с большой скидкой, это если у него есть сертификат от уровня Специалиста. Будет к чему стремиться.
Изложил основу, саму суть, остальное все можно при желании доработать самостоятельно. Столько курсов сейчас, бесплатных материалов по теме, только пользуйся.
В мое время, я учился с 1985-го, в Политехе, интернета и в помине не было. Нам давали лекции по серьезным предметам(они практически все серьезные были, не говорю о Философии и Истории КПСС) так, что оставалось множество "отсылов" на доп. материал по теме. Который ты должен, прежде всего для себя конечно, проработать самостоятельно. А это нужно идти в библиотеку, а может не повезти и нужной литературы уже нет, на руках. Вот так и "догоняли" до нужного уровня свои знания. А как иначе. Никто ничего за тебя делать не будет. Это не в школе, где тебе учителя разжевывали все и с ложечки кормили. Хотя я и там все сам делал. Только так. Я знаю как минимум двоих таких, мол, научи меня программировать)) Как учить человека если он не понимает зачем ему это? Если хочет, сам все найдет, освоит и еще спасибо скажет. Мне кажется конструктивнее в каждой вещи искать и видеть рациональное и полезное. Многие и 1С критикуют. Есть отдельные моменты когда реально есть за что. Это у всех есть, никто не совершен. Но лучше все же искать положительное и функциональное, которого гораздо больше. Это и приятнее и полезнее, и для себя и для других.
ЗЫ: ну и на мой скромный взгляд на HTTP не получиться все это организовать в две строчки, пользуясь типами 1С - нужно будет городить JSON запись и чтение, хотя оно тоже искаропки, но с датами так просто работать не будет - нужно будет рассказать ему о датах в полях...
Пичаль.
Тоже не понимаю "минусаторов". Скажите все вслух, может что-то реально не так(хотя по мне все так).
Вы спасибо лучше скажите, что человек поделился опытом и прежде, чем критиковать, попытайтесь вникнуть в суть того, что он хотел донести, спросите, послушайте, что ответит.
Надо оставить только плюсы, очень много сейчас этих минусов без объяснений, стало бросаться в глаза.
Здесь же портал обмена мнением, полезным опытом, выскажись, лишний раз поддержи, зачем молча негативить.
Нисколько не напрягла статья, код читается и понимается легко и однозначно(единственное, возле скобок я не ставлю пробелы и в теле процедур-функций убираю в большинстве для удобства пробелы между строк для компактности, это имхо), наоборот, тут человек мыслит нестандартно, нескучно. С такими интересно, есть чему поучиться.
Тем более, что он объяснил суть использования однобуквенных переменных(как бы борцы за их права ни плакали)))). Думается, что специалист с таким опытом и про стандарты знает и об остальном в курсе и т.д.
Вы посмотрите типовые конфигурации от 1С. Там конечно в основном все по стандарту, но и там есть нюансы, причем не так редко, суть коллективной разработки.
Когда-то еще в советское время, в политехе, был у нас предмет "Схемотехника". Наши родные книжки читать без тоски было невозможно, с их-то сухим и правильным, официальным и серьезным языком. И как глоток свежего воздуха, по крайней мере так тогда казалось, и легкое потрясение от стиля изложения и свободы мысли была книга "Искусство схемотехники" Хоровица и Хилла.
Прочитал статью и вспомнил, видимо из-за стиля изложения в статье.
Логи сборки |
|---|
| [info] Android 4in1
[info] Дата и время начала сборки: 29.11.2021 6:18:16 [info] Файловый вариант ИБ : No [info] Версия ОС : Windows x86-64, Microsoft Windows 10 version 10.0 (Build 17763) [info] Оперативная память : 16 383 [info] Версия платформы : 8.3.18.1483 Windows x86-64 [info] Версия сборщика : 8.3.19.85 [info] Номер мобильной версии : 8.3.19.59 [info] Тип сборки : app [info] Графическая информация : [info] Аудиоинформация : [info] Рабочий каталог (и кеш) : C:\Temp\MobileAppBuilder\ [info] Путь к Java : C:\Program Files\Java\jdk1.8.0_211\ [info] Архитектура Java : 64 [info] Версия Java : java version "1.8.0_211" [info] Путь к Android SDK : C:\Android\ [info] Версия Android SDK : 29, Android SDK Platform 10 [info] Распаковка мобильной платформы [info] Создание "старых" конфигурационных файлов [info] Конфигураций в мобильном приложении: 1 [info] Распаковка конфигураций: [info] конфигурация: conf.xml, Версия <не указана>, загружена 2021-11-29, Конфигурация [info] начальная БД: conf.1CM, Версия <не указана>, загружена 2021-11-29, Конфигурация [info] В приложении отсутствуют внешние компоненты [WARN] В приложении не указан поставщик статистики [info] Распаковка картинок: [info] Android\icon-36x36.png (res\drawable-ldpi\icon.png) - ОТСУТСТВУЕТ [info] Android\icon-48x48.png (res\drawable-mdpi\icon.png) - ОТСУТСТВУЕТ [info] Android\icon-72x72.png (res\drawable-hdpi\icon.png) - ОТСУТСТВУЕТ [info] Android\icon-96x96.png (res\drawable-xhdpi\icon.png) - ОТСУТСТВУЕТ [info] Android\icon-144x144.png (res\drawable-xxhdpi\icon.png) - ОТСУТСТВУЕТ [info] Android\splash-320x480.png (assets\logo\logo_320x480.png) - ОТСУТСТВУЕТ [info] Android\splash-480x854.png (assets\logo\logo_480x854.png) - ОТСУТСТВУЕТ [info] Android\splash-640x960.png (assets\logo\logo_640x960.png) - ОТСУТСТВУЕТ [info] Android\splash-768x1024.png (assets\logo\logo_768x1024.png) - ОТСУТСТВУЕТ [info] Android\splash-800x1280.png (assets\logo\logo_800x1280.png) - ОТСУТСТВУЕТ [info] Android\splash-854x480.png (assets\logo\logo_854x480.png) - ОТСУТСТВУЕТ [info] Android\splash-1024x768.png (assets\logo\logo_1024x768.png) - ОТСУТСТВУЕТ [info] Android\splash-1242x2208.png (assets\logo\logo_1242x2208.png) - ОТСУТСТВУЕТ [info] Android\splash-1280x800.png (assets\logo\logo_1280x800.png) - ОТСУТСТВУЕТ [info] Android\splash-1536x2048.png (assets\logo\logo_1536x2048.png) - ОТСУТСТВУЕТ [info] Android\splash-2048x1536.png (assets\logo\logo_2048x1536.png) - ОТСУТСТВУЕТ [info] Android\splash-2208x1242.png (assets\logo\logo_2208x1242.png) - ОТСУТСТВУЕТ [info] Android\pushsmallicon-18x18.png (res\drawable-ldpi\pushsmallicon.png) - ОТСУТСТВУЕТ [info] Android\pushsmallicon-24x24.png (res\drawable-mdpi\pushsmallicon.png) - ОТСУТСТВУЕТ [info] Android\pushsmallicon-36x36.png (res\drawable-hdpi\pushsmallicon.png) - ОТСУТСТВУЕТ [info] Android\pushsmallicon-48x48.png (res\drawable-xhdpi\pushsmallicon.png) - ОТСУТСТВУЕТ [info] Android\pushsmallicon-72x72.png (res\drawable-xxhdpi\pushsmallicon.png) - ОТСУТСТВУЕТ [info] Android\pushlargeicon-36x36.png (res\drawable-ldpi\pushlargeicon.png) - ОТСУТСТВУЕТ [info] Android\pushlargeicon-48x48.png (res\drawable-mdpi\pushlargeicon.png) - ОТСУТСТВУЕТ [info] Android\pushlargeicon-72x72.png (res\drawable-hdpi\pushlargeicon.png) - ОТСУТСТВУЕТ [info] Android\pushlargeicon-96x96.png (res\drawable-xhdpi\pushlargeicon.png) - ОТСУТСТВУЕТ [info] Android\pushlargeicon-144x144.png (res\drawable-xxhdpi\pushlargeicon.png) - ОТСУТСТВУЕТ [WARN] Информация о звуковых файлах отсутствует [WARN] Файл google-services.json не загружен в сборщик мобильных приложений. Работа собранного приложения с Firebase Cloud Messaging будет невозможна. [info] Атрибут manifest[package] = com.example.testvv [info] Атрибут manifest[android:versionName] = 1.1.0 [info] Атрибут manifest[android:versionCode] = 1 [WARN] Ключ для работы с Google Maps не задан в настройках. Работа с Google Maps будет невозможна [info] Атрибут meta-data[android:value] = <пустое значение> [info] Устанавливаются разрешения, используемые мобильными конфигурациями: [info] PushNotification - НЕ ИСПОЛЬЗУЕТСЯ [info] PicturesAndVideoLibraries - НЕ ИСПОЛЬЗУЕТСЯ [info] Location - НЕ ИСПОЛЬЗУЕТСЯ [info] InstallPackages - НЕ ИСПОЛЬЗУЕТСЯ [info] Contacts - НЕ ИСПОЛЬЗУЕТСЯ [info] Camera - НЕ ИСПОЛЬЗУЕТСЯ [info] HandlePhoneCalls - НЕ ИСПОЛЬЗУЕТСЯ [info] WiFiPrinters - НЕ ИСПОЛЬЗУЕТСЯ [info] Calendars - НЕ ИСПОЛЬЗУЕТСЯ [info] CallPhone - НЕ ИСПОЛЬЗУЕТСЯ [info] Print - НЕ ИСПОЛЬЗУЕТСЯ [info] Microphone - НЕ ИСПОЛЬЗУЕТСЯ [info] BluetoothPrinters - НЕ ИСПОЛЬЗУЕТСЯ [info] CallLog - НЕ ИСПОЛЬЗУЕТСЯ [info] PermissionGroupCallLog - НЕ ИСПОЛЬЗУЕТСЯ [info] MusicLibrary - НЕ ИСПОЛЬЗУЕТСЯ [info] FileExchangeWithPersonalComputer - НЕ ИСПОЛЬЗУЕТСЯ [info] SMSLog - НЕ ИСПОЛЬЗУЕТСЯ [info] LocalNotification - НЕ ИСПОЛЬЗУЕТСЯ [info] Biometrics - используется [info] ReceiveSMS - НЕ ИСПОЛЬЗУЕТСЯ [info] BackgroundAudioPlayback - НЕ ИСПОЛЬЗУЕТСЯ [info] InAppPurchases - НЕ ИСПОЛЬЗУЕТСЯ [info] SendSMS - НЕ ИСПОЛЬЗУЕТСЯ [info] AudioAndVibrationPlayback - НЕ ИСПОЛЬЗУЕТСЯ [info] AllowOSBackup - используется [info] BackgroundLocation - НЕ ИСПОЛЬЗУЕТСЯ [info] AllFilesAccess - НЕ ИСПОЛЬЗУЕТСЯ [info] Ads - НЕ ИСПОЛЬЗУЕТСЯ [info] Установка представления приложения для языка по умолчанию: ru [info] Создан файл strings.xml [info] Представление приложения: Приложение [info] Выполним настройки, связанные с модулями мобильной версии [info] Режим работы с модулями: v4 [info] Определяется список используемых и неиспользуемых модулей [info] Определяется список неиспользуемых компонентов провайдера статистики [info] AppMetrica: No [info] Firebase Analytics: No [info] Google Analytics: No [info] Обрабатывается необходимость использования автоматизированного тестирования [info] НЕ используется [info] Результирующий список обрабатываемых "модулей": [info] ads (ads) = No [info] inappbilling (inapppurchases) = No [info] stts (applicationusagestatistics) = No [info] statisticsyandex () = No [info] statisticsfirebase () = No [info] statisticsgoogle () = No [info] uitest () = No [info] Модификация конфигурационных файлов по списку модулей [info] Обрабатывается набор действий: ads/notUse [info] Обрабатывается набор действий: stts/notUse [info] Обрабатывается набор действий: statisticsfirebase/notUse [info] Обрабатывается набор действий: statisticsgoogle/notUse [info] Обрабатывается набор действий: uitest/notUse [info] Создание новых файлов (при необходимости): [info] Дополнение существующих файлов (при необходимости): [info] Определяется список удаляемых файлов по списку модулей: [info] \libs\1cem.aar\libads.so [info] \libs\1cem.aar\libstts.so [info] \libs\1cem.aar\libcom_1c_statisticsfirebase.so [info] \libs\1cem.aar\com_1c_statisticsfirebase.apk [info] \libs\1cem.aar\libcom_1c_statisticsgoogle.so [info] \libs\1cem.aar\com_1c_statisticsgoogle.apk [info] \libs\1cem.aar\libtest.so [info] \libs\1cem.aar\libtestmc.so [info] \libs\1cem.aar\libtestbase.so [info] \libs\1cem.aar\libuitest.so [info] Удаление выявленных файлов: [info] Распаковка архива: libs\1cem.aar -> _$1cem_aar$_ [info] C:\Temp\MobileAppBuilder\mab-33dc830a-8591-4a26-a07b-f4e2caf7311d\_$1cem_aar$_\jni\arm64-v8a\libads.so [info] C:\Temp\MobileAppBuilder\mab-33dc830a-8591-4a26-a07b-f4e2caf7311d\_$1cem_aar$_\jni\armeabi-v7a\libads.so [info] C:\Temp\MobileAppBuilder\mab-33dc830a-8591-4a26-a07b-f4e2caf7311d\_$1cem_aar$_\jni\x86\libads.so [info] C:\Temp\MobileAppBuilder\mab-33dc830a-8591-4a26-a07b-f4e2caf7311d\_$1cem_aar$_\jni\x86_64\libads.so [info] C:\Temp\MobileAppBuilder\mab-33dc830a-8591-4a26-a07b-f4e2caf7311d\_$1cem_aar$_\jni\arm64-v8a\libstts.so [info] C:\Temp\MobileAppBuilder\mab-33dc830a-8591-4a26-a07b-f4e2caf7311d\_$1cem_aar$_\jni\armeabi-v7a\libstts.so [info] C:\Temp\MobileAppBuilder\mab-33dc830a-8591-4a26-a07b-f4e2caf7311d\_$1cem_aar$_\jni\x86\libstts.so [info] C:\Temp\MobileAppBuilder\mab-33dc830a-8591-4a26-a07b-f4e2caf7311d\_$1cem_aar$_\jni\x86_64\libstts.so [info] C:\Temp\MobileAppBuilder\mab-33dc830a-8591-4a26-a07b-f4e2caf7311d\_$1cem_aar$_\jni\arm64-v8a\libcom_1c_statisticsfirebase.so [info] C:\Temp\MobileAppBuilder\mab-33dc830a-8591-4a26-a07b-f4e2caf7311d\_$1cem_aar$_\jni\armeabi-v7a\libcom_1c_statisticsfirebase.so [info] C:\Temp\MobileAppBuilder\mab-33dc830a-8591-4a26-a07b-f4e2caf7311d\_$1cem_aar$_\jni\x86\libcom_1c_statisticsfirebase.so [info] C:\Temp\MobileAppBuilder\mab-33dc830a-8591-4a26-a07b-f4e2caf7311d\_$1cem_aar$_\jni\x86_64\libcom_1c_statisticsfirebase.so [info] C:\Temp\MobileAppBuilder\mab-33dc830a-8591-4a26-a07b-f4e2caf7311d\_$1cem_aar$_\assets\ProviderData\com_1c_statisticsfirebase.apk [info] C:\Temp\MobileAppBuilder\mab-33dc830a-8591-4a26-a07b-f4e2caf7311d\_$1cem_aar$_\jni\arm64-v8a\libcom_1c_statisticsgoogle.so [info] C:\Temp\MobileAppBuilder\mab-33dc830a-8591-4a26-a07b-f4e2caf7311d\_$1cem_aar$_\jni\armeabi-v7a\libcom_1c_statisticsgoogle.so [info] C:\Temp\MobileAppBuilder\mab-33dc830a-8591-4a26-a07b-f4e2caf7311d\_$1cem_aar$_\jni\x86\libcom_1c_statisticsgoogle.so [info] C:\Temp\MobileAppBuilder\mab-33dc830a-8591-4a26-a07b-f4e2caf7311d\_$1cem_aar$_\jni\x86_64\libcom_1c_statisticsgoogle.so [info] C:\Temp\MobileAppBuilder\mab-33dc830a-8591-4a26-a07b-f4e2caf7311d\_$1cem_aar$_\assets\ProviderData\com_1c_statisticsgoogle.apk [info] libtest.so - не найден [info] libtestmc.so - не найден [info] libtestbase.so - не найден [info] C:\Temp\MobileAppBuilder\mab-33dc830a-8591-4a26-a07b-f4e2caf7311d\_$1cem_aar$_\jni\arm64-v8a\libuitest.so [info] C:\Temp\MobileAppBuilder\mab-33dc830a-8591-4a26-a07b-f4e2caf7311d\_$1cem_aar$_\jni\armeabi-v7a\libuitest.so [info] C:\Temp\MobileAppBuilder\mab-33dc830a-8591-4a26-a07b-f4e2caf7311d\_$1cem_aar$_\jni\x86\libuitest.so [info] C:\Temp\MobileAppBuilder\mab-33dc830a-8591-4a26-a07b-f4e2caf7311d\_$1cem_aar$_\jni\x86_64\libuitest.so [info] Запаковка архива: _$1cem_aar$_ -> libs\1cem.aar [info] Настройки, связанные с модулями, выполнены [info] Создается файл settings.ini с настройками собираемого приложения [WARN] Список настроек пустой, файл не создается [info] Получим ключ для подписи приложения: Ключ подписи для ОС Android [info] Подготовка файла c параметрами ключа сборки: keystore.sign.properties [info] Для Gradle установлен максимальный размер используемой оперативной памяти, Mb: 4 095 [info] Подготовка файла управления сборкой: make.bat [info] Командная строка: gradlew assembleSignRelease 1>> "C:\Temp\MobileAppBuilder\\mab-33dc830a-8591-4a26-a07b-f4e2caf7311d\build-android-bundle.log" 2>>&1 [info] Начинается сборка To honour the JVM settings for this build a new JVM will be forked. Please consider using the daemon: . Daemon will be stopped at the end of the build stopping after processing > Task :preBuild UP-TO-DATE > Task :extractProguardFiles > Task :preSignReleaseBuild > Task :compileSignReleaseAidl NO-SOURCE > Task :compileSignReleaseRenderscript NO-SOURCE > Task :generateSignReleaseBuildConfig > Task :javaPreCompileSignRelease > Task :generateSignReleaseResValues > Task :checkSignReleaseAarMetadata > Task :generateSignReleaseResources > Task :createSignReleaseCompatibleScreenManifests > Task :extractDeepLinksSignRelease > Task :processSignReleaseMainManifest [com.android.support:animated-vector-drawable:28.0.0] C:\Temp\MobileAppBuilder\gradle\caches\transforms-2\files-2.1\058d3d67d0fecebeb83eef8d479f47f3\animated-vector-drawable-28.0.0\AndroidManifest.xml Warning: Package name 'android.support.graphics.drawable' used in: com.android.support:animated-vector-drawable:28.0.0, com.android.support:support-vector-drawable:28.0.0. > Task :processSignReleaseManifest > Task :processSignReleaseManifestForPackage > Task :mergeSignReleaseNativeDebugMetadata NO-SOURCE > Task :mergeSignReleaseShaders > Task :compileSignReleaseShaders NO-SOURCE > Task :generateSignReleaseAssets UP-TO-DATE > Task :mergeSignReleaseAssets > Task :compressSignReleaseAssets > Task :checkSignReleaseDuplicateClasses > Task :processSignReleaseJavaRes NO-SOURCE > Task :mergeSignReleaseResources > Task :collectSignReleaseDependencies > Task :sdkSignReleaseDependencyData > Task :processSignReleaseResources > Task :mergeSignReleaseJniLibFolders > Task :mergeSignReleaseJavaResource > Task :compileSignReleaseJavaWithJavac > Task :compileSignReleaseSources > Task :lintVitalSignRelease > Task :mergeSignReleaseGeneratedProguardFiles > Task :minifySignReleaseWithR8 > Task :validateSigningSignRelease > Task :shrinkSignReleaseRes > Task :mergeSignReleaseNativeLibs > Task :stripSignReleaseDebugSymbols Unable to strip the following libraries, packaging them as they are: lib1cem.so, libc++_shared.so, libjingle_peerconnection_so.so, libstarter.so. > Task :packageSignRelease > Task :assembleSignRelease BUILD SUCCESSFUL in 2m 2s 29 actionable tasks: 29 executed |
Вообще, странно, что Вы дадите один ТСД десяти человекам, у которых будут разные права ))) Это как права на клавиатуру...
1. Кушают лицензию.
2. Отсутствует схема, позволяющая без лишнего геморроя обмениваться списком операций, их аргументов и типов.
JSON - да, отличная вещь, но в 1С при выгрузке даже дат уже требует их отдельного описания. При том никто не мешает в типе веб-сервиса поставить строку, но и сжатое хранилище тоже может содержать в себе что угодно, к тому же это обеспечивает сжатие теустовой информации при передаче. В HTTP-сервисах придется это сжатие как-то самостоятельно прорабатывать дополнительно.
SOAP в данном конкретном примере позволяет сильно упростить обмен, не разбираясь во всех тех операциях, которые есть в HTTP. А статья для совсем новичков.
Кстати, есть у вас какой-нить пример оценки скорости работы SOAP vs HTTP? На сколько одно быстрее другого при идентичной передаваемой информации? На сколько больше кода пришлось написать в HTTP?
Вы можете заказать платную консультацию или разработку у автора. Будет создан приватный заказ на «Бирже заказов» для автора.
№ 533248
Создание 27.10.21 18:00
Обновление 27.10.21 18:00
Просмотры 47294
Загрузки 0
Рейтинг
147
Комментарии 65
Код открыт Да
Рубрики Мобильная разработка
Кому
Разработчик
,
Стажер
Тип файла Нет файла
Платформа 1С:Предприятие 8
Конфигурация Универсальные
Операционная система Не имеет значения
Страна Не имеет значения
Отрасль Не имеет значения
Налоги Не имеет значения
Вид учета Не имеет значения
Доступ к файлу Бесплатно (free)