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

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

Быстрый переход