helpf.pro
Регистрация
 0 
Распечатать

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

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



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


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


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

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

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

КонецПроцедуры
Разместил:   Версии: | 8.x | 8.2 УП |  Дата:   Прочитано: 15274
 0 
Распечатать
Возможно, вас также заинтересует
Как заполнить табличную часть формы программно? 2
Нужно по кнопке Заполнить - сформировать данные для заполнения табличных частей и заполнить их. Форма имеет вид: Рядом с кнопкой Записать и закрыть добавлена кнопка Заполнить документ , код ее команды: // Код...
1C и Google Maps 12
была поставлена задача отображения на географической карте медицинских учреждений. После обзора предлагаемых решений был выбран сервис google. Но так же подобного рода подход будет работать и с картами сервиса yandex. Во...
1C: Enterprise Development Tools 35
И вот случилось долгожданное: Вышел 1C: Enterprise Development Tools - это среда для разработки конфигурации в IDE Eclipse. С сайта 1С: « 1C:Enterprise Development Tools » – это инструмент нового поколения для разработчиков бизнес-приложений систем
1С Предприятие что это? 6
Что такое 1С? 1С — это фирма , у которой одно из направлений деятельности — разработка программного обеспечения для автоматизации бизнес-процессов предприятий. « 1С:Предприятие » - конкретный продукт, который...
Cклонения по падежам 4
НаКлиенте Процедура Команда1(Команда) ФИО = " Иванов Иван Иванович" ; Падеж = 2; Пол = 1; Результат = СклонениеФИО(ФИО, Падеж, пол); Сообщить(Результат); КонецПроцедуры НаСервере Функция СклонениеФИО(ФИО, Падеж, пол) ...
Посмотреть все результаты поиска похожих
Комментарии
Jonsony
10.09.2013 14:44Комментарий: 4
Jonsony
-"Понятие ЭтоНовый() отсутствует в 8.2."
кхм, а это тогда что?
Код 1C v 8.2 УП
 	Если ЭтоНовый() 
И Не ЗначениеЗаполнено(Код) Тогда
УстановитьНовыйКод();
КонецЕсли;


УТ11.1 8.2 УП типовая

процедура "Процедура ПередЗаписью" в модуле Справочника Номенклатура
ovego
10.09.2013 02:30Комментарий: 3
ovego
Очень много вариантов решения и все очень интересны. И помогли мне. Спасибо всем!
faster
11.12.2012 10:57Комментарий: 2
faster
ИМХО для 8.2 нужно так:
Код 1C v 8.2 УП
 
&НаКлиенте
Процедура ПриОткрытии(Отказ)
ДокОбъект = РеквизитФормыВЗначение("Объект");
Если ДокОбъект.ЭтоНовый() Тогда
Сообщить("Создается новый объект");
КонецЕсли;
КонецПроцедуры
Asdam
12.09.2010 12:35Комментарий: 1
Asdam
ИМХО для 8.2 нужно так:
Код 1C v 8.2 УП
 
&НаКлиенте
Процедура ПриОткрытии(Отказ)
Если Объект.Ссылка.Пустая() Тогда
Сообщить("Создается новый объект");
КонецЕсли;
КонецПроцедуры
Вы не можете отправить комментарий анонимно, пожалуйста войдите или зарегистрируйтесь.