Имя: Пароль:
1C
1С v8
Как избавиться от модальных окон в цикле ?
0 EarthsSoul
 
21.07.14
11:17
Добрый день

В цикле документы помечаются на удаление. Если у документа имеются подчинённые документы, то выскакивает вопрос "вы действительно хотите пометить на удаление ?".

Вот вопрос как обойтись без модальных окон при переборе массива?


&НаКлиенте
Процедура ОбработкаКоманды(ПараметрКоманды, ПараметрыВыполненияКоманды)
    
Если ТипЗнч(ПараметрКоманды)=Тип("Массив") тогда
        
СписокОбсуждению = ПроверкаДокументов(ПараметрКоманды);
        
МассивКИзменениюПометкиУдаления= Новый Массив;
        
Для Каждого СтрокаМас Из СписокОбсуждению Цикл
            
Если СтрокаМас.МассивПодписей.количество() = 0 Тогда
                
ДокументСсылка = СтрокаМас.Документ;
                МассивКИзменениюПометкиУдаления.Добавить(ДокументСсылка);
                
Иначе
                
ДокументПодписан = "Документ был подписан." + ДокументСсылка+ " Подписавшие: ";
                
Для Каждого строка из СтрокаМас.МассивПодписей цикл
                    
ТекстВопроса =ДокументПодписан+строка.КомуВыданСертификат + " был подписан " + строка.ДатаПодписи + ;
                    
КонецЦикла;
                
ДокументПодписан=ДокументПодписан+" Вы увыерены что хотите пометить на удаление ?";
                
Параметры = Новый Структура("СписокОбсуждению,ДокументСсылка",СписокОбсуждению,ДокументСсылка);
                
Оповещение = Новый ОписаниеОповещения("ПроцедураДальнейшейОбработки",ЭтотОбъект,Параметры);
                
ПоказатьВопрос(Оповещение, ТекстВопроса, РежимДиалогаВопрос.ДаНетОтмена, , КодВозвратаДиалога.Нет, "Пометить на удаление",)
                
КонецЕсли;
            
КонецЦикла;
        
ПометкаУдаленияДокументов(МассивКИзменениюПометкиУдаления);
        
КонецЕсли;
    
    
КонецПроцедуры

Процедура ПроцедураДальнейшейОбработки(Результат,Параметры) Экспорт
    
// какой зедсь написать КОД ?
    
КонецПроцедуры
1 EarthsSoul
 
21.07.14
11:17
2 Lama12
 
21.07.14
11:21
Я бы сделал в лоб.
Либо перед циклом делал список документов имеющих подчиненные, либо в процессе цикла перед пометкой.
Если в цикле нашлось что имеются подчиненные документы, то их пропускаем.
После цикла, второй цикл по тем, по которым нужно решение пользователя.
3 EarthsSoul
 
21.07.14
11:32
(2) тут двойной обход подчиненных документов ... Похоже так действительно проще всего...
Спасибо буду так реализовывать.
Чтобы обнаруживать ошибки, программист должен иметь ум, которому доставляет удовольствие находить изъяны там, где, казалось, царят красота и совершенство. Фредерик Брукс-младший