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

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 Сейчас в теме
Код В модуле формы:
&НаСервере
Процедура ПолучитьТекущуюСтроку()
	ТекущаяСтрока = Элементы.Список.ТекущаяСтрока;
	Объект = ТекущаяСтрока.ПолучитьОбъект();
	Объект.ВозможностьРедактированияУслуг(ТекущаяСтрока);
КонецПроцедуры


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



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

Оставьте свое сообщение
Вакансии
1С аналитик
Москва
зарплата от 210 000 руб.
Полный день

Руководитель направления 1С
Москва
зарплата от 350 000 руб.
Полный день

1С Программист
Москва
зарплата от 180 000 руб.
Полный день

Программист 1С
Москва
зарплата от 180 000 руб. до 220 000 руб.
Полный день

Аналитик 1С / Бизнес-аналитик
Нижний Новгород
зарплата от 100 000 руб. до 250 000 руб.
Временный (на проект)