Нельзя изменять поле, содержащее объект данных формы #609670


#0 by distorter
В модуле формы элемента справочника хочу автоматически менять наименование при изменении реквизита. Выдает ошибку.
#1 by artems
А почему без контекста? Сделай серверной процедурой, в ней меняй наименование и вызывай ее при изменении всех зависимых полей.
#2 by distorter
Вот так? &НаКлиенте Ту же самую ошибку выдает.
#3 by proger2011
Можно Объект не передавать на сервер, он и так там доступен
#4 by distorter
Если не передавать, то работает. А без контекста никак нельзя?
#5 by artems
а зачем именно без контекста?
#6 by distorter
Предполагается работа исключительно в тонком клиенте. Хочется, чтобы быстрее работало.
#7 by proger2011
Попробуй преобразовать ДанныеФормыВЗначение(<Объект>, <Тип>) Параметры: Тип: ДанныеФормыСтруктураСКоллекцией; ДанныеФормыКоллекция; ДанныеФормыСтруктура; ДанныеФормыДерево. Тип: Тип. Тип значения, получаемого из данных формы. Возвращаемое значение: Тип: Произвольный. Описание: Преобразует данные формы в объект прикладного типа. Доступность: Сервер, толстый клиент. Примечание:
#8 by artems
Не ускорит настолько, что бы было критично. Сделай как в сказали и заметь производительность. Я думаю что гонять реквизит формы в значение даже дольше получится...
#9 by proger2011
Да я чёта написал а потом засомневался, если без контекста то по идее Объект не доступен будет.
#10 by artems
А зачем там объект? В клиентской процедуре реквизит в значение, значение на сервер без контекста, а оттуда возвращать строку наименования. Хотя по моему это извращение )))
#11 by distorter
Я еще не сделал как в говорит что-то про несоответствие типов во втором параметре. К какому типу я Объект привести должен?
#12 by Garkin
Если хочешь быстро - тогда не вызывай сервер без необходимости, поставь для   "Функция СформироватьНаименование" - "&НаКлиенте".
#13 by artems
Ну тут уж сам поковыряйся ) с чем тебе на сервере работать проще будет. Я бы попробовал с ДанныеФормыСтруктура.
#14 by distorter
а ведь правда, сервер не нужен - все данные на форме. вот так работает отлично, так же как &НаКлиенте
#15 by artems
А если говорить о производительности, то не в ту сторону смотришь. Сколько раз у тебя наименование переписываться будет? Я вижу как минимум 4. Может лучше в процедуре перед записью проверить должно поменяться наименование и если должно, то один раз всего поменять.
#16 by distorter
Тогда еще вопрос - где лучше формировать заголовок формы при открытии (автоформирование целенаправленно отключено в свойствах формы) - на сервере или на клиенте?
#17 by distorter
я хочу чтобы пользователь видел результирующую строку в заголовке в процессе своих действий. Наименование вообще отсутствует на форме как реквизит. А так ему придется в уме прикидывать как будет называться элемент справочника в результате его действий.
#18 by artems
Ну сделай наименование недоступным для редактирования и не надо с заголовком мудрить.
#19 by distorter
Заголовок скрыть, оставить наименование в виде Декорация текст? (не хочется делать его просто реквизитом - затеряется в толпе :)
Тэги: 1С 8
Ответить:
Комментарии доступны только авторизированным пользователям

В этой группе 1С