Имя: Пароль:
1C
1C 7.7
v7: Цикл по таблице значений проходит всего 1 раз, непонятно почему...
0 Босечка
 
09.08.13
09:59
Цикл по таблице значений проходит всего 1 раз, непонятно почему...


Функция ПолучитьСушку(ОсновнаяР)
СпрП=СоздатьОбъект("Справочник.ВидРаботПодч");

            СпрП.ИспользоватьВладельца(ОсновнаяР);
            СпрП.ВыбратьЭлементы(1);
            Пока СпрП.ПолучитьЭлемент()=1 цикл
                Если СпрП.Сушка=1 тогда
                    СушкаРабота=СпрП.ТекущийЭлемент();
                    
                Конецесли;
            КонецЦикла;    
Возврат  СушкаРабота;
Конецфункции


Процедура Сформировать()
Док=СоздатьОбъект("Документ.БазовыйНаборРабот");
Т=СоздатьОбъект("ТаблицаЗначений");

СпрП=СоздатьОбъект("Справочник.ВидРаботПодч");
Док.ВыбратьДокументы(Дата1,Дата2);

Пока Док.ПолучитьДокумент()=1 цикл
    Док.ВыгрузитьТабличнуюЧасть(Т);

    Т.ВыбратьСтроки();
    Пока Т.ПолучитьСТроку()=1 цикл
        
        Сообщить("работа "+Т.ПодчРабота);
        Если Т.ПодчРабота.Сушка=1 тогда
            продолжить;
        Конецесли;    

        Если Т.ПодчРабота.Окр=1 тогда    
            Осн=Т.ПодчРабота.Владелец;
            Очер=Т.Оч;
            Т.НоваяСтрока();
            Т.Работа=Осн;

            СушкаРабота1=ПолучитьСушку(Осн);
            Т.ПодчРабота=СушкаРабота1;
            Т.Оч=Очер+0.1;
        Конецесли;
        
    КонецЦикла;    
Док.ЗагрузитьТабличнуюЧасть(Т);    
Док.Записать();
КонецЦикла;
1 Ёпрст
 
гуру
09.08.13
10:00
а нефик в цикле выборки тз ей новые строки лепить - сбиваешь выборку этим.
2 Ёпрст
 
гуру
09.08.13
10:01
если очень хочется, то так тогда:

//Т.ВыбратьСтроки();
   // Пока Т.ПолучитьСТроку()=1 цикл
   Для к = 1 по Т.КоличествоСтрок() Цикл
      Т.ПолучиьСтрокуПоНомеру(к);
3 Босечка
 
09.08.13
10:02
Понятно. Попробую.
4 Босечка
 
09.08.13
10:04
Спасибо!!!!! Все получилось!!!!!!!!!!!!!!!!!
2 + 2 = 3.9999999999999999999999999999999...