1С заполнить на основании программно

1С заполнить на основании программно

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

В этом случае достаточно просто передать параметр Основание в процедуру открытия формы:

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

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

Создать новый объект, и вызвать у него метод Заполнить(), в который передать значение, на основании которого должен быть создан этот объект.

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

Следует заметить, что событие ОбработкаЗаполнения есть не только у объектных данных (документов, справочников и т.п.), но и у регистра сведений, в модуле объекта РегистрСведенийНаборЗаписей. .

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

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

Конструктор позволяет вручную или автоматически заполнить выражения, которые будут записаны в поля результирующего объекта прикладного решения:

Результатом работы конструктора является готовая процедура на встроенном языке с именем ОбработкаЗаполнения() . Эта процедура располагается в модуле результирующего объекта конфигурации и будет вызвана системой при вводе этого объекта на основании другого объекта.

Для каждого типа объекта-основания формируется своя ветка условия Если , в которой происходит заполнение реквизитов нового документа.

Читайте также:  В каком году сняли фильм

Как выполнить ввод на основании программно?

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

При этом отработает процедура ОбработкаЗаполнения() в модуле объекта и те алгоритмы заполнения, которые в ней описаны.

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

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

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

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

ПараметрыФормы = Новый Структура("Основание", Объект.Ссылка);
ОткрытьФорму("Документ.ПриходТовара.ФормаОбъекта", ПараметрыФормы);

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

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

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

Следует заметить, что событие ОбработкаЗаполнения есть не только у объектных данных (документов, справочников и т.п.), но и у регистра сведений, в модуле объекта РегистрСведенийНаборЗаписей. .

Читайте также:  Как поменять глаза на фото

Подробнее о заполнении новых объектов данными можно посмотреть в вопросе "Как при открытии формы определить, что создается новый элемент?".

Ссылка на основную публикацию
Adblock detector