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

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

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

Оффлайн mauar

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


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

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

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

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

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

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


 

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

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

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


 

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


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


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


Оффлайн mohock

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


Оффлайн mauar

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

Оффлайн Vit1501

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


Теги:
 

Как перенести значение переменных из одной процедуры(функции) в другую

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

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

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

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

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

Ответов: 2
Просмотров: 893
Последний ответ 24 Май 2016, 12:46
от Vdeg
Экспорт процедуры из общего модуля в модуль формы

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

Ответов: 3
Просмотров: 3795
Последний ответ 26 Окт 2011, 13:07
от has
Вызов процедуры из модуля документа в модуле формы

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

Ответов: 6
Просмотров: 13461
Последний ответ 30 Сен 2016, 14:16
от Igor100500

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

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

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


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

* Реклама

Смотрите бесплатно более 300 видеоуроков по работе в 1С:Бухгалтерия 8 и 1C:ЗУП 8 ред. 3.0

СМОТРЕТЬ >>

* Поиск

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

* Реклама

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

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

Геннадий ОбьГЭС Геннадий ОбьГЭС
181 Сообщений
ilyay ilyay
75 Сообщений
oleg-x
51 Сообщений
alex0402
49 Сообщений
andron81_81
40 Сообщений
AIFrame
37 Сообщений
MuI_I_Ika MuI_I_Ika
34 Сообщений
BuhRust
30 Сообщений
Golickoff Golickoff
29 Сообщений
Dima Dddd Dima Dddd
26 Сообщений

* Кто онлайн

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

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

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

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

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

Поиск

 
SimplePortal 2.3.5 © 2008-2012, SimplePortal