Имя: Пароль:
1C
 
Нужно ли ставить попытку в получение объекта?
,
0 Лентаf
 
04.04.16
07:20
ДОБРЫЙ день!Обработка для перепроведения.


Процедура КнопкаВыполнитьНажатие(Кнопка)
    ПервыйВход=0;
    для каждого документ из Метаданные.документы цикл
        Если ПервыйВход=0 тогда
            текстЗапроса="select ссылка,дата from Документ."+Документ.Имя+" как Документ where ((дата >=&нач) and (дата<=&кон) И Документ.Проведен) ";
            ПервыйВход=1;
        Иначе
            ТекстЗапроса=Текстзапроса+ " union "+"select ссылка,дата from Документ."+Документ.Имя+" как Документ where ((дата >=&нач) and (дата<=&кон) И Документ.Проведен) ";
        КонецЕсли;
        
    Конеццикла;
    Текстзапроса=текстЗапроса+" order by дата" ;
    Запрос=Новый запрос();
    запрос.Текст=ТекстЗапроса;
    Запрос.УстановитьПараметр("Нач",ВыбНачПериода);
    запрос.УстановитьПараметр("Кон",ВыбКонПериода+60*60*24);
    тзРезультат=запрос.Выполнить().Выгрузить();
    
    для каждого СтрокаСостава из ТзРезультат цикл
        Док=СтрокаСостава.ссылка.ПолучитьОбъект();
        Попытка
            док.Записать(РежимЗаписиДокумента.Проведение,РежимПроведенияДокумента.Неоперативный);
            Сообщить(док);
        Исключение
            
        КонецПопытки;
        
    конеццикла;
КонецПроцедуры



этот код в попытку более правильно завернуть?
1 Лентаf
 
04.04.16
07:21
Док=СтрокаСостава.ссылка.ПолучитьОбъект();
2 Enterprise
 
04.04.16
07:25
(1) Зачем?
3 Jokero
 
04.04.16
07:30
(1) Если ЗначениеЗаполнено(СтрокаСостава.Ссылка) тогда
Док=СтрокаСостава.ссылка.ПолучитьОбъект();
КонецЕсли;
4 zdas
 
04.04.16
08:07
(0) зачем в попытку?
+ у тебя условие всегда одинаковое - можно вынести)
+ "как Документ" - можно заменить на "as Документ" в твоем стиле )
+ where ((дата >=&нач) and (дата<=&кон) можно "дата between &нач and &кон"
5 hhhh
 
04.04.16
08:35
(3) и чего? там может получиться не заполнено?
6 cathode
 
04.04.16
15:25
(5) Может. Если запрос вне транзакции, а объект удален непосредственно после выполнения запроса.
Что получится: исключения никакого не будет, ЗначениеЗаполнено() вернет Истина, а получить Объект() вернет Неопределено.
7 mikecool
 
04.04.16
15:35
(5) f hkc&
8 mikecool
 
04.04.16
15:35
+7 а если рлс?
9 hhhh
 
04.04.16
20:45
(6) я и говорю, ЗначениеЗаполнено() вернет Истина всегда, нефиг проверять.
10 ДенисЧ
 
04.04.16
21:20
(9) Со всякими ЗначениеЗаполнено и тд можно нарвать на мутабельные объекты...
11 Starhan
 
04.04.16
21:47
(6) тогда надо еще полученный объект проверить на не определено
Кaк может человек ожидaть, что его мольбaм о снисхождении ответит тот, кто превыше, когдa сaм он откaзывaет в милосердии тем, кто ниже его? Петр Трубецкой