1с как проверить новый документ или нет
Перейти к содержимому

1с как проверить новый документ или нет

  • автор:

Новый документ или нет — Как проверить в УФ?

В событии формы ПриСозданииНаСервере() Хочу проверить, новый это документ или нет. Объект.ЭтоНовый() — не работает..

&НаСервере
Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)
Если Объект.ЭтоНовый() Тогда // проверить объект на то, что он еще не внесен в ИБ

————
<Документ.Страхование.Форма.ФормаДокументаУпр.Форма(813)>: Метод объекта не обнаружен (ЭтоНовый)
Если Объект.ЭтоНовый() Тогда // проверить объект на то, что он еще не внесен в ИБ

Как при открытии формы определить, что создается новый элемент?

Необходимость в определении того, что создается новый элемент, возникает тогда, когда новый элемент нужно предварительно заполнить какими-то данными. Все действия, которые разработчику требуется сделать при создании нового объекта, должны быть выполнены на сервере.

Причем действия с данными самого объекта и действия с внешним видом его формы должны быть разделены. Действия с данными нужно выполнять в самом объекте, а внешним видом формы нужно управлять уже в форме, но в серверной процедуре.

Кроме этого могут понадобиться и другие действия при открытии формы, например открыть связанную форму, выдать предупреждение и т.д., которые нельзя сделать на сервере — их нужно выполнять в форме, но уже в клиентской процедуре.

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

Прежде всего, при заполнении нового объекта данными, можно попробовать обойтись вообще без написания какого-либо кода. Для этого у реквизитов объектов конфигурации есть свойства ЗначениеЗаполнения и ЗаполнятьИзДанныхЗаполнения . Эти свойства позволяют визуально (в конфигураторе) задать правила, по которым реквизит будет заполняться данными при создании нового объекта.

Если этих возможностей недостаточно, то тогда нужно использовать возможности встроенного языка.

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

  • при интерактивном создании нового объекта
  • при вводе на основании
  • при выполнении метода объекта Заполнить()

При этом параметр ДанныеЗаполнения , передаваемый в этот обработчик, может иметь различные значения в зависимости от того, каким образом создается новый элемент. Например, он может иметь тип Ссылка , если новый объект вводится на основании. Или он может иметь тип Структура , если новый объект создается интерактивной командой из списка, в котором установлен отбор. В этом случае структура будет содержать значения элементов отбора этого списка. Также этот параметр может иметь тип Неопределено , если новый элемент создается интерактивной командой из панели действий.

Что касается внешнего вида формы нового объекта, то им нужно управлять в обработчике события формы ПриСозданииНаСервере . Это событие возникает и для новых, и для существующих объектов. Поэтому в нем нужно убедиться в том, что открывается форма именно нового объекта. Убедиться в этом можно проанализировав параметр формы Ключ . Если объект новый, в этом параметре будет пустая ссылка. Если это существующий объект — в этом параметре будет ссылка на этот объект:

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

1с как проверить новый документ или нет

  • Главная
  • 1С Предприятие
  • Программирование 1С
  • 1С. Документ-объект, процедура "При записи". Как понять, что записывается новый объект. Использование конструкции "Дополнительные свойства".

1С. Документ-объект, процедура "При записи". Как понять, что записывается новый объект. Использование конструкции "Дополнительные свойства".

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

Понять, что записываемый документ — новый, можно в процедуре ПередЗаписью . Здесь у документа ещё нет ссылки. Это и есть признак того, что документ новый.

А далее мы передадим этот признак туда, где он нам нужен. В процедуру ПриЗаписи или ОбработкаПроведения .

Для передачи воспользуемся конструкцией встроенного языка 1С: ДополнительныеСвойства.

Вот что об этой конструкции говорит встроенная справка платформы 1С:

Может использоваться в тех случаях, когда необходимо хранить некоторые значения, связанные с объектом, на время выполнения некоторых операций, без изменения объекта. Например, при обработке событий в подписке на события.

Итак, в нашем случае мы реализуем передачу дополнительного свойства таким образом:

Структура ДополнительныеСвойства будет доступна в процедурах ПриЗаписи и ОбработкаПроведения .

Проверка на новый документ

Проводка на новый незаписанный документ
Покажите пример как записать проводку на ещё не записанный документ.

Новый документ
Такое вот легенькое задание есть тест в нем можно ввести фамилию и группу, как мне сохранить.

Новый документ
Создаю новый документ, в котором есть экшен с таким кодом: Dim ws As New NotesUIWorkspace Dim db.

спасибо за помощь я уже разобралась с проблемой, не могли бы помочь с другой

Новый документ не пустой
Доброго времени суток! Проблема в следующем: при создании нового документ он оказывается не пустой.

Загрузить Новый Документ
Подозреваю, что всё очень просто, но что-то я застрял. Есть xp:panel с датасоурсом: .

Переименовать новый word-документ
Здравствуйте. Создаю новый документ: WDoc = WApp.Documents.Add И затем отображаю word.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *