Обновить
10
Александр Бурмистров@bae_prosto

Менеджер продукта FaceReg в Programming Store

10
Подписчики
Отправить сообщение

API 1С «на стероидах»: как «подружить» HTTP-сервисы со Swagger

Уровень сложностиСредний
Время на прочтение8 мин
Охват и читатели3.5K

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

Введение. Зачем это вообще нужно (и почему все статьи — не про то)

Реальная ситуация из прошлого. В чат с интегратором падает сообщение: «А какой формат даты вы принимаете? Структура JSON есть? Можно пример?» И вы в десятый раз скриншотите свою тестовую обработку или скидываете ссылку на устаревший Word-файлик, который уже никто не обновлял.

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

В мире за пределами 1С такая проблема решена давно и элегантно. Там есть Swagger (он же OpenAPI) — стандарт описания REST API, который понимают все: от фронтендеров до тестировщиков и генераторов клиентского кода.

В 1С же с этим — беда. Из коробки — ничего. Типовые статьи в интернете либо предлагают с нуля писать JSON-схемы руками (спойлер: никто не будет), либо ограничиваются абстрактными «создайте HTTP-сервис и опишите его в комментариях», умалчивая о граблях, на которых вы гарантированно споткнетесь.

А грабли эти увесистые. Например, тот самый CORS, который заставит вас проклясть тот день, когда вы решили подружить браузер с 1С. Или SetHandler 1С-application, молча сбрасывающий ваши заголовки. Или несоответствие типов, когда Swagger показывает одно, а 1С ждет совсем другое.

Читать далее

Переход с разработки в «1С: Бухгалтерия» на «1С:ERP»

Уровень сложностиПростой
Время на прочтение8 мин
Охват и читатели5K

Переход с «1С:Бухгалтерии» на «1С:ERP» — это не просто смена конфигурации, а переход к более сложной архитектуре, где проводки являются следствием оперативного учета, расчетов себестоимости и правил регламентированного учета. Моя коллега Алевтина, ведущий разработчик 1С в нашей команде, рассказывает, как устроен этот путь в ERP, какие механизмы нужно освоить разработчику и с чего лучше начать, чтобы быстрее адаптироваться к новой системе.

Читать далее

От франчайзи 1С к аутстаффингу

Уровень сложностиПростой
Время на прочтение6 мин
Охват и читатели3.5K

«За моими плечами более 12 лет опыта в разработке 1С, — рассказывает моя коллега Александра, разработчик 1С в нашей команде. — Мой профессиональный путь начался с фирмы „1С: Франчайзи“, затем я работала с конечными клиентами и пробовала себя во фрилансе. Сейчас я часть команды аутстаффинговой компании.»

Многие разработчики, пришедшие из франчайзи, опасаются перехода в аутстаффинг, считая эти форматы схожими. Однако между ними существует множество существенных различий. Давайте разберём ключевые различия, преимущества и недостатки каждого подхода«.»

Читать далее

Транзакции в 1С: ошибки на собеседованиях, реальные примеры и правильные решения

Уровень сложностиПростой
Время на прочтение4 мин
Охват и читатели6.5K

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

Транзакция — это логическая группа операций, которую нужно выполнить целиком или не выполнять вовсе.

Простой пример из жизни.
Вы хотите записать несколько документов одновременно. Если запись одной из них упала, надо откатить все изменения, чтобы не получить получастичное состояние.

В 1С транзакции помогают обеспечить атомарность, целостность и согласованность данных.

Рассмотрим примеры.

Читать далее

Коннектор «ПростоКоннектор»: простая интеграция 1С-систем через «1С: Шину»

Уровень сложностиПростой
Время на прочтение6 мин
Охват и читатели4.1K

«Современные компании, даже небольшие, практически всегда используют сразу несколько программных продуктов 1С – от «1С:Бухгалтерии» до сложных систем ERP, «Управление холдингом», каких-то специализированных отраслевых решений и облачных сервисов, а также программных продуктов и сервисов других вендоров, – рассказывает мой коллега Доржо, аналитик 1С в Programming Store.

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

Комбинация «1С:Шины» и расширения «ПростоКоннектор» позволяет легко настроить обмен данными между любыми конфигурациями 1С, как типовыми, так и самописными, без необходимости разработки сложных интеграционных модулей и без глубокой доработки типовых конфигураций».

Что представляет собой «1С:Шина»

Если кратко, «1С:Шина» — это облачное платформенное решение, выполняющее роль централизованного интеграционного слоя, относящееся к классу «Сервисная шина предприятия (ESB)» от компании 1С. Оно позволяет:

Читать далее

Транспортная логистика в 1С:ERP: типовой функционал и кастомизация под специфику бизнеса

Уровень сложностиСредний
Время на прочтение5 мин
Охват и читатели4.4K

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

В этой статье мы рассмотрим, как сочетается типовой функционал 1С:ERP с кастомизацией на примере реальных внедренческих проектов для производственного предприятия.

Фундамент: что предлагает «коробочная» 1С:ERP для транспорта

Перед тем, как говорить о доработках, важно понять, что предлагает «коробочная» версия 1С:ERP — отправную точку. Типовая конфигурация 1С:ERP включает в себя базовый, но надежный каркас для управления транспортом:

Читать далее

Реактивное программирование в Java: от теории к практике

Уровень сложностиСредний
Время на прочтение20 мин
Охват и читатели9.6K

«Когда пару лет назад я впервые столкнулась с реактивным программированием, — рассказывает моя коллега Екатерина, — казалось, что это что‑то слишком сложное и академическое. Но чем больше работаешь с современными высоконагруженными системами, тем яснее становится, что без реактивного подхода сложно обеспечить высокую отзывчивость и масштабируемость».

Читать далее

Типовые методы решения задач в 1С при использовании БСП

Уровень сложностиСредний
Время на прочтение8 мин
Охват и читатели8.7K

«Вспоминая требования заказчиков на клиентских интервью, я могу сказать, что сейчас все больше внимания клиенты уделяют знаниям БСП у разработчиков, – рассказывает мой коллега Сергей. – Конечно, вопросы сперва очень общие: «А знаешь ли что-то о БСП?, «Может быть, что-то слышал о БСП?» или «а какие задачи решал с помощью механизмов БСП?». Исходя из этих вопросов, я бы хотел, чтобы у читателя сформировался некий базовый задел, на котором мы и будем дальше развиваться.

Мы рассмотрим стандарты разработки 1С, восполним возможные проблемы и посмотрим на варианты типового решения задач в 1С».

Читать далее

Testcontainers: путь к надежным интеграционным тестам в Spring Boot

Уровень сложностиСредний
Время на прочтение19 мин
Охват и читатели12K

Мы знаем, что разработка надежных приложений требует тщательного тестирования. Многие программисты и даже целые компании склонны полагаться исключительно на юнит-тесты, считая, что этого достаточно для обеспечения качества их приложений. Однако такой подход часто демонстрирует свои минусы на этапе вывода функционала в тестовый контур, а далее уже в продакшн. Где-то не заполнилось поле, которое должно быть Not Null, где-то не создался Kafka-consumer из-за опечатки в конфиге. Сколько раз такие проблемы возникали в вашей практике и приводили к тому, что нужно срочно делать Pull Request с исправлением очевидной ошибки, испытывая стыд перед коллегами за то, что совершили такую элементарную оплошность? Сколько раз компоненты, прекрасно работающие по отдельности, выбрасывали пачки исключений при совместной работе?

Избежать таких сценариев помогут интеграционные тесты. И сегодня мы поговорим об одном из инструментов интеграционного тестирования – TestContainers.

Читать далее

Технологии единого входа (SSO) для корпоративных ресурсов

Уровень сложностиСредний
Время на прочтение10 мин
Охват и читатели14K

«С ростом числа внутренних сервисов и платформ в компаниях всё актуальнее становится задача унификации доступа сотрудников к корпоративным ресурсам. HR-системы, CRM, документооборот  — каждый из этих инструментов требует авторизации. В итоге у сотрудников накапливается десятки учётных записей, а у администраторов — необходимость управлять ими. Чтобы сократить избыточные точки входа и упростить контроль доступа, компании всё чаще внедряют механизм единого входа — SSO (Single Sign-On)», — рассказывает моя коллега Екатерина.

Читать далее

Kafka Streams для начинающих. Потоковая обработка данных в мире Java

Уровень сложностиСредний
Время на прочтение18 мин
Охват и читатели14K

Привет, коллеги-разработчики! За всю историю человечества в разные эпохи  существовали определенные виды ресурсов, которые определяли наше развитие и эволюцию. В 19 веке главным ресурсом для человечества было золото, в 20 веке – нефть и газ, а в 21 веке этим ресурсом стала информация. В нашем быстро меняющемся мире, где данные льются рекой и эти объемы растут с невероятной скоростью, нам как разработчикам приходится постоянно искать новые подходы для эффективной работы. От финансовых транзакций и логов серверов до показаний IoT-сенсоров и кликов пользователей на веб-сайтах — информация поступает непрерывным потоком. Работать с ней в реальном времени становится критически важным для того, чтобы бизнес мог принимать своевременные решения и оставаться конкурентоспособным.

Итак, в этой статье мы разберемся в новомодной технологии для работы с данными – Kafka Streams и узнаем, что это, область применения, а также достоинства и недостатки. 

Читать далее

Оптимизация снабжения и закупок: как обработка для 1С:ERP возвращает порядок в работу

Уровень сложностиСредний
Время на прочтение5 мин
Охват и читатели7.5K

«Разрозненность отделов снабжения и закупок – это не просто бюрократия, а прямая угроза эффективности бизнеса, – рассказывает Дина, cистемный аналитик 1С в Programming Store. – Пока одни сотрудники формируют потребности в Excel, другие вручную обрабатывают заказы, теряя время на согласование, исправление ошибок и поиск актуальных данных. Результат? Задержки, избыточные заказы и недовольство смежных подразделений. Как решить эту проблему, расскажу в статье»

Читать далее

Spring Security

Уровень сложностиСредний
Время на прочтение7 мин
Охват и читатели11K

Spring Security — это мощный и важный фреймворк в Spring для обеспечения безопасности приложения при помощи аутентификации и авторизации. Основан на цепочке фильтров. Например, в Spring Security 6.5.1 по умолчанию стандартная цепочка фильтров (FilterChainProxy) содержит до 12–16 фильтров, выполняющих различные механизмы проверки. Стоит отметить, что точное количество фильтров зависит от конфигурации.

Читать далее

ТЗ, за которое НЕ стыдно. Простые шаги к понятному техзаданию

Уровень сложностиСредний
Время на прочтение6 мин
Охват и читатели13K

«В мои прямые обязанности входит грамотное распределение ресурсов компании, а именно разработчиков 1С и аналитиков 1С в зависимости от их компетенций. Всё чаще в последнее время я слышу фразу: «Я никогда не видел качественное ТЗ». «Как так? Не видели? Давайте я вам покажу! Я пишу ТЗ, за которые не стыдно», — рассказывает моя коллега Татьяна.

Читать далее

Kubernetes и микросервисы для интернет-магазина

Уровень сложностиСредний
Время на прочтение7 мин
Охват и читатели8.9K

История Kubernetes

 7 июня 2014 года был выпущен первый выпуск Kubernetes

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

Kubernetes на греческом языке означает «кормчий» или «рулевой» (лицо, держащее рулевое колесо корабля).

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

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

 Основные понятия в Kubernetes

 Кластер – это несколько серверов, где нужно развернуть наше приложение.

Под (pod) – минимальный элемент развертывания в Kubernetes, который состоит из одного или нескольких контейнеров, работающих на одном компьютере. Контейнеры внутри пода работают по одному IP-адресу
и могут обмениваться информацией через доступную в контейнере директорию (том, volumes).

Сервисы (Service) – соединяет поды, которые объединяются в группы
с постоянным IP-адресом и балансирует нагрузку между ними.

Читать далее

Что должен уметь мидл бэкенд-разработчик

Уровень сложностиПростой
Время на прочтение6 мин
Охват и читатели62K

«Бэкенд — это просто! Выгрузить данные в нужном формате из одной системы и загрузить в другую. И так почти на каждом проекте!», — заявил недавно мой коллега Сергей, старший Python-разработчик. Я спросил у бэкендеров в нашей компании, с какими задачами они сталкиваются, какими hard и soft skills должны обладать мидлы в бэкенд-разработке.

Читать далее

Spring Boot. Реактивный асинхронный неблокирующий REST vs традиционный синхронный блокирующий

Уровень сложностиСредний
Время на прочтение8 мин
Охват и читатели18K

В статье простым языком рассказываю об особенностях работы реактивного веб-сервиса в сравнении с традиционным REST. Для комфортного чтения пригодятся базовые знания Java, Spring Boot.

Читать далее

Spring prototype при помощи Lookup

Уровень сложностиСредний
Время на прочтение5 мин
Охват и читатели19K

У бинов в Spring бывают разные области действия. Стандартной областью является Singleton.

Singleton — это область действия, при котором в контейнере Spring создает единственный экземпляр нашего бина. Все последующие взаимодействия происходят именно с этим экземпляром.

В этой статье разберем бины со скоупом prototype. Рассмотрим пример использования аннотации @Lookup. Статья поможет новичкам увидеть наглядный пример создания прототайп бина при помощи использования аннотации @Lookup.

Читать далее

Prostore — простой Event sourcing + CQRS фреймворк

Уровень сложностиСредний
Время на прочтение8 мин
Охват и читатели17K

На данный момент на рынке мало Event sourcing + CQRS фреймворков. А те, что есть, непопулярны и имеют слабую поддержку, поэтому многие создают свои in-house решения. В этой статье расскажу о выполненном командой «Programming Store» проекте Prostore, который может послужить примером при создании вашего собственного решения.

Читать далее

Информация

В рейтинге
Не участвует
Откуда
Ижевск, Удмуртия, Россия
Дата рождения
Зарегистрирован
Активность

Специализация

Бэкенд разработчик, Менеджер продукта
Ведущий
Python
Java