Имя: Пароль:
1C
1С v8
необычная форма списка
0 Kurbash
 
17.03.14
09:21
Всем привет. Столкнулся с такой проблемой: Есть справочник Номенклатура у которого добавлена новая табличная часть Табличнаячасть1 с реквизитами Реквизит1(справочник1), реквизит2, реквизит3. В документе перемещение товаров добавили столбец1(справочник1). Теперь вопрос: нужно чтобы при выборе значений для этого столбца из справочник1 в форме выбора этого справочника отображались только те элементы, которые есть в ТЧ справочника Номенклатура. Как можно это сделать?
1 Godofsin
 
17.03.14
09:22
отбор наложить видимо
2 Kurbash
 
17.03.14
09:24
т.е. как я понимаю нужно делать формуВыбораСПравочник1 с табличной частью и при открытии забивать ее значениями из ТабличнаяЧасть1 элемента справочника Номенклатура?
3 Kurbash
 
17.03.14
09:24
но для этого мне нужно в открываемую форму передать параметр номенклатуры
4 Godofsin
 
17.03.14
09:26
(3) http://help1c.com/faq/view/866.html
Просвещайся
5 Kurbash
 
17.03.14
09:27
спс
6 Kurbash
 
17.03.14
10:09
сделал так:

    ст=элементыформы.Документ1.ТекущаяСтрока;
    п= новый структура("Номенклатура",ст.Деталь);
форма=ПолучитьФОрму("Документ.Документ1.Форма.ФормаВыбораДляДокумент1",П);
форма.Открыть();

форма открывается, все нормально. но теперь нужно навесить обработчик ПриОткрытии() чтобы там учитывался параметр П.
там буду делать запрос с использованием этого параметра.
Запрос.УстановитьПараметр("парам",п);-не канает. Что делать?
7 Kurbash
 
17.03.14
10:37
апну
8 Kurbash
 
17.03.14
12:12
сделал по простому, все открывается и заполняется как надо, только при выборе значения ничего не происходит. Поле реквизита получается пустое. Почему?

    Форма=Справочники.СПравочник1.ПолучитьФормуВыбора();
    Форма.Отбор.Ссылка.Использование=Истина;
    Форма.Отбор.Ссылка.ВидСравнения=ВидСравнения.ВСписке;
    Форма.Отбор.Ссылка.Значение=П; // ТЗ запроса
    Форма.ЭлементыФормы.СправочникСписок.ИерархическийПросмотр=Ложь;
    форма.Открыть();
9 grigo
 
17.03.14
12:28
Читай "Разработка управляемого интерфейса", глава 3.3
10 Kurbash
 
17.03.14
12:33
это не управляемый интерфейс
11 Kurbash
 
17.03.14
12:38
хелпните кто нить плиз
12 kosts
 
17.03.14
12:45
(0) В обычных формах вроде нет возможности в списках справочника отбирать по содержимому ТЧ (могу ошибаться).
По этому нужно сделать в обход. Т.е. в отборе отбирать по списку элементов. Список элементов получить запросом перед установкой отбора.
13 Kurbash
 
17.03.14
13:15
(12) фиг с ним с (0)-я не могу понять почему у меня (8) получается
14 vicof
 
17.03.14
13:18
(13) А кто выбор будет обрабатывать?
15 Kurbash
 
17.03.14
13:20
(14)-да, есть процедура обработкаВыбора, там написано

реквизит=выбранноезначение;

не канает
16 vicof
 
17.03.14
13:37
(15) Печаль, тоска. Система намекает тебе взять в руки отладчик.
17 Kurbash
 
17.03.14
13:40
так в том то и дело что ничего не происходит даже в отладчике посмотреть не могу-ТО не срабаытвает
18 vicof
 
17.03.14
13:41
(17) Ну, возможно, ты не назначил обработчик
19 Kurbash
 
17.03.14
13:43
назначил

СоставОбработкаВыбора(Элемент, ВыбранноеЗначение, СтандартнаяОбработка)
20 vicof
 
17.03.14
13:45
В самой форме в обработке выбора что стоит?
21 Kurbash
 
17.03.14
13:45
все, разобрался
Форма=Справочники.СПравочник1.ПолучитьФормуВыбора(,Элемент);
22 vicof
 
17.03.14
13:48
не за что
23 Crush
 
17.03.14
13:51
(21) При этом обработчик не нужен. Значение само встанет куда надо.