Имя: Пароль:
1C
1С v8
Как получить текущую строку табличной части
,
0 Xelga
 
05.11.12
19:21
В форме подбора номенлатуры делаю возможность определенного фильтра, фильтр должен устанавливаться, когда ставится галочка, пишу процедуру на событие ПриИзменении флажка. В процедуре мне нужно получить текущую строку табличной части ЭтаФорма.ЭлементыФормы.НоменклатураДляПодбора.ТекущиеДанные выдает Неопределено
так получается, потому что последним выбранным объектом был флажок? а как тогда по-другому можно получить выбранное значение, в форме же  видно какая строка активна в табличной части
2 Xelga
 
05.11.12
19:24
(1) и как обратиться к табличному полю?
3 Живой Ископаемый
 
05.11.12
19:26
для каждого строкатабличногополя из табличноеполе цикл
тарамапарм


или
табличноеполе[число из диапазона от 0 до КоличествоСтрок()-1]
4 Xelga
 
05.11.12
19:27
(3) мне то нужно выбранное значение, что толку что я обойду табличное поле в цикле?
5 ЧашкаЧая
 
05.11.12
19:30
Табличное поле НоменклатураДляПодбора точно привязано до табличной части?
6 sttt
 
05.11.12
19:32
в событие Выбор есть параметры:
Выбор(Элемент, ВыбраннаяСтрока, Колонка, СтандартнаяОбработка)

не оно?
при каких условиях хочешь получить значение строки?
7 sttt
 
05.11.12
19:32
))) не внимательно читал, при флажке)))
8 Xelga
 
05.11.12
19:35
(5) табличное поле к табличной части привязано
9 sttt
 
05.11.12
19:43
так не пойдет ЭлементыФормы.ТП.ТекущаяСтрока?
10 Xelga
 
05.11.12
19:47
(9) тоже неопределено, есть еще ВыбранныеСтроки и в них тоже пусто
11 sttt
 
05.11.12
19:50
можно так:
тч.Получить(тч.Индекс(ЭлементыФормы.тч.ТекущаяСтрока)).НашаКолонка
12 sttt
 
05.11.12
19:51
ну видимо у тебя просто нет данных в этом объекте к которому стучишься
13 Xelga
 
05.11.12
20:24
смотрю в отладчике что содержит ЭлементыФормы.НоменклатураДляПодбора причем просматриваю это в событии Выбор для табличного поля, и у меня там ТекущиеДанные и ТекущаяСтрока пустые. Я вообще не понимаю, почему так?
14 sttt
 
05.11.12
20:28
видимо не то исследуешь. что за конфигурация?
15 sttt
 
05.11.12
20:29
это ты где вызываешь ЭлементыФормы.НоменклатураДляПодбора?
16 sttt
 
05.11.12
20:29
в самом справочнике? или вызов из другого места?
17 sttt
 
05.11.12
20:33
есть TeavViewer? могу подключиться. кидай id и парол на ящик st2009st собака потерялась qip.ru
18 Xelga
 
05.11.12
20:33
это обработка типовая ПодборНоменклатуры ут 10.3
19 sttt
 
05.11.12
20:34
(18) и как к ней обращаешься?
20 sttt
 
05.11.12
20:35
жаль нет у меня ут 10.3
21 sttt
 
05.11.12
20:45
на комплексной глянул, есть таб. часть НоменклатураДляПодбора. ну и в обработчике флажка ПриИзменении напиши ЭлементыФормы.НоменклатураДляПодбора.ТекущиеДанные.Цена
что покажет?
22 Xelga
 
05.11.12
20:54
(21) я так и делаю, неопределено
23 sttt
 
05.11.12
20:56
сейчас сам посмотрю, не верится
24 sttt
 
05.11.12
21:05
у меня тож так)) сейчас решим задачку
25 sttt
 
05.11.12
21:07
вот так нада ЭлементыФормы.СправочникНоменклатура.ТекущиеДанные
26 Рэйв
 
05.11.12
21:08
Неопределено дает если вообще нет строк. Должны быть текущие данные.
27 Рэйв
 
05.11.12
21:09
Или у тебя неправильно связано таб. поле с табличной частью или ты что-то путаешь в описании проблемы.
28 sttt
 
05.11.12
21:09
то к чему она обращается еще нет ничего,
похоже попадает, накоплением, при множественном подборе
29 Рэйв
 
05.11.12
21:12
(28)Какой бы там не был отбор , через Элементы формы путь однозначный  и от отбора не зависящий.
30 sttt
 
05.11.12
21:13
(29) это понятно, просто она не к тому табличному полю обращалась
31 Xelga
 
05.11.12
21:14
(25)спасибо! тока я не пойму где это поле на форме
32 Xelga
 
05.11.12
21:18
только у меня теперь другая проблема , мне нужно было ограничить выводимый список запросом, я думала данные находятся в табличной части НоменклатураДляПодбора, я по ней сделала запрос и запросом заполнила эту ТЧ.
   Запрос = Новый Запрос;  
   Запрос.УстановитьПараметр("ТЧ",НоменклатураДляПодбора);
   Запрос.УстановитьПараметр("Номенклатура",ЭлементыФормы.СправочникНоменклатура.ТекущиеДанные.Ссылка);
   Запрос.Текст = "ВЫБРАТЬ
                   |    *
                   |ПОМЕСТИТЬ Таблица
                   |ИЗ
                   |    &ТЧ КАК ТЧ
                   |;
                   |////////////////////////////////////////////////////////////////////////////////
                   |ВЫБРАТЬ
                   |    битАналогиСопоставление.Владелец КАК Аналог1
                   |ПОМЕСТИТЬ Аналог
                   |ИЗ
                   |    Справочник.битАналогиСопоставление КАК битАналогиСопоставление
                   |ГДЕ
                   |    битАналогиСопоставление.Номенклатура = &Номенклатура
                   |;

                   |////////////////////////////////////////////////////////////////////////////////
                   |ВЫБРАТЬ
                   |    Таблица.*
                   |ИЗ
                   |    Справочник.битАналогиСопоставление КАК битАналогиСопоставление
                   |        ВНУТРЕННЕЕ СОЕДИНЕНИЕ Таблица КАК Таблица
                   |        ПО (Таблица.Номенклатура = битАналогиСопоставление.Номенклатура)
                   |ГДЕ
                   |    битАналогиСопоставление.Владелец В
                   |            (ВЫБРАТЬ
                   |                Аналог.Аналог1
                   |            ИЗ
                   |                Аналог)                    
                   |";
                       
   НоменклатураДляПодбора.Очистить();
   НоменклатураДляПодбора.Загрузить(Запрос.Выполнить().Выгрузить());

Теперь я тогда не понимаю как это сделать
33 Рэйв
 
05.11.12
21:19
(31)Это ты еще наверное ПриходноКассовыйОрдер не видела с его расшифровкой платежа.

Давно мечтаю посмотреть в глаза тому укурку, который писал исчезновение таб части и заполнение реквизитов формы при одной строке....
34 Xelga
 
05.11.12
21:20
(33) она исчезает и появляется другая?
35 kotletka
 
05.11.12
21:20
(33)+100500
36 Рэйв
 
05.11.12
21:21
(34)Она исчезает и на ее месте появляются реквизиты формы, заолненные данными строки.  И чтобы догадаться об этом, я тебя уверяю ты потратишь не один час:-)
37 sttt
 
05.11.12
21:22
Посмотреть можно Меню-Форма-Список элементов управления, если там нет, тогда в модуле динамически создается.
38 sttt
 
05.11.12
21:24
(36) еще не приходилось разбираться, но по любому исследование конфы это как квест )))
39 Рэйв
 
05.11.12
21:25
(38)Рекомендую посмотреть. Вот пля я лично так редко когда матерился...
40 Рэйв
 
05.11.12
21:27
+(38)В качестве гуманитарной помощи:-)  В РКО и обих платежках - тоже самое...  Может кто скажет имя писателя ,а?  А ему свечку перевернутую поставлю и обещаю не сильно проклясть:-)
41 sttt
 
05.11.12
21:27
(32) тогда заполняй другую)) но рекомендую посмотреть сначала типовой механизм и попробовать добавить отсутствующее, какой нибудь галку, реквизит... чем монстра такого добавлять
42 sttt
 
05.11.12
21:28
(40) нада за ценить творчество)))
43 Рэйв
 
05.11.12
21:28
(42)Зацени:-)
44 Xelga
 
05.11.12
21:42
(41) теперь в запрос хочу сделать по ТП ЭлементыФормы.СправочникНоменклатура

   ВТ = Новый МенеджерВременныхТаблиц;
   Запрос = Новый Запрос;  
   Запрос.МенеджерВременныхТаблиц = ВТ;
   Запрос.УстановитьПараметр("ТЧ",ЭлементыФормы.СправочникНоменклатура);
   Запрос.УстановитьПараметр("Номенклатура",ЭлементыФормы.СправочникНоменклатура.ТекущиеДанные.Ссылка);
   Запрос.Текст = "ВЫБРАТЬ
                   |    *
                   |ПОМЕСТИТЬ Таблица
                   |ИЗ
                   |    &ТЧ КАК Таблица
                   |;
                   |////////////////////////////////////////////////////////////////////////////////
                   |ВЫБРАТЬ
                   |    битАналогиСопоставление.Владелец КАК Аналог1
                   |ПОМЕСТИТЬ Аналог
                   |ИЗ
                   |    Справочник.битАналогиСопоставление КАК битАналогиСопоставление
                   |ГДЕ
                   |    битАналогиСопоставление.Номенклатура = &Номенклатура
                   |;

                   |////////////////////////////////////////////////////////////////////////////////
                   |ВЫБРАТЬ
                   |    Таблица.*
                   |ИЗ
                   |    Справочник.битАналогиСопоставление КАК битАналогиСопоставление
                   |        ВНУТРЕННЕЕ СОЕДИНЕНИЕ Таблица КАК Таблица
                   |        ПО (Таблица.Номенклатура = битАналогиСопоставление.Номенклатура)
                   |ГДЕ
                   |    битАналогиСопоставление.Владелец В
                   |            (ВЫБРАТЬ
                   |                Аналог.Аналог1
                   |            ИЗ
                   |                Аналог)                    
                   |";
   РезультатЗапроса = Запрос.Выполнить();                    

по такому коду выдает ошибку - Неверные параметры "ТЧ"
<<?>>&ТЧ КАК Таблица

Это связано с тем что СписокНоменклатуры имеет тип СправочникСписок.Номенклатура
Но я же параметром передаю ТП, я поняла, что так можно делать, или нельзя?
45 kotletka
 
05.11.12
21:45
что-то битовцы сегодня жгут, один с скд, другая с подбором
46 sttt
 
05.11.12
21:47
попробуй так:
Запрос.УстановитьПараметр("ТЧ", ЭлементыФормы.СправочникНоменклатура.Значение);
и
ЭлементыФормы.СправочникНоменклатура.Значение = РезультатЗапроса.Выгрузить();
47 sttt
 
05.11.12
21:48
(45) день чудес)))
48 sttt
 
05.11.12
21:52
(45) мне как то на новом месте работы перешел один товарищ из бита, меня уволили его взяли)))
49 Xelga
 
05.11.12
21:53
(45) оказывается за нами следит Большой брат)))
50 Xelga
 
05.11.12
21:55
(46) это не работает, пишет что -  Тип не может быть выбран в запросе
51 sttt
 
05.11.12
22:05
(49) москва маленькая деревня)))
(50) ну да точно))) промахнулся, думал там тз будет...
52 sttt
 
05.11.12
22:16
(50) там тип СправочникСписок ))) и не получиться так
53 sttt
 
05.11.12
22:17
даже выгрузить твой запрос не получиться
54 Xelga
 
05.11.12
22:20
(52) да в том то и дело, я это видела
55 sttt
 
05.11.12
22:30
(54) какая задача стоит перед тобой?
56 sttt
 
05.11.12
22:36
может все таки через это сделать отбор ЭлементыФормы.СправочникНоменклатура.Значение.Отбор
выберешь запросом аналоги и в отбор их
57 Xelga
 
05.11.12
22:36
(55) нужно в форме подбора сделать некоторый фильтр, он получается по запросу, когда ставим галочку, то в форме должны отразится только определенные элементы, при этом у них так же должны быть видны остатки и чтобы подбирались они нормально
58 Xelga
 
05.11.12
22:37
(56) а там можно запрос сделать? у меня же аналог хранится в отдельном справочнике, это не реквизит номенклатуры
59 sttt
 
05.11.12
22:39
(57) ну вот через Отбор сделай.
(58) ну да, приИзменении у флажка делай запрос свой и результат в отбор пихай
60 sttt
 
05.11.12
22:42
я так понял, что ты отбираешь по текущей номенклатуре в аналогах нужное и потом внутренним соединением обрезаешь до аналогов справочник номенклатуры и полученное можешь в отбор запихнуть
61 sttt
 
05.11.12
22:43
при снятии флажка все на место возвращается
62 Xelga
 
05.11.12
22:43
(60) т.е. запрос сделать просто по справочнику Номенклатура? А что передается в ЭлементыФормы.СправочникНоменклатура.Значение.Отбор ? таблица временная или что?
63 ОбычныйЧеловек
 
05.11.12
22:46
(62) почти шесть лет на форуме... вот ты сама понимаешь, что справшиваешь? Какая таблица может быть в отборе? Там может быть либо элемент либо список.
64 sttt
 
05.11.12
22:47
ну как то так:
   ОтборСсылка = СправочникНоменклатура.Отбор.Ссылка;
   Если ЭлементыФормы.Флажок1.Значение Тогда
       ОтборСсылка.Значение      = СписокАналогов;
       ОтборСсылка.ВидСравнения  = ВидСравнения.ВСписке;
       ОтборСсылка.Использование = Истина;
   Иначе
       ОтборСсылка.Использование = Ложь;
   КонецЕсли;
65 sttt
 
05.11.12
22:49
тебе только остается запросом получить ссылки для отбора
66 sttt
 
05.11.12
22:50
разве девушке откажешь...)))
67 Xelga
 
05.11.12
22:50
(65) спасибо сейчас попробую, ссылки то я уже получила
68 Xelga
 
05.11.12
22:50
(66) конечно, предназначение девушек не заключается в программировании на 1с)))) им нужно помогать
69 sttt
 
05.11.12
22:51
(68) вот и бросай это дело, лучше на кухне торты бацать)))
70 ОбычныйЧеловек
 
05.11.12
22:52
(66) к сожалению девушка не понимает элементарных вещей и самое ужасное, что особо и не хочет понимать... Готовься к тому, что теперь ты будешь за нее все задачи решать.
71 ОбычныйЧеловек
 
05.11.12
22:53
(68) а может проще работу сменить?
72 sttt
 
05.11.12
22:54
(70) о не... без зп я долго не протяну))
73 Xelga
 
05.11.12
22:56
(70) ну я бы не стала так голословно оценивать
74 ОбычныйЧеловек
 
05.11.12
22:56
(72) ну сколько протянешь)) потом найдет другого )
75 sttt
 
05.11.12
22:57
(71) зачем так, пусть пытается, может и получиться, когда багаж знаний наберет.
76 ОбычныйЧеловек
 
05.11.12
22:58
(75) 6 лет - это приличный срок.
77 ОбычныйЧеловек
 
05.11.12
22:59
(73) ну почему же голословно - я не поленился почитал весь топик.
78 sttt
 
05.11.12
23:00
(76) ну 6 лет мало о чем говорит, может 4 года коробки таскала и параллельно интересовалась)) а еще через пару лет всем покажет кто есть кто)
79 Xelga
 
05.11.12
23:04
что за такое внимание к моей персоне, на 8-ке я работаю меньше года
80 Xelga
 
05.11.12
23:05
и в отсутствии мозгов при личном общении меня никто не обвинял, просто я не вижу ничего зазорного в том, чтобы задавать вопросы
81 sttt
 
05.11.12
23:05
а остальное где прожигала?)))
82 Xelga
 
05.11.12
23:06
да я много чем занималась в жизни
83 sttt
 
05.11.12
23:07
правильно:
Не стыдно не знать, а стыдно не учиться. кажись Сократ
84 ОбычныйЧеловек
 
05.11.12
23:07
(78) все еще веришь в сказки ))
(79) да нет никакого внимания - просто говорю как есть... за год не разобраться с отборами это....
85 sttt
 
05.11.12
23:08
(82) это про то, почему у тебя стаж на форуме больше моего
86 sttt
 
05.11.12
23:09
(84) ну почему сказки, вот ответ в (79)))
87 Xelga
 
05.11.12
23:09
(85) ну мне надо было задачи на 7-ке когда решать, тогда и зарегистрировалась
88 sttt
 
05.11.12
23:09
(84) в сказки я давно уже не верю
89 ОбычныйЧеловек
 
05.11.12
23:10
(80)>> просто я не вижу ничего зазорного в том, чтобы задавать вопросы.
А в это и нет ничего зазорного - зазорно даже не попытаться разобраться самой.
90 sttt
 
05.11.12
23:10
(87) ого! что за задачи?
91 Xelga
 
05.11.12
23:12
(90) переделывала конфу под предметную область, разрабатывала свою
92 sttt
 
05.11.12
23:14
(91) 5 лет это много, либо перерыв потом был)
93 Xelga
 
05.11.12
23:16
да я много чем занималась, у меня в течение 2-х лет было 3 работы одновременно
94 Xelga
 
05.11.12
23:22
ОтборСсылка = СправочникНоменклатура.Отбор.Ссылка;
   Если ЭлементыФормы.Флажок1.Значение Тогда
       ОтборСсылка.Значение      = СписокАналогов;
Здесь СписокАналогов какой тип должен быть?
95 sttt
 
05.11.12
23:24
(94) РезультатЗапроса.Выгрузить().ВыгрузитьКолонку("Ссылка")
96 sttt
 
05.11.12
23:25
если много колонок в резултате, если одна "Ссылка" то РезультатЗапроса.Выгрузить()
97 ОбычныйЧеловек
 
05.11.12
23:26
(94) слово "список" не о чем не говорит? И так для общего развития - перед тем как устанавливать значение необходимо указать вид сравнения :
ОтборСсылка.ВидСравнения = ВидСравнения.ВСписке;
98 sttt
 
05.11.12
23:27
(97) она знает это, говорил уже в (64)
99 ОбычныйЧеловек
 
05.11.12
23:27
В (64) строчки
ОтборСсылка.Значение = СписокАналогов; ОтборСсылка.ВидСравнения = ВидСравнения.ВСписке;

Необходимо поменять местами иначе ошибка будет.
sttt удачи в обучении )
100 sttt
 
05.11.12
23:29
(100) благодарю.)) сотка
101 Xelga
 
05.11.12
23:31
Всем спасибо)))
Глупец, лишенный способности посмеяться над собой вместе с другими, не сможет долго выносить программирование. Фредерик Брукс-младший