<br>> но кажись собьется - позже может пример покажу<br><br>значит с чем-то спутал... ))))
<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>КонецЦикла;"
20 ноября 2024 года — Единый торговый семинар 1С 10 декабря 2024 года — Практическая конференция «День Документооборота» |
1C:Лекторий: 19 ноября 2024 года, начало в 12:00 — Бесплатная онлайн-лекция об онлайн-кассах: как правильно выбрать смарт-терминал 1C:Лекторий: 21 ноября 2024 года, начало в 12:00 — Бесплатная онлайн-лекция «Зачем организации переходить на КЭДО» |