Pull to refresh
25
-1

Программист

Send message

Но при этом на хабре куча статей, где на 1С делали именно с нуля кастомизированное решение собственными силами. Даже в этой статье автор указывает, что многие решения у них - это фактически custom made, а не коробочный 1С ERP. И для таких решений гораздо лучше подходит lsFusion. И поддержка платформы гораздо лучше, чем у 1С. Попробуйте достучаться до разработчиков 1С. А у нас просят что-то доработать в открытом slack-канале, или telegram-канале - мы бывает в тот же день добавляем (в master-ветку конечно же).

В той статье, на которую я дал ссылку, именно архитектурные проблемы в платформе 1С. Вопрос же не в багах, а в неправильно заложенном фундаменте, а точнее большой накопленный технический долг. Баги то понятно, что везде есть. А вот архитектурные проблемы можно решить только полностью снеся все заново и построив с нуля. Что и сделано в lsFusion.

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

Так вот сейчас есть ЕДТ на базе эклипса, которым, правда, ограниченно можно пользоваться - он тормозит просто пипец как. У меня разработка идет в гите, кстати. ЕДТ просто юзаю. для коммитов, разрабатываю в конфигураторе. С постгресом стало все достаточно неплохо.

Ну я же говорил. Не скучно ведь. Работать сразу в двух IDE, разбираться с косяками PostgreSQL и много чего веселого.

А коммитете в гит, как я понимаю, xml-файлы ? А как вы их потом мерджите и конфликты решаете ? Вот так вручную читаете и сливаете xml-файлы ? Удобно ?

И, честно говоря, в последнее время встречаюсь с низким уровнем разработчиков на других языках в компаниях-партнерах.

Но это явно не из-за того, что 1С как платформа сильно выросла. Это возможно потому, что много разработчиков с высоким уровнем куда-то по какой-то непонятной причине уехали... А вот 1Совцам особо некуда уезжать. Поэтому и изменился средний уровень.

В 1С разработке не может быть скучно. Каждый день же нужно на столько граблей, заложенных в платформу 1С наступать. Вот в Java все скучно как-то...

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

А в 1С разве нельзя CTRL+C / CTRL+V из Excel (то есть из clipboard) прямо в любую табличную часть, как в lsFusion ? Тогда пользователь, при желании, сможет сам подгонять любой excel-файл под колонки в таблице и загружать без помощи программиста 1С.

А если пользователь захочет использовать эти данные в ходе оперативной работы ? Например, во время заказа при подборе товаров видеть, сколько заказывалось и продавалось в тот же период прошлого года ? Или просто посмотреть динамику изменения цен по товару за год ? Ему постоянно переключаться между BI и оперативным контуром ?

Судя по тому (статьи, комментарии от представителей), что читал на Хабре, isFusion очень токсичная компания. Всё что читал, выглядит голословным, без конкретики.

Во-первых lsFusion - это не компания, а просто open-source продукт. Open-source продукт - токсичный, а 1С со своим запретом на обращение извне к БД - нет. Ну ок. Примеров там масса и в каждой статье есть.

"Ааа как такое можно писать", приводится запрос в 1С, "да если бы я сказал своим так писать, то мне покрутили бы пальцем у виска".

Это стандартная реакция современного программиста с современным стэком разработки, который увидел 1С.

Было бы интересно посмотреть на "to-do" (1С vs isFusion), например программа для библиотеки. С видео, скоростью разработки и пр..

В документации есть много how-to, а также два простых законченных приложения. Плюс есть даже видео с тем, как идет процесс разработки.

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

Да, на 1С писать значительно быстрее, чем на классических средствах разработки. Но lsFusion значительно более высокоуровневая платформа и на ней писать еще быстрее именно сложные приложения. А для простых CRUD большинство современенных nocode/lowcode платформ подходят лучше, чем на 1С.

Каким образом вы ограничите адекватно запросы в сервер БД только чтением?

Средствами СУБД создать пользователя, которому дать права только на чтение. Мы так миллион раз делали.

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

Не путайте разработчика приложения и разработчика внешнего (BI системы, например). Разработчик приложения и без доступа к БД сможет все поломать. А разработчик BI со своими правами ничего не сделает.

Да, гнать через сервер приложений. Потому что логика система далеко не такая, как она лежит в таблицах БД. И какие-то данные можно отдать только после преобразования сервером БД.

Ну только это создаст охрененный оверхед как по памяти, так и по CPU. И с большой вероятностью еще может и не пролезть, если будет большой блок. За этим придется постоянно следить.

Разработчику 1С в общем случае НЕНУЖНО читать запрос сервера БД.

Может разработчик 1С сам будет определять, что ему нужно или нет ? Вот, например, автор читает запрос 1С, а Вы говорите, что ему это не нужно.

Приведите конкретные примеры, когда эта функциональность нужна при автоматизации бизнес-приложения.

Вы спрашиваете зачем нужен полиморфизм в бизнес-приложениях ? Да миллион случаев на практике бывает у нас. Например, вы определяете в базовой логике свойство (или функцию, чтобы было понятнее) "цена" (пусть будет управленческая) по sku, складу и дате. Условно, price (Sku, Stock, DATE). Затем используете ее везде в логике (например, при печати ценников, формировании отчетов, подставляете в документы и т.д.). Но вам без разницы, как она рассчитывается.

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

И тут вы, со своей не известной системой, которую пытаетесь продавать вместо 1С

Никто ничего не продает. lsFusion - бесплатная платформа. Мы зарабатываем деньги на решениях на ее основе, и даем всем остальным желающим делать тоже самое.

Позволив кому-то стороннему напрямую трогать данные в БД - потерять гарантию в целостности. 

Речь не о записи, а о чтении. Например, надо выгрузить в BI большие объемы данных. Проще всего это сделать прямым SQL запросом к БД. Там уже все оптимизировано под это. Или надо гнать все через сервер приложений ? А если там миллионы записей, как обычно бывает в случае с BI ?

Потому что в лицензионной политике 1С прямо запрещено лезть в таблицы в базе данных. Вся работа только средствами платформы.

Мое удивление было в том, почему 1С не сделает нормально. Отвечать на это, что у них такая лицензионная политика - это тоже самое, что "Жрите, что дают". Никаких недостатков подхода как в lsFusion я не вижу. А вот недостатки подхода в 1С - нечитабельный запрос. Зачем делать хуже, если можно сделать лучше. Впрочем у 1С других проблем выше крыши, так что это - это просто одна маленькая из них.

Я, как бы, понимаю, вы тут представитель упомянутого решения, усиленно топите за свой продукт. И пытаетесь выйти на рынок РФ, но не очень-то удается...

По моему профилю это нетрудно догадаться. Не пытаемся выйти, а уже давно вышли. Насчет удается или нет - не жалуемся. Уже любое упоминание о lsFusion тут же удаляется на том же infostart'е. Боятся... :)

В 1С есть понимание, какой запрос будет исполняться, более того, есть достаточно широкий опыт и рекомендации сообщества и вендора как строить эффективные запросы.

Что значит понимание ? Понимание как будет формироваться запрос есть везде и в 1С и в Hibernate, и в lsFusion. Но это не отменяет того факта, что СУБД может легко ошибиться с планом, и надо найти где, и потом как-то переделать логику или запрос, чтобы СУБД больше не ошибалось.

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

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

Опять же, сам текст запроса прозрачен и читается разработчиком, т.к. он ТРАНСЛИРУЕТСЯ а не ГЕНЕРИРУЕТСЯ.

Кстати, это показывает качество платформы 1С, что там приходится фактически самому вручную писать запросы SQL. lsFusion значительно более высокоуровневая платформа, так как там запросы именно генерируются, и разработчику не надо этим заниматься.

В отношении же самой статьи - рекламная статья решения, которое неявно нарушает лицензионную политику 1С.

Вот это моя любимая часть 1С. А еще по лицензии, насколько я помню, запрещено напрямую обращаться с запросами к БД. Я б уже не стал использовать 1С с такими условиями лицензирования, так как это просто неуважение к разработчикам.

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

Что значит в некоторых случай посмотреть ? Вообще всегда надо смотреть, что это за объекты. Иначе в чем смысл оптимизации ? И смотреть надо не только таблицы, но и поля. Как по Fld384 понять, что это за поле ? Зачем все было так усложнять в 1С, мне не очень понятно. Что мешало сделать нормальные читабельные поля, как во всех в нормальных системах (про SAP промолчу - это тоже то еще ... мамонта).

Вот именно, что приходится постоянно изучать планы. У нас на lsFusion есть клиенты, в которых одновременно работают 2.500 тысяч пользователей, таблицы с миллиардами записей и базой в несколько террабайт. И все это на одном обычно двух-процессорном сервере. Там без оптимизации логики запросов не обойтись.

А зачем менять имена метаданных ? Можно какой-нибудь практический кейс ? То есть, например в lsFusion, изменилось у вас имя таблицы или "поля" - просто делается ALTER ... RENAME

Насколько вижу, lsFusion, это браузерное решение на js, что влечет за собой прямую работу с SQL, поэтому разработчикам и необходимо смотреть как реагирует SQL на их действия.

Принцип работы lsFusion особо не отличается от принципа 1С. Также автоматически генерируются запросы на основе логики, написанной на внутреннем языке. Основная разница в том, что в 1С как раз есть "псевдо-SQL", который транслируется в SQL очень близко, а в lsFusion все запросы генерируются автоматически.

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

А если у вас запрос на 4МБ ? Да и у автора на скрине как раз и есть лог длинных запросов. Как там сходу определить для чего эти запросы, и где они вообще вызываются, если все имена там Fld2983482 ?

Кроме того, вот допустим у вас сформировался запрос с неправильным планом ? Вот что Вы планируете делать в таком случае ? Единственный вариант, как и в lsFusion - это найти конкретное место и что-то поменять. В lsFusion для этого хотя бы есть механизм, который позволяет менять физическую структуру хранения, вообще без изменения логики. Но иногда приходится и логику менять. И все это требует понимания, где именно ошибся планировщик запроса.

Так в этом же и вопрос. То есть, вот вы видите запрос и читаете его EXPLAIN. И как там понимать, что такое _InfoRg50689X1 ? Это товары, контрагенты, документы или что ? Я должен каждый раз лазить куда-то в сторону, чтобы посмотреть, что это за таблица, и что в ней лежит. И также по каждому полю ? Вы это находите удобным ?

Information

Rating
Does not participate
Location
Минск, Минская обл., Беларусь
Works in
Registered
Activity