Имя: Пароль:
1C
1С v8
есть ли что-то вроде sleep(100) в 1С или как тут лучше быть...
,
0 MrZLO
 
24.10.12
09:29
Есть ли в 1С что-то вроде sleep(), т.е. пауза() или типа того...
Слишком меленький промежуток времени между УдалитьДвиженияРегистратора и выгрузкой данных... Вообще даже хз как тут быть :)


Процедура ОбработкаУдаленияПроведения(Отказ)
   
   ОбщегоНазначения.УдалитьДвиженияРегистратора(ЭтотОбъект, Отказ);

       // далее получаю основание заказа покупателю и выгружаю данные

       
КонецПроцедуры
1 mikecool
 
24.10.12
09:30
(0) в книге знаний есть
2 MrZLO
 
24.10.12
09:30
при удалении проведения в реализации обращаюсь к документу основание (заказ покупателя) - там данные забираю для сайта
3 Axel2009
 
24.10.12
09:30
(0) гыгы, а зачем нужен промежуток времени?
4 MrZLO
 
24.10.12
09:31
она слишком быстро работает, данные из регистров старые беруться судя по всему
5 Wobland
 
24.10.12
09:32
(4) а ты уверен что в там записи уже удалены?
6 MrZLO
 
24.10.12
09:32
просто если хотябы секунду разницу сделать - будет все нормально... в запросах при выгрузке у меня дат вообще нету... может там дату добавить и прибавить секунду...
7 Balabass
 
24.10.12
09:32
пока А <= 10000000 цикл
а=а+1;
конеццикла
8 Balabass
 
24.10.12
09:33
ну количество нулей в зависимости от производительности железки.)
9 MrZLO
 
24.10.12
09:33
(7) это шутка типа
10 Wobland
 
24.10.12
09:33
(9) да не. хочешь - пингуй 127.0.0.1
11 Balabass
 
24.10.12
09:34
(9) Нет. Ничего смешного.
12 Wobland
 
24.10.12
09:35
>если хотябы секунду разницу сделать - будет все нормально
вот откуда уверенность?
13 Axel2009
 
24.10.12
09:35
(4) не правильно
14 Balabass
 
24.10.12
09:35
Или

А = текущаяДата()+5

пока текщаядата() < А цикл
конеццикла;
15 MrZLO
 
24.10.12
09:35
вот еще откопал

Процедура глПауза(Сек)
   scr = СоздатьОбъект("WScript.Shell");
   scr.Run("sleep "+СокрЛП(Число(Сек)),0,1);
КонецПроцедуры;"
16 MrZLO
 
24.10.12
09:36
(14) спасибо
17 AlStorm
 
24.10.12
09:36
Я пингую локалхост)
18 qeos
 
24.10.12
09:38
диалог вопроса с таймаутом
19 H A D G E H O G s
 
24.10.12
09:38
(13) В рамках этой же транзакции данные должны быть уже удалены? Или он создает отдельный процесс?
20 H A D G E H O G s
 
24.10.12
09:39
Автор, нука кода отсыпь, как данные выгружаешь.
21 Defender aka LINN
 
24.10.12
09:39
(4) Гонишь
22 MrZLO
 
24.10.12
09:40
(20)

Процедура ВыгрузитьДанныеСчетаДляСайта(ЗаказПокупателя) Экспорт
       
   Оплачено_итого = 0;
   Собрано_итого = 0;
   Отгружено_итого = 0;    
   
   ИмяФайла = ЗаказПокупателя.Номер+"_"+Формат(ЗаказПокупателя.Дата, "ДФ=""гггг""")+".txt";
   
   Запрос = Новый Запрос;
           
   Запрос.Текст = "ВЫБРАТЬ
   |СУММА(ЕСТЬNULL(ПлатежноеПоручениеВходящееРасшифровкаПлатежа.СуммаПлатежа, 0)) КАК Оплачено
   |ИЗ
   |Документ.ПлатежноеПоручениеВходящее.РасшифровкаПлатежа КАК ПлатежноеПоручениеВходящееРасшифровкаПлатежа
   |ГДЕ
   |ПлатежноеПоручениеВходящееРасшифровкаПлатежа.Ссылка.Оплачено = ИСТИНА
   |И ПлатежноеПоручениеВходящееРасшифровкаПлатежа.Ссылка.ПометкаУдаления = ЛОЖЬ
   |И ПлатежноеПоручениеВходящееРасшифровкаПлатежа.Ссылка.Проведен = ИСТИНА
   |И ПлатежноеПоручениеВходящееРасшифровкаПлатежа.Сделка = &ЗаказПокупателя";
   
   Запрос.УстановитьПараметр("ЗаказПокупателя", ЗаказПокупателя.Ссылка);
   
   РезультатЗапроса = Запрос.Выполнить();
   
   Если НЕ РезультатЗапроса.Пустой() Тогда

       Оплачено = РезультатЗапроса.Выгрузить()[0][0];    
       
       Если ЗначениеЗаполнено(Оплачено) Тогда Оплачено_итого = Оплачено КонецЕсли;
       
   КонецЕсли;
           
   Запрос.Текст = "ВЫБРАТЬ
   |СУММА(
   |ВЫБОР
   |КОГДА ЗаказПокупателяТовары.Ссылка.СуммаВключаетНДС = ИСТИНА ТОГДА ЗаказПокупателяТовары.Сумма / ЗаказПокупателяТовары.Количество * ЗаказПокупателяТовары.Собрано
   |ИНАЧЕ (ЗаказПокупателяТовары.Сумма + ЗаказПокупателяТовары.СуммаНДС) / ЗаказПокупателяТовары.Количество * ЗаказПокупателяТовары.Собрано
   |КОНЕЦ) КАК Собрано
   |ИЗ
   |Документ.ЗаказПокупателя.Товары КАК ЗаказПокупателяТовары
   |ГДЕ
   |ЗаказПокупателяТовары.Ссылка = &ЗаказПокупателя
   |И ЗаказПокупателяТовары.Собрано ЕСТЬ НЕ NULL
   |И ЗаказПокупателяТовары.Количество ЕСТЬ НЕ NULL
   |И ЗаказПокупателяТовары.Сумма ЕСТЬ НЕ NULL
   |И (НЕ ЗаказПокупателяТовары.Собрано = 0)
   |И (НЕ ЗаказПокупателяТовары.Количество = 0)
   |И (НЕ ЗаказПокупателяТовары.Сумма = 0)";

   Запрос.УстановитьПараметр("ЗаказПокупателя", ЗаказПокупателя.Ссылка);
   
   РезультатЗапроса = Запрос.Выполнить();
   
   Если НЕ РезультатЗапроса.Пустой() Тогда

       Собрано = РезультатЗапроса.Выгрузить()[0][0];    
       
       Если ЗначениеЗаполнено(Собрано) Тогда Собрано_итого = Собрано КонецЕсли;
       
   КонецЕсли;
   
   Запрос.Текст = "ВЫБРАТЬ
   |СУММА(ЕСТЬNULL(РеализацияТоваровУслуг.СуммаДокумента, 0)) КАК Отгружено
   |ИЗ
   |Документ.РеализацияТоваровУслуг КАК РеализацияТоваровУслуг
   |ГДЕ
   |РеализацияТоваровУслуг.Сделка = &ЗаказПокупателя
   |И РеализацияТоваровУслуг.ПометкаУдаления = ЛОЖЬ
   |И РеализацияТоваровУслуг.Проведен = ИСТИНА";

   Запрос.УстановитьПараметр("ЗаказПокупателя", ЗаказПокупателя.Ссылка);
   
   РезультатЗапроса = Запрос.Выполнить();
   
   Если НЕ РезультатЗапроса.Пустой() Тогда

       Отгружено = РезультатЗапроса.Выгрузить()[0][0];    
       
       Если ЗначениеЗаполнено(Отгружено) Тогда Отгружено_итого = Отгружено КонецЕсли;
       
   КонецЕсли;
   
   Сообщить("Отгружено_итого: "+Отгружено_итого);
       
   ТекстДокумент = Новый ТекстовыйДокумент;
   
   Сумма_итого = Формат(ЗаказПокупателя.СуммаДокумента,"ЧГ=0");
   Оплачено_итого = Формат(Оплачено_итого,"ЧГ=0");
   Собрано_итого = Формат(Собрано_итого,"ЧГ=0");
   Отгружено_итого = Формат(Отгружено_итого,"ЧГ=0");
   
   ТекстДокумент.УстановитьТекст(Формат(ЗаказПокупателя.Дата, "ДФ=""дд.ММ.гг""")+"|"+Сумма_итого+"|"+Оплачено_итого+"|"+Собрано_итого+"|"+Отгружено_итого);
   
   ТекстДокумент.Записать("\\share\orders\bill\"+ИмяФайла);
   
КонецПроцедуры
23 MrZLO
 
24.10.12
09:42
Процедура ОбработкаУдаленияПроведения(Отказ)
   
   ОбщегоНазначения.УдалитьДвиженияРегистратора(ЭтотОбъект, Отказ);
       
   Если ЭтотОбъект.я_ДокументОснование <> Неопределено Тогда
       
       Если ЭтотОбъект.я_ДокументОснование.ЛогинНаСайте <> "" Тогда
           
           ЗаказПокупателя = ЭтотОбъект.я_ДокументОснование.ПолучитьОбъект();
           
           // ЗаказПокупателя.Записать(РежимЗаписиДокумента.Проведение);
           
           А = ТекущаяДата() + 5;

           Пока ТекущаяДата() < А Цикл
           Конеццикла;
           
           ВыгрузитьДанныеСчетаДляСайта(ЗаказПокупателя);
               
                   КонецЕсли;            
       
   КонецЕсли;    
   
   // zdv
       
КонецПроцедуры
24 H A D G E H O G s
 
24.10.12
09:42
А где тут "данные из регистров" ?
25 H A D G E H O G s
 
24.10.12
09:43
брррр. копрокод. и рано утром? пойду поем.
26 MrZLO
 
24.10.12
09:43
круто, да?
27 pumbaEO
 
24.10.12
09:44
(25) не превращайся в vmv
28 Wobland
 
24.10.12
09:44
(22) ТекстДокумент.Записать("\\share\orders\bill\"+ИмяФайла)
сервер отвалился, 1Ска сразу загнулась
29 mikecool
 
24.10.12
09:45
30 MrZLO
 
24.10.12
09:45
(28) там линукс - ему пох, ну а так-то да, до ума доведу еще, это тестовая база пока что
31 H A D G E H O G s
 
24.10.12
09:45
vmv - Валера.

Валера - настало твое время!
32 MrZLO
 
24.10.12
09:46
(29) почитаю
33 Wobland
 
24.10.12
09:46
(30) линуксу пох на шнур, например? кривое решение
34 H A D G E H O G s
 
24.10.12
09:48
(33)
Люблю, сцуко, Линукс - он позволяет тебе не телько выстрелить себе в ногу, но и в голову, причём, падла, абсолютно уверен, что ты был прав и другого выхода не было.

© Баш
35 pumbaEO
 
24.10.12
09:50
(33) тссс, не разрушай веру в стабильный линукс и глючную винду.

(23) а где зависимость от движений?
Зачем
ЗаказПокупателя = ЭтотОбъект.я_ДокументОснование.ПолучитьОбъект();
Если там только по ссылке все используется...
36 H A D G E H O G s
 
24.10.12
09:51
(35) Может там в документ че пишится по результатам проведения!!!
37 MrZLO
 
24.10.12
11:00
(36) в документ ничего не пишется
Здесь можно обсудить любую тему при этом оставаясь на форуме для 1Сников, который нужен для работы. Ymryn