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