7.7 УстановитьВремя() не работает!

Тема в разделе "Конфигурирование на платформе "1С:Предприятие 7.7"", создана пользователем Alex007, 9 май 2016.

  1. TopicStarter Overlay
    Alex007
    Offline

    Alex007

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

    LordMaverick Профессионал в 1С

    Регистрация:
    17 мар 2014
    Сообщения:
    3.433
    Симпатии:
    373
    Баллы:
    104
    а оно точно меняет время у документа?

    и что пишет то? какую ошибку
  3. TopicStarter Overlay
    Alex007
    Offline

    Alex007

    Регистрация:
    4 апр 2016
    Сообщения:
    19
    Симпатии:
    0
    Баллы:
    1
    Если в наглую назначать(06,10,00)- то да. А если через переменные Ч,М,С то нет. И не пишет ничего. Первому доку из выборки меняет время и все, цикл останавливается
  4. Катюфка
    Offline

    Катюфка Профессионал в 1С

    Регистрация:
    3 июн 2013
    Сообщения:
    405
    Симпатии:
    71
    Баллы:
    54
    Здравствуйте.
    Вы переменным устанавливаете текстовое значение, поэтому и не срабатывает.
  5. LordMaverick
    Offline

    LordMaverick Профессионал в 1С

    Регистрация:
    17 мар 2014
    Сообщения:
    3.433
    Симпатии:
    373
    Баллы:
    104
    PS
    кстати говоря, попутно, кроме нужной проверки на то проведён ли Док нужно делать проверку не помечен ли он на удаление
    да пробывал вчера (подно уже было) и принудительно в число, и переменным и указывать что это число, не вылетает
    но вот в чём фишка, если после УстановитьВремя вывести в Сообщить Время документа, то показывает старое, а если вывести то что получим через ПолучитьВремя, то получим то что устанавливали
  6. TopicStarter Overlay
    Alex007
    Offline

    Alex007

    Регистрация:
    4 апр 2016
    Сообщения:
    19
    Симпатии:
    0
    Баллы:
    1
    я по всякому изголялся
    ЧР = Формат(06,"Ч2.0");
    МР = Формат(10,"Ч2.0");
    СР = Формат(00,"Ч2.0");
    и если в лоб
    РН.УстановитьВремя(06,10,00);
    то устанавливает ТОЛЬКО одному документу , но бывает что двум ни с того ни с сего, и цикл останавливается.
    PS/ Помеченных на удаление документов нет, потому что они сперва перебрасываются из другой базы, потом надо РасхНакл переместить по времени, вот тут и затыка(((
  7. LordMaverick
    Offline

    LordMaverick Профессионал в 1С

    Регистрация:
    17 мар 2014
    Сообщения:
    3.433
    Симпатии:
    373
    Баллы:
    104
    нет, я там просто присваивал не "06", а 06
    Код:
    ЧР = 06;
    МР = 10;
    СР = 00;
    
    прикол то в том что если после записи документа получать время через ПолучитьВремя то там всё чётко и на месте, даже минуты через прибавление секунд увеличиваются
  8. Катюфка
    Offline

    Катюфка Профессионал в 1С

    Регистрация:
    3 июн 2013
    Сообщения:
    405
    Симпатии:
    71
    Баллы:
    54
    Мне кажется, что ошибка цикла возникает из-за того, что, изменяя время, Вы меняете расположение документов в выборке. Попробуйте использовать метод ОбратныйПорядок(1) или сначала сделайте таблицу с нужными документами, а потом сделайте цикл по ее строкам.
  9. TopicStarter Overlay
    Alex007
    Offline

    Alex007

    Регистрация:
    4 апр 2016
    Сообщения:
    19
    Симпатии:
    0
    Баллы:
    1
    Да я тоже и ЧР=06; и ЧР = Формат(06,"Ч2.0"); -Никак не хочет. В чем же причина, какой-то конфликт с внутренним кодом получается?
    --- Объединение сообщений, 10 май 2016 ---
    Да, что-то в этом есть. Применил Так
    Код:
        РН.ОбратныйПорядок(0); 
        РН.ВыбратьДокументы(Дата1,Дата2);
    в этом случае всем накладным проставляется время 06,10,10 (без добавки по 10 сек.) а вот у двух последних время- 06,26,50 и 23,59,59. В случае ОбратныйПорядок(1) еще хуже получается
    Последнее редактирование: 10 май 2016
  10. Катюфка
    Offline

    Катюфка Профессионал в 1С

    Регистрация:
    3 июн 2013
    Сообщения:
    405
    Симпатии:
    71
    Баллы:
    54
    Не знаю, что у Вас не получается.
    Вот обработка, которая у меня изменила время для самописного документа ПутевойЛистГА. Все замечательно работает.
    Код:
    //*******************************************
    Процедура ПриОткрытии()
        НачДата = Дата("01.01.2014");
        КонДата = Дата("31.12.2014");
       
    КонецПроцедуры
    //*******************************************
    Процедура Сформировать()
        Док = СоздатьОбъект("Документ.ПутевойЛистГА");
        Док.ОбратныйПорядок(1);
        Док.ВыбратьДокументы(НачДата,КонДата);
        ЧЧ = 8;
        ММ = 0;
        СС = 60;
        Пока Док.ПолучитьДокумент() = 1 Цикл
            СС = СС - 1;
            Если Док.Проведен() = 0 Тогда
                Док.УстановитьВремя(ЧЧ,ММ,СС);
                Сообщить(Док);
                Сообщить(док.ПолучитьВремя());
            КонецЕсли;
        КонецЦикла;
    
    КонецПроцедуры
    --- Объединение сообщений, 10 май 2016 ---
    То есть цикл не прерывается. А вот со временем не пойму, меняется или нет. Еще поэкспериментирую.
    Последнее редактирование: 10 май 2016
  11. LordMaverick
    Offline

    LordMaverick Профессионал в 1С

    Регистрация:
    17 мар 2014
    Сообщения:
    3.433
    Симпатии:
    373
    Баллы:
    104
    у меня то он тоже не прерывался, но в том и дело что в журнале какое время будет? равно ли оно тому что через "ПолучитьВремя()" :)
  12. Катюфка
    Offline

    Катюфка Профессионал в 1С

    Регистрация:
    3 июн 2013
    Сообщения:
    405
    Симпатии:
    71
    Баллы:
    54
    Вот так точно работает. :)
    Может несколько сложновато получилось, попробуйте упростить.
    Код:
    //*******************************************
    Процедура ПриОткрытии()
        НачДата = Дата("01.01.2014");
        КонДата = Дата("31.12.2014");
       
    КонецПроцедуры
    //*******************************************
    Процедура Сформировать()
        Док = СоздатьОбъект("Документ.ПутевойЛистГА");
        Док.АвтоВремяОтключить();
        ТабЗнач = СоздатьОбъект("ТаблицаЗначений");
        ТабЗнач.НоваяКолонка("Док","Документ.ПутевойЛистГА");
        Док.ВыбратьДокументы(НачДата,КонДата);
        ЧЧ = 8;
        ММ = 0;
        СС = 0;
        Пока Док.ПолучитьДокумент() = 1 Цикл
            Если Док.Проведен() = 0 Тогда
                ТабЗнач.НоваяСтрока();
                ТабЗнач.Док = Док.ТекущийДокумент();
            КонецЕсли;
        КонецЦикла;
        ТабЗнач.Сортировать("Док");
        ТабЗнач.ВыбратьСтроки();
        Пока ТабЗнач.ПолучитьСтроку() = 1 Цикл
            Если  Док.НайтиДокумент(ТабЗнач.Док) = 1 Тогда
                СС = СС + 1;
                Если СС > 59 Тогда
                    СС = 0;
                    ММ = ММ + 1;
                    Если ММ > 59 ТОгда
                        ММ = 0;
                        ЧЧ = ЧЧ + 1;
                    КонецЕсли;
                КонецЕсли;
                Док.УстановитьВремя(ЧЧ,ММ,СС);
                Док.Записать();
            КонецЕсли;
        КонецЦикла;
    КонецПроцедуры
    
    man37 и Alex007 нравится это.
  13. TopicStarter Overlay
    Alex007
    Offline

    Alex007

    Регистрация:
    4 апр 2016
    Сообщения:
    19
    Симпатии:
    0
    Баллы:
    1
Похожие темы
  1. lamer1C
    Ответов:
    6
    Просмотров:
    2.436
Загрузка...

Поделиться этой страницей