Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Перебор строк в процедуре ПриОткрытии
Украинский 1С форум: всё про 1С 8.3, 1С 8.2, 1С 8.1, 1С 8.0, 1С 7.7 > Программисту > Программирование в 1С Предприятие 7.7
ZhenyaYa
Здравствуйте! Подскажите, что не так делаю :
Процедура ПриОткрытии()
Если ТипЗначенияСтр(Форма.Параметр)="СписокЗначений" тогда
    СЗ=Форма.Параметр;                        
    Команда=СЗ.Получить("Команда");
    Если "пуск"=Команда тогда
        ВыбратьСтроки();
        Пока ПолучитьСтроку()=1 Цикл  
            сообщить(НомерСтроки);
            Если ПустоеЗначение(КолОтъе)=0 Тогда
                ИзмКолОтъ();
            КонецЕсли;
        КонецЦикла;
        СтатусВозврата(0);                
        Возврат;
    КонецЕсли;
КонецЕсли;

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

Уходит в бесконечный цикл, НомерСтроки показывает всегда равен 1. То есть:
1
1
1
1
1
...
и так до бесконечности
ИзмКолОтъ:

стрКол=0;
    ВыбратьСтроки();
    Пока ПолучитьСтроку()=1 Цикл
        Если ПустоеЗначение(Опорос)=0 Тогда
            стрКол=стрКол+1  
        КонецЕсли;
    КонецЦикла;
    Если стрКол>0 Тогда
    ЖиНаОп=Итог("Жи")/стрКол;
    МеНаОп=Итог("Ме")/стрКол;
    ОтьНаОп=Итог("КолОтъе")/стрКол;
    НепрДниНаОп=Итог("НЕ")/стрКол;
    КонецЕсли;


Я так понимаю что это из-за того что два раза обрабатывает ВыбратьСтроки()? Если да, то как это можно обойти?

Для т=1 По КоличествоСтрок() Цикл
        ПолучитьСтрокуПоНомеру(т);  
            сообщить(НомерСтроки);
            Если ПустоеЗначение(КолОтъе)=0 Тогда
                ИзмКолОтъ();
            КонецЕсли;
        КонецЦикла;


Вродь работает. Всем спасибо smile.gif
jj_mail
Можно попробовать выгрузить табличную часть документа в ТЗ и сделать отдельный обход по ней
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.