HelpF.pro

Как при открытии формы определить что создается НОВЫЙ элемент?

Код 1C v 8.х
 ЭтоНовый()   



Понятие ЭтоНовый() отсутствует в 8.2.
Поэтому при необходимости определить, что создается новый элемент можно использовать следующую особенность управляемой формы.
Как правило, любая управляемая форма содержит в себе реквизит "Объект", поэтому при интерактивном создании нового элемента, Объект.ссылка не заполнено!
Исходя из этой особенности, можем прописать приОткрытии() управляемой формы следующее:
Код 1C v 8.2 УП
 &НаКлиенте
Процедура ПриОткрытии(Отказ)
Если не ЗначениеЗаполнено(Объект.Ссылка) тогда
Отказ=Истина;
Форма = ПолучитьФорму("Справочник.НашСправочник.Форма.ФормаНовогоЭлемента",,этаформа);
ОткрытьФорму(Форма);
КонецЕсли;
КонецПроцедуры


При использовании параметра Ключ:
Код 1C v 8.2 УП
 
Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)
Если Параметры.Ключ.Пустая() Тогда
Сообщить("Создается новый объект");
КонецЕсли;
КонецПроцедуры


Также Параметр "Ключ" надо использовать для программного открытия существующей формы. Пример:
Код 1C v 8.2 УП
 НаКлиенте
Процедура ОткрытьФормуЭлемента(Команда)

СсылкаНаЭлементСправочника = Элементы.Список.ТекущаяСтрока;
ПараметрыФормы = Новый Структура("Ключ", СсылкаНаЭлементСправочника );

ОткрытьФорму("Справочник.Организации.ФормаОбъекта", ПараметрыФормы);

КонецПроцедуры

Опубликовано на сайте: https://HelpF.pro
Прямая ссылка: https://HelpF.pro/faq8/view/869.html