Отдельный клиентский контракт обычной формы ссылки. Имя формы, запись, владелец и ключ определены явно; отказ создания обработан до Открыть.
Где и как запускать
Полный модуль собственной ОБЫЧНОЙ формы обработки, толстый клиент с обычным приложением 8.5.1.1343. Собственная заранее подготовленная запись и именованная форма; здесь не запускался.
Подготовка
Создайте НОВУЮ пустую файловую базу, корневое имя УчебныйУчет85. В рабочей БП/КА2/УТ/УНФ эти задачи не запускайте. Это технический пример API, не готовый бухгалтерский учёт.
Планы видов характеристик → Добавить: УчебныеАналитики85. Тип значения только Строка 30. Элементы, дополнительные реквизиты, табличные части и предопределённые значения не создавайте.
Планы счетов → Добавить: УчебныеСчета85. ДлинаКода 10, МаскаКода @@@.@@@.@@, ДлинаНаименования 100, ДлинаПорядка 20. АвтоПорядокПоКоду выключен, КонтрольУникальности включён. ВидыСубконто=УчебныеАналитики85, МаксКоличествоСубконто=2.
У плана нет пользовательских реквизитов/табличных частей, признаков учёта и предопределённых счетов. История выключена, регистров бухгалтерии, проводок и реальных остатков нет. Это технический опыт типов, не методология учёта.
Опыт с маской @@@.@@@.@@ использует строковые коды. Не переносите его сравнения на иной числовой/немаскированный план. АвтоПорядокПоКоду выключен: Порядок хранится отдельно от кода.
Модули собственных объектов/менеджеров пустые, подписок, расширений и внешних действий нет. Не используйте рабочую базу или её копию с действующими обработчиками.
Код здесь в 1С не запускался. HTML показывает урок: проверены исходники и установленная справка именно 8.5.1.1343, но запись/открытие формы в ваших базах не выполнялись.
Ссылка идентифицирует запись, объект служит для её изменения. Свойства ссылки readonly, ВерсияДанных — непрозрачная строка, не номер версии конфигурации.
Непустая плановая ссылка не подтверждает существование записи; перед чтением данных отсутствующая запись исключается отдельно.
У подготовленного 42.1 Вид=Активный, Забалансовый=Ложь, ручной Порядок=FORM, ВидыСубконто пустые. Проводки не создаются.
У собственного плана создайте ОБЫЧНУЮ форму элемента УчебнаяФормаСсылкиСчета с пустым модулем. Поля кода/наименования сделайте недоступными; кнопки Записать/ОК/Удалить и внешние обработчики не добавляйте.
Вручную заранее подготовьте один собственный элемент: Код=42.1, Наименование=Собственный учебный счёт формы. Это не предопределённая запись и не группа. Урок его только находит и открывает, не создаёт/не удаляет.
Запускайте именно толстый клиент в режиме обычного приложения, не тонкий/веб-клиент и не управляемую форму.
В собственной обработке создайте обычную форму с кнопкой, назначьте действием ПоказатьУчебнуюКарточку и вставьте весь модуль урока в модуль этой формы. ЭтаФорма — её настоящий владелец; это не серверный общий модуль.
После просмотра закрывайте окно вручную без сохранения. Не удерживайте транзакцию в ожидании действий пользователя.
Процедура ПоказатьУчебнуюКарточку(Кнопка)
Описание = Метаданные.ПланыСчетов.Найти("УчебныеСчета85");
Если Описание = Неопределено Тогда
ВызватьИсключение "Сначала создайте собственный план УчебныеСчета85";
КонецЕсли;
Если Описание.ДлинаКода <> 10 Или Описание.ДлинаНаименования <> 100
Или Описание.ДлинаПорядка <> 20 Или Описание.МаскаКода <> "@@@.@@@.@@"
Или Описание.АвтоПорядокПоКоду Или Описание.МаксКоличествоСубконто <> 2 Тогда
ВызватьИсключение "Настройки учебного плана не соответствуют подготовке";
КонецЕсли;
Если Описание.ВидыСубконто = Неопределено Тогда
ВызватьИсключение "Назначьте собственный план аналитик";
КонецЕсли;
Если Описание.ВидыСубконто.Имя <> "УчебныеАналитики85" Тогда
ВызватьИсключение "Нужны только собственные учебные аналитики";
КонецЕсли;
Менеджер = ПланыСчетов.УчебныеСчета85;
СсылкаКарточки = Менеджер.НайтиПоКоду("42.1");
Если СсылкаКарточки = Неопределено Тогда
ВызватьИсключение "Собственная заранее подготовленная запись не найдена";
КонецЕсли;
Если СсылкаКарточки.Пустая() Тогда
ВызватьИсключение "Сначала вручную подготовьте запись по коду 42.1";
КонецЕсли;
Если СсылкаКарточки.Наименование <> "Собственный учебный счёт формы" Или СсылкаКарточки.ПометкаУдаления Тогда
ВызватьИсключение "Запись не совпала с собственной подготовленной карточкой";
КонецЕсли;
КлючОкна = Новый УникальныйИдентификатор;
Карточка = СсылкаКарточки.ПолучитьФорму("УчебнаяФормаСсылкиСчета", ЭтаФорма, КлючОкна);
Если Карточка = Неопределено Тогда
Сообщить("Форма не создана; отказ не является успешным открытием");
Возврат;
КонецЕсли;
Карточка.Открыть();
Сообщить("Открыта собственная обычная форма; запись кодом не выполнялась");
КонецПроцедурыРазбор по шагам
Проверить точную платформу и собственные метаданные своей пустой базы.
Найти только заданный собственный код; отдельно остановить Неопределено и пустую ссылку.
Проверить точное собственное имя, отсутствие пометки удаления и, если применимо, группы.
Передать именованную обычную форму, настоящую ЭтаФорма и новый UUID уникальности окна.
Отказ создания отдельно сообщить; только готовую форму открыть без записи/удаления/транзакции.
Как проверить результат
Открыта только именованная собственная обычная форма подготовленной карточки.
Отсутствующая/неподходящая запись или отказ создания не объявляются успехом.
В коде нет Записать, Удалить, сетевых вызовов и удержания транзакции.
Ожидаемый результат
Правильно использован толстоклиентский контракт ПолучитьФорму ссылки.
На что обратить внимание
Это обычная Форма, не управляемое ОткрытьФорму.
ПолучитьФорму ещё не означает Открыть: результат проверяется на Неопределено.
Не подставляйте первую запись из рабочей конфигурации вместо подготовленного собственного кода.
Код сам не сохраняет изменения; действия оператора в 1С здесь не выполнялись и не проверялись.
Пример не запускался в вашей базе. Перед применением проверьте его в указанном учебном контексте.