Каталог решений - Возврат параметра из обработки (1С:Предприятие 7.7)

Возврат параметра из обработки (1С:Предприятие 7.7)

Возврат параметра из обработки (1С:Предприятие 7.7)

В наличии

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

Категория:

Описание

Наверное, многие, кто занимался разработкой прикладных решений на платформе 1С:Предприятие 7.7, сталкивались со следующей задачей: в процессе выполнения кода нужно открыть обработку, передать в неё параметр и получить результат её работы, в виде возвращаемого параметра. С передачей параметра в обработку никаких проблем не возникает, как следует из документации:

ОткрытьФормуМодально(«Обработка.МояОбработка»,Параметр);

А вот с возвратом параметра у многих бывают затруднения. Одним из способов является возврат параметра через глобальную переменную, но в данной статье я опишу более изящный и неочевидный способ. В документации сказано что переданный в форму параметр будет доступен в открытой форме(обработки, отчета) через форма.параметр, но нигде не описан такой немаловажный факт, что через эту же самую конструкцию, т.е форма.параметр обработка может вернуть любой параметр в тот же модуль из которого она была вызвана! Для этого достаточно в модуле формы обработки перед ее закрытием выполнить

форма.параметр=»ВозвращаемыйПараметр»;

В качестве примера приведу простую обработку проверки пароля:

Вызов из программного модуля:

……..

ПравильныйПароль = «12345»;
ОткрытьФормуМодально(«Обработка.Авторизация»,ПравильныйПароль);
Если (ПравильныйПароль=0) Тогда
     Сообщить(«Не угадали»);
     Возврат;
КонецЕсли;

……..

Обработка Авторизация:

// Пароль — поле ввода на форме

// На форме имеются две кнопки, их обработчики — процедуры Ок() и Отмена()

// Модуль формы обработки

Перем ПравильныйПароль;

Процедура ПриОткрытии()
    ПравильныйПароль=Форма.Параметр;
    Форма.Параметр=0;
КонецПроцедуры

Процедура Ок()
    Если (СокрЛП(Пароль)=ПравильныйПароль) Тогда
        Форма.Параметр=1;
        Форма.Закрыть(0);
    Иначе
        Пароль=»»;
        Предупреждение(«Неверный пароль !»);
        Активизировать(«Пароль»,1);
    КонецЕсли;
КонецПроцедуры

Процедура Отмена()
    Форма.Закрыть(0);
КонецПроцедуры

 

Источник: http://www.obrabotki.com/1s-returnvalue77/

has been added to your cart:
Оформление заказа