Флагманский продукт «1С:ERP Управление предприятием 2» на середину 2016 года содержал 5 млн. строк кода и около 10 тысяч программных модулей. Данная конфигурация разработана на платформе «1С:Предприятие 8», которую уже около 12 лет поддерживает и разрабатывает фирма «1С». И несмотря на столь солидный стаж, платформа продолжает включать в себя все новые и новые функциональные возможности, сохраняя при этом довольно высокий уровень обратной совместимости.
Эти качества обеспечили платформе «1С:Предприятие 8» поистине феноменальное положение: на текущий момент, по числу продаваемых лицензий в России, доля рынка «1С» составляет более (!) 80%. Это позволяет утверждать, что в настоящее время, с точки зрения предоставляемой разработчику функциональности, платформа «1С:Предприятие 8» стала базовой технологией в области автоматизации различных сфер бизнеса.
Если вы уже давно не имели дела с платформой 1С (последний раз видели редакцию 7.7 или 8.1), то вы можете даже не узнать систему, в которую она превратилась сегодня – в хорошем смысле этого слова.
Сервис сборки мобильных приложений
Естественно, платформа не изменятся разработчиками «просто так», и новая функциональность является лишь частью общей эволюции системы для разработки бизнес-приложений. И в данном цикле, названном «Первые шаги в разработке на 1С», мы рассмотрим эти аспекты эволюции 1С (8.3.4-8.3.11). Кроме того, естественно, изучим и базовые приемы разработки.
Надеемся, что этот весьма объемный цикл статей будет полезен всем тем, кто либо начинает знакомиться с разработкой на платформе 1С, либо хочет быстро пробежаться «по верхам» и сформировать для себя какое-то мнение о принципе разработки на 1С в общем и о деятельности программиста 1С в частности.
Для полных новичков, решивших освоить разработку на каком-либо языке программирования, но еще не выбравших для себя что-то конкретное, мы рекомендуем почитать эту статью от руководителя разработки и главного архитектора системы «1С: Предприятие», Сергея Нуралиева.
Естественно, весь материал нашего цикла не охватывает полностью всех аспектов разработки на платформе «1С:Предприятие 8», т.к. для того, чтобы описать все возможности системы, нужно написать много толстых книг. Мы и не ставили себе такой задачи, т.к. в данный момент вся экосистема 1С – это целый мир, который вполне может стать вашим 😉
Источник: xn—-1-bedvffifm4g.xn--p1ai
Разработка бизнес-приложений 1С + Android
В данной статье хочу познакомить вас с новым продуктом “FBA Toolkit”, который существенно облегчает процесс разработки корпоративного мобильного приложения на 1С + Android.
02.12 Мастер-класс по мобильной разработке на платформе в 1С:Предприятие 8
“FBA Toolkit” это:
— разработка «нативного» приложения Android в родной IDE на языке Java;
— 1С: Предприятие 8.1 (8.2) в роли источника данных, корпоративной информационной системы.
В первую очередь, фреймворк будет полезен программистам 1С, которые хотели бы заняться разработкой бизнес-приложений под Android, но испытывают трудности с освоением новой для них платформы. Чтобы начать разработку достаточно будет начальных знаний Java. Далее я покажу, как создать рабочий прототип клиент-серверного приложения буквально за пару часов.
Подготавливаем рабочее место
Прежде чем начать непосредственно процесс разработки, необходимо подготовить рабочее место разработчика. Потребуется:
1. Установить и настроить:
— Java SDK + Eclipse + Android SDK;
— Web-сервер (IIS или Apache);
— 1С: Предприятие 8.1 (8.2)
2. Для Eclipse произвести импорт двух библиотечный проектов: ActionBarSherlock и ru_profu1c_fba из хранилища SVN.
3. Установить дистрибутив конфигурации «FBA» и объединить ее с вашим прикладным решением на базе 1С.
Настройка не должна занять много времени, и скорее всего, часть необходимого ПО у вас уже установлена.
Описание приложения
Создадим мобильное приложение «Рапорт руководителю», предназначенное для регулярного информирования руководителя о состоянии дел на предприятии. Приложение будет состоять из 3-х экранов:
- “Вход” — авторизация пользователя при запуске программы.
- “Список отчетов” – основной экран нашего приложения. Отображается список доступных отчётов с возможностью просмотра и обновления данных из базы 1С.
- “Настройки программы” – здесь пользователь задает параметры авторизации и адрес сервера 1С, настраивает расписание автоматического обмена с сервером 1С.
- Отчет «Товары на складах». Формируется на сервере и компилируется как HTML документ, в мобильном приложении просто отображается. Самый простой вариант, форма отчета фиксирована и не может быть изменена.
- Отчет «Финансовые показатели». Здесь исходные данные для отчета получаются в виде таблицы, по которой затем строится отчет. Плюсы данного варианта: произвольная форма вывода отчета, в т.ч. в виде графиков и диаграмм; возможна установка отборов и сортировки.
Создание шаблона мобильного приложения в 1С
Разработка мобильного приложения начинается в 1С, как это не удивительно. Здесь вы определяетесь с составом метаданных, настраиваете схему обмена и регенерируете шаблон вашего будущего мобильного приложения.
Создайте новый элемент в справочнике «Мобильные приложения» с наименованием «Рапорт руководителю» и идентификатором SAMPLE_REPORT_HEAD.
Выделите в списке “Метаданные” группу “Внешние данные” и нажмите кнопку “Добавить” на панели инструментов. Заполните параметры новой таблицы как показано на рисунке:
«Показатель» — тестовое представление показателя отчета, строка (250)
«Значение» — числовое значение показателя, число (15.2)
Имена колонок и самой таблицы здесь, как правило, задаются на русском языке, по ним будет производиться заполнение таблицы данными средствами встроенного языка 1С. Нажмите ОК, таблица будет добавлена в дерево метаданных, для мобильного приложения имена автоматически переводятся в латиницу.
Таким образом, мы подготовили структуру таблицы значений (в терминах 1С) в которой будем передавать данные для отчета «Финансовые показатели». Для второго отчета «Товары на складах» данные будут передаваться как внешний файл.
На закладке «Схема обмена» проверьте, что отмечен флаг «Выгрузка». Флаг «Загрузка» не важен, т.к. мы не собираемся обрабатывать в 1С полученные изменения этой таблицы от мобильного приложения.
Сохраните изменения. Нажмите на кнопку “Шаблон мобильного приложения” на панели инструментов, установите параметры вашего мобильного приложения
«Каталог шаблонов» — путь к каталогу, в котором будут сохранены сгенерированные файлы шаблона мобильного приложения.
На закладке «Основные» укажите имя пакета, это должен быть уникальный идентификатор. Если у вас есть сайт, используйте его для генерации префикса. В этом примере я указал ru.profi1c.samples.report.head
На закладке «Web-сервис» указан IP-адрес 10.0.2.2, по умолчанию это адрес вашего компьютера при доступе с Android-эмулятора. В поля «Имя веб-сервиса» и «Подкаталог приложения» введите данные, которые были указаны при публикации веб-сервиса.
Обратите внимание, что для 1С 8.2, скорее всего, подкаталог приложения у вас будет с дополнительным подкаталогом /ws, т.е demoFba/ws, подробнее см. здесь.
Нажмите Создать, шаблон Android-проекта будет сгенерирован.
Подготовка исходных данных для отчетов в 1С
Откройте в конфигураторе 1С модуль fbaПодпискаНаСобытия и добавьте следующий код в процедуру ПередОтправкойВнешнейТаблицы:
Если СокрЛП(МобильноеПриложение.Код) = «SAMPLE_REPORT_HEAD» Тогда Если ИмяТаблицы = «РапортРуководителю» Тогда //фиктивные данные отчета СписокТемп = fbaОбщий.ИзСтрокиСРазделителями(«Денежные средства,Расчеты с подотчетными лицами,Общая дебиторская задолженность,Остатки товаров,Кредиторская задолженность,Объем продаж»); ГСЧ = Новый ГенераторСлучайныхЧисел(123456789); Для каждого ЭлементСписка Из СписокТемп Цикл НоваяСтрока = ВнешняяТаблица.Добавить(); НоваяСтрока.Показатель = ЭлементСписка.Значение; НоваяСтрока.Значение = ГСЧ.СлучайноеЧисло(0,999999) + Sin(ГСЧ.СлучайноеЧисло(0,999)); КонецЦикла; КонецЕсли; КонецЕсли
В этом примере таблица заполняется фиктивными данными, в реальном приложении здесь можете передавать произвольное количество показателей отчета.
С данными для первого отчета разобрались, осталось подготовить для второго. В этом же модуле fbaПодпискаНаСобытия добавите в процедуру ПодготовитьДвоичныеДанныеДляОтправки следующий код:
ДД = Неопределено; Если СокрЛП(МобильноеПриложение.Код) = «SAMPLE_REPORT_HEAD» Тогда Если Идентификатор = «REPORT_PRODUCTS_IN_STOK» Тогда ИмяФайла = ПолучитьИмяВременногоФайла(«html»); Отчет = Отчеты.ТоварыНаСкладах.Создать(); Если Отчет.СохранитьОтчетВHTML(ИмяФайла) Тогда ДД = Новый ДвоичныеДанные(ИмяФайла); УдалитьФайлы(ИмяФайла); КонецЕсли; КонецЕсли; КонецЕсли; Возврат ДД;
Прокомментирую код. Когда мобильное приложение запрашивает произвольные данные (в виде файла) с идентификатором «REPORT_PRODUCTS_IN_STOK», в 1С выполняется отчет и результат его сохраняется во временный файл. Затем этот временный файл считывается как двоичные данные и передается мобильному приложению. Временный файл удаляется.
Как в данном случае генерируется html файл, нам не важно. Вы можете использовать штатный механизм 1С сохранения табличного документа в виде HTML или сформировать HTML вручную. Пример вывода можете посмотреть в конфигурации «FBA демо», отчет «Товары на складах».
С 1С всё, переходим к разработке мобильного приложения на Android.
Проектирование Android – приложения
Созданный в 1С шаблон Android-проекта импортируем в рабочее пространство Eclipse.
Запустите Eclipse и выполните импорт проекта: File > Import… В группе Android выберите элемент «Exists Android Code Into Workspace» нажмите Next, укажите путь к каталогу шаблона Android-проекта и нажмите Finish, новый проект будет добавлен в рабочее пространство. Если возникнут сложности см. здесь, процесс описан в картинках.
1. Создаем отчет «Финансовые показатели», источником данных для которого является таблица значений, полученная от 1С. Для этого добавьте новый класс ToChiefReport.java, вот полный исходный код:
Показать
Прокомментирую код. Абстрактный класс SimpleMapHtmlReport, от которого наследуется, предназначен для построения простого HTML отчета с таблицей из двух колонок.
Первые 2 метода getResIdIcon() и getResIdTitle() возвращают иконку и название нашего отчета для отображения в списке. В обработчике события «build» вызывается метод makeReport, в котором наша реализация компиляции отчета.
При построении отчета сначала устанавливается заголовок отчета и таблицы, затем все записи из локальной таблицы sqlite считываются как строки таблицы отчета. И наконец, в методе setTableData() устанавливаем данные для таблицы отчета. Уф, как сложно комментировать очевидные вещи.
2.Создаем второй отчет, здесь все еще проще:
Показать
3. Расширим предопределенную процедуру обмена с сервером 1С, т.е. добавим в нее еще один шаг — получение данных для нашего второго отчета в виде скомпилированного файла. Добавим класс MyExchangeTask наследник от ExchangeTask:
Показать
Для получения данных отчета используется метод веб-сервиса getLargeData, который в случае успеха сохраняет результат в файл по указанному пути. Обратите внимание на идентификатор ID_REPORT_PRODUCTS_IN_STOK, он должен быть таким же, как в 1С в методе ПодготовитьДвоичныеДанныеДляОтправки.
4. Вывод списка отчетов на главной форме. Откройте файл res activity_main.xml и добавьте listView в котором будет отображать список отчетов:
В MainActtiviy.java добавляем:
а) локальную переменную для списка
private ListView list;
б) метод инициализации
и вызов его в onCreate() после установки макета формы
setContentView(R.layout.activity_main); init();
в) метод инициализации списка отчетов
/* * Подготовить список отчетов */ private List createReportList() < Listlst = new ArrayList(); // Создать первый отчет, временный каталог где сохранен файл берем из // настроек IReport report = new ProductsInStokReport(new File(getAppSettings() .getCacheDir(), ProductsInStokReport.REPORT_FILE_NAME)); lst.add(report); // Создать и добавить в список прочие отчеты lst.add(new ToChiefReport()); >
г) процедуру запуска обмена по вашим правилам
/* * Запуск обмена по моим правилам. Обратите внимание, что в планировщике * (если установлен) обмен остался по стандартным правилам */ private void startExchangeMyRules(ExchangeVariant variant,boolean cancelable) < // хелпер для вызова методов web-сервиса WSHelper wsHelper = new WSHelper(getExchangeSettings()); MyExchangeTask task = new MyExchangeTask(variant, wsHelper, getHelper()); startExchange(task, cancelable); >
И изменяем вызов процедуры обмена startExchange(ExchangeVariant.FULL, true) в обработчике onOptionsItemSelected на startExchangeMyRules(ExchangeVariant.FULL, true).
Приложение готово, формы авторизации и настроек программы будут созданы автоматически, изменять их не будем.
Давайте проверим его на эмуляторе. Если вы нигде не ошиблись, приложение запустится. Однако, вместо окна авторизации будет отображено сразу окно настроек, так как не указаны данные авторизации (имя пользователя и пароль).
Укажите имя пользователя: ivanov
И пароль: 123456
Запустите базу 1С и откройте справочник «Мобильные сотрудники». В качестве мобильного устройства укажите предопределённый элемент «Эмулятор устройства», в табличную часть «Мобильные приложения» добавьте приложение «Рапорт руководителю» и установите идентичные имя и пароль пользователя.
Запустите на эмуляторе процедуру обмена (кнопка со стрелочкой «Вверх» на панели справа)
результат работы обмена выводится в уведомлении:
Нажмите на него для запуска вашего приложения (или для просмотра подробной информации об ошибке, если обмен завершился неудачно).
Проверим, что получилось. Кликните мышкой по отчету в списке:
Показать
Отлично! Отчеты выводятся, можно изменять масштаб по кнопке или жестами.
- диаграмма с использованием Google Chart Tools
- график с использованием jQuery плагина Plot
- вывод PDF-отчета внешним приложением (PdfReport.java)
Показать
Использование HTML для построения отчетов позволяет создавать весьма разнообразные отчеты, в т.ч. и с интерактивными элементами. Например, в одном нашем проекте используется вот такой отчет:
Показать
- для поля «Долг» используется условное цветовое оформление в зависимости от суммы;
- полный список неоплаченных накладных открывается только при нажатии на маркер «Все», по умолчанию отображаются только 4 последних.
И конечно, вы ничем не ограничены, можете использовать сторонние библиотеки для вывода отчетов и диаграмм, например achartengine или самостоятельно создать свой график/диаграмму (примеров полно, в т.ч. есть и в Android SDK).
На этом все, с другими примерами вы можете ознакомиться на сайте http://profi1c.ru.
В ближайшее время планируется добавить уроки по интерактивным элементам и адаптерам библиотеки FBA, а так же показать как работать с офф-лайн картами mapsforge.
Ложка дегтя
Продукт «FBA Toolkit» планируется распространять на коммерческой основе, сейчас он в статусе «демо-версии». Вы можете свободно использовать его для тестирования и изучения.
Ограничения:
- программа перестает работать по окончании срока демо-лицензии т.е. после 31.12.13;
- при запуске выводится уведомление:
В ближайшее время (не более месяца) будет коммерческая версия, информацию о стоимости и порядке лицензирования добавим на наш сайт.
Спасибо, что дочитали до конца. Готов ответить на ваши вопросы в комментариях как по 1С, так и по Android.
Источник: habr.com
ПЛАТФОРМА 1С: ПРЕДПРИЯТИЕ 8.3 КАК ИНСТРУМЕНТ РАЗРАБОТКИ МОБИЛЬНЫХ ПРИЛОЖЕНИЙ
Аннотация. В статье рассматривается актуальность мобильной платформы 1С: Предприятие 8.3. для разработки клиент-серверных приложений мобильной экосистемы. В рамках статьи рассматривается процесс разработки и размещения в магазине Google Play мобильного приложения «Телефонный справочник СГСПУ».
Ключевые слова: Мобильные приложения, Мобильная платформа 1С: Предприятие, Телефонный справочник.
В наше время мобильные телефоны заняли весомую нишу в нашем сознании. При помощи мобильного телефона можно делать все: начиная от чтения книг и заканчивая заключением важных сделок. Люди проводят огромное количество времени не с друзьями, не на работе, а с телефоном. Даже когда человек не пользуется телефоном, он живет своей жизнью, скачивает различную информацию для последующего использования. Сейчас, насколько бы хорошо не была компания, она будет значительно уступать конкуренту, который разрабатывает или вкладывается в разработку мобильных решений для своего бизнеса [2].
В нашем вузе до последнего момента не было ни одного мобильного приложения. Даже телефонный справочник на сайте университета было найти достаточно затруднительно. В рамках нашей научной работы мы решили исправить данную ситуацию. Для разработки мы решили использовать платформу 1С Предприятие как инструмент создания мобильных решений [5].
Мобильная платформа 1С:Предприятия 8 — это общее название технологии для создания приложений, которые работают на мобильных устройствах. Архитектура платформы представляет совокупность мобильной платформы и информационной базы. Информационная база представляет собой совокупность приложения и данных.
При установке приложения данные не сохраняются, их необходимо передать в мобильной устройство каким-либо способом. Для этого предлагаются разнообразные технологии, но мы остановились на использовании публичного веб-сервера, в рамках которого мы разместили специальным образом подготовленный файл. Это позволит не только достаточно легко интегрировать данные с сервера телефонного справочника, но и даст нам возможность вносить изменения в телефонный справочник университета без необходимости выпуска новой версии приложения в магазине Google Play [4].
Сам телефонный справочник будет состоять из трех объектов типа «Справочники». Создадим объекты «Телефонный справочник», «Должности» и «Отделы».
Рис. 1. Справочники информационный базы
Основная часть приложения будет сосредоточена в объекте «Телефонный справочник». В форме данного объекта мы разместим основной программный код. В связи с тем, что база данных у нас содержится в простом текстовом файле с разделителями, нам придется автоматизировать процесс построения реляционных связей между объектами нашей базы данных [3].
Для этого создадим функции «Загрузить отдел» и «Загрузить должность» (Рис. 2). Данная функция при анализе импортируемого файла ищет вхождение полного совпадения наименования отдела в соответствующем справочнике.
Рис. 2. Функция «Загрузить отдел»
Если информация будет найдена, то функция возвращает ссылку на полученный объект, если нет — создаст новый объект и вернет его ссылку вызывающей функции.
Рис. 3. Запрос по протоколу SSL к веб-серверу
Далее в функции «POSTЗапрос» осуществим процедуру подключения к веб-серверу. После успешного получения ответа от сервера осуществим запрос файла, содержащего информацию о телефонных номерах. Сохраним загруженный файл во временном хранилище.
Рис. 4. Загрузка данных телефонного справочника
Аналогичным образом проведем обход массива текстового файла с разделителем (Рис. 4). Логика функции следующая — если код существует, возвращаем объект информационной базы и меняем в нем значения полей из временного файла, если нет — загружаем данные из файла в базу данных. Таким образом, информация в базе данных мобильного приложения будет всегда находиться в актуальном состоянии, но при этом, если доступ к сети интернет будет ограничен, телефонный справочник будет эффективно работать и без него.
По умолчанию разработанная нами программа функционирует в рамках персонального компьютера для того, чтобы она могла заработать на мобильном устройстве ее необходимо специальным образом подготовить.
Для этого сотрудники фирмы 1С подготовили специальную конфигурацию «MobileAppMaker». Это приложением позволяет осуществить сборку мобильного приложения под все популярные мобильные платформы (Рис. 5).
Рис. 5. Конфигурация для сборки мобильных приложений
В результате сборки в соответствующей папке появляются четыре версии установочных пакетов с расширением «apk». В режиме отладки мы можем установить на свой телефон данную версию приложения, но в магазине Google Play она автоматически не появиться. Для размещения приложения в магазин нам необходимо зарегистрировать учетную запись разработчика, оформить карточку приложения и пройти достаточно длительную процедуру верификации.
Рис. 6. Мобильное приложение в магазине приложений Google Play
В результате через трое суток наше приложение стало доступно [1] в официальном магазине Google Play (Рис. 6). В рамках дальнейшей работы над этим приложением мы планируем автоматизировать процесс сбора данных с сайта телефонного справочника университета. Для этого лучше все подойдут возможности языка Python.
Список литературы
1. Приложения в Google Play — Телефонный справочник СГСПУ [Электронный ресурс]. URL: https://play.google.com/store/ apps/details?id=com.sseu.phones.sgspuhttps://spark.ru/user/126901/blog/67849/platforma-1s-predpriyatie-8-3-kak-instrument-razrabotki-mobilnih-prilozhenij» target=»_blank»]spark.ru[/mask_link]