Форум 1С
Программистам, бухгалтерам, администраторам, пользователям
Задай вопрос - получи решение проблемы
19 апр 2024, 06:16

получение списка значений по условию

Автор primus, 27 сен 2011, 16:32

0 Пользователей и 1 гость просматривают эту тему.

primus

Есть документ, среди прочих у него есть реквизит СельскаяТерритория типа Перечисление.СельскаяТерритория и еще один реквизит Село тип Ссылка.Справочник.СелаПоСельскимТерриториям, в котором у меня связаны села и сельские поселения.
Идея такая: в форме документа при выборе сельского поселения получать в поле Село список из сел, которые входят в это поселение.
Печатную форму я получаю, а вот каким образом получить список для поля - не понимаю покамест.

has

Если я правильно понял, то при выборе сельского поселения необходимо открывать форму списка сел, с отбором по выбранному сельскому поселению.

primus

выбираем сельское поселение, а в процедуре
НачалоВыбораИзСписка поля Село выдавать эту самую форму списка с отбором по выбраному сельскому поселению.

has

А, т.е. открывается список, а не форма списка. Ну тогда в чем проблема то?

primus


has

Просто тебе список для выбора придется строить динамически. Т.е. как выбрал сельское поселение, запросом получаешь села по этому поселению и вставляешь их в список выбора

primus

список я составляю, все отлично. Еще сейчас вот додумаю обработку выбора, чтобы присваивалось значение полю при выборе значения из списка. Если подскажешь, как сделать, буду благодарен.

Процедура формирования списка значений.
Процедура СелоНачалоВыбораИзСписка(Элемент, СтандартнаяОбработка)
   Список = Новый СписокЗначений;
   ВыборСела = Справочники.СелаПоСельскимТерриториям.Выбрать();
   Пока ВыборСела.Следующий() Цикл
      Объект = ВыборСела.ПолучитьОбъект();
      Если Объект.СельскаяТерритория = СельскаяТерритория Тогда
         Список.Добавить(Объект.Наименование);
      КонецЕсли;
   КонецЦикла;
   Вид = ВыбратьИзСписка(Список, Элемент);
КонецПроцедуры

has

Формируй список запросом, объект не надо получать, в список добавляй ссылку на элемент, а не обьект. Чтобы присвоилось значение, то типы должны быть одинаковы.

ivanov660

Если не нравится запрос (произвольный запрос), используй свойство "отбор" для формы списка.

primus

сделал вот так. Работает вполне неплохо, правда без выпадающего списка, а с окошком. При этом реквизит Село сделал типом "Строка".
Процедура СелоНачалоВыбора(Элемент, СтандартнаяОбработка)
   Список = Новый СписокЗначений;
      ВыборСела = Справочники.СелаПоСельскимТерриториям.Выбрать();
      Пока ВыборСела.Следующий() Цикл
         Объект = ВыборСела.ПолучитьОбъект();
         Если Объект.СельскаяТерритория = СельскаяТерритория Тогда
            Список.Добавить(Объект.Наименование);
         КонецЕсли;
      КонецЦикла;
    ВыбЭлемент = Список.НайтиПоЗначению(Село);
   ВыбЭлемент = Список.ВыбратьЭлемент("Выберите село", ВыбЭлемент);
   Если ВыбЭлемент = Неопределено Тогда
      Сообщить("Село не выбрано");
   Иначе
      Село = ВыбЭлемент.Значение;
   КонецЕсли;
КонецПроцедуры


Теги:

Похожие темы (5)

Рейтинг@Mail.ru

Поиск