Выбор только тех автомобилей, которые относятся к данному клиенту

1. user2084919 14.05.24 16:04 Сейчас в теме
Имеется справочник "Клиенты" с табличной частью "Автомобиль" с такими полями как "Наименование", "НомерДоговора", "Количество". Имеется документ "ОказаниеУслуг" с полями на форме "Клиент" (СправочникСсылка.Клиенты) и "Автомобиль" (СправочникСсылка.Автомобили). Необходимо при выборе клиента из справочника в поле "Автомобиль" выводить список Автомобилей принадлежащих данному клиенту для дальнейшего выбора.
По теме из базы знаний
Найденные решения
4. Natoriys 14.05.24 20:19 Сейчас в теме
  //СЛУЖЕБНАЯ ПРОЦЕДУРА
  //Получаем список автомобилей клиента и загружаем их в список выбора
  &НаСервере
  Процедура СформироватьСписокАвтомобилейКлиентаНаСервере()
	  
	  Запрос = Новый Запрос;
	  Запрос.Текст = 
	  "ВЫБРАТЬ
	  |	КлиентыАвтомобили.Автомобиль КАК Автомобиль
	  |ИЗ
	  |	Справочник.Клиенты.Автомобили КАК КлиентыАвтомобили
	  |ГДЕ
	  |	КлиентыАвтомобили.Ссылка = &КлиентСсылка";
	  
	  Запрос.УстановитьПараметр("КлиентСсылка", Объект.Клиент);
	  
	  РезультатЗапроса = Запрос.Выполнить().Выгрузить();
	  
	  массАвтомобилейКлиента = РезультатЗапроса.ВыгрузитьКолонку("Автомобиль");
	  
	  //Очищаем переменную в объекте
	  Объект.Автомобиль = Справочники.Автомобили.ПустаяСсылка();
	  
	  //Очищаем список выбора и загружаем полученные значения
	  Элементы.Автомобиль.СписокВыбора.Очистить();
	  Элементы.Автомобиль.СписокВыбора.ЗагрузитьЗначения(массАвтомобилейКлиента);
	  
  КонецПроцедуры
  
  
  //ОБРАБОТЧИКИ СОБЫТИЙ ЭЛЕМЕНТОВ ФОРМЫ
  &НаСервере
  Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)
	  //Заполняем список  значениями по клиенту 
	  Если ЗначениеЗаполнено(Объект.Клиент) Тогда 
		  СформироватьСписокАвтомобилейКлиентаНаСервере(); 
	  КонецЕсли;
  КонецПроцедуры
  
  &НаКлиенте
  Процедура КлиентПриИзменении(Элемент)
	  //При изменении клиента получаем его список автомобилей
	  СформироватьСписокАвтомобилейКлиентаНаСервере();
  КонецПроцедуры
Показать


у реквизита формы Автомобили, в палитре свойств поставить флажок "Режим выбора из списка"
Остальные ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. Natoriys 14.05.24 16:34 Сейчас в теме
В обработчик При изменении реквизита Клиент, запросом в спр Клиенты дергайте тч с авто и формируйте список выбора.
Либо через выбранное значение в табличную часть лезть и формировать список выбора.
3. user2084919 14.05.24 16:55 Сейчас в теме
(2) Можно примерный код для этого?
4. Natoriys 14.05.24 20:19 Сейчас в теме
  //СЛУЖЕБНАЯ ПРОЦЕДУРА
  //Получаем список автомобилей клиента и загружаем их в список выбора
  &НаСервере
  Процедура СформироватьСписокАвтомобилейКлиентаНаСервере()
	  
	  Запрос = Новый Запрос;
	  Запрос.Текст = 
	  "ВЫБРАТЬ
	  |	КлиентыАвтомобили.Автомобиль КАК Автомобиль
	  |ИЗ
	  |	Справочник.Клиенты.Автомобили КАК КлиентыАвтомобили
	  |ГДЕ
	  |	КлиентыАвтомобили.Ссылка = &КлиентСсылка";
	  
	  Запрос.УстановитьПараметр("КлиентСсылка", Объект.Клиент);
	  
	  РезультатЗапроса = Запрос.Выполнить().Выгрузить();
	  
	  массАвтомобилейКлиента = РезультатЗапроса.ВыгрузитьКолонку("Автомобиль");
	  
	  //Очищаем переменную в объекте
	  Объект.Автомобиль = Справочники.Автомобили.ПустаяСсылка();
	  
	  //Очищаем список выбора и загружаем полученные значения
	  Элементы.Автомобиль.СписокВыбора.Очистить();
	  Элементы.Автомобиль.СписокВыбора.ЗагрузитьЗначения(массАвтомобилейКлиента);
	  
  КонецПроцедуры
  
  
  //ОБРАБОТЧИКИ СОБЫТИЙ ЭЛЕМЕНТОВ ФОРМЫ
  &НаСервере
  Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)
	  //Заполняем список  значениями по клиенту 
	  Если ЗначениеЗаполнено(Объект.Клиент) Тогда 
		  СформироватьСписокАвтомобилейКлиентаНаСервере(); 
	  КонецЕсли;
  КонецПроцедуры
  
  &НаКлиенте
  Процедура КлиентПриИзменении(Элемент)
	  //При изменении клиента получаем его список автомобилей
	  СформироватьСписокАвтомобилейКлиентаНаСервере();
  КонецПроцедуры
Показать


у реквизита формы Автомобили, в палитре свойств поставить флажок "Режим выбора из списка"
5. user2084919 15.05.24 14:41 Сейчас в теме
(4) Как я поняла это всё нужно писать в модуле форму документа?
Написала вот так, но список выбора не открывается никакой
Прикрепленные файлы:
6. user2084919 15.05.24 14:47 Сейчас в теме
(5) Извините, всё работает. Просто не указала в свойствах события для формы и клиента.
Спасибо большое за помощь
Оставьте свое сообщение

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