Имя: Пароль:
1C
 
Как передать ссылку в процедуру из функции для дальнейшего заполнения новой форму
0 Varlant1n
 
15.01.21
10:44
Здравствуйте, ребята! Есть функция. Написал ее, не знаю насколько правильно, но по идее должно быть так. Эта функция проверят на наличие документа у менеджера. Если документа нет, то делает предупреждение, если же документ есть, то функция должна вернуть значение ссылки в процедуру, открыть форму и передать эту ссылку в данную форму. Код формы пока не написал, но хотя бы до этого момента нужна помощь. Посмотрите, пожалуйста, правильно ли я написал фукнцию. И как мне через процедуру получить возврат?

Функция МенеджерПриИзмененииНаСервере(Менеджер)
    Запрос = Новый Запрос;
    Запрос.Текст =
    "ВЫБРАТЬ
    |    ЗаданиеМенеджера.Ссылка КАК Ссылка
    |ИЗ
    |    Документ.ЗаданиеМенеджера КАК ЗаданиеМенеджера
    |ГДЕ
    |    ЗаданиеМенеджера.Проведен = ИСТИНА
    |    И НАЧАЛОПЕРИОДА(ЗаданиеМенеджера.Дата, ДЕНЬ) = НАЧАЛОПЕРИОДА(&ТекущаяДата, ДЕНЬ)
    |    И ЗаданиеМенеджера.Менеджер = &Менеджер
    |
    |УПОРЯДОЧИТЬ ПО
    |    ЗаданиеМенеджера.НомерРейса УБЫВ";
    Запрос.УстановитьПараметр("Менеджер", Менеджер);
    Запрос.УстановитьПараметр("ТекущаяДата", ТекущаяДата());
    РезультатЗапроса = Запрос.Выполнить();
    Выборка = РезультатЗапроса.Выбрать();
    Если Выборка.Следующий() Тогда
        Возврат Документы.ЗаданиеМенеджера.Ссылка;
    Иначе
        Возврат Документы.ЗаданиеМенеджера.ПустаяСсылка();
    КонецЕсли;
КонецФункции


Процедура МенеджерПриИзменении(Элемент)
    Если ЗначениеЗаполнено(Объект.Менеджер) Тогда
        ????????????????????????????????
    КонецЕсли;
КонецПроцедуры
1 alkorolev
 
15.01.21
10:57
если правильно тебя понял,то

Процедура МенеджерПриИзменении(Элемент)
    Если ЗначениеЗаполнено(Объект.Менеджер) Тогда
        Результат = МенеджерПриИзмененииНаСервере(Объект.Менеджер);
        Если ЗначениеЗаполнено(Результат) Тогда
            ПоказатьЗначение(, Результат);
        Иначе
            ПоказатьПредупреждение(, "Нет документа");
        КонецЕсли;
    КонецЕсли;
КонецПроцедуры
2 Varlant1n
 
15.01.21
11:02
(1) По идее, да, проверю щас. А в самой функции, я правильно сделал возврат? Извиняюсь за тупость, учусь только.
3 alkorolev
 
18.01.21
10:08
(2)  Если Выборка.Следующий() Тогда
        Возврат Выборка.Ссылка;
    Иначе
        Возврат Документы.ЗаданиеМенеджера.ПустаяСсылка();
    КонецЕсли;
Есть два вида языков, одни постоянно ругают, а вторыми никто не пользуется.