Открыть обычную форму ссылки только собственного учебного счёта

Учебные задачи

Отдельный клиентский контракт обычной формы ссылки. Имя формы, запись, владелец и ключ определены явно; отказ создания обработан до Открыть.

Где и как запускать

Полный модуль собственной ОБЫЧНОЙ формы обработки, толстый клиент с обычным приложением 8.5.1.1343. Собственная заранее подготовленная запись и именованная форма; здесь не запускался.

Подготовка

  1. Создайте НОВУЮ пустую файловую базу, корневое имя УчебныйУчет85. В рабочей БП/КА2/УТ/УНФ эти задачи не запускайте. Это технический пример API, не готовый бухгалтерский учёт.

  2. Планы видов характеристик → Добавить: УчебныеАналитики85. Тип значения только Строка 30. Элементы, дополнительные реквизиты, табличные части и предопределённые значения не создавайте.

  3. Планы счетов → Добавить: УчебныеСчета85. ДлинаКода 10, МаскаКода @@@.@@@.@@, ДлинаНаименования 100, ДлинаПорядка 20. АвтоПорядокПоКоду выключен, КонтрольУникальности включён. ВидыСубконто=УчебныеАналитики85, МаксКоличествоСубконто=2.

  4. У плана нет пользовательских реквизитов/табличных частей, признаков учёта и предопределённых счетов. История выключена, регистров бухгалтерии, проводок и реальных остатков нет. Это технический опыт типов, не методология учёта.

  5. Опыт с маской @@@.@@@.@@ использует строковые коды. Не переносите его сравнения на иной числовой/немаскированный план. АвтоПорядокПоКоду выключен: Порядок хранится отдельно от кода.

  6. Модули собственных объектов/менеджеров пустые, подписок, расширений и внешних действий нет. Не используйте рабочую базу или её копию с действующими обработчиками.

  7. Код здесь в 1С не запускался. HTML показывает урок: проверены исходники и установленная справка именно 8.5.1.1343, но запись/открытие формы в ваших базах не выполнялись.

  8. Ссылка идентифицирует запись, объект служит для её изменения. Свойства ссылки readonly, ВерсияДанных — непрозрачная строка, не номер версии конфигурации.

  9. Непустая плановая ссылка не подтверждает существование записи; перед чтением данных отсутствующая запись исключается отдельно.

  10. У подготовленного 42.1 Вид=Активный, Забалансовый=Ложь, ручной Порядок=FORM, ВидыСубконто пустые. Проводки не создаются.

  11. У собственного плана создайте ОБЫЧНУЮ форму элемента УчебнаяФормаСсылкиСчета с пустым модулем. Поля кода/наименования сделайте недоступными; кнопки Записать/ОК/Удалить и внешние обработчики не добавляйте.

  12. Вручную заранее подготовьте один собственный элемент: Код=42.1, Наименование=Собственный учебный счёт формы. Это не предопределённая запись и не группа. Урок его только находит и открывает, не создаёт/не удаляет.

  13. Запускайте именно толстый клиент в режиме обычного приложения, не тонкий/веб-клиент и не управляемую форму.

  14. В собственной обработке создайте обычную форму с кнопкой, назначьте действием ПоказатьУчебнуюКарточку и вставьте весь модуль урока в модуль этой формы. ЭтаФорма — её настоящий владелец; это не серверный общий модуль.

  15. После просмотра закрывайте окно вручную без сохранения. Не удерживайте транзакцию в ожидании действий пользователя.

Процедура ПоказатьУчебнуюКарточку(Кнопка)
    Описание = Метаданные.ПланыСчетов.Найти("УчебныеСчета85");
    Если Описание = Неопределено Тогда
        ВызватьИсключение "Сначала создайте собственный план УчебныеСчета85";
    КонецЕсли;
    Если Описание.ДлинаКода <> 10 Или Описание.ДлинаНаименования <> 100
        Или Описание.ДлинаПорядка <> 20 Или Описание.МаскаКода <> "@@@.@@@.@@"
        Или Описание.АвтоПорядокПоКоду Или Описание.МаксКоличествоСубконто <> 2 Тогда
        ВызватьИсключение "Настройки учебного плана не соответствуют подготовке";
    КонецЕсли;
    Если Описание.ВидыСубконто = Неопределено Тогда
        ВызватьИсключение "Назначьте собственный план аналитик";
    КонецЕсли;
    Если Описание.ВидыСубконто.Имя <> "УчебныеАналитики85" Тогда
        ВызватьИсключение "Нужны только собственные учебные аналитики";
    КонецЕсли;
    Менеджер = ПланыСчетов.УчебныеСчета85;

    СсылкаКарточки = Менеджер.НайтиПоКоду("42.1");
    Если СсылкаКарточки = Неопределено Тогда
        ВызватьИсключение "Собственная заранее подготовленная запись не найдена";
    КонецЕсли;
    Если СсылкаКарточки.Пустая() Тогда
        ВызватьИсключение "Сначала вручную подготовьте запись по коду 42.1";
    КонецЕсли;
    Если СсылкаКарточки.Наименование <> "Собственный учебный счёт формы" Или СсылкаКарточки.ПометкаУдаления Тогда
        ВызватьИсключение "Запись не совпала с собственной подготовленной карточкой";
    КонецЕсли;
    КлючОкна = Новый УникальныйИдентификатор;
    Карточка = СсылкаКарточки.ПолучитьФорму("УчебнаяФормаСсылкиСчета", ЭтаФорма, КлючОкна);
    Если Карточка = Неопределено Тогда
        Сообщить("Форма не создана; отказ не является успешным открытием");
        Возврат;
    КонецЕсли;
    Карточка.Открыть();
    Сообщить("Открыта собственная обычная форма; запись кодом не выполнялась");
КонецПроцедуры

Разбор по шагам

  1. Проверить точную платформу и собственные метаданные своей пустой базы.

  2. Найти только заданный собственный код; отдельно остановить Неопределено и пустую ссылку.

  3. Проверить точное собственное имя, отсутствие пометки удаления и, если применимо, группы.

  4. Передать именованную обычную форму, настоящую ЭтаФорма и новый UUID уникальности окна.

  5. Отказ создания отдельно сообщить; только готовую форму открыть без записи/удаления/транзакции.

Как проверить результат

  1. Открыта только именованная собственная обычная форма подготовленной карточки.

  2. Отсутствующая/неподходящая запись или отказ создания не объявляются успехом.

  3. В коде нет Записать, Удалить, сетевых вызовов и удержания транзакции.

Ожидаемый результат

Правильно использован толстоклиентский контракт ПолучитьФорму ссылки.

На что обратить внимание

  1. Это обычная Форма, не управляемое ОткрытьФорму.

  2. ПолучитьФорму ещё не означает Открыть: результат проверяется на Неопределено.

  3. Не подставляйте первую запись из рабочей конфигурации вместо подготовленного собственного кода.

  4. Код сам не сохраняет изменения; действия оператора в 1С здесь не выполнялись и не проверялись.

Пример не запускался в вашей базе. Перед применением проверьте его в указанном учебном контексте.

Не хотите разбираться сами?

Адаптируем это решение под вашу базу. Оценка бесплатно.

Оставить задачу

1С, 1С:Предприятие — товарные знаки ООО «1С». Сайт не является официальным представительством фирмы «1С» и не аффилирован с ней.