Как правильно открыть форму нового документа в 1С 7.7

Программист 1С v7.7
← На главную

При разработке в платформе 1С:Предприятие 7.7 программисты часто сталкиваются с ситуацией, когда вызов функции ОткрытьФорму() для нового документа не приводит к открытию окна. Проанализируем, почему это происходит и какими способами можно открыть форму нового документа.

Способ 1. Интерактивное открытие формы нового несохраненного документа

Если требуется просто открыть пользователю форму для ввода нового документа конкретного вида, используется прямой вызов функции ОткрытьФорму() с указанием вида метаданных в первом параметре.

Важно обратить внимание на второй параметр: в него передается переменная, в которую платформа возвращает контекст созданной формы. Не следует передавать служебное слово Контекст текущего модуля напрямую, если необходимо корректно обработать возвращаемое значение. Подготовим пустую переменную перед вызовом:


ПеремКонтекст = "";
ОткрытьФорму("Документ.Бронь_Подрезки", ПеремКонтекст);

Если требуется передать в открываемую форму начальные данные или параметры, в качестве второго параметра можно передать значение или объект СписокЗначений. В самом открываемом документе эти параметры можно считать в процедуре ПриОткрытии() через свойство Форма.Параметр.

Способ 2. Открытие формы документа, созданного программно через СоздатьОбъект

Рассмотрим ситуацию, когда документ создается и предварительно заполняется программным путем через объект СоздатьОбъект("Документ.Вид").

В платформе 1С 7.7 объект документа, созданный через СоздатьОбъект(), существует только в оперативной памяти и еще не имеет ссылки в базе данных (значение ТекущийДокумент() не определено). Если передать незаписанный объект в ОткрытьФорму(), платформа не сможет открыть его форму.

Чтобы открыть форму созданного программно документа, его необходимо предварительно записать в базу данных с помощью метода Записать(), после чего передать его ссылку в ОткрытьФорму():


ДокБронь = СоздатьОбъект("Документ.Бронь_Подрезки");
ДокБронь.Новый();
// Заполнение реквизитов документа
ДокБронь.Записать();

// Открытие формы уже сохраненного документа
ОткрытьФорму(ДокБронь.ТекущийДокумент(), Контекст);

Типичные ошибки и чек-лист для проверки

Разберем основные причины, по которым форма документа может не открываться:

  1. Ошибка в написании вида документа: Проверьте точное наименование вида документа в Конфигураторе (учитывая правильность букв и нижних подчеркиваний).
  2. Отказ в процедурах модуля формы: Выясним, нет ли в модуле открываемого документа в процедурах ПриОткрытии(), ВводНового() или ВводНаОсновании() команды СтатусВозврата(0), которая отменяет открытие формы.
  3. Права доступа: Проверьте, включены ли у текущего пользователя права на интерактивный ввод данного вида документа.
  4. Наличие формы по умолчанию: Убедитесь, что в Конфигураторе для данного документа назначена основная форма.
← На главную