Определение уровня элемента справочника
07.04.2008
12:18
#1
Помогите пожалуйсто. Я новичок. Я создал много уровневый справочник и мне надо сделать отбор элементов по уровням, но не как не получается определить уровень элемента.
07.04.2008
14:35
#2
Функция называется Уровень(). Возвращает номер уровня текущего элемента справочника.
07.04.2008
17:01
#3
"Помогите, я не совсем понял как работать с функцией перейти
1)Пока Ит.ПолучитьСубконто(ВидыСубконто.СтатьиЗатрат) = 1 Цикл
2) Ит.Субконто(ВидыСубконто.СтатьиЗатрат);
3)Пока СпрСт.ПолучитьЭлемент() = 1 Цикл
4) СпрСт.ТекущийЭлемент();
5)Если СпрСт.Уровень() = 1 Тогда
6)Таб.ВывестиСекцию("Субконто1Г");
7)Перейти ...... ;
8) Иначе
9) Таб.ВывестиСекцию("Субконто1");
10) КонецЕсли;
11) КонецЦикла;
12) КонецЦикла;
Мне надо перейти от строки №7 к строке №12"
1)Пока Ит.ПолучитьСубконто(ВидыСубконто.СтатьиЗатрат) = 1 Цикл
2) Ит.Субконто(ВидыСубконто.СтатьиЗатрат);
3)Пока СпрСт.ПолучитьЭлемент() = 1 Цикл
4) СпрСт.ТекущийЭлемент();
5)Если СпрСт.Уровень() = 1 Тогда
6)Таб.ВывестиСекцию("Субконто1Г");
7)Перейти ...... ;
8) Иначе
9) Таб.ВывестиСекцию("Субконто1");
10) КонецЕсли;
11) КонецЦикла;
12) КонецЦикла;
Мне надо перейти от строки №7 к строке №12"
07.04.2008
18:17
#5
*вздох*
Prikum прав. Хватит ребячеством заниматься, купите нормальную книгу по алгоритмизации или получите наконец высшее образование по профилю.
В далёких 60-70-х анализ ошибок показал, что более 1/3 ошибок возникало из-за неправильной организации безусловных переходов (в 1С это команда Перейти). Решением стала "замена" этой команды на эквивалентные, используемые внутри циклов, которые заменили данную команду в 95% случаев. А теперь практика:
Продолжить - переход к следующей итерации цикла
Прервать - выход из цикла
Единственным случаем для которого осталась необходимость в команде Перейти (ради этого её собственно и оставили) - выход из глубоких циклов. Напр.:
цикл 1
...
цикл 2
...
цикл 3
...
если Условие тогда
перейти метка
конецесли
конеццикла 3
конеццикла 2
конеццикла 1
метка:
Дошло?
Prikum прав. Хватит ребячеством заниматься, купите нормальную книгу по алгоритмизации или получите наконец высшее образование по профилю.
В далёких 60-70-х анализ ошибок показал, что более 1/3 ошибок возникало из-за неправильной организации безусловных переходов (в 1С это команда Перейти). Решением стала "замена" этой команды на эквивалентные, используемые внутри циклов, которые заменили данную команду в 95% случаев. А теперь практика:
Продолжить - переход к следующей итерации цикла
Прервать - выход из цикла
Единственным случаем для которого осталась необходимость в команде Перейти (ради этого её собственно и оставили) - выход из глубоких циклов. Напр.:
цикл 1
...
цикл 2
...
цикл 3
...
если Условие тогда
перейти метка
конецесли
конеццикла 3
конеццикла 2
конеццикла 1
метка:
Дошло?
08.04.2008
09:35
#6
"Да, сейчас редко в алгоритме встретишь такой прием как безусловный переход. Увидишь и мысль "о, кто то плохо подумал...". Я и из глубоких циклов делаю чуть по другому.
ПринудительныйВыход=0;
цикл 1
...
цикл 2
...
цикл 3
...
если Условие тогда
ПринудительныйВыход=1;
Прервать;
конецесли
конеццикла 3
Если ПринудительныйВыход=1 Тогда
Прервать;
КонецЕсли;
конеццикла 2
Если ПринудительныйВыход=1 Тогда
Прервать;
КонецЕсли;
конеццикла 1
"
ПринудительныйВыход=0;
цикл 1
...
цикл 2
...
цикл 3
...
если Условие тогда
ПринудительныйВыход=1;
Прервать;
конецесли
конеццикла 3
Если ПринудительныйВыход=1 Тогда
Прервать;
КонецЕсли;
конеццикла 2
Если ПринудительныйВыход=1 Тогда
Прервать;
КонецЕсли;
конеццикла 1
"
Читают тему
(гостей: 1)