Сервер push сообщений “Push0k“ 18.05

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

Разработка - Системная интеграция - Интеграция с WEB

1C push push0k node.js socket.io 1c docker postgresql

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

Сервер push сообщений “Push0k“ 19.01

Доработал серверную часть, добавил процедуры для новой «админки».

Сделал, push0k admin, приложением electron. Клиентскую часть также реализовал на electron.

Приложение push0k admin:

Приложение сделано на electron с использованием vue.js . Внутри реализовано подобие оконной системы, небольшие модальные диалоги можно перетаскивать как окна, заголовки окон для windows сделаны аналогично windows 10, для Mac OS как в последних версиях, но пока без учета dark theme. Для linux соберу позднее, там с заголовками диалогов чуть сложнее, думаю будет как в ubuntu и если не ubuntu то win 10 style. Потребление памяти в win 10 и Mac OS больше 150 мегабайт не видел.

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

Более подробно по ссылке https://github.com/PloAl/push0k, там же можно скачать программу бесплатно.

Клиентское приложение на electron выложу позднее.

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

 

Добавил возможность быстрой установки в контейнере docker

Контейнер состоит из: Ubuntu 16.04, PostgreSQL 9.6, node.js 8.11 + push0k 1805

Запуск, команды консоли

Загрузить образ:

docker pull ploal/push0k

Создать и запустить контейнер из образа:

docker run --name push0k -d --restart=always --net host --tmpfs="/var/lib/postgresql/9.6/main/pg_stat_tmp:rw,noatime,nodiratime,size=500M,mode=700,uid=799,gid=799" ploal/push0k:1806 /usr/bin/supervisord -c /etc/supervisor/supervisord.conf

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

  • порт администрирования push0k: 2016
  • порт сервера postgreSQL: 5432 Сетевой ip адрес совпадает с адресом компьютера где установлен docker. По умолчанию в postgreSQL устанавливается пароль YourPassword. Пароль можно изменить в консоли контейнера команда: 
    sudo -u postgres psql -c "ALTER USER postgres WITH PASSWORD 'YourPassword'"

     

Если контейнер запускается в более ранней версии docker 17.05, из строки запуска следует убрать параметр 

--tmpfs="/var/lib/postgresql/9.6/main/pg_stat_tmp:rw,noatime,nodiratime,size=500M,mode=700,uid=799,gid=799"

 , данный параметр создает RAM диск для записи статистики postgreSQL, в версиях ниже 17.05 параметр недоступен.

Этот контейнер также использую данный контейнер в качестве 1с сервера. Для установки 1c сервера, достаточно перенести распакованные установочные файлы *.deb , внутрь контейнера. Перейти в консоли контейнера в каталог куда перенесены установочные файлы 

cd /YourCatalog/withSetupDebs

 и запустить установку командой 

dpkg -i *.deb

 после установки для автоматического запуска сервера надо отредактировать файл /etc/supervisor/supervisord.conf в файле надо убрать комментарии в виде символов ";" с секции ;[program:1csvr] и строки под ней ;command=/opt/1C/v8.3/...

Для переноса файлов внутрь контейнера рекомендуется настроить и использовать примонтированную папку "public", также возможна масса других вариантов: поиск напрямую в папках aufs, установка настройка samba, запуск ssh. Для поиска и редактирования файла /etc/supervisor/supervisord.conf проще всего воспользоваться старым добрым полношным коммандэром для этого набрать в консоли mc

 


Сервер push сообщений “Push0k“ 18.05

Новая логика серверной части:

Серверный скрипт “push0k.js“ теперь к пакету nmp “socket.io” дополнительно использует пакеты “pg” и “pm2“. Первый позволяет подключаться к базе postgresql напрямую, второй пакет позволяет запустить несколько процессов и по максимуму задействовать все ядра процессора.

Логика сервера push0k, аналогична логотипу, все сообщения пересылаются через сервер.

  • socket.io основной websocket сервер.
  • node-postgres модуль для связи с postgreSQL.
  • pm2 используется для запуска балансировки и мониторинга нескольких процессов push0k.js

Убрал использование базы данных 1С, данные записываются напрямую в базу postgresql. Подробнее на картинке. 

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

Скрипт сервера *.js ранее хранился внутри серверной конфигурации 1с оттуда и использовался. Сейчас файлов сервера стало немного больше, и все файлы сервера теперь доступны по ссылке github.com/PloAl/push0k . Инструкция по установке серверной части node.js находится там же. А для push0k admin, доступна по кнопке F1.

Оптимизировал логику уведомлений и синхронизации клиентов. Все данные синхронизируются буквально по одной дате. В справочные таблицы добавил колонки даты последнего изменения и идентификатор изменившего. Добавил таблицу версии в триггерной функции при обновлении справочных таблиц записывается старая запись в формате json. Интерфейс для просмотра истории версии и восстановления старой версии пока не делал.

Добавил предопределенный элемент справочника Комнаты “Администраторы“. Логика аналогична группе прав «администраторы» в ОС. При первом запуске создается пользователь данной комнаты - «администратор». Не входящие пользователи в эту комнату, при запуске “push0k admin” не смогут авторизоваться.

Больше безопасности:

Доработал механизм авторизации. Для авторизации в базе сохраняется двойной хеш sha256. При авторизации используется хеш от сохраненного хеша + УИД текущего соединения "соленый хеш". Т.е. перехваченный хеш не позволит авторизоваться повторно, и не раскроет текущий пароль. При установке нового пароля, хеш нового пароля запаковывается в запароленый zip архив, пароль на zip = старый пароль + УИД соединения. Добавил в внешнюю компоненту метод получения хеш sha256, для использования типового метода надо пересылать пароль на сервер, в ВК хеш получается сразу на клиенте. В целом описанное выше означает что важные личные данные даже без использование TLS хорошо защищены. Но конечно более надежно использовать TLS соединения.

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

Новые требования:

Реализовал возможность авторизации по номеру мобильного телефона.

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

Добавил возможность пользовательской настройки представления контакта. Т.е. например в контактах несколько Иванов, каждый из пользователей волен обозвать другого как ему угодно хоть Дартаньян хоть Каналья.

Попугайметр - механизм для тестирования сервера:

Добавил комнату предопределенный элемент справочника Комнаты “Test”. С помощью сообщения в комнате, клиенты при получении автоматически отвечают заданного размера сообщениями программно в цикле заданное количество раз. По факту получается нагрузочное тестирование.

Тестирование с скриншота отправка сообщений в тестовую комнату чат, самому порой удивительно всего 50 000 сообщений и 4 250 000 телодвижений: 

отправка 50 000 сообщений: Процессы сервера: 4 Пользователи: 5

1. Всего сообщений получено 50 000 * 5 = 250 000

2. Пересылка в другие процессы сервера 250 000 *  Процессы сервера: 4 - 1 = 750 000

3. Отправлено адресатам  250 000 *  Пользователи: 5 - 1 = 1 000 000

4. Записано сообщений в таблицу postgreSQL 250 000

5. Получено уведомлений доставки 1 000 000

6. Записано в таблицу postgreSQL уведомлений доставки 1 000 000

7. Все операции 4 250 000

В тестах пока максимум 10 000(+-несколько сотен) операций в секунду, при этом количество процессов не влияет. Без разницы 4 пользователя в 4ёх процессах или все на одном процессе. Это говорит о том что процессор в данном тесте не является бутылочным горлышком, узким местом. Знаю windows - не серверная, не самый лучший вариант для запуска сервера из за ограничений сетевого стека.

Классификатор телефонов:

Добавил таблицу классификатор Российских телефонных кодов, нашел на сайте Россвязи 4 файла csv . Таблицу создавал специально под формат csv, загружал из диалога pgAdmin4, около 50000 записей 0,3 секунды, файлы с кодами 8 и 9 пришлось заменой немного подправить.

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

 

Много новых возможностей клиентской обработки:

Отдельная кнопка цитирования "6699" и кнопка пересылки сообщения полностью. При наведении курсора на дату сообщения можно увидеть, имя компьютера и имя базы 1с где было создано сообщение.

Комнаты - теперь имеют звездатое название или стартег

Скриншот формы редактирования и администрирования комнаты на клиенте.

 

К сожалению мобильная версия приложения для android, отстала от всех вышеописанных изменений и будет доступна позднее.

 


Сервер push сообщений “Push0k“ 17.12

Это продолжение публикации  Что нам стоит Push построить

Там же более подробное описание логики работы решения.

Код решения практически полностью открыт. Исключение составляет внешняя компонента используемая на клиенте и дополнительное мобильное приложение Push0kService.apk , но закрытая часть написана универсально и никак не влияет на возможность доработки решения. Также закрытый код не содержит какого либо обращения к моим http ресурсам для сбора обезличенной статистики запусков и прочих метрик.

Описание изменений:

Сервер:

  • Добавил возможность отладки серверного скрипта *.js в браузере Google chrome. Галка включения отладки в настройках и рядом ссылка для перехода в браузер chrome. Отладка может быть запущена и удаленно с другого компьютера локальной сети, то есть не обязательно запускать на том же компьютере где запущен серверный скрипт *.js.

  • Оптимизировал по серверный скрипт *.js: убрал комментарии, инициализацию новых свойств объектов где возможно, вынес настройки в отдельный файл.

  • Сделал статистику прикрепленных файлов размер, получено и передано максимальные скорости передачи. Файлы хранятся на диске частями перекодированные в base64 внутри файлов json.

  • Заполнил справочную информацию: по установке, настройке и логике заполнения, в встроенной справке 1с.

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

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

  • Добавил много новых настроек, более подробно в справке.

Клиент:

  • Добавил отображение новых не прочтенных сообщений. Рыжая цифра новых в списке пользователей и жирно рыжая дата в сообщениях.

  • Реализовал прогресс бар при передаче и загрузке файлов на  или с сервера.

  • Добавил x64 версию внешней компоненты.

  • Сделал отображение собственного контакта в списке для передачи файлов между устройствами и другой информации.

  • Сделал возможность перетаскивания файлов вложений из сообщений. 

  • Добавил “бота” в собственный контакт при получении NFC метки, ищет в метке ссылку на справочник, далее ищет ссылку в справочнике и если находит, пишет автоматически сообщение с ссылкой в чат.  

  • Реализовал клиентскую версию в виде внешней обработки. Данные сохраняются локально в виде файлов html, отдельно для каждой базы. Обращений к серверу практически нет. Сделал отображение картинок по умолчанию круглым. 

Клиент android

  • Убрал использование мобильной Внешней Компоненты. 

    Добавил вместо ВК дополнительное приложение - службу. Приложение Push0kService.apk позволяет оставаться на связи, android не закрывает приложение и дополнительную службу. Для корректной работы требуется заблокировать отображение уведомлений от приложения 1С, уведомления выводятся службой Push0kService.apk

  • Добавил отображение новых не прочтенных сообщений. Рыжая цифра новых в списке пользователей и жирно рыжая дата в сообщениях.

  • Реализовал уведомление - прогресс бар при передаче и загрузке файлов на или с сервера.

  • Сделал интеграцию с приложением чтения записи NFC меток Беспроводные метки NFC. Позволяет записывать переданные в чат ссылки на справочники в метку NFC.

  • Добавил возможность кадрирования - обрезки выбираемых картинок для фотографии пользователя, также обрезать можно и кружочком. 

Все описанные конфигурации разрабатывалось на версии платформы 8.3.10, и рекомендуется использовать версию не ниже.

Серверная push0k часть может работать как на windows так и на linux, без разницы в файловом база или сервер 1с.

Node.js можно использовать практически любую, но рекомендуется все же последняя. Socket.io рекомендуется 2.0 и выше.

Мобильное приложение и служба Push0kService.apk , рассчитаны на android не ниже 5.0 lollipop

 

Версия за “стартмани” не имеет возможности в клиентской части подключаться по протоколу https.

Для этого требуется другая дополнительная Внешняя Компонента.

Мобильному приложению android требуется другая версия Push0kService.apk

12

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

Наименование Файл Версия Размер
Внешняя обработка клиент “push0k“ 18.05:
.epf 1,27Mb
31.01.19
5
.epf 18.05 1,27Mb 5 Скачать

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

Комментарии
Избранное Подписка Сортировка: Древо
1. acesdjazzz 8 26.12.17 05:20 Сейчас в теме
2. PloAl 141 26.12.17 07:00 Сейчас в теме
3. Franco 80 19.01.18 06:45 Сейчас в теме
В обработке «Сервер» в форме:
?(Не HTTPВерсия,?(НаборКонстант.ЗащищенноеСоединениеHTTPS,"Push0k_TLS","Push0k"),"Push0k_TLS")

где
HTTPВерсия = Истина
НаборКонстант.ЗащищенноеСоединениеHTTPS = Ложь

само собою возвращает Push0k_TLS, ходя такого макета нет и в помине. В результате прямо на старте отлуп пользователю.
Обидно, да, только зашёл....
8. PloAl 141 19.01.18 09:51 Сейчас в теме
(3) посмотрел есть небольшая проблема, поправлю
(4) поискал в статье и в инструкциях, не нашел, где я обещал или описывал "мастера настройки"
(5) поправлю
(6) вы ошибаетесь, нет там адреса и не должно быть точно
(7) в какой момент при каком действии так получается?
4. Franco 80 19.01.18 07:13 Сейчас в теме
Не обнаружил пошагового мастера настройки.
Это что, я ещё и думать должен?!
:)
9. PloAl 141 19.01.18 13:02 Сейчас в теме
(4) Весь интерфейс настройки можно назвать мастером, но не пошаговым так как шаги могут настраиваться в произвольном порядке. Подробное описание всех параметров в справке также можно увидеть при наведении на реквизит всплывающее пояснение.
16. Franco 80 19.01.18 20:01 Сейчас в теме
(9) Не-не... Нельзя неопытным пользователям предоставлять такие возможности. Уж лучше пусть я буду идиотом, но всё делать по инструкции, чем ошибаться и бросить все попытки что-нибудь сделать.
17. Franco 80 19.01.18 20:18 Сейчас в теме
(9) Ещё одно - не ошибка, конечно, но пока разобрался...
Опубликовал не под тем именем, под которым указан к сервису в константе. Сменил его в самих константах, а потом всё-таки нашёл в «Настройках» - «Дополнительно» - «Путь к сервису».
Думаю, об этом надо написать на самой форме и в инструкции.
Да-да, есть в самом конце справки,знаю...
5. Franco 80 19.01.18 07:23 Сейчас в теме
В настройке поменял порт 1С на 80, обычный для IIS, получил ошибку
{Обработка.Сервер.Форма.Форма.Форма(218)}: Преобразование значения к типу Число не может быть выполнено
ПИД = Число(ПолучитьПИДСервера());
Ну да, потому что получил ошибку 405, а в преобразование в число пришла строка с описанием этой ошибки.
10. PloAl 141 19.01.18 13:08 Сейчас в теме
(5) Судя по ошибке, вы перепутали порт "http сервиса 1с" и порт "для связи с 1с", если указать все правильно ошибки не будет
14. Franco 80 19.01.18 19:52 Сейчас в теме
(10)Да, это так.
Однако здесь не обрабатывается код http-ответа. Например, я только что получил ошибку 500 (это из-за использования учебной версии на домашнем ПК). Но код попытался преобразовать текст ошибки к числу.
6. Franco 80 19.01.18 09:23 Сейчас в теме
В Функция ПолучитьПИДСервера() Экспорт
вместо
ХТТПЗапрос = Новый HTTPЗапрос();

нужно
ХТТПЗапрос = Новый HTTPЗапрос("pushOKserver/hs/sio/");

Ибо:
HTTPЗапрос (HTTPRequest)
По адресу ресурса и заголовкам
Синтаксис:
Новый HTTPЗапрос(<АдресРесурса>, <Заголовки>)
Параметры:
<АдресРесурса> (обязательный)

или

Формирование неинициализированного объекта
Синтаксис:
Новый HTTPЗапрос()
Описание:
Создает неинициализированный объект.

Но тогда адрес ресурса должен быть задан принудительно.
11. PloAl 141 19.01.18 13:15 Сейчас в теме
(6) В данном запросе идет обращение к скрипту nodejs адреса ресурса там нет никакого. Указанный вами ресурс есть при подключении к http серверу 1с. Скорее всего вы перепутали порты. В СП нет строчек что "адрес ресурса" надо задавать принудительно, да и работает оно без указания.
13. Franco 80 19.01.18 19:37 Сейчас в теме
(11)Ага, понятно. Вопрос 7 тогда тоже снимается.
7. Franco 80 19.01.18 09:25 Сейчас в теме
В http-сервисе

{HTTPСервис.SocketIO.Модуль(20)}: Поле объекта не обнаружено (event)
12. PloAl 141 19.01.18 13:18 Сейчас в теме
(7) Возможно тут тоже проблема из за указания неправильных портов. Будьте добры напишите как воспроизвести ошибку.
15. Franco 80 19.01.18 19:59 Сейчас в теме
(12) Просто не совсем ясно, что имеется ввиду: «Основной порт сервера, к которому подключаются все клиенты...» и «Порт node.js 127.0.0.1:XXX через который пушсервер 1с взаимодействует со скриптом...». Вы же специалист по node.js, а я только пытаюсь понять что куда и как использовать.
18. PloAl 141 19.01.18 20:21 Сейчас в теме
(15) Пример авторизация: Клиент -> Основной порт (Node.js) -> Порт HTTP сервиса 1С -> порт для связи с 1С(Node.js) -> Основной порт (Node.js) -> Клиент
В следующей версии, не будет этих портов. Скрипт nodejs будет напрямую писать в postgresql.
19. hercares 19.03.19 21:38 Сейчас в теме
Сервер push сообщений “Push0k“ 19.01

В архиве обработки 18.05 или 19.01?

В предыдущей вашей доработке использовался сервер 1с, на котором был настроен http сервис и клиенты 1с, мобильные. Правильно ли я понимаю, что push0k admin заменил сервер 1с?
20. PloAl 141 19.03.19 23:23 Сейчас в теме
В архиве 18.05, в 19.xx логика практически такая же.

Сервера 1с, не было уже в 18.05
В 18.05 была конфигурация push0k admin, в качестве внешних источников использовались таблицы postgreSQL.
Оставьте свое сообщение

См. также

Интеграция 1С с сайтом (магазином) WordPress (WooCommerce) с помощью Rest API сайта. Часть 1. Авторизация 34

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

Интеграция 1С с сайтом (магазином) WordPress (WooCommerce) с помощью функционала Rest API предоставляемого платформой (CMS) WordPress (WooCommerce). Без дополнительных приложений на PHP/вставьте сюда любой другой язык программирования/.

1 стартмани

12.10.2019    1667    5    osivv    27       

Telegram бот на 1С 39

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

Telegram бот на 1С в виде внешней обработки, встраиваемой в типовые 1С 8.3.

1 стартмани

24.09.2019    3461    11    budidich    15       

Выгрузка номенклатуры в социальную сеть Вконтакте 30

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

Обработка для быстрой и легкой выгрузки товаров Вконтакт. Так просто еще не было)))

2 стартмани

14.08.2019    2129    11    kalyuzhny    20       

Путеводитель по истории релизов 36

Отчеты и формы Системный администратор Программист Внешний отчет (ert,erf) v8 1cv8.cf Абонемент ($m) WEB

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

2 стартмани

13.08.2019    2578    7    YPermitin    15       

Подключение к сайту и отправка или получение данных по API (POST, GET...) (с описанием кода) 27

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

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

1 стартмани

12.08.2019    2704    4    MaxPowerr    5       

Использование HTTP-сервиса для создания "фронтенда" HTML/CSS/jQuery с кэшированием 94

Статья Программист Расширение (cfe) v8 1cv8.cf Абонемент ($m) WEB

В статье описан способ создания "фронтенда" на HTML/CSS/jQuery и скрипт кеширования AJAX запросов на PHP.

1 стартмани

06.08.2019    4785    6    Sedaiko    22       

Конфигурация для обмена данными (интеграционная шина) 23

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

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

4 стартмани

08.07.2019    3054    15    miha-28    14       

Шаблон http-сервиса для вашего проекта 70

Инструменты и обработки Программист Архив с данными v8 v8::Mobile 1cv8.cf Абонемент ($m) Внешние источники данных WEB Мобильная разработка

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

2 стартмани

04.05.2019    5988    46    MarkoSokolov    47       

1C + Python + Django Rest Framework + Vue.js. Опыт несложной full-stack разработки 121

Статья Программист Архив с данными v8 1cv8.cf Абонемент ($m) Практика программирования Внешние источники данных Обмен через XML WEB Разработка

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

1 стартмани

22.04.2019    15927    14    riposte    63       

1С и WebKit. Вариант взаимодействия 46

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

В результате перехода на WebKit тип свойства Документ у поля, имеющего вид ПолеHTMLДокумента, изменился с COMОбъект на ВнешнийОбъект. Также изменилась DOM модель документа, доступная через это свойство.

2 стартмани

23.02.2019    9767    29    mi1man    35       

Строим маршруты на картах в 1С с помощью OpenStreetMap, OSRM и Leaflet 74

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

Краткая статья о том как вывести на карту (в 1С) маршруты с помощью OpenStreetMap, OSRM и Leaflet. По данной системе очень мало примеров, но так как OpenStreetMap является бесплатным сервисом и не требует никаких ключей и регистраций, и является довольно мощным механизмом, решил написать небольшую статью "как это сделать?". В первую очередь скажу, все намного проще, если вы используете последнюю версию платформы (8.3.14), где есть поддержка практически всех браузеров (IE 11, EDGE, Mozilla), но что делать если у нас не самая свежая платформа, где поддержка только IE 9?

2 стартмани

12.02.2019    8986    51    Ditron    15       

Яндекс карта в документе "Заказ клиента" на закладке "Доставка". (Расширение) УТ 11.4 28

Инструменты и обработки Пользователь Расширение (cfe) v8 УТ11 Россия УУ Оптовая торговля Абонемент ($m) Обработка документов WEB

Показ яндекс карты в документе "Заказ клиента" на закладке "Доставка" и печать карты для курьера с контактными данными. (Расширение)

3 стартмани

05.02.2019    3772    11    ret    6       

Коннектор: удобный HTTP-клиент для 1С:Предприятие 8 512

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

Коннектор - библиотека для работы с HTTP запросами. Библиотека берет на себя всю рутину работы с HTTP запросами. Буквально в одну строку можно получать данные, отправлять, не заботясь о необходимости конструирования URL, кодирования данных и т.п.

1 стартмани

31.01.2019    25251    243    bonv    108       

Яндекс карты 2.1. Построение маршрута. Передача длины маршрута в реквизит формы 32

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

Пригодится как пример использования Яндекс карты 2.1 для построения маршрута.

1 стартмани

24.01.2019    4654    43    John_d    26       

Проверка VAT номеров 2

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

Обработка для вызова сервиса проверка VAT номера.

1 стартмани

26.11.2018    3703    wtlz    0       

Веб-форма авторизации/регистрации/восстановления пароля для веб-клиента 1С с помощью HTML/CSS/PHP/HTTP-сервисов 1С 27

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

Пришла в голову идея создать универсальную веб-форму входа в веб-клиент 1С на HTML/CSS/PHP/HTTP-сервисы 1С. Чтобы прямо как на нормальных сайтах. Заодно и для ознакомления с 1С с новой, для себя, стороны. Интересно было попробовать интеграцию PHP - 1С.

1 стартмани

08.11.2018    7420    20    Бэнни    15       

Загрузка чека онлайн-касс (загрузка товаров из чека) 38

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

Обработка-пример, позволяет любому и из любой конфигурации загрузить информацию о товарах из чека(и не только) с сервера ФНС proverkacheka.nalog.ru

2 стартмани

08.10.2018    7223    23    echo77    32       

Работа с публикациями "Инфостарт" 13

Инструменты и обработки Программист Архив с данными v8 УУ Абонемент ($m) Практика программирования О сообществе WEB

Работа с рублевыми публикациями на сайте "Инфостарт": ведение клиентов, заказов, обновление файлов публикации, рассылка обновлений.

1 стартмани

13.09.2018    8233    10    RocKeR_13    12       

SOAP для чайников 86

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

Немножко про SOAP сервис. И пример работы с подключением и получением данных по SOAP за 5 минут.

1 стартмани

05.09.2018    18473    25    dusha0020    18       

Класс-обработка “Работа с картами Яндекс” 58

Инструменты и обработки Программист Конфигурация (md, cf) v8 Абонемент ($m) Разработка внешних компонент WEB

Как показать точку или маршрут на карте Яндекс. Как получить координаты по строке адреса (геокодирование).

1 стартмани

01.08.2018    10597    129    RSConsulting    13       

HTTP Сервисы: Путь к своему сервису. Часть 1 258

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

Уже много было написано про http-сервисы, но то и дело всплывают «Новые» статьи по обмену между базами V8 по COM, что «Немножко» удивляет. Решил внести свои 5 копеек, поработаем с http-сервисом.

1 стартмани

15.07.2018    35154    15    dsdred    22       

Пример использования REST API Яндекс Диска 33

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

Пример использования REST API Яндекс Диска: чтение диска, добавление каталога, загрузка файла, скачивание файлов или каталогов, удаление файлов или каталогов.

1 стартмани

26.06.2018    12394    23    MKFreeUser    12       

Обмен файловыми базами данных через Yandex диск 7

Инструменты и обработки no Приложение (exe) v8 Россия Windows Абонемент ($m) WEB

Выполнение операций обмена с Yandex диском для файловых БД, по протоколу WebDav, в автоматическом или ручном режимах.

1 стартмани

11.06.2018    9863    6    slimper    1       

Чтение сжатого gzip, deflate HTTP ответа сервера. Без ВК. Уменьши время загрузки и сократи трафик в 3 раза 69

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

В платформе 1С:Предприятие не реализовано штатного механизма декодирования ответа веб серверов, в которых присутствует gzip сжатие. Некоторые использовали WinHttpRequest.5.1 , кто-то писал ВК. Друзья, хватит. Вот вам решение.

1 стартмани

08.06.2018    8038    45    Malfarion    14       

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

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

Просмотр и каталогизация в более удобном виде публичных телеграм каналов, групп и чатов.

1 стартмани

02.06.2018    9912    7    DO_WHILE_LOOP    7       

Простой эмулятор вызова веб-сервиса 1С с просмотром результата 24

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

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

1 стартмани

24.04.2018    7360    17    anvolkov1cbit    9       

Интеграция между Atlassian Jira и 1С:Предприятие 8.3 используя Jira REST API (выборка, создание и изменение запросов, чтение, создание и удаление записей о работах, чтение комментариев и другие возможности) 80

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

Внешняя обработка на управляемой форме для 1С:Предприятие 8.3 по интеграции с Atlassian Jira используя Jira REST API. Ключевые функции: выборка запросов с использованием JQL; добавление и изменение запросов; добавление, изменение и удаление записей о работах; чтение комментариев к запросам; сохранение всех ключевых параметров между сеансами работы. Тестирование проводилось на платформе 1С (8.3.11.2954) совместно с JIRA Server platform (7.3.7)

1 стартмани

24.04.2018    16822    113    Ko1t    63       

Простая и пошаговая интеграция Яндекс-Алисы и 1С 76

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

Интеграция Алисы и 1С через http сервис на платформе 8.3.9. Используем виртуальный сервер, сертификат от letsencrypt, и делаем простые запросы к базе из Алисы.

1 стартмани

09.04.2018    14867    15    kiv1c    33       

Чтение и запись из таблиц гугл (google sheets) в табличный документ 1С (8.3, управляемые формы) 148

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

Внешняя обработка на управляемой форме для 1С версии 8.3 для доступа к сервисам Google Sheets c использованием протокола авторизации OAuth 2.0. Выполняет получение списка листов таблицы гугл, чтение таблицы гугл в табличный документ 1С и запись из табличного документа 1С в таблицу гугл. Тестирование проводилось на платформе 1С:Предприятие 8.3 (8.3.11.2954).

1 стартмани

09.04.2018    21228    164    Ko1t    50       

Внешняя компонента для работы по Web-socket протоколу 21

Инструменты и обработки Программист Архив с данными v8 Windows Абонемент ($m) Разработка внешних компонент WEB

Кто когда-нибудь сталкивался с обменом данными по Web-Socket (wss) протоколу из 1С, тому известно, что в платформе отсутствуют данные механизмы (не путать с HTTP запросами и WebServices). Предлагается использовать внешнюю компоненту, написанную по технологии NativeAPI, для подключения и обмена с серверами из 1С-Предприятия, работающими по протоколу Web-Socket.

6 стартмани

30.03.2018    12929    9    Ditron    50       

2 в 1: Проверить действительность паспорта / Получить ИНН по паспорту 38

Инструменты и обработки Бухгалтер Внешняя обработка (ert,epf) v8 v8::УФ ERP2 БП3.0 ЗУП3.x Россия БУ Управление персоналом (HRM) Абонемент ($m) Обработка справочников WEB

Представляю вашему вниманию внешнюю обработку заполнения элемента справочника "Физические лица". Обработка выполнена с использованием API (для работы необходим доступ в интернет), содержит полностью открытый код и 2 команды: Проверка документа, удостоверяющего личность, в списке недействительных паспортов и Заполнение ИНН по паспортным данным.

1 стартмани

27.02.2018    11555    124    VladimirElohov    33       

Построение маршрута доставки с расчётом расстояния для любой базы УФ 56

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

Графическое изображение маршрутного листа по картам гугл. Работает на любой конфигурации с управляемыми формами. Использует новую версию api google-карт от 13.02.2018 года под IE11.

10 стартмани

24.02.2018    18458    36    KorotkovRV    16       

А чё это вы здесь делаете, а? 142

Статья Программист Внешняя обработка (ert,epf) v8 1cv8.cf Абонемент ($m) WEB

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

1 стартмани

21.01.2018    16559    28    infosoft-v    42       

Пример заполнения/создания файла XML из XSD схемы, используя XDTO 128

Статья Программист Документ XML v8 1cv8.cf Абонемент ($m) Обмен через XML WEB

Добрый день, коллеги! Наконец-то дошли руки написать сию статью. Хочу поделиться своим опытом по разбору xsd схемы используя Фабрику XDTO, а также связанным с этим XML файлом. Думаю, наверняка кому-то понадобится.

1 стартмани

21.12.2017    28579    40    sandybaev    23       

Проверка орфографии средствами Yandex Speller 77

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

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

1 стартмани

09.11.2017    13065    49    🅵🅾️🆇    38       

Веб-сервисы 1С и PHP 31

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

Пример создания веб-сервиса на 1С, использование пагинации в запросах 1С, примеры кода на php - передача параметров, получение и разбор данных.

1 стартмани

20.10.2017    18540    41    serg1234    12       

Ведение локального каталога обработок с Инфостарт 67

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

Обработка наводит порядок в ваших скачанных и локально хранимых обработках с Инфостарта. Это особенно удобно тем коллегам, которые уже скачали немалый объем обработок и хотят получить удобный инструмент навигации по списку.

1 стартмани

06.10.2017    18282    55    rpgshnik    48       

Подсистема Вики - интеграция 1С и сайта под управлением MediaWiki 90

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

Редактирование статей сайта Mediawiki из 1С. Формирование функционального описания конфигурации на сайте Вики.

1 стартмани

19.09.2017    20516    31    shmalevoz    18       

Беспроводные метки NFC 40

Инструменты и обработки Программист Конфигурация (md, cf) v8::Mobile Android Абонемент ($m) Мобильная разработка

Технический прогресс не стоит на месте, появляющиеся новые технологии со временем дешевеют и становятся доступны практически всем желающим. Как пример можно привести мобильные телефоны. Середина 80-ых - начало 90-ых были переносные таксофоны с ручками или кирпичи стоимостью несколько тысяч $, конец 90-ых - большого размера трубки, с торчащими антеннами со стоимостью от 100$ Такую же аналогию можно провести с NFC метками, используемыми в учетных целях.

1 стартмани

16.05.2017    16998    43    PloAl    16       

Отправка HTTP запроса из 1С на сайт. 25

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

Задача: Передать данные из 1С на сайт. Данные будут передаваться в PHP скрипт, через HTTP запрос, вызываемый из 1С.

1 стартмани

07.05.2017    43389    67    sm2701    14       

Web сервис 1С 24

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

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

1 стартмани

21.03.2017    22190    74    hiduk    33       

Разбор адреса на составляющие с помощью Яндекс API и Google API 44

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

Есть адрес строкой, а нужно разбить его на составляющие? Для этого не обязательно писать собственный код, пользуемся Яндекс API и Google API.

1 стартмани

10.02.2017    17827    95    Ivon    22       

Передача большого количества объектов через Web-сервисы 43

Статья Программист Внешняя обработка (ert,epf) v8 УТ11 Абонемент ($m) WEB

Один из вариантов передачи большого количества объектов при использовании Web-сервисов.

1 стартмани

31.01.2017    12349    6    SinglCOOLer    14       

JSON парсер для профессиональных разработчиков 51

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

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

4 стартмани

09.01.2017    19431    33    O-Planet    29       

Telegram bot. Обработка для управления ботом 24

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

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

1 стартмани

14.11.2016    8065    46    silberRus    10       

Подключение к Яндекс.Диску через REST API 29

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

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

1 стартмани

14.11.2016    11005    71    vitaliy1911    11       

Работа с двоичными данными на примере чтения файлов изображений. Новые возможности 8.3.9 109

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

В статье приводятся новые функции по работе с двоичными данными, появившимися в версии платформы 8.3.9 , на примере анализа формата и размера изображений. А также пример отправки изображения через API ВКонтакте с помощью новых объектов (без использования ОбъединитьФайлы())

1 стартмани

14.11.2016    18395    16    Anton64    22