Заканчиваю говорить про архитектуру в 1С
Вчера после стрима сидели с женой и обсуждали одну мысль.
У меня сейчас ощущение, как перед последним звонком.
Несколько месяцев я жил темами: DDD, чистой архитектуры и как все это нормально переложить на 1С. Думал, как отделить теорию от того, что стоит использовать в коммерческой разработке.
Стрим прошел и сейчас немного странно осознавать, что этот этап подходит к концу. Дальше я сильнее уйду в Unity и C# и буду заниматься совсем другими вещами. Возможно, через какое-то время вообще перестану говорить про архитектуру в 1С.
А мысль мы такую обсуждали:
А что, если то, что мы сейчас делаем, — это маленькое семечко, которое даст результат сильно позже?
Не в рамках одного курса и даже не через год.
Через 5–7 лет часть людей, которые смотрят стримы, спорят со мной, пробуют эти подходы в своих проектах, станут тимлидами, архитекторами, руководителями разработки и начнут по-другому строить системы.
Постепенно то, что сегодня для 1С мира выглядит непривычно, станет совершенно нормальным способом разработки.
Вот это для меня сейчас самое ценное во всей этой истории.
Не просто провести курс.
Заложить небольшой фундамент того, как 1С-разработка может выглядеть в будущем.
Спасибо всем, кто был вчера на стриме, задавал вопросы, спорил и обсуждал.
Запись вчерашнего стрима готова
Стрим по реализации DDD и чистой архитектуры в 1С
Ребята и девчата, сегодня в 19:00 проведем второй стрим по реализации DDD и чистой архитектуры в 1С
На этом стриме я, наконец-то, отвечу на вопрос, который мне задавали чаще всего после предыдущих стримов по чистой архитектуре:
а как при таком подходе не потерять платформенную оптимизацию при работе с табличными частями на клиенте?
До недавнего времени не знал на него хорошего ответа. Теперь знаю. И покажу.
👉 Стрим будет посвящен API-first подходу в 1С.
Получим удобные бизнесовые сценарии, которые удобно использовать можно и из форм, и из других потребителей. Форма перестает быть центром приложения.
👉 Обсудим, почему явные бизнес-сценарии лучше, чем попытка вписать всю жизнь системы в коллбеки платформы:
ПередЗаписью, ПриЗаписи, обработку проведения и все остальное.
👉 Вы сами увидите эти сценарии в коде. Они читаются очень просто и понятно.
👉 Посмотрим, как в типовых решениях 1С пытаются прийти примерно к той же идее с помощью флагов и ДополнительныеСвойства.
Еще одна важная тема — как выбирать место физического хранения данных.
С точки зрения бизнес-логики то, лежит у нас состояние в документе или в регистре, — это деталь инфраструктуры.
Но это не значит, что выбор не имеет значения.
Платформа очень много умеет и очень много берет на себя. И если мы правильно выбираем модель хранения, то получаем вполне конкретные преимущества.
На нашем примере я покажу, почему выбрал именно такое хранение и что это дает нам с точки зрения:
— оптимистической блокировки;
— нумерации;
— вообще нормального использования возможностей самой платформы.
Стрим будет гораздо больше про конкретику:
👉 Как интегрироваться с legacy-кодом типовой конфигурации.
👉 Как интегрироваться с платформой 1С.
Мы не будем тащить сюда святую корову чистой архитектуры и DDD и говорить: «Нет, платформа плохая, все надо от нее спрятать».
Наоборот.
Мы будем смотреть, как все это встроить в 1С красиво. Чтобы код хорошо читался. Чтобы его было просто менять. Чтобы мы использовали возможности платформы там, где они нам помогают, но при этом не отдавали платформе управление нашей бизнес-логикой.
Тем, кто будет на стриме онлайн, я отдам две вещи
✅ само решение, которое у меня сейчас получилось.
Решение показывает, как применять DDD и чистую архитектуру в 1С, как интегрироваться с legacy, как интегрироваться с платформой. Сейчас мне этот пример прям очень нравится. Он получился максимально чистым и показательным.
✅ свои правила для AI-агентов, заточенные именно под разработку на 1С, по которым я сейчас сам работаю.
Но это все отдам именно тем, кто будет онлайн.
Так что сегодня, 19:00 МСК. Приходите. Всех очень жду.
P.S.
Ребята и девчата из фирмы 1С, на самом деле эти стримы я во многом делаю именно для вас.
Приходите, пожалуйста.
Потратьте немного времени. Попробуйте понять, о чем я говорю. Позадавайте вопросы. Поспорьте со мной.
Мне кажется, вам это 100% должно понравиться.
Потому что именно за вами наблюдают сотни тысяч других 1С-программистов. Именно на ваш код они смотрят. Именно типовые решения во многом формируют то, как потом пишется код во всем 1С-мире.
И я, конечно, могу ошибаться. Но мне кажется, если начать писать типовые решения примерно в такой технике, всем в 1С-мире станет сильно проще жить.
Поэтому, ребятушки, если есть возможность, найдите время, присоединитесь, посмотрите.
Мне кажется, за этим вполне может быть будущее типовых конфигураций.
Поговорил с опытным архитектором, который больше 20 лет в 1С-сфере
Он зашел ко мне на VIP-тариф с «Автором курса». Интересная получилась беседа на тему нотации C4.
Он делится болью:
— Слушай, мы так бодренько на своих архитектурных комитетах разруливаем уровень C1, C2, а дальше мы не знаем, что делать? Как код то писать?
И действительно. А дальше-то что?
C1 в C4 — это уровень контекста системы: какую систему мы вообще делаем, кто ей пользуется, какие системы находятся вокруг нее и где проходят ее внешние границы.
C2 — это уже контейнеры: на какие крупные исполняемые части делится наша система. Например: web-приложение, mobile app, backend, база данных и так далее.
Если внимательно посмотреть на эти первые уровни C4, то по факту они говорят нам:
Ребят, займитесь-ка инфраструктурой. Опишите-ка физическое разделение вашего приложения: здесь web, здесь mobile, здесь backend, здесь база данных, здесь еще что-нибудь.
Если мы рисуем таким образом совершенно разные приложения — приложение для больницы, интернет-магазин, управление производством, — то плюс-минус получим одинаковые диаграммы.
Где-нибудь будет авторизация, backend, mobile, база данных, еще пара внешних систем.
Все.
Квадратики плюс-минус одинаковые.
Но ведь суть этих приложений вообще не в этом. Суть приложения для больницы не в том, что у него есть backend и база данных.
Все самое интересное сидит внутри одного квадратика с надписью Backend.
А как этот Backend написать?
👉 Как внутри него разделить ответственность?
👉 Где проходят логические границы?
👉 Какие там бизнес-правила?
👉 Какие инварианты?
👉 Что к чему относится?
👉 Кто за что отвечает?
Это и есть настоящие проблемы. И рисованием квадратиков эти проблемы не решить.
Причем сами авторы C4 говорят: C4 не задает вам процесс проектирования архитектуры. Это модель для визуализации и коммуникации. Она позволяет посмотреть на систему с разным увеличением, но не говорит вам, как эту систему правильно спроектировать.
Если воспринимать C4 как процесс проектирования и начинать с C1 → C2, то смещается фокус внимания. Мы начинаем слишком рано думать о том, чем надо заниматься в самом конце.
Конечно, бывают системы, где основная сложность именно техническая. Какой-нибудь проект с телеметрией, поисковый движок. Там вопросы latency, распределения нагрузки и прочего могут стать самым важным.
Если мы говорим про бизнесовые приложения на 1С, то огромный кусок инфраструктурных проблем у нас уже решила фирма 1С. У нас есть платформа. И в ней уже очень много всего есть.
Поэтому если мы начинаем архитектуру 1С-приложения с рассуждений уровня C1/C2 и слишком сильно на этом концентрируемся, то уведем фокус внимания от самого важного: От бизнес-логики.
В итоге получим обычный распределенный ком грязи.
Поэтому, ребятушки, C4, ArchiMate и остальные подобные штуки — прекрасные инструменты, чтобы что-нибудь пообсуждать.
Для коммуникации — замечательно.
Чтобы верхнеуровнево показать систему — хорошо.
Чтобы посмотреть на нее с разных сторон — тоже хорошо.
Но они не дают вам процесса проектирования архитектуры.
Они не для этого.
Сначала нужно понять предметную область и бизнес-правила.
Найти логические границы.
Разделить ответственность.
Спроектировать приложение именно логически.
А уже потом, когда все это появилось, открывайте C4 и рисуйте красивые квадратики: где это будет физически жить, какие приложения между собой общаются, какие контейнеры есть и так далее.
Основная проблема — это логические границы.
Над ними надо работать.
А как потом хорошо разделенные логические части разложить по физическим границам, приложениям и серверам — это более простой вопрос.
А вот если вы логически ничего не разделили и сразу занялись физическим делением — ничего хорошего из этого не получится.
На стриме в четверг поговорим об этом. Второй день переписываю бизнес правила, чтобы они лучше читались, выделяю инварианты и провожу четкие границы. И когда с этим закончу — у меня не будет проблем, чтобы выбрать модель хранение или модель презентации.
Работа с доменом — это очень сложно. Это не тоже самое, что квадраты рисовать или кнопки.
Централизация бухучета и АС Смета от НПО Криста
Государство проводит централизацию функций по ведению бухгалтерского учета так называемых бюджетных организаций (органы гос. власти, всякие казённые, бюджетные, автономные учреждения).
Идея имеет здравое зерно (доступность информации о движении средств, прозрачность, подконтрольность, единые стандарты учёта). Но, как это у нас часто бывает, реализация подкачала.
Начнем с великолепной идеи сокращать бухгалтеров в маленьких конторках в городах региона, чтобы собрать огромные коллективы в региональных центрах с зарплатами гораздо выше, арендовать для них помещения со стоимостью гораздо выше. При том что интернет позволяет нам сейчас работать с одним программным продуктом из любого города...
За свою профессиональную жизнь я была с разных сторон этого п̶о̶р̶е̶в̶а̶ процесса (меня централизовали, я централизовала, я готовила к централизации). Но когда тебе звонит бухгалтер какого-то маленького городка, плачет и спрашивает, что теперь делать и как жить, что можно ответить. Что у нашего государства правая рука не знает, что делает левая? С одной стороны провозглашают проблему развития малых городов и сельских поселений, с другой - централизация всего и вся. В малом городе это не сокращение нескольких человек, это ухудшение жизни нескольких семей, у которых ипотека, дети и так далее.
Много ещё можно написать, но так и поста не хватит. Перехожу к вишенке на торте - программное обеспечение, внедряемое безальтернативно (примерно, как мессенджер Макс). Заявляется, как разработанное специально для централизованных бухгалтерий - АС Смета от НПО Криста.
Информацию о "продукте" вы не найдете у них на сайте (по крайней мере я пыталась), можно найти только по поиску через браузер по запросу АС Смета https://npo.krista.ru/products/avtomatizirovannaya-sistema-b.... Также у них нет возможности оставить отзыв :)
Вообще трудно найти отзывы на АС Смета в интернете. Поэтому я решила написать этот пост. Вдруг присоединятся коллеги по несчастью и немного отведут душу, а может повезет и увидит кто-то, принимающий решения (что только не бывает в жизни).
Не буду лезть в то, что не понимаю, поэтому просто отмечу, что разбирающиеся люди говорят, программа написана на устаревшем языке и отстает от жизни лет на 20.
Как пользователь могу сказать следующее - программа разработана как будто для организации, численностью человек 50, максимум 100. Автоматизация здесь под большим вопросом. Очень много ручного ввода и корректировок. Нельзя доверять данным. Практически все бухгалтера ведут параллельно эксель таблицы. Если вы недовольны 1С, то просто не представляете себе насколько она великолепна по сравнению с поделием НПО Криста.
Заявляемые сервисы не работают. Чтобы не растягивать, приведу пример: операции межотчетного периода, когда нужно поменять КБК на следующий год. В инструкциях нужно пару кнопок нажать. Как думаете - работает? (конечно же нет, требуются танцы с б̶у̶б̶н̶о̶м̶ тех. поддержкой продолжительностью несколько дней).
Повсеместно внедряемый ЭДО - один из кругов ада. Постоянно слетающие подписи, криво встающие ЭЦП. Необходимость переподписывать документы по несколько раз. При этом в процессе участвуют многие сотрудники организаций, всем нужно выполнить свою работу в срок. Процесс, который должен быть простым, превращается в издевательство.
Отдельно хочется отметить Службу тех. поддержки, их несколько работает в России. Это пиздец. Если в 1С в поддержке очень часто бывшие бухгалтера или люди имеющие представление о бух. учете, то здесь набирают мальчиков и девочек (видимо программистов), которые вообще не отдупляют, чем тут люди занимаются. У них есть скрипты, есть инструкции и желание побыстрее закрыть заявку. Каждый из нас общался с тех. поддержками банков. Вот примерно то же самое, но цена вопроса не частный перевод, а движение государственных средств, своевременная оплата и отражение операций.
Ещё скажу про внедрение изменений законодательства. Если в 1С ты ещё сам только узнал о новшествах, разбираешься, а они тебе уже выкатили обновление и расскажут, как правильно делать, то с АС Смета... Будешь несколько месяцев ебаться, чтобы достучаться до их методологов, которым будешь долго доказывать зачем тебе нужны такие настройки.
Вот ценой многих часов общения с тех. поддержкой удалось наладить работу в какой-то части. Ура, работаем. Хуякс - обновление программы. Отчетные формы перекосило, из документов пропали данные. Обращаешься в тех. поддержку - Верните как было! Хуй там плавал, они не понимают о чем речь. Они не в курсе состава обновлений в обслуживаемой программе и вообще что случилось, все правильно. Начинай опять сначала...
Работать очень тяжело, порой невыносимо. Скажете - увольняйся. Многие увольняются. Но напомню, централизуют большое количество бюджетных организаций, выбора где работать, остается все меньше.
И много вопросов, кто и зачем решил внедрить эту полуживую каракатицу в такую жизненно важную сферу, как гос. финансы. Когда есть годами обкатанная 1С с решениями на все случаи жизни, с действующими службами поддержки. Всем пользователям приходит только один вывод - откаты (потому что за все это платит государство), либо сыночка важного человека решил поиграть в ИТ специалиста и ему выделили полянку для игры. За счет сотен тысяч людей, которые пытаются теперь выполнить свою работу...
Добавлю ещё про параллельную централизацию гос кадров. И когда это придумывали, почему-то не подумали, что программный продукт нужен общий или с которым есть интеграция. Но нет, теперь это все за деньги, ребятки. И чтобы интегрировать что-то, нужно сначала ТЗ согласовать, закупку провести (большинство представляет, что это такое и сколько нужно времени), а пока ебитесь, как хотите.
Анонимно, потому что бюджетник и боюся.
Расскажите плиз зачем эти сложности
Жена 1С консультант. Ставит в свою 1С какую-то хрень, там ошибка. Просит помочь но я в 1С полный ноль, помочь не могу.
Делаю скриншот ошибки, показываю куда сохранил прошу отправить сисадмину. Что делает она:
делает скриншот моего скриншота какой-то сторонней прогой
заливает его в облако этой проги. прога по пути добавляет свою рекламу.
скачивает этот скриншот из облака к себе, кладет рядом с моим скриншотом
пихает его в ворд
кладет ворд файл в емейл
отправляет емейл сисадмину
На вопрос "а почему бы мой готовый скриншот не отправить?" ответить не может.
1Сники, подскажите плиз — зачем проделывать 1-5 ? Это ритуал? Что он дает?
Зачем архитектору курс?
С утра созвонился со знакомым Архитектором, который купил курс.
Звонил, чтобы задать один вопрос 👇
«Я давно тебя знаю, ты крутой специалист. Зачем тебе вообще идти на курс?»И он ответил:
«Я архитектор на бумаге. А в чем на самом деле заключается моя работа, я не очень хорошо представляю»Человек работает архитектором в крупном интеграторе, получает хорошую зарплату, решает серьезные задачи.
Но у него нет главного — системы, на которую опираться и с которой сверять собственные решения.
Словарь архитектора должен состоять из таких вопросов:
— как правильно определить границы системы
— как декомпозировать систему на модули
— как разделить ответственности между объектами
— как выстроить зависимости в коде
Это язык настоящего архитектора.
Но в мире 1С многие архитекторы не понимают смысла этих вопросов. Не говоря уже о том, чтобы использовать их в работе.
Мой знакомый знает про слои. Понимает общий посыл: систему нужно разделять, бизнес-логику нельзя размазывать по формам и общим модулям, зависимости нужно контролировать.
Но дальше начинаются вопросы.
🟡 Как прийти к этому разделению в реальной задаче?
🟡 На что именно декомпозировать систему?
🟡 Где должна пройти граница?
🟡 Чем Application отличается от Domain?
🟡 Зачем нужны контроллеры, репозитории и дополнительные слои?
С UI более-менее понятно: интерфейс отделяем от остальной логики. Условно есть UI и есть все остальное.
А дальше понимание заканчивается.
Он пишет код, распределяет его по общим модулям, обработкам и объектам 1С. Код работает. Задача решена.
Но остается вопрос:
«Насколько хорошо все это спроектировано? Я действительно правильно разделил ответственности или просто разложил код так, как мне сейчас показалось логичным?»И главное — с чем сверяться?
🟡 Нет понятных критериев
🟡 Нет системы принятия решений
🟡 Нет уверенности, почему одно архитектурное решение лучше другого
Решению этой проблемы посвящен курс. Задача — не изучить набор слоев, паттернов и схем, а научиться проектировать системы:
🟡 от пользовательского сценария — к границам системы
🟡 от границ — к модулям
🟡 от модулей — к ответственности объектов
🟡 от ответственности — к доменной модели и зависимостям
🟡 а затем встроить все это в типовое решение 1С
Чтобы на вопрос: «Почему система спроектирована именно так?» отвечать не:
«Мне показалось, что так логичнее».
А:
«Потому что вот границы. Вот ответственности. Вот зависимости. И я понимаю, почему они устроены именно так»
Мне кажется, именно с этого момента архитектор перестает быть архитектором на бумаге. Что думаете?



