Список выбора реквизита в зависимости от значения иного реквизита

1. Новичок1с 4 04.10.21 07:34 Сейчас в теме
Доброго утра.

Подскажите пожалуйста как можно реализовать такой момент.
1. На форме есть реквизит- организация, ЛС, счётчики

Как выбрать ЛС только для указанной организации??
2. Как сделать список выбора из справочника Счётчики только те счётчики, которые установленные для данного ЛС. (может быть несколько счётчиков)
Выбираем в выпадающем списке реквизита.

Не совсем понятно, как сделать этот отбор.


Смотрела, как реализована в конфигурации, к сожалению не понятно.
По теме из базы знаний
Ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. glek 119 04.10.21 07:37 Сейчас в теме
(1) Связи параметров выбора у реквизита на форме?
3. Новичок1с 4 04.10.21 07:45 Сейчас в теме
(2) Да, и вот не понятно, как установить эти связи.
4. glek 119 04.10.21 08:33 Сейчас в теме
(3) У свойства реквизита на форме ищете такое свойство. Выбираете свою организацию. Должность установиться что-то вроде "Отбор.Организация" - ваш реквизит с организаций и очищать.
5. STELEICE 04.10.21 09:04 Сейчас в теме
(1) отбор складов при выборе организации в документе перемещения



Процедура СкладПолучательНачалоВыбора(Элемент, СтандартнаяОбработка)

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

КонецПроцедуры
Показать
Новичок1с; provadyuga; +2 Ответить
6. Новичок1с 4 04.10.21 11:11 Сейчас в теме
(5)
Алекс, благодарю Вас за ответ и за подробное объяснение.
Я сейчас попробую.

Это я поняла, что вариант с открытие формы.
А как сделать список из выборки на реквизите??
9. STELEICE 04.10.21 14:20 Сейчас в теме
(6) с выпадающим списком я не пробовал. Там ограниченая функциональность поетому сделал отбором при открытии формы выбора. Если списко то вам нужно описывать отбор в другой процедуре( У меня в начале выбора)
7. Новичок1с 4 04.10.21 11:28 Сейчас в теме
(5)
Подскажите пожалуйста, в Вашем примере.

ФормаВыбора.ЭлементыФормы.СправочникСписок.НастройкаОтбора.Ссылка.Доступность = Ложь;


СправочникСписок- он откуда берётся??
8. STELEICE 04.10.21 14:18 Сейчас в теме
(7) В Форме документа есть выбор Организации. У каждой организации разные склады. При стандартной процедуре при нажатии на поле склад открывается форма выбора складов т.е всего справочника. Я же открываю эту форму уже с отбором по организации.
Т.Е. сначало идет поиск соответствия складов по организации данные выгружаются в СписокЗначений и уже этот список передается на форму выбора как условие отбора
10. STELEICE 04.10.21 14:22 Сейчас в теме
(7) в вашем случае нужно установить еще флаг быстрый выбор я так понимаю
11. Новичок1с 4 06.10.21 11:42 Сейчас в теме
Доброго утра.
Мне немного помогли и предложили такое решение.
Оно неплохо работает.


//**************************************************************************************************************
Функция ВернутьСписокВыбораСч(ВидУслуги, ЛС)
	
       ТЗСчётчик 	= Запрос.Выполнить().Выгрузить() ;
		
	СписокСчётчик= Новый СписокЗначений;
	Для Каждого СтрСч Из ТЗСчётчик Цикл
		СписокСчётчик.Добавить(СтрСч.Счётчик);
	КонецЦикла; //Каждого СтрЛС Из ТЗЛС Цикл
	
	Возврат СписокСчётчик
КонецФункции    // ВернутьСписокВыбораСч(ВидУслуги, Помещение
//**************************************************************************************************************
//Список счётчиков для заданного ЛС и вида услуги
&НаКлиенте
Процедура СчНачалоВыбора(Элемент, ДанныеВыбора, СтандартнаяОбработка)
	Если ЗначениеЗаполнено(Объект.ЛС) Тогда  
		СписокВыбора = ВернутьСписокВыбораСч(Объект.ВидУслуги, Объект.ЛС);
		Если НЕ СписокВыбора = Неопределено Тогда
			СтандартнаяОбработка = Ложь;
			ВыбранноеЗначение = ВыбратьИзСписка(СписокВыбора, Элемент); 
			
			Если ВыбранноеЗначение <> Неопределено Тогда 
				Объект.СтарыйИПУ = ВыбранноеЗначение.Значение;
			КонецЕсли;  //ВыбранноеЗначение <> Неопределено Тогда 
		КонецЕсли;//НЕ СписокВыбора = Неопределено Тогда
	Иначе
		Сообщить("Заполните ЛС!");
	КонецЕсли; // ЗначениеЗаполнено(Объект.Организация) Тогда  
	
КонецПроцедуры    //СчНачалоВыбора(Элемент, ДанныеВыбора, СтандартнаяОбработка)

//**************************************************************************************************************
Показать
Оставьте свое сообщение

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