7.7 Как сделать?

Тема в разделе "Конфигурирование на платформе "1С:Предприятие 7.7"", создана пользователем quadros, 25 июн 2007.

  1. TopicStarter Overlay
    quadros
    Offline

    quadros

    Регистрация:
    21 май 2007
    Сообщения:
    16
    Симпатии:
    0
    Баллы:
    1
    Подскажите пожалуйста как сделать чтобы в этот отчет не попадали автомобили у которых стоит "признак" "1" в справочнике транспорт.

    Процедура ПоАвт()
    ВыдачаПодОтч=СоздатьОбъект("СписокЗначений");
    П1=101; НачПер1= НачПер; РасхКол="";РасхКолВес="";Заг="";Заг1="";
    Пока НачПер1<=КонПер Цикл
    ДокНач=СоздатьОбъект ("Документ.ПутевыеЛистыАвт");
    ДокНач.ВыбратьДокументы(НачПер1,НачПер1) ;
    Пока ДокНач.ПолучитьДокумент()=1 Цикл
    ДокНач.ВыбратьСтроки();
    Пока ДокНач.ПолучитьСтроку()=1 Цикл
    Если (ДокНач.Призн=0) И (Центр=1) Или (ДокНач.Призн=1) И (Блиставиця=1) Или (ДокНач.Призн=2) И (Нал=1) Или (Центр=1) И (Блиставиця=1) И (Нал=1) Тогда
    Если (ДокНач.Заправка<>0) Тогда
    Предст=""+ДокНач.ТрСредство+"~~~"+ДокНач.Топливо;
    П01=0+ВыдачаПодОтч.Получить(Предст);
    Если ДокНач.Призн<3 Тогда
    П01 =П01+ ДокНач.Заправка;
    КонецЕсли;
    Если ДокНач.Призн=5 Тогда
    П01 =П01- ДокНач.Заправка;
    КонецЕсли;
    ВыдачаПодОтч.Установить( Предст,П01);
    КонецЕсли;
    КонецЕсли;

    КонецЦикла;
    КонецЦикла;


    НачПер1=НачПер1+1; П1=П1+1;
    КонецЦикла;

    ВыдачаПодОтч.СортироватьПоПредставлению();

    Таб=СоздатьОбъект("Таблица");
    Если (Авт=0) Тогда
    Таб.ВывестиСекцию("Секция_3");
    КонецЕсли;


    П1=1; Ит=0; ФИО= "";ФИО1= "";
    Пока (П1<=ВыдачаПодОтч.РазмерСписка()) Цикл
    Кол=ВыдачаПодОтч.ПолучитьЗначение(П1,Предст);
    Разд=Найти(Предст,"~~~"); ФИО=Лев(Предст,Разд-1);ВидПММ=Сред(Предст,Разд+3);
    Если (П1=1) Тогда
    Таб.ВывестиСекцию("Секция_5");
    КонецЕсли;
    Если (ФИО<>ФИО1 ) И (П1<>1) Тогда
    Таб.ВывестиСекцию("Секция_1");
    КонецЕсли;
    Если (Кол<>0) Тогда
    Таб.ВывестиСекцию("Секция_2");
    КонецЕсли;


    Если (ВидПММ=ПММ.Наименование) Тогда
    Сообщить(""+ФИО+" "+Кол+" "+ВидПММ);
    Ит=Ит+Кол;
    КонецЕсли;
    П1= П1+1; ФИО1=ФИО;
    КонецЦикла;
    Сообщить("Всего "+Ит);
    КонецПроцедуры
    спасибо
  2. WaRDeR
    Offline

    WaRDeR Модераторы Команда форума Модератор

    Регистрация:
    23 ноя 2006
    Сообщения:
    3.263
    Симпатии:
    14
    Баллы:
    29
    Фирма "1С" для формирования отчетов придумало такую штуку, как "Запрос".
    Если в твоей ИБ будет боле 100-150 элементов, то использование запроса по сравнению с перебором уже будет заметно (и чем больше база, тем заметнее).
    ----
    Конкретно по вопросу, нужно поставить условие, типа
    Если д.а.Признак = 1 тогда
    Продолжить;
    КонецЕсли;

    но вот это "д.а." сложно сказать как будет выглядеть у тебя, и куда поставить условие, не видя структуру ИБ.
  3. TopicStarter Overlay
    quadros
    Offline

    quadros

    Регистрация:
    21 май 2007
    Сообщения:
    16
    Симпатии:
    0
    Баллы:
    1
    Спасибо за помощь понимание пришло. с делал так
    Процедура ПоАвт()
    ВыдачаПодОтч=СоздатьОбъект("СписокЗначений");
    П1=101; НачПер1= НачПер; РасхКол="";РасхКолВес="";Заг="";Заг1="";
    Пока НачПер1<=КонПер Цикл
    ДокНач=СоздатьОбъект ("Документ.ПутевыеЛистыАвт");
    ДокНач.ВыбратьДокументы(НачПер1,НачПер1) ;
    Пока ДокНач.ПолучитьДокумент()=1 Цикл
    Если 0+ДокНач.ТрСредство.П=0 Тогда
    ДокНач.ВыбратьСтроки();
    Пока ДокНач.ПолучитьСтроку()=1 Цикл
    Если (ДокНач.Призн=0) И (Центр=1) Или (ДокНач.Призн=1) И (Блиставиця=1) Или (ДокНач.Призн=2) И (Нал=1) Или (Центр=1) И (Блиставиця=1) И (Нал=1) Тогда
    Если (ДокНач.Заправка<>0) Тогда
    Предст=""+ДокНач.ТрСредство+"~~~"+ДокНач.Топливо;
    П01=0+ВыдачаПодОтч.Получить(Предст);
    Если ДокНач.Призн<3 Тогда
    П01 =П01+ ДокНач.Заправка;
    КонецЕсли;
    Если ДокНач.Призн=5 Тогда
    П01 =П01- ДокНач.Заправка;
    КонецЕсли;
    ВыдачаПодОтч.Установить( Предст,П01);
    КонецЕсли;
    КонецЕсли;
    КонецЦикла;
    КонецЕсли;
    КонецЦикла;

Поделиться этой страницей