Помогите пожалуйсто. Я новичок. Я создал много уровневый справочник и мне надо сделать отбор элементов по уровням, но не как не получается определить уровень элемента.
Помогите пожалуйсто. Я новичок. Я создал много уровневый справочник и мне надо сделать отбор элементов по уровням, но не как не получается определить уровень элемента.
Функция называется Уровень(). Возвращает номер уровня текущего элемента справочника.
"Помогите, я не совсем понял как работать с функцией перейти<br><br> 1)Пока Ит.ПолучитьСубконто(ВидыСубконто.СтатьиЗатрат) = 1 Цикл <br> 2) Ит.Субконто(ВидыСубконто.СтатьиЗатрат);<br> 3)Пока СпрСт.ПолучитьЭлемент() = 1 Цикл<br> 4) СпрСт.ТекущийЭлемент();<br> 5)Если СпрСт.Уровень() = 1 Тогда<br> 6)Таб.ВывестиСекцию("Субконто1Г");<br> 7)Перейти ...... ;<br> 8) Иначе<br> 9) Таб.ВывестиСекцию("Субконто1");<br> 10) КонецЕсли; <br> 11) КонецЦикла;<br> 12) КонецЦикла; <br><br>Мне надо перейти от строки №7 к строке №12"
Basic рулит!!! . Вообщето есть оператор "Продолжить"
*вздох*<br><br>Prikum прав. Хватит ребячеством заниматься, купите нормальную книгу по алгоритмизации или получите наконец высшее образование по профилю.<br><br>В далёких 60-70-х анализ ошибок показал, что более 1/3 ошибок возникало из-за неправильной организации безусловных переходов (в 1С это команда Перейти). Решением стала "замена" этой команды на эквивалентные, используемые внутри циклов, которые заменили данную команду в 95% случаев. А теперь практика:<br><br>Продолжить - переход к следующей итерации цикла<br>Прервать - выход из цикла<br><br>Единственным случаем для которого осталась необходимость в команде Перейти (ради этого её собственно и оставили) - выход из глубоких циклов. Напр.:<br><br>цикл 1<br> ...<br> цикл 2<br> ...<br> цикл 3<br> ...<br> если Условие тогда<br> перейти метка<br> конецесли<br> конеццикла 3<br> конеццикла 2<br>конеццикла 1<br>метка:<br><br>Дошло?
"Да, сейчас редко в алгоритме встретишь такой прием как безусловный переход. Увидишь и мысль "о, кто то плохо подумал...". Я и из глубоких циклов делаю чуть по другому.<br>ПринудительныйВыход=0;<br>цикл 1<br>...<br>цикл 2<br> ...<br> цикл 3<br> ...<br> если Условие тогда<br> ПринудительныйВыход=1;<br> Прервать;<br> конецесли<br> конеццикла 3<br> Если ПринудительныйВыход=1 Тогда<br> Прервать;<br> КонецЕсли;<br>конеццикла 2<br>Если ПринудительныйВыход=1 Тогда<br> Прервать;<br>КонецЕсли;<br>конеццикла 1<br>"
Это одно из решений, но:<br>1. я бы не назвал его красивым и элегантным<br>2. лишние проверки (а они действительно лишние) не лучшим образом влияют на производительность. И хотя для 1С это не столь важно, но всё же, всё же...
26 апреля 2024 года — Форум пользователей «1С:Документооборота» |
1C:Лекторий: 7 мая 2024 года — Бесплатная онлайн-лекция о новом в 1С:ЗУП (версии 3.1.27-3.1.29): поддержка изменений по налогам и взносам, СЭДО, регистрация в органе статистики и другие изменения 1C:Лекторий: 14 мая 2024 года — Бесплатная онлайн-лекция об учете в 1С:БГУ 8 (ред. 2) невостребованной кредиторами задолженности. Серия 1С:Консалтинг для госсектора |