Форум 1С
Программистам, бухгалтерам, администраторам, пользователям
Задай вопрос - получи решение проблемы
29 ноя 2024, 01:45

Задать вопрос из серверной процедуры в УФ

Автор Новенькая, 30 окт 2012, 15:33

0 Пользователей и 1 гость просматривают эту тему.

Новенькая

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


Пытаюсь ее соорудить на УФ. Пока получилось вот что...

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


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

с заданием вопроса не знаю что делать....подскажите, пожалуйста.....

cska-fanat-kz

&НаСервереБезКонтекста
Функция ПроверитьОрганизацию(Организация)

Запрос = Новый Запрос;
Запрос.УстановитьПараметр("ВидСвязи"  , Перечисления.ВидыСобственныхКонтрагентов.Организация);
Запрос.УстановитьПараметр("Основание" , Организация);

Запрос.Текст = "
|ВЫБРАТЬ
|   Контрагент
|ИЗ
|   РегистрСведений.СобственныеКонтрагенты 
|ГДЕ Объект     = &Основание
|    И ВидСвязи = &ВидСвязи";

Выборка = Запрос.Выполнить().Выбрать();

Если Выборка.Следующий() Тогда
Возврат Выборка.Контрагент;
Иначе
Возврат Справочники.Контрагенты.ПустаяСсылка();
КонецЕсли;

КонецФункции // ПроверитьОрганизацию()


&НаКлиенте
Процедура ПриОткрытии(Отказ)
   Если ТипЗнч(Параметры.Основание) = Тип("СправочникСсылка.Организации") Тогда
    
      КонтрагентПоОрганизации = ПроверитьОрганизацию(Параметры.Основание); 
     
      Если ЗначениеЗаполнено(КонтрагентПоОрганизации) Тогда
     
         Отказ = Истина;
         Ответ = Вопрос("Для данной организации уже существует контрагент. Открыть форму?",
         РежимДиалогаВопрос.ДаНет);
         Если Ответ = КодВозвратаДиалога.Да Тогда
            Форма = КонтрагентПоОрганизации.ПолучитьФорму("ФормаЭлемента");
            Форма.Открыть();
         КонецЕсли;
     
      КонецЕсли;
     
   КонецЕсли;
КонецПроцедуры



с "Если ТипЗнч(Параметры.Основание) = Тип("СправочникСсылка.Организации") Тогда" - большие сомнения.
отработает ли на клиенте. но тоже решаемо...
Получил помощь - скажи СПАСИБО.
Разобрался сам - расскажи другим.

Новенькая

Если ТипЗнч(Параметры.Основание) = Тип("СправочникСсылка.Организации") Тогда не отрабатывает на клиенте....Не знает, он что такое Параметры.Основание....Это тока ПриСозданииНаСервере я поняла можно получить

Теги:

Похожие темы (5)

Рейтинг@Mail.ru

Поиск