1с создание документа на основании программно

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

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

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

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

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

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

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

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

Для этих целей существует два возможных сценария работы:

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

В первом сценарии проще всего использовать метод глобального контекста ОткрытьФорму() . Это можно сделать на клиенте. При этом создается новый документ и открывается для редактирования основная форма этого документа.

Если нужно какое-то предварительное заполнение документа начальными данными, то это можно сделать либо с помощью свойств реквизитов документа ЗначениеЗаполнения , ЗаполнятьИзДанныхЗаполнения либо в обработчике события документа ОбработкаЗаполнения .

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

Обучение программированию на 1С

Ввод на основании

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

Механизм «Ввод на основании» предполагает:

  • Создание на основании нового документа и открытие его формы
  • Заполнение реквизитов документа-приёмника из документа-источника (или другого объекта системы)
  • Другие программные операции с документом-приёмником.

Теперь, чтобы воспользоваться этим великолепным механизмом и не изобретать велосипед, нужно сделать следующее:
1. Открываем в конфигураторе документ-источник, переходим на вкладку «Ввод на основании» и добавляем необходимый документ-приёмник (или другой объект) в разделе «Является основанием для».

2. Затем в модуле документа-приёмника в процедуре «ОбработкаЗаполнения» программно заполняем те поля документа из документа-основания, которые хотим.

3. Обновляем конфигурацию, запускаем режим «1С Предприятия» и наслаждаемся результатом.

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

Оцените статью
Добавить комментарий