powered by simpleCommunicator - 2.0.52     © 2025 Programmizd 02
Форумы / Разработка информационных систем [игнор отключен] [закрыт для гостей] / Клиент-серверная технология и 1С
25 сообщений из 66, страница 1 из 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
25 сообщений из 66, страница 1 из 3
Форумы / Разработка информационных систем [игнор отключен] [закрыт для гостей] / Клиент-серверная технология и 1С
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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