Если делать альтернативу 1С, то какие брать готовые компоненты?

Автор trdm, 01 апреля 2024, 11:18

« назад - далее »

trdm

Цитата: АЛьФ от 02 апреля 2024, 10:184. Система должна в базе содержать задел на клиент-серверную архитектуру, но не заставлять прикладного программиста морочиться всеми этими клиент-серверными заморочками, по максимум скрывая это. На предпоследнем уровне программисту должно быть вообще без разницы что там внутри и как реализовано, он работает, как локально.
Ты же в курсе как это сложно сделать?

Пиит

Цитата: АЛьФ от 02 апреля 2024, 10:18Конкурировать с 1С нет смысла...

Подпишусь под каждым пунктом, даже если некоторые недоступны для моего понимания.
Как чисто 1С-ник, далекий от win-api и прочего, даже я уверен, что отделение метаданных от данных - это ошибка, или лень разработчиков раскладывать по таблицам формы и картинки из конфигуратора.
Что касается слоя прикладного решения, базовых объектов, есть ряд целый ошибок в идеологии 77, перешедших затем в восьмерку, и уж точно не следует их повторять.

Пиит

Цитата: trdm от 02 апреля 2024, 10:26
Цитата: АЛьФ от 02 апреля 2024, 10:184. Система должна в базе содержать задел на клиент-серверную архитектуру, но не заставлять прикладного программиста морочиться всеми этими клиент-серверными заморочками, по максимум скрывая это. На предпоследнем уровне программисту должно быть вообще без разницы что там внутри и как реализовано, он работает, как локально.
Ты же в курсе как это сложно сделать?

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

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

АЛьФ

Цитата: trdm от 02 апреля 2024, 10:26
Цитата: АЛьФ от 02 апреля 2024, 10:184. Система должна в базе содержать задел на клиент-серверную архитектуру, но не заставлять прикладного программиста морочиться всеми этими клиент-серверными заморочками, по максимум скрывая это. На предпоследнем уровне программисту должно быть вообще без разницы что там внутри и как реализовано, он работает, как локально.
Ты же в курсе как это сложно сделать?

Конечно. Все остальное из перечисленного не проще.

AlexGM

   Клиент-сервер не так сложно, как кажется. Служба на сервере принимает запрос клиента, запускает экземпляр приложения на сервере (при необходимости), передает в приложение команду, после обработки отправляет клиенту ответ.
   Это работает даже с обычной 1С 7.7, обмен между сервером и 1С через внешнюю компоненту, выполнение команд через ExecBatch и EvalExpr. Приходится, правда, дописывать в конфигурацию запуск обработки для подключения ВК.
   Сейчас ВК написана на Delphi 7, сервер на Go. Если интересно, поделюсь и расскажу подробнее.

Злоп

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

AlexGM

   Есть два варианта работы с экземплярами приложений: индивидуальный на каждого клиента и общие сессии. Первоначально создавалось именно под индивидуальный режим. Но в ходе эксплуатации были проблемы с требованием переиндексации от 1С - если нет запущенного экземпляра и имел место хоть один аварийный выход - будет спрашивать монопольную переиндексацию базы для файлового варианта. Поэтому решено было запускать один экземпляр на старте всегда. Даже когда-то была логика проверки и переиндексации на старте. Все это было для работы клиентов информационных киосков. Потом возникли задачи по перетаскиванию документов между базами, и естественно, пауза на запуск приложения там была лишняя, да и дороговато дергать на каждый перенос запуск/остановку. Взор упал на тот экземпляр, защищавший от переиндексации, он был торжественно назван общей сессией, в файл конфигурации введены параметры управления пулом общих сессий, добавлены команды блокировки экземпляра общей сессии.
  К сожалению, при первом переходе с D7 на D10 и обратно часть функционала была утеряна. Далее были еще потери при переходе на Go. Но чего пощупать осталось: и киоски и переносы документов работают, на общей сессии реализованы регламентные задания. Сервер работает по телнету и через HTTP запросы, можно быстро допилить websocket-ы. 

Djelf

Адская штука, этот костыль, это всем костылей КОСТЫЛЬ!

УРБД не? Вы же телепортацию сделали...
А перетаскивание из одной базы в другую документа мышкой уже сделали?
ИМХО, Готовтесь...

Советую 1Cdllrun https://infostart.ru/1c/tools/14356/

AlexGM

Цитата: Djelf от 17 мая 2024, 14:48Адская штука, этот костыль, это всем костылей КОСТЫЛЬ!

УРБД не? Вы же телепортацию сделали...
А перетаскивание из одной базы в другую документа мышкой уже сделали?
ИМХО, Готовтесь...

Советую 1Cdllrun https://infostart.ru/1c/tools/14356/

   УРБД не то, на киоске клиент вообще не имеет отношения к 1С, сейчас он писан на D7 работает по TCP, главный на весь экран и за него не пробиться. Сервер 1С предприятия тоже обращается к серверу приложений - через HTTP запросы.

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

   Все это начало разрабатываться и обкатываться в 2010 году, сейчас работает 24/7. Вполне успешно управляет как 1С 7.7, так и 8.3. Собственно, нет особенных ограничений по приложениям - можно запускать и Excel. Обмен с приложением сделан на отображаемых файлах - реализовать его на VBA и можно делать тонкий клиент экселя.

   Один сервер приложений запущен на сервере с базой бухучета на 7.7. Пользователь системы производственного учета (другой сервер) в документе нажимает кнопку "Перенос". Видит сообщение, что создан документ в бухгалтерии с номером таким то. Телепортация ?

Djelf

Цитата: AlexGM от 17 мая 2024, 15:251Cdllrun, там же просто про доступ к базе ? А здесь выполнение кода 1С средствами самой 1С.
Там прямой доступ к базе. Этим оно и круче и быстрее.

Лет 10 назад делал такое, промежуточная транзитная база с подключением по OLE к источнику и приемнику. В код лезть обоих баз не дали, ну и чё? 
Отсюда, туда, оттуда сюда, причем мгновенно, чем не телепортация? 
Это было не сильно сложно...

AlexGM

Цитата: Djelf от 17 мая 2024, 15:37
Цитата: AlexGM от 17 мая 2024, 15:251Cdllrun, там же просто про доступ к базе ? А здесь выполнение кода 1С средствами самой 1С.
Там прямой доступ к базе. Этим оно и круче и быстрее.

Лет 10 назад делал такое, промежуточная транзитная база с подключением по OLE к источнику и приемнику. В код лезть обоих баз не дали, ну и чё?
Отсюда, туда, оттуда сюда, причем мгновенно, чем не телепортация?
Это было не сильно сложно...

   Это если базы на одном сервере. А если на разных ? А киоски в цехе на DSL канале. Цель была минимизировать трафик, отрабатывать отключения/переподключения киосков. Первый вариант был на OLE, не удавалось завершать нормально сеанс при отключении, сейчас используется запуск приложения, при нештатной ситуации убийство процесса.
   Используются запросы, проведение документов, как их отработает 1Cdllrun ? Сервер приложений отрабатывает, как заложено штатно. Для меня это важнее, чем скорость. Хотя, если 1Cdllrun использует штатные вызовы, принципиального выигрыша не будет, только риск использования прокладки.

Djelf

Тогда это совсем другое решение, оно немного похожее на решение от Wirth, у него тоже на DSL работало как на LAN.
Но архитектура решения у него была видимо покруче.
Не буду больше спорить - не щупал.

AlexGM


Злоп

Цитата: AlexGM от 17 мая 2024, 19:51Выложил проект на гитхаб, вдруг кому поможет.
https://github.com/999Alex/SrvApp2
Мутно мне как-то.
Для чего это? Как жто?
Можно постучаться на сервер, этот "сервер приложений" запустит на сервере сеанс 1с, и можно через сервер приложений "посылать" Команды для сеанса 1с и сервер приложений вернёт результат выполнения команды 1с-кой?

AlexGM

Цитата: Злоп от 17 мая 2024, 21:21
Цитата: AlexGM от 17 мая 2024, 19:51Выложил проект на гитхаб, вдруг кому поможет.
https://github.com/999Alex/SrvApp2
Мутно мне как-то.
Для чего это? Как жто?
Можно постучаться на сервер, этот "сервер приложений" запустит на сервере сеанс 1с, и можно через сервер приложений "посылать" Команды для сеанса 1с и сервер приложений вернёт результат выполнения команды 1с-кой?

   Это аналог rpchost в 8-ке. По сути делает из 7.7 трехзвенное приложение. Код, выполняемый 1С может идти напрямую с клиента или находится в конфигурации/внешней обработке. У киосков ограниченный набор функций, их удобнее прописать во внешней обработке, обслуживающей взаимодействие сервера приложений и 1С.
   На киоске считали штрихкод - идет вызов функции "ОбработатьШК("20000001")" - на сервере 1С все отрабатывает и отправляет клиенту ответ с измененными полями - клиент обновляет интерфейс. Вся тяжелая работа с БД и вычисления - на сервере, клиент работает в основном с отображением информации.