Список выбора реквизита в зависимости от значения иного реквизита
Доброго утра.
Подскажите пожалуйста как можно реализовать такой момент.
1. На форме есть реквизит- организация, ЛС, счётчики
Как выбрать ЛС только для указанной организации??
2. Как сделать список выбора из справочника Счётчики только те счётчики, которые установленные для данного ЛС. (может быть несколько счётчиков)
Выбираем в выпадающем списке реквизита.
Не совсем понятно, как сделать этот отбор.
Смотрела, как реализована в конфигурации, к сожалению не понятно.
Подскажите пожалуйста как можно реализовать такой момент.
1. На форме есть реквизит- организация, ЛС, счётчики
Как выбрать ЛС только для указанной организации??
2. Как сделать список выбора из справочника Счётчики только те счётчики, которые установленные для данного ЛС. (может быть несколько счётчиков)
Выбираем в выпадающем списке реквизита.
Не совсем понятно, как сделать этот отбор.
Смотрела, как реализована в конфигурации, к сожалению не понятно.
По теме из базы знаний
- РЕКВ.ЕДИТОР (Универсальный редактор реквизитов справочников)
- Полезный код для программистов 1С (часть 1). Управление свойствами элементов формы. Хранение копии данных реквизитов
- Пример переноса справочников, документов и движений через Эксель и "Конвертацию данных 2" из оптовой учетной системы 1С 7.7 Комплексной 4.2 и розничной учетной системы Рарус Торговый комплекс -> в 1С 8.3 ЕРП 2.4 (расширение и дополнительные реквизиты)
- Расширение: Быстрые отборы через буфер [Alt+C] Копировать список, [Alt+V] Вставить список, [Ctrl+C] Копировать из файлов
- Интеграции с маркетплейсами из одного окна: Озон, ВБ, Яндекс, Сбер, Али, ЛаМода для 1С:УНФ, УТ, КА, ERP
Ответы
Подписаться на ответы
Инфостарт бот
Сортировка:
Древо развёрнутое
Свернуть все
(1) отбор складов при выборе организации в документе перемещения
Процедура СкладПолучательНачалоВыбора(Элемент, СтандартнаяОбработка)
СтандартнаяОбработка = Ложь;
//склады, которые соответствуют нашим организациям
Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ
|Склады.Ссылка Как Склад
|ИЗ
| Справочник.Склады КАК Склады
|ГДЕ
| Склады.Родитель.Организация = &Организация"
;
Запрос.УстановитьПараметр("Организация",ЭтотОбъект.Организация);
СписокСкладов = Новый СписокЗначений;
СписокСкладов.ЗагрузитьЗначения(Запрос.Выполнить().Выгрузить().ВыгрузитьКолонку("Склад"));
ФормаВыбора = Справочники.Склады.ПолучитьФормуВыбора(,Элемент,);
ФормаВыбора.ЭлементыФормы.СправочникСписок.НастройкаОтбора.Ссылка.Доступность = Ложь;
ФормаВыбора.СправочникСписок.Отбор.Ссылка.ВидСравнения = ВидСравнения.ВСписке;
ФормаВыбора.СправочникСписок.Отбор.Ссылка.Значение = СписокСкладов;
ФормаВыбора.СправочникСписок.Отбор.Ссылка.Использование = Истина;
ФормаВыбора.ЭлементыФормы.СправочникСписок.ИерархическийПросмотр = Ложь;
ФормаВыбора.Открыть();
КонецПроцедуры
Показать
(7) В Форме документа есть выбор Организации. У каждой организации разные склады. При стандартной процедуре при нажатии на поле склад открывается форма выбора складов т.е всего справочника. Я же открываю эту форму уже с отбором по организации.
Т.Е. сначало идет поиск соответствия складов по организации данные выгружаются в СписокЗначений и уже этот список передается на форму выбора как условие отбора
Т.Е. сначало идет поиск соответствия складов по организации данные выгружаются в СписокЗначений и уже этот список передается на форму выбора как условие отбора
Доброго утра.
Мне немного помогли и предложили такое решение.
Оно неплохо работает.
Мне немного помогли и предложили такое решение.
Оно неплохо работает.
//**************************************************************************************************************
Функция ВернутьСписокВыбораСч(ВидУслуги, ЛС)
ТЗСчётчик = Запрос.Выполнить().Выгрузить() ;
СписокСчётчик= Новый СписокЗначений;
Для Каждого СтрСч Из ТЗСчётчик Цикл
СписокСчётчик.Добавить(СтрСч.Счётчик);
КонецЦикла; //Каждого СтрЛС Из ТЗЛС Цикл
Возврат СписокСчётчик
КонецФункции // ВернутьСписокВыбораСч(ВидУслуги, Помещение
//**************************************************************************************************************
//Список счётчиков для заданного ЛС и вида услуги
&НаКлиенте
Процедура СчНачалоВыбора(Элемент, ДанныеВыбора, СтандартнаяОбработка)
Если ЗначениеЗаполнено(Объект.ЛС) Тогда
СписокВыбора = ВернутьСписокВыбораСч(Объект.ВидУслуги, Объект.ЛС);
Если НЕ СписокВыбора = Неопределено Тогда
СтандартнаяОбработка = Ложь;
ВыбранноеЗначение = ВыбратьИзСписка(СписокВыбора, Элемент);
Если ВыбранноеЗначение <> Неопределено Тогда
Объект.СтарыйИПУ = ВыбранноеЗначение.Значение;
КонецЕсли; //ВыбранноеЗначение <> Неопределено Тогда
КонецЕсли;//НЕ СписокВыбора = Неопределено Тогда
Иначе
Сообщить("Заполните ЛС!");
КонецЕсли; // ЗначениеЗаполнено(Объект.Организация) Тогда
КонецПроцедуры //СчНачалоВыбора(Элемент, ДанныеВыбора, СтандартнаяОбработка)
//**************************************************************************************************************
Показать
Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот