Как получить подчиненный элемент
Показывать по
сообщений
- 1
- 2
20.07.2009
11:52
#1
"платформа 7.7, пишу обработку для изменения подчинненого элемента-числа, т.е. этот элемент находится в подчиненном справочнике и метод ИспользоватьВладельца() не отображает искомый результат, посмотрите что не так, в чем мой косяк? Спасибо за критику.Процедура Выполнить(ПР)<br> СпрПР = СоздатьОбъект("Справочник.Квалификации"); <br> СпрПР.ИспользоватьДату(РабочаяДата());<br> СпрПР.ИспользоватьВладельца(ПР);<br> СпрПР.ВыбратьЭлементы();<br> Сч = 0;<br> Пока СпрПР.ПолучитьЭлемент()= 1 Цикл<br> Бонус1 = СпрПР.Бонус;<br> Бонус2 = Бонус1*ВыбЧисло;<br> СпрПР.Бонус = Бонус2;<br> СпрПР.Записать(); <br> Сч = Сч + 1;<br> Сообщить("счетчик"+Сч+"---"+СпрПР.Наименование+СпрПР.Бонус);<br> КонецЦикла;<br>КонецПроцедуры <br>////////////////////////////////////////////////////<br> ПР=СоздатьОбъект("Справочник.ПереченьРабот");<br>"
20.07.2009
12:46
#2
"А где позиционирование на элементе-владельце? И вообще, что чему подчинено?<br>Предположим, что справочник Квалификации является подчиненным справочнику ПереченьРабот. Тогда так:<br><br>ПереченьРабот=СоздатьОбъект("Справочник.ПереченьРабот");<br>Квалификации=СоздатьОбъект("Справочник.Квалификации"); <br>ПереченьРабот.ВыбратьЭлементы();<br>Пока ПереченьРабот.ПолучитьЭлемент(1)=1 Цикл<br> Квалификации.ИспользоватьВладельца(ПереченьРабот.ТекущийЭлемент());<br> Пока Квалификации.ПолучитьЭлемент(1)=1 Цикл<br> ...<br> КонецЦикла;<br>КонецЦикла<br><br>или, если элемент справочника ПереченьРабот какой то конкретный:<br>Квалификации=СоздатьОбъект("Справочник.Квалификации");<br>Квалификации.ИспользоватьВладельца(НужныйЭлементПереченяРабот);<br>Пока Квалификации.ПолучитьЭлемент(1)=1 Цикл<br> ...<br>КонецЦикла;"
20.07.2009
13:38
#3
мне ваш первый вариант очень помог ,но как дело касается квалификации то сразу вылетает ошибка , что элемент не выбран.
20.07.2009
13:40
#4
"По аналогии с " Квалификации.ИспользоватьВладельца(ПереченьРабот.ТекущийЭлемент());" используйте не просто Квалификации, а Квалификации.ТекущийЭлемент()"
20.07.2009
14:05
#5
бесполезно:<br>Пока Квалификации.ПолучитьЭлемент(1)=1 Цикл<br>{Обработка.ПересчетБонусов.Форма.Модуль(10)}: Не выбран элемент!<br>даже ч/з отладчик не видно поле"Владелец" остается пустым
20.07.2009
14:05
#6
"<br>> ПереченьРабот=СоздатьОбъект("Справочник.ПереченьРабот");<br>> Квалификации=СоздатьОбъект("Справочник.Квалификации"); <br>> ПереченьРабот.ВыбратьЭлементы();<br>> Пока ПереченьРабот.ПолучитьЭлемент(1)=1 Цикл<br>> Квалификации.ИспользоватьВладельца(ПереченьРабот.ТекущийЭлемент());<br>> Пока Квалификации.ПолучитьЭлемент(1)=1 Цикл<br>> ...<br>> КонецЦикла;<br>> КонецЦикла<br>> <br><br><br>выборка собьётся, если в подчиненном справочнике записывать!!!!<br><br>"
20.07.2009
14:07
#7
"А, ну правильно, я забыл написать Квалификации.ВыбратьЭлементы(); сорри
<br>Должно быть так:<br>ПереченьРабот=СоздатьОбъект("Справочник.ПереченьРабот");<br>Квалификации=СоздатьОбъект("Справочник.Квалификации"); <br>ПереченьРабот.ВыбратьЭлементы();<br>Пока ПереченьРабот.ПолучитьЭлемент(1)=1 Цикл<br> Квалификации.ИспользоватьВладельца(ПереченьРабот.ТекущийЭлемент());<br> Квалификации.ВыбратьЭлементы();<br> Пока Квалификации.ПолучитьЭлемент(1)=1 Цикл<br> ...<br> КонецЦикла;<br>КонецЦикла<br><br>P.S. Я не тестирую то что пишу сюда, если оно кажется мне слишком простым, бывают промахи :)"

20.07.2009
14:09
#8
"> А, ну правильно, я забыл написать Квалификации.ВыбратьЭлементы(); сорри
<br>> Должно быть так:<br>> ПереченьРабот=СоздатьОбъект("Справочник.ПереченьРабот");<br>> Квалификации=СоздатьОбъект("Справочник.Квалификации"); <br>> ПереченьРабот.ВыбратьЭлементы();<br>> Пока ПереченьРабот.ПолучитьЭлемент(1)=1 Цикл<br>> Квалификации.ИспользоватьВладельца(ПереченьРабот.ТекущийЭлемент());<br>> Квалификации.ВыбратьЭлементы();<br>> Пока Квалификации.ПолучитьЭлемент(1)=1 Цикл<br>> ...<br>> КонецЦикла;<br>> КонецЦикла<br>> <br>> P.S. Я не тестирую то что пишу сюда, если оно кажется мне слишком простым, бывают промахи
<br><br><br>всё равно собьётся, особенно, если справочник-владелец иерархический"


- 1
- 2
Читают тему
(гостей: 1)