Реклама на этом месте
Форум 1С
Форум 1С
Программистам. Бухгалтерам. Администраторам. Пользователям
Задай вопрос - получи решение проблемы. Без троллинга и флуда.
25 Сен 2020, 19:53
МультиВход
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Не получили письмо с кодом активации?
 
collapse

Автор Тема: 1С 8.2 Подружить процедуры &НаКлиенте &НаСервере  (Прочитано 19003 раз)

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

Оффлайн mauar

  • *
  • Сообщений: 8
  • РЕПУТАЦИЯ: 0
  • Регистрация: 2010-10-29
  • Сайт: 


Когда пытаюсь получить форму списка и сделать отбор по ней из другой формы или другого модуля
1С ругается Интерактивные операции недоступны
То же самое ругается и на администратора у него все роли включениы включая и интерактивные Интерактивное открытие внешних отчетов и обработок!

Получаю форму так
ФормаСписка=Документы.Договор.ПолучитьФормуСписка();

В чем тут у 8.2 подвох?

В принципе если её получать в процедуре с параматром &На клиенте то работает

&НаКлиенте
Процедура ОтобратьДоговоры(Режим) Экспорт     
     
  Договор=Документы.амбДоговорБухгалтерский;
  ФормаСписка=Договор.ПолучитьФормуСписка(ФормаСписка);

  Список=ФормаСписка.Список.Отбор.Элементы.Очистить();
  Если НЕ Режим = Неопределено Тогда
        ЭлементОтбора = Список.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));       
        ЭлементОтбора.ЛевоеЗначение  = Новый ПолеКомпоновкиДанных("Состояние");       
        ЭлементОтбора.ВидСравнения   = ВидСравненияКомпоновкиДанных.Равно;
        ЭлементОтбора.Использование  = Истина;
        ЭлементОтбора.ПравоеЗначение = Перечисления.амбСостояниеДоговоровПоБО[Режим];
  КонецЕсли;
КонецПроцедуры     


 

Но...  Есть ещё одна процедура у которой параметр &НаСервере

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

  КонецЕсли;
      КонецПроцедуры


 

Так вот собственно если вставить первую процедуру отбора у которой параметры  в последнюю процедуру запроса и сделать отбор по запросу
ОтобратьДоговоры(ВыборкаДетальныеЗаписи.Пользователь);


То 1С 8.2 будет очень сильно ругаться на запись что процедура такая не найдена.
ОтобратьДоговоры(ВыборкаДетальныеЗаписи.Пользователь);


Как можно подружить эти процедуры чтобы они сработали?  :wacko:


Оффлайн mohock

  • ***
  • Сообщений: 170
  • РЕПУТАЦИЯ: 50
  • КПД: 29%
  • Регистрация: 2010-08-12
  • Сайт: 
  • Профессия: Программист 8.1
Во второй процедуре где утебя вызов
   ОтобратьДоговоры(ВыборкаДетальныеЗаписи.Пользователь); 
заключи этот вызов в эти тэги На клиенте.


Оффлайн mauar

  • *
  • Сообщений: 8
  • РЕПУТАЦИЯ: 0
  • Регистрация: 2010-10-29
  • Сайт: 
И что, это ничего не даст сама процедура &НаСервере ,  как мы внутри этой процедуры можем прописать директиву &НаКлиенте, во первых система не запуститься, во вторых &НаСервере нельзя вызвать процедуру &НаКлиенте но надо, полюбому есть способ какой то, но какой....?

Оффлайн Vit1501

  • ****
  • Сообщений: 392
  • РЕПУТАЦИЯ: 65
  • КПД: 17%
  • Регистрация: 2010-06-05
  • Сайт: 
  • Профессия: Программист 1С
Тебе нужно продумать алгоритм работы программы. процедуры &наСервере выполняются на сервере где НЕ ДОСТУПНЫ графические объекты и методы. А процедуры &на Клиенте выполняются только на клиенте где не доступн данные БД, только контекст используемого модуля. Если тебе нужно открыть форму с отбором, то создай серверную процедуру, которая будет готовить условия отбора (например вернет тебе список ссылок которые нам нужно вывести) и клиентскую процедуру которая будет вызывать предыдущую серверную функцию и на основе возвращенных ей данных открывать форму и устанавливать в ней отбор. А еще тот метод открытия формы, который ты приводишь доступен только в толстом клиенте. В тонком клиенте можно воспользоваться функцией открытьформу() или ПолучитьФорму() (синтаксис и параметры посмотри в синтаксис помошнике).


Теги:
 

Необоходимо передать из модального окна в процедуру переменную как остановить выполнение процедуры до заполнения переменной

Автор WeidermailРаздел Конфигурирование, программирование в "1С - Предприятие 8"

Ответов: 1
Просмотров: 531
Последний ответ 21 Май 2019, 13:01
от Weidermail
помогите с решением задачи запуска процедуры между модулями разных объектов

Автор AlexbisРаздел Конфигурирование, программирование в "1С - Предприятие 8"

Ответов: 5
Просмотров: 814
Последний ответ 06 Ноя 2019, 16:47
от Alexbis
Как перенести значение переменных из одной процедуры(функции) в другую

Автор DobrolubovРаздел Конфигурирование, программирование в "1С - Предприятие 8"

Ответов: 6
Просмотров: 11405
Последний ответ 14 Мар 2012, 22:58
от sadovod
Управляемый интерфейс.Как из серверной процедуры открыть форму объекта?

Автор ZhuravlevASРаздел Конфигурирование, программирование в "1С - Предприятие 8"

Ответов: 2
Просмотров: 9356
Последний ответ 06 Окт 2014, 10:22
от ZhuravlevAS
Допечатать что-либо в табличный документ, передаваемый как параметр процедуры

Автор VdegРаздел Конфигурирование, программирование в "1С - Предприятие 8"

Ответов: 2
Просмотров: 1875
Последний ответ 24 Май 2016, 12:46
от Vdeg

* Живое общение

Не устроил ответ?

Зарегистрируйся и задай свой вопрос. Живое общение приносит результат намного быстрее.


Зарегистрироваться

* Реклама

* Поиск

* Последние задачи на разработку (фриланс)

* Реклама

* Последние вакансии

* Топ 10 авторов за месяц

Геннадий ОбьГЭС Геннадий ОбьГЭС
71 Сообщений
oooo800
39 Сообщений
LexaK
32 Сообщений
Дмитрий Джей Дмитрий Джей
29 Сообщений
IL2016
28 Сообщений
antoneus antoneus
26 Сообщений
DmitriyF DmitriyF
18 Сообщений
Ann_
16 Сообщений
мадам брошкина
13 Сообщений
SoOliateR
13 Сообщений

* Кто онлайн

  • Точка Гостей: 220
  • Точка Скрытых: 0
  • Точка Пользователей: 5
  • Точка Сейчас на форуме:

* Облако тэгов

* Форум 1С с мобильного

* Инструменты

* Дополнительно

Поиск

 
SimplePortal 2.3.5 © 2008-2012, SimplePortal