|
v7: Вывести список контрагентов по признаку | ☑ | ||
---|---|---|---|---|
0
Pechka
16.01.13
✎
09:18
|
Добрый день,помогите пожалуйста с условием-мне нужно вывести список контрагентов с данными,кроме тех,у кого в договоре записано состояние договора - Закрыт..у меня выходят все контрагенты,Исправьте пожалуйста,если,что не верно.
Процедура Сформировать() Таб = СоздатьОбъект("Таблица"); Таб.ИсходнаяТаблица("Таблица"); //Таб.ВывестиСекцию("Шапка"); Состояние("Заполнение выходной таблицы..."); Таб.Опции(0, 0, Таб.ВысотаТаблицы(), 0); Таб.ВывестиСекцию("Шапка"); контр=СоздатьОбъект("Справочник.Контрагенты"); контр.ВыбратьЭлементы(); Пока контр.ПолучитьЭлемент()=1 Цикл Если контр.ЭтоГруппа()=1 Тогда продолжить; КонецЕсли; Если контр.ПометкаУдаления()=1 Тогда продолжить; КонецЕсли; //Если контр.ПринадлежитГруппе(Служ) = 1 тогда // прервать; //конецЕсли; дог=СоздатьОбъект("Справочник.Договоры"); дог.ИспользоватьВладельца(контр); КонтрАктуальный=0; дог.ВыбратьЭлементы(); Пока дог.ПолучитьЭлемент()=1 Цикл Если ПустоеЗначение(дог.КМ_СостояниеДоговора)=1 Тогда КонтрАктуальный=1; прервать; КонецЕсли; Если дог.КМ_СостояниеДоговора.Закрыт = 0 Тогда КонтрАктуальный=1; продолжить; КонецЕсли; КонецЦикла; ПКод = контр.код; ППолнНаименование = контр.ПолнНаименование; МКрНаименование = контр.Наименование; Пинн = контр.ИНН; ЮрАдрес = контр.ЮридическийАдрес; Рег = контр.КМ_Регион; Гор = контр.КМ_Город; Таб.ВывестиСекцию("Строка"); Таб.ТолькоПросмотр(1); Таб.Показать("Таблица", ""); КонецЦикла; КонецПроцедуры |
|||
1
cw014
16.01.13
✎
09:20
|
А запрос не подходит?
|
|||
2
mikecool
16.01.13
✎
09:20
|
на запрос бы это переписать
а так - перебрать договоры, если статус = Закрыт - вывести данные владельца |
|||
3
1Сергей
16.01.13
✎
09:20
|
тип дог.КМ_СостояниеДоговора ?
|
|||
4
Гефест
16.01.13
✎
09:21
|
ну так у тебя сделана проверка, результат которой не учитывается при выводе контрагента
|
|||
5
Heckfy
16.01.13
✎
09:21
|
Все не так. Запрос нужен.
А по коду, тут не так: Если ПустоеЗначение(дог.КМ_СостояниеДоговора)=1 Тогда КонтрАктуальный=1; прервать; КонецЕсли; Если дог.КМ_СостояниеДоговора.Закрыт = 0 Тогда КонтрАктуальный=1; продолжить; КонецЕсли; |
|||
6
Mikeware
16.01.13
✎
09:21
|
а как исправить ДНК?
|
|||
7
1Сергей
16.01.13
✎
09:22
|
достаточно добавить одну строку
Если КонтрАктуальный<> Тогда Продолжить; КонецЕсли; |
|||
8
Pechka
16.01.13
✎
09:28
|
(7)КонтрАктуальный не равен чему?
|
|||
9
monsterZE
16.01.13
✎
09:34
|
а на словах могешь объяснть, что вот это должно делать?
-- Пока дог.ПолучитьЭлемент()=1 Цикл Если ПустоеЗначение(дог.КМ_СостояниеДоговора)=1 Тогда КонтрАктуальный=1; прервать; КонецЕсли; Если дог.КМ_СостояниеДоговора.Закрыт = 0 Тогда КонтрАктуальный=1; продолжить; КонецЕсли; КонецЦикла; -- если че, продолжить внутри вложенного цикла продолжает вложенный цикл =) |
|||
10
PuhUfa
16.01.13
✎
09:35
|
(8) а если 5 договоров и только 2 из них "закрыты"?
ps правильный ответ в (5) |
|||
11
1Сергей
16.01.13
✎
09:36
|
(8) сама не догадаешься?
|
|||
12
monsterZE
16.01.13
✎
09:40
|
и КонтрАктуальный зачем? оно где-то используется?
|
|||
13
Pechka
16.01.13
✎
09:42
|
с запросом получилось,спасибо всем)
|
|||
14
1Сергей
16.01.13
✎
09:46
|
(13) да????
недооценили. в (0) вопрос-то глупый |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |