powered by simpleCommunicator - 2.0.52     © 2025 Programmizd 02
Форумы / Разработка информационных систем [игнор отключен] [закрыт для гостей] / Клиент-серверная технология и 1С
66 сообщений из 66, показаны все 3 страниц
Клиент-серверная технология и 1С
    #38702709
Йося
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Одним из главных новшеств от 1С последних лет стало разделение процедур которые создает программист на процедуры, выполняющиеся на сервере и процедуры, выполняющиеся на клиенте. Принципиальное различие между ними в том, что клиентские процедуры не могут изменять и читать данные в базе данных. Представим, что у вас на форме есть кнопка «Заполнить», которая меняет данные в базе. Тогда в клиент-серверной технологии 1С, нужно в модуле формы создать процедуру с директивой &НаКлиенте, которая вызывается при нажатии кнопки, а внутри этой процедуры нужно вызывать процедуру с директивой &НаСервере. Уже непосредственно в ней можно выполнять запросы на чтение и изменение данных.

&НаКлиенте
Процедура КнопкаЗаполнить()
ПоменятьДанные();
КонецПроцедуры

&НаСервере
Процедура ПоменятьДанные()
//здесь меняем данные
КонецПроцедуры

Данное новшество повлекло глобальное переписывание типовых конфигураций, старые конфигурации выброшены в очередной раз на свалку (это когда-нибудь закончится?). (Что за ноу-хау от 1С) Зачем – делить процедуры на серверные и на клиентские? Такое разделение должно быть (и есть по факту) не на уровне процедур, которые написал программист, а на уровне методов объектов самой платформы 1С. Т.е. и так понятно, что на сервере должны выполняться методы выполняющие запросы на выборку и изменение данных, зачем их выводить в отдельные процедуры? Тем более что программа сама определяет методы, выполняющиеся на сервере, программист не может этим управлять.
То что раньше было в одной процедуре, сейчас будет минимум в двух. Чтение и восприятие модулей превратилось в ад. Нужно скакать с одной процедуры в другую, третью. Читать такой код очень сложно. Сегодня модули в 1С это нагромождение процедур с не поддающимся обоснованию уровнем вложенности.

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

&НаКлиенте
Процедура КомандаЧО01Меню(Команда)
ОткрытьЗакрытьМенюПрочихОпераций();
КонецПроцедуры

&НаСервере
Процедура ОткрытьЗакрытьМенюПрочихОпераций()
Элементы.ГруппаПрочихОпераций.Видимость = НЕ Элементы.ГруппаПрочихОпераций.Видимость;
КонецПроцедуры

Теоретическую базу подогнать под такую «технологию» у меня никак не получается.
Насколько я понимаю в .Net такого нет.

Интересно в первую очередь мнение программистов среды .Net и др. подобных систем.

Далее. Пишут в 1С книгах, что любое изменение интерфейса вызывает обращение к серверу 1С. Например скрыл/показал кнопку – обращение к серверу. Почему? Зачем?

Вот что пишут на мисте:

Azverin

5 - 22.07.14 - 09:07

(0) вчера в БП 3.0 бух словила глюк в документе Поступление на расчётный счёт, и мне пришлось попрыгать по отладчику в обработке проведения... скажу честно: желание изучать УФ нет! я прошёл более 50 модулей и больше половины с одной строчкой. такое удручает

http://www.forum.mista.ru/topic.php?id=714947
...
Рейтинг: 0 / 0
Клиент-серверная технология и 1С
    #38702769
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ЙосяТем более что программа сама определяет методы, выполняющиеся на сервере, программист не может этим управлять.
этот посыл неверный.
Отсюда и весь пост.
...
Рейтинг: 0 / 0
Клиент-серверная технология и 1С
    #38702803
Йося
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Petro123ЙосяТем более что программа сама определяет методы, выполняющиеся на сервере, программист не может этим управлять.
этот посыл неверный.
Отсюда и весь пост.

Голословные утверждения не принимаются. Нужны примеры, из 1С и других систем где программист управляет вызовом методов НаСервере/НаКлиенте
...
Рейтинг: 0 / 0
Клиент-серверная технология и 1С
    #38702808
Йося
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Petro123ЙосяТем более что программа сама определяет методы, выполняющиеся на сервере, программист не может этим управлять.
этот посыл неверный.
Отсюда и весь пост.

Т.е. метод .ВыполнитьЗапрос() можно вызвать на клиенте?
...
Рейтинг: 0 / 0
Клиент-серверная технология и 1С
    #38702809
mad_nazgul
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ЙосяТеоретическую базу подогнать под такую «технологию» у меня никак не получается.
Насколько я понимаю в .Net такого нет.


Это все наследие DOS-вского прошлого.
Когда вся БД была в монопольном доступе у клиента.
Потом просто добавлялись костыли, для совместного доступа.
Т.е. на уровне "архитектуры" не предполагалась совместная работа.
Поэтому все проблемы реализации "клиент-сервера" отдали на откуп разработчикам.
Т.к. на уровне клиента можно делать все что угодно с БД.
Для этого похоже и придумали костыль "сервеных" и "клиентских" процедур.

P.S. В ADempiere, например, реализовано так.
На клиенте делаются какие-то действия, но полностью транзакция делается только на сервере.
Проводки, сохранение документа и т.д.
Причем для программиста вся это кухня не плохо скрыта.
Ему только нужно в клиенте вызвать соответствующий метод (типа commit)
И все изменения сохраняются на сервере.
...
Рейтинг: 0 / 0
Клиент-серверная технология и 1С
    #38702828
Йося
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
mad_nazgulЙосяТеоретическую базу подогнать под такую «технологию» у меня никак не получается.
Насколько я понимаю в .Net такого нет.


Это все наследие DOS-вского прошлого.
Когда вся БД была в монопольном доступе у клиента.
Потом просто добавлялись костыли, для совместного доступа.
Т.е. на уровне "архитектуры" не предполагалась совместная работа.
Поэтому все проблемы реализации "клиент-сервера" отдали на откуп разработчикам.
Т.к. на уровне клиента можно делать все что угодно с БД.
Для этого похоже и придумали костыль "сервеных" и "клиентских" процедур.

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

Так и не понял при чем здесь DOS и клиент-сервер от 1С. Но версия интересная, какие будут еще предположения?

Вот че-то в ASP вроде нет деления процедур на клиентские и серверные. И как-то живут.
...
Рейтинг: 0 / 0
Клиент-серверная технология и 1С
    #38702831
Йося
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
че-то мне кажется маловероятным что 1С пишет свою прогу с оглядкой на DOS. Тем более что они ее переписали уже сотни раз.
...
Рейтинг: 0 / 0
Клиент-серверная технология и 1С
    #38702846
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ЙосяВот че-то в ASP вроде нет деления процедур на клиентские и серверные. И как-то живут.
в каком смысле?
Нет хранимых процедур на сиквеле? Или JS на клиенте?
...
Рейтинг: 0 / 0
Клиент-серверная технология и 1С
    #38702850
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ЙосяPetro123пропущено...

этот посыл неверный.
Отсюда и весь пост.

Т.е. метод .ВыполнитьЗапрос() можно вызвать на клиенте?
расскажи толком:
- 3-х звенка или 2-х
- веб клиент или толстый клиент
т.к. программисту лучше ))) решать где вызвать на всех 3-х уровнях )))
...
Рейтинг: 0 / 0
Клиент-серверная технология и 1С
    #38702852
Arm79
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ЙосяНасколько я понимаю в .Net такого нет
ЙосяИнтересно в первую очередь мнение программистов среды .Net и др. подобных систем.

Вранье, все, как в .Net и др. подобных системах.

button_click - процедура на клиенте
внутри SqlCommand.ExecuteReader или что-нить похожее...
...
Рейтинг: 0 / 0
Клиент-серверная технология и 1С
    #38702855
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Arm79внутри SqlCommand.ExecuteReader или что-нить похожее...
+1
...
Рейтинг: 0 / 0
Клиент-серверная технология и 1С
    #38702873
Йося
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Придется просвятить ребят: хранимые процедуры есть и в 1С. Это для вас открытие?

Речь о том, почему для вызова метода .ВыполнитьЗапрос() нужно создать две процедуры? Т.е. в 1С две процедуры вызывается по button_click, а в .Net одна.
...
Рейтинг: 0 / 0
Клиент-серверная технология и 1С
    #38702878
Йося
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Т.е., чтобы сделать примитивный селект из базы, нужно делать две процедуры, а не одну.
...
Рейтинг: 0 / 0
Клиент-серверная технология и 1С
    #38702893
Arm79
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вообще в .Net какбэ стек вызова процедур. Так, о птичках.

Кстати, если клиентские 1с процедуры не меняют данные и т.п., то какой смысл в них вложила 1С?
...
Рейтинг: 0 / 0
Клиент-серверная технология и 1С
    #38702917
Йося
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Arm79Вообще в .Net какбэ стек вызова процедур. Так, о птичках.

Кстати, если клиентские 1с процедуры не меняют данные и т.п., то какой смысл в них вложила 1С?

Стек, не стек. 1С тоже вроде как стек. Так, о птичках.

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

Какой смысл вложила 1С в клиентские процедуры лучше спросить у нее.
...
Рейтинг: 0 / 0
Клиент-серверная технология и 1С
    #38702941
Arm79
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Йосякак в .Net можно обойтись одной процедурой, и прекрасно поменять данные в базе.
Можно, но не нужно. Такие программисты у меня по рукам получают. Вы слышали про DAL?

Я не защищаю 1С, мне фиолетово, что они придумали. Просто в ответ на ваш вопрос я и ответил: ситуация вложенных друг в друга процедур отнюдь не какое-то извращение.
...
Рейтинг: 0 / 0
Клиент-серверная технология и 1С
    #38702962
Йося
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Arm79Йосякак в .Net можно обойтись одной процедурой, и прекрасно поменять данные в базе.
Можно, но не нужно. Такие программисты у меня по рукам получают. Вы слышали про DAL?

Я не защищаю 1С, мне фиолетово, что они придумали. Просто в ответ на ваш вопрос я и ответил: ситуация вложенных друг в друга процедур отнюдь не какое-то извращение.

Если по существу нечего писать - лучше не пишите.

Я не говорил что вложенные процедуры это извращение. Извращение, когда по событию на кнопке последовательно вызывается две процедуры состоящие из одной строки кода. Извращение когда нужно минимум две процедуры создвать, хотя можно было бы и одну.
...
Рейтинг: 0 / 0
Клиент-серверная технология и 1С
    #38702963
Arm79
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ЙосяЕсли по существу нечего писать - лучше не пишите.
а для вас есть только два мнения: свое и неправильное?
...
Рейтинг: 0 / 0
Клиент-серверная технология и 1С
    #38702998
mad_nazgul
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ЙосяТак и не понял при чем здесь DOS и клиент-сервер от 1С. Но версия интересная, какие будут еще предположения?

Вот че-то в ASP вроде нет деления процедур на клиентские и серверные. И как-то живут.

При том, что 1С разрабатывалась как однопользовательская система.
Клиент-серверная была прикручена в виде костылей.
А в однопользовательской системе идет монопольный захват как минимум таблицы, как максимум БД.
Это приводит к тормозам при работе с БД.
До 8 версии 1С это никак не решалось.
С 8 версии стало получше.
Явные "клиентские" и "серверные" процедуры это просто очередной костыль, который вытекает из не правильной/устаревшей архитектуры приложения.
В других системах так же есть такое деление, но оно "скрыто" для программиста.
Т.е. когда программист манипулирует с данными, он просто дает соответствующие команды серверу.
Причем даже открытие и закрытие транзакции делается в не явном виде (хотя можно и в явном).
...
Рейтинг: 0 / 0
Клиент-серверная технология и 1С
    #38703103
Йося
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
mad_nazgulЙосяТак и не понял при чем здесь DOS и клиент-сервер от 1С. Но версия интересная, какие будут еще предположения?

Вот че-то в ASP вроде нет деления процедур на клиентские и серверные. И как-то живут.

При том, что 1С разрабатывалась как однопользовательская система.
Клиент-серверная была прикручена в виде костылей.
А в однопользовательской системе идет монопольный захват как минимум таблицы, как максимум БД.
Это приводит к тормозам при работе с БД.
До 8 версии 1С это никак не решалось.
С 8 версии стало получше.
Явные "клиентские" и "серверные" процедуры это просто очередной костыль, который вытекает из не правильной/устаревшей архитектуры приложения.
В других системах так же есть такое деление, но оно "скрыто" для программиста.
Т.е. когда программист манипулирует с данными, он просто дает соответствующие команды серверу.
Причем даже открытие и закрытие транзакции делается в не явном виде (хотя можно и в явном).

Дык о чем я и толкую, деление на клиентские и серверные методы должна делать сама платформа, программист не должен делить процедуры, именно так и есть в других системах.

Тут пытались убедить что в ASP две процедуры нужно создать по событию по кнопке, но это не так, это ложь. Обработать событие и сделать запрос можно в одной процедуре.
...
Рейтинг: 0 / 0
Клиент-серверная технология и 1С
    #38703107
HoBTID
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Йося, в 1С несколько лет назад пришли Java разработчики,
чтобы хоть как-то дотянуть эту систему до мирового уровня.

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

Есть фреймворки, которые скрывают это разделение, в частности GWT.
Он позволяет писать весь код на Java, но клиентские и серверные классы все равно четко разделены.
И клиентские классы потом компилируются в JavaScript.

Т.е. для веб-приложения Java явное разделение нужно всегда.

Это помогает программисту правильнее думать и группировать операции,
выполняющиеся на сервере и выполняющиеся на клиенте.

Что касается вашего примера, действительно непонятно, зачем здесь разделение.

Попробуйте так:

&НаКлиенте
Процедура КомандаЧО01Меню(Команда)
Элементы.ГруппаПрочихОпераций.Видимость = НЕ Элементы.ГруппаПрочихОпераций.Видимость;
КонецПроцедуры
...
Рейтинг: 0 / 0
Клиент-серверная технология и 1С
    #38703127
Фотография Диез
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Йосяпропущено...

Дык о чем я и толкую, деление на клиентские и серверные методы должна делать сама платформа, программист не должен делить процедуры, именно так и есть в других системах.

Тут пытались убедить что в ASP две процедуры нужно создать по событию по кнопке, но это не так, это ложь. Обработать событие и сделать запрос можно в одной процедуре.

Не знаю, как это сделано в 1С (да и не хочу знать), но разделение на клиентские и серверные процедуры - это вполне логичный подход.

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

Нагружать сервер при каждом нажатии кнопки на клиенте - верный способ получить немасштабируемую систему. Выносить всю валидацию на клиента - дыра в безопасности и простор для злоумышленников.
...
Рейтинг: 0 / 0
Клиент-серверная технология и 1С
    #38703131
Leonid Kudryavtsev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ДиезНагружать сервер при каждом нажатии кнопки на клиенте - верный способ получить немасштабируемую систему
в последнее время это общее направление движения
...
Рейтинг: 0 / 0
Клиент-серверная технология и 1С
    #38703134
HoBTID
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Leonid Kudryavtsevв последнее время это общее направление движения
В каких технологиях, например?
...
Рейтинг: 0 / 0
Клиент-серверная технология и 1С
    #38703169
prog123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Я недавно познакомился с конфигурацией 1С УПП 2.0. Это что то, доложу я вам!
Не вдаваясь в функционал, я сразу же оторопел от получившейся производительности по-сравнению с УПП 1.3. Она стала медленней во много раз! Каждое нажатие любой кнопки вызывает тоскливое ожидание.
...
Рейтинг: 0 / 0
Клиент-серверная технология и 1С
    #38703173
Leonid Kudryavtsev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
оффтоп
HoBTIDВ каких технологиях, например?

www.google.com
нажимаешь кнопочки, а там выпадающий список обновляется. Устроит?
...
Рейтинг: 0 / 0
Клиент-серверная технология и 1С
    #38703204
HoBTID
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Leonid Kudryavtsev,
Не устроит, уж очень специфическая предметная область.
...
Рейтинг: 0 / 0
Клиент-серверная технология и 1С
    #38703210
Фотография Диез
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Leonid Kudryavtsevоффтоп
HoBTIDВ каких технологиях, например?

www.google.com
нажимаешь кнопочки, а там выпадающий список обновляется. Устроит?


Вы, видимо, про AJAX говорили? Ну, так и в этом случае нажатие кнопок обрабатывает JavaScript на клиенте , который принимает решение: когда и как реагировать, что отсылать на сервер, как отрисовывать.

Вот если бы у вас при каждом нажатии клавиши на сервер отсылался http-запрос с полной перерисовкой страницы...
...
Рейтинг: 0 / 0
Клиент-серверная технология и 1С
    #38703259
Фотография ЕвгенийВ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вот же русским по белому.
Код может быть выполнен как сервере, так и на клиенте. Так, как данные на сервере, то манипулировать ими мы можем только там, а на клиенте можем манипулировать только тем, что есть на клиенте.
Там есть еще и другие директивы, позволяющие снизить снизить нагрузку например на сеть.

P. S. В websharper например, тоже есть такое разделение, функции в зависимости от того, где будут исполняться помечаются атрибутами [<JavaScript>] или [<Rpc>]. В последнем случае код(например доступ к БД) будет выполнен на сервере, но этот вызов скрыт и программисту не придется возиться со всякими там AJAX, JOSN и прочими WebApi.
...
Рейтинг: 0 / 0
Клиент-серверная технология и 1С
    #38703362
Йося
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
ЕвгенийВ Вот же русским по белому.
Код может быть выполнен как сервере, так и на клиенте. Так, как данные на сервере, то манипулировать ими мы можем только там, а на клиенте можем манипулировать только тем, что есть на клиенте.
Там есть еще и другие директивы, позволяющие снизить снизить нагрузку например на сеть.

P. S. В websharper например, тоже есть такое разделение, функции в зависимости от того, где будут исполняться помечаются атрибутами [<JavaScript>] или [<Rpc>]. В последнем случае код(например доступ к БД) будет выполнен на сервере, но этот вызов скрыт и программисту не придется возиться со всякими там AJAX, JOSN и прочими WebApi.

Еще раз для тех кто в танке. Речь не о том что не нужно разделение методов по месту выполнения, речь о том что непонятно зачем делить процедуры на клиентские и серверные. Делиться должны МЕТОДЫ - например ВыполнитьЗапрос() должен вызываться на сервере, но это еще не значит что его нужно вызов данного метода выносить в отдельную процедуру, система и так знает и понимает, что он должен выполняться на сервере.

Ну если такая великая и всем известная система как вебшарпер делит процедуры (спасибо что дали ссылку на что это такое), то тогда и все остальные системы должны делиться.
...
Рейтинг: 0 / 0
Клиент-серверная технология и 1С
    #38703373
Фотография ЕвгенийВ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ЙосяЕще раз для тех кто в танке. Речь не о том что не нужно разделение методов по месту выполнения, речь о том что непонятно зачем делить процедуры на клиентские и серверные. Делиться должны МЕТОДЫ - например ВыполнитьЗапрос() должен вызываться на сервере, но это еще не значит что его нужно вызов данного метода выносить в отдельную процедуру, система и так знает и понимает, что он должен выполняться на сервере.

Еще раз для тех, кто в бронепоезде.
Видимо 1С имеет одинаковые движки для клиента и сервера. Некоторые вычисления целесообразно/возможно выполнять в одном месте, другие в другом, как например и в ASP.NET. Но в последнем серверная часть на c#/vb.net, клиентская на JS. Из JS напрямую серверную часть не дернешь, приходится использовать различные дополнительные средства. Вам же одинэсникам дали механизм позволяющий делать это напрямую. Возрадуйтесь же!
ЙосяНу если такая великая и всем известная система как вебшарпер делит процедуры (спасибо что дали ссылку на что это такое), то тогда и все остальные системы должны делиться.
Вебшарпер - крутейшая система, но там F#, если на c# или 1с можно научить писать обезьяну, то в F# порог вхождения много выше.
...
Рейтинг: 0 / 0
Клиент-серверная технология и 1С
    #38703375
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Йося,
для тех кто на паровозе:
http://ru.wikipedia.org/wiki/Метод_(программирование)
авторМетод в объектно-ориентированном программировании — это функция или процедура, принадлежащая какому-то классу или объекту.

найдите отличия:
Код: sql
1.
2.
3.
4.
&НаКлиенте
Процедура ПолеРезультат()
ПолеРезультат = ПолеA + ПолеB
КонецПроцедуры


и
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
&НаКлиенте
Процедура ПолеРезультат()
Процедура СервернаяПолеРезультат{}
КонецПроцедуры

&НаСервере
Процедура ПолеРезультат()
ПолеC = ПолеA + ПолеB
КонецПроцедуры


т.е. как бы написали вы? (Программист?)
...
Рейтинг: 0 / 0
Клиент-серверная технология и 1С
    #38703380
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ЕвгенийВВебшарпер - крутейшая система, но там F#, если на c# или 1с можно научить писать обезьяну, то в F# порог вхождения много выше.
))
действительно, 1С и ЯП высокого уровня - разные по задачам. Там уже архитектура впрягается.
Простейший пример для программиста 1С - дать ему 2 ведра краски. Зелёная - аннотация процуры клиента.
Красная - серверной ( и не факт что СУБД).
...
Рейтинг: 0 / 0
Клиент-серверная технология и 1С
    #38703422
Ra72
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Petro123ЙосяТем более что программа сама определяет методы, выполняющиеся на сервере, программист не может этим управлять.
этот посыл неверный.
Отсюда и весь пост. Абсолютно правильный посыл! Почему, например в Delphi, по технологии DataSnap я имею компонент с запросом на клиенте, но исполняется он в серверной части. И мне абсолютно прозрачно, каким образом он на сервер попадает. Это делает технология DataSnap. В нормальных системах, JavaBeans насколько я слышал, тоже такая же.
...
Рейтинг: 0 / 0
Клиент-серверная технология и 1С
    #38703433
nscl
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
1С до нормальной системы ещё пилить и пилить.

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

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

Ну а кто вмазался в самописные или сильно подпиленные конфигурации - страдать, терпеть, кушать кактусы.
...
Рейтинг: 0 / 0
Клиент-серверная технология и 1С
    #38703486
AHDP
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
IMHO,

Разделение на клиентскую и серверную часть надо было делать на уровне модулей, вызовом серверных процедур через "сервер.".

ЗЫ А вот как реализована передача данных между клиентом и сервером при вызовах функций - просто пипец. Сколько конф переписывалась повторно под управляемые формы из-за тормозов на этих вызовах...
...
Рейтинг: 0 / 0
Клиент-серверная технология и 1С
    #38703620
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ra72,
"Delphi, по технологии DataSnap" нигде не применяется. Это не веб проект.
Найди другой пример.
...
Рейтинг: 0 / 0
Клиент-серверная технология и 1С
    #38703629
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ra72
мы же говорим шире, чем Command.RunSQL('запрос').
Мы говорим о БЛ, который пишет программист. Т.е. как пометить кусок кода с исполнением на сервере и с исполнением на клиенте.
- либо пометить краской, либо писать в разных окнах\файлах
...
Рейтинг: 0 / 0
Клиент-серверная технология и 1С
    #38703696
HoBTID
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ra72... В нормальных системах, JavaBeans насколько я слышал, тоже такая же.
Вы слышали неправильно. JavaBeans работают только на сервере, найдите другой пример.
...
Рейтинг: 0 / 0
Клиент-серверная технология и 1С
    #38703715
mad_nazgul
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Petro123Ra72
мы же говорим шире, чем Command.RunSQL('запрос').
Мы говорим о БЛ, который пишет программист. Т.е. как пометить кусок кода с исполнением на сервере и с исполнением на клиенте.
- либо пометить краской, либо писать в разных окнах\файлах

Либо система знает, что персистентные сущности должны обрабатываться на сервере, все остальное можно на клиенте. ;-)
...
Рейтинг: 0 / 0
Клиент-серверная технология и 1С
    #38703761
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mad_nazgul,
банальные сущности - Пол, Имя, Рождение = CRUD - неинтересно.
Мы о БЛ говорим.
Ведь, ни один бухгалтер, не выдержит мата из слов "персистентные сущности" ))
...
Рейтинг: 0 / 0
Клиент-серверная технология и 1С
    #38703772
Хитроглазый
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Йося...
реальный пример кода из конфигурации 1С, для одного действия создано две процедуры по одной строке кода каждая:

&НаКлиенте
Процедура КомандаЧО01Меню(Команда)
ОткрытьЗакрытьМенюПрочихОпераций();
КонецПроцедуры

&НаСервере
Процедура ОткрытьЗакрытьМенюПрочихОпераций()
Элементы.ГруппаПрочихОпераций.Видимость = НЕ Элементы.ГруппаПрочихОпераций.Видимость;
КонецПроцедуры

...

(0) вчера в БП 3.0 бух словила глюк в документе Поступление на расчётный счёт, и мне пришлось попрыгать по отладчику в обработке проведения... скажу честно: желание изучать УФ нет! я прошёл более 50 модулей и больше половины с одной строчкой. такое удручает


Давайте не будем смешивать УФ в целом и их использование в конкертных конфигурациях?
Проблема качества кода в типовых - отделаная тема.

ЙосяНасколько я понимаю в .Net такого нет.

.Net здесь каким боком? Где здесь 3-х звенка?
Сравните уже лучше с вебом: html+js на клиенте, php/perl/что угодно на сервере (приложений).

ЙосяЕще раз для тех кто в танке. Речь не о том что не нужно разделение методов по месту выполнения, речь о том что непонятно зачем делить процедуры на клиентские и серверные. Делиться должны МЕТОДЫ - например ВыполнитьЗапрос() должен вызываться на сервере, но это еще не значит что его нужно вызов данного метода выносить в отдельную процедуру, система и так знает и понимает, что он должен выполняться на сервере.

То есть, если у вас в одной процедуре 100500 вызовов серверных методов, то и сервер приложений должен дергаться 100500 раз?
И вы серьезно недовольны тем, что нельзя в обработчиках событий написать запрос к БД? Вы так пишете код в свох проектах?

И вот на закуску:
Код: vbnet
1.
2.
3.
4.
ADOConnection = Новый COMОбъект("ADODB.Connection");
ConnectionString = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" + ИмяФайла;
ConnectionString = ConnectionString + "; Extended Properties = "+"""Excel 12.0 Xml"+";HDR=NO;IMEX=1"";";
ADOConnection.Open(ConnectionString);



Скажите, на клиенте или на сервере выполняться этот код?
...
Рейтинг: 0 / 0
Клиент-серверная технология и 1С
    #38703781
prog123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Если речь идет о программах типа "Управление предприятием", то "технология" нужна только одна, - терминальный доступ.
В режиме терминального доступа та же 1С хорошо работает и с планшета и с телефона.
...
Рейтинг: 0 / 0
Клиент-серверная технология и 1С
    #38703801
mad_nazgul
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Petro123mad_nazgul,
банальные сущности - Пол, Имя, Рождение = CRUD - неинтересно.
Мы о БЛ говорим.
Ведь, ни один бухгалтер, не выдержит мата из слов "персистентные сущности" ))

Мы же не про бухгалтеров говорим, а про программистов.
Вот есть у нас БЛ.
БЛ - это набор действий.
Так вот БЛ прописана тем или иным образом в программе.
Если это толстый клиент, то в основном на стороне клиента, если тонкий клиент, то в основном на стороне сервера.
Так вот по большому счету прикладному программисту должно быть все равно где будет исполняться его код.
На сервере или на толстом клиенте.
Он должен, например.
1) Создать документ
2) Дать пользователю ввести данные
3) Сохранить документ
4) На основании документа сделать проводки

Например в том же ADempiere есть толстый и тонкий клиент.
Пункты 1) 2) 3) - могут выполняться как на стороне клиента (если он толстый), так и на стороне сервера (если он тонкий)
А вот пункт 4) только на стороне сервера.
Кстати пункт 3) для толстого клиента может выполняться и на сервере, зависит от типа документа.

Так вот в ADempiere большую часть того, где и как будет выполняться берет на себя платформа.
Программист только пишет БЛ, причем в понятных для бухгалтера терминах - документ, проводка, справочник и т.д.

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

Но таких случаев не много.
На нашем проекте было 1 раз.
...
Рейтинг: 0 / 0
Клиент-серверная технология и 1С
    #38703836
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mad_nazgulЕсли это толстый клиент, то в основном на стороне клиента, если тонкий клиент, то в основном на стороне сервера.
Так вот по большому счету прикладному программисту должно быть все равно где будет исполняться его код.
для этого условия (программисту пофигу) должно быть условие - программа умнее своего программиста.
Может ADempiere и такая, я в это не верю imho
2. Программист часто пишет ещё сожнее. У него КУСКИ кода в процедуре должны исполняться в разных местах.
(это не ASM вставки в код паскаля)
...
Рейтинг: 0 / 0
Клиент-серверная технология и 1С
    #38704072
mad_nazgul
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Petro123mad_nazgulЕсли это толстый клиент, то в основном на стороне клиента, если тонкий клиент, то в основном на стороне сервера.
Так вот по большому счету прикладному программисту должно быть все равно где будет исполняться его код.
для этого условия (программисту пофигу) должно быть условие - программа умнее своего программиста.
Может ADempiere и такая, я в это не верю imho
2. Программист часто пишет ещё сожнее. У него КУСКИ кода в процедуре должны исполняться в разных местах.
(это не ASM вставки в код паскаля)

Еще раз.
Это платформа, у которой есть API.
Например, есть команда "сделай_проводку (дебет, кредит, сумма)"
Так вот программисту не дают лезть напрямую БД, он работает с "прослойкой" API, которая знает, что данная команда выполняется только на сервере.
Где программист вставил эту команду (сервер или клиент) для него должно быть все равно.
API понимая контекст либо выполнить напрямую, либо передаст команду на сервер.

Соответственно когда прикладной программист пишет обработчик для кнопки, он не думает, что вот здесь эта команда должны выполняться на сервере, поэтому мне нужно ЯВНО указать это. Он просто вставляет "сделай_проводку (дебет, кредит, сумма)".
Все остальное делает за него платформа.

Т.к. мы говорим об учетных системах, то команд, которые обязаны выполняться только на сервере не много.
Все остальное может выполняться на толстом клиенте.
...
Рейтинг: 0 / 0
Клиент-серверная технология и 1С
    #38704128
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mad_nazgulAPI понимая контекст либо выполнить напрямую на клиенте, либо передаст команду на сервер.
расшифруй эту главную фразу. Т.к. выше ты сказал, "что данная команда выполняется только на сервере".

Т.е. есть список процедур\объектов выполняемых только на сервере. Всё остальное идёт на клиенте.
Так?
Или можно проще - как мой код выше написать?
...
Рейтинг: 0 / 0
Клиент-серверная технология и 1С
    #38704138
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mad_nazgulНапример, есть команда "сделай_проводку (дебет, кредит, сумма)"
разбери второй случай.
Программист САМ пишет подобную "команду"
...
Рейтинг: 0 / 0
Клиент-серверная технология и 1С
    #38704235
HoBTID
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mad_nazgulЕще раз.
Это платформа, у которой есть API.
Например, есть команда "сделай_проводку (дебет, кредит, сумма)"
Так вот программисту не дают лезть напрямую БД, он работает с "прослойкой" API, которая знает, что данная команда выполняется только на сервере.
Где программист вставил эту команду (сервер или клиент) для него должно быть все равно.
API понимая контекст либо выполнить напрямую, либо передаст команду на сервер.
До чего тупые пошли программисты!

Если этот недоумок так напишет, то у него через строчку будут серверные вызовы.
А программист должен РАЗДЕЛИТЬ КОД на клиентский и серверный так,
чтобы было МИНИМАЛЬНОЕ КОЛИЧЕСТВО серверных вызовов.
...
Рейтинг: 0 / 0
Клиент-серверная технология и 1С
    #38704454
mad_nazgul
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Petro123mad_nazgulAPI понимая контекст либо выполнить напрямую на клиенте, либо передаст команду на сервер.
расшифруй эту главную фразу. Т.к. выше ты сказал, "что данная команда выполняется только на сервере".

Т.е. есть список процедур\объектов выполняемых только на сервере. Всё остальное идёт на клиенте.
Так?

Да.
Точнее сказать методов.
Например.
Создаете объект "документ_чего-то_там" наследник от "документа".

В нем переопределяете метод "создать_проводку"

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

Опять же это платформа для создания учетных систем, где многие вещи "жестко заданы".

Для общих случаев скорее всего не подойдет.
...
Рейтинг: 0 / 0
Клиент-серверная технология и 1С
    #38704455
mad_nazgul
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
HoBTIDДо чего тупые пошли программисты!

Если этот недоумок так напишет, то у него через строчку будут серверные вызовы.
А программист должен РАЗДЕЛИТЬ КОД на клиентский и серверный так,
чтобы было МИНИМАЛЬНОЕ КОЛИЧЕСТВО серверных вызовов.

Кто мешает в КЛИЕНТСКОМ коде делать кучу серверных вызовов?!
Где-то они должны делаться.
По моему мнение это делается на клиенте.
Или серверный код как-то догадывается, что на клиенте что-то изменилось и нужно что-то сделать?
...
Рейтинг: 0 / 0
Клиент-серверная технология и 1С
    #38704582
HoBTID
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mad_nazgulКто мешает в КЛИЕНТСКОМ коде делать кучу серверных вызовов?!
Где-то они должны делаться.
По моему мнение это делается на клиенте.
Или серверный код как-то догадывается, что на клиенте что-то изменилось и нужно что-то сделать?

Предлагаю включить мозг и подумать им.
Серверные вызовы безусловно должны быть на клиенте, только их должно быть мало .
А не столько, сколько думают говнокодеры.
...
Рейтинг: 0 / 0
Клиент-серверная технология и 1С
    #38704607
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
HoBTID,
+1 ))
mad_nazgul,
технологии двигаются по спирали. Когда-то было модно полностью нагружать сервер и тонки-тонки-глупый клиент.
Сейчас мейнстрим в умном клиенте потолще.
Вы пишите КЛИЕНТСТКИЙ код. Как машина определяет, что он клиентский? В этом вся и соль).
Удачи!
...
Рейтинг: 0 / 0
Клиент-серверная технология и 1С
    #38704672
mad_nazgul
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
HoBTIDПредлагаю включить мозг и подумать им.
Серверные вызовы безусловно должны быть на клиенте, только их должно быть мало .
А не столько, сколько думают говнокодеры.

В архитектуре платформы (ADempiere) уже определены места, где и когда нужно вызывать серверный код.
Причем это определяет не говнокодер, а платформа.
Этакая защита от дурака.
В 1С наоборот, предалагают гвонокодеру определять где и когда вызвать серверный код.

;-)
...
Рейтинг: 0 / 0
Клиент-серверная технология и 1С
    #38704674
mad_nazgul
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Petro123технологии двигаются по спирали. Когда-то было модно полностью нагружать сервер и тонки-тонки-глупый клиент.
Сейчас мейнстрим в умном клиенте потолще.
Вы пишите КЛИЕНТСТКИЙ код. Как машина определяет, что он клиентский? В этом вся и соль).
Удачи!

Очень просто.
Он выполняется на клиенте. ;-)

Соль в том, что система должны знать какой код должен выполняться на сервере.
Либо явно указывается, либо предопределяются команды/методы и т.д. которые обязаны выполняться на сервере.
...
Рейтинг: 0 / 0
Клиент-серверная технология и 1С
    #38704693
Ra72
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Petro123Ra72,
"Delphi, по технологии DataSnap" нигде не применяется. Это не веб проект.
Найди другой пример. Да какая разница веб или не веб? В дельфи есть и WebSnap. Главное - принцип прозрачности. Технология не должна загружать программиста выбором места выполнения.
Вот если бы 1С сделало так, что бы обычные формы запускались и в WEB, тогда это было бы мощно.
...
Рейтинг: 0 / 0
Клиент-серверная технология и 1С
    #38704788
Фотография Infernal V. Raven
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ra72Вот если бы 1С сделало так, что бы обычные формы запускались и в WEB, тогда это было бы мощно.А ты давно его видел? Умеет он.
...
Рейтинг: 0 / 0
Клиент-серверная технология и 1С
    #38704841
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mad_nazgulСоль в том, что система должны знать какой код должен выполняться на сервере.
Либо явно указывается
ну вот и консенсунс))
Система знает, когда её указывает программист)) LOL
...
Рейтинг: 0 / 0
Клиент-серверная технология и 1С
    #38704851
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ra72В дельфи есть и WebSnap . Главное - принцип прозрачности. Технология не должна загружать программиста выбором места выполнения.
угу.
ПаровозоРакетоМобили все пытаются делать с одинаковым эффектом)
"Если ты Сервер, не суетись под клиентом" (не суетись под программистом и не загружай его) ))
...
Рейтинг: 0 / 0
Клиент-серверная технология и 1С
    #38705004
mad_nazgul
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Petro123mad_nazgulСоль в том, что система должны знать какой код должен выполняться на сервере.
Либо явно указывается
ну вот и консенсунс))
Система знает, когда её указывает программист)) LOL

Согласен!
Вот только какой программист.
Для прикладного программиста лучше скрыть такие вещи.
Ему надо "дать в зубы" API которое само знает что, где и когда исполнять.
А давать ему (прикладному программисту) выбор что и как делать на сервере - чревато!
...
Рейтинг: 0 / 0
Клиент-серверная технология и 1С
    #38705122
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mad_nazgulА давать ему (прикладному программисту) выбор что и как делать на сервере - чревато!
не получился у 1С такой подход.
Тёти Маши там всё равно не программируют. А приложение - тормозит.
Вот они и сделали по простому - аннотациями (маркеры процедур).
По поводу переписывания, даже Оракле грешит такими каверзами:
- в библиотеке MapViewer 2.0 взял и переименовал методы
setMapCenter в setCenterMap ))))
...
Рейтинг: 0 / 0
Клиент-серверная технология и 1С
    #38705126
Ra72
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Infernal V. RavenRa72Вот если бы 1С сделало так, что бы обычные формы запускались и в WEB, тогда это было бы мощно.А ты давно его видел? Умеет он. Вообще недавно видел. То есть WEB клиент можно запустить НЕ на управляемых формах?
...
Рейтинг: 0 / 0
Клиент-серверная технология и 1С
    #38705292
Фотография Infernal V. Raven
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ra72Вообще недавно видел. То есть WEB клиент можно запустить НЕ на управляемых формах?Только на управляемых, но работает же. Как работает - уже другой вопрос :)
...
Рейтинг: 0 / 0
Клиент-серверная технология и 1С
    #38709045
Alex Kuznetsov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Йося... Т.е. в 1С две процедуры вызывается по button_click, а в .Net одна. ...а в ".Net" может быть вызвано сколь угодно много процедур при обработке события нажатия кнопки.
Вот представьте, что у Вас распределённая система, и клиентская часть сугубо отображалка, а данные "размазаны" по трем базам (ну мало-ли, паранойя может у кого-нибудь или бизнес процессы такие). При этом клиентская часть даже не подозревает об этом( о "размазне по трём базам", она просто знает к какому сервису (а это вообще четвёртый комп) сделать соответствующий запрос. Сколько здесь может быть вызвано и каких процедур из ".Net" ?

PS. .Net это платформа, а не бизнес приложение...
...
Рейтинг: 0 / 0
Клиент-серверная технология и 1С
    #38709051
Alex Kuznetsov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ЙосяТут пытались убедить что в ASP две процедуры нужно создать по событию по кнопке, но это не так, это ложь. Обработать событие и сделать запрос можно в одной процедуре. Какое сильное заявление...
Однако я чего-то упустил в своём развитии.
Я так-то считал, что ASP (Active Server Pages) обрабатывают HTTP запросы и тем самым реализуют бизнес логику...

ASP в принципе не знает нифигашеньки о том, какие элементы управления используются для генерации события на стороне клиента, потому как его задача тупо получить HTTP запрос, обработать его и вернуть результат клиенту. А сколько и каких процедур будет использовано в ходе обработки запроса - это уже от конкретной задачи зависит.
...
Рейтинг: 0 / 0
Клиент-серверная технология и 1С
    #38728449
trdm_
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ЙосяPetro123пропущено...

этот посыл неверный.
Отсюда и весь пост.

Голословные утверждения не принимаются. Нужны примеры, из 1С и других систем где программист управляет вызовом методов НаСервере/НаКлиенте

Ну так твой пост тоже голословный.
Об чем дальше говорить?
...
Рейтинг: 0 / 0
66 сообщений из 66, показаны все 3 страниц
Форумы / Разработка информационных систем [игнор отключен] [закрыт для гостей] / Клиент-серверная технология и 1С
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]