Пример отправки оповещений из 1с windows 10 notification

10.05.18

Интеграция - WEB-интеграция

Данная статья показывает пример интеграции 1с(клиентской части) и python (socket server). Данная статья может быть полезна администраторам, программистам, но в основном интеграторам(например реализация интеграции со сторонним приложением, работа с ком портом, либо низкоуровневые действия за пределами 1с).

Скачать файл

ВНИМАНИЕ: Файлы из Базы знаний - это исходный код разработки. Это примеры решения задач, шаблоны, заготовки, "строительные материалы" для учетной системы. Файлы ориентированы на специалистов 1С, которые могут разобраться в коде и оптимизировать программу для запуска в базе данных. Гарантии работоспособности нет. Возврата нет. Технической поддержки нет.

Наименование По подписке [?] Купить один файл
Пример отправки оповещений из 1с windows 10 notification:
.py 1,70Kb
1
1 Скачать (1 SM) Купить за 1 850 руб.
Пример отправки оповещений из 1с windows 10 notification:
.epf 6,03Kb
3
3 Скачать (1 SM) Купить за 1 850 руб.

Код Клиента:

    АдресСервера = "localhost";
    Порт = 13050;
    
    HTTPСоединение = Новый HTTPСоединение(АдресСервера, Порт); 
    
    Сообщение = Новый Структура;
    
    Сообщение.Вставить("title", "from 1c");
    Сообщение.Вставить("text", "it`s works"+Символы.ПС+Строка(ТекущаяДата()));
    
    ТелоЗапроса = JSON.лЗаписатьJSON(Сообщение);
    
    HTTPЗапрос = Новый HTTPЗапрос();
    
    HTTPЗапрос.УстановитьТелоИзСтроки(ТелоЗапроса);
    
    HTTPОтвет = HTTPСоединение.ОтправитьДляОбработки(HTTPЗапрос);

Код Сервера:

import socket
import json
import win10toast

def send_answer(conn, data="", status="200 OK", typ="text/plain; charset=utf-8"):
    
    data = data.encode("utf-8")
    
    conn.send(b"HTTP/1.1 " + status.encode("utf-8") + b"\r\n")
    conn.send(b"Server: simplehttp\r\n")
    conn.send(b"Connection: close\r\n")
    conn.send(b"Content-Type: " + typ.encode("utf-8") + b"\r\n")
    conn.send(b"Content-Length: " + bytes(len(data)) + b"\r\n")
    conn.send(b"\r\n")
    conn.send(data)

def parse(conn, addr):

    data = b""
    print('1')    
    while not b"\r\n" in data: 
        tmp = conn.recv(1024)
        if not tmp:  
            break
        else:
            data += tmp
    
    if not data:     
        return       
        
    udata = data.decode("utf-8")
    print('2')   
    method, address, protocol = udata.split(" ", 2)
    if method != "POST":
        send_answer(conn, status="503 MethodError", data="Не найдено")
        return

    udata = udata.split("\r\n", 1)[1]
    print('3') 
    host, user_agent, accept, content_type, content_len, var6, data = udata.split("\r\n", 6)

    message = json.loads(data)

    toaster = win10toast.ToastNotifier()
    toaster.show_toast(message['title'], message['text'], duration=5, threaded=True)
    print('4')       
    send_answer(conn, data='s_ok')


sock = socket.socket()
sock.bind(("", 13050))
sock.listen(5)

try:
    while 1: 
        conn, addr = sock.accept()
        try:
            parse(conn, addr)
        except:
            print('except')
            send_answer(conn, status="503 MethodError", data="Не найдено")
        finally:
            conn.close()
finally: sock.close()

1с отправляет пост запрос с данными ввиде json объекта серверу.

сервер слушает сокет, получает данные, парсит json, вызывает функцию оповещения windows 10.

Скриншот примера вызова из 1с:

апдейт(для справки):

пи скрипты возможно обернуть в  бинарь(ехе) и запускать без установленного интерпретатора, и зависимостей(пакетов)

интеграция 1с python winapi

См. также

WEB-интеграция Администрирование веб-серверов Платные (руб)

Веб-портал обеспечивает удобный доступ к конфигурации 1С:ITIL(ИТИЛ), 1С:ITILIUM, Управление IT-отделом 8 через интернет с любого устройства посредством браузера, увеличивая эффективность работы пользователей и снижая нагрузку на сервер. Быстрая инсталляция портала за пару часов, удобный и интуитивно понятный интерфейс и безопасность данных помогут упростить работу с порталом и ускорить выполнение бизнес-процессов компании.

128000 руб.

19.12.2023    4335    5    0    

11

WEB-интеграция Анализ продаж Системный администратор Программист Пользователь Платформа 1С v8.3 1С:ERP Управление предприятием 2 1С:Управление торговлей 11 1С:Комплексная автоматизация 2.х Управленческий учет Платные (руб)

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

60000 руб.

07.05.2019    35835    71    45    

30

Оптовая торговля Розничная торговля WEB-интеграция 1С:Управление торговлей 10 1С:Управление производственным предприятием 1С:Управление нашей фирмой 1.6 1С:Управление торговлей 11 1С:Комплексная автоматизация 2.х 1С:Управление нашей фирмой 3.0 Платные (руб)

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

57600 руб.

26.11.2024    3300    3    3    

5

WEB-интеграция Программист Бизнес-аналитик Платформа 1С v8.3 1С:ERP Управление предприятием 2 1С:Бухгалтерия 3.0 1С:Управление торговлей 11 1С:Комплексная автоматизация 2.х 1С:Управление нашей фирмой 3.0 1С:Розница 3.0 Оптовая торговля, дистрибуция, логистика ИТ-компания Платные (руб)

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

14400 руб.

20.12.2024    1382    9    2    

11

Сайты и интернет-магазины WEB-интеграция Системный администратор Программист Пользователь Платформа 1С v8.3 1C:Бухгалтерия 1С:Управление торговлей 11 Автомобили, автосервисы Россия Управленческий учет Платные (руб)

Интеграционный модуль обмена между конфигурацией Альфа Авто 5 и Альфа Авто 6 и порталом AUTOCRM. Данный модуль универсален. Позволяет работать с несколькими обменами AUTOCRM разных брендов в одной информационной базе в ручном и автоматическом режиме.

36000 руб.

03.08.2020    19669    24    24    

20

WEB-интеграция Программист Руководитель проекта Платформа 1С v8.3 1C:Бухгалтерия 1С:Франчайзи, автоматизация бизнеса Платные (руб)

Расширение значительно упрощает написание API на 1С. Веб программисты получают простой и понятный доступ к 1С. Описание API создаётся автоматически и представляется в виде удобном как для человека, так и для программной обработки.

24000 руб.

27.09.2024    5528    5    2    

6

Сайты и интернет-магазины Интеграция WEB-интеграция Платформа 1С v8.3 1C:Бухгалтерия Управленческий учет Платные (руб)

Решение осуществляет синхронизацию задач Битрикс24 и 1С, что позволяет в одной системе ставить задачи, контролировать выполнение всего пула задач с группировкой по ответственным и проектам, формировать управленческие отчеты по работе сотрудников (загрузка, просроченные задачи), уведомлять сотрудников о ходе выполнения задач посредством чат-бот Telegram

7200 руб.

04.05.2021    21307    14    19    

18
Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
1. deutsch2008 10.05.18 11:19 Сейчас в теме
а что делать с файлом ".py" ?
2. dmarenin 356 10.05.18 11:37 Сейчас в теме
3. Infactum 318 10.05.18 12:10 Сейчас в теме
Native ВК была бы более правильным решением в данном случае.
Fragster; +1 Ответить
6. dmarenin 356 10.05.18 16:39 Сейчас в теме
(3) это альтернативный пример интеграции, его можно использовать не только для вывода сообщений.
(4) можно смотри (3)
(5) лЗаписатьJSON и сам модуль json, можно использовать стандартный(платформенный) либо вообще стрзаменить по шаблону
4. Kalam 105 10.05.18 13:07 Сейчас в теме
Зачем было писать свой сервер, если win10toast сразу выводит окно?
можно было запихать .py в макеты и открывать, передавая текст через параметры.
1 строчка на 1С и 10 на питоне.
7. login1020 143 14.05.18 11:25 Сейчас в теме
(4) А можно поподробнее?
8. Kalam 105 17.05.18 16:52 Сейчас в теме
(7) в смысле подробнее?
вот в 1с
	вр = ПолучитьИмяВременногоФайла(".py");
	мак = ПолучитьМакет("pyf");
	мак.Записать(вр);
	ЗапуститьПриложение("python "+вр+" "+заголовок+" "+сообщ,,Ложь);


в макет закидываем как двоичные данные пай файл

from win10toast import ToastNotifier
import sys

if __name__ == '__main__':
    t = sys.argv[1]
    m = sys.argv[2]
    q= ToastNotifier()
    q.show_toast(title=t, msg=m)
Показать


ВСЁ!
login1020; +1 Ответить
9. login1020 143 17.05.18 17:53 Сейчас в теме
(8) а чтобы сообщение вышло не на своём, а на определённом компьютере сети?
10. dmarenin 356 17.05.18 19:20 Сейчас в теме
(9) статья же об этом как раз
11. Kalam 105 18.05.18 10:32 Сейчас в теме
(9)


(10) так и задумано что сообщение будет выводиться только на сервере?
dmarenin; +1 Ответить
12. dmarenin 356 18.05.18 17:32 Сейчас в теме
(11) не задумано, а применение разделения логика. да на любом пк где запущен сокет-сервер(в сети за натом порты пробросить нужно будет, это и без меня понятно)
5. ivanleb 10.05.18 15:43 Сейчас в теме
Хорошо бы ещё функцию выложить: лЗаписатьJSON()
Оставьте свое сообщение