{
 "name": "OneSwitch",
 "url": "https://oneswitch.ru",
 "description": "Сайты, веб-приложения, Telegram-боты и Mini App, интеграции, парсинг, 1С и AI-агенты. Делаю системы, которые работают без присмотра.",
 "language": "ru",
 "updated": "2026-10-30",
 "contact": {
  "telegram": "https://t.me/vladimir_7575",
  "github": "https://github.com/Vladimir-Hab"
 },
 "services": [
  {
   "name": "Сайты и лендинги",
   "url": "https://oneswitch.ru/uslugi/sajty-i-lendingi/",
   "summary": "Быстрые адаптивные сайты с SEO-основой: статика, Next.js или CMS.",
   "price": "от 20 000 ₽",
   "term": "5–14 дней",
   "stack": [
    "HTML/CSS/JS",
    "Python-генераторы",
    "Next.js",
    "Tailwind",
    "CMS"
   ]
  },
  {
   "name": "Веб-приложения",
   "url": "https://oneswitch.ru/uslugi/veb-prilozheniya/",
   "summary": "Личные кабинеты, админки, калькуляторы и дашборды.",
   "price": "от 70 000 ₽",
   "term": "3–6 недель",
   "stack": [
    "Python",
    "aiohttp / FastAPI",
    "PostgreSQL / SQLite",
    "JavaScript",
    "Docker"
   ]
  },
  {
   "name": "Интеграции и API",
   "url": "https://oneswitch.ru/uslugi/integracii-i-api/",
   "summary": "CRM, платежи, маркетплейсы, мессенджеры и обмен с 1С.",
   "price": "от 10 000 ₽",
   "term": "2–10 дней",
   "stack": [
    "REST",
    "Webhooks",
    "n8n / Make",
    "Python",
    "PostgreSQL"
   ]
  },
  {
   "name": "Автоматизация процессов",
   "url": "https://oneswitch.ru/uslugi/avtomatizaciya-processov/",
   "summary": "Скрипты, расписания, отчёты, n8n и Make: рутина уходит из рук.",
   "price": "от 10 000 ₽ за сценарий",
   "term": "2–10 дней",
   "stack": [
    "n8n",
    "Make",
    "Python",
    "Node.js",
    "cron",
    "PostgreSQL"
   ]
  },
  {
   "name": "Telegram-боты и Mini App",
   "url": "https://oneswitch.ru/uslugi/telegram-boty-i-mini-app/",
   "summary": "Боты, Mini App, подписки и уведомления: заявки, каталог, оплата, поддержка.",
   "price": "от 15 000 ₽",
   "term": "3–21 день",
   "stack": [
    "Telegram Bot API",
    "Mini App",
    "Python",
    "aiohttp",
    "PostgreSQL",
    "n8n"
   ]
  },
  {
   "name": "Парсинг и данные",
   "url": "https://oneswitch.ru/uslugi/parsing-i-dannye/",
   "summary": "Сбор, очистка, выгрузки, мониторинг цен и конкурентов.",
   "price": "от 10 000 ₽",
   "term": "3–10 дней",
   "stack": [
    "Python",
    "Playwright",
    "PostgreSQL",
    "SQLite",
    "n8n"
   ]
  },
  {
   "name": "Контент и соцсети",
   "url": "https://oneswitch.ru/uslugi/kontent-i-soczseti/",
   "summary": "Генерация страниц, автопубликация в Instagram, TikTok, Pinterest, YouTube и Дзен.",
   "price": "от 25 000 ₽",
   "term": "1–3 недели",
   "stack": [
    "Python",
    "Playwright",
    "ffmpeg",
    "n8n",
    "PostgreSQL"
   ]
  },
  {
   "name": "1С и учётные системы",
   "url": "https://oneswitch.ru/uslugi/1c/",
   "summary": "Расширения, обработки, отчёты, ИИ-распознавание документов, обмен с сайтом и автотесты.",
   "price": "от 2 500 ₽/час",
   "term": "по смете",
   "stack": [
    "1С:Предприятие",
    "XML-исходники",
    "Git",
    "Vanessa Automation"
   ]
  },
  {
   "name": "AI-агенты",
   "url": "https://oneswitch.ru/uslugi/ai-agenty/",
   "summary": "LLM-ассистенты, классификация обращений, поиск по базе знаний.",
   "price": "от 25 000 ₽",
   "term": "1–3 недели",
   "stack": [
    "LLM",
    "OpenRouter",
    "DeepSeek",
    "n8n",
    "Python",
    "REST API"
   ]
  },
  {
   "name": "SEO и AI-оптимизация",
   "url": "https://oneswitch.ru/uslugi/seo-i-ai-optimizaciya/",
   "summary": "Техаудит, микроразметка, sitemap, llms.txt и подготовка сайта к нейросетям.",
   "price": "от 15 000 ₽",
   "term": "5–10 дней",
   "stack": [
    "Schema.org",
    "JSON-LD",
    "llms.txt",
    "sitemap",
    "Яндекс Вебмастер",
    "Search Console"
   ]
  },
  {
   "name": "Автотесты",
   "url": "https://oneswitch.ru/uslugi/avtotesty/",
   "summary": "Playwright-сценарии: формы, оплата, критичные пути.",
   "price": "от 8 000 ₽",
   "term": "2–7 дней",
   "stack": [
    "Playwright",
    "Vanessa Automation",
    "CI",
    "Python",
    "JavaScript"
   ]
  },
  {
   "name": "Деплой и поддержка",
   "url": "https://oneswitch.ru/uslugi/deploy-i-podderzhka/",
   "summary": "VPS, CI/CD, бэкапы, мониторинг и доработки после запуска.",
   "price": "от 7 000 ₽/мес",
   "term": "по договорённости",
   "stack": [
    "Linux",
    "nginx",
    "systemd",
    "Docker",
    "Git",
    "Certbot"
   ]
  }
 ],
 "projects": [
  {
   "name": "InsureHub — страховой портал",
   "url": "https://oneswitch.ru/raboty/insurehub/",
   "summary": "Информационный портал по ОСАГО, КАСКО, ипотеке, путешествиям и недвижимости. Страницы собирает Python-генератор.",
   "stack": [
    "Python",
    "HTML/CSS/JS",
    "REST API",
    "SEO",
    "Schema.org"
   ],
   "external": "https://insure-hub.ru/"
  },
  {
   "name": "HotTrip — авиабилеты, горящие туры, бот и Mini App",
   "url": "https://oneswitch.ru/raboty/hottrip/",
   "summary": "Экосистема вокруг билетов и туров: портал, ИИ-бот, Telegram Mini App, API и автоматизированный канал.",
   "stack": [
    "n8n",
    "PostgreSQL",
    "Telegram Bot API",
    "Telegram Mini App",
    "OpenRouter",
    "DeepSeek",
    "Travelpayouts",
    "ffmpeg",
    "aiohttp"
   ],
   "external": "https://hot-trip.ru/"
  },
  {
   "name": "Da Nang House — аренда жилья во Вьетнаме",
   "url": "https://oneswitch.ru/raboty/danang-house/",
   "summary": "Русскоязычный каталог жилья в Дананге с ботом, Mini App, подписками на новые объявления и автопубликацией в группу.",
   "stack": [
    "n8n",
    "PostgreSQL",
    "Telegram Bot API",
    "Telegram Mini App",
    "Webhooks"
   ],
   "external": "https://dananghouse.ru/"
  },
  {
   "name": "Конвейер автопубликаций в соцсети",
   "url": "https://oneswitch.ru/raboty/publishing-pipeline/",
   "summary": "Материал с сайта превращается в посты и видео, которые уходят на пять площадок по расписанию с проверкой результата.",
   "stack": [
    "Python",
    "Playwright",
    "ffmpeg",
    "n8n"
   ],
   "external": null
  },
  {
   "name": "Локальное распознавание документов с фото для 1С",
   "url": "https://oneswitch.ru/raboty/raspoznavanie-dokumentov-1c/",
   "summary": "Расширение 1С: из фото, скана или PDF накладной документ заполняется за 30–60 секунд. Локальный ИИ, без интернета и облака.",
   "stack": [
    "1С:Предприятие",
    "Расширение конфигурации",
    "Локальный ИИ",
    "LM Studio",
    "OCR"
   ],
   "external": "https://infostart.ru/marketplace/2700415/"
  },
  {
   "name": "Инструменты разработки для 1С",
   "url": "https://oneswitch.ru/raboty/1c-tools/",
   "summary": "Рабочий конвейер для 1С: метаданные, сборка обработок, расширения, выгрузка в XML и тестирование форм.",
   "stack": [
    "1С:Предприятие",
    "XML",
    "Git",
    "Vanessa Automation"
   ],
   "external": null
  }
 ],
 "plans": [
  {
   "name": "Старт",
   "price": "от 20 000 ₽",
   "term": "5–7 дней"
  },
  {
   "name": "Бизнес",
   "price": "от 70 000 ₽",
   "term": "3–6 недель"
  },
  {
   "name": "Автоматизация",
   "price": "от 10 000 ₽",
   "term": "за сценарий, 2–10 дней"
  }
 ],
 "articles": [
  {
   "title": "Уведомления в Telegram Mini App: как слать пуши через бота",
   "url": "https://oneswitch.ru/blog/uvedomleniya-v-telegram-mini-app/",
   "markdown": "https://oneswitch.ru/blog/uvedomleniya-v-telegram-mini-app/index.md",
   "date": "2026-10-30",
   "summary": "У Mini App нет собственных пушей: уведомления приходят как сообщения бота, а писать пользователю можно только после его запуска бота или запроса разрешения requestWriteAccess. Чтобы открыть нужный экран, используйте кнопку web_app или прямую ссылку с параметром startapp. Пользователей, заблокировавших бота, нужно отмечать и не беспокоить."
  },
  {
   "title": "Telegram-бот на n8n: inline-кнопки, меню и кнопка для открытия Mini App",
   "url": "https://oneswitch.ru/blog/telegram-bot-n8n-knopki-menu-mini-app/",
   "markdown": "https://oneswitch.ru/blog/telegram-bot-n8n-knopki-menu-mini-app/index.md",
   "date": "2026-10-30",
   "summary": "В n8n бот строится из Telegram Trigger, ветвления по типу события и узла отправки. Нажатия inline-кнопок приходят как callback_query и требуют ответа. Кнопку, открывающую Mini App, проще отправить через HTTP Request, а у бота может быть только один webhook."
  },
  {
   "title": "Сколько стоит Telegram-бот и Mini App: из чего складывается цена",
   "url": "https://oneswitch.ru/blog/skolko-stoit-telegram-bot-i-mini-app/",
   "markdown": "https://oneswitch.ru/blog/skolko-stoit-telegram-bot-i-mini-app/index.md",
   "date": "2026-10-30",
   "summary": "Цена бота зависит от сценариев, интеграций и числа ролей, цена Mini App ещё и от интерфейса, API и данных. Простой бот стоит заметно меньше каталога с подписками. Экономия достигается запуском минимальной версии и ясным описанием задачи."
  },
  {
   "title": "Распознавание УПД в 1С из фото и PDF: облако или локальный ИИ",
   "url": "https://oneswitch.ru/blog/raspoznavanie-upd-v-1s-chem-zagruzit-dokumenty/",
   "markdown": "https://oneswitch.ru/blog/raspoznavanie-upd-v-1s-chem-zagruzit-dokumenty/index.md",
   "date": "2026-10-30",
   "summary": "Если поставщик работает через ЭДО, документ лучше загружать из XML, а не распознавать. Для бумажных и сканированных документов выбирают между облачным OCR и локальной моделью ИИ: локальная нужна, когда цены и ИНН нельзя отправлять наружу. Любой способ нужно проверять на 20–30 ваших реальных документах."
  },
  {
   "title": "Проверка initData в Telegram Mini App на Python: код и ошибки",
   "url": "https://oneswitch.ru/blog/proverka-initdata-telegram-mini-app-python/",
   "markdown": "https://oneswitch.ru/blog/proverka-initdata-telegram-mini-app-python/index.md",
   "date": "2026-10-30",
   "summary": "initData из Mini App нужно проверять на сервере: секрет вычисляется как HMAC-SHA256 токена бота с ключом WebAppData, затем сравнивается подпись строки данных. Обязательны сравнение через compare_digest и проверка auth_date, чтобы отсечь подделку и старые данные."
  },
  {
   "title": "Отправка сообщений из 1С в Telegram: код, chat_id и подводные камни",
   "url": "https://oneswitch.ru/blog/otpravka-soobshchenij-iz-1s-v-telegram/",
   "markdown": "https://oneswitch.ru/blog/otpravka-soobshchenij-iz-1s-v-telegram/index.md",
   "date": "2026-10-30",
   "summary": "Для уведомлений из 1С нужны бот, токен и вызов метода sendMessage через HTTPСоединение. Главная сложность в том, чтобы привязать пользователя 1С к его chat_id, а не в самом коде отправки. Токен нельзя хранить в тексте модуля, а отправку лучше выносить в фоновое задание."
  },
  {
   "title": "Обмен 1С с сайтом: HTTP-сервис или OData, авторизация и частые ошибки",
   "url": "https://oneswitch.ru/blog/obmen-1s-s-sajtom-http-servis-odata/",
   "markdown": "https://oneswitch.ru/blog/obmen-1s-s-sajtom-http-servis-odata/index.md",
   "date": "2026-10-30",
   "summary": "Для обмена сайта с 1С есть два пути: стандартный интерфейс OData для простого чтения и записи объектов и собственный HTTP-сервис для своей логики. Базу нельзя открывать в интернет напрямую: нужен прокси с ограничениями, отдельный пользователь с узкой ролью и обмен с повторами и защитой от дублей."
  },
  {
   "title": "n8n webhook: как защитить и принимать данные с сайта без дублей",
   "url": "https://oneswitch.ru/blog/n8n-webhook-zashchita-avtorizaciya/",
   "markdown": "https://oneswitch.ru/blog/n8n-webhook-zashchita-avtorizaciya/index.md",
   "date": "2026-10-30",
   "summary": "Webhook в n8n по умолчанию открыт всем, поэтому его нужно закрыть: Header Auth или Basic Auth в узле, ограничение по IP на прокси и проверка данных. Сайту отвечают сразу, а тяжёлую обработку выполняют после ответа, и каждый запрос несёт уникальный идентификатор для защиты от повторов."
  },
  {
   "title": "Распознавание накладных в 1С без облака: УПД и ТОРГ-12 из фото",
   "url": "https://oneswitch.ru/blog/lokalnoe-raspoznavanie-dokumentov-v-1s/",
   "markdown": "https://oneswitch.ru/blog/lokalnoe-raspoznavanie-dokumentov-v-1s/index.md",
   "date": "2026-10-30",
   "summary": "Накладную из фото можно превратить в заполненный документ 1С за 30–60 секунд. Локальная модель ИИ работает на компьютере клиента, поэтому цены, ИНН и поставщики не уходят на сторонние серверы."
  },
  {
   "title": "llms.txt: пример файла, формат и чек-лист для сайта",
   "url": "https://oneswitch.ru/blog/llms-txt-primer-formata/",
   "markdown": "https://oneswitch.ru/blog/llms-txt-primer-formata/index.md",
   "date": "2026-10-30",
   "summary": "llms.txt — это текстовый файл в корне сайта в формате Markdown: заголовок, краткое описание и списки ссылок на главные страницы с пояснениями. Он помогает языковым моделям быстро понять сайт, но не заменяет sitemap и разметку, и гарантий использования не даёт. Файл удобно генерировать из тех же данных, что и сайт."
  },
  {
   "title": "Каталог в Telegram Mini App: архитектура API, фильтры и подписки",
   "url": "https://oneswitch.ru/blog/katalog-v-telegram-mini-app-arhitektura/",
   "markdown": "https://oneswitch.ru/blog/katalog-v-telegram-mini-app-arhitektura/index.md",
   "date": "2026-10-30",
   "summary": "Каталог в Mini App строится на трёх частях: API с фильтрами и пагинацией, проверка пользователя по initData и воркер подписок, который сопоставляет новые объекты с сохранёнными критериями и шлёт уведомления через бота. Одна база и один API питают и сайт, и Mini App."
  },
  {
   "title": "Защита от дублей в автопостинге: ключ, ON CONFLICT и очередь",
   "url": "https://oneswitch.ru/blog/dedup-v-avtoposting-n8n-postgresql/",
   "markdown": "https://oneswitch.ru/blog/dedup-v-avtoposting-n8n-postgresql/index.md",
   "date": "2026-10-30",
   "summary": "Дубли убирают на уровне базы, а не сценария: каждому предложению присваивают уникальный ключ и вставляют его через ON CONFLICT DO NOTHING. Очередь на отправку забирают с FOR UPDATE SKIP LOCKED, а статусы new, sending и sent позволяют безопасно повторять любой шаг."
  },
  {
   "title": "Автопостинг в Telegram на n8n и PostgreSQL: схема конвейера",
   "url": "https://oneswitch.ru/blog/avtoposting-v-telegram-n8n-postgresql/",
   "markdown": "https://oneswitch.ru/blog/avtoposting-v-telegram-n8n-postgresql/index.md",
   "date": "2026-10-30",
   "summary": "Конвейер автопостинга состоит из пяти шагов: сбор данных, хранение, подготовка, очередь и публикация с проверкой. n8n связывает шаги, PostgreSQL хранит состояние и защищает от дублей."
  },
  {
   "title": "Aviasales API на Python: цены на авиабилеты через Travelpayouts",
   "url": "https://oneswitch.ru/blog/aviasales-travelpayouts-api-na-python/",
   "markdown": "https://oneswitch.ru/blog/aviasales-travelpayouts-api-na-python/index.md",
   "date": "2026-10-30",
   "summary": "Data API Travelpayouts отдаёт кэшированные цены из поисков Aviasales, а не живой поиск. Для цен по датам и направлению хватает одного GET-запроса с токеном в заголовке. Главные риски: данные могут устареть или отсутствовать для редких маршрутов, поэтому цену нужно показывать как «от» и перепроверять по ссылке."
  },
  {
   "title": "Telegram Mini App или сайт: что выбрать для каталога",
   "url": "https://oneswitch.ru/blog/telegram-mini-app-ili-sajt/",
   "markdown": "https://oneswitch.ru/blog/telegram-mini-app-ili-sajt/index.md",
   "date": "2026-10-29",
   "summary": "Mini App удобен там, где аудитория уже в Telegram и нужны подписки и уведомления. Сайт нужен для поиска и SEO. Лучше всего работает связка: сайт привлекает, Mini App удерживает."
  },
  {
   "title": "llms.txt и GEO: как подготовить сайт к ответам нейросетей",
   "url": "https://oneswitch.ru/blog/llms-txt-i-geo-seo-dlya-nejrosetej/",
   "markdown": "https://oneswitch.ru/blog/llms-txt-i-geo-seo-dlya-nejrosetej/index.md",
   "date": "2026-10-28",
   "summary": "GEO — это подготовка сайта к ответам нейросетей. На практике это микроразметка Schema.org, llms.txt, понятная структура статей с кратким ответом в начале и открытый доступ для ИИ-ботов в robots.txt."
  },
  {
   "title": "Сколько стоит сайт и автоматизация: из чего складывается цена",
   "url": "https://oneswitch.ru/blog/skolko-stoit-sajt-i-avtomatizaciya/",
   "markdown": "https://oneswitch.ru/blog/skolko-stoit-sajt-i-avtomatizaciya/index.md",
   "date": "2026-10-27",
   "summary": "Цена зависит от объёма, числа интеграций, сложности данных и требований к надёжности. Начать выгоднее с минимального рабочего варианта и развивать его по результатам использования."
  }
 ],
 "api": {
  "docs": "https://oneswitch.ru/dlya-razrabotchikov/",
  "note": "Публикация материалов и приём заявок через HTTP API, см. документацию."
 }
}