Иногда возникает потребность в коде программы совершить прыжок в совершенно другое место программы. Как это реализовано в 1С я сейчас и расскажу.
Для этого в 1С существует оператор «Перейти» . Вот пример кода с его использованием:
Док=СоздатьОбъект("Документ"); Док.ВыбратьДокументы(); Пока Док.ПолучитьДокумент()=1 Цикл Док.ВыбратьСтроки(); Пока Док.ПолучитьСтроку()=1 Цикл Если Док.Товар.Наименование="Нужный нам товар" Тогда Перейти ~а; //метка КонецЕсли; КонецЦикла; КонецЦикла; ~а: //метка Сообщить("Мы нашли нужный нам документ"); //Какието дальнейшие действия по программе
Опишем вышеизложенные действия, допустим нам необходимо найти документ в котором в табличной части есть какой то конкретный товар, в данном случае будет иметь место цикл внутри цикла. Когда мы начнем перебирать строки и наткнемся на нужный нам товар мы должны прекратить дальнейший перебор строк и документов. Оператор «Прервать» завершщает только один из циклов, второй продолжит свою работу, поэтому здесь такой оператор нам не поможет. Выход: воспльзоваться оператором «Переход» указать имя метки и дальнейши код начать с опять таки метки. Возможно немного не понятно описал, но главное что это работает. Количество таких переходов и меток программно не ограничено, правда их использование иногда усложняет читаемость кода программы…
Удачного программирования.