• 🔥 Бесплатный курс от Академии Кодебай: «Анализ защищенности веб-приложений»

    🛡 Научитесь находить и использовать уязвимости веб-приложений.
    🧠 Изучите SQLi, XSS, CSRF, IDOR и другие типовые атаки на практике.
    🧪 Погрузитесь в реальные лаборатории и взломайте свой первый сайт!
    🚀 Подходит новичкам — никаких сложных предварительных знаний не требуется.

    Доступ открыт прямо сейчас Записаться бесплатно

7.7 Открытие формы отчета с параметрами

  • Автор темы Автор темы olga13
  • Дата начала Дата начала
O

olga13

Добрый день! Подскажите, пожалуйста, как определить, какое значение передается в "Форма.Параметр"? У меня в одном случае это может быть документ, а в другом отчет. Соответственно, и имена реквизитов, передаваемых в параметрах, разные. Иными словами, как проверить, что Форма.Параметр это "Отчет"?
 
ТипЗначения() пробовала, он почему-то всегда 100, и для документа тоже.
 
Код:
Процедура ПриОткрытии() 
Если ПустоеЗначение(Форма.Параметр) = 0 Тогда
Если ТипЗначенияСтр(Форма.Параметр) = "ГрупповойКонтекст" Тогда
Контрагент = Форма.Параметр.Клиент; 
Фирма = Константа.ОснФирма;
ЦФУ = Форма.Параметр.ЦФУ;
Дата1 = Форма.Параметр.Дата1;
Дата2 = Форма.Параметр.Дата2;
Валюта = Константа.ОсновнаяВалютаБухг;
ИначеЕсли (Форма.Параметр.Вид() = "РасходнаяКредит") или (Форма.Параметр.Вид() = "Счет") Тогда
Контрагент = Форма.Параметр.Контрагент; 
Фирма = Константа.ОснФирма;
ЦФУ = Форма.Параметр.ЦФУ;
Дата1 = НачМесяца(Форма.Параметр.ДатаДок);
Дата2 = КонМесяца(Форма.Параметр.ДатаДок);
Валюта = Форма.Параметр.Валюта;
КонецЕсли;
КонецЕсли;
КонецПроцедуры

На ИначеЕсли выполнение не идет и в случае открытия из документа выдает ошибку.
 
ТипЗначенияСтр(Форма.Параметр) = "ГрупповойКонтекст" всегда при передаче в качестве параметра формы документа, справочника, отчета.
Что отличить одно от другого я делаю:
ЭтоДок = 1; // признак Дока
Попытка
Д = Форма.Параметр.ДатаДок;
Исключение
ЭтоДок = 0;
КонецПопытки;
 
Усе буде добра.
Форма тоже имеет этот параметр.
 
ТипЗначенияСтр(Форма.Параметр) = "ГрупповойКонтекст" всегда при передаче в качестве параметра формы документа, справочника, отчета.
Что отличить одно от другого я делаю:
ЭтоДок = 1; // признак Дока
Попытка
Д = Форма.Параметр.ДатаДок;
Исключение
ЭтоДок = 0;
КонецПопытки;

Спасибо за подсказку
 
Мы в соцсетях:

Взломай свой первый сервер и прокачай скилл — Начни игру на HackerLab