Перехожу на 1С с другой платформы (там немного иные подходы) и не могу осознать некоторые вещи - прошу помощи.

Есть внешняя обработка. В ней описаны реквизиты - справочники, строки и т.п. Часть этих реквизитов используется в методах, описанных в модуле формы. Методы (процедуры и функции) обработки исполняются и на клиенте и на сервере.

Суть поблемы - мне нужно задать значение реквизита (справочника РКОВидОперации) которое должно отразиться в атрибуте формы внешней обработки frВидОперацииРКО. Ранее данный атрибут вводился вручную после открытия формы обработки. Теперь мне нужно чтобы при открытии формы в поле-атрибуте формы обработки frРКОВидОперации (доступной только на чтение) и соответственно в реквизите записи базы данных ВидОперацииРКО находилось предустановленное значение справочника.

Вопрос - где задать его и как? Достаточно ли только присвоить значение реквизиту записи Объект.РКОВидОперации, оно автоматически отразится в элементе формы frРКОВидОперации?
        Объект.РКОВидОперации = Перечисления.ВидыОперацийРКО.ВозвратПокупателю;
Или мне нужно еще совершать какие-то действия с элементом формы Элементы.frРКОВидОперации (которая является отражением реквизита Объект.РКОВидОперации). Я про что-то типа
 Элементы.frРКОВидОперации. = Объект.РКОВидОперации;

Запрет на запись в элемент форме - понятно можно делать на клиенте что-то типа
        Элементы.frРКОВидОперации.Доступность = Ложь;

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

Здесь же на попытку присвоить в обработчике при Открытии (на клиенте) модуля формы получаю синтаксическую ошибку.
        Объект.РКОВидОперации = Перечисления.ВидыОперацийРКО.ВозвратПокупателю;
Когда переношу в свою процедуру "на Сервере" то в визуальной форме предустановленное значение не отображается. Толи глючит конфигуратор, то ли я что-то методологически не верно делаю.

Вопрос простой как и где (в каком стандартном обработчике формы) присвоить
   Объект.РКОВидОперации = Перечисления.ВидыОперацийРКО.ВозвратПокупателю;
чтобы в форме все стабильно отображалось.
---
А разве запись реквизитов объекта обработки в базу данных, содержащих достаточно сложные настройки для выборки данных, не имеет смысла при работе пользователей в сети с разных рабочих мест? Начнем с того, что реквизиты обработок не пишутся в базу данных.
Еще вопрос - 1С всегда требует использование метода ПредопределенноеЗначение() Нет, не требует. Она предоставляет возможность обращения к предопределенным данным БД через кэшируемый метод.
---
1. Начнем с того, что реквизиты именно внешней обработки - практически никому не нужная вещь. Они нужны только для программного API.
2. Суть поблемы - мне нужно задать значение реквизита (справочника РКОВидОперации) которое должно отразиться в атрибуте формы внешней обработки frВидОперацииРКО. Если речь про форму - то нет, надо просто в модуле формы обработки в обработчике ПриСозданииНаСервере() присвоить конкретное значение этому реквизиту (РеквизуОбъекта или РеквизитуФормы - вопрос дискуссионный)
3. Здесь же на попытку присвоить в обработчике при Открытии (на клиенте) модуля формы получаю синтаксическую ошибку.
Объект.РКОВидОперации = Перечисления.ВидыОперацийРКО.ВозвратПокупателю; Потому что это клиент. Тут нет обращения к базе данных. Надо использовать
```1c
    Объект.РКОВидОперации = ПредопределенноеЗначение("Перечисление.ВидыОперацийРКО.ВозвратПокупателю");
```
---
1. Начнем с того, что реквизиты именно внешней обработки - практически никому не нужная вещь. Они нужны только для программного API.
А разве запись реквизитов объекта обработки в базу данных, содержащих достаточно сложные настройки для выборки данных, не имеет смысла при работе пользователей в сети с разных рабочих мест? Я так понимаю это самый простой способ записать настройки для доступа с разных мест при настройке обработки на конфигурацию и предприятие (которая делается достаточно редко). Или я не прав?

Я правильно понял что я должен
Объект.РКОВидОперации = ПредопределенноеЗначение("Перечисление.ВидыОперацийРКО.ВозвратПокупателю");
прописать в обработчике ПриСозданииНаСервере()?
Еще вопрос - 1С всегда требует использование метода ПредопределенноеЗначение()? Компилятор сам не справляется с этим? Ведь Перечисление.ВидыОперацийРКО.ВозвратПокупателю дает однозначную ссылку на предопределенное значение в базе...
---
А разве запись реквизитов объекта обработки в базу данных, содержащих достаточно сложные настройки для выборки данных, не имеет смысла при работе пользователей в сети с разных рабочих мест? Начнем с того, что реквизиты обработок не пишутся в базу данных.
Еще вопрос - 1С всегда требует использование метода ПредопределенноеЗначение() Нет, не требует. Она предоставляет возможность обращения к предопределенным данным БД через кэшируемый метод.
---
Извините, но я предполагал что само предложение Ваше ввести в своей форме метод ПриСозданииНаСервере() и там разместить строку с присвоением и есть расширение стандартного метода формы ПриСозданииНаСервере(). Ведь мы не повторяем в нем весь код который должна отработать форма при событии ПриСозданииНаСервере(), а пишем только "свою заплатку". Или я не правильно понимаю идею использования стандартных предопределенных методов форм 1С? Поэтому и спросил про то как строится в 1С расширение/перекрытие методов - ищу аналогии со своим предыдущим опытом 8-)

(5) Начнем с того, что реквизиты обработок не пишутся в базу данных.
Даже когда мы обработку в базу добавляем в виде дополнительной обработки в администрировании? Или реквизиты создаются чисто на сервере в момент обработки?
---
ввести в своей форме метод ПриСозданииНаСервере() и там разместить строку с присвоением и есть расширение стандартного метода формы ПриСозданииНаСервере() Масло маслянное. У каждой формы свой обработчик ПриСозданииНаСервере(). Они никого не повторяет и никого не расширяет.
Или реквизиты создаются чисто на сервере в момент обработки? Примерно так, да.
---
Масло маслянное. У каждой формы свой обработчик ПриСозданииНаСервере(). Они никого не повторяет и никого не расширяет.
Сейчас посмотрел в хелпе ПриСозданииНаСервере(<Отказ>, <СтандартнаяОбработка>).
Вот как раз флаг <СтандартнаяОбработка> и определяет расширение или перекрытие метода. Как я понимаю моя обработка события ПриСозданииНаСервере() будет выполнятся ПОСЛЕ стандартной обработки (по умолчанию <СтандартнаяОбработка>=Истина) или перекрывать ее если я в параметре задам <СтандартнаяОбработка>=Ложь.
В любом случае - спасибо, Вы мне позволили дальше продвинуться в своем восприятии 1С 8-)
---
А можно еще вопрос про расширение методов в 1С?
Мы ведь фактически расширяем стандартный метод ПриСозданииНаСервере() моим кодом, и заготовка стандартной формы так же использует метод ПриСозданииНаСервере(). Как 1С определяет куда должна быть добавлен мой код в виде строки Объект.РКОВидОперации = ПредопределенноеЗначение("Перечисление.ВидыОперацийРКО.ВозвратПокупателю"); относительно этого же стандартного обработчика формы? Как происходит объединение кода?

Мне более привычен вариант кода, который позволяет использовать стандартный обработчик либо после моего кода, либо до...
 Proc шаблон_ПриОткрытии(Режим:Logical);
"код мой"
    -- ВАЖНО - данный обработчик может отсутствовать в родителе
   inherited шаблон_ПриОткрытии(Режим); -- Сначала отработает основной обработчик
-- extended шаблон_ПриОткрытии(Режим); -- Сначала отработает основной обработчик

"код мой"
end;
---
Мы ведь фактически расширяем стандартный метод ПриСозданииНаСервере() моим кодом В вашем посте про это ни слова. Или вы предлагаете нам поучаствовать в битве экстрасенсов?
---
Обнаглею и задам еще вопрос - если в базу реквизиты обработки не пишутся, то работает ли для обработки обработчик ПриЧтенииНаСервере(<ТекущийОбъект>)? Что он в объект (экземпляр) формы обработки может считать и откуда?