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

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

> но кажись собьется - позже может пример покажу

значит с чем-то спутал... ))))
"Да нет, не совсем спутали. Проблема в самом деле возникает, но при каких то манипуляциях с реквизитом упорядочивания в выборке (например перенумерация) или при смещениях в ней, связанных с прямым удалением элементов (не пометкой на удаление). Вот, например, алгоритм, который вызовет проблему:

Материалы=СоздатьОбъект("Справочник.Материалы");
Материалы.ВыбратьЭлементы();
Пока Материалы.ПолучитьЭлемент()=1 Цикл
  Материалы.Удалить(1);
КонецЦикла;

Движок при этом выкатит ругалку. Но забавно то, такой вот алгоритм проблем не вызывает, хотя, с моей точки зрения, написано одно и то же:

История=СоздатьОбъект("Периодический");
История.ИспользоватьОбъект("НаименованиеРеквизита",СсылкаНаЭлементСправочника);
История.ВыбратьЗначения();
Пока История.ПолучитьЗначение()=1 Цикл
  История.Удалить();
КонецЦикла;

я так и не удосужился посмотреть, корректно ли отрабатывается смещение в выборке в этом случае, поэтому чтоб уж зачистить историю "наверняка", да еще с учетом того, что версии платформы у народа могут быть любые (я ж не знаю чего там 1С в них меняет), пишу так:

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

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