Имя: Пароль:
1C
1С v8
Перебор таблицы значений
,
0 M0narch
 
29.09.11
16:54
Доброго времени суток. Подскажите, если какой нибудь другой способ перебора ТЗ, кроме цикла ДЛЯ ?
1 СБ с Одинесии
 
29.09.11
16:55
Цикл ПОКА
2 M0narch
 
29.09.11
16:55
уточнение : В 1с 8.2
3 Maxus43
 
29.09.11
16:57
а чем не нравится (0)? просто хочу представить как ещё можно перебрать... в запрос можно запихнуть. что надо то?
4 M0narch
 
29.09.11
17:01
собственно надо по определенному условию получать одну и туже строку два раза
5 Лефмихалыч
 
29.09.11
17:02
цикл со счетчиком еще есть
еще есть возможность запузырить цикл при помои перейти, но так лучше не делать
6 Лефмихалыч
 
29.09.11
17:02
(4) зачем ее получать два раза? что мешает получить один раз и испольовать потом уже полученную?
7 Maxus43
 
29.09.11
17:03
НайтиСтроки(отбор с твоим условием) - результат этой фигни 2 раза используй где хош
8 M0narch
 
29.09.11
17:06
Ситуация такая. Перебираю ТЗ, и заполняю данными табличную часть документа. Когда натыкаюсь на определенное условие, через "ПЕРЕЙТИ ", документ записываю, потом по идее надо текущую строку поместить в новый документ, а у меня цикл ДЛЯ перебрасывает на следующую.
9 Лефмихалыч
 
29.09.11
17:08
копрокодинг детектед
10 Maxus43
 
29.09.11
17:08
(8) те которые надо перебросить в цикле в дургую ТЗ добавляй. после цикла в другой док перебросиш все строки которые надо
11 Cyberhawk
 
29.09.11
20:48
(8) ты опиши детальнее задачу и приведи свой алгоритм - тебе его мигом "отшлифуют" :о)
12 Wobland
 
29.09.11
21:26
Лефмихалыч, радуешь. поддержу
13 kutshai
 
29.09.11
22:51
(8)
   // Создаем первый документ
   ДокПациент = Документы.РеализацияТоваровУслуг.СоздатьДокумент();
   ЗаполнениеШапкиДокумента(ДокПациент);
   
   // первая строка попадает в новый документ
   СтрокаТЗ    = ТЗ[0];
   СтрокаДок    = ДокПациент.Товары.Добавить();
   ЗаполнитьЗначенияСвойств(СтрокаДок,СтрокаТЗ);
   
   КолвоСтрокТЗ = ТЗ.Количество();
   Для Итератор = 1 По КолвоСтрокТЗ Цикл
       СтрокаТЗ    = ТЗ[Итератор];
       Если НаступилоУсловие Тогда
           ДокПациент = Документы.РеализацияТоваровУслуг.СоздатьДокумент();
           ЗаполнениеШапкиДокумента(ДокПациент);
       КонецЕсли;
       СтрокаДок    = ДокПациент.Товары.Добавить();
       ЗаполнитьЗначенияСвойств(СтрокаДок,СтрокаТЗ);
   КонецЦикла;

Лефмихалыч, Wobland, копро? интересно мнение
14 acsent
 
29.09.11
23:04
Обход ТЗ по группировкам? Хорошая задачка ))
15 muffol
 
29.09.11
23:06
Для Каждого СтрокаТЗ ИЗ ТЗ Цикл
КонецЦикла;
16 kutshai
 
29.09.11
23:07
забыл записать документ

       Если НаступилоУсловие Тогда
           Докпациент.Записать(РежимЗаписиДокумента.Пыщ);
17 AlexNew
 
29.09.11
23:26
(0) Есть, если нормальный запрос ТЗ не нужно.
18 AlexNew
 
29.09.11
23:27
Запятую забыл.
19 M0narch
 
30.09.11
12:34
Спасибо за ответы и комментарии, переделал алгоритм