Pull to refresh

Comments 36

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

Я думаю тут вопрос не в сложности. А в просто в накладывании логики друг на друга, что приводит к хаусу. А так да, это хорошая замена продуктам 1с - нужно только решить вопрос с интеграциями.

Как раз перевел с этого января наше маркетинговое агентство на erpnext.

Сегодня закрыли первый месяц.

Поделитесь опытом, а так что на что обратить внимание ?

Сложно коротко описать.

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

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

Бухгалтерский учёт нужен постольку поскольку (я не в РФ).

Но самое важное: вся методология до внедрения: план счетов, структура кост центров, карты проводок и тому подобное. Это все сильно облегчает работу.

С точки зрения инфраструктуры все печальнее для селф-хост. Но это отдельная тема.

Из приятного - GPT не так плохо знают эту систему, это сильно помогает и в настройке и в разработке всяких ботов (API).

Почему печальнее для селф-хоста?

Если нужен один erpnext то проблем нет, ставишь докер и вперёд.

Проблемы начинаются когда нужны другие приложения: frappe CRM, Whatsapp для CRM и тому подобное. В докер с erpnext засунуть не получится. Либо искать кто уже собрал свой докер, либо собирать самому, а на эта билда вылезает какое-то количество проблем. Все решается, но когда ты один занимаешься всем - от методологии до DevOps - это не радует.

Пару часов ушло на то чтобы свой docker-compose собрать. Там же есть инструкция на github. И там все модули модули готовые из ERPNext добавляются.
Мы конечно может быть, не столкнулись с такой ситуацией еще, которая была у Вас.

Docker-compose - сам файл с несколькими приложениями frappe? Можете поделиться? Надеюсь, это поможет решить мои вопросы.

Я вас возможно неправильно понял. Вы хотите запускать несколько APP на одной машине? или вы хотите в одну APP установить несколько Module? Для второго у них есть bench - https://github.com/frappe/bench

Для первого нужно больше данных

Именно bench. И в докере он доп приложения не устанавливает. По крайней мере у меня не получилось. Пришлось ставить на bare metal.

Есть еще одно решение - утилитка Frappe Manager. Она позволяет в пару команд развернуть приложения на основе Frappe Framework в нескольких контейнерах и по возможности автоматом выписать себе сертификаты LetsEncrypt. Из зависимостей требует Docker и Python на машине.

Достаточно удобно, особенно по сравнению с официальным руководством по развертыванию Docker-образов. Цена - по умолчанию тащит "запеченный" образ с некоторыми предустановленными приложениями (ERPNext точно входит в этот список), потом из него автоматически выпиливает все лишнее; + не дает гибко все менять, как если бы это все происходило поверх штатного Frappe Bench (например, трудно поменять имя сайта, которое еще и доменное имя, а копание в конфигурации того же внутреннего Nginx - тот еще гемор).

Посмотрю, спасибо!

Nginx тут мне не так важен, все равно все через caddy пробрасываю.

У меня тут вопрос насколько разбросанные по контейнерам вещи друг с другом работают. Буду проверять.

Nginx м.б. и не нужен, но Frappe Manager использует его как глобальный прокси) И, соответственно, на хостовой машине начинает слушать 80 и 443 порт.

Архитектура контейнеров выглядит так: контейнер БД, контейнер приложения, контейнер обработчика веб-сокетов, и 2 воркера для джобов. Вроде все работает без нареканий.

Про nginx это понятно. Просто не надо вообще ничего у него настраивать при наличии caddy. Я даже не знаю где лежит его конфиг.

Про остальное буду читать и пробовать. Спасибо за подсказку!

Да, ещё в моей стране эту систему нельзя использовать для официального бухгалтерского/налогового учёта (система не имеет нужной лицензии). То есть нужна интеграция.

Но в большинстве других стран этой проблемы нет.

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

В моем случае вопрос не только в налоговом учёте. А, условно, sales invoice я могу делать только из лицензированного ПО. И payment entry (в терминах ERPNext).

Я имею в виду сами "бумажные" документы, которые я отдаю контрагенту.

Ну и много таких приколов.

И это я ещё до загрузки банковской выписки не дошел :)

Подскажите, там есть диаграмма Ганта? В большинстве ERP систем её либо нет, либо сделана так, что лучше бы не было. Самый удобный Гант у Yougile, чем сейчас пытаюсь пользоваться через связку из CRM-N8N-Yougile, но предпочёл бы чем-то одним. Добавили бы в Yougile в CRM модуль продукты - ушёл бы к ним полноценно

Тут есть библиотека для Ганта, но не уверен что она будет юзер френдли. https://docs.frappe.io/erpnext/user/manual/en/make-a-colorful-gantt-chart
Но смысл наверно больше, в том, что тут легко подключить любое другое приложение. Тот же clickUp/Notion например. Или можно найти библиотеку на JS

Yougile удобный? Мне как то не понравился совсем он

Осторожнее с публикацией такого Open source. Есть вероятность, что через полгода какая-нибудь отечественная компания выдаст это за свою «уникальную экосистему» и будет продавать за много мильонов.

Если серьёзно: коллеги из Индии действительно постарались на славу.

Я тестировал Frappe с пристрастием. Штука, в общем-то, живая и мощная. Все упаковано в один огромный сервис, разворачивай все что хочешь там, есть все для института, школы, бизнеса, все в одном сервисе.

Но, блин, эта цельность, она же и обратная сторона. Попадаешь в их вселенную, со своими правилами, своими подходами. Хочешь что-то сделать не как задумано в Frappe, а как привык, начинаются танцы с бубном. Иногда кажется, что учишь не фреймворк, а целую философию. Документация есть, но местами она похожа на конспект для своих, кто уже в теме.Frappe - это не игрушка и не решение для всех. Это серьёзный, немного упрямый, но невероятно продуктивный инструмент. В общем, штука с характером. Но характер, надо признать, интересный.

Глубоко вас поддерживаю. Тем более что Odoo уже так пытаюсь толкать. А он совсем не для российских реалий.

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

Ого, сколько русскоговорящих и знакомых с Frappe, неожиданно :)
Уже год как дорабатываю и поддерживаю в проде с кучей развернутых приложений - ERP, CRM, HRMS, Gameplan и т.д.
Если кому нужен готовый образ - docker pull metalmon/frappe
Сделал качественные переводы на базовые приложения, но держу актуальной только ветку develop, 16-я версия.
Много доработок по CRM - интеграция с Авито, телефония Билайна, заявки с Тильды.
https://github.com/metalmon
Возможно многим будет интересен мессенджер под эту экосистему - Raven, в образе есть.
Из нюансов с деплоем под Traefik - сокет недоступен, т.к. терминация SSL на входе, надо прокидывать до бека. Но они вроде в последних PR починили.

Отлично) давайте дружить!

О, спасибо, посмотрю тоже.

Если кто-то смотрел на Odoo, то стоит посмотреть на Frappe и конкретно на ERPNext. Устанавливается сложнее, но разработка прощею

Ну и кто хочет "свою 1С" - тоже.

Добрый день.
Существует ли актуальное руководство по этому фреймворку на русском? т.к. попытка следовать по докам с офф.сайта толком никчему не привела, кроме страницы самого фреймворка. (возможно из-за того что я валенок или пользуюсь WSL, не знаю)

А с чем проблема?
На русском нету, но как будто нет необходимости такой.

Глобально проблемы нет.
Попытался создать местный "hello world" (т.е. в лоб следуя инструкции из доков). Опуская настройку среды, тут я точно был валенком, сам frappe вроде как запустился. Но дальше я не понял, поэтому что на скринах от разрабов и у меня совершенно разные сайты и интерфейсы, тот же Desk из доков... И признаться, наугад тыкаться в надежде, что я что-то сделаю правильно, нет желания.
Окей, скачал местный CRM на посмотреть. Ок, что на английском, не сложно. Но внутрь фронта (For Frontend Development ) не пускает (ERR_CONNECTION_REFUSED и прочие ошибки с api/), соответственно хотя бы понять, что да как сами разрабы/комьюнити сделали - тоже неясно.
Так то выглядит интересно, но то ли я дурак, толи у лыж не тот конфиг))

З.Ы. Я реально не исключаю, что я дурак, т.к. до этого с фреймворками не сталкивался (попытки делать сайты на Vue и Django (отдельно) не в счёт).

Как человек с некоторым опытом разработки в экосистеме Frappe оставлю пару своих заметок.

В целом, Frappe Framework и ERPNext как флагман этой экосистемы выглядят цельными и самостоятельными приложениями (в сравнение с крупными игроками они, конечно, не идут, но свою нишу определенно могут занять). Это и плюс и минус.

Их (Frappe Framework - "движок" для ERPNext) описывают в официальном блоге как "WordPress для ERP-систем". Можно просто что-то подправить, сверстать свой отчет и форму печати для какого-нибудь документа, выкинуть или добавить лишние поля, навесить свои правила по подписанию документа, отправке Email, SMS, уведомлений, просто создать какой-нибудь новый вид документа и привязать его к уже существующим (круто ведь!) и пр. Прямо в веб-интерфейсе, и, если уж так сильно приспичит, - даже на проде. Огромный плюс - все DocType'ы (на языке Frappe - это все информационные объекты, по-факту - это всё во Frappe Framework; разрабатывать DocType'ы - значит разрабатывать приложение в FF) из коробки поддерживают импорт/экспорт в CSV/Excel, отправку по Email, печать и пр. ништяки.

К тому же есть действительно классные конструкторы (например, Frappe Print Designer для шаблонов печати, или Frappe Builder (или более сырой Frappe Studio) для сайтиков, или Frappe Insights для отчетиков и дашбордов), которыми могут пользоваться не особо прошаренные юзвери. Ладно, может быть они должны что-то да шарить. Но в редактор кода им лезть не надо, а пользоваться прямо на сайте и почти сразу же смотреть результаты своего полета творческой мысли.

Есть встроенные плюшки. Тот же Recorder - профилировщик запросов приложения. Есть системная консоль, которая позволяет делать SELECT'ы в БД без необходимости вручную подключаться к базе. Можно сбросить кэш, не выходя из интерфейса. Есть встроенный аудит, система нотификаций, ToDo'шки, комментарии, отправка почтовых рассылок, SMS, бэкапы. Уже до нас позаботились о поддержке разных языков.

Минус тоже исходит от цельности экосистемы. Если вам необходимо сделать что-то своё, и это "своё" не предусмотрено средствами самого фреймворка, будьте готовы:

1) к мучениям;

2) к тому, чтобы исползать исходный код самого фреймворка

ибо документация

а) не покрывает все случаи;

б) во многих местах устарела и этот функционал реализуется теперь по-другому;

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

Кто-то в комментариях метко подметил, что документация выглядит как "конспект для своих". Вы в перечнь "своих" явно не входите. Сравнение с документацией Django явно не выдерживает.

К тому же, если вы делаете что-то свое, то будьте готовы разбираться с тем, как заставить Frappe Framework не пускать свои щупальца к вашему коду. Мой пример - я делал свои странички со своей логикой, а Frappe Framework силой пихал свои стили и скрипты, которые все ломали. Об этом ничего не сказано в документации, а если сказано, то только поверху. Пришлось разобраться, что-куда-и-как пихается Jinja2 и самим Frappe Framework в страницу.

Есть вещи, которые во Frappe обрабатываются на нескольких разных уровнях (например, роутинг, построение страничек, получение контекста для страничек, рассчет прав доступа). Как именно, и где происходит, и в каком порядке - разбирайся сам. Это относится, например, к переводам (локализациям).

И да, Frappe Framework пихает вам свой подход и свое видение. Это относится к RBAC, обработке роутинга.

Выручают добрые люди с форума. Сообщество активное и отзывчивое, на мой взгляд.

Бывают и ошибки "незрелости" фреймворка, когда вылетают какие-нибудь странные ошибки при сценариях, которые по-идее этого делать не должны (хотя Frappe почти ровестник Django, "молодым" его точно не назовешь). Что-то не сохраняется, что-то дублируется, что-то не получается... Мрак!

Как человек, который имел опыт с Django, Flask и FastAPI, я привык, что мне дается свобода в некоторых вещах (которая в то же время и ответственность). Здесь же эту свободу приходится отвоевывать :3

Ну и да, фреймворк во многом полагается на БД.

Где он хранит странички приложения (Web Pages), также стили, форматы хедера и футера для всего приложения? Какие-нибудь свои настройки для отображения дашбордов? Другие вещи поверх стандартного функционала? В БД. Поэтому будьте готовы прописать экспорт фикстур (сохранение этих данных из БД в JSON) в настройках и каждый раз перед коммитом делать его. Миграции БД, кстати, надо писать тоже вручную (после Django выглядит неприятно).

Ну и вишенка на торте - DocType совмещает в себе представление и модель (из архитектуры MVC). Это означает, что либо у вас есть приятный интерфейс для пользователя, где он консолидированно может видеть всю связанную информацию, либо у вас приложение соблюдает первые три нормальные формы. Одно из двух. Можно, конечно, нормализировать отношения и вручную написать представление в родном HTML/CSS/JS... Но тут мы сталкивается с "деревянностью" фреймворка в этом плане... И ограничения по правам накладываются на DocType! И многие приятные фичи (импорт/экспорт, печать и пр.) перестают быть приятными. Т.е. придется плясать танцы с бубнами.

Тут нет вложенных списков (списков внутри списка) у DocType. Справедливости ради, в админке "ванильного" Django тоже нет.

По архитектуре, Frappe Framework страшный синхронный монолитище. И уйти от этого навряд ли он когда-нибудь сможет, т.к. та же информация о запросе/ответе хранится в глобальной переменной.

P.S. Официальные обучающие видео безнадежно устарели, авторы не умеют в повествование и имеют очень сильный акцент (фреймворк родом из Индии). Но справедливости ради, более современные демо и конференции смотрятся без страданий.

Sign up to leave a comment.

Articles