Форма документа

1. user1255844 23.12.19 13:01 Сейчас в теме
Здравствуйте. В обычной форме документа список выбора подразделения происходит вот таким образом (код приложила). У подразделения есть реквизит - тип подразделения, в данном случае нужно чтобы он был равен значению перечисления (Перечисление.ТипПодразделения.СубПодряд). Выбрала это значение в запросе, но при нажатии кнопки открываются все равно все подразделения. Как это исправить?

Если Подразделение = ПолучитьЗначениеПоУмолчанию(глТекущийПользователь, "ОсновноеПодразделение")
Тогда

Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ
| НастройкиРабочихМест.Значение КАК Значение,
| Подразделения.Ссылка КАК Ссылка,
| НастройкиРабочихМест.ОбъектНастройки КАК ОбъектНастройки
|ИЗ
| РегистрСведений.НастройкиРабочихМест КАК НастройкиРабочихМест
| ЛЕВОЕ СОЕДИНЕНИЕ Справочник.Подразделения КАК Подразделения
| ПО НастройкиРабочихМест.Значение = Подразделения.Родитель
|ГДЕ
| (НастройкиРабочихМест.ОбъектНастройки = ЗНАЧЕНИЕ(ПланВидовХарактеристик.НастройкиРабочихМест.РазрешитьРедактированиеРеквизитаПодразделениеОформленияНаГру­ппу)
| ИЛИ НастройкиРабочихМест.ОбъектНастройки = ЗНАЧЕНИЕ(ПланВидовХарактеристик.НастройкиРабочихМест.РазрешитьРедактированиеРеквизитаПодразделениеВыполненияУслуг­НаГруппу)
| И (НастройкиРабочихМест.Пользователь = &Пользователь
| ИЛИ НастройкиРабочихМест.Пользователь В (&Группа))
| И НЕ НастройкиРабочихМест.Значение = ЗНАЧЕНИЕ(Справочник.Подразделения.ПустаяСсылка))
| И НастройкиРабочихМест.Значение.ТипПодразделения = ЗНАЧЕНИЕ(Перечисление.ТипПодразделения.СубПодряд)
|ИТОГИ ПО
| ОбъектНастройки,
| НастройкиРабочихМест.Значение.ТипПодразделения КАК ТипПодразделения";

Запрос.УстановитьПараметр("Пользователь", Пользователи.ТекущийПользователь());
Запрос.УстановитьПараметр("Группа", ПараметрыСеанса.ГруппыТекущегоПользователя);

Результат = Запрос.Выполнить();
РезультатДерево = Результат.Выгрузить(ОбходРезультатаЗапроса.ПоГруппировкам);


Для каждого Строка1гоУровня из РезультатДерево.Строки Цикл

Таблица = Строка1гоУровня.Строки;

Если Строка1гоУровня.ОбъектНастройки = ПланыВидовХарактеристик.НастройкиРабочихМест.РазрешитьРедактированиеРеквизитаПодразделениеВыполненияУслуг­НаГруппу Тогда
ЭлементыФормы.ПодразделениеВыполненияУслуги.Доступность = Истина;

ЭлементыФормы.ПодразделениеВыполненияУслуги.КнопкаСпискаВыбора = Истина;
ЭлементыФормы.ПодразделениеВыполненияУслуги.СписокВыбора.ЗагрузитьЗначения(Таблица.ВыгрузитьКолонку("Ссылка"));
ЭлементыФормы.ПодразделениеВыполненияУслуги.КнопкаВыбора = Ложь;

ьЗначения(Таблица.ВыгрузитьКолонку("Ссылка"));
ЭлементыФормы.ПодразделениеОформленияИнтернетЗаказа.КнопкаВыбора = Ложь

КонецЕсли;
По теме из базы знаний
Ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. TonyaKhomich 5 23.12.19 13:11 Сейчас в теме
Если это событие начало выбора из списка, то не хватает сточки СтандартнаяОбработка = Ложь;
3. DanDy 52 23.12.19 13:14 Сейчас в теме
либо у элемента формы РежимВыбораИзСписка=Истина
4. user1255844 23.12.19 13:57 Сейчас в теме
5. DanDy 52 23.12.19 14:00 Сейчас в теме
это какой обработчик? И какая версия платформы?
6. user1255844 23.12.19 14:02 Сейчас в теме
(5) используется при открытии, версия платформы 8.3
7. DanDy 52 23.12.19 14:10 Сейчас в теме
ЭлементыФормы.ПодразделениеВыполненияУслуги.РежимВыбораИзСписка = Истина;
8. DanDy 52 23.12.19 14:11 Сейчас в теме
9. user1255844 23.12.19 14:11 Сейчас в теме
(8) да, так не заработало
10. DanDy 52 23.12.19 14:11 Сейчас в теме
перед
ЭлементыФормы.ПодразделениеВыполненияУслуги.Доступность = Истина;
11. DanDy 52 23.12.19 14:11 Сейчас в теме
Что говорит отладчик?
12. user1255844 23.12.19 14:17 Сейчас в теме
(11)никакх ошибок, просто выводятся все подразделения, не смотря на его тип
13. DanDy 52 23.12.19 14:47 Сейчас в теме
(12)никаких обработчиков на этом поле больше нет?
может там при начале выбора есть обработчик
проверьте свойства элемента формы
14. user1255844 23.12.19 16:04 Сейчас в теме
(13) больше нет. Очень странно , что даже данные с запроса не выгружаются, когда ставишь
ЭлементыФормы.ПодразделениеВыполненияУслуги.СписокВыбора.ЗагрузитьЗначения(Таблица.ВыгрузитьКолонку("Ссылка"));
15. DanDy 52 23.12.19 16:10 Сейчас в теме
(14) ну тогда запрос проверять в консольке... Не очень понимаю для чего требовалось делать дерево...
16. user1255844 23.12.19 16:18 Сейчас в теме
(15) запрос выгружает все правильно, а вот дальше непонятно мне что делать. Просто код не я писала(
17. DanDy 52 23.12.19 16:19 Сейчас в теме
попробуйте так

Если Подразделение = ПолучитьЗначениеПоУмолчанию(глТекущийПользователь, "ОсновноеПодразделение") Тогда

	Запрос = Новый Запрос;
	Запрос.Текст =
	"ВЫБРАТЬ
	| НастройкиРабочихМест.Значение КАК Значение,
	| Подразделения.Ссылка КАК Ссылка,
	| НастройкиРабочихМест.ОбъектНастройки КАК ОбъектНастройки
	|ИЗ
	| РегистрСведений.НастройкиРабочихМест КАК НастройкиРабочихМест
	| ЛЕВОЕ СОЕДИНЕНИЕ Справочник.Подразделения КАК Подразделения
	| ПО НастройкиРабочихМест.Значение = Подразделения.Родитель
	|ГДЕ
	| (НастройкиРабочихМест.ОбъектНастройки = ЗНАЧЕНИЕ(ПланВидовХарактеристик.НастройкиРабочихМест.РазрешитьРедактированиеРеквизитаПодразделениеОформленияНаГру­­ппу)
	| ИЛИ НастройкиРабочихМест.ОбъектНастройки = ЗНАЧЕНИЕ(ПланВидовХарактеристик.НастройкиРабочихМест.РазрешитьРедактированиеРеквизитаПодразделениеВыполненияУслуг­­НаГруппу)
	| И (НастройкиРабочихМест.Пользователь = &Пользователь
	| ИЛИ НастройкиРабочихМест.Пользователь В (&Группа))
	| И НЕ НастройкиРабочихМест.Значение = ЗНАЧЕНИЕ(Справочник.Подразделения.ПустаяСсылка))
	| И НастройкиРабочихМест.Значение.ТипПодразделения = ЗНАЧЕНИЕ(Перечисление.ТипПодразделения.СубПодряд)";

	Запрос.УстановитьПараметр("Пользователь", Пользователи.ТекущийПользователь());
	Запрос.УстановитьПараметр("Группа", ПараметрыСеанса.ГруппыТекущегоПользователя);

	Результат = Запрос.Выполнить().Выгрузить();

	Парам=Новый Структура;
	Парам.Вставить("ОбъектНастройки",ПланыВидовХарактеристик.НастройкиРабочихМест.РазрешитьРедактированиеРеквизитаПодразделениеВыполненияУслуг­­НаГруппу);
	ТзНужныхЗначений=Результат.Скопировать(Парам);

	Если ТзНужныхЗначений.Количество()>0 Тогда
		ЭлементыФормы.ПодразделениеВыполненияУслуги.РежимВыбораИзСписка = Истина;
		ЭлементыФормы.ПодразделениеВыполненияУслуги.Доступность = Истина;
		ЭлементыФормы.ПодразделениеВыполненияУслуги.КнопкаСпискаВыбора = Истина;
		Для Каждого СтрСсылка из ТзНужныхЗначений цикл
			ЭлементыФормы.ПодразделениеВыполненияУслуги.СписокВыбора.ДобавитьЗначение(СтрСсылка.Ссылка);
		КонецЦикла;
		ЭлементыФормы.ПодразделениеВыполненияУслуги.КнопкаВыбора = Ложь;
		ЭлементыФормы.ПодразделениеОформленияИнтернетЗаказа.КнопкаВыбора = Ложь
	КонецЕсли;
	
КонецЕсли;
Показать
18. DanDy 52 23.12.19 16:21 Сейчас в теме
и да только заметил у вас в конце вот такое есть


ЭлементыФормы.ПодразделениеВыполненияУслуги.КнопкаВыбора = Ложь;
ЭлементыФормы.ПодразделениеОформленияИнтернетЗаказа.КнопкаВыбора = Ложь;

Проверьте, тот ли элемент смотрите, для которого устанавливается список
19. user1255844 23.12.19 16:26 Сейчас в теме
(18) ЭлементыФормы.ПодразделениеОформленияИнтернетЗаказа.КнопкаВыбора это я случайно скопировала
20. DanDy 52 23.12.19 16:59 Сейчас в теме
Воспользуйтесь отладчиком, проверьте все ли свойства элемента формы устанавливаются корректно.
Если да, то создайте свой обработчик "НачалоВыбора" (именно его а не "НачалоВыбораИзСписка" т.к. с какой-то версии платформы 8.3 он более не вызывается и существует только для совместимости со старыми версиями) и проверьте значения свойств при входе в этот обработчик
21. sophie10 23.12.19 17:15 Сейчас в теме
А у вас самое первое условие выполняется?
Если Подразделение = ПолучитьЗначениеПоУмолчанию(глТекущийПользователь, "ОсновноеПодразделение")
22. DanDy 52 23.12.19 17:30 Сейчас в теме
(21)
оно же зависит от настроек пользователя, да и писали что запрос выгружает всё корректно. Значит выполняется
23. user1255844 24.12.19 15:17 Сейчас в теме
(22)спасибо большое за советы! Оказывается были проблемы с настройками пользователя
24. DanDy 52 26.12.19 11:57 Сейчас в теме
(23) Да не за что. Всегда знал что если что-то должно работать, но не работает ищи косяк в самом элементарном.
Оставьте свое сообщение

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