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