1. ArBot 14.03.19 09:15 Сейчас в теме

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

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

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

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

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

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

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

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


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

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



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

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


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

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

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

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

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

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


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

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



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

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

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


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

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

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

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

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

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


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



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

Оставьте свое сообщение
Новые вопросы с вознаграждением
Автор темы объявил вознаграждение за найденный ответ, его получит тот, кто первый поможет автору.

Вакансии

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

Программист 1С
Волгоград
зарплата от 45 000 руб. до 90 000 руб.
Полный день

Автор новостных обзоров на тему 1С и бухучета
Санкт-Петербург
По совместительству

Консультант-аналитик 1С
Москва
зарплата от 70 000 руб. до 100 000 руб.
Полный день

Программист 1С
Москва
зарплата от 80 000 руб. до 120 000 руб.
Временный (на проект)