Pull to refresh
57
0
Send message
Так тот кто махнет пересчет цен в процентах на все позиции, он по определению не будет смотреть ни на первого ни второго. Даже если он увидит предупреждение он все равно махнет. И изменения первого и второго потеряются в любом случае.

Но это какая то надуманная проблема. И если она для какой-то информации реально существует на практике, ну так включите для этой информации пессимистичные блокировки, делов-то. А для остальных 95 процентов случаев, когда описанная вами ситуация очень маловероятна / некритична оставьте параллельный ввод (что значительно ускорит работу пользователей).

Собственно смотрите, во всем мире в битвах — версионник (оптимистичные блокировки) / блокировочник (пессимистичные), расшаренный excel / google docs, блокировочные VCS / Git победили оптимистичные блокировки (с иногда опциональными пессимистичными).
Что-то я не понял. У вас первый ответ, противоречит второму. В том плане, что если управленческое и бухгалтерское решение ставят и обновляют отдельно, как тогда решается проблема, которую вы сформулировали в конце.
А с точки зрения 1Сцев нет? Ну тогда и наследование можно на if'ах делать. Тоже не костыль. И вообще по такой логике C от Java ничем не отличается.
В США хоть об этом знают?
В 1с из-за явной блокировки документа мы получаем гарантию, что пользователь видел актуальное состояние документа, оценил его, внес изменения и записал. И поэтому можем говорить, что он полностью отвечает за свои исправления.

Ну так я также могу и про Google docs сказать. Плюс часто за разные данные в одном документе отвечают разные люди, особенно когда документ сложный или содержит много данных.

Еще раз никто не мешает повесить пессимистичную блокировку. Просто в 99 процентов случаев это не нужно и не удобно. Собственно поэтому например блокировочные системы контроля версий умерли под натиском того же git (хотя там тоже можно те же аргументы про актуальное состояние, его оценку и т.д. привести).

Ну и главное. Основной посыл в том, что lsFusion поддерживает и оптимистичные и пессимистичные блокировки (без хитрых вывертов по сути из коробки), а 1С только пессимистичные.
Нет, при проведении сработает ограничение, что выбран договор не того контрагента, после того как пользователь нажмет ОК, данные обновятся и он увидит другого контрагента и сможет выбрать другой договор.

Но опять-таки правило Парето и разница между оптимистичными и пессимистичными блокировками. В 99 процентов удобнее работать параллельно, а в 1 проценте случаев главное чтобы поддерживалась целостность и с большего указывалось в чем проблема ее нарушения. Это дает куда лучший баланс, чем просто все запретить, и слушать крики на весь офис «Маша дай отредактировать документ, когда ты его уже отпустишь».
Что значит безапеляционно утверждая? А вы сами этой аналогии не видите?
Вот по этому я и говорю — вы сравниваете выдранные из контекста боевых решений алгоритмы со своими академичными примерами, а это неправильно.

Стоп. Я когда выдирал алгоритм, специально поиском проверял, что это код нужен ТОЛЬКО для проверки одного ограничения, что количество товара который отгружается не больше количества товара который приходуется / оприходован. Я там даже пометку сделал
PS: Проверено, эти временные таблицы нигде больше не используются, только для проверки одного простого ограничения.

Если вы найдете, где эти временные таблицы еще используются в УТ, то напишите где этот код найти (правда может за год что-то изменилось). И в любом случае вот это все:
и различные блокировки на время записи документа, и даже проверка необходимости изменять записи в таблицах, если они не изменились с момента предыдущей записи

Это чистая accidental complexity которая в 1С есть, а в lsFusion нет.
В 1С можно заложить множество бизнес-логики на исполнение только на клиенте, что заметно снизит количество обращений к серверу. И да, для написания максимально оптимального решения программисту необходимо понимать потоки данных Клиент-Сервер.

Знаете что такое premature оптимизация и правило Парето? Безусловно возможно есть случаи, где такая тонкая оптимизация может понадобиться. И важно чтобы такая возможность была (и в lsFusion скажем она тоже есть). Но в 97 процентов случаев такая оптимизация все-таки не нужна от слова вообще, а разработчику приходится делать всю эту лишнюю работу, по разделению на &НаКлиенте и &НаСервере, создавая тонны запутанного кода. То есть они с водой ребенка выплеснули.
будет работать оптимально и не вызовет получения лишних данных

А зачем тогда весь этот огород с:
Номенклатура В (
ВЫБРАТЬ Номенклатура
ИЗ Документ.РасходнаяНакладная.Состав
ГДЕ Ссылка = &Документ)
Если она сама все протолкнет и не «вызовет получение лишних данных».
Ну вы вырожденный случай выбрали. Скажем если примечания будут строками, то несколько строк отлично добавятся в документ параллельно.

И нет, пессимистичные блокировки тоже делаются очень легко. Тут есть пример (описание системных действий lock, unlock встроенных в платформу)

То есть можно сделать просто:

lock(o);
IF lockResult() THEN
     TRY
          edit(o);
     FINALLY
          unlock(o);
ELSE
     MESSAGE 'Используется другим пользователем'

Но на практике это используется очень редко. Когда пользователи привыкли к Google Docs, использовать расшаренный по сети Excel-файл уже никто не хочет.
Нет, почему. Пользователи как раз меняют, каждый свои данные спокойно и не мешая друг другу (как в google docs). То есть один изменил цену в одной строке, другой в другой. Вас же не смущает, что в google docs несколько человек могут править один документ? И ситуаций, где это может пригодиться — не счесть.
Сработает ограничение (если оно есть) на наличие двух «идентичных» данных. То есть целостность данных вы не нарушите никак.

Ну и в любом случае «большая сила влечёт за собой большую ответственность» (с) Человек-Паук.
Изучаю вашу демку ERP. Ну что сказать… А где блокировка бизнес-объектов от изменения одновременно несколькими пользователями? Или так задумано —

А вы статью читали (в том числе заключение)? В этом магия lsFusion, она не читает (а потом и записывает) объект целиком. То есть вполне допускает одновременное редактирование данных (аля google docs или условно git), при этом полностью гарантирует целостность данных, и то что одно изменение пользователя не затрет изменение другого пользователя (если один поменял одни данные, а второй другие).
Что значит прошляпит? Ничто не мешает второму поставщику просто подстраиваться под изменения первого (первый выпустил новую версию, второй в течении короткого периода времени обновил интеграции). Например в России есть куча провайдеров всяких центральных сервисов аля Честный знак, ЕГАИС, Меркурий, и все как то актуализируют интеграцию с ними. То есть проблема явно надумана. Вон SAP даже как-то живет, а это весьма большая и как следствие не очень поворотливая махина.
Не совсем понял. В этой статье «прямые» сравнения это:

  • про отсутствие оптимизатора запросов — там пример один в один
  • с ограничениями — там есть небольшая разница(хотя даже в первой статье специально была выбрана именно проверка очень простого ограничения вроде текущего остатка), но, собственно основной смысл, что в lsFusion задаешь как вычисляется показатель, а дальше просто вешаешь ограничение на него одной строкой. А в 1С нужно танцы бубном из триггеров и временных таблиц городить
  • с разделением сервера и клиента — но там как раз у 1С и будет жутко монструозно из-за всех этих НаСервере и НаКлиенте

Взять хотя бы ошибочную версию автора, что виртуальные таблицы 1С — всего лишь представления (view).

Что значит «всего лишь представления»? Да, в SQL и в других технологиях представления это и есть виртуальные таблицы (просто по определению). Другое дело, что в 1С виртуальные таблицы еще несколько мелких вещей «сверху» умеют делать (например автоматически группировать, когда не все измерения указаны и т.п.), но это просто небольшой синтаксический сахар сверху.
Вы сначала полноценную конфу уровня УТ хотя бы запилите, а потом на ее примере демонстрируйте успехи…

Ну например вот (исходники, если хотите сравнить код), система на которой работают 70% крупных розничных сетей Беларуси (там конечно нет части функционала УТ, зато есть огромное количество функционала которого нет в УТ)
А какая разница один или не один поставщик? Понятно что любой поставщик управленческих решений (коих тысячи) занимается актуализацией интеграции с бухгалтерией. Более того уверен в 1С этим занимается отдельный отдел / люди (то есть по сути «другой» поставщик).
Вы надеюсь в курсе, что даже у 1С в подавляющем большинстве случаев УНФ/УТ/ERP ставится отдельно от БУХ и ЗУП? Как собственно и то, что во всем остальном мире бухгалтерию чаще всего ведут отдельно?
Опять-таки, это хабр. Здесь в критике 1С всегда мало конструктива. Больше на эмоциях как-то основываются.

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

Или у вас есть другое объяснение, почему часто 1С разработчики отвечают строго эмоционально, а не могут предметно сформулировать свои мысли / возражения?
Нет, естественно интеграция с бухсистемами должна быть (выгрузка или уже агрегированных проводок или первичных данных). И в MyCompany и даже в самих 1С решениях она есть (как и везде в мире). Но этого как правило в управленческих решениях более чем достаточно.
Ну, строго говоря, все альтернативные решения используются именно для разработки информационных систем. Скажем решения для банков и крупного ритейла часто пишут на PL/SQL, T-SQL (в смысле всю бизнес-логику) + каком-нибудь чисто UI-фреймворке (скажем дельфи или веб), но бывает, что эти же решения пишут и на 1С и на Java Spring. А например ERP решения для производства чаще всего пишут на ERP-фреймворках, но бывают когда также как для банков на PL/SQL или на .Net. Высоконагруженные корпоративные бизнес-приложения (где простая бизнес-логика, но огромная нагрузка) чаще пишут на каких-нибудь Java EE, но бывает и из PL/SQL (или даже ERP платформ) выжимают все что можно.

Собственно эта диаграмма в заголовке показывает, что потенциально технология аля lsFusion может заменить PL/SQL, ERP-фреймворки и RAD-средства. До ORM она не дотянет в плане гибкости и масштабируемости (ультра высоконагруженности).
Есть такое. Но конструктива, где претензии были или необоснованными или незначительными, все равно было очень мало. Хотя с другой стороны человеку ни разу ни использовавшему ни явную типизацию, ни наследования с полиморфизмом, ни нормальные IDE действительно тяжело понять зачем это все нужно.

Information

Rating
Does not participate
Works in
Registered
Activity