После окончания университета я несколько лет работал программистом C#. Я разрабатывал приложения на WPF с использованием шаблона проектирования MVVM. Затем перешел на ABAP. К большому удивлению обнаружил что ABAP является скорее процедурным языком чем объектно-ориентированным, хотя SAP прилагает большие усилия для продвижения ОО-парадигмы. Для разделения бизнес-логики от GUI как правило используют архитектурный шаблон MVC. Пытаясь реализовать MVC шаблон я каждый раз сталкивался с определенными сложностями, которые делают поддержку программы еще более сложной чем если бы она была написана на процедурах. Не смотря на то, что реализация MVC подробно и с примерами описана в книге Design Patterns in ABAP Objects и на специализированных ресурсах (sapland.ru, blogs.sap.com и др.), проблемы с разделением логики остаются. В реализации MVC на ABAP независимой частью остается Model, а View и Controller тесно связаны между собой. Сильное сопряжение между View и Controller затрудняет поддержку и масштабируемость. Ниже описано почему так происходит и что с этим делать.Читать полностью »
Рубрика «ERP-системы» - 3
Электронные проходные: биометрия и мультиформатность
2020-04-02 в 11:24, admin, рубрики: ERP-системы, биометрическая идентификация, биометрия, инженерные системы, контроллер, контроль доступа, СКУДЭлектронная проходная представляет собой турникет со встроенными считывателями, контроллером и программным обеспечением – готовый комплект для организации контроля доступа. Электронная проходная может использоваться и как самостоятельное решение, и как элемент масштабной СКУД.

Мультиформатность
Применение современных мультиформатных считывателей позволяет одновременно Читать полностью »
Разработка первого проекта на платформе Microsoft Dynamics 365 For Finance and Operations
2020-03-26 в 8:42, admin, рубрики: Axapta, Dynamics 365, ERP-системы, Блог компании LamodaВсем привет! Меня зовут Таня, я тимлид группы разработки Axapta в компании Lamoda. В этой статье речь пойдет про разработку нашего первого проекта на платформе Microsoft Dynamics 365 For Finance and Operations.

Я расскажу про подходы, которые мы использовали, про ошибки, которые допускали, поделюсь знаниями и приобретенным опытом. Эта статья может быть интересна тем, кто начинает разработку проекта в D365 или только задумывается об этом.
Это вольная расшифровка доклада с митапа Mycrosoft Dynamics 365 & Power Platform Meetup.
Читать полностью »
Как избежать программистского беспредела? Советы интегратора
2020-03-17 в 14:13, admin, рубрики: ERP, ERP-системы, Блог компании ICL Services, Программирование, разработка, управление проектамиВ предыдущей статье о проблемах внедрения ERP на промышленных предприятиях в качестве кейса к одному из пунктов был приведён «Программистский беспредел».
У нас есть заказчик, сотрудники которого теперь, отправляя нам сомнительные требования, уточняют, не является ли это программистским беспределом. А некоторые не уточняют, а творят его.

Тема это актуальная, и я решил написать о ней отдельную статью.Читать полностью »
Собеседование в луже крови
2020-02-27 в 19:49, admin, рубрики: ERP-системы, Карьера в IT-индустрии, управление персоналом, управление разработкой, черт знает что, Читальный залТак, собираем истории самых шизанутых собеседований, приемов на работу и компаний, где вам приходилось бывать. Мне как-то везло обычно, сильно больших отклонений от нормы не встречал. Ну там полиграф бывал, посылать интервьюера приходилось, однажды даже устроил обратное собеседование – начальник ИТ, узнав мою зарплату на текущем месте, захотел ко мне работать пойти, даже простым программистом.
Но самый выдающийся случай произошел несколько лет назад, когда впечатлений от первого дня работы было столько, что к вечеру я слёг с высокой температурой, несмотря на прекрасную майскую погоду за окном.
Итак, я, по политическим соображениям (обидели меня, чё уж там), увольнялся с должности начальника ИТ агрохолдинга (курицы, свиньи, колбаса, шашлыки и т.д.). На резюме откликнулся аналогичный работодатель – тоже колбасу делают и свиней выращивают, только без куриц. Вроде, всё один к одному. К тому же, на этом предприятии работал знакомый. Я ему звякнул, узнал – он достаточно лаконично ответил, что всё нормально, работа как работа.Читать полностью »
1С: Ассемблер — пишем чистый байт-код для стековой машины 1С: Предприятие
2020-02-25 в 6:52, admin, рубрики: 1c, ERP-системы, мсье знает толк, ненормальное программирование, нечего терять, Программирование
Стековые машины используются в большом множестве современных языков программирования. Они просты для понимания и при этом достаточно эффективны. Хотите попробовать одну такую в действии?
Все вы, наверное, слышали, что 1С-ники жалуются на свою систему, считая язык 1С недостаточно низкоуровневым, скучным и т.п. Все они с тоской поглядывают в сторону "настоящих" языков программирования. Так вот, господа, они неправы. В системе 1С есть места, где можно размять программерский мозг и получить удовольствие от низкоуровневой техники. Предлагаю вам погрузиться в недра виртуальной машины 1С и понять, как она работает. Там есть свой "ассемблер" и сегодня мы будем писать на нем рабочий код для 1С. Заходите под кат, будет весело!
Нетехническая статья про технические статьи
2020-02-25 в 5:05, admin, рубрики: ERP-системы, Анализ и проектирование систем, Карьера в IT-индустрии, управление разработкой, черт знает что, Читальный залМне часто говорят – эй, где технические статьи? Чё ты всякую чушь пишешь, про менеджеров, директоров, отношения с персоналом, корпоративные дрязги, ноешь про бессмысленность нашей работы и вообще. Мы хотим технические статьи!
Я, если честно, плохо понимаю, что такое «технические статьи». Я понимаю, что такое «задача» и что такое «решение». Еще я понимаю, что решение одной и той же задачи можно найти на разных уровнях – от «железного» до философского. Какой уровень правильнее – не знаю.
Чтобы разобраться, нужна ваша помощь. У меня есть прекрасный сквозной пример решения одной задачи на разном уровне. Сразу предупреждаю – пример из сферы 1С, но вашим прекрасным мозгам там будет где примениться. Попробуем найти место для «технической статьи» в этой цепочке.
Пример является собирательным из нескольких реальных историй. В смысле, он повторялся несколько раз, с разными действующими лицами, включением/выключением разных этапов, но суть одна и та же. Погнали.Читать полностью »
Влезаем в шкуру офис-менеджера. Основные алгоритмы снабжения
2020-02-13 в 5:12, admin, рубрики: ERP-системы, Анализ и проектирование систем, черт знает что, Читальный залНаписать эту статью я решил после посещения одного офиса – там не оказалось черного чая. Зеленого было полно, а черного не было. И с кофе были перебои.
А еще после каждого посещения официального дилера, когда машина ломается, остается желание эту статью написать. Однажды даже написал, через форму обратной связи на сайте дилера. Потому что задолбало бегать и самому покупать ходовые запчасти.
В общем, хочу простыми словами рассказать о наиболее распространенных способах организации закупок. Чтобы было действительно просто и понятно, натяну все эти методы на то, что знают и видят все: снабжение офиса чаем, кофе и сахаром.
Итак, представьте, что вы какими-то судьбами стали вдруг офис-менеджером. Предыдущий уволился месяц назад и уехал жить в Индонезию. Как он что делал – неизвестно. И вам надо организовать нормальное снабжение офиса, полного программистов, тестировщиков, тимлидов, менеджеров и т.п.Читать полностью »
Последовательность шагов по организации управленческого учета на платформе JetCalc
2020-01-28 в 11:18, admin, рубрики: ERP-системы, javascript, jetcalc, open source, бизнес-модели, бюджетирование, управленческий учет
В декабре прошедшего года у большинства коммерческих предприятий и государственных учреждений завершился процесс разработки и согласования планов хозяйственной деятельности на предстоящий год. Кто-то сформировал оптимистичный план, кто-то перестраховался на случай непредвиденных внешних обстоятельств, а кто-то подготовился к самому худшему сценарию. Степень проработанности планов у всех также разная – одни ограничились лишь самыми общими цифрами по доходам и расходам, а другие детально просчитали каждую статью. Но даже качественно и детально проработанный план – это только полдела. Чтобы план заработал как неотъемлемая часть эффективной системы управления, необходимо обеспечить регулярный контроль исполнения намеченных планов.
Читать полностью »
На пути к функциональной СУБД и NoSQL ERP: хранение остатков и расчет себестоимости
2020-01-26 в 11:41, admin, рубрики: Deno, ERP-системы, nosql, TypeScript, Анализ и проектирование систем, Программирование, функциональная ERP, Функциональная СУБД, функциональное программированиеПривет!
Продолжаем исследовать применимость принципов функционального программирования при проектировании ERP. В предыдущей статье мы рассказали зачем это нужно, заложили основы архитектуры, и продемонстрировали построение простых сверток на примере оборотной ведомости. По сути, предлагается подход event sourcing, но за счет разделения БД на иммутабельную и мутабельную часть, мы получаем в одной системе комбинацию преимуществ map / reduce-хранилища и in-memory СУБД, что решает как проблему производительности, так и проблему масштабируемости. В этой статье я расскажу (и покажу прототип на TypeScript и рантайме Deno), как в такой системе хранить регистры мгновенных остатков и рассчитывать себестоимость. Для тех, кто не читал 1-ю статью — краткое резюме:
1. Журнал документов. ERP, построенная на базе РСУБД представляет собой огромный мутабельный стейт с конкурентным доступом, поэтому не масштабируется, слабо-аудируема, и ненадежна в эксплуатации (допускает рассогласование данных). В функциональной ERP все данные организованы в виде хронологически-упорядоченного журнала иммутабельных первичных документов, и в ней нет ничего кроме этих документов. Связи разрешаются от новых документов к старым по полному ID (и никогда наоборот), а все остальные данные (остатки, регистры, сопоставления) являются вычисляемыми свертками, то есть кэшируемыми результами работы чистых функций на потоке документов. Отсутствие стейта + аудируемость функций дает нам повышенную надежность (блокчейн на эту схему прекрасно ложится), а бонусом мы получаем упрощение схемы хранения + адаптивный кэш вместо жесткого (организованного на базе таблиц).
Читать полностью »
