Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Для чего этот код?
Украинский 1С форум: всё про 1С 8.3, 1С 8.2, 1С 8.1, 1С 8.0, 1С 7.7 > Программисту > Программирование в 1С Предприятие 7.7
Vofka
В декларации по НДС (с приложениями) обнаружил код:




ПЦ = 0;
Пока ПЦ<10000 Цикл
ПЦ = ПЦ + 1;
КонецЦикла;



Почему уже тогда не


ПЦ = 10000


64000000.gif
Fynjy
Глупый замедлитель ...
Vofka
Я честно сказать так и думал smile.gif . Перед этим кодом стоит запрос. Это что получается, что запрос просто не успевает быстро отработать?
W-divin
Цитата(Vofka @ 19.08.09, 10:14) необходимо зарегистрироваться для просмотра ссылки
Я честно сказать так и думал smile.gif . Перед этим кодом стоит запрос. Это что получается, что запрос просто не успевает быстро отработать?


на выполнение запроса это не влияет - цикл начнет выполняться после выполнения запроса. Это скорее всего с отрисовкой связано или с чем-то наподобе. посмотри что там еще кроме запроса делается
dmiter
Таким образом можно вызывать функции из других форм. Но я как правило использую - Открыть форму модально - тогда никаких замедлителей не надо. Посмотри может какой отчет вызывается (ОткрытьФорму) - и чтобы он успел отработать и вернуть результат и стоит этот замедлитель.
W-divin
Цитата(dmiter @ 19.08.09, 22:12) необходимо зарегистрироваться для просмотра ссылки
Таким образом можно вызывать функции из других форм. Но я как правило использую - Открыть форму модально - тогда никаких замедлителей не надо. Посмотри может какой отчет вызывается (ОткрытьФорму) - и чтобы он успел отработать и вернуть результат и стоит этот замедлитель.


сильно сомневаюсь что в типовой такой метод будет использован для получения данных из других форм )))
для таких целей альтернативы открытьмодально нету...
dmiter
Цитата(W-divin @ 20.08.09, 10:38) необходимо зарегистрироваться для просмотра ссылки
сильно сомневаюсь что в типовой такой метод будет использован для получения данных из других форм )))
для таких целей альтернативы открытьмодально нету...

Там, по старой памяти, есть обработка, которая проверяет какая єто конфигурация. И почти все регламентированные отчеты ее вызывают. Может я конечно ошибаюсь smile.gif
Tavi
Там после каждого запроса такой код. По смыслу даже непонятно что там можно замедлять. Все равно пока запрос не выполнится оно дальше не пойдет.
Yurkas
чтоб увидеть в строке состояния надпись "Выполняется обработка " и не пугать бухгалтеров быстротой заполнения отчета
Batchir
Цитата(Yurkas @ 25.08.09, 23:08) необходимо зарегистрироваться для просмотра ссылки
чтоб увидеть в строке состояния надпись "Выполняется обработка " и не пугать бухгалтеров быстротой заполнения отчета

АГА, точно, это бухгалтера начали возмущаться. Как так, они отчет неделю вручную заполняют, а программа за секунду выдает - что-то тут не то, а вот если 10 секунд - то значит нормально. biggrin.gif
Vladal
У меня совсем другая ситуация: "Вова, почему отчет долго формируется?". Во, как!
Я убрал эти циклы и мои бухи теперь "работают быстро".
dobraleks
Цитата(Vladal @ 06.10.09, 9:01) необходимо зарегистрироваться для просмотра ссылки
У меня совсем другая ситуация: "Вова, почему отчет долго формируется?". Во, как!
Я убрал эти циклы и мои бухи теперь "работают быстро".


что-то я не понял что конкретно ты заремил (желательно поподробнее и с кодиком в студию)
mister-x
Процедура ПечатьРасхПогруз(ТекДок)   

     ТекДок.ВыбратьСтроки();
     Пока ТекДок.ПолучитьСтроку()=1 Цикл
          к=0;
          Пока к<100 Цикл
               к=к+1;
          КонецЦикла;
           //глПечатьПНтаб(ТекДок.РН,спПринтеров.ТекущаяСтрока(),1);      
           //2011-07-04
           //глПечатьПНтаб(ТекДок.РН,Пользователь.ПринтерДеклараций,1);
           глПечатьПНтаб(ТекДок.РН,спПринтеров.ТекущаяСтрока(),2);      
           //глПечатьПНтаб(ТекДок.РН,Пользователь.ПринтерДеклараций,1);
     КонецЦикла;

КонецПроцедуры

мабуть потрібно встигнути той прінтер включити smile.gif
wasdik
Это похоже отправка печати напрямую на принтер, а 10 секунд - время ожидания до отправки следующего документа. Если так, то проще было бы использовать ОбработкаОжидания()

А возможно печатались документы с двух сторон и нужно было за 10 сек перевернуть листик.
XBrut
Культурно це має виглядати так:

//Ожидание для возможности работы других пользователей (по совету Олега Яковлева из ЧПТФ "ЮСИ")
Процедура Задержка(Секунд)
     Для Инд=1 По Секунд Цикл
           ТекВремя=ТекущееВремя();
           Пока  ТекВремя=ТекущееВремя() Цикл
           КонецЦикла;
     КонецЦикла;
КонецПроцедуры;


Тут хоча б можна сказати яка саме буде затримка.



Доречі стосовно того, навіщо затримка.
Ось приклад, коли затримка НЕОБХІДНА.
Спробуйте часто змінювати значення константи методом
Константа.Счетчик=Константа.Счетчик+1;

коли в базі чоловік 50. Побачите , що з того буде.

Така функція ЧАСТКОВО знімає проблему:

Функция _УстановитьЗначениеКонстанты(Имя,Значение) Экспорт
    Блокировка=1;
    Сч             =0;
    Пока Блокировка=1 Цикл
        Попытка
            НачатьТранзакцию();
            Константа.УстановитьАтрибут(Имя,Константа.ПолучитьАтрибут(Имя));//блокируем
            Блокировка=0;//константа заблокирована не была - можем работать
        Исключение//константа заблокирована !!  
            Сч=Сч+1;
            ОтменитьТранзакцию();
            //Ожидание для возможности работы других пользователей (по совету Олега Яковлева из ЧПТФ "ЮСИ")
            Стр=ТекущееВремя();
            Пока Стр=ТекущееВремя() Цикл
            КонецЦикла;  
            Если Сч=3 Тогда  
                //Сообщить("Капец");
                Возврат 0; //залипло капитально
            КонецЕсли;
        КонецПопытки;
    КонецЦикла;
    Константа.УстановитьАтрибут(Имя,Значение);
    ЗафиксироватьТранзакцию();
    Возврат 1;
КонецФункции //_УстановитьЗначениеКонстанты
Batchir
необходимо зарегистрироваться для просмотра ссылки
Golub____ka
Цитата(Vofka @ 18.08.09, 15:11) необходимо зарегистрироваться для просмотра ссылки
В декларации по НДС (с приложениями) обнаружил код:

ПЦ = 0;
    Пока ПЦ<10000 Цикл
        ПЦ = ПЦ + 1;
    КонецЦикла;


Почему уже тогда не

ПЦ = 10000


64000000.gif

Для того щоб недопустити більше 10 000 позицій. все.
-=VJ=-
Цитата(Golub____ka @ 19.09.11, 14:33) необходимо зарегистрироваться для просмотра ссылки
Для того щоб недопустити більше 10 000 позицій. все.


А ось і автор коду з'явився smile.gif
Vofka
Цитата
Для того щоб недопустити більше 10 000 позицій.

Чего? Каких позиций?
Golub____ka
Цитата(-=VJ=- @ 19.09.11, 14:49) необходимо зарегистрироваться для просмотра ссылки
А ось і автор коду з'явився smile.gif



не автор того ноду не я smile.gif


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