Изучаем мобильную платформу 8.3.4: геопозиционирование

Публикация № 256078

Разработка - Работа с интерфейсом

android геопозиционирование google maps api

155
Блеск и нищета geo-инструментов мобильной платформы 8.3.4. Пишем письмо турецкому султану. Но Чекин, как в Foursquare уже реально!

Краткое содержание:

Вступление

Формулирем функциональные требования к гипотетическому мобильному приложению

Реализуем функциональные требования

Делаем выводы

PS1: Листинг скрипта карты Яндекс

PS2: Листинг процедуры определения расстояний

PS3: Листинг процедуры определения текущих геокоординат

Многие энтузиасты, за неимением штатного платформенного механизма, давно уже начали успешно внедрять в 1С-приложения гео-инструменты сторонних производителей: API Яндекс.Карт, API Google Карт. Скрипты этих API встраиваются в элемент управления типа «Поле HTML документа» интерфейсной формы как обычной, так и управляемой. Парой команд подавляются ошибки скрипта несовершенного платформенного браузера, и все выглядит вполне благопристойно. Причем отрисовку изображения можно готовить как заранее перед открытием формы, так и динамически в процессе работы пользователя с формой, программно добавляя или удаляя на карту различные объекты и действия (балуны, иконки, надписи, регионы, маршруты, центрирование, масштаб …), посылая java-команды через Документ.parentWindow.eval(). А самые продвинутые энтузиасты научились отлавливать события карты, например клики или перемещения балунов, забирая геокоординаты, в общем устраивать полноценную дуплексную связь между картой и 1С-приложением. Идиллия! (например, //clerk.excel2.ru/public/254764/)

И все ничего, кабы ни два обстоятельства:

  • пользовательское соглашение API Яндекс гласит: Сервис может использоваться Пользователем только в рамках сайтов или мобильных приложений, доступных для бесплатного открытого использования неограниченным кругом лиц. Сервис не может использоваться для проектов, требующих оплаты, или иным образом ограничивающих доступ к ним третьих лиц. Необходимость зарегистрироваться не считается ограничением доступа в рамках настоящего пункта.
  • пользовательское соглашение Google говорит примерно то же самое, но они предлагают коммерческую версию при превышении определенного суточного лимита запросов.

Т.е. API  карт обоих производителей можно использовать только при бесплатном и неограниченном доступе пользователей к карте, что в принципе невозможно из 1С-приложения, где каждая сессия платная. А вышеупомянутые энтузиасты по сути своей нарушители, и они об этом знают. А кто хочет это опровергнуть, пусть попробует опубликовать тиражный продукт - арбитражка обеспечена! Но мобильная платформа 1С пока остается бесплатной. Это нелицензируемое мобильное приложение, в простейшем случае оно может работать автономно, без подключения к серверу центральной базы, значит, никакие соглашения не нарушаются!

Едем дальше. Читаем описание изменений к платформе 8.3.3:

Для мобильной платформы реализовано поле HTML-документа. Поле HTML-документа обладает следующими особенностями:

  • Не поддерживаются свойства Документ и Вывод.

  • Событие ПриНажатии срабатывает только при попытке перехода на другую страницу. При этом все свойства параметра ДанныеСобытия, кроме Href, содержат значение Неопределено. Свойство Href содержит адрес, по которому выполняется попытка перехода.

Т.е. досылать команды через Документ.parentWindow.eval() пока нельзя и отлавливать события HTML-документа тоже. Возможно, просто не успели реализовать, а возможно для дополнительной популяризации нативного инструмента, который сам ничего из этого пока не умеет, но будущее покажет: просачиваются таки наши хотелки в зазеркалье или нет? :) Короче, на данный момент в мобильной платформе вообще нет обратной связи ни с какой картой, и это досадно, потому что лишает ее новых возможностей применения и дальнейшей популяризации!

Разбираемся далее. Почему разработчики 1С для Android-устройств выбрали именно Google maps API? История умалчивает, возможно,  для облегчения будущего выхода на мировой рынок, в чем я лично, как истинный 1С-евангелист нисколько не сомневаюсь! :) Но скорее всего именно из-за возможности использования коммерческой версии, которой у Яндекса увы нет. Для iOS-устройств особого выбора не было - только Apple MapKit. Но я далее буду рассматривать только Android-устройства как наиболее перспективные для российского бизнеса. Мой прогноз: большинство мобильных 1С-приложений будут писаться именно под Android, потому что:

  • цены на такие устройства доступнее, а ассортимент шире

  • процесс отладки проще: приложение можно выкладывать на устройство сразу после сохранения конфигурации. Что ни говори, а эмулятор никогда не заменит живой аппарат.

  • GooglePlay дешевле AppStore, а выпуск новых релизов быстрее

На этом заканчиваю теоретическое вступление, и перехожу к практической части статьи, предлагаю такой план действий:

  • сформулировать максимально прикладную задачу для автоматизации бизнеса мобильными средствами

  • постараться реализовать ее средствами, встроенными в платформу, сравнить с тем же самым на Yandex API

  • проанализировать, что получилось и выдать рекомендации 1С по дальнейшему развитию инструмента геопозиционирования

Формулируем задачу.

Представим себе компанию, оказывающую массовые недорогие услуги, короткие по времени, частично на регулярной основе по договору абонентского обслуживания, частично разовые, возникающие спонтанно, с разной степенью длительности и срочности. По городу постоянно шастают агенты компании, заезжают к клиенту, что-то там делают, подписывают таймшиты, фотографируют их, отправляют данные в интернет и уматывают к следующему клиенту. Где-то в офисе сидит диспетчер, который принимает заказы клиентов, распределяет наряды на выезд, а на основании фото-сканов подписанных тайм-шитов выставляет клиентам счета и акты. Агенты могут передавать в учетную базу не только время и состав работы, но и некоторые технические параметры, которые будут полезны для следующих выездов к этому клиенту. У каждого агента в начале дня на мобильном устройстве уже есть список нарядов, местоположение клиентов он видит на карте, и может нарисовать маршрут с расчетным временем передвижения между клиентами. И он готов по ходу дня принимать новые наряды, отказываться от старых и изменять предопределенные маршруты. Если это первый выезд к клиенту, агент может уточнить геокоординаты клиента и отправить в центральную базу. В офисе такой агент может появляться раз в неделю, а то и реже, все инструменты у него с собой. Ничего не напоминает? :) На самом деле это не обязательно 1С-франчайзинг, это могут быть любые ремонтники принтеров, кондиционеров, автомобилей, слесари, сантехники, электрики, уборщики, ревизоры, инспекторы электросчетчиков, торговые представители, проверяющие ассортимент своей продукции в розничных точках…

Формулируем обоснование для ЛПР (лиц, принимающих решения):

  • агент, используя мобильную навигацию, будет меньше тратить времени на дорогу, значит больше успевать

  • тайм-шиты будут доставляться в офис быстрее, значит быстрее будут выставляться счета и акты

  • техническая информация, доставляемая в офис станет точнее, т.к. будут использованы предопределенные классификаторы, значит в будущем будет меньше холостых выездов

Кстати, это хорошая практика - функциональные требования описывать языком сценарного поведения и снабжать технико-экономическим обоснованием на языке ЛПРов. ЛПРы не любят много читать, зато быстро выхватывают из контекста профит. Облегчите им работу, и они быстрее примут решение.

Переходим к этапу моделирования,  при подготовке требований к демонстрационному макету сформулируем ряд допущений и ограничений:

  1. в модели не будет механизмов обмена с центральной базой, поступление контактов и нарядов будет имитироваться программно

  2. в модели предусмотреть две карты, встроенную и Яндекс, что бы провести визуальное сравнение

  3. в мобильном устройстве может быть отключен или вообще отсутствовать GPS, в этом случае текущее местоположение определять по сотовой телефонии

  4. выводить список клиентов, в порядке увеличения расстояния от текущего местоположения (по аналогии Чекин в Foursquare)

  5. строковый адрес нового клиента преобразовать в геокоординаты, если не определяются, то предусмотреть возможность установить координаты текущего местоположения или с клика на карте

  6. предусмотреть цветовую градацию клиентов в журнале и на карте: выполненные или отмененные серым, сегодняшние зеленым, будущие желтым, просроченные красным

  7. предусмотреть возможность прокладывать маршрут к выбранному клиенту как от текущего местоположения, так и от ближайшей к клиенту станции метро

  8. предусмотреть возможность прикреплять к документу Наряд фотографии

Переходим к реализации задачи. Если вы еще ни разу не разрабатывали на мобильной платформе, но очень хотите, то вам для начала надо прочитать статью DirtiX: “Что такое мобильная платформа 1С и с чем ее едят?”//clerk.excel2.ru/public/242857/. Там есть все что нужно. Я остановлюсь только на некоторых, как мне кажется, важных моментах.

Для разработки и отладки ничего особенного не требуется! Запуск готового приложения на мобильном устройстве может происходить практически мгновенно после нажатия F7 в конфигураторе на вашем компе, если вы сделаете следующее:

  1. на своем компе поднимете web-сервер и настроите публикацию мобильного приложения

  2. установите и настроите на своем мобильном устройстве мобильную платформу (файл 1cem-arm.apk из дистрибутива мобильной платформы)

  3. теперь из под оболочки мобильной платформы ваша конфигурация моментально скачивается с web-сервера, налету компилируется и запускается в пользовательском режиме, лепота!

Но если вы хотите массово тиражировать свое мобильное приложение, то вам придется его собирать с помощью мобильной платформы, предварительно установленной и настроенной на вашем компе (детали см со следующего параграфа). А если вы планируете периодически выпускать новые релизы и автоматически заливать их всем вашим пользователям, то вам не обойтись без службы Google Play. Про настройку Google Play рассказывать не буду, там все интуитивно понятно. Единственная сложность чисто психологическая - один раз заплатить Гуглу 30$ за неограниченную возможность выкладывать свои приложения и релизы к ним!

Я использовал дистрибутив мобильной платформы 8.3.4.14: http://downloads.v8.1c.ru/get/Info/mobile/8_3_4_14/mobile.zip. Из него разворачиваем конфигурацию “Сборщик мобильных приложений” 1.0.2.8.

Первое что надо сделать - через “Сервис” настроить “Настройки приложения” и “Редактировать поставщика”. В контекстной помощи можно найти пути ко всем дистрибутивам, их надо скачать, установить и указать пути:

Все пути должны быть заполнены, даже если вы не будет использовать iOS. Чтобы не запутаться с путями, вот подсказка, что нужно Сборщику:

Каталог Android SDK должен содержать:
папку: \platforms\android-17\aux
файл: \platforms\android-17\build.prop
файл: \platforms\android-17\source.properties
файл: \platforms\android-17\source.properties
файл: \tools\source.properties

Каталог JDK должен содержать:
файл: \bin\jar.exe

Каталог Apache Ant должен содержать:
файл: \bin\ant.bat

Каталог PuTTy должен содержать:
файл: \pscp.exe
файл: \plink.exe
Но если вы в группе "Мобильные приложения" снимите галочку "Для ОС iOS", то достаточно указать пустую папку. 

Так же, в справочник “Мобильные платформы” надо загрузить zip-файл, в котором должны лежать папки “Android” и “iOS” из дистрибутива.

В справочнике “Мобильные конфигурации” создайте элемент и загрузите туда выгруженный из конфигуратора файл 1cema.xml.

В справочнике “Мобильные приложения” для каждого приложения надо создать сначала группу и заполнить интуитивно-понятные параметры, а под группой создать элемент - это и будет основной точкой сборки и выгрузки файла мобильного приложения.

Теперь внимание, достаточно важный момент! Пока вы запускали свое приложение из-под мобильной платформы на мобильном устройстве, встроенная карта работала нормально. Но если вы собранное мобильное приложение попытаетесь запустить как самостоятельное приложение, то встроенная карта отображаться не будет. Потому что для каждого мобильного приложения необходимо получить ключ карты у Google и ввести его в Сборщике в группе “Мобильные приложения” в поле “Ключ для работы с картами Google”. У мобильной платформы 1С для Андройда такой ключ есть. Но как получить свой ключ в Google нигде не написано. Я спрашивал у разработчиков 1С на партнерском форуме, в итоге пришлось самому разобраться:

  1. Авторизуемся на google.com

  2. Заходим на https://cloud.google.com/console/project и нажимаем CREATE PROJECT

  3. Заполняем Project name, Project ID, ставим галку “ have read and agree ...”. Имя должно быть уникальное, система сама подскажет.

  4. Дальше запускается механизм авторизации через SMS, если вы ее не проходили при создании google - аккаунта

  5. Дальше в вертикальном меню “APIs&auth” открываем дерево “APIs”, находим пункт “Google Maps Android API v2” и ставим STATUS = ON

  6. Дальше в меню “APIs&auth” открываем “Credentials” и нажимаем кнопку CREATE NEW KEY в боксе “Public API access”

  7. В промежуточном окне нажимаем “Android key”

  8. В следующем окне в поле ввода копируем из Сборщика “Параметр получения ключа для работы с картами Google” и нажимаем Create

  9. Теперь появился бокс “Key for Android applicaion”, а в нем нужный нам ключ “API key” примерно такого формата: AIzaSyAYHQodtybccavFJP0YLDwp35kZE2be5J8 

А вообще есть инструкция на английском языке https://developers.google.com/maps/documentation/javascript/tutorial, лучше ходить туда, т.к. за три месяца Гугл уже успел слегка поменять интерфейс, поэтому моя инструкция в скором времени может стать неактуальной. (За ссылку спасибо DitriX!)

Теперь что касается самого программирования. Все методы геокодирования выполняются только в обрамлении препроцессора “#Если МобильноеПриложениеКлиент Тогда … #КонецЕсли”. Изучите их описание в синтакс-помощнике в разделах:

“Общие объекты” - “Геопозиционирование”:

  • ИнформацияПровайдераГеопозиционирования

  • СредстваГеопозиционирования

  • ГеографическиеКоординаты

  • ДанныеМестоположения

  • ДанныеАдреса

И в “Глобальный контекст” - “Процедуры и функции работы с геопозиционированием”:

  • ПолучитьАдресПоМестоположению

  • ПолучитьМестоположениеПоАдресу

  • ПоказатьНаКарте

Честно говоря, возможностей пока мало, что называется для галочки. Вот все, что мы пока можем сделать:

  • определить текущие координаты мобильного устройства

  • перевести строковое представление адреса в географические координаты и обратно

  • вывести список точек на карту, причем надписи можно увидеть только по клику, а цвет и форма не кастомизируются

А хотелось бы делать то, что уже умеют карты Яндекс и Google в обычных и управляемых формах (но, как мы выяснили, не совсем легально!), в порядке убывания важности:

  • играть цветами и формами наносимых на карты объектов (например, не просто закрытый балун выводящий надпись по клику, а сразу надпись)

  • двигать объекты на карте и передавать в модуль формы новые геокоординаты, перехватывать клики как на карте так и на объектах

  • строить маршруты между точками и возвращать в модуль формы расстояния, причем как для автомобилей, так и для пешеходов

  • показывать пробки

  • показывать гео-слои (схема, спутник, гибрид, народная карта)

  • Ну и как бонус, поиметь функцию вычисления расстояния между двумя точками по прямой, хотя я и реализовал свою формулу, но зачем изобретать велосипед?

В итоге, вот список того, что получилось реализовать из требований к нашей задаче:

Задача

Встроенными средствами

Яндекс API

в мобильном устройстве может быть отключен или вообще отсутствовать GPS, в этом случае текущее местоположение определять по сотовой телефонии

да

-

выводить список клиентов, в порядке увеличения расстояния от текущего местоположения (по аналогии Чекин в Foursquare)

да

-

строковый адрес нового клиента преобразовать в геокоординаты,если не определяются, то предусмотреть возможность установить координаты текущего местоположения или с клика на карте

да, кроме клика на карте

нет
(но на ИС есть примеры решения)

предусмотреть цветовую градацию клиентов в журнале и на карте: выполненные или отмененные серым, сегодняшние зеленым, будущие желтым, просроченные красным

в журнале да, на карте нет

да

предусмотреть возможность прокладывать маршрут к выбранному клиенту как от текущего местоположения, так и от ближайшей к клиенту станции метро

нет

нет
(но на ИС есть примеры решения)

предусмотреть возможность прикреплять к документу Наряд фотографии

да

-

В приложении к этой статье два файла “checkin.cf” и “com.e1c.Checkin-arm.apk”. Скопируйте файл *.apk на устройство и запустите - произойдет установка приложения. “checkin.cf” - это конфигурация для платформы 8.3.4. 

Все управление я разместил в одном окне - журнале документов "Наряды". Изначально база пустая, заполнение демонстрационными данными - по кнопке “Заполнить демо-данные”.

Автоматическое преобразование адресов в геокоординаты там, где они еще не заполнены - по кнопке “Заполнить гео координаты”. Если геокоординаты определены, в журнале Наряды в колонке "Гео" вместо серого шарика появится зеленый. Если все еще серый, тогда можно зайти в Наряд, потом в Адрес и нажать кнопку "Установите текущие координаты".

В окне журнала Наряды в самом низу есть поле "Текущие координаты". Его можно заполнить нажатием на кнопку “Текущее местоположение”.

Нажатие на кнопку “Checkin” выводит список нарядов в обратном порядке удаленности адреса от текущего местоположения, и в этом списке можно одним нажатием открыть документ Наряд.

Так же есть кнопки “Показать на встроенной карте” и “Показать на Yandex карте”. Кстати, для карты Яндекс я использовал новомодный API 2.1-beta. Про сравнение с прошлой версией API 2.0 можно почитать здесь: http://api.yandex.ru/maps/api21.xml

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

Спасибо за внимание, смотрите скриншоты, скачивайте архив, ставьте на мобильное устройство, дорабатывайте конфигурацию, пишите свои пожелания 1С-разработчикам в форуме под статьей. Надеюсь, письмо дойдет! ;)

Barelpro.

 

PS1. Выкладываю скрипт отображения карты Яндекс:

<!DOCTYPE html>
<
html >
<
head>
<
meta http-equiv="content-type" content="text/html; charset=utf-8"/>
<
script src="http://api-maps.yandex.ru/2.1-dev/?lang=ru-RU&load=package.full"" type=""text/javascript">script>
<
script type="text/javascript">

//убираем глюк встроенного в платформу браузера: ошибка сценария Script error при повторном отрытии окна
window.onerror = myOnError;
function myOnError(msg, url, lno) {return true}

var myMap;
ymaps.ready(function ()
   
{
    myMap = new ymaps.Map('YMapsID',
       
{
        center:[//Здесь добавим текущие координаты],
       
zoom://Здесь установим зум,
       
controls: ['geolocationControl', 'typeSelector', 'trafficControl'],
       
behaviors:['default','scrollZoom']
       
});
//Здесь добавим точки
});

script>

<
style type="text/css">
   
html, body {
        width: 100%;
       
height: 100%;
   
}
style>

head>
<
body>
    <
div id="YMapsID" style="width:100%;height:100%;"div>
body>
html>

 

Вместо тега "//Здесь добавим точки" я программно вставляю такой код:

 

Для А = 0 ПО Буфер.Количество() - 1 Цикл

   
Строка = Буфер[А];

    Если
Строка.Широта <> 0 И Строка.Долгота <> 0 Тогда

       
ТекстСкриптаДобавленияТочекНаКарту = ТекстСкриптаДобавленияТочекНаКарту + "
                |myPlacemark"
+ А + " = new ymaps.Placemark(
                |       ["
+ СтрЗаменить(Строка.Широта, ",", ".") + ", " + СтрЗаменить(Строка.Долгота, ",", ".") + "],
                |       {balloonContent : '"
+ Строка.Представление + "'},
                |       {preset: '"
+ Строка.Цвет + "', draggable: 'true'}
                |   );
                |myMap.geoObjects.add(myPlacemark"
+ А + ");
                |"
;

    КонецЕсли;

КонецЦикла;

 

В качестве значений Строка.Цвет я использую:

  • islands#grayDotIcon
  • islands#grayDotIcon
  • islands#darkGreenDotIcon
  • islands#redDotIcon

А вообще все возможные балуны можно посмотреть здесь: http://api.yandex.ru/maps/doc/jsapi/beta/ref/reference/option.presetStorage.xml

 

PS2. Выкладываю процедуру рассчета расстояния между двумя точками по прямой по заданным координатам в градусах.

Было взято на Мисте и слегка подправлено:

 

Функция РасстояниеПоКоординатам(StartLat, StartLong, EndLat, EndLong)
   
// Передаваемые широта/долгота в градусах и сотых долях
    //StartLat: double; // Начальная широта
    //StartLong: double; // Начальная долгота
    //EndLat: double; // Конечная широта
    //EndLong: double; // Конечная долгота

    //// Переменные, используемые для вычисления смещения и расстояния
    //fPhimean: Double; // Средняя широта
    //fdLambda: Double; // Разница между двумя значениями долготы
    //fdPhi: Double; // Разница между двумя значениями широты
    //fAlpha: Double; // Смещение
    //fRho: Double; // Меридианский радиус кривизны
    //fNu: Double; // Поперечный радиус кривизны
    //fR: Double; // Радиус сферы Земли
    //fz: Double; // Угловое расстояние от центра сфероида
    //fTemp: Double; // Временная переменная, использующаяся в вычислениях
    //Distance: Double; // Вычисленное расстояния в метрах
    //Bearing: Double; // Вычисленное от и до смещение


    // Константы, используемые для вычисления смещения и расстояния
   
D2R = 0.017453; // Константа для преобразования градусов в радианы
   
R2D = 57.295781; // Константа для преобразования радиан в градусы
   
a = 6378137.0; // Основные полуоси
   
b = 6356752.314245; // Неосновные полуоси
   
e2 = 0.006739496742337; // Квадрат эксцентричности эллипсоида
   
f = 0.003352810664747; // Выравнивание эллипсоида

   
fdLambda = (StartLong - EndLong) * D2R;
   
fdPhi = (StartLat - EndLat) * D2R;
   
fPhimean = ((StartLat + EndLat) / 2.0) * D2R;

   
// Вычисляем меридианные и поперечные радиусы кривизны средней широты
   
fTemp = 1 - e2 * (Pow(Sin(fPhimean), 2));
   
fRho = (a * (1 - e2)) / Pow(fTemp, 1.5);
   
fNu = a / (Sqrt(1 - e2 * (Sin(fPhimean) * Sin(fPhimean))));

   
// Вычисляем угловое расстояние
   
fz = Sqrt(Pow(Sin(fdPhi / 2.0), 2) + Cos(EndLat * D2R) * Cos(StartLat * D2R) * Pow(Sin(fdLambda / 2.0), 2));

   
fz = 2 * ASin(fz);

   
// Вычисляем смещение
   
fAlpha = Cos(EndLat * D2R) * Sin(fdLambda) * 1 / Sin(fz);
   
fAlpha = ASin(fAlpha);

   
// Вычисляем радиус Земли
   
fR = (fRho * fNu) / ((fRho * Pow(Sin(fAlpha), 2)) + (fNu * Pow(Cos(fAlpha), 2)));

   
// Получаем смещение и расстояние
   
Distance = (fz * fR);

    Возврат
Distance/1000;

КонецФункции

 

PS3. Выкладываю процедуру определения текущих геокоординат. Код оптимизировался на основании 2-недельных испытаний на планшете Samsung Galaxy Tab3.

&НаКлиенте
Функция ОпределитьТекущиеГеокоординаты(ТекущееМестоположение) Экспорт

   
#Если МобильноеПриложениеКлиент Тогда

       
ТекущийПровайдер = "gps";

        Попытка

           
ДМ = СредстваГеопозиционирования.ПолучитьПоследнееМестоположение(ТекущийПровайдер);

        Исключение

           
ДМ = Неопределено;

        КонецПопытки;

        Если
ДМ = Неопределено Тогда

           
ТекущийПровайдер = "network";

            Попытка

               
ДМ = СредстваГеопозиционирования.ПолучитьПоследнееМестоположение(ТекущийПровайдер);

            Исключение

               
ДМ = Неопределено;

            КонецПопытки;

        КонецЕсли;

        Если
ДМ = Неопределено Тогда

            Возврат Неопределено;

        КонецЕсли;

        Если
ТекущаяДата() - МестноеВремя(ДМ.Дата) > 300 Тогда

           
СредстваГеопозиционирования.ОбновитьМестоположение(ТекущийПровайдер, 5);
           
ДМ = СредстваГеопозиционирования.ПолучитьПоследнееМестоположение(ТекущийПровайдер);

        КонецЕсли;

       
ДА = ПолучитьАдресПоМестоположению(ДМ.Координаты);
        Если
ДА = Неопределено Тогда

           
ТекущееМестоположение "Lat: " + ДМ.Координаты.Широта + ", Lon: " + ДМ.Координаты.Долгота;

        Иначе

           
ТекущееМестоположение = СтрЗаменить(ДА.Представление, Символы.ПС, ", ");

        КонецЕсли;

       
ТекущееМестоположение = ТекущееМестоположение + "Date: " + МестноеВремя(ДМ.Дата) + ", Provider: " + ТекущийПровайдер;

        Возврат
ДМ.Координаты;

   
#Иначе

       
Возврат Неопределено;

   
#КонецЕсли

КонецФункции

155

Скачать файлы

Наименование Файл Версия Размер
Демопример геокодирования.rar
.rar 21,64Mb
26.05.17
200
.rar 21,64Mb 200 Скачать

Специальные предложения

Комментарии
Избранное Подписка Сортировка: Древо
1. Kaliinka 14.02.14 22:40 Сейчас в теме
Глубоко! Свежо! Блестяще!
Прикрепленные файлы:
2. Kaliinka 14.02.14 22:49 Сейчас в теме
Ой! То есть актуально, подробно, оригинально! Вот что я хотела сказать.
3. barelpro 1048 14.02.14 23:17 Сейчас в теме
4. krolya 287 15.02.14 09:30 Сейчас в теме
(2) KaKalinka,

Жжошь :) Но в принципе поддерживаю :)
5. DitriX 1713 16.02.14 16:27 Сейчас в теме
все круто. Только есть пару моментов:
- PuTTY можно и не качать, достаточно выбрать любой пустой каталог. Только не забываем снимать галочку с компиляции под иОСь.
- про гугл апи, стоило сказать, что 1С использует старый апи 2 версии. Но есть еще и 3 версия. Главное отличие в том, что в 3 версии, при использовании бесплатных продуктов - не используются ключи. Но, так как 1С юзает v2, то их надо получить, я консультировался у гугла, и они сказали что все есть по этой ссылке https://developers.google.com/maps/documentation/javascript/tutorial, и, желательно, кидать эту ссылку, а не описывать поэтапность действий, так как гугл сейчас сильно меняет разные сервисы, и ваша статья - потеряет актуальность. По сему - укажите линк на этот ресурс.

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

А вообще - Жирный плюс.
kamel; Liris; Bachi; Redokov; Spiller07; JesteR; shkl1; Feelthis; awk; barelpro; +10 Ответить
6. barelpro 1048 16.02.14 20:41 Сейчас в теме
(5) DitriX, спасибо за жирный плюс, взаимно! Я именно в вашей статье прочитал про публикацию конфигурации на веб-сервере и закачку ее на мобильную платформу на устройстве. До этого как дятел создавал файл apk. В очередной раз убеждаюсь - RTFM ))))

Про инструкцию про получение ключа карты согласен, за три месяца, как я первый раз получал, интерфейс на гугле поменялся. Но актуальность моя статья потеряет раньше, сразу как 1С начнет развивать геоинструментарий. По крайней мере очень на это надеюсь!

Про батарейный жор пока ничего не знаю. Я как раз сейчас запускаю проектик, будет бегать человек 10, спрошу у них, соберу статистику, если будет проблема, тогда будем бороться.

А вообще, приятно пообщаться с коллегой в теме ;)

PS, почему 1С использует старый API Map Google тоже не понимаю. Может, чтобы было куда расти? ;)
7. flyer 222 16.02.14 21:41 Сейчас в теме
может про intenter ведете разговор? за статью плюс. нравиться что народ подхватывает идеи 1с мобайл.
8. barelpro 1048 16.02.14 22:29 Сейчас в теме
(7) flyer, почитал про intenter, плюсанул! :) Звуки и вибрационные сигналы расширяют интерфейсные возможности 1С!

а с гироскопом не пробовали поиграть? например, возвращать в 1С внешнее событие - "встряхивание" устройства
9. flyer 222 17.02.14 12:59 Сейчас в теме
неа не пробовал. хотелось ее развивать но руки уже не доходят. возвращать пока не знаю как.
10. vano-ekt 526 17.02.14 13:17 Сейчас в теме
ну всё, битовским сервис-инженерам спуска теперь не будет :-D
shkl1; Feelthis; barelpro; +3 Ответить
11. barelpro 1048 17.02.14 13:37 Сейчас в теме
(10) vano-ekt,

Точно!

Только поправка, не всем БИТовским, пока только Савеловским! ;)
12. maxx 826 17.02.14 14:02 Сейчас в теме
Спасибо, интересно.

Обязательно разберусь с вашими идеями, т.к. уже есть проектик, где 10 человек бегают с планшетами по городу и в онлайне передают данные.
barelpro; +1 Ответить
13. _LEV_ 20.02.14 00:01 Сейчас в теме
Спасибо!! Зачетно написано.
14. majmyl 230 20.02.14 15:53 Сейчас в теме
Млиин, шо то плюсануть не получается!!! Спасибо за труд!
15. barelpro 1048 20.02.14 16:13 Сейчас в теме
(14) majmyl, а я вам плюсовал! ;)
16. majmyl 230 21.02.14 08:43 Сейчас в теме
(15) ты не подумай, нет. Я не из жадности или вредности, просто глючит сайт. У меня даже комментировать до вчерашнего дня не получалось и это было не из-за браузера. Спасибо тех. поддержке, исправили глюк. Сейчас поставлю Вам заслуженный плюс!
17. majmyl 230 21.02.14 08:44 Сейчас в теме
18. ejik2012 21.02.14 15:55 Сейчас в теме
Спасибо! Статья супер. Интересно, что нового будет в 8.3.5.
19. barelpro 1048 21.02.14 16:31 Сейчас в теме
(18) ejik2012,

осталось недолго ждать:

Информация о планируемом релизе

Номер версии 8.3.5
Ориентировочная дата выхода 21.03.14
Дата обновления плановых данных 17.02.14
20. victor-tm 25.02.14 21:59 Сейчас в теме
Ориентировочно, сколько может стоить работа программиста, если решить вышеуказанную задачу для 2-х водителей с планшетами на LTE интернете?
21. victor-tm 25.02.14 22:09 Сейчас в теме
Точнее в домашней сети по wifi загружаем файл с контактами, потом курьер\водитель нажимает кнопку показать на карте и потом построить маршрут с пробками. Едет по встроенной, выкачанной для скорости, яндекс (гугл) карте. После выполнения задания ставит отметку выполнено. В некоторых пунктах фотографирует накладную отгрузки и отправляет по е-мейлу (сабджект письма проставляется номером заказа) встроенными средствами.
Вот. Цена такого мобильного приложения цену имеет?
:-)
22. barelpro 1048 25.02.14 22:47 Сейчас в теме
Цена разработки от количества водителей не зависит :)
Текущие возможности мобильной платформы таковы, что все поделки на ее основе можно воспринимать пока как лабораторный эксперимент или как бесплатный боковичок в крупном проекте. Самое дорогое - это время, затраченное на поиски разработчика. :)
23. victor-tm 26.02.14 12:59 Сейчас в теме
В 1С все разработки можно воспринимать как эксперимент. Настройки- это ведь хлеб программистов. Просто кто-то идет проторенной дорожкой, а кто-то не боится ставить эксперименты.
У нас в компании все инновационно. Показал директору эту статью, и сразу вопрос - сколько стоит.
Если есть энтузиаст, готовый взяться и попробовать на живой фирме, мы были бы рады.
Кстати, у нас есть часть разработок, которые будут интересно потом внедрить у других клиентов и которыми мы готовы поделиться с разработчиком.
ТЗ максимально простое: закачка в планшет(txt), построение маршрута, отчет (не по всем, а только по транспортным компаниям) в виде фото транспортной накладной по электронке (на которую андроит настроен в плей-маркете или любую).
Никаких цветных балунов, планирования, передвижения балунов на карте.
У нас водители просят навигаторы с пробками и есть потребность в автоматической пересылке транспортных накладных клиенту.
Если бюджет бюджетный, готовы к работе.
24. barelpro 1048 26.02.14 14:16 Сейчас в теме
(23) victor-tm,
я думаю вопрос "сколько стоит" для такого ТЗ пока преждевременный. Вам надо найти грамотного постановщика. Он проведет опрос, напишет фукциональные требования, причем языком, понятными и для заказчика и для разработчика. Разработчик посмотрит, внесет свои коррективы. Как только ФТ будет согласовано и разработчик придумает архитектуру решения в свей голове, можно говорить о цене.

Мой совет, откройте на форуме топик "ищу разработчика на мобильной платформе". Так быстрее.
25. mzelensky 52 01.03.14 20:22 Сейчас в теме
Мучаюсь с мобильным приложением. Уперся в очень элементарный вопрос, который не могу решить. Мне нужно указать файл (точнее путь к нему). В обычном режиме делается через

ДиалогВыбораФайла(РежимДиалогаВыбораФайла.Открытие)

Но в мобильном приложении НЕТ такого. И никак не могу найти аналог. Как все-таки поступить???
26. Широкий 687 03.03.14 19:20 Сейчас в теме
А я уперся в то, что в мобильном приложения нет нахождения элемента справочника по подстроке. Ищет только по начальным символам, зараза.
Пришлось придумать дикие костыли
27. EugenLiquor 07.03.14 11:31 Сейчас в теме
Интересная статья, спасибо автору. Пришлось чуть помучатся, дабы реализовать. Но интересна задумка!
28. DitriX 1713 11.03.14 00:17 Сейчас в теме
Что то ни один адрес не находит, у вас такая же фигня?
ПолучитьАдресПоМестоположению
29. Dimon93dimon 28.03.14 14:23 Сейчас в теме
Кстати, если чуть чуть изменить скрипт, то можно будет помимо точек прокладывать маршрут.
30. eugen91 03.04.14 17:07 Сейчас в теме
Появилась ли возможность прокладывать маршрут ?
Очень полезной оказалась бы функция.Водители были бы очень довольны.
31. Широкий 687 23.06.14 15:31 Сейчас в теме
PS3. Выкладываю процедуру определения текущих геокоординат. Код оптимизировался на основании 2-недельных испытаний на планшете Samsung Galaxy Tab3.

Юмора не понял, обновляешь местоположение только после 5 минут. Почему не сразу?
При этом привязываешься ко времени самого планшета - оно может быть совершенно произвольным.

ОбновитьМестоположение - это как бы функция, и она отвечает смог ли провайдер что нить сделать. И таймауты воткнуть, чтобы 1с от gps смогла отвязаться, если совсем беда пошла.
32. Rustavelli 17 03.07.14 11:33 Сейчас в теме
доброго дня! подскажите в чем загвоздка,
	Провайдер = СредстваГеопозиционирования.ПолучитьСамогоТочногоПровайдера();
		Если СредстваГеопозиционирования.ОбновитьМестоположение(Провайдер, 5) Тогда

Возвращает значение Ложь, и так на нескольких устройствах, а если параллельно запустить программу Fake jps, то все срабатывает..
33. OrsoBear 10.12.14 08:56 Сейчас в теме
Есть телевизор, у которого встроен андроид.
Интересно, поддерживается ли платформа такие большие разрешения экранов?
Хочу вывести текущие машины, чтобы по карте катались.
uncle_Vasya; +1 Ответить
34. TreeDogNight 16 28.07.15 11:55 Сейчас в теме
Блин, очень нужна эта разработка, уже неделю парюсь с этими картами. Как можно приобрести Старт мани, не покупая абонимент?
35. Al-77 65 26.08.15 16:22 Сейчас в теме
Добрый вечер. не подскажите возможно реализовать обратную связь от карт? допустим показали точки. кликаем на любую точку и тут происходит открытия заказа или еще что либо?
37. AganinEvgeniy 2 17.07.17 11:25 Сейчас в теме
(35) Доброго времени суток. Подобное возможно. Во всяком случае я реализовал при клике на карте, возвращать в приложение координаты точки. Проблема лишь в том, что 1С отрабатывает нажатие на html поле, только переход на новую страницу. Я сделал костыли, передавая ссылку http://, а дальше уже координаты. И в процедуре при нажатии на поле формы просто отбрасываю первые символы и получаю координаты в виде текста через параметр ДанныеСобытия.href:
"СтрокаПути = СтрЗаменить(Лев(Прав(ДанныеСобытия.href, СтрДлина(ДанныеСобытия.href)-7),СтрДлина(Прав(ДанныеСобытия.href, СтрДлина(ДанныеСобытия.href)-7))-1),"%2C",",");"
Ну а дальше уже простая работа над строкой.
39. Aero 26 12.03.18 16:23 Сейчас в теме
(37)
http://
Добрый день. Мне надо при клике по карте (2gis, yandex, google, пр.) получить координаты, которые можно вытянуть из адресной строки (если работать в обычном браузере).
Я так понимаю, вы написали как это сделать, но у меня ничего не получилось. Можете ли подробней описать, что необходимо сделать?
1) Отображается карта, кликаю (само собой ничего не происходит, т.к. работаю в мобильном приложении), далее ставлю ссылку "http://" - ничего не происходит.
2) Ставлю другую ссылку, событие ПриНажатии срабатывает, но в ДанныеСобытия.href содержится строка из новой ссылки, а мне надо из предыдущей.
3) Если кратко - я должен ткнуть по карте, а 1С должна получить координаты.
Спасибо.
40. AganinEvgeniy 2 15.03.18 21:17 Сейчас в теме
(39)
Можете ли подробней описать, что необходимо сделать?

В html коде страницы у меня есть переменная:
new_a2 = document.createElement('a');
new_a2.href="http://" + mEvent.getGeoPoint();
В форму добавлен реквизит HTML с типом строка, на форме разместил его с видом "Поле HTML документа". У которого есть событие "При нажатии". Там происходит основная обработка:
&НаКлиенте
Процедура HTMLПриНажатии(Элемент, ДанныеСобытия, СтандартнаяОбработка)
#Если МобильноеПриложениеКлиент Тогда
СтандартнаяОбработка = Ложь;
ОформитьЗаписьВНужныйРеквизит(Строка(ДанныеСобытия.href));
#КонецЕсли
КонецПроцедуры

Там кода чуть больше, но суть такая.
41. AganinEvgeniy 2 15.03.18 21:21 Сейчас в теме
(39)
Мне надо при клике по карте

Забыл написать, что весь код страницы у меня свой. Написан был на основании яндекс.апи + джаваскрипт.
Вот сам код добавления обработчика нажатия на карту:
// Создание обработчика события Click для карты
YMaps.Events.observe(map, map.Events.Click, function (map, mEvent) {
var placemark = new YMaps.Placemark(mEvent.getGeoPoint());
map.addOverlay(placemark);
//alert('1');
new_a2 = document.createElement('a');
new_a2.href="http://" + mEvent.getGeoPoint();////'Зафиксировать координаты';
new_a2.Name= "favorite_color";
var textNode = document.createTextNode(mEvent.getGeoPoint());
new_a2.appendChild(textNode);
document.body.replaceChild(new_a2, new_a);
});
36. sanek23 01.09.16 09:00 Сейчас в теме
Кто подскажет, скачал я эту обработку, а на телефоне не открывается сама карта? просто пустой экран
38. PROF1L 12 06.12.17 07:45 Сейчас в теме
А маршрут можно построить и вести по маршруту (как например яндекс навигатор)?
42. kamel 18.06.19 08:48 Сейчас в теме
Очень полезно,спасибо большое
43. Veleslav87 05.08.19 16:16 Сейчас в теме
Добрый день. Что я делаю не так?

#Если МобильноеприложениеКлиент Тогда
ДанныеМестоположения = Неопределено;
Провайдер = СредстваГеопозиционирования.ПолучитьСамогоЭнергоЭкономичногоПровайдера();
Провайдер1 = СредстваГеопозиционирования.ПолучитьСамогоТочногоПровайдера();
Если СредстваГеопозиционирования.ОбновитьМестоположение(Провайдер1.Имя, 20) Тогда
ДанныеМестоположения = СредстваГеопозиционирования.ПолучитьПоследнееМестоположение(Провайдер1.Имя);
КонецЕсли;

***
Провайдеров находит, но местоположение не находит, таймаут кончается и всё(
открываю тут же карты отдельно и все определяется! Я уже на улицу выходил, бродил и безуспешно.
помогите плиз кто сталкивался в чем затык.
Оставьте свое сообщение

См. также

Альтернативный способ добавления элементов и реквизитов на формы 29

Инструменты и обработки Программист Внешняя обработка (ert,epf) v8 ERP2 УТ11 Россия Абонемент ($m) Работа с интерфейсом

Предлагаю альтернативный вариант добавления динамически создаваемых элементов и реквизитов на форму.

1 стартмани

09.09.2019    2366    4    bmk74    0       

Удобный выбор из таблицы/дерева в УФ 61

Инструменты и обработки Программист Внешняя обработка (ert,epf) v8 v8::УФ 1cv8.cf Абонемент ($m) Практика программирования Работа с интерфейсом Разработка

Выбор из таблицы значений или дерева значений в выпадающем списке рядом с полем ввода - УФ, быстро и просто!

1 стартмани

12.08.2019    2881    4    Yashazz    18       

[Механизм интерфейса] Свой флажок (чекбокс) 109

Инструменты и обработки Программист Конфигурация (md, cf) v8 1cv8.cf Абонемент ($m) Работа с интерфейсом

Создадим свой флажок для интерфейса, используем простой универсальный алгоритм.

1 стартмани

09.08.2019    4099    4    rpgshnik    37       

Отбор на управляемой форме из списка значений 41

Инструменты и обработки Программист Внешняя обработка (ert,epf) v8 v8::УФ 1cv8.cf Абонемент ($m) Практика программирования Работа с интерфейсом Разработка

Пример простого удобного отбора любых данных ссылочного типа на управляемой форме. Работа обработки проверена на релизе: 1С:Предприятие 8.3.13.1513.

1 стартмани

09.08.2019    4187    4    nagaitseff    6       

Изменяющееся контекстное меню в 1С 8.3 44

Статья Программист Архив с данными v8 v8::УФ Абонемент ($m) Практика программирования Разработка Работа с интерфейсом

В одной практической задаче мне пришлось разрабатывать контекстное меню таблицы управляемой формы, которое должно было меняться в зависимости от данных, находящихся в этой таблице. Ниже приведен мой способ решения этой задачи.

1 стартмани

06.08.2019    4227    1    signum2009    14       

"Мобильный ТСД" - инвентаризация и сбор штрихкодов для iOS и Android 21

Инструменты и обработки Программист Пользователь Расширение (cfe) v8 v8::Mobile Розница УНФ ERP2 УТ11 КА2 Розничная и сетевая торговля (FMCG) Оптовая торговля, дистрибуция, логистика УУ Монитор заказов Оптовая торговля Розничная торговля Ценообразование, анализ цен Абонемент ($m) Внешние источники данных Сканер штрих-кода Терминал сбора данных Работа с интерфейсом Мобильная разработка

Простой мобильный терминал сбора данных для iOS и Android, не требующий сложных настроек и установки дополнительных программ. Для выгрузки базы штрихкодов и загрузки собранных штрихкодов в документы учетной системы используется Яндекс Диск или облачный сервис и расширение конфигурации. Работает с конфигурациями Розница 2, УНФ 1.6, УТ 11, ERP, КА2.

3 стартмани

22.04.2019    9696    51    suepifanov    61       

Шпаргалка разработчика для работы с формами 23

Отчеты и формы Программист Архив с данными v8 Россия Абонемент ($m) Работа с интерфейсом

Сборник помогает быстро освоить встроенный язык и средства конфигурирования при разработке обычных и управляемых форм.

3 стартмани

31.10.2018    7824    68    ELAM    3       

Открывашка ячеек таблиц 85

Инструменты и обработки Программист Расширение (cfe) v8 1cv8.cf Абонемент ($m) Работа с интерфейсом

Глобальное сочетание клавиш для открытия объекта по ссылке из текущей ячейки любой таблицы в большинстве управляемых форм

1 стартмани

27.10.2018    9206    11    tormozit    28       

Визуализация событий на временной шкале средствами "Поле HTML документа" 165

Инструменты и обработки Программист Внешняя обработка (ert,epf) v8 1cv8.cf Абонемент ($m) Работа с интерфейсом

Интересный способ наглядно отобразить события на временной шкале. Например, может быть применен для красивого вывода документов по клиенту. Тестировалось на платформе 8.3.12.1469

1 стартмани

31.07.2018    13838    127    Plotks2017    24       

Продвинутое рисование в табличном документе (стрелок и не только) 73

Инструменты и обработки Программист Внешняя обработка (ert,epf) v8 Абонемент ($m) Практика программирования Работа с интерфейсом

Вспоминаем геометрию и основы компьютерной графики. Матрицы и аффинные преобразования на плоскости.

1 стартмани

24.07.2018    8050    16    WalterMort    27       

Работа с данными выбора 38

Инструменты и обработки Программист Архив с данными v8 Россия Абонемент ($m) Практика программирования Работа с интерфейсом

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

1 стартмани

17.07.2018    19598    13    kalyaka    15       

Управление состоянием формы через конечный автомат 81

Статья Программист Конфигурация (md, cf) v8 Россия Абонемент ($m) Практика программирования Работа с интерфейсом

Взаимодействие пользователя с интерфейсом приводит к изменению состояния формы и её элементов. Элементы отражают текущее состояние формы через свойства: видимости, доступности, оформления, текста заголовка и т.д. Даже при небольшом количестве элементов количество возможных состояний формы может быть достаточно большим. Необходимость учета всех состояний формы порождает сложные алгоритмы настройки элементов. В статье рассматривается алгоритмическое решение перехода к состоянию формы с использованием функционального подхода на основе декларативного описания

1 стартмани

19.06.2018    9908    11    kalyaka    35       

Иерархическая диаграмма 42

Инструменты и обработки Программист Бизнес-аналитик Руководитель проекта Внешняя обработка (ert,epf) v8 1cv8.cf Абонемент ($m) Работа с интерфейсом

Концепция диаграммы по иерархической структуре данных, например по номенклатуре (продажи или остатки на складах).

2 стартмани

17.06.2018    7132    14    DrAku1a    4       

Программная работа с графическими схемами. Готовое решение 39

Инструменты и обработки Программист Внешняя обработка (ert,epf) v8 1cv8.cf Абонемент ($m) Инструментарий разработчика Универсальные обработки Работа с интерфейсом

Работоспособное, проверенное на практике, простое и удобное программное управление графическими схемами.

1 стартмани

18.02.2018    11375    16    Yashazz    13       

Тестирование интерфейса в обычном приложении 8.2 при помощи SikuliX 105

Инструменты и обработки Системный администратор Программист Архив с данными v8 1cv8.cf Windows Абонемент ($m) Инструментарий разработчика Работа с интерфейсом

Как же не хватает клиента тестирования на платформе 8.2. Не кликнешь на кнопку, не выберешь из списка, не проверишь видит ли надпись пользователь. Воспользуемся внешним инструментом SikuliX, который позволит нам протестировать функционал форм. Данный инструмент легко встраивается в линию сборки и может "дружить" с уже известным многим Open-source продуктами.

1 стартмани

03.01.2018    19558    2    kraynev-navi    40       

Программное формирование форматированной строки в стиле html+inline CSS 52

Инструменты и обработки Программист Внешняя обработка (ert,epf) v8 1cv8.cf Абонемент ($m) Работа с интерфейсом Инструментарий разработчика

Если вам приходилось работать с форматированными строками программно, то вы знаете, какая это боль. Данное решение облегчает программное формирование таких строк.

1 стартмани

18.11.2017    19173    24    bonv    5       

Размеры управляемой формы 100

Статья Программист Внешняя обработка (ert,epf) v8 1cv8.cf Абонемент ($m) Практика программирования Работа с интерфейсом Универсальные функции

Как рассчитать ширину и высоту управляемой формы или отдельного элемента, чтобы адаптировать интерфейс программно при их изменении.

1 стартмани

08.10.2017    17568    46    json    8       

Программное создание элементов графической схемы (через XSLT) 57

Инструменты и обработки Программист Внешняя обработка (ert,epf) v8 1cv8.cf Абонемент ($m) Практика программирования Работа с интерфейсом

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

1 стартмани

20.07.2017    13861    49    lazarenko    16       

Расширенная настройка динамического списка УФ 115

Инструменты и обработки Программист Расширение (cfe) v8 v8::УФ 1cv8.cf Абонемент ($m) Работа с интерфейсом

Открывая управляемую форму выбора и не увидев там видимых в форме списка элементов, часто хочется узнать причину их отсутствия там, т. е. какой наложен отбор. Но стандартная настройка списка управляемой формы показывает только пользовательские настройки, скрывая от пользователя фиксированный отбор. Предлагаю вам расширение конфигурации с расширенной настройкой динамического списка, отображающей пользователю кроме пользовательских настроек еще фиксированные.

1 стартмани

31.05.2017    24129    143    tormozit    20       

Простой редактор плана помещения JavaScript 100

Инструменты и обработки Программист Внешняя обработка (ert,epf) v8 1cv8.cf Windows Абонемент ($m) Практика программирования Работа с интерфейсом

На ресурсе сейчас очень много решений, которые позволяют редактировать карты, используя географические схемы. Так же много решений, которые позволяют редактировать объекты онлайн веб-карт. Мне же нужно было простое решение, для того чтобы расставить квадратные объекты на плане, показать их пользователю. Ну и распечатать, опять же. Я решил написать простенький редактор на JavaScript с использованием библиотеки Raphael.

1 стартмани

23.11.2016    14836    91    igel9780    16       

Настройка начальной страницы (Рабочего стола) 47

Инструменты и обработки Системный администратор Программист Внешняя обработка (ert,epf) v8 1cv8.cf Абонемент ($m) Работа с интерфейсом Рабочее место Универсальные обработки

Альтернатива стандартной настройке начальной страницы. В типовой доступны лишь те формы, что явно "разрешены" разработчиком в режиме конфигуратора. Эта обработка позволяет собрать "Рабочий стол" из любых подходящих форм в пользовательском режиме. Без программирования. БСП не используется. Не расширение. Универсальна, т.е. подойдет для любой конфигурации (в т.ч. самописной).

2 стартмани

19.10.2016    24169    186    Erne100    24       

[Расширение] Стартовые страницы. Автозапуск форм при старте 1С. (8.3.9+, без доработки конфигурации) 51

Инструменты и обработки no Расширение (cfe) v8 1cv8.cf Абонемент ($m) Инструментарий разработчика Работа с интерфейсом

Уверен, что в большинстве случаев список справочников, отчетов, обработок (объектов 1С в целом), к которому обращаются пользователи после запуска конфигурации 1С, раз от раза меняется не сильно. Так почему бы немного не упростить процесс открытия часто используемых форм? Данное расширение позволяет настроить автоматическое открытие различных форм объектов сразу после запуска 1С. Список форм настраивается индивидуально для каждого пользователя. Работает на платформе 8.3.9, без доработки конфигурации.

1 стартмани

03.10.2016    15882    78    Artem-B    19       

Конструктор условного оформления 40

Инструменты и обработки Программист Внешняя обработка (ert,epf) v8 1cv8.cf Абонемент ($m) Инструментарий разработчика Работа с интерфейсом

Иногда требуется сделать отчет, который бы содержал в себе множество показателей. В таком случае в получившейся "портянке" показатели сливаются. Как один из вариантов решения (ну, кроме упрощения отчета) можно рассматривать раскраску показателей в индивидуальные цвета. После нескольких подобных случаев (особенно, когда в уже готовый отчет добавляются или убираются поля) сделал обработку, которая позволяет в режиме предприятия быстро подготовить болванку условного оформления для подобных отчетов.

1 стартмани

27.09.2016    12729    15    Fragster    6       

HTTP-сервис: отчеты [Расширение] 122

Инструменты и обработки Системный администратор Программист Расширение (cfe) v8 1cv8.cf Абонемент ($m) Практика программирования Работа с интерфейсом

Это HTTP-сервис, который возвращает почти любой отчет в HTML, XLSX или в JSON. Сохраните вариант отчета, получите на него ссылку и можно получить данные без захода в 1С. Работает в конфигурациях на основе БСП 2.3.3+, для отчетов на СКД и в 1С 8.3.8+

2 стартмани

30.08.2016    18873    125    Stepa86    15       

Простые радости жизни программиста 1С: выбор типа значения 51

Инструменты и обработки Программист Внешняя обработка (ert,epf) v8 1cv8.cf Абонемент ($m) Практика программирования Работа с интерфейсом

Предлагаемая в работе обработка включает обычную и управляемую формы, которые максимально точно реализуют функциональность системного диалога выбора типа в толстом клиенте обычное приложение (включая оформление диалога). Эти формы имеют дополнительные интерфейсные удобства и могут быть использованы в качестве альтернативных диалогов выбора типа.

1 стартмани

17.02.2016    38477    45    yuraos    17       

Визуальный редактор цветовых схем подсветки синтаксиса 1С + импорт схем Visual Studio 43

Инструменты и обработки Системный администратор Программист Внешняя обработка (ert,epf) v8 1cv8.cf Windows Абонемент ($m) Работа с интерфейсом

Данная обработка призвана облегчить настройку рабочего места программиста 1С, а именно улучшить визуальное восприятие кода, уменьшить утомляемость, и, как следствие, увеличить общую производительность труда!

1 стартмани

29.01.2016    11474    74    ram3    27       

Передача реквизитов объекта из основной формы в дополнительную и обратно на управляемых формах 91

Инструменты и обработки Программист Внешняя обработка (ert,epf) v8 1cv8.cf Windows Абонемент ($m) Работа с интерфейсом

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

1 стартмани

02.11.2015    22202    8    Wolex    29       

Инструмент для создания веб приложений на основе 1С REST сервиса 67

Инструменты и обработки Программист Пользователь Приложение (exe) v8 1cv8.cf Windows Абонемент ($m) Инструментарий разработчика WEB Работа с интерфейсом

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

1 стартмани

13.10.2015    21322    82    dmzubr    23       

Асинхронная загрузка данных на Управляемую Форму. Прогресс бар (УФ 8.3). Индикация состояния процесса 78

Инструменты и обработки Программист Внешняя обработка (ert,epf) v8 v8::УФ 1cv8.cf Абонемент ($m) Работа с интерфейсом Универсальные функции Внешние источники данных

Часто бывает, что возникает необходимость загрузить множество данных из разнообразных источников в определенную форму или рабочее место. В процессе загрузки пользователь в неведении — информация готовится или нет. Прием позволяет загружать данные из нескольких источников асинхронно, не блокируя форму\интерфейс, а также отображать ошибки и состояние прогресса. По мере готовности данных, они будут отображены на форме

1 стартмани

09.10.2015    28719    133    pbazeliuk    6       

Визуальный html редактор на управляемых формах 64

Инструменты и обработки Программист Внешняя обработка (ert,epf) v8 1cv8.cf Абонемент ($m) WEB Работа с интерфейсом

Мы рассмотрим некоторые особенности и возможности подключения сторонних визуальных html редакторов на javascript - TinyMCE, CK Editor. С помощью приложенной обработки Вы сможете попробовать в действии полноценный и удобный визуальный html редактор, а при желании перенести подобный функционал к себе.

1 стартмани

30.09.2015    20677    183    ivanov660    26       

NativeDraw: Компонента рисования для 1С [V2.6.2] 106

Инструменты и обработки Программист Компонента, плагин (dll, vbs,..) v8 1cv8.cf Windows Абонемент ($m) Разработка внешних компонент Работа с интерфейсом

Рисуйте в формах 1С, также предлагается небольшое количество нерисовальных функций

1 стартмани

13.07.2015    39507    421    ПерваяСистема    140       

Универсальное настраиваемое рабочее место (Версия 2.0) 52

Инструменты и обработки Системный администратор Программист Конфигурация (md, cf) v8 1cv8.cf Абонемент ($m) Универсальные обработки Работа с интерфейсом Рабочее место

При работе очень часто штатные интерфейсы 1С бывают неудобны в силу разной специфики работы каждого пользователя, а также конфигурация обычно "обрастает" новыми обработками, отчетами, документами и справочниками, которые требуются для работы организации, а в стандартных меню их, естественно, нет. Это особенно относится к толстому клиенту (например, программы УПП, УТ10.3 и пр.). Делать свои интерфейсы - не всегда спасает: то, что нужно одному пользователю, другому совершенно не надо, даже если у них одинаковые функциональные обязанности. Открывать все через меню "Операции" тоже неудобно: у нас, например, за несколько лет работы добавилось столько нового и специфичного, что уже и не помнишь, что и для чего. Поэтому родилась идея сделать что-то удобное и универсальное, что и получилось в результате: пользователь сам, не прибегая к помощи программиста, может сделать удобное меню для себя и всегда изменить, если требуется. И без всяких изменений конфигурации...

3 стартмани

13.06.2015    11975    120    yuraskid    29       

Кнопки управления группировками табличного документа для управляемых форм 23

Инструменты и обработки Программист Внешний отчет (ert,erf) v8 1cv8.cf Абонемент ($m) Работа с интерфейсом

Универсальный механизм управления группировками табличного документа из управляемой формы

1 стартмани

02.06.2015    21627    31    unichkin    9       

Управляемая форма 1С 8.2 (8.3) – работа с деревом значений и таблицей значений. Часть I (Основы) 64

Инструменты и обработки Программист Архив с данными v8 1cv8.cf Windows Абонемент ($m) Практика программирования Работа с интерфейсом

Как известно, в платформе 1С 8.1 не составляло никакого труда связать дерево значений с табличным полем на форме, единственное, что при этом нужно было не забыть, так это СоздатьКолонки(). В управляемом приложении 1С 8.2 (8.3) сделать это не так просто, как кажется на первый взгляд. В данной статье речь пойдет о программном создании дерева значений (таблицы значений) на управляемой форме в управляемом приложении 1С

2 стартмани

14.05.2015    69613    25    ll13    13       

[БП 3.0] [ЗУП 3.1 ] [БГУ 2.0] [УТ 11.4 ] [Расширения] Отключение регламента, оповещений и пр. 43

Инструменты и обработки Системный администратор Программист Расширение (cfe) v8 v8::БУ БП3.0 Россия Windows Абонемент ($m) Работа с интерфейсом

Облегчить жисть БП 3.0 отключением всякого разного можно! Обработка позволяет отключить ряд оповещений, регламентных заданий (подробно описано в http://infostart.ru/public/303564/). Кроме того, позволяет более подробную настройку использования: - Регламентных и фоновых заданий; - Информации для форм; - Задач бухгалтера (где они есть). 21.01.2019 Версии с новым режимом совсместимости для основных конфигураций С удовольствием выслушаю (по возможности реализую) сообщество, что ещё можно сделать, чтобы программа работала по шустрее.

1 стартмани

04.03.2015    22329    131    Alex_E    17       

Подсистема "Планировщик" (версия 1.1) 138

Отчеты и формы no Конфигурация (md, cf) v8 1cv8.cf Россия Абонемент ($m) Практика программирования WEB Работа с интерфейсом

Конфигурация с подсистемой "Планировщик" (календарь). Бесплатная открытая версия для свободного использования не включает двустороннюю интеграцию с сервисом Google и Outlook.com.

5 стартмани

02.03.2015    55678    463    vandalsvq    62       

Анимация фона элементов на форме в стиле JQuery 75

Инструменты и обработки Программист Внешняя обработка (ert,epf) v8 1cv8.cf Абонемент ($m) Работа с интерфейсом

К сожалению, у платформы 1С не так много красивостей, которыми обычно сдабривают формы обычных web-страниц. Нам недоступны эффекты JQuery и других javascript-библиотек. А иногда хочется сделать необычно, красиво и удобно.

1 стартмани

18.02.2015    13870    27    kraynev-navi    9       

Произвольное размещение и добавление кнопок на управляемых формах пользователем 37

Инструменты и обработки Программист Конфигурация (md, cf) v8 1cv8.cf Windows Абонемент ($m) Инструментарий разработчика Работа с интерфейсом

Иногда нам нужно чтобы пользователи могли сами рисовать себе формы в режиме 1С Предприятия, добавлять на них необходимые кнопки, назначать на эти кнопки объекты, размещать эти кнопки на форме произвольно. На управляемых формах даже в конфигураторе нет возможности произвольно размещать кнопки на форме. Чтобы исправить эту оплошность предлагаю вам свое решение данной проблемы.

1 стартмани

07.11.2014    16169    43    tvixeg    14       

[ТАКСИ] Шаблон внешней обработки...и не только 207

Инструменты и обработки Системный администратор Программист Внешняя обработка (ert,epf) v8 v8::УФ 1cv8.cf Абонемент ($m) Универсальные обработки Работа с интерфейсом Универсальные функции

Обработка предназначена для лентяев, к каковым, в первую очередь, отношу себя. Это в некотором роде шпаргалка в виде шаблона внешней обработки. Для создания новой копируем эту, удаляем ненужное, вставляем нужное - получаем результат. Чем ваять с нуля, каждый раз прописывая одно и то же, проще использовать заготовку, подобную этой... 24.11.2018 - Версия 1.21 - что-то добавил, что-то поправил.... 16.04.2019 - По просьбам трудящихся (немногочисленным, правда) оставил последнюю версию 1.21, дабы не было путаницы... 17.04.2019 - Версия 1.22 Вернул пример сохранения табличного документа в разных форматах и чтения DBF из версии 1.16 (как потерялось - сам не понял)

2 стартмани

22.09.2014    46007    687    Alex_E    27       

Визуализация и интерактивное изменение дерева значений. 68

Инструменты и обработки no Внешняя обработка (ert,epf) v8 1cv8.cf Windows Абонемент ($m) Практика программирования Универсальные обработки Работа с интерфейсом

Обработка позволяет представить дерево значений в графическом виде, изменить его простым перетаскиванием блоков и выгрузить обратно в дерево значений.

1 стартмани

01.08.2014    16770    99    Belkin_Sergey    27       

Локализация конфигурации с помощью Google 13

Инструменты и обработки Программист Внешняя обработка (ert,epf) v8 1cv8.cf Windows Абонемент ($m) Инструментарий разработчика Работа с интерфейсом

Обработка позволяет выполнять перевод интерфейсов в любой конфигурации 1С средствами Google. За основу взята обработка: http://infostart.ru/public/190890/

1 стартмани

06.06.2014    15413    32    x-tremeall    6       

Прогресс-бар длительных серверных операций (БСП) 45

Инструменты и обработки Программист Внешняя обработка (ert,epf) v8 1cv8.cf Абонемент ($m) Инструментарий разработчика Работа с интерфейсом

Простой и удобный шаблон для подобного рода задач в виде внешней обработки. Используется технология, предлагаемая в БСП (Библиотеке Стандартных Подсистем), практически без ноу-хау. Доработано таким образом, что обработка может быть как встроенной в конфигурацию, так и внешней.

1 стартмани

23.04.2014    24031    255    herfis    14       

Алгоритмы. Часть 1.1. Динамические соединения. 186

Инструменты и обработки Программист Конфигурация (md, cf) v8 1cv8.cf Абонемент ($m) Работа с интерфейсом

Конспект первой лекции из свежего курса Принстонского университета США за 2014 год. Вольный перевод с английского с реализацией примеров на 1С. Курс в целом достаточно интересный и полезный для общего развития. Перевел и адаптировал только первую лекцию (в 1 части 11 лекций, 2 часть - еще не завершена преподавателями). Первоисточник на английском - https://www.coursera.org/course/algs4partI. Если сообщество посчитает материал полезным - займусь переводом следующих лекций (но это довольно трудоемко). Enjoy! :)

1 стартмани

04.04.2014    27766    23    Aleksey.Bochkov    33       

HTML редактор для 1С (1С HTML IDE) 74

Инструменты и обработки Программист Внешняя обработка (ert,epf) v8 1cv8.cf Windows Абонемент ($m) Работа с интерфейсом

Стандартный для 1с интерфейс не всегда может удовлетворить заказчика. В этом случае возникает необходимость реализовывать некоторые формы с использованием HTML. Как известно, встроенный в 1с объект "поле табличного документа" работает с использованием старых технологий. В результате, страничка, написанная в сторонней IDE в 1с может отображаться как угодно, но только не так как требуется. Когда у меня появилась задача сделать рабочий стол на HTML я сразу понял, что писать веб-код необходимо сразу на платформе 1с, что бы видеть результат Online и корректировать его. Для меня веб-программирование заканчивается знанием тега . Разнообразные глюки и особенности веб-среды мне просто неизвестны, поэтому сразу видеть что получается - самое то. Представляю один из результатов моей работы - IDE на управляемых формах, задача которой - генерация HTML документа, который будет правильно отображаться в 1с.

1 стартмани

20.02.2014    25485    170    Nikola23    28       

Графический индикатор процесса в табличной части на Управляемых формах 50

Инструменты и обработки Программист Внешняя обработка (ert,epf) v8 Россия Windows Абонемент ($m) Работа с интерфейсом

Графический индикатор процесса на Управляемых формах, для любой ячейки в табличной части формы

1 стартмани

04.02.2014    18401    88    amyd    25       

Яндекс-карта (API 2) + геокодер Яндекс 49

Инструменты и обработки no Внешняя обработка (ert,epf) v8 Россия Абонемент ($m) Работа с интерфейсом

Пример использования Яндекс-карт с возможностью поиска по строке или получением адреса по клику на карте

28.01.2014    29725    1590    BenGunn    44