1C Программирование

1С код инструкция «Перейти» (Goto)

Иногда возникает потребность в коде программы совершить прыжок в совершенно другое место программы. Как это реализовано в 1С я сейчас и расскажу.

Для этого в 1С существует оператор «Перейти» . Вот пример кода с его использованием:

Док=СоздатьОбъект("Документ");
Док.ВыбратьДокументы();
Пока Док.ПолучитьДокумент()=1 Цикл
    Док.ВыбратьСтроки();
    Пока Док.ПолучитьСтроку()=1 Цикл
        Если Док.Товар.Наименование="Нужный нам товар" Тогда
            Перейти ~а; //метка
        КонецЕсли;
    КонецЦикла;
КонецЦикла;

~а:  //метка
Сообщить("Мы нашли нужный нам документ");
//Какието дальнейшие действия по программе

Опишем вышеизложенные действия, допустим нам необходимо найти документ в котором в табличной части есть какой то конкретный товар, в данном случае будет иметь место цикл внутри цикла. Когда мы начнем перебирать строки и наткнемся на нужный нам товар мы должны прекратить дальнейший перебор строк и документов. Оператор «Прервать» завершщает только один из циклов, второй продолжит свою работу, поэтому здесь такой оператор нам не поможет. Выход: воспльзоваться оператором «Переход» указать имя метки и дальнейши код начать с опять таки метки. Возможно немного не понятно описал, но главное что это работает. Количество таких переходов и меток программно не ограничено, правда их использование иногда усложняет читаемость кода программы…

Удачного программирования.