Как в параметры запроса передать текущую активную строку из формы списка?

1. arsen_botashev 14.03.19 09:15 Сейчас в теме
Здравствуйте, есть справочник, иерархический, открываю его форму списка, нажимаю на какую нибудь строку, и эту выбранную строку мне надо передать в параметры запроса? Запрос получает для этой активной строки всякие данные.

Наименование
Строка1
строка2
строка3

Вот, в зависимости от выбранной строки, надо передать ее в параметры запроса?
+
По теме из базы знаний
Найденные решения
9. SedovSU@mail.ru 297 14.03.19 11:39 Сейчас в теме
(6) Ну вот смотрите.

Делаете команду на форме списка. В модуле объекта у вас должна быть какая то экспортная процедура

&НаКлиенте
Процедура Команда(Команда)

	КомандаНаСервере();
	   
КонецПроцедуры

&НаСервере
Процедура КомандаНаСервере()
	
	ТекущаяСтрока = Элементы.Список.ТекущаяСтрока;
	Объект = ТекущаяСтрока.ПолучитьОбъект();
	Объект.ЧтоТоДелает(ТекущаяСтрока);
	
КонецПроцедуры
Показать


Процедура в модуле объекта

Процедура ЧтоТоДелает(СсылкаНаЭлемент)Экспорт
 /// ...........
КонецПроцедуры



Вот если просто то вот так
arsen_botashev; oleg-x; +2
12. SedovSU@mail.ru 297 14.03.19 14:17 Сейчас в теме
(10) Вот смотрите у вас должна быть функция которая проверяет можно ли редактировать объект или нет по ссылке на элемент справочника. Функция возвращает истина если может и ложь если нет.

Так вот, есть ваша процедура которая все проверяет
Функция РедактироватьМожно(СсылкаНаЭлемент)Экспорт
 ////// .... что то тут делается
 Если ..... Тогда
     Возврат Истина
 Иначе
      Возврат Ложь
Конец    
КонецФункция


Эту самую функция вы вызываете на форме списка. И эту жу функцию вызывайте в процедуре ПриЗаписи(Отказ)

Процедура ПриЗаписи(Отказ)
      Отказ = Не РедактироватьМожно(Ссылка)
КонецПроцедуры
arsen_botashev; +1
Остальные ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. SedovSU@mail.ru 297 14.03.19 09:22 Сейчас в теме
ТекущаяСтрока = ЭлементыФормы.СправочникСписок.ТекущаяСтрока;
ТекущиеДанные = ЭлементыФормы.СправочникСписок.ТекущиеДанные;
+
4. arsen_botashev 14.03.19 10:04 Сейчас в теме
(2)В модуле объекта можно так сделать?
+
5. SedovSU@mail.ru 297 14.03.19 10:13 Сейчас в теме
(4) в модуле объекта? нет! у вас же нету там списка формы. В модуль объекта вы можете передать эту строку
+
6. arsen_botashev 14.03.19 10:19 Сейчас в теме
(5)Получается в модуле формы списка получить текущую строку, и передать ее в модуль объекта, а затем в параметры запроса?
Текущую строку я ж буду получать на клиенте? Или это текущие данные получаются на клиенте? Выходит же ошибка что текущие данные не доступны на сервере.
Можете примерно сказать порядок действий? Если не сложно, спасибо!
+
9. SedovSU@mail.ru 297 14.03.19 11:39 Сейчас в теме
(6) Ну вот смотрите.

Делаете команду на форме списка. В модуле объекта у вас должна быть какая то экспортная процедура

&НаКлиенте
Процедура Команда(Команда)

	КомандаНаСервере();
	   
КонецПроцедуры

&НаСервере
Процедура КомандаНаСервере()
	
	ТекущаяСтрока = Элементы.Список.ТекущаяСтрока;
	Объект = ТекущаяСтрока.ПолучитьОбъект();
	Объект.ЧтоТоДелает(ТекущаяСтрока);
	
КонецПроцедуры
Показать


Процедура в модуле объекта

Процедура ЧтоТоДелает(СсылкаНаЭлемент)Экспорт
 /// ...........
КонецПроцедуры



Вот если просто то вот так
arsen_botashev; oleg-x; +2
10. arsen_botashev 14.03.19 14:10 Сейчас в теме
(9)Это все я сделал, Все работает, все проверяется, но, теперь в модуле объекта есть Процедура ПриЗаписи(Отказ)
Мне надо там вызвать эту функцию, и в зависимости от ее результата, ставить отказ = истина.
Но я не знаю что туда передавать в качестве параметра? Как мне быть?

или же надо вызвать процедуру из модуля формы в модуле объекта
+
12. SedovSU@mail.ru 297 14.03.19 14:17 Сейчас в теме
(10) Вот смотрите у вас должна быть функция которая проверяет можно ли редактировать объект или нет по ссылке на элемент справочника. Функция возвращает истина если может и ложь если нет.

Так вот, есть ваша процедура которая все проверяет
Функция РедактироватьМожно(СсылкаНаЭлемент)Экспорт
 ////// .... что то тут делается
 Если ..... Тогда
     Возврат Истина
 Иначе
      Возврат Ложь
Конец    
КонецФункция


Эту самую функция вы вызываете на форме списка. И эту жу функцию вызывайте в процедуре ПриЗаписи(Отказ)

Процедура ПриЗаписи(Отказ)
      Отказ = Не РедактироватьМожно(Ссылка)
КонецПроцедуры
arsen_botashev; +1
18. arsen_botashev 14.03.19 14:39 Сейчас в теме
(12)вроде Получилось, спасибо!!!
+
19. SedovSU@mail.ru 297 14.03.19 14:41 Сейчас в теме
(18) ну и отлично что все получилось
+
20. arsen_botashev 14.03.19 14:43 Сейчас в теме
11. arsen_botashev 14.03.19 14:16 Сейчас в теме
(9)
&НаСервере
Процедура КомандаНаСервере()

ТекущаяСтрока = Элементы.Список.ТекущаяСтрока;
Объект = ТекущаяСтрока.ПолучитьОбъект();
Объект.ЧтоТоДелает(ТекущаяСтрока);

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

Эту процедуру надо вызвать в модуле объекта, сделал Экспорт, не помогает.
+
14. SedovSU@mail.ru 297 14.03.19 14:24 Сейчас в теме
(11) у вас в модуле объекта должна вызываться процедура ЧтоТоДелает, она вызывается???
+
16. arsen_botashev 14.03.19 14:25 Сейчас в теме
(14)Да, но я не знаю какие туда параметры передавать, ведь я уже туда передал текущую строку?
+
7. arsen_botashev 14.03.19 10:23 Сейчас в теме
(5)Вообще опишу всю суть того, что надо сделать. может будет полезно.
В иерархическом справочнике, при создании группы, указывается своего рода ответственный за эту группу, ее подгруппы, и все подчиненные элементы.
Человек указанный в самой верхней группе, получает доступ на редактирование этих групп, элементов и тд.
и получается если человек выбрал какую то группу, надо эту группу(Строку) передать в параметры запроса, получить для этой группы ее самую верхнюю группу, проверить указан ли этот человек там в поле ответственый, если не указан, то не давать ему редактировать подгруппы и элементы.
+
3. SedovSU@mail.ru 297 14.03.19 09:24 Сейчас в теме
либо если через выбор

Форма = Справочники.Номенклатура.ПолучитьФормуВыбора();
ВыбранноеЗначение = Форма.ОткрытьМодально();
Если ЗначениеЗаполнено(ВыбранноеЗначение) Тогда
Запрос = Новый Запрос(...........)
Запрос.УстановитьПараметры("КакойТоРеквизит", ВыбранноеЗначение.КакойТоРеквизит);
КонецЕсли
+
8. oleg-x 26 14.03.19 10:54 Сейчас в теме
ЭлементыФормы доступны на сервере, но только из модуля формы. В модуле объекта на УФ не доступны
+
13. oleg-x 26 14.03.19 14:18 Сейчас в теме
В принципе, зачем Вам это все делать в модуле объекта, сделайте в модуле формы, там также есть перед записью.
+
15. arsen_botashev 14.03.19 14:24 Сейчас в теме
(13)Дело в том что, в справочнике нет формы элемента или формы группы, они генерируются сами, а создавать формы я не хочу, скорее нельзя даже.
Поэтому я, передаю в параметры функции текстроку из формы списка, и в модуле объекта ПриЗаписи(), Вызываю эту функцию, в зависимости от ее результата, не даю записывать. Вот собственно и все.
+
17. arsen_botashev 14.03.19 14:30 Сейчас в теме
Код В модуле формы:
&НаСервере
Процедура ПолучитьТекущуюСтроку()
	ТекущаяСтрока = Элементы.Список.ТекущаяСтрока;
	Объект = ТекущаяСтрока.ПолучитьОбъект();
	Объект.ВозможностьРедактированияУслуг(ТекущаяСтрока);
КонецПроцедуры


Функция в модуле объекта:
Функция ВозможностьРедактированияУслуг(СсылкаНаЭлемент)  экспорт
// Обработчик
КонецФункции



Процедура в модуле объекта в которой надо вызвать функцию " ВозможностьРедактированияУслуг(СсылкаНаЭлемент) "
Процедура ПриЗаписи(Отказ)
ВозможностьРедактированияУслуг(ЧтоСюдапередавать??????????);	
КонецПроцедуры

+
Внимание! Тема сдана в архив

Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот