Хабр Курсы для всех
РЕКЛАМА
Практикум, Хекслет, SkyPro, авторские курсы — собрали всех и попросили скидки. Осталось выбрать!
Вы всерьез считаете, что кого-то из потребителей учётных систем вообще хоть капельки волнует абстрактность/универсальность их внутренней архитектуры?
актуальные формы и формулы. Как только законодатели родят новую схему налогообложения или новые формы отчётности, они должны попасть в эту систему.
б) удобный и привычный интерфейс. Который преподают на курсах бухгалтеров
в) наличие специалистов и компаний-саппортеров
Значит, она мертворожденная по своей сути. Уж поверьте, невозможно убедить потребителя поменять учётную систему ради архитектуры
Если вы имеете в виду, что сам факт нахождения интерфейса программы в браузере сделает его гораздо проще, чем интерфейс 1С,
Интерфейс несуществующей системы не может быть «проще» или «сложнее». Его вообще нет, и неизвестно, каким он будет
Вы хотите сказать, что все те кнопочки/менюшки в учетных системах сделаны для усложнения интерфейса, а не потому, что это нужно бухгалтерам, операционистам, финансистам и т.д.?
Так в том же и вопрос — недостатки-то в чём?
. Я сейчас занимаюсь NAV и CRM-системами MS Dynamics и vTiger.
Критерий «мелкий и средний бизнес у нас сплошь и рядом пользуется 1С, а все её новоявленные конкуренты на рынке под лупой не заметны» вас чем не устраивает?
С каких это пор PHP стал проще, чем 1С?
а нужный клиентам функционал.
Потому что на самом деле 1С устраивает практически всех.
В вашей системе, если она будет развиваться, через пару лет будет то же самое.
Но какова их популярность в сравнении с 1С?
В 1С тоже учет покупок, основных средств или там отчет «товар-оборотна ведомость» находятся в разных модулях
Их разработчики не догадались сделать так хорошо, как догадались вы?Одна из причин. Мне бы их бабло. Впрочем их системы разрабытывались давно и морально устарели.
Ну найдете вы десяток-другой клиентов. Это того стоит?
Мой тысячепервый велосипед намного лучше, чем тысяча велосипедов, сделанных до него! Он обязательно победит!
Это узкое место у вас реально станет катастрофой, причём архитектурной, фундаментальной.
«применение оплаты к счетам»
поиск LIKE по двум тегам отработал 4.9 сек.
на офисном 32х компе с двумя ядрами и mysql под денвером
на нормальном серваке время будет сопоставимо с временем загрузки страницы.
вы же на малый и средний бизнес ориентируетесь?
часть данных хранится в mysql и для выборок агрегируются данные в другой СУБД
Скорее всего все это добро будет стоять на каком-нибудь десктопе с каким core i3.
здесь нет — здесь оно в комплексе с остальными решениями.
Просто упаковка в XML вместо сериализации дает такую возможность — в журнале документов добавить поле для произвольного текста.
будет тормозить уберу и все.
Для поля для произвольного текста XML не нужен.
не решает (простите) заявленную в посте задачу хранения разнородных документов в одной таблице.
Без потери функциональности?
тогда вернется много лишнего, особенно если буду какуюто цифру искать.
пока с теми документами что уже сделал (склад, закупки, продажи, малоценка) решает.
функциональность — это поиск как дополнительная фича
Сериализация и так очевидное решение.
Какую цифру? Мы же о произвольном тексте говорим.
И насколько различна структура тех документов, которые вы храните в одной таблице? Сколько их атрибутов хранится только в XML?
А я-то думал, что функциональность — это расширяемость атрибутивного состава документов без изменения структуры БД.
Хранение в XML — это тоже сериализация.
адекватных БД давно есть встроенная поддержка
количество товара тоже текст но \то цифра
хранятся все атрибуты кроме самых общих — номер дока, его тип, статус, общая сумма.
так и есть. Это ОСНОВНАЯ функциональность
А я хочу сохранить переносимость.
Нет, количество товара — это число.
скажем, даты открытия/закрытия
Из ваших объяснений так и не понятно, какой объем расширений вы планируете так поддерживать.
Зачем?
для аналитики — число, для просмотра и печати -текст
для изменения состояния документа есть отдельная таблица аудита где хранятся оные даты.
с точки зрения документов — любой.
например у клиента уже будет один сервер БД он скажет на фига мне еще mysql
тем более это ничего не стоит — просто использовать правильно adodb
Всегда число. Оно в доменной модели число. То, что оно для печати форматируется как-то, на домен не влияет.
Суммы и даты тоже?
У вас же легкая инсталляция, нет?
Это стоит как минимум тестирования на всех поддерживаемых БД. Вы это делаете?
это теоритизирование не имеет никакого отношения к конкретно этому проекту.
Теоретически тестирование не нужно — это обеспечивает ADODB
В любом случае я не говорю что система переносима (я не создавал sql скрипты по другие БД) Я говорю что система может быть легко портируема на другой сервер БД. Теоретически — без изменения исходников. Но это не такая существенная фича чтобы тратить время на проверку.
в журнале документов добавить поле для произвольного текста
суть в том что в систему может быть добавлен любой документ
шо то не припомню учетных документов с нетекстовыми полями.
как люди вели учет без компов?
Даты, суммы — нетекстовые поля. Связи с другими сущностями — семантически нетекстовые поля.
в данном случае текстовые птому что используются как текст.
то что используется как суммы даты и ссылки — в таблице аналитики.
То есть вы суммы складываете как текст (=конкатенируете)? По датам сортируете как по тексту (т.е., в лексикографическом порядке)?
структура аналитической таблицы должна поменяться?
с какого перепугу?
в аналитике хранятся движения по синтетическим и аналитическим счетам.
С такого, что вы выше пишете, что даты и суммы хранятся в таблицах аналитики.
И больше ничего?
а больше ничего и не надо для УЧЕТНОЙ системы
для системы учета федерального имущества, находящегося в ведении правообладателя, нужно совсем другое.
моя не должна
считайте что подпилить саму платформу — дополнительная фича, котрой нет у разрабов конфигураций 1С.
Пусть остальные 20% остаются на 1С.
а больше ничего и не надо для УЧЕТНОЙ системы
дорогой мой caballero, мне нужно что вот здесь была кнопочка по нажатию на которую, система разашлет всем лицам из справочника «клиенты» поздравление с новым годом. Это можно сделать?
нет, ибо моя система на это не расчитана, если вам это нужно, купите вот еще эту и эту систему, и тогда это можно будет сделать.
А битрикс это сорее инет магазин интегрированй с 1С она действительно не нужна бухгалтерам
В лучшем случае клиент молча начнет искать новую систему в которой «можно».
если рассылка поздравлений — основная функция системы
Возможно будет работать неоптимально и медленно — так же как и в 1с от которой пока никто не отказался потому что нельзя разослать открытки клиентам
я в курсе — я вижу сколько занимает документ у меня в БД.
конечно десятки позиций займут столько места но обычно столько не набивают.
в 1С кастомного поиска нет ВООБЩЕ. И как то ведут учет и даже захватили весь рынок. не понимаю откуда проблема.
Еще раз — стандартный функционал у меня не выходит за рамки СТАНДАРТНОГО функционала 1С.
так же как в 1С — никак. Это задача кладовщика.
и не путайте учетную систему с планированием ресурсов.
да, есть специфические типы учета
Например в аптеках…
рестораны тоже имеют свою специфику.
и что мне рецептуру блюд засовывать чтобы расходы считать?
там ща наплодили десятки конфигураций которые друг друга на три четверти дублируют но почему то отличаются внутренним интерфейсом.
Одна из причин почему стало сложнее и дороже с 1С.
С семеркой было гораздо проще.
Еще раз — стандартный функционал у меня не выходит за рамки СТАНДАРТНОГО функционала 1С.
Открытое ПО != бесплатное ПО
Веб-программер гораздо дешевле программера 1С исключительно потому, что программер 1С понимает и умеет использовать такие неведомые веб-разработчикам штуки, как «проводки», «план счетов», «амортизация» и т.д
А за счет чего проще? Поля в реляционной СУБД как-то сложнее добавляются, чем в этом ОРМ?
Вот и здесь — никто никакие поля не добавляет -добавляются атрибуты документов и справочников.
Автоматически (в базовом классе документа) упаковывается в XML
Я понимаю что сложно представить ситему не требующую расширения БД
Вот захотел я добавить новое числовое поле, чтобы потом по нему делать суммы — фиг
Да нет, ничего сложного, имя им легион. Вопрос того, какие компромисы туда заложены.
Вообще то атрибуты первичных документов и справочников — общеприняты. Пока что мне ни разу не понадобилось добавит какое то экзотическое поле чтобы по нему что то вычислять.
Любые бизнес-данные выбираются с таблиц аналитики.
скажем так — система проектируется на решение ТИПОВЫХ задач.
«мне не понадобилось — никому не понадобится». В итоге получается, что система легко модифицируема только в одном очень узком направлении.
Можно подумать, у них нет тех же проблем со структурой
.… и, видимо, эти типовые задачи заморожены во времени.
система модифицирована в стандартном направлении.
Не встречал бухгалтера который говорит — сделай мне доп. поле с вычислениями. Бухгалтер говорит — реши такую то задаччу.
А где «стандарт» — определили вы.
… а задача требует допполя с вычислениями.
Нет. ПСБУ или как их там.
задача требует решения. а как мои трудности.
в той первичке что уже успел написать (закупки продажи, малоценка, ОС) ни разу не понадобилось никакого поля.
Конечно надо понимать архитектуру и предметную облсть
могу потому что она на порядок проще.
поэтому изменение бизнес логики не требует изменения структуры Бд и не влияет на остальные части системы.
Вы так пишете, как будто это что-то особенное.для систем где нет визуальных построителей — таки да особенное.
Мы уже выясняли, скажем, что в вашей системе не заложено механизмов развития любых значимых полей в БД.
для систем где нет визуальных построителей — таки да особенное.
все значимые там уже есть.
более того — даже если вы добавите новое поле в таблицу какого нибудь справочника
Куда уж больше возможностей к расширению.
Изоляция бизнеса от инфраструктуры — это что-то особенное?
Вы не можете этого знать.
То есть все-таки надо будет изменять структуру БД для добавления новых полей?
Это тривиальный ORM,
особенно е то что он РЕАЛЬНО изолирован
у меня достаточно опыта с учетными системами.
но добавлять новые поля к существущей структуре не вижу смысла.
это не ОRМ
нигде не задаются и не конфигурятся реляции между бизнес обьектами.
Вобще как я уже писал бизнес обьекты строятся на паттерне Active Record
Можете чем-то подтвердить, что он у вас «реальнее» изолирован, чем во всех других системах?
Он в будущее тоже распространяется?
То есть вы не маппите таблицы в БД на объекты языка программирования?
Это ни на что не влияет.это влиячет на определение ОРМ или нет.
Который в широком смысле подвид ORM.
это требует уточнения всез терминов вклюяя переделение критерия излированости.
с полями он само разбирается. Но в любом случае ОРМ тут ни причем. я не задаю реляции между обьектами.
это влиячет на определение ОРМ или нет.
считаете что у меня просто ОРМ. не вопрос
Вобще как я уже писал бизнес обьекты строятся на паттерне Active Record
Который в широком смысле подвид ORM
В широком смысле слова ORM
Шлюз записи данных выступает в роли объекта, полностью повторяющего одну за-
пись, например одну строку таблицы базы данных. Каждому столбцу таблицы соответст-
вует поле записи
Так где же там объектно-реляционное отображение? Не во взаемодействии ли с РБД через объектный интерфейс?
Фаулер не «основоположник», он всего лишь собрал используемые паттерны в книжку
Будьте любезны тогда ссылку на первое упоминание сего шаблона в подтверждение ваших догадок
Patterns aren’t original ideas; they’re very much observations of what happens in the field. As a result, we pattern authors don’t say we “invented” a pattern but rather that we “discovered” one.
То есть упоминание термина есть применение ORM?
Шаблон называется — Active Record — в остальном вы что-то путаете
Какой шаблон? Тот, который используется у автора поста? Вероятно, он сам так говорит
В том, что в ActiveRecord программист работает с объектом доменной модели, который при этом соответствует какой-то записи в БД
Так AR не обязана реализовываться в качестве доменной модели.
The essence of an Active Record is a Domain Model (116) in which the classes match very closely the record structure of an underlying database.
Основная идея лишь в добавлении логики, позволяющей легко восстанавливать, сохранять и удалять данные записи.
Фаулер не «основоположник», он всего лишь собрал используемые паттерны в книжку
Но вроде как название AR получило именно от него, если мне память не изменяет.
Шаблоны проектирования (те что описаны в той же книге фаулера) вообще никто не придумывал, они просто были
Если вы считаете шаблоны данностью, то в аналогии с природоиспытателями, различные законы (шаблонов алгоритмов) кто то должен был открыть, его я и называю — основоположником.
Написанным и работающим кодом.
Так же, как и картина является просто мазней по хосту до тех пор, пока ценитель не увидит в ней произведение искусства.
А после того, как кто-то другой, кто никогда не видел этого кода, опишет паттерн, этот код внезапно станет паттерном. Вас это не смущает?
Эээ, может вы еще и скажете, что картина становится картиной в тот момент, когда ее увидел ценитель, а не когда ее написал автор?
Другими словами чтоб предмет искусства стал таковым, его не достаточно просто создать (намазюков на холсте), его еще необходимо оценить (кем либо, помимо автора).
Нисколько. Паттерн это категория, категории не существуют как данности, они плод стараний познающих, категоризирующих субъектов, не более того.
Тот кто описал и доказал его состоятельность. Аналогично описанию и доказанию теорем.
Если вы считаете шаблоны данностью, то в аналогии с природоиспытателями, различные законы (шаблонов алгоритмов) кто то должен был открыть, его я и называю — основоположником.
все эти шаблоны относятся к разделу Data Source Architectural Patterns, и термин O/R mapping там употребляется постоянно, равно как и в разделе Mapping to Relational Databases, где — опять-таки — они все перечисляются
лон называется Data Mapper, а не ORM.
Маппинг не обязан быть двусторонним
при создании нового экземпляра класса (и заполнении соответствующих полей) в таблицу добавляется новая запись;
при чтении полей объекта считываются соответствующие значения записи таблицы баз данных;
при изменении (удалении) какого-либо объекта изменяется (удаляется) соответствующая ему запись
Каждому столбцу таблицы соответствует поле записи
Это и есть основное правило
В широком смысле слова ORM — это любая технология, которая отражает реляционную БД на прикладную
это не ОRМ. нигде не задаются и не конфигурятся реляции между бизнес обьектами.
главное чтобы свойство совпало с именем поля. Никаких изменений в sql никакого маппинга.
поэтому изменение бизнес логики не требует изменения структуры Бд
Конечно надо понимать архитектуру и предметную облсть
Пока что мне ни разу не понадобилось добавит какое то экзотическое поле чтобы по нему что то вычислять.
мониторинг законодательства, реализация свежей формы Декларации по прибыли или ковыряние в дебрях свежего чуда-юда под кодовым названием 275-ФЗ предлагается делать бесплатно? На основе работы волонтеров, видимо?
Когда-то я тоже был молодым максималистом, с идеей о несовершенстве мира
Как хранить документы, которые очевидно, имеют разнородную структуру. Отдельная таблица под каждый тип документа, общая таблица с кучей универсальных полей, модные нынче NoSQL хранилища… Предлагается хранить все докуменнты в одной таблице в блобе, упакованными в XML.
тестировал. Нет никаких проблем с производительностью.
Кроме того я неоднократно подчеркнул что речь об автоматизации малого бизнеса. Тех, для кого 1С громоздко и дорого а ексель нефункционально. Иными словами в БД не будет трилиарда документов.
тем что система состоит не только и таблицы документов. Все восторги по поводу nosql быстро утихают когда оказывается что нужна именно реляционая схема.
Его не только нет — смысл в том чтобы он не понадобился вообще.
а так быстрее
select from documents where details like '%<contragentname>вася пупкин </contragentname>%'
а так быстрее.
мне пофиг будет оно выполнятся секунду или полсекунды.
И этого достаточно для работы с любым, в том числе наперед неизвестным, типом документа любой структуры.
Он работает с высокоуровневым обьектом -экземпляром класса, например, Invoice и его атрибутами. Мое дело стобы система сохранила и выдала документ однообразным образом независимо от его структуры.
Угу, и как ему к этому объекту написать «хочу сумму по всем счетам, выставленным в мае»?
schemaless storage — и при этом так снисходительно отмахиваетесь от NoSQL
поверьте гораздо проще чем в 1с
по сути одной строкой.
А для взаиморасчетов с контаагентами есть специальный отчет.
потому что подавляющее число бизнес-вычислений выполняется по реляционным данным.
Так как же?
Который кто-то должен написать.
вы предлагаете программисту работать с бизнес-моделью, а потом говорите, что он делает вычисления по реляционным данным.
Что бухгалеру скажет эта цифра?
Мне вот интересно, на какую реакцию вы расчитывали? Вы описали идею (причем не науровне концепта а просто… что у вас есть идея написать свою альтернативу какому-то продукту),
У меня пока складывается впечатление что задумка у вас уже есть но вы пока понятия не представляете как это реализовать
сложный в поддержке, плохо расширяемы и страдающий проблемами с производительностью.
Люди вам высказывают реально полезные моменты, и к некоторым стоит прислушаться.
Вообще что бы я вам предложил, так это сделать концепт проекта покрытый тестами
Ну и да, DSL таки построить свой придется.
Бесплатно — но кто-то это должен будет поставить и настроить, пусть это будет сисадмин даже хотя бы.
облачные системы вполне себе заменяют 1С по крайней мере для некоторых видов компаний
В чем вы видите уж такое принципиальное отличие от идей автора?
Вопрос был: с чего кто-то вообще начнет новое пробовать?
И большая часть нормальных бизнесов вынуждена использовать что-то стороннее.
Хотя бы потому, что 1С не только в авангарде всех изменений минфина и налоговой, но еще — по злостным слухам — сама является чуть ли не причиной этих изменений.
что обольщаться не стоит
Офис — ну да, ситуация схожая. Именно поэтому, все конкуренты обязательно делают свои продукты максимально похожими на мелкософт. Максимально!
тоже наверно говорили ты че апач собрался переплюнуть
Зачем разрабу знать какие надо проводки — ему надо знать какой функцией их выполнить..
Чтобы кто-то мог написать функцию, которая проводки проводит.
такая функция есть
то есть бухгалтер говорит — возьми процент НДС от этой суммы и запиши в дебет такого то счета. он клиент такой у него бизнес-процесс. Чего там надо знать разрабу.
account.Debit += amount * nds, конечно, соблазнительна, но на практике не работает.Либо будут на гитхабе куда их напишет знающий человек.
А откуда она взялась?
Идея, что разработчик — это тупой переводчик с бухгалтерского на account.Debit += amount * nds, конечно, соблазнительна, но на практике не работает.
Ага, все-таки знающий человек нужен. Предсказуемо.для всего нужен знающий человек. Фишка в том что один человек напишет а все будут пользоватся не требуя внедренца.
ну есть функция
Это в 1с не работает (хотя в версии 2.0 помнится очень даже работала.). В этом и проблема.
А предметную область вы все равно вынуждены узнавать у клиента.
Фишка в том что один человек напишет а все будут пользоватся не требуя внедренца.
От начала времен есть?
Нигде не работает.
и так раз за разом, пока не выучишь, да. Только после этого начнут появляться приличные продукты.
И откуда гарантия, что будут пользоваться правильно?
а скоклько было програмистов знающих бухгалтерию на момент появления 1С.?
даже не представляю. как можно неправильно ввести товары в накладную или счет фактуру.
поэтому чем меньше лишних полей и всяких кнопок тем меньше вероятность ошибки.
а что прогамисту надо он легко добавит.
значит спросит у заказчика.
так работают програмисты в странах, где кремниевые долины. каждый занимается своим делом.
Который тоже нифига не знает, что ему надо.
То есть большой и отдельной дисциплины анализа
Знает. ВСЕГДА знает.
она не для програмистов.
Заказчик говорит — надо так и ему делают так. Потому что он платит за то что сделали как он считает правильным с точки зрения его бизнеса а не начали расказывать ему что он ничего не понимает.
Иначе бы не было целой специализации бизнес-анализа
сначала достают из заказчика тайное знание, про которое тот сам не знал, что оно у него есть
А потом его система работает неправильно, и он винит программиста.
Пять лет плавали, спасибо.
это просто инструмент. Заказчик говорит что ему нужно. А исполнитель выбирает тот или иной инструмент.
он знал но не мог сформулировать технически правильно для постановки задачи. Но он ЗНАЛ.
А какой критерий правильности?
Если исполнитель делает так как хочет заказчик, как бы абсурднв е были требования, никаких претензий быть не может.
Не надо свои умняки выдвигать — сделайте в точности что заказчик хочет. не может сформулировать не начинайте писать пока все не вытрясите с него и не убедитесь что поняли его правильно.
Чтобы выбирать, нужно иметь такой инструмент в арсеналено не програмисту
Не. Понимаете, «заказчик» — это аморфная организация. С вами говорит конкретный человек, который что-то знает — вот только не факт, что это что-то имеет отношение к задаче.
Достижение бизнес-целей заказчика.которые определяет он а не вы.
Не может, но будут. Потому что заказчик несет убытки (в варианте с госухой — получает претензии)но вы можете его послать куда подальше. а в случае если он скажет — вы же говорили так правильней — не сможете, потому что полезли менять бизнес правила его бизнеса
. когда заказчик считает, что он уже все сказал, что там непонятного, и сделать надо позавчера.
но не програмисту
заказчик не аморфный хотя бы потому что что у него конкретный счет в банке с котрого ы хотите отстегнуть себе на кусок хлеба.
которые определяет он а не вы.
но вы можете его послать куда подальше.
Заказчик знает на уровне — «Ой, а давайте сделаем, чтобы у нас еще и вот эта фиговина считалась».
Open source. Кросплатформенность.
Веб приложение
PHP
Предлагается хранить все документы в одной таблице в блобе, упакованными в XML
Поверте у меня это выберется намного быстрее.
а почему оно должно быть медленнее?
вы все равно не сможете обеспечить реляционные связи для всех фантастических случаев
Впрочем могу сделать выборку с помощью XPath и тогда могу и связать
но я не вижу смысла усложнять систему чтобы оьеспечить скорость для экзотических выборок мало встречающихся в реальном учете
я выполню любую выборку
Но такие экзотические
на любой системе можно придумать выборку которая ее положит
Вашу систему положит любая выборка, которая потребует обращения внутрь XML.
Ну это без програмиста и в 1С нельзя сделать.
Ну это без програмиста и в 1С нельзя сделать
Чтобы ее победить не нужна «технически более совершенная» или «более правильная» — нужна всего лишь более эффективная.
Для любого бизнесмена выбор из этих трех вариантов абсолютно очевиден: вариант «В»
она в общем-то стоит сущую ерунду для любого бизнеса.
Вот стоимость вариантов А, Б и тем более Г — это реально «темная лошадка» и непонятные риски.
Да вот только во-первых в сканерах штрих-кодов и весах wince нету, а есть только описание последовательностей байтиков да dll-ка.
И это еще не касаясь вопросов реальной многопользовательской работы с гигантским чудо-XML-ем.
в таком случае нужен драйвер для каждого типа оборудования. Новое оборудование и 1с уже беспомощна.
Я думаю один из вариантов — програмулька на делфи, к примеру, которая работает с dll и в другой стороны дергает API.
нет там никаких проблем. опять же речь о малом бизнесе — не бувдет там тысяч запросов в секунду
Как я уже писал, с новым оборудованием все равно идет инструкция по подключению к 1С. А вам (и нам) надо самостоятельно писать драйвер. Без этого ваша (наша) супер-мега-учетная система никому не нужна.
А как же тогда заявленная кроссплатформенность и опенсорсность?так прога часть конкретного оборудования на конкретном месте.
Вопросс — что станется с чудо-XML-ем?
ну не всем нужно подключать торговое оборудование.
так прога часть конкретного оборудования на конкретном месте.
то же что и с чудо 1С. Либо успел сохранить документ либо нет.
Не понимаю проблемы.
Кому и зачем нужна учетная программа для малого бизнеса, которая не умеет работать с торговым оборудованием?
На всякий случай напоминаю, что я с 1С не работаю
Вот когда по вине вашего «либо сохранил либо нет» фирма понесет убытки, или хотя бы кто-то пару раз будет наново вносить накладную на сотню позиций (еще лучше — расходную), вот тут то понимание и придет.
Но интересовало другое — какова вероятность превращения в винигрет XML-хранилища в случае сбоев, в том числе аппаратных?
Мой склад или другие saas как работают? если работают конечно.
набивает накладную 99 позиций тут свет погас. И что?
нулевая. Потому что нет никакого XML хранилища.
есть таблица документов в которой одна запись — один документ независимо от его структуры и сложности.
Либо записалось либо нет.
Тогда не называйте себя системой учета.
А, тоесть авария в процессе записи даже не рассматривалась. Вот все глупые — начиная от mysql и sqlite и заканчивая oracle и mssql — «они тупые», они че-то тестят, какие-то глупые аббревиатуры пишут, и только я один самый умный «либо записал либо нет вне зависимости от структуры». А заодно и от настроек ОСи, драйверов, винта и прочих обстоятельств.
Нормальная учетная система включается и продолжает работу с 99 позиции. Есть така весчь — ACID. Слыхали, нет?
вся предварительная работа тоже должна быть сохранена.
Там есть поле в JSON, и постгре даже умеет внутри него практически реляционно искать
в запросах — это не экзотика, а ежедневная работа очень для многих
Я еще и не таких сценариев запроса могу накидать,
Менеджер забивает накладную от этого же поставщика. В торговом зале продается тот же товар, который есть в накладной менеджера.
.В дангм случае бесплатная, кросплатформенная и простая. Что кстати не тносится ни к одному продукту названому вами вышеЗа БОСС не скажу, но исходники открыты. Nexus — бесплатная и простая, Compiere — бесплатная, не очень простая, но зато полная ERP.
.Предметную область понимает клиент — то есть бухгалтер. Зачем разрабу знать какие надо проводки — ему надо знать какой функцией их выполнить..
Nexus — бесплатная и простая, Compiere — бесплатная, не очень простая, но зато полная ERP.
с таким видением предметной области увлечь других разработчиков, работать на новом движке будет проблематично
единственным преимуществом которого является простота, но который надо изучать и с непонятными наперёд «особенностями» никому не нужен.
В том то и дело что объем допиливания там больше чем с нуля.Учитывая, что вы пока не знакомы с системой (что странно для ищущего альтернативу 1С, ведь Odoo это крупнейшая ERP с открытым кодом, её сложно пропустить, если искать) и её кодом, как вы можете это знать?
Потому что нужно не только допилить а допиливать постоянно — а там это весьма трудоемко.
Odoo это крупнейшая ERP с открытым кодом, её сложно пропустить, если искать) и её кодом, как вы можете это знать
Все без исключения надо перепиливать.
код не могу посмотреть где но уверен что древний с проблемами с модульностью
Ох. Даже не знаю с чего начать.
Вы себе сложность системы явно не представляете.
А вы тут на 1С замахнулись
Особенно мы будем печатать из браузера
И что сам по себе html не очень то хорошая вещь для отчетов
Он работает более менее для отчетов где одна две таблицы и все. Если что посложнее туши свет.
У вас потом с проверками данных будет очень много заморочек. Как раз из-за слабой типизации.
Дополнительно прежде чем приступать сначала изучите предметную область. Хотя бы на уровне двойной записи.
о тестировании слышали что нибудь?..
начните с перечитывания коментов — я уже на все вопросы ответил.
вы этого знать не можете. у меня многолетний опыт програмирования в том числе работы с учетными системами и 1С.
я не замахнулся на 1С — я не идиот. Я делаю альтернативу а не аналог.
альтернативу для тех для кого 1С неоправдано хлопотное решщение.
там чернобелая табличная верстка с инлайн стилями. пока нормально — надо будет добавлю media атрибуты — проект в разработке не все сразу.
да и кому эта печать скоро будет нужна -все на электронку перейдут.
ну да. на навороченых сайтах HTML работает на на отчете нет.
цу меня там налоговая есть — довольно мудреный бланк и ничего.
да надо повозится — должна быть верстка одной таблицей со спанами чтобы не разьехалось в екселе.
но это HTML, а не спец построитель отчетов, — любой начинающий верстальщик сделает.
о тестировании слышали что нибудь?..
милионы сайтов, интернет магазинов и пр. работают на PHP и как то справляются с данными.
Кэп намекает, что все ответы должны были быть в статье, а не в комментариях
Извините, но по статье этого не видно
На таком уровне работать будет.
Проблема в том что единственный формат который делает что на экране то на бумаге это PDF
И вот html имеет их весьма много.
Покажите мне хоть одну систему учета на php и да так чтобы там бизнес-логику можно было писать на php да еще и не разработчикам.
все ответы в исходниках на гитхабе. статья описывает отдельные технологические идеи. Проект как таков тут несущественен.
это вопрос к вашему офтальмологу а не ко мне
на уровне достаточному обеспечить функциональность
не единственный. И с pdf не всегда все гладко.
как минимум не надо на каждый документ писать код генерации PDF
и какая разница для накладной сколько пикселей будет высота наименования товара.
не существует ни на каком языке учетных систем где бизнес логику пишут не разработчики.
где я писал что PHP это для того чтобы писал неразработчик?
А где вы писали противоположное? К примеру в 1С пригласить программиста, это не в 1С написать и пригласить их разработчика.
Тогда не понятна цель статьи.
Ну 1С жеж. Там пишут
А где вы писали противоположное? К примеру в 1С пригласить программиста, это не в 1С написать и пригласить их разработчика
цель стати (для девелоперов, коим вы похоже не являетесь)
описать варианты решения некоторых типичных технологических и архитектурных проблем возникающих при разработке учетных систем и им подобных.
На вашем сайте и в этой статье нет ни одной ссылки на исходный код
Скрипт заливки БД без указания кодировки, при этом кодировка не UTF-8 хотя таблицы в UTF-8. К примеру под linux это зальет фигню, так-как по умолчанию там mysql клиент считает что кодировка UTF-8
Нет описания схемы БД и функционала системы.
на сайте есть. Здесь нельзя.
у меня демка на линуксовом хостинге. нет никаких проблем с заливкой.
кроме того структура БД нужна разработчику платформы которая уже готова и разрабатывать там особо пока ничего не надо.
И потом — проект в разработке — у меня не сотня рук. Когда появится кто то кому нужно знать структуру (для работы а не для любопытсва) я ее опишу.
где вы увидели в этом проекте какие то проблемы с двойной записью?
или признайте что пишете лишь бы ляпнуть
У вас в вашем ПО есть двойная запись или нет?
Что умеет и как.
Переходим на личности
вы сами перешли начав делать выводы о том что я знаю а чего нет
И моя позволят. Если написать соответсвующий код.
Да это будет медленно, но для экзотики сойдет.
Я не собираюсь ради этого делать визуальный конфигуратор как в 1С чтобы генерить динамически структуру БД
и парсер запросов чтобы сортировать на уровне БД.
Это не экзотика, это обычное требование пользователя в рамках той самой бизнес-задачи, которую, по вашим словам, ваша платформа позволяет легко решать
а для этого не нужен визуальный конфигуратор.
а для этого не нужен парсер запросов
в 1с нужен.
Потому это и 1с не делает
«Бухгалтерскую систему» превратить в «Не бухгалтерскую».
при этом квалификация 1С программистов весьма низкая
Так вы либо пишите аналог 1С: бухгалтерии, которую нельзя менять, либо пишите аналог 1С, но со столь же гибкой архитектурой.
она именно бухгалтерская это вы пытаетесь прилепить рассылку и все что от лукавого
я б этого не сказал
я пишу не аналог а альтернативу
А если кому чешутся руки — платформа тоже открытый код
А гибкая настройка противоречит самой идее. Я не собираюсь превращать проект в джумлу
Именно что она у вас бухгалтерская, а вы предподносите ее так, как будто из нее можно склепать что то еще
а у вас это все еще только Бухгалтерская система.
ничего подобного не говорил
Веб приложение легко обновляется заменой отдельных файлов (привет конфигуратору 1С)
Тут можно что угодно дописать
а где противоречие?
То что это просто сайт на PHP позволяет расширять не только платформу
я так понимаю вы тоже разраб 1с или некоей околоучетной документооборотной системы.
Никто другой не относится к альтернативным проектам с такой ревностью.
А пофиг что у меня самого нет половины нужных фич. Главное что у тебя нет самого главного — сортировки по дням рождения тещи контрагента
Ну то вы говорите что на ней можно пилить, потом говорите что это выходит за рамки учетной, потом опять что можно.
настолько существенных изменений в регламентах не было за последние лет сто.
их не будет. нет никаких причин чтобы они были.
будут технологические изменения типа перехода на электронку а в этом случае придется менять платформу всем и 1С в том числе.
Вы не представляете себе, сколько проектов было похоронено вот такими надеждами.
Странно, почему-то 1С удалось организовать электронный обмен с РосИмуществом безо всякой смены платформы
потому то и скриптовый язык с открытым кодом
вы думаете этот обмен там был со времен версии 2.0?
Скриптовые языки не упрощают поддержку и модификацию
что эта функциональность уже есть, поэтому ваше «всем придется менять платформу» немножко неверно.
упрощают
стандартная ситуация — делают прогу на делфи не отдавая исходники и садят клиента «на иглу»
преимущество веб приложения с открытым кодом что можно как изменить платформу так и дописать функционал рядом с ней чтобы не менять и не иметь проблем с совместимостью конфигураций…
Это, извините, не скриптовые языки, а открытые исходники.
Если вы измените платформу, то как вы избежите проблем с совместимостью?
Если вы допишите функционал «рядом», то при чем тут платформа?
но скриптовые языки по факту открытые (ну если специально не шифровать)
и потом они не требуют среды разработки.
стараюсь ее спроектировать так чтобы менять не пришлось изза какой то несущественно фич
то есть, чтобы мне как обсуждали добавить выборку по специальному полю документа не распарсивая блоб, я добавляю это поле в таблицу документов.
поскольку платформа не изменилась а обновление -просто копирование файликов.
еще и в отображении надо будет поменять, ведь правда же?
Все еще обойдетесь простым копированием файликов?
отображение — часть конфигурации а не платформы.
в этом конкретном нет
в остальных да в чем и преимущество
В 1С кстати нельзя перекопировать документ. Отчет или обработку еще можно выгрузить и подключить а новое поле документа (по котрому вы хотите лихо что то там сортировать) меняет структуру хранилища. как и новый атрибут справочника.
И поэтому несовместимы не только версии 8.0 — 8.3 а и релизы конфигураций с релизами той же версии.
Я уже не говорю про то что в 1с нельзя сделать того что не поддерживается платформой. Поэтому лепим битрикс. Поэтому делаем веб в точности похож на десктоп а потом чешем репу и пилим отдельно мобильного клиента. Через пару версий 1с действительно догонит SAP… По монстрообразности и дороговизне внедрения и саппорта.
в этом конкретном нет
в остальных да в чем и преимущество
в 1С обновление затрет все
Пользователь сам решает какие дополнительные поля добавить, а далее заполняет их и в отчетах может по ним делать отборы и сортировки.
это в вашей паралельной вселенной.
А в нашей вселенной бухгалтер тетя Маша даже понятия не имеет где там что редактируется и зачем.
То же касается всех остальных крутых фич. — Это делают програмисты и делают небесплатно.
Статья для тех кто не считает что на 1с свет клином сошелся. такие люди были есть и будут, как бы вас одинэсников это не бесило.
Я ответил, что в типовых 1С для такой мелочи вообще программист не нужен.
что они не одинэсники и вообще 1С-ом не занимаются.
тогда зачем спорят о том о чем понятия не имеют
теоретически, по задумке фирмы 1С, для 1с програмист не нужен — даже язык програмирования на русском.
Опуститесь на землю — никакие бухгалтера там ничего не редактируют и даже не открывают конфигуратор.
у меня была знакомая бухгалтерша с Харькова, которая жаловалась, что в 6-ке она могла сама дописывать все,
Я говорил про типовой механизм «свойства и категории», который реализован у большинства справочников и документов в коробочном решении.
Существуют учетные задачи. Они РЕГЛАМЕНТИРОВАНЫ. Первичные документы, отчеты, проводки и все такое. Там нет никаких экзотических поисков и сортировок
Да, автор местами гонит про XML в BLOB
в 1с напрямую с БД прочитать ничего нельзя без танцев с бубном и как то живут.
Уж если кто то может выгрузить данные с Бд то уж точно он может перезапустить сайт или поцепить Бд на копию
Да какая разница, как сделано в 1С?
А если ему не нужен сайт, если он делает интеграцию?
а с чем он в таком случае ее делает?
С БД, понятное дело.
когда вы используете для хранения в БД закрытый формат,
И еще и теряете поддержку на уровне
БД.
ну интеграцию обычно делают не с Бд а с неким продуктом
просто че то я не очень доверяю json вне сферы его естественного применения
Поэтому если кому нужен документ лучше я отдам его в том же json через стандартный RESTful сервис.
Если у некоего продукта нет нормальной интеграции, то может выясниться что проще интегрироваться через БД.
то есть у вас еще и REST-api будет
21 век на дворе сервисы переезжают в облака — ПО должно уметь ходить у API по http
как раз пример функционала который платформу не меняет но легко добавляется
За одно это стремление стоит приободрить автора кармой и плюсами
А если вам кажется, что вас критикуют не обоснованно, вы будете молчать, получать минуса и кивать головой? Или попытаетесь оспорить?
Я просто имею ввиду, что если сейчас заминусовать автора, то мы так и не услышим продолжения. А вдруг взлетит?
все те, кто на бухгалтерских форумах спрашивает что нибудь кроме 1С или которых 1с по тем или иным причинам не устраивает или не решает их задач за приемлемую цену
Промежуточные итоги и были придуманы в 1с для того, чтобы корректировать последующие итоги без их пересчета при проведении документов задним числом
PHP +проведение задним числом документов в системе без итогов = вечность.
На реальной базе с двумя десятками активных пользователей все будет висеть намертво.
Даже, если представить, что автор создаст систему, которая будет идеалом в плане логики и реализации
Уже создал.
$sql = "select * from " . $table;
if (strlen($where) > 0) {
$sql .= " where " . $where;
}
if (strlen(trim($orderbyfield)) > 0) {
$sql .= " order by " . $orderbyfield;
}у вас нет никакого морального права ругать программистов 1С
что там есть автоматическая защита от SQL injection
Причем все эти $where, судя по всему, топают прямо с полей формы.
Зато в названии вашего калькулятора есть слово ERP
И этот «калькулятор» обеспечивает все основные первичные документы и отчеты
но нет налоговых накладных.
Потому что эта софтинка не позволит вам сигареты продавать одновременно пачками и блоками, а кока-колу продавать бутылками, а закупать ящиками.
Ещё она не позволит вам оплатить поставщику по выбранной приходной накладной,
В ней нет бухгалтерского учета. Там есть какие-то журналы проводок, но зачем они нужны, непонятно, т.к. проводки нигде не настраиваются.
Но пользоваться как учетной системой ей нельзя, там ещё работы и работы
разумеется это демка. Самый минимум. Жирно будет сделать бесплатно полную конфигурацию особенно витиеватые регламентрованые отчеты.
Налоговые накладные есть.
В киоске обычно суммовой учет — нет никаких проблем. А вообще при перемещении на розничную точку ящики спишутся а бутылки запишутся.
А зачем их настраивать
А вы судя по всему не представляете как может быть по другому — не как в 1С.
Любое внедрение требует напильника.
Разница в том что тут это гораздо проще чем в 1С.
Как нам обустроить альтернативу 1С