история такая - в 2017 году писал я обработку для БП 3.0 (платформа была на тот момент актуальная, не помню какая) и был там такой код

```1c
    П = Новый Структура;
    П.Вставить("Ключ", Ссылка);
    ф = ПолучитьФорму("Документ.РасходныйКассовыйОрдер.ФормаОбъекта", П);
    ф.ВидОперацииПриИзмененииСервер();
    ф.Записать();
```

где ВидОперацииПриИзмененииСервер это процедура формы документа серверная.
Обработкой пользовались около года почти ежедневно - она работала, зуб даю!
Потом с компанией расстались, и про нее забылось, а сейчас вот вспомнилось, попробовал применить и ошибка
Метод объекта не обнаружен (ВидОперацииПриИзмененииСервер), причем проверил, не вызывается ни одна серверная процедура формы.
Вопрос - а что поменялось? Неужели в новых платформах это убрали?
---
Прояснилась ситуация:
Теперь через полученную форму можно вызвать только процедуры формы НаСервере у которых стоит Экспорт (а так как в модуле формы он почти нигде не стоит, то и не работает).
Заморочился, скачал cf 17-го года, там эти процедуры тоже не экспортные, однако вызывались все из модуля формы признаком НаСервере.
Значит все-таки в платформе поменяли зачем-то
---
Вопрос - а что поменялось? Неужели в новых платформах это убрали?
Это связано с тем что указанный вами вызов ! Теперь не находиться в форме документа!

А в Общем модуле "РасходныйКассовыйОрдерФормы"
---
ну что вы, я же проверил

&НаКлиенте
Процедура ВидОперацииПриИзменении(Элемент)

 Если ЗначениеЗаполнено(Объект.ВидОперации) Тогда
  ВидОперацииПриИзмененииСервер();
 КонецЕсли;

КонецПроцедуры

Вот, в текущей бухгалтерии в модуле формы вызывается процедура модуля формы НаСервере ВидОперацииПриИзмененииСервер(), как и раньше, что внутри этой процедуры не важно, она в принципе не вызывается.
---
Никогда не понимал - зачем открывать форму только для вызова процедуры из неё, тем более, что процедура из формы вызывает процедуру из общего модуля.
---
иногда разработчики забывают переносить код из формы.
---
Я не про разработчиков, а про конкретный ваш код. Вызывайте сразу функцию из общего модуля.
---
отвечу - затем, что, эмитируя интерактивное изменение, не надо разбираться в том, что там надо менять пересчитывать, форма все сделает сама, + при вызове общих модулей из формы, в ряде случаев, она передает в кач-ве параметра себя (т.е. форму), и из объекта мы не сможем вызвать этот модуль, и начнется перетаскивание процедуры общего модуля в обработку с дальнейшей его корректировкой и контролем изменений при обновлении..
ну и размер кода 5 строк вместо страницы.
При этом, я не предлагал открывать форму, я ее только получаю.
---
Есть разница в том, инициализируется вся форма с диалогами или только модуль формы вызывается? С точки зрения машинных ресурсов?
---
по доступности элементов есть, если, например нужно активировать элемент формы (например строку таблицы), тогда надо открывать
---
Прояснилась ситуация:
Теперь через полученную форму можно вызвать только процедуры формы НаСервере у которых стоит Экспорт (а так как в модуле формы он почти нигде не стоит, то и не работает).
Заморочился, скачал cf 17-го года, там эти процедуры тоже не экспортные, однако вызывались все из модуля формы признаком НаСервере.
Значит все-таки в платформе поменяли зачем-то
---
Давно уже. Именно поэтому любая асинхронная "антимодальность" реализована на ОписаниеОповещения с экспортными обработчиками этих самых оповещений...
---
в 8.3.13 можно было вызывать не экспортные функции и процедуры формы, получая форму. Это поведение признано ошибкой и в последующих релизах поведение исправлено.
---
правильнеее будет в 8.3.13 и более ранних... Жаль не объясняют почему это признано ошибкой
---
Грязный трюк, используя расширение:
Как вызвать не экспортный метод формы:
 1) В расширение добавляем форму (в данном случае "Справочник.Контрагенты.Форма.ФормаЭлемента");
 2) В модуль формы добавляем два метода:

```1c
    &НаКлиенте
    &Вместо("ИМЯ_Метода_Формы")
    Процедура DUM_ИМЯ_Метода_Формы(АРГ_)
    ПродолжитьВызов(АРГ_);
    КонецПроцедуры

    &НаКлиенте
    Процедура OVR_ИМЯ_Метода_Формы(АРГ_) Экспорт
    ИМЯ_Метода_Формы(АРГ_);
    КонецПроцедуры
```

 3) Где хотим, там и вызываем (с клиента, разумеется):

```1c
    _парам = Новый Структура("Ключ", _ссылкаНаКонтрагента);
    _форма = ПолучитьФорму("Справочник.Контрагенты.Форма.ФормаЭлемента", _парам);
    _форма.OVR_ИМЯ_Метода_Формы(Истина);
```
---
Ну и зачем тебе здесь DUM_ИМЯ_Метода_Формы()?
---
Потому:
1) что вызов _форма.DUM_ИМЯ_Метода_Формы(Истина);
    ==> Ошибка: Метод объекта не обнаружен
2) что сделав DUM_ИМЯ_Метода_Формы Экспортным и сделав п.1
   ==> Ошибка: Вызов метода разрешен только в методах с аннотацией "Вместо"
Как то так)
Уж не знаю почему, но кроме обертки надо делать еще доп метод, вызывающий обертку.
---
пока разбираетесь, сделайте времянку через файл, по крайней мере будет работать
(14)Теме 3 года, уже разобрались, через расширение, ясно, что угодно можно запилить