Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Док.УстановитьВремя() - не могу обуздать
Украинский 1С форум: всё про 1С 8.3, 1С 8.2, 1С 8.1, 1С 8.0, 1С 7.7 > Программисту > Программирование в 1С Предприятие 7.7
Alex007
Имеется потребность обработкой кой-чего поправить в РасхНакл и сдвинуть их по времени. С первым понятно все, а вот на моменте установки времени цикл останавливается и все. Как я только не изголялся с передачей параметров - ничего не получается. Одному доку меняет время и все, надо запускать процедуру по новой! Даже назначение времени "в лоб" типа док.УстановитьВремя(06,00,00) ничего не дает.
PS Документы все либо проведены, либо записаны. Помеченных на удаление нет, поэтому проверка на исключение удаленных не проводится !
Процедура УстРН()  
        ЧР = Формат(06,"Ч2.0");
        МР = Формат(10,"Ч2.0");
        СР = Формат(00,"Ч2.0");
    Фирм=СоздатьОбъект("Справочник.Фирмы");
    Рн=СоздатьОбъект("Документ.Т_РасходнаяНакладная");
      РН.ВыбратьДокументы(Дата1,Дата2);
Пока РН.ПолучитьДокумент()=1  цикл

Если (РН.Проведен()=1) тогда    
      Продолжить;
КонецЕсли;
// РН.УстановитьВремя(06,10,00);  
     РН.УстановитьВремя(ЧР,МР,СР);
     РН.Фирма=Константа.БазФирма;
     РН.ВидНДС=Константа.БазНДС;
     РН.Склад=Константа.ОсновнойСклад;    
     РН.ВидТары=Перечисление.ВидыТары.Покупная;  
      
     РН.Записать();
     РН.Провести();    
     Сообщить ("Проведена"+ " "+РН+" "+РН.Контрагент);      

СР=СР+10;
КонецЦикла;
    
КонецПроцедуры  //УстРН()

nysysimara
Alex007 @ Сегодня, 11:28 необходимо зарегистрироваться для просмотра ссылки,
может второй док просто заблокирован?
CobraS
Alex007 @ Сегодня, 11:28 необходимо зарегистрироваться для просмотра ссылки,
Во-первых параметры Метода УстановитьВремя - числовые выражения, у Вас форматная строка.
Для поиска ошибок и решения проблем существует отладчик.
Посмотрите чему равен параметр СР после первого цикла. Вы складываете строку с числом.
Даже если бы он был числом, после семи РН он бы равнялся 70 cool.gif
sava1
Выборка в цикле сбивается. Юзайте
аа.ПолучитьДокумент(РН.ТекущийДокумент)
и далее работаем с аа
Alex007
Цитата(CobraS @ 10.05.16, 13:00) необходимо зарегистрироваться для просмотра ссылки
Во-первых параметры Метода УстановитьВремя - числовые выражения, у Вас форматная строка.
Для поиска ошибок и решения проблем существует отладчик.
Посмотрите чему равен параметр СР после первого цикла. Вы складываете строку с числом.
Даже если бы он был числом, после семи РН он бы равнялся 70 cool.gif

Так я же вроде в число переформатирую. Но дело не в этом- при назначении ЧР=6; МР=0; СР=0; проблема остается.
Подсказали, что это из-за того что в выборке я меняю месторасположение доков и это стопорит цикл, а надо бы так:
Процедура УстРН()  

        ЧР=6;
        МР=10;
        СР=59;
    Фирм=СоздатьОбъект("Справочник.Фирмы");
    Рн=СоздатьОбъект("Документ.Т_РасходнаяНакладная");
    РН.ОбратныйПорядок(1);  
    РН.ВыбратьДокументы(Дата1,Дата2);
      
Пока РН.ПолучитьДокумент()=1  цикл
    СР=СР-1;
Если (РН.Проведен()=1) тогда    
      Продолжить;
КонецЕсли;
// РН.УстановитьВремя(06,10,00);  
     РН.УстановитьВремя(ЧР,МР,СР);  
     РН.Записать();
     РН.Провести();    
     Сообщить ("Проведена"+ " "+РН+" "+РН.Контрагент);      
КонецЦикла;
    
КонецПроцедуры  //УстРН()






Цитата(sava1 @ 10.05.16, 14:20) необходимо зарегистрироваться для просмотра ссылки
Выборка в цикле сбивается. Юзайте
аа.ПолучитьДокумент(РН.ТекущийДокумент)
и далее работаем с аа

Тоже вариант. Спасибо, попробую так. А то обратная переборка как то не очень мне нравится.
nysysimara
Цитата(Alex007 @ 10.05.16, 13:28) необходимо зарегистрироваться для просмотра ссылки
А то обратная переборка как то не очень мне нравится.

можно выбрать нужные документы, закинуть их в список,
потом по списку в порядке возрастания менять время
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.