Обработка события элемента формы в документе переадресуется с клиента на сервер в типовой Рознице. Разве этот вызов не тянет весь контекст формы за собой на сервер?

1. talych 17 08.07.17 16:22 Сейчас в теме
Не могу понять, почему в типовых конфигурациях часто встречается такое. Например, 1С:Предприятие 8.3 (8.3.10.2299) Розница, редакция 2.2

Обработка события элемента формы в документе переадресуется с клиента на сервер. Разве этот вызов не тянет весь контекст формы за собой на сервер? Дело в том, что и у себя в коде хочу так сделать, но что-то подсказывает, что так неправильно делать.
Помогите уважаемые гуру?
У меня лично проблема передачи в функцию &НаСервереБезКонтекста данных табличной части. Таблица значений на клиенте отсутствует. Можно сериализовать, а можно как в коде типовой Розницы(ниже) сделать. На сервере-то ТЗ имеется ))


Документ "ПоступлениеТоваров"

&НаКлиенте
Процедура КонтрагентПриИзменении(Элемент)
	
	КонтрагентПриИзмененииСервер();
....
	
КонецПроцедуры

А уже на сервере

&НаСервере
Процедура КонтрагентПриИзмененииСервер()
	
	ОбщегоНазначенияРТКлиентСервер.УстановитьСвойствоЭлементаФормы(Элементы,"БанковскийСчетКонтрагента", "ТолькоПросмотр",
																	НЕ ЗначениеЗаполнено(Объект.Контрагент));
	
	Объект.БанковскийСчетКонтрагента = ЗначениеНастроекПовтИсп.ПолучитьБанковскийСчетКонтрагентаПоУмолчанию(Объект.Контрагент);
	
	ОбновитьПоказателиТабличнойЧастиТовары();
	
	Если ЗначениеЗаполнено(Объект.Контрагент) И ЗначениеЗаполнено(Объект.Магазин) Тогда
		ОбновитьИтоговыеПоказатели(Истина);
	Иначе
		ДоступноКВзаимозачету = 0;
	КонецЕсли;
	
	
Показать
Ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. Dream_kz 129 08.07.17 17:11 Сейчас в теме
(1) Внеконтекстные вызовы не панацея, надо отчетливо понимать когда проще и лучше вызвать сервер с контекстом (1 ТЧ, не особо много реквизитов), а когда делать неконтекстный вызов (много реквизитов объекта, несколько тч, предположительно часто заполненных и т.д.).

Предположительно, сериализация ТЧ, передача ее на сервер без контекста, обработка, и возврат на клиент займут примерно такое же время (+/- погрешность) что и контекстный вызов. Ну естественно, если не будет других заполненных ТЧ, и кучи реквизитов, которые не нужны.

Ну и в конце концов не стоит смотреть на типовые.
3. talych 17 08.07.17 19:02 Сейчас в теме
(2 Код выше взят из Розницы. 5 тч, куча реквизитов. Не думаю, что это будет быстрее сериализация ТЧ и т.п. И такого кода много. А почему не стоит смотреть на типовые?! Их БСП сейчас везде и, я думал, что их код как пример для подражания ))
4. Dream_kz 129 08.07.17 19:11 Сейчас в теме
(3) Возможно предполагается что изменение контрагента будет вначале заполнения документа, без заполненных тч.

(3)
А почему не стоит смотреть на типовые?!

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

Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот