Иллюстрированный самоучитель по языку системы 1С:Предприятие

Предопределенные процедуры Модуля формы документа

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

Предопределенная процедура при вводе нового документа на основании.

Синтаксис:

ВводНаОсновании(<ДокументОснование>)

Англоязычный синоним:

InputCausedBy

Параметры:

<ДокументОснование> Значение документа, на основании которого вводится новый документ.

Описание:

Вызов процедуры ВводНаОсновании производится в системе 1С:Предприятие неявно после выбора пункта меню "Действия" – "Ввести на основании". В этот момент система подставляет фактическое значение параметра <ДокументОснование>, содержащее документ, на котором находился курсор в момент выполнения данной команды.

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

Процедуру ВводНаОсновании можно размещать только в Модулях форм документов (см. "Виды программных модулей").

Пример:

Процедура ВводНаОсновании(ДокОснование)

Если (ДокОснование.Вид() = "ПриходнаяРеализ")

ИЛИ ДокОснование.Вид() = "РасходнаяРеализ") Тогда

ПризнакРеализатора = Перечисление.ПризнакиРеализаторов.Реализатор_Клиент;

ДатаДок = РабочаяДата();

Валюта = Константа.БазоваяВалюта;

Валюта.ИспользоватьДату(ДатаДок);

Дата_Курса = ДокОснование.Дата_Курса;

Курс = ДокОснование.Курс;

НДС = ДокОснование.НДС;

СН = ДокОснование.СН;

Фирма = ДокОснование.Фирма;

Основание = "" + ДокОснование + " от " + ДокОснование.ДатаДок;

ДокОснование.ВыбратьСтроки();

Пока ДокОснование.ПолучитьСтроку() = 1 Цикл

НоваяСтрока();

Товар = ДокОснование.Товар;

Цена = ДокОснование.Цена;

Единица = ДокОснование.Единица;

Коэффициент = ДокОснование.Коэффициент;

Количество = ДокОснование.Количество;

Сумма = ДокОснование.Сумма;

КонецЦикла;

Иначе

Предупреждение("Этот Документ можно вводить только на основании

|накладных по реализации!");

ВводНового();

КонецЕсли;

Валюта_Прежн = Валюта;

Курс_Прежн = Курс;

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

См. также: СтатусВозврата.

Если Вы заметили ошибку, выделите, пожалуйста, необходимый текст и нажмите CTRL + Enter, чтобы сообщить об этом редактору.