![](http://progsfor1c.ru/wp-content/uploads/2013/05/%D0%9E%D0%B1%D1%80%D0%B0%D0%B1%D0%BE%D1%82%D0%BA%D0%B0-%D1%83%D0%B4%D0%B0%D0%BB%D0%B5%D0%BD%D0%B8%D1%8F-%D0%B2%D0%B5%D1%80-02.png) Весьма часто при разработке и внедрении конфигураций возникает необходимость в разработке алгоритма, который выполняет обход объектов информационной базы и вносит в них некоторые изменения. При реализации такого алгоритма в определенных случаях возникают ситуации, когда после изменения объекта не выполняется продолжение выборки следующих объектов. Это объясняется тем, что последовательная выборка и изменение объектов выполняются непосредственно в информационной базе. В основном проблемы возникают в тех случаях, когда при записи изменяются именно те данные, по которым собственно и происходит отбор объектов. В результате текущий объект не должен больше относиться к выборке и само продолжение выборки не выполняется системой. Например, в процессе перебора подчиненных документов, у найденного документа изменяется реквизит, в котором собственно записано значение того документа, для которого выбираются подчиненные. Ситуация осложняется тем, что при использовании методов языка разработчик конфигурации не всегда может точно определить каким способом система будет выполнять перебор объектов. Прежде всего, можно рекомендовать не выполнять изменение данных тем же объектом (переменной) которой выполняется выбора, а создать для этой цели отдельную переменную и позиционировать ее на выбранный объект информационной базы. Чтобы однозначно избежать трудностей при разработке подобных алгоритмов имеет смысл сначала выполнить обход объектов по некоторому критерию и занести их в список значений, а затем позиционироваться на каждый объект, содержащийся в списке и выполнять необходимые изменения. Следует заметить, что при выполнении выборки объектов информационной базы с помощью объекта "Запрос" подобных проблем не возникает, так как при обходе результатов запроса используется временный массив построенный в ходе выполнения запроса.
|