ПланСчетовСсылка.<Имя плана счетов>.ПолучитьФорму

Методы · GetForm

Получает форму элемента счета, на который указывает ссылка.

Синтаксис

ПолучитьФорму(<Форма>, <Владелец>, <КлючУникальности>)
Полное описание, параметры и ограничения

ПланСчетовСсылка.<Имя плана счетов>.ПолучитьФорму (ChartOfAccountsRef.<Chart of accounts name>.GetForm)

ПланСчетовСсылка.<Имя плана счетов> (ChartOfAccountsRef.<Chart of accounts name>)

ПолучитьФорму (GetForm)

Доступен, начиная с версии 8.0.

Синтаксис:
ПолучитьФорму(<Форма>, <Владелец>, <КлючУникальности>)
Параметры:

<Форма> (необязательный)
Тип: Строка, ОбъектМетаданных: Форма.
Имя формы, как оно задано в конфигураторе, или объект описания метаданного требуемой формы. Если параметр не указан, то используется основная форма, заданная в конфигураторе.

<Владелец> (необязательный)
Тип: Форма; Элемент управления.
Объект, который будет являться владельцем открываемой формы.

<КлючУникальности> (необязательный)
Тип: Произвольный.
В данном параметре может быть задан некоторый ключ, значение которого будет использоваться для поиска уже открытых форм.
При поиске учитываются значения свойств открытых форм соответствующим значениям параметров метода. Если найдена открытая форма (по совпадению всех параметров), то она будет возвращена вместо новой формы.
Если из некой формы (один и тот же владелец) требуется открывать новые экземпляры другой формы, то при каждом вызове метода значение данного параметра должно быть уникально (в рамках соответствующих значений свойств открытых форм).
Значение параметра присваивается свойству открываемой формы КлючУникальности.
Следует учитывать, что при получении формы из "объекта" система получает форму для конкретного экземпляра объекта с учетом совокупности переданных параметров, в то время как для "ссылки" всегда существует только один объект в базе данных и форма получается одна (для одинаковой совокупности параметров).
Возвращаемое значение:
Тип: Форма, Неопределено.
Неопределено - если в обработчике ПриСозданииНаСервере установлен признак отказа от создания формы.
Описание:

Получает форму элемента счета, на который указывает ссылка.

Доступность:

Толстый клиент.

Использование в версии:

Доступен, начиная с версии 8.0.

Методическая информация

Практические примеры

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

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

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

Полный модуль собственной ОБЫЧНОЙ формы обработки, толстый клиент с обычным приложением 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С» и не аффилирован с ней.