Имя: Пароль:
1C
1С v8
Помогите с циклом
0 Nikasak
 
06.10.21
12:31
Помогите пож-та с циклом

Если  ВыборкаДетальныеЗаписи.СтатусЗаявки=ПредопределенноеЗначение("Перечисление.СтатусЗаявки.ВозвращенаВРазработку")
     Тогда ОбластьДанные.Параметры.Возвращена = ВыборкаДетальныеЗаписи.Номер
ИначеЕсли  ВыборкаДетальныеЗаписи.СтатусЗаявки=ПредопределенноеЗначение("Перечисление.СтатусЗаявки.Выполнена")
     Тогда ОбластьДанные.Параметры.Выполнена = ВыборкаДетальныеЗаписи.Номер
ИначеЕсли  ВыборкаДетальныеЗаписи.СтатусЗаявки=ПредопределенноеЗначение("Перечисление.СтатусЗаявки.НаВыполнении")
          Тогда ОбластьДанные.Параметры.НаВыполнении = ВыборкаДетальныеЗаписи.Номер
ИначеЕсли  ВыборкаДетальныеЗаписи.СтатусЗаявки=ПредопределенноеЗначение("Перечисление.СтатусЗаявки.НаТесте")
          Тогда    ОбластьДанные.Параметры.НаТесте = ВыборкаДетальныеЗаписи.Номер
ИначеЕсли  ВыборкаДетальныеЗаписи.СтатусЗаявки=ПредопределенноеЗначение("Перечисление.СтатусЗаявки.Отменена")
          Тогда ОбластьДанные.Параметры.Отменена = ВыборкаДетальныеЗаписи.Номер
ИначеЕсли  ВыборкаДетальныеЗаписи.СтатусЗаявки=ПредопределенноеЗначение("Перечисление.СтатусЗаявки.Принята")
        Тогда   ОбластьДанные.Параметры.Принята = ВыборкаДетальныеЗаписи.Номер
    ИначеЕсли  ВыборкаДетальныеЗаписи.СтатусЗаявки=" "
        Тогда ОбластьДанные.Параметры.НеРаспределено = ВыборкаДетальныеЗаписи.Номер
        Иначе Продолжить
1 Малыш Джон
 
06.10.21
12:32
это не цикл, а условия ветвления
2 Nikasak
 
06.10.21
12:32
В тч выводится
Принята    На выполнении    На тесте    Отменена    Возвращена в разработку    Выполнена    Не распределено
                000002        
                000010        
    000003            000010        
    000007            000010        
000001    000007            000010        
000006    000007            000010        
000006    000007    000005        000010        
000006    000007    000008        000010        
000006    000007    000008        000010    000004    
000006    000007    000008    000009    000010    000004
3 Nikasak
 
06.10.21
12:33
Принята    На выполнении    На тесте    Отменена    Возвращена в разработку    Выполнена    Не распределено
                000002        
                000010        
    000003            000010        
    000007            000010        
000001    000007            000010        
000006    000007            000010        
000006    000007    000005        000010        
000006    000007    000008        000010        
000006    000007    000008        000010    000004    
000006    000007    000008    000009    000010    000004
4 Ёпрст
 
гуру
06.10.21
12:33
(0) помогаю. Ничего не понятно, но очень интересно
5 Nikasak
 
06.10.21
12:34
повторяются номера
6 Малыш Джон
 
06.10.21
12:36
(5) хммм... наблюдательность - это хорошо
7 Ёпрст
 
гуру
06.10.21
12:36
Итоги помогут и выборка по группировкам
8 hhhh
 
06.10.21
12:37
(2) это вывод надо смотреть
9 youalex
 
06.10.21
12:40
соответствие сделай, где в ключе будут значения перечислений - в значении - имя параметра
10 PLUT
 
гуру
06.10.21
12:43
(5) для заявок это нормально.

у заявки статусы меняются, наверно в какой-то регистр сведений пишется смена статусов

срезпоследних в запросе тебе в помощь :)
11 1Сергей
 
06.10.21
12:46
Очищать параметры не предлагали ещё?
12 PLUT
 
гуру
06.10.21
12:47
(11) ну еще кэш почистить можно предложить :)
13 Nikasak
 
06.10.21
12:49
Данные беру запросом и документа.     Задача выводить в колонку только номер дока со статусом колонки

Регистров нет
14 1Сергей
 
06.10.21
12:50
ОбластьДанные.Параметры.Возвращена = "";
ОбластьДанные.Параметры.Выполнена = "";
ОбластьДанные.Параметры.НаВыполнении = "";
ОбластьДанные.Параметры.НаТесте = "";
ОбластьДанные.Параметры.Отменена = "";
ОбластьДанные.Параметры.Принята = "";
ОбластьДанные.Параметры.НеРаспределено = "";

Если  ВыборкаДетальныеЗаписи.СтатусЗаявки=ПредопределенноеЗначение("Перечисление.СтатусЗаявки.ВозвращенаВРазработку")
     Тогда ОбластьДанные.Параметры.Возвращена = ВыборкаДетальныеЗаписи.Номер
ИначеЕсли  ВыборкаДетальныеЗаписи.СтатусЗаявки=ПредопределенноеЗначение("Перечисление.СтатусЗаявки.Выполнена")
     Тогда ОбластьДанные.Параметры.Выполнена = ВыборкаДетальныеЗаписи.Номер
ИначеЕсли  ВыборкаДетальныеЗаписи.СтатусЗаявки=ПредопределенноеЗначение("Перечисление.СтатусЗаявки.НаВыполнении")
          Тогда ОбластьДанные.Параметры.НаВыполнении = ВыборкаДетальныеЗаписи.Номер
ИначеЕсли  ВыборкаДетальныеЗаписи.СтатусЗаявки=ПредопределенноеЗначение("Перечисление.СтатусЗаявки.НаТесте")
          Тогда    ОбластьДанные.Параметры.НаТесте = ВыборкаДетальныеЗаписи.Номер
ИначеЕсли  ВыборкаДетальныеЗаписи.СтатусЗаявки=ПредопределенноеЗначение("Перечисление.СтатусЗаявки.Отменена")
          Тогда ОбластьДанные.Параметры.Отменена = ВыборкаДетальныеЗаписи.Номер
ИначеЕсли  ВыборкаДетальныеЗаписи.СтатусЗаявки=ПредопределенноеЗначение("Перечисление.СтатусЗаявки.Принята")
        Тогда   ОбластьДанные.Параметры.Принята = ВыборкаДетальныеЗаписи.Номер
    ИначеЕсли  ВыборкаДетальныеЗаписи.СтатусЗаявки=" "
        Тогда ОбластьДанные.Параметры.НеРаспределено = ВыборкаДетальныеЗаписи.Номер
        Иначе Продолжить
15 PLUT
 
гуру
06.10.21
12:51
(13) РезЗапроса.Выгрузить().ВыбратьСтроку()

посмотри глазками результат запроса. может так понятнее станет?
16 PLUT
 
гуру
06.10.21
12:53
(13) если регистров нет, то статус заявки нужен последний?

тады максимум по дате статуса заявки в запросе

(загугли срез последних на каждую дату в запросе)
17 PLUT
 
гуру
06.10.21
12:57
а вообще в (0) г.внокод

добавьте регистр сведений для  "истории статусов" заявок
18 Nikasak
 
06.10.21
13:00
1Сергей Спасибо    Очищать не додумался
19 Nikasak
 
06.10.21
13:31
Так нужна не история статусов, текущее состояние(17)
20 PLUT
 
гуру
06.10.21
13:50
(19) при нормально спроектированной "архитектуре" не нужно столько кода (0) и если иначе если тогда иначе и циклы с прервать и продолжить и вызватьисключение
21 Мультук
 
гуру
06.10.21
15:47
(0)

Если ЗначениеЗаполнено(ВыборкаДетальныеЗаписи.СтатусЗаявки) Тогда
    ИмяПоля = XMLСтрока(ВыборкаДетальныеЗаписи.СтатусЗаявки);
    областьДанные.Параметры[ИмяПоля] =  ВыборкаДетальныеЗаписи.Номер;
Иначе
    ОбластьДанные.Параметры.НеРаспределено = ВыборкаДетальныеЗаписи.Номер;
КонецЕсли;    

//
1) областьДанные.Параметры[ИмяПоля] -- не проверял, но должно работать. В хелпе написано, что вроде умеет []
2) Ситуацию с "продолжить" наверное, можно-нужно решить еще в запросе