8.х 1с вернуться к определенному месту в процедуре

Тема в разделе "Конфигурирование на платформе "1С:Предприятие 8"", создана пользователем Raideres, 21 июл 2017.

  1. TopicStarter Overlay
    Raideres
    Offline

    Raideres Опытный в 1С

    Регистрация:
    9 фев 2016
    Сообщения:
    482
    Симпатии:
    1
    Баллы:
    29
    Мне нужно выполнить процедуру такого вида на уф подскажите как такое реализовать

    Код:
    Процедура Выполнить()
    П=1;
    суда нужно вернуться
    Если П=0 тогда
    код
    КонецЕсли
    
    
    если н=0 тогда
         П=0;
    отсуда вернуться наверх
    КонецЕсли
    
    
    КонецПроцедуры
  2. nomad_irk
    Offline

    nomad_irk Гуру в 1С

    Регистрация:
    20 окт 2008
    Сообщения:
    9.411
    Симпатии:
    974
    Баллы:
    204
    Рекурсия?
  3. Dem0lisher
    Offline

    Dem0lisher Профессионал в 1С

    Регистрация:
    4 авг 2009
    Сообщения:
    1.257
    Симпатии:
    100
    Баллы:
    104
    делайте в цикле
    Пока Истина Цикл
    //тут пишите любую ерунду, но не забывайте, что нужно будет предусмотреть выход из цикла (при выполнении какого-то условия написать "Прервать;")
    КонецЦикла;
    Чтобы вернутся - можно вызвать Продолжить; в рамках цикла - цикл перейдет на новую итерацию и ваши "ежели" будут заново пробегаться
  4. TerANik
    Offline

    TerANik Профессионал в 1С

    Регистрация:
    19 ноя 2014
    Сообщения:
    1.265
    Симпатии:
    95
    Баллы:
    54
    Интересный момент, а если разобраться в логике? Которая как я думаю отсутствует или не правильная или задача не полностью поставлена.

    Процедура Выполнить()
    //Присвоили П=1
    П=1;
    суда нужно вернуться
    // Потом проверяем не равно ли П нулю, но с точки зрения логики оно и не может быть равно нулю, так как между присвоением П=1 и проверкой условия нет кода..
    Если П=0 тогда
    код
    КонецЕсли

    //Если н=0 тогда п=о и возвращаемся.... а зачем? т.е. по всей логике кода, наш код должен выполняться не когда п=0, а когда н = 0 и выглядеть должно вот так
    если н=0 тогда
    //П=0;
    код
    //отсуда вернуться наверх
    КонецЕсли


    КонецПроцедуры

    Или я чего то не понимаю?
  5. nbIpKuH_BaH9I
    Offline

    nbIpKuH_BaH9I Модераторы Команда форума Модератор

    Регистрация:
    16 сен 2009
    Сообщения:
    7.907
    Симпатии:
    506
    Баллы:
    204
    Оператор безусловного перехода (goto) 1С
    Код:
    Перейти ~Метка!;   
    
    ~ Метка!:
     Сообщить("Осуществлен переход по метке.");
    Но это считается дурным тоном программирования в 1С. И за использование метки руки надо отрывать. Но судя по вопросу это то о чем вы спрашиваете.
  6. TerANik
    Offline

    TerANik Профессионал в 1С

    Регистрация:
    19 ноя 2014
    Сообщения:
    1.265
    Симпатии:
    95
    Баллы:
    54
    А меня всё же раздирает понять полностью задачу, думаю можно пересмотреть алгоритм будет
  7. nomad_irk
    Offline

    nomad_irk Гуру в 1С

    Регистрация:
    20 окт 2008
    Сообщения:
    9.411
    Симпатии:
    974
    Баллы:
    204
    Саш, лично я не думаю, я знаю, что нужно пересматривать алгоритм :)
  8. TerANik
    Offline

    TerANik Профессионал в 1С

    Регистрация:
    19 ноя 2014
    Сообщения:
    1.265
    Симпатии:
    95
    Баллы:
    54
    -Happy--Hilarious- я скромнее тебя... поэтому написал что думаю..
  9. nickpugachev
    Offline

    nickpugachev Профессионал в 1С Команда форума

    Регистрация:
    28 май 2012
    Сообщения:
    3.397
    Симпатии:
    155
    Баллы:
    104
    Не сделала 1С циклы с постусловием :)

    Метка не нужна, нужен обычный цикл Пока

    Код:
    Процедура Выполнить()
    П=1;
    ПервыйПроход = Истина; // либо если н не задано изначально, а вычисляется только внутри цикла, то просто н=0 чтобы первый раз условие выполнилось
    Пока ПервыйПроход Или н=0 Цикл
      ПервыйПроход = Ложь;
    
      Если П=0 тогда
        код
      КонецЕсли
    
      если н=0 тогда
        П=0;
      КонецЕсли
    КонецЦикла
    
    
    КонецПроцедуры
    
  10. TopicStarter Overlay
    Raideres
    Offline

    Raideres Опытный в 1С

    Регистрация:
    9 фев 2016
    Сообщения:
    482
    Симпатии:
    1
    Баллы:
    29
    такая задача потребовалась из за того что не хотелось сильно переписывать стандартный код 1с
  11. nbIpKuH_BaH9I
    Offline

    nbIpKuH_BaH9I Модераторы Команда форума Модератор

    Регистрация:
    16 сен 2009
    Сообщения:
    7.907
    Симпатии:
    506
    Баллы:
    204
    Конкретно по теме. Вы получили ответ на свой вопрос? Если да, то какой?
    Либо озвучьте задачу целиком.
    P.S. Мы все тут сидим, обмениваемся опытом и знаниями. Так что думайте о других людях. Может быть кому-нибудь Ваш вопрос поможет получить новые знания. Может быть в процессе обсуждения и Вы сами придете к мысли осуществить задачу по-другому.
  12. TopicStarter Overlay
    Raideres
    Offline

    Raideres Опытный в 1С

    Регистрация:
    9 фев 2016
    Сообщения:
    482
    Симпатии:
    1
    Баллы:
    29

    Да вы мне и ответили =) ,пользоваться меткой не стал решил задачу просто добавив небольшой кусочек кода

Поделиться этой страницей