Новости для бухгалтера, бухучет, налогообложение, отчетность, ФСБУ, прослеживаемость и маркировка, 1С:Бухгалтерия

Вход или Регистрация

Показывать по 10 20 40 сообщений
Новая тема Ответить
Письмо в техподдержку 1С
[Прочее]

Как получить подчиненный элемент

177
читатель
офлайн
Дата регистрации: 07.05.2008
Сообщений: 470
Пост №1
 
20.07.2009 11:52

"платформа 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>"

Thorvardr
читатель
офлайн
Дата регистрации: 25.02.2005
Сообщений: 3082
Пост №2
 
20.07.2009 12:46

"А где позиционирование на элементе-владельце? И вообще, что чему подчинено?<br>Предположим, что справочник Квалификации является подчиненным справочнику ПереченьРабот. Тогда так:<br><br>ПереченьРабот=СоздатьОбъект("Справочник.ПереченьРабот");<br>Квалификации=СоздатьОбъект("Справочник.Квалификации"); <br>ПереченьРабот.ВыбратьЭлементы();<br>Пока ПереченьРабот.ПолучитьЭлемент(1)=1 Цикл<br> Квалификации.ИспользоватьВладельца(ПереченьРабот.ТекущийЭлемент());<br> Пока Квалификации.ПолучитьЭлемент(1)=1 Цикл<br>      ...<br> КонецЦикла;<br>КонецЦикла<br><br>или, если элемент справочника ПереченьРабот какой то конкретный:<br>Квалификации=СоздатьОбъект("Справочник.Квалификации");<br>Квалификации.ИспользоватьВладельца(НужныйЭлементПереченяРабот);<br>Пока Квалификации.ПолучитьЭлемент(1)=1 Цикл<br> ...<br>КонецЦикла;"

177
читатель
офлайн
Дата регистрации: 07.05.2008
Сообщений: 470
Пост №3
 
20.07.2009 13:38

мне ваш первый вариант очень помог ,но как дело касается квалификации то сразу вылетает ошибка , что элемент не выбран.

BelikovS
читатель
офлайн
Дата регистрации: 05.03.2007
Сообщений: 1701
Пост №4
 
20.07.2009 13:40

"По аналогии с " Квалификации.ИспользоватьВладельца(ПереченьРабот.ТекущийЭлемент());" используйте не просто Квалификации, а Квалификации.ТекущийЭлемент()"

177
читатель
офлайн
Дата регистрации: 07.05.2008
Сообщений: 470
Пост №5
 
20.07.2009 14:05

бесполезно:<br>Пока Квалификации.ПолучитьЭлемент(1)=1 Цикл<br>{Обработка.ПересчетБонусов.Форма.Модуль(10)}: Не выбран элемент!<br>даже ч/з отладчик не видно поле"Владелец" остается пустым

zak555 (398843952)
читатель
офлайн
Дата регистрации: 27.03.2008
Сообщений: 4656
Пост №6
 
20.07.2009 14:05

"<br>> ПереченьРабот=СоздатьОбъект("Справочник.ПереченьРабот");<br>> Квалификации=СоздатьОбъект("Справочник.Квалификации"); <br>> ПереченьРабот.ВыбратьЭлементы();<br>> Пока ПереченьРабот.ПолучитьЭлемент(1)=1 Цикл<br>> Квалификации.ИспользоватьВладельца(ПереченьРабот.ТекущийЭлемент());<br>> Пока Квалификации.ПолучитьЭлемент(1)=1 Цикл<br>>       ...<br>> КонецЦикла;<br>> КонецЦикла<br>> <br><br><br>выборка собьётся, если в подчиненном справочнике записывать!!!!<br><br>"

Thorvardr
читатель
офлайн
Дата регистрации: 25.02.2005
Сообщений: 3082
Пост №7
 
20.07.2009 14:07

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

zak555 (398843952)
читатель
офлайн
Дата регистрации: 27.03.2008
Сообщений: 4656
Пост №8
 
20.07.2009 14:09

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

Thorvardr
читатель
офлайн
Дата регистрации: 25.02.2005
Сообщений: 3082
Пост №9
 
20.07.2009 14:09

Не собьется если не менять реквизит упорядочивания в выборке, то есть, код или наименование

zak555 (398843952)
читатель
офлайн
Дата регистрации: 27.03.2008
Сообщений: 4656
Пост №10
 
20.07.2009 14:20

> Не собьется если не менять реквизит упорядочивания в выборке, то есть, код или наименование<br><br>упорядочивание идёт (если не указано иного) по представлению справочника...<br><br>но кажись собьется - позже может пример покажу

Показывать по 10 20 40 сообщений

Читают тему:

1 гостей
Быстрый переход
Для технических специалистов
  • Книга жалоб и предложений по работе сайта
  • Для технических специалистов
  • Представление регламентированной отчетности
  • Говорильня
  • Бухгалтерский учет: обсуждаем проекты нормативных актов и рекомендаций по ведению учета от БМЦ
  • Новый порядок применения ККТ (онлайн кассы с передачей сведений в ФНС)
  • Интернет-конференция: Оформление командировок по новым правилам
  • МАРКИРОВКА
  • ЕГАИС
  • Учет, налогообложение, автоматизация