FastAPI (python) - инструмент для быстрого создания Веб сервиса (WSGI) с REST api

Публикация № 1426964 19.04.21

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

FastAPI REST

Ознакомительная статья по FastAPI (python) - инструменту быстрого создания Веб сервиса (WSGI) с REST api.

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

FastAPI - очень простой и довольно быстрый фреймворк, предназначенный именно для организации REST API сервисов. Фреймворк написан на python, может работать на различных операционках, снабжен хорошей документацией. Главное удобство его использования заключается в простоте кодинга, а кроме того - в автоматическом формировании документации по вашему API в формате Open API. Кроме этого, в FastAPI имеется встроенная асинхронность, валидация параметров запросов. Официальный репозитарий проекта - тут, документация - тут.

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

 

Итак, начнём. Первое что нужно для работы - python. Пакет можно скачать отсюда - https://www.python.org. Далее, нужна среда разработки. Рекомендую использовать pycharm - тут (у них есть бесплатная версия Community), но вполне подойдет и Visual Studio Code (тоже легко найдёте).
Надеюсь у вас получилось всё скачать и установить, а если нет, то смотрите информацию в Интернете - её море.

Далее, создаём новый проект и устанавливаем FastAPI:

pip install fastapi

Теперь установим wsgi сервер, с которым работает FastAPI:

pip install uvicorn

Вот в принципе и вся установка. 

Окей, далее, в папке проекта создадим файл main.py (если конечно среда разработки его не создала). Напишем в нем такой код: 

import uvicorn

if __name__ == '__main__':
    uvicorn.run(
        "app:app",
        host='localhost',
        port=8080,
        reload=True
    )

здесь мы описываем запуск wsgi сервера и приложения под именем app.py на нём.

Теперь создадим в папке проекта сам файл app.py:

from fastapi import FastAPI

app = FastAPI()

@app.get("/")
async def root():
    return {"message": "Hello World"}
    

@app.get("/{item_id}")
async def read_item(item_id: int):
    return {"item_id": item_id}
    

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

В терминале пишем:

main.py

В терминале должны появиться подобные строки:

Ошибок нет, сервер стартанул. Наше API работает? Проверим. Переходим в браузер:

 

Перейдём по адресу http://localhost:8080/docs:

Это и есть интерактивная документая (документация доступна также и по адресу - http://localhost:8080/redoc, но немного в другом формате). Обратите внимание на то, что кнопки активны, можно вручную передавать туда параметры и смотреть результаты. Это своего рода консоль (swagger).

В нашем примере реализовано лишь две очень простые функции, вызываемые GET запросами. Однако, вы можете создавать и PUT, и DELETE, и POST запросы. Для этого, в декораторе необходимо лишь указать необходимый метод. Подробности ищите в документации и примерах к ней. Мы же в завершении статьи, прикрутим к нашему API базу данных.

Самым простым вариантом при выборе базы данных в python является SQLite. Это файловая база данных, идущая "в коробке" с python. Разумеется, вы можете установить и настроить использование других СУБД, но сейчас это не требуется. Для примера, пусть в базе будет только одна таблица items из которой и будут извлекаться данные для функций API.

Для удобства, создадим в проекте два новых файла: controller.py - для описания финкций, database_scripts - для описания взаимодействия с базой. Изменим также и app.py - здесь нужно подключить файл controller.py для вызова соответствующих функций. Для данной задачи мне удобно было организовать модули именно так.

app.py:

from fastapi import FastAPI
import controller as controller

tags_metadata = [
    {
        'name': 'items',
        'description': 'items',
    }
]

app = FastAPI(
    title='Mini api',
    description='This is my mini api (description)',
    version='1.0.0',
    openapi_tags=tags_metadata
)

@app.get("/")
async def root():
    return controller.get_items()

@app.get("/{item_id}")
async def read_item(item_id: int):
    return controller.get_item(item_id)

 

controller.py:

import database_scripts as db_scripts

def get_items():
    return db_scripts.select_items()

def get_item(item_id):
    results = db_scripts.select_items(item_id)
    return results

 

database_scripts.py:

import sqlite3 as sq

# Параметры базы данных
DATABASE = 'database.db'
SCHEME = 'schem.sql'


# Подключение базы данных
def connect_db():
    return sq.connect(DATABASE)


# Создание базы данных (по скрипту из SCHEME)
def create_db():
    connection = connect_db()
    cursor = connection.cursor()
    with open(SCHEME, mode='r') as file:
        scheme_script = file.read()
    cursor.executescript(scheme_script)
    connection.commit()
    cursor.close()
    connection.close()


# Вспомогательная функция для упрощения получения результатов по ключу
def dict_factory(cursor, row):
    d = {}
    for idx, col in enumerate(cursor.description):
        d[col[0]] = row[idx]
    return d


def select_items(item_id=None):
    my_list = []
    connection = connect_db()

    if item_id == None:
        sql = "SELECT * FROM items"
    else:
        sql = f"SELECT * FROM items WHERE id = {item_id}"

    try:
        cursor = connection.execute(sql)
        cursor.row_factory = dict_factory
        for row in cursor:
            record = {
                'name': row.get('name'),
                'id': row.get('id'),
                'folder_id': row.get('folder_id'),
                'is_weighted': row.get('is_weighted'),
                'description': row.get('description'),
            }
            my_list.append(record)

    except connection.Error as error:
        print("Error connection to database", error)
    finally:
        if connection: connection.close()

    return my_list

 

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

CREATE TABLE IF NOT EXISTS items (
    id integer PRIMARY KEY,
    name char(150) NOT NULL,
    folder_id integer,
    is_weighted boolean,
    description text
);

 

Думаю что то, что описано в файлах ясно всем - из модуля app.py вызываются соответствующие функции из controllers.py, где при необходимости из database_scripts.py вызываются функции, связанные с взаимодействием с базой данных.

Ок. Теперь осталось создать саму базу и заполнить её чем-то. Создавать и заполнять базу можно вручную (н-р с помощью DB Browser for SQLite), либо выполнив такой незамысловатый код в консоли: 

>>> from database_scripts import create_db
>>> create_db()

 

Для заполнения можно добавить в database_scripts.py такой код:

items = [
    (1, 'Вентилятор BINATONE ALPINE 160вт, напольный ,', 1, 0, 'Вентилятор BINATONE ALPINE 160вт, напольный , оконный'),
    (2, 'Вентилятор JIPONIC (Тайв.),', 1, 0, 'Вентилятор JIPONIC (Тайв.), напольный'),
    (3, 'Вентилятор настольный', 1, 0, 'Вентилятор настольный'),
    (4, 'Вентилятор ОРБИТА,STERLING,ЯП.', 1, 0, 'Вентилятор ОРБИТА,STERLING,ЯП.'),
    (5, 'Пылесос "Омега" 1250вт', 1, 0, 'Пылесос "Омега" 1250вт'),
    (6, 'Телевизор "SHARP"', 3, 0, 'Телевизор "SHARP"'),
    (7, 'Набор кухонной мебели (цвет белый)', 4, 0, 'Набор кухонной мебели (цвет белый)'),
]


def insert_testdata():
    connection = connect_db()
    cursor = connection.cursor()
    cursor.executemany("INSERT INTO items VALUES(?, ?, ?, ?, ?)", items)
    connection.commit()
    connection.close()

а затем выполним его в консоли:

>>> from database_scripts import insert_testdata
>>> insert_testdata()

 

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

 

Вот собственно и всё. Перезапустим сервер и проверим работу API.

ну и второй API метод:

 

На этом всё. Чтож, надеюсь мой поток мыслей был вам понятен, а информация окажется хоть немного полезной. Как видите, почти без программирования (и без ООП) вполне себе можно быстро и легко создавать REST API. Конечно, здесь нет ни валидации, ни ORM или моделей, нет даже авторизации, а многие вещи даже и вовсе не упоминались, но это и не в ходило в цели обзора.

Исходный код из статьи.

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

Комментарии
В избранное Подписаться на ответы Сортировка: Древо развёрнутое
Свернуть все
1. informa1555 2092 19.04.21 09:51 Сейчас в теме
Отличная статья!
Идальго; +1 Ответить
2. Nubsdale 19.04.21 10:30 Сейчас в теме
Автор, объясните, почему вы прикручивали всё это к SQLite, а не к 1С ?
3. Идальго 199 19.04.21 10:34 Сейчас в теме
(2) Ну мне так нравится, это удобнее и быстрее, всё из коробки)) Ну и на сервере может и не быть 1С. Потом, я вот не знаю, с 1С (которая файловая база) вообще работают кроме как из самой 1С...
4. Nubsdale 19.04.21 10:37 Сейчас в теме
(3) Статья у вас интересная, вот только было здорово, если бы на 1Сном форуме, была 1С, а не SQLite
freelog; ellavs; +2 1 Ответить
5. Идальго 199 19.04.21 10:41 Сейчас в теме
(4) Аххаа))) В моей практике, когда я занимался 1С разработкой, довольно часто возникала задача из статьи (быстренько с минимальными условиями поднять REST API микросервис). Уверен, что многим 1С разработчикам материал будет полезен и позволит сэкономить свое время на решение подобной задачи. Именно поэтому я опубликовал статью на форуме про 1С )))
Alex_Iz; Deslime; mnemchinov; JohnyDeath; Upiterus; Quasar; nazirovramzil; v3n7; +8 Ответить
6. user925427 96 19.04.21 11:04 Сейчас в теме
Сама статья написана понятно, ссылки для желающих попробовать работу с внешним API даны.
На мой взгляд, не хватает описания класса задач, для которых применимо данное решение,
так как не для любой задачи оно оптимально.
Зачем нужна дополнительная SQL-база? Автор говорит, что "на 1С - просто не удобно, плюс
ограничения 1С и т.д. и т.п."? Полагаю, что из неё быстрее возвращать информацию по запросам.
Но в этом случае понадобится обмен между 1С и этой базой, а актуальность информации в SQL-базе
будет определяться частотой этого обмена. Если же "создавать и PUT, и DELETE, и POST запросы",
то обмен понадобится двусторонний для актуализации информации в 1С. О необходимости такого
обмена стоило бы упомянуть. А за доступность описания однозначный плюс.
7. Идальго 199 19.04.21 11:32 Сейчас в теме
(6) Ну не знаю, для ознакомительной статьи достаточно и материала, и описания, и функционала. Да вот даже в самой первой строке статьи написано зачем это и для чего. Если говорить в контексте 1С, то знаете, когда мне нужно на базе 1С-ки поднять REST API или там SOAP(WSDL), то я прям объектом метаданных соответствующим из самой 1С и воспользуюсь, м.б. OData прикручу. Но, что делать, если вам срочно понадобился вспомогательный REST API сервис (н-р большая справочная база, ФИАС, микросервис, да что угодно). Не городить же для этого ещё одну базу 1С, когда есть более удобные и быстрые механизмы.
19. NoRazum 29 26.04.21 10:00 Сейчас в теме
(6) Статья годная. Тоже столкнулся при чем тут 1С? и в каком кейсе это может понадобиться?
Кто может прояснить.
8. SaschaG 66 19.04.21 16:27 Сейчас в теме
Как-то выглядит излишне. В 1С есть http-сервисы, которые позволяют реализовать это. А то ведь шанс отказа системы - это шанс отказа любого из ее элементов, а тут мы накидываем сверху еще 2.
Kopitsa.k; +1 Ответить
9. pm74 196 19.04.21 20:20 Сейчас в теме
(0) еще раскройте тему как запустить сервис, желательно в винде , желательно venv
кстати unicorn под win работает ? gunicorn насколько помню только unix
точно работает Waitress
10. Идальго 199 19.04.21 20:43 Сейчас в теме
(9) оно на всём работает)) В статье написано как запустить и настроить. Ставите питон и пайчарм, делаете файлики как в первой части статьи. Создаете проект, внизу есть терминал - прямо в нём пишите имя файла.
11. pm74 196 19.04.21 21:01 Сейчас в теме
(10) видимо чего то я не уловил , ткните меня в то место в тексте, где написано как виндовый сервис на питоне поднять
12. Идальго 199 19.04.21 21:09 Сейчас в теме
(11) Кажется я понял.. видимо вы хотите запускать программу как службу виндоуз (чтобы в списке сервисов было). Кхм, сорри, но я не знаю. Я делал запускатель - батник с прописанной строкой запуска, который стартовал при старте системы. Вообще, много вариантов гуглится, того как скрипт питона использовать в качестве службы виндоуз.
16. 1cnik2 23.04.21 07:43 Сейчас в теме
(11) следует курить
choco - менеджер пакетов для windows(https://chocolatey.org)
nssm - сервис-менеджер, позволяет регистрировать и запускать консольные программы как сервисы(установка - choco install nssm)
virtualenv - поднятие виртуального окружения python в отдельно взятом каталоге(это важная история, поскольку без этого при наличии более, чем одного подобного сервиса, они начнут конфликтовать по библиотекам, а virtualenv позволит установить библиотеки нужных версий именно для одного сервиса в виртуальное окружение)
13. botokash 286 20.04.21 10:02 Сейчас в теме
Не совсем понял преимуществ создания сервисов на FastAPI перед тем же Flask. Только вижу автодокументацию из коробки, что во фласке решается отдельными либами.
14. Идальго 199 20.04.21 13:55 Сейчас в теме
(13) Ну с Фласком я и не сравнивал. Безусловно, на Фласке всё это тоже можно сделать, но всё же Фласк это больше веб-фреймворк (там же вот и шаблонизатор в коробке вроде Джинджа2), с асинхронностью тоже были вопросы. Ну и FastAPI все же вцелом по-проще, на мой взгляд.
17. 1cnik2 23.04.21 07:46 Сейчас в теме
(13) основные преимущества fastapi перед flask - асинхронность, проверка входящих данных и автодокументация
15. malikov_pro 780 20.04.21 17:54 Сейчас в теме
(0) Не описан вариант организации сервиса из app.py, руками запускать и держать открытой консоль неудобно.

Уточните пожалуйста контекст использования, потому что от него зависит выбор инструмента. Например мне для доступа к MSSQL по HTTP удобнее express.js использовать, т.к. файл один и запускается в службу через pm2.

Если нужна обертка для SQL, то посмотрите на PostgREST, в нем нужно только сформировать структуру БД, автодок присутствует.

Если в рамках python возможно будет удобно https://docs.python-eve.org/en/stable/.

По форматированию:
Код можно организовать под спойлеры, чтобы основное повествование было видно.

(4) В каком контексте хотите использовать rest proxy перед 1С? Если организовать аутентификацию, валидацию и подобное, то можно разобрать данный вопрос, в самой 1С на данный момент с этим туго.
Alex_Iz; Идальго; +2 Ответить
21. Aletar 09.06.21 09:11 Сейчас в теме
(15) А можете подсказать где посмотреть на варианты организации сервиса из app.py, сходу что-то не нашел.
18. JohnyDeath 299 23.04.21 12:23 Сейчас в теме
Еще есть вот такой проект, где пишем на привычном 1С-языке и имеем почти все плюсы GO
https://github.com/covrom/gonec
Скрипт может быть скомпилирован в один исполняемый файл. Работает под любой ОС
Alex_Iz; Идальго; +2 Ответить
20. Aletar 09.06.21 09:08 Сейчас в теме
(18) Проект, судя по всему, уже не развивается, последний коммит 3 года назад. Можно, конечно, ещё OneScript.Web вспомнить, но там, вроде как, тоже сильно развития нет.
23. Aletar 10.06.21 04:50 Сейчас в теме
24. user1637485 29.07.21 08:42 Сейчас в теме
Касаемо БД 1С
Нет ничего сложного прикрутить из FastAPI запросы к БД 1С
Можно часть информации хранить в mySQL/постгре, другую в 1С
API в этом тем и хорош, что под капотом у вас может быть несколько БД... редис и т.п. Даже несколько серверов с FastAPI, каждый из которых будет отвечать за свои эндпоинты. Т.е. разделить нагрузку на разные сервера.
Такое на вордпресе не реализовать )

П.С. У меня FastAPI работает с постгрес БД + часть информации берется из MSSQL БД

Автор статьи привёл самые основы, без углубления в сериализацию/десериализацию запросов в Pydantic, без тестов.
25. user1649582 19.08.21 15:00 Сейчас в теме
изучаю материал, спасибо за статью.
вот только не могу понять ) почему у меня при обращении на http://localhost:8080/3 выдает {"item_id":3} вместо [{ "name:Вентилятор настольный" .....
Оставьте свое сообщение

См. также

.Net в 1С. На примере использования HTTPClient, AngleSharp. Удобный парсинг сайтов с помощью библиотеки AngleSharp, в том числе с авторизацией аля JQuery с использованием CSS селекторов. Динамическая компиляция Промо

Практика программирования WEB v7.7 v8 Бесплатно (free)

Часто приходится парсить сайты, в том числе с авторизацией, перескакивая со страницы на страницу по ссылкам. Тот, кто занимался вэб программированием, знает, как удобно использовать JQuery и CSS селекторы. На .Net написана очень удобная библиотека AngleSharp. Я покажу, как с её помощью можно значительно облегчить себе труд.

10.03.2016    58425    Serginio    33    

Использование Gatekeeper для авторизации доступа к HTTP публикации сервера 1С

Системное администрирование Информационная безопасность WEB v8 Бесплатно (free)

В статье опишу вариант настройки Keycloack и GoGatekepper для авторизации доступа к HTTP публикации сервера 1С

22.10.2021    301    malikov_pro    0    

Повышение производительности веб-сервисов. Переиспользование сеансов

WEB Производительность и оптимизация (HighLoad) v8 Бесплатно (free)

Повышение производительности веб-сервисов. Переиспользование сеансов. Практическая реализация.

20.10.2021    937    sorter1    2    

Когда интерфейсам 1С нужны веб-технологии

WEB Работа с интерфейсом Бесплатно (free)

Есть несколько способов сделать интерфейс в 1С богаче и оптимальнее с помощью веб-технологий. О том, какие практические приемы помогут в этой задаче, на митапе «Интерфейс в 1С» рассказали руководители разработки в компании «Арбис» Матвей Серегин и Анна Гнатюк.

15.10.2021    2009    Akcium    8    

Online телефонный справочник из 1С: Зарплата и управление персоналом Промо

WEB Управление персоналом (HRM) Управление персоналом (HRM) v8 ЗУП3.x Россия Бесплатно (free)

В интернете представлено много реализаций online телефонных справочников организаций. Есть справочники, которые использует для хранения информации базу Active Directory (LDAP), есть справочники, которые реализованы с использованием СУБД (например, MySQL). Но я не нашел справочника, который использует информацию из базы 1С. Далее я рассмотрю данную разработку.

10.03.2017    27319    ruha    21    

WEB/HTTP сервисы. Базовые отличия и применение на практике

Практика программирования WEB v8 Бесплатно (free)

Рассказываем о WEB и HTTP сервисах, их практическом применении, о шишках, которые мы набили, и о выводах, которые сделали. Спойлер: тех, кто дочитает статью до конца, ждет бонус от автора.

04.10.2021    4377    Neti    14    

Swagger для 1С. Описание сложной структуры входящих и исходящих данных

WEB OneScript Россия Бесплатно (free)

Анонс нового функционала 1Script пакета swagger версии 0.5.0.

04.10.2021    1839    kuleshov.x    7    

Интеграция 1С с ГИИС ДМДК

Обмен через XML WEB v8 ERP2 Ювелирная промышленность и торговля Россия Бесплатно (free)

ГИИС ДМДК - единая информационная платформа для взаимодействия участников рынка драгоценных металлов и драгоценных камней. с 01.09.21 стартовал обязательный обмен данными с Федеральной пробирной палатой (ФПП) исключительно через ГИИС. А постепенно - с 01.01.2022 и с 01.03.2022 - все данные о продаже драгоценных металлов и камней должны быть интегрированы с ГИИС. У многих пользователей возникает вопрос как автоматизировать обмен между программой 1С и ГИИС ДМДК. В настоящей статье ВЦ Раздолье поделится своим опытом о реализации такого обмена. Автор статьи - Мордовин Антон - архитектор систем на базе 1С Внедренческого центра "Раздолье".

30.09.2021    2090    1СERP    19    

Информер для сайта , актуальные релизы 1С + Проверка подписки ИТС. Промо

WEB Администрирование данных 1С Сервисные утилиты Бесплатно (free)

Небольшой код который встраивается на сайт и выводит информацию о последних релизах конфигураций 1С

12.09.2014    41192    Malfarion    34    

Интеграция 1С с Битрикс24 через вебхуки

WEB v8 1cv8.cf Россия Бесплатно (free)

Пример получения токена и http запрос к API битрикса.

15.09.2021    1346    TyurinArt    5    

Бесплатный сертификационный курс Интеграция API Яндекс.Маршрутизации и программных продуктов на базе 1С (22 сентября - 5 октября 2021 года)

WEB Бесплатно (free)

Курс позволит получить востребованную квалификацию по работе с API Яндекс.Маршрутизации, поможет разобраться с особенностями настройки сервиса и научит реализовывать сложные операционные бизнес-схемы, чтобы быстрее интегрировать его в своей компании или на стороне клиента, снижая затраты на логистику на 10-20% и повышая маржинальность организации до 2х раз. Сертифицированные специалисты также смогут присоединиться к агентской программе Яндекс.Маршрутизации и получать дополнительный доход от продажи лицензий и проведения работ по интеграции сервиса.

13.09.2021    1264    routing    0    

Внедрение веб-клиента – взгляд изнутри программиста 1С со стороны заказчика

WEB Бесплатно (free)

Программист 1С в компании TELS Виталий Ильинчик выступил на онлайн-митапе «Web-клиент для 1С». Он рассказал о том, с какими проблемами столкнется ИТ-отдел заказчика и как их можно предупредить. За основу взят опыт внедрения веб-кабинета поставщика на платформе vCan-Site.

10.09.2021    953    wtlz    0    

Кэширование COM-соединения. Три способа Промо

Практика программирования Перенос данных из 1С7.7 в 1C8.X Внешние источники данных WEB v8 Россия Бесплатно (free)

Статья о трех способах кэширования COM-соединения в 1С:Предприятии 8.x.

11.04.2013    43063    YPermitin    42    

Обмен с HTTP сервисом файлами по формату multipart/form-data

WEB v8 1cv8.cf Россия Бесплатно (free)

Потребовалось отправить картинку в теле запроса в HTTP сервис методом POST, куча реализаций, но есть маленькие нюансы, если хотя бы кому-то поможет, то уже это было не напрасно.

07.09.2021    2226    ix5s    21    

Разработка гибридного web-приложения на 1С, возможности и ограничения

WEB v8 Бесплатно (free)

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

06.09.2021    2496    Бэнни    11    

Работа с WEB-сервисами под HTTPS на примере прямого обмена между базами (1С – 1С) 

Обмен данными 1С WEB v8 Россия Бесплатно (free)

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

03.09.2021    5744    UltraUnion2005    8    

Заготовка для загрузки файлов по ftp Промо

WEB Перенос данных из 1C8 в 1C8 v8 1cv8.cf Бесплатно (free)

3 процедуры и 1 макет

03.06.2013    31269    anig99    6    

Глава 2. Как я написал (собрал с инфостарта) свой парсер сайта 1С Releases

Практика программирования WEB v8 1cv8.cf 1С:Франчайзи, автоматизация бизнеса Россия Бесплатно (free)

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

31.08.2021    756    ldmonster    4    

Взаимодействие с api Честный знак (Молочная продукция)

WEB Практика программирования Универсальные функции v8 1cv8.cf Бесплатно (free)

Обзор основных примеров взаимодействия с Честным знаком по api для нетиповых конфигураций.

30.08.2021    1544    user5300    39    

Умная маршрутизация: о сложностях интеграции с 1С (часть 2)

WEB v8 УТ11 Бесплатно (free)

В статье будет много примеров кода с комментариями работы расширения для обмена данными УТ11.4 с Яндекс.Маршрутизацией через выгрузку/загрузку EXCEL файла.

27.08.2021    1843    greencactus    6    

Организация удаленного доступа к корпоративной информационной системе — это просто ! Промо

Внешние источники данных Монитор заказов WEB Монитор заказов Бесплатно (free)

Хочу поделиться своим опытом создания web морды к корпоративной информационной системе на базе 1С. Необходимо организовать сбор заказов от удаленных пользователей. - Каждый пользователь видит свой набор данных, и работает со своими документами. - Доступ по логину/паролю, работа в основном с планшетов (iPad) или с десктопа. - Сервер должен находиться за пределами организации. - Себестоимость 1 пользователя не более 10$ за месяц. - Использование в основном мобильного канала связи GPRS (~100 КБ/с).

31.08.2012    29083    avhrst    13    

Встраивание форм 1С на страницы сайта

WEB v8 1cv8.cf Бесплатно (free)

В платформе 8.3.16 появилась возможность выводить на страницах сайта информацию из веб-клиента 1С так, что пользователь даже не заметит, что работает с платформой. Руководитель компании Айтон Михаил Пинягин на онлайн-митапе «Web-клиенты для 1С» рассказал о том, какие особенности нужно учесть при настройке встраиваемого веб-клиента, и какие возможности он дает.

27.08.2021    2447    mikepin    6    

WEB-интерфейсы как механизм сбора и контроля данных в розничной сети. Инструменты и наработки

WEB 1cv8.cf Бесплатно (free)

Веб-интерфейсы упрощают сбор информации и помогают оперативно контролировать процессы на предприятии. О том, как реализовать сервис, собирающий данные от управляющих розничных точек через веб-интерфейс, и какие инструменты для построения такого сервиса можно использовать, на онлайн-митапе «Web-клиенты для 1С» рассказал ИТ-директор компании ИТВОРКС Антон Шаганов.

24.08.2021    1141    itworks    3    

Гарри Поттер и подкапотное пространство веб-клиента

WEB v8 Бесплатно (free)

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

20.08.2021    2782    TitanLuchs    19    

Умная маршрутизация: кейс интеграции с 1С (часть 1)

WEB v8 Бесплатно (free)

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

18.08.2021    4133    greencactus    40    

Примеры вызова в 1С методов API до реестров открытой части Электронного кабинета налогоплательщика (Украина)

WEB v8 Украина Бесплатно (free)

Примеры вызова в 1С методов API до реестров открытой части Электронного кабинета налогоплательщика, Украина. Тестирование проводил на 1С:Предприятие 8.3 (8.3.10.2561).

28.07.2021    760    Pervuy    4    

Телеграм-бот как инструмент

WEB v8 1cv8.cf Бесплатно (free)

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

21.07.2021    3985    M_A_D    19    

Интеграция 1С 8 и HostCMS

WEB v8 1cv8.cf Бесплатно (free)

Интеграции 1С с сайтами очень сложно оценивать, ибо на сайте разработчика CMS, а может, и на странице конкретного модуля, зачастую можно найти инструкцию подключения обмена, но в ходе работы постоянно появляются подводные камни: то одно не выгружается, то другое, порой, кажется, все данные передаются, но документы или элементы справочников не заполняются. А перерабатывать типовой механизм зачастую бывает себе дороже. Причем бывают и ситуации, когда нужно вносить изменения и в 1С, и на сайте. Стоимость таких работ возрастает и встает вопрос о том, нужно ли это вообще. Сейчас я расскажу о том, как мы подключали HostCMS, а в конце статьи приведу результаты обмена.

04.07.2021    815    Koder_Line    0    

Wildberries. Заполнение карточек товаров. Как получить значение справочников?

WEB Бесплатно (free)

Wildberries. Заполнение карточек товаров. Как получить значение справочников? в документации это описано очень скромно, пытаюсь рассказать на основании своего опыта.

31.03.2021    2154    sergeyisa    1    

Как получить ключ поставщика Wildberries (uuID), supplierID, Идентификатор поставщика

WEB Бесплатно (free)

Как получить ключ поставщика Wildberries (uuID), supplierID, Идентификатор поставщика, для работы с карточками товара.

18.03.2021    4780    sergeyisa    9    

Правила обмена больше не нужны

Внешние источники данных Обмен через XML Перенос данных из 1C8 в 1C8 Распределенная БД (УРИБ, УРБД) WEB v8 Бесплатно (free)

Есть несколько общепринятых подходов к написанию обмена между 1С-системами, каждый из которых упирается в длительное изучение технологии, мучительную отладку правил конвертации и написание большого количества сервисного кода, в котором потом тяжело разобраться. О принципах работы универсального фреймворка liteExchange, который реализует быстрые обмены между 1С и внешними системами, и берет на себя всю техническую обвязку по стандартному преобразованию данных, на INFOSTART MEETUP Saint Petersburg.Online рассказал Николай Крылов.

17.03.2021    11874    Nikola23    39    

Интеграция "1С:Управление торговлей 10.3" с Yandex SpeechKit для распознавания телефонных звонков

WEB Интеграция Телефония, SIP Бесплатно (free)

Распознавание телефонных звонков позволяет контролировать работу менеджеров, организовать для них дополнительный KPI, помогает разбирать конфликты и категоризировать звонки по вхождению слов. О своем опыте интеграции «1С:Управления торговлей 10.3» и сервиса Yandex SpeechKit на INFOSTART MEETUP Saint Petersburg.Online рассказал ИТ-директор компании «Умный дом» Федор Рыжков.

12.03.2021    1246    zzhiraf_    0    

Как отправить сообщение Telegram в группу?

WEB v8 Россия Бесплатно (free)

Отправка сообщения в группу Telegram.

01.03.2021    3014    kite2    2    

Альфа-Авто 5.0 и современные HTTP сервисы

WEB v8 1cv8.cf Автомобили, автосервисы УУ Бесплатно (free)

Решение, позволяющее программным продуктам, работающим на устаревших версиях платформы 1С (8.2), интегрироваться с современными HTTP сервисами. Решение, интегрированное с HTTP-сервисом программы по расчету компонентов для изготовления ЛКМ, описанное в настоящей статье, успешно работает в одном из автосервисов, работающем на устаревшей платформе и конфигурации Альфа-Авто 5.0.

01.03.2021    1152    osivv    1    

Доступ из базы 1С к стандартному интерфейсу Odata базы 1С, в которой заведен пользователь

WEB v8 Россия Бесплатно (free)

Есть база, с пользователем/паролем, нужно подключиться к Odata из другой базы 1С, получить элементы справочника.

24.02.2021    980    user823999    6    

Бот Telegram и HTTP сервис в 1С

WEB 8.3.8 Бесплатно (free)

Настройка рабочего вебхука telegram для 1С используя IIS (Internet Information Services - встроенный в windows веб-сервер). Мой опыт.

26.01.2021    8462    solidsun    13    

Интеграция с API WB (Wildberries). Создание карточки товара (спецификации)

WEB v8 1cv8.cf ИТ-компания Россия Бесплатно (free)

Опыт интеграции с API WB (Wildberries), опыт создания карточки товара, получение токенов API WB.

18.01.2021    29583    jenyavp    57    

1С и Умный Дом. Управление голосом

WEB Интернет вещей (IIoT) 8.3.6 Бесплатно (free)

Возможно ли управление устройствами умного дома из 1С, да ещё и голосом? Можно ли без умных колонок Google Home, Alexa, Алиса и иных платформ, а также без приложений от Google, Amazon и других управлять этими устройствами? Мой ответ – ДА, можно, нужно просто иметь умное устройство, имеющее возможность работы в DIY, 1С и программу распознавания голоса и взаимодействия с 1С.

04.01.2021    2532    osivv    15    

HTML редактор/editor (Wysiwyg) для WebKit 1С (CMS, B2B), альтернатива TinyMCE и стандартному ФорматированныйДокумент

WEB Интеграция v8 v8::УФ 1cv8.cf Бесплатно (free)

Suneditor - отличная замена HTML редактору TinyMCE (бесплатному), в публикации с открытым кодом подключим его в 1С с WebKit, скачать HTMLeditor обработку можно бесплатно.

28.12.2020    3953    SizovE    25    

1С и Умный дом

WEB Интернет вещей (IIoT) 8.3.8 Бесплатно (free)

Возможно ли управление устройствами умного дома из 1С? Можно ли, минуя сложные настройки ZigBee, Z-Wave и иных платформ, а также без приложений от Google, Amazon и других управлять этими устройства? Мой ответ – ДА, можно, нужно просто иметь умное устройство, имеющее возможность работы в DIY, ну и, естественно, 1С.

21.12.2020    2871    osivv    8    

[TinyMCE] - редактор HTML WYSIWYG. Интеграция во все виды управляемого и обычного приложения

WEB 8.3.14 Бесплатно (free)

В статье рассмотрены вопросы использования во всех режимах работы 1С Предприятие 8.3 редактора TinyMCE в поле HTML дополнительного функционала.

14.12.2020    1320    user1206119    0    

Выгрузка HTML описаний с картинками (Base64) товаров на сайт/интернет-магазин/B2B, разберем регулярное выражение получения тега body, ПолучитьHTML, ФорматированныйДокумент

Практика программирования WEB Универсальные функции v8 v8::УФ 1cv8.cf Бесплатно (free)

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

24.11.2020    1245    SizovE    4    

Как сделать интеграцию (обмен) с интернет-магазином? Пошаговый план действий (Часть 1)

WEB v8 1cv8.cf УУ Бесплатно (free)

C 2011 года я занимаюсь интеграцией с интернет-магазинами и за это время, наверное, повидал все. Делал интеграцию как «культурными», так и «экзотическими» способами. Количество магазинов исчисляется сотнями. В этой серии статей я буду делиться своим опытом, а также выкладывать какие-то полезные наработки.

19.11.2020    8854    markbraer    12    

Чтение вложенных свойств Структур Структуры, Соответствий, свойства через точку, разбор JSON

Практика программирования WEB Интеграция Универсальные функции v8 Бесплатно (free)

JSON: {user.device.type} - как получить значение {type}? А если вложенность значительно глубже? Как проверить, что оно заполнено или удалить его - всё это в публикации с открытым кодом и даже без рекурсии. Бонусом разбор дерева значений - ДанныеФормыЭлементДерева, СтрокаДереваЗначений.

17.11.2020    2246    SizovE    2    

Web Dashboard (мобильная и десктопная версия): оптимальная схема организации взаимодействия с зоопарком систем

WEB v8 Бесплатно (free)

Задача: из множества систем (1С:ERP, 1C:CRM, Кронос:WMS, 1С:Розница, 1С:УПП...) оперативно и онлайн осуществлять мониторинг на телефоне/десктопе/планшете/телевизоре бизнес-аналитику в дашборде для директора. Рассмотрим в статье, как правильно интегрировать между собой все базы, какие для этого инструменты использовать.

10.11.2020    14339    SizovE    2