Вход | Регистрация
 
1С:Предприятие :: 1С:Предприятие 7.7 и ранее

v7: Вывести список контрагентов по признаку

v7: Вывести список контрагентов по признаку
Я
   Pechka
 
16.01.13 - 09:18
Добрый день,помогите пожалуйста с условием-мне нужно вывести список контрагентов с данными,кроме тех,у кого в договоре  записано состояние договора - Закрыт..у меня выходят все контрагенты,Исправьте пожалуйста,если,что не верно.
Процедура Сформировать()
   Таб = СоздатьОбъект("Таблица");
   Таб.ИсходнаяТаблица("Таблица");
   //Таб.ВывестиСекцию("Шапка");
   Состояние("Заполнение выходной таблицы...");
   Таб.Опции(0, 0, Таб.ВысотаТаблицы(), 0);
       Таб.ВывестиСекцию("Шапка");

контр=СоздатьОбъект("Справочник.Контрагенты");
    контр.ВыбратьЭлементы();
    Пока контр.ПолучитьЭлемент()=1  Цикл
         Если контр.ЭтоГруппа()=1  Тогда
               продолжить;
         КонецЕсли;
         Если контр.ПометкаУдаления()=1  Тогда
               продолжить;
         КонецЕсли;
         
         //Если контр.ПринадлежитГруппе(Служ)  = 1 тогда
         //    прервать;
         //конецЕсли;    
         
         дог=СоздатьОбъект("Справочник.Договоры");
         дог.ИспользоватьВладельца(контр);
         КонтрАктуальный=0;
         дог.ВыбратьЭлементы();
         Пока дог.ПолучитьЭлемент()=1  Цикл
             Если ПустоеЗначение(дог.КМ_СостояниеДоговора)=1 Тогда
                 КонтрАктуальный=1;
                 прервать;
             КонецЕсли;
             
             Если  дог.КМ_СостояниеДоговора.Закрыт = 0 Тогда
                 КонтрАктуальный=1;
                 продолжить;
             КонецЕсли;
         КонецЦикла;
         

       
         
         ПКод = контр.код;
         ППолнНаименование = контр.ПолнНаименование;
         МКрНаименование   = контр.Наименование;
         Пинн          = контр.ИНН;  
         ЮрАдрес   =   контр.ЮридическийАдрес;
         Рег      =    контр.КМ_Регион;
         Гор      = контр.КМ_Город;
         

   
             Таб.ВывестиСекцию("Строка");
             Таб.ТолькоПросмотр(1);
       Таб.Показать("Таблица", "");
       КонецЦикла;    
   

КонецПроцедуры
 
 
   cw014
 
1 - 16.01.13 - 09:20
А запрос не подходит?
   mikecool
 
2 - 16.01.13 - 09:20
на запрос бы это переписать
а так - перебрать договоры, если статус = Закрыт - вывести данные владельца
   1Сергей
 
3 - 16.01.13 - 09:20
тип дог.КМ_СостояниеДоговора ?
   Гефест
 
4 - 16.01.13 - 09:21
ну так у тебя сделана проверка, результат которой не учитывается при выводе контрагента
   Heckfy
 
5 - 16.01.13 - 09:21
Все не так. Запрос нужен.

А по коду, тут не так:
Если ПустоеЗначение(дог.КМ_СостояниеДоговора)=1 Тогда
                   КонтрАктуальный=1;
                   прервать;
               КонецЕсли;
               
               Если  дог.КМ_СостояниеДоговора.Закрыт = 0 Тогда
                   КонтрАктуальный=1;
                   продолжить;
               КонецЕсли;
   Mikeware
 
6 - 16.01.13 - 09:21
а как исправить ДНК?
   1Сергей
 
7 - 16.01.13 - 09:22
достаточно добавить одну строку
Если КонтрАктуальный<> Тогда Продолжить; КонецЕсли;
   Pechka
 
8 - 16.01.13 - 09:28
(7)КонтрАктуальный не равен чему?
   monsterZE
 
9 - 16.01.13 - 09:34
а на словах могешь объяснть, что вот это должно делать?
-- 
           Пока дог.ПолучитьЭлемент()=1  Цикл
               Если ПустоеЗначение(дог.КМ_СостояниеДоговора)=1 Тогда
                   КонтрАктуальный=1;
                   прервать;
               КонецЕсли;
               
               Если  дог.КМ_СостояниеДоговора.Закрыт = 0 Тогда
                   КонтрАктуальный=1;
                   продолжить;
               КонецЕсли;
           КонецЦикла; 
--
если че, продолжить внутри вложенного цикла продолжает вложенный цикл =)
   PuhUfa
 
10 - 16.01.13 - 09:35
(8) а если 5 договоров и только 2 из них "закрыты"?
ps правильный ответ в (5)
   1Сергей
 
11 - 16.01.13 - 09:36
(8) сама не догадаешься?
   monsterZE
 
12 - 16.01.13 - 09:40
и КонтрАктуальный зачем? оно где-то используется?
   Pechka
 
13 - 16.01.13 - 09:42
с запросом получилось,спасибо всем)
   1Сергей
 
14 - 16.01.13 - 09:46
(13) да????
недооценили. в (0) вопрос-то глупый

Список тем форума
Рекламное место пустует  Рекламное место пустует
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.
Тема не обновлялась длительное время, и была помечена как архивная. Добавление сообщений невозможно.
Но вы можете создать новую ветку и вам обязательно ответят!
Каждый час на Волшебном форуме бывает более 2000 человек.