Имя: Пароль:
1C
1С v8
Установка подчиненного реквизита в общем серверном модуле
0 e2e4
 
17.07.15
18:55
На статью в КЗ не тянет - так что оформляю просто темкой свою победу))
Ибо, судя по гуглу, многие как и я боролись с этой темой - может, помогу кому-то потратить меньше времени, чем я.
Итак, тривиальная задачка - при смене контрагента в форме дока автоматически поменять значение реквизита дока Договор на основной договор к-та.

Элементарно можно прямо в модуле формы завести две процедурки:

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

&НаСервере
Процедура КонтрагентПриИзмененииНаСервере()
    Объект.Договор = Объект.Контрагент.ОсновнойДоговор;
КонецПроцедуры

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

Поисковые запросы по такому делу массово ведут к употреблению РеквизитФормыВЗначение, ЗначениеВРеквизитФормы. Все замечательно, но... Только если располагать серверную процедуру опять же в модуле формы, а не в общем модуле, который знать не знает про такие функции! Т.е., шило на мыло.

Наконец, "пощупав" типовую конфу, пришел к требуемому рабочему варианту:
- в модуле формы:
&НаКлиенте
Процедура КонтрагентПриИзменении(Элемент)
    Серверный.КонтрагентПриИзменении(Объект.Контрагент, Объект.Договор);
КонецПроцедуры
- в серверном общем модуле:
Процедура КонтрагентПриИзменении(Контрагент, Договор) Экспорт
    Договор = Контрагент.ОсновнойДоговор;
КонецПроцедуры

Делаем выводы.
...Для кого-то тривиально - но...Если бы я в поисковике сразу нашел что-то подобное - сэкономил бы время!:)
1 Casey1984
 
17.07.15
19:29
Ну и молодец)
2 Рэйв
 
17.07.15
21:26
Подарить тебе чтоли общую процедуру взятия всего что нужно за один раз с сервера....
Наверное не буду...
Ты такой самоуверенный.Тебе это не надо.
3 mikecool
 
17.07.15
21:43
вспоминая темы автора даже не стал читать ))
4 Лефмихалыч
 
17.07.15
21:50
>На статью в КЗ не тянет
за это уже можно автору медаль дать. Сося в свое время подобными статьями превратил КЗ в хранилище записок на туалетной бумаге