Имя: Пароль:
1C
1С v8
Формирование списка элементов в форме выбора
0 Johnnie88
 
11.10.12
13:06
Добрый день!

Прошу прощения за, может быть, пустяковый вопрос, возникший у меня (т.к. недавно изучаю програмирование в 1С (8.2)). Но проблема состоит в следующем:
Имеется справочник "Номенклатура". Имеется Регистр сведений "ЦеныСборки", в котором содержатся цены сборки на эту номенклатуру. Имеется документ "Сборка", в табличной части которого фиксируются собранные товары и их количество. По умолчанию, при выборе позиции номенклатуры в таб части открывается стандартная форма выбора справочника Номенклатура со всеми позициями. Но мне необходимо отображать в форме выбора только те товары, о которых имеется запись в регистре сведений "ЦеныСборки", т.е. как то наложить фильтр (и только в этом документе и больше ни где!!!).
Где то в интернернете встречал, что переопределить список выбора можно с помощью процедуры "ОбработкаПолученияДанныхВыбора", но в моем случае использовать её нельзя, т.к. фильтр будет применен ко всем объектам, где осществляется выбор номенклатуры.
Примерно представляю, что нужно создать новую форму выбора и, при её создании на сервере, заполнить записями с помощью запроса(с ним вопросов нет, т.к. запрос элементарный).
Помогите пожалуйста сформировать список номенклатуры в новой форме выбора. Заранее спасибо!

П.С.: Перерыл много материала, но ничего адекватного не нашел по платформе 8.2.
1 5 Элемент
 
11.10.12
13:08
Форма управляемая?
2 Johnnie88
 
11.10.12
13:10
Да, конечно
3 5 Элемент
 
11.10.12
13:14
Создаешь новую форму, в дин списке пишешь нужный запрос.
В форме Сборки для элемента формы Номенклатура указываешь твою форму выбора.
http://screencast.com/t/g3HZBenWc
Еще нужно переопределить выбор по строке, но это потом :)
4 5 Элемент
 
11.10.12
13:15
форму выбора лучше указать для реквизита Номенклатура в дереве метаданных
5 Johnnie88
 
11.10.12
13:24
Спасибо) Лед тронулся))
А можно по подробнее про динамический список? А если можно, то и пример было бы не плохо (совсем обнаглел))) )
6 Johnnie88
 
11.10.12
13:32
Процедура "ПриСозданииНаСервере" той самой новой формы.


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


В итогке выдает ошибку: {Справочник.Номенклатура.Форма.ФормаВыбораДляСборки.Форма(15)}: Поле объекта недоступно для записи (Список)
   Элементы.Список = СписокТоваров;
7 Johnnie88
 
11.10.12
13:51
Собственно всё удалось. Предыдущий мой пост - бред) Нашел динамический список, задал запрос, всё открывается как надо. Но выбранные записи не переносятся в документ. Я так понял, пришло время как раз до того самого "нужно переопределить выбор по строке". НЕ могли бы Вы по подробнее описать это?
Спасибо!
Ошибка? Это не ошибка, это системная функция.