Имя: Пароль:
1C
1C 7.7
v7: Обработка ожидания FormEx
0 PZh
 
03.11.11
12:17
Главный плюс этой обработки перед стандартной - это то, что она "вызывается не смотря ни на что".
Но это и минус, т.к. она вызывается и в процессе проведения и при выполнении запросов и это приводит к сбоям.
Как нибудь ее можно ограничить?

Совершенно точно она вызывает сбой запроса (Запрос.Выполнить() = 0), даже без нагрузки, когда в базе один пользователь.
Это хорошо, конечно, для теста "жизнеспособности" кода, но все же...

При этом не важно, что происходит в самой обработке. Даже если это простая проверка одной переменки и выход.
1 andrewks
 
03.11.11
12:33
внешний планировщик тебя спасёт
2 Злопчинский
 
03.11.11
12:48
как интересно...
а вот допустим идет проведение - и ту может сработать обработкаожидания..? я всегда блин думал, что обработка ожидания отрабатывает только в простое...
???
3 Ёпрст
 
гуру
03.11.11
12:52
(0) сказки.
4 Ёпрст
 
гуру
03.11.11
12:54
>>>
она вызывается и в процессе проведения и при выполнении запросов и это приводит к сбоям

ну а это вообще бредни.
5 Злопчинский
 
03.11.11
12:58
(3,4) вот и я как-то в сомнениях...
6 PZh
 
03.11.11
14:14
Это не бредни, а факт.
Я не про штатную обработку, а про FormEx.
7 PZh
 
03.11.11
14:14
(1) что такое внешний планировщик?
8 Злопчинский
 
03.11.11
15:03
(6) ну все.. вечером проверять буду.. не дай бог не так окажется - всё, вешайся... ;-)
9 Ёпрст
 
гуру
03.11.11
15:05
(6) это именно бредни.
ОбработкаОжидания никак не влияет на проведение документа и ну никак не влияет на выполнение штатного запроса.
10 Ёпрст
 
гуру
03.11.11
15:06
+9 и уж поверь мне,формекс у нас живёт годами
11 PZh
 
03.11.11
15:30
(9)
Ну то что НИКАК - это не правда.
Может влиять побочными эффектами (если при проведении используются те же глобальные переменные что и в обработке ожидания).

Я сейчас попробую соорудить тестовый пример для запроса.

А пока поясню:
Работал автомат, который выполнялся через штатную процедуру, всегда все корректно, после единственного изменения - перевода на FormEx - с завидной регулярностью падают запросы. В чем тогда может быть дело?
12 ЧеловекДуши
 
03.11.11
15:34
(11)А ты в обработчике что делаешь?
Особенно, когда пользователь что-то проводит.
И зачем в обработчик от Альфа что либо вставлять?
13 ЧеловекДуши
 
03.11.11
15:35
+ Может дело в том, что не стоит так делать?...
Может стоит использовать типовой обработчик.
14 Ёпрст
 
гуру
03.11.11
15:39
(11) без подтвержденного тестового примера - это всё ваши домыслы.
15 ЧеловекДуши
 
03.11.11
15:50
+(14)Может тебя удивит, но обработчик от Альфа, работает даже когда 1С отвалилась с ошибкой - "С++ и т.д." :)
16 PZh
 
03.11.11
15:51
(12) В обработчике проверяется одно условие и выходит, это инфа 100% и обработчик чистый делал и нечистый в отладчике смотрел.

К тому же это не важно, т.к. Ёпрст3 утверждает что будет работать в любом случае! Что бы там не происходило. На команду:
Запрос.Выполнить() - это никак влиять не может, в тексте запроса не используются глобальные переменные!
17 Ёпрст
 
гуру
03.11.11
15:52
(16) читать умеешь ? См.(14)
18 PZh
 
03.11.11
15:54
(17) Я отвечал Человеку Души, если что. Или вы теперь модератор ветки?
19 PZh
 
03.11.11
16:01
(17) и вообще см. (11). Я написал достаточно подробно. Команда Запрос.Выполнить() стала довольно часто возвращать 0. Ума не приложу почему.

Если я добьюсь тестового примера изобличающего ошибку, то зачем мне тут распинаться?
20 Ёпрст
 
гуру
03.11.11
16:07
(19) >>>Команда Запрос.Выполнить() стала довольно часто возвращать 0. Ума не приложу почему.

причин - вагон.
И формекс тут вообще ни коим боком, не льсти себе.
21 PZh
 
03.11.11
16:16
(20) Дело в том, что алгоритмы которые там работают - работают уже более 2-х лет, а единственное изменение - FormEx. Вопрос как он виляет, не льстите FormEx'у.
22 Ёпрст
 
гуру
03.11.11
16:21
(21) можешь и дальше заблуждаться, без (14) это всё сказки.
23 FN
 
03.11.11
16:36
7.70.027 sql
Formex 2.0.5.92
1C++ 3.0.2.0 bf3

в глобальнике:
Сервис.ОбработкаОжидания("глПроверкаЗаданийПланировщика",1000);

Сама процедура перебирает элементы небольшого справочника и в зависимости от условий запускает другие обработки



отчет (сообщить до Выполнить() и сразу после Выполнить):
...
14:30:19 сработала обработка ожидания
14:30:20 сработала обработка ожидания
14:30:21 сработала обработка ожидания
14:30:22 сработала обработка ожидания
14:30:22 запускаем запрос
14:30:23 сработала обработка ожидания
14:30:24 сработала обработка ожидания
14:30:25 сработала обработка ожидания
14:30:25 запрос окончен
14:30:26 сработала обработка ожидания
14:30:27 сработала обработка ожидания

документ (Сообщить первой и последней строкой процедуры ОбработкаПроведения)
...
14:30:40 сработала обработка ожидания
14:30:40 начало обработки проведения
14:30:40 сработала обработка ожидания
14:30:42 сработала обработка ожидания
14:30:42 сработала обработка ожидания
14:30:44 сработала обработка ожидания
14:30:44 сработала обработка ожидания
14:30:46 сработала обработка ожидания
14:30:48 сработала обработка ожидания
14:30:48 сработала обработка ожидания
14:30:49 сработала обработка ожидания
14:30:50 сработала обработка ожидания
14:30:50 конец обработки проведения
14:30:51 сработала обработка ожидания
14:30:52 сработала обработка ожидания
....

это писец!

О_о
24 FN
 
03.11.11
16:49
Причем обработкаожидания работает при активных модальных окнах, Вопросах/Предупреждениях.
Не работает при пересчете бух.данных, при смене ТА и тп.
25 Mikeware
 
03.11.11
16:51
(24) а при вопросике про смену даты - работает?
26 FN
 
03.11.11
16:56
(25) Сменилась текущая дата?
РАБОТАЕТ!
27 Mikeware
 
03.11.11
16:57
(26) Спасибо. Надо в выгонялке поменять. Хотя лень - осталось жить базе 2 месяца...
28 FN
 
03.11.11
16:58
Прервать выполнение обработки?
тоже работает
29 FN
 
03.11.11
17:06
Останавливаю на горячую sql-сервер, 1С-ка выводит окошко SQL state..., потом невосстановимая ошибка ...
А оно, c-цука, работает!

спасибо ТС за поднятую проблему - придется переписывать....
30 Ёпрст
 
гуру
03.11.11
17:17
(24) и ? Ну работатет, и че ?

ошибок то при этом нет, а уж на выполнение запроса это никак не влияет
31 PZh
 
03.11.11
17:19
FN
(23) И модуль проведения прерывается - тоже!
(29) Пожалуйста!

(22) Я сделал тестовый пример в цикле выполняю запросы параллельно с запущенной обработкой результата (всего запроса 4). Результат, выглядит как-то так:

03.11.11    17:10:41    Администратор    Я СРАБОТАЛ!
03.11.11    17:10:41    Администратор    Я СРАБОТАЛ!
03.11.11    17:10:42    Администратор     Запрос04 лажанул!
03.11.11    17:10:42    Администратор    Я СРАБОТАЛ!
03.11.11    17:10:43    Администратор    Я СРАБОТАЛ!

...

03.11.11    17:13:46    Администратор    Я СРАБОТАЛ!
03.11.11    17:13:46    Администратор    Я СРАБОТАЛ!
03.11.11    17:13:47    Администратор     Запрос01 лажанул!
03.11.11    17:13:48    Администратор    Я СРАБОТАЛ!
03.11.11    17:13:48    Администратор    Я СРАБОТАЛ!

и т.д.



Если будет время я соберу исходники и тестовую базу и вывалю все, дабы вас убедить.
32 Ёпрст
 
гуру
03.11.11
17:20
(31) убеждать в чем ?
у меня всё это есть,  и проблем ваших нет.
33 PZh
 
03.11.11
17:23
(32) В том, что Обработка ожидания из FormEx - оказывает непосредственное влияние на работу команды:
Запрос.Выполнить();

Вызывая ошибку запроса, даже когда в обработке прерывания - не используется обращений к базе данных!
34 Sserj
 
03.11.11
17:24
(4) Не бредни, хотя конечо зависит что делается в этой обработке.
Я так типа 1САську делал, там сообщения тоже через формексовое ожидание проверялись, ничего не писалось в базу а только из нее читалось, так тоже с необъяснимыми падениям замучался.
35 FN
 
03.11.11
17:24
(27) как раз в выгонялке этот эффект очень даже полезен.
36 Ёпрст
 
гуру
03.11.11
17:32
мне не лень, я проверил:
в обработке:
Процедура Сформировать()
   Перем Запрос, ТекстЗапроса, Таб;
   //Создание объекта типа Запрос
   Запрос = СоздатьОбъект("Запрос");
   ТекстЗапроса =
   "//{{ЗАПРОС(Сформировать)
   |Валюты = Справочник.Валюты.ТекущийЭлемент;
   |Группировка Валюты;
   |"//}}ЗАПРОС
   ;
   // Если ошибка в запросе, то выход из процедуры
   сч=1;
   Пока Запрос.Выполнить(ТекстЗапроса) = 1 Цикл
       сч=сч+1;
   КонецЦикла;
   Сообщить("итого выполнено: "+сч);
КонецПроцедуры
+ в глобальничке:

Перем Сервис;
Процедура Вася() Экспорт
   а = ТекущееВремя();
       Сообщить(а);
КонецПроцедуры
......

Сервис = СоздатьОбъект("Сервис");
   Сервис.ОбработкаОжидания("Вася",1);



после пары минут. надоело ждать, прервал выполнение очередного запроса, в окошке сообщений :
итого выполнено: 44557

Дальше бум в сказки верить ?
37 PZh
 
03.11.11
17:34
(32)
Вот как убедиться:
1. Зацикливаем любой простой запрос к справочнику номенклатуры (желательно быстрый) типа:
|Номенклатура        = Справочник.Номенклатура.ТекущийЭлемент;
|Артикул        = Справочник.Номенклатура.Артикул;
|Группировка Номенклатура без групп;
|Условие(Артикул = Лев(2,  = ""20"");

2. Циклим его. В случае ошибки - пишем в лог.

3. Вешаем обработку ожидания (я делал интервал 0.5 секунд), я думаю чем меньше - тем чаще будет детектироваться косяк, что очевидно.

4. В обработке ожидания - единственная команда - записать в лог.

5. Запускаем и радуемся!

6. Приносим извинения за грубый тон.
38 Ёпрст
 
гуру
03.11.11
17:35
(37)
6. см (36)

Жду извинений.
39 victuan1
 
03.11.11
17:39
Дайте готовый код я потестю
И где можно качать последние версии 1с++?
40 Mikeware
 
03.11.11
17:40
(39) ты не поверишь....
41 Ёпрст
 
гуру
03.11.11
17:42
(39) тут вообще то речь за формекс..
последний вот:

http://www.1cpp.ru/forum/YaBB.pl?num=1289651842/35
42 Ёпрст
 
гуру
03.11.11
17:43
1cpp там же на форуме, в соответствующей теме
43 aka MIK
 
03.11.11
17:45
А что низзя просто выбрать все движения партий за 10 лет по всем товарам и дням? Это будет оочень долго :)

Проверьте, циклы ни к чему
44 PZh
 
03.11.11
17:48
(39) Сейчас, только почитаю как оформлять код в сообщении.
45 victuan1
 
03.11.11
17:50
(41) Зачем мне ссылка на форум?
С форума качать обновления? Моветон.
Вот есть 1cpp.ru
На главной странице последние релизы объявлены:
Рекомендованный стабильный релиз с раздельной загрузкой FormEx: 2.5.0.7
Рекомендованный стабильный релиз c включенным FormEx: 2.0.3.7
У меня они есть. Всё - больше не рыпаюсь.
46 Mikeware
 
03.11.11
17:52
(45) http://www.1cpp.ru/index.php/Main
там вроде русским по белому...
47 Ёпрст
 
гуру
03.11.11
17:52
(45) да нам то что ?
главная страница не обновляется года 4, всё что касается новых версий всегда было на форуме поддержки компоненты и в баг треккере.

Оставайся на 2 ***
48 Ёпрст
 
гуру
03.11.11
17:54
(46) да кто ж это читает то ?
трясти нужно сильнее!
49 PZh
 
03.11.11
17:55
(39) Не успеваю, но я еще вернусь...
Тест продолжается и у меня перестало лажать, когда я закрыл параллельно открытую 1С с автоматом, где постоянный опрос справочника (совершенно другого) выполняется.

Т.е. вполне возможно, что этот эффект наблюдается, если обработка ожидания работает на двух экземплярах 1С - на одной тачке.

(48) Ёпрст3 попробуй так (экземпляров много наплоди) и поставь интервал запуска побольше. У меня запрос выполнялся примерно 300 мс (не тот который я приводил в сообщении), а интервал был 100 мс, такое вот соотношение.
50 Ёпрст
 
гуру
03.11.11
18:00
(49) как-нить попробую.
лень всё
51 victuan1
 
03.11.11
18:05
(47) "главная страница не обновляется года 4"
Т.е. умер 1с++? Так и запишем...
52 victuan1
 
03.11.11
18:09
(46) почитал. Умер 1сpp, родился icpp (обратно совместимый с 1с++!), внятной ссылки на его сайт нет.
53 Mikeware
 
03.11.11
18:10
(52) У тебя плохо не только с чтением, но и с пониманием....
54 victuan1
 
03.11.11
18:12
Вообще сайт 1cpp.ru неприятное впечатление производит. Вроде домен русский (ru), а текст вперемешку с английскими фразами.
Явное отсутствие вкуса.
(53) У меня всё отлично с пониманием, стабильных рекомендованных релизов нет после 2008 года => проект умер. Или вэбдизайнера сайта надо повесить за яйца.
55 Mikeware
 
03.11.11
18:17
(54) Заплати и все сделают.
зы. последний релиз - август 10 года.
в принципе, я использую наверное 5% от имеющегося. мне достаточно, ничего не падает, критических ошибок нет. И чо им, клепать релизы, чтоб клепать релизы?
56 Злопчинский
 
03.11.11
18:18
очевидно, что на допфичах типа 1С++ и формекс - апологеты тянут по остаточному принципу, почти все потихоньку перелазят на 8-ку..
57 victuan1
 
03.11.11
18:21
(56) Говоря про себя, не говори за всех! ;))
Мой личный опыт говорит, что 8-ка пока не оправдывает ожидания и затраты.7-ка рулит.
58 ЧеловекДуши
 
03.11.11
18:22
Лучше потестите на версии формекса 2.0.5.101
59 ЧеловекДуши
 
03.11.11
18:23
У Formex 2.0.5.92, может и есть ошибки :)
60 abfm
 
03.11.11
18:25
даже не в пользу 7.7 думайте головой 3+3=6 очнитесь!
61 Mikeware
 
03.11.11
18:27
(60) что сказать-то хотел?
62 ЧеловекДуши
 
03.11.11
18:36
63 Злопчинский
 
03.11.11
19:42
(57) текущие проекты имеет смысл тянуть на 7.7
новые - на 8-ке...
но так как старые сжиирают все время - 8.ка остается неосвоенной.. это пугает немного ;-)
.
с другой стороны - отточив нужный функционал на 7.7 - может оказаться на 8-ке собрать конфу "под себя"... будет проще чем разбираться в туевой хуче кода типовых конфиг... все зависит от того, наскольо там внятно написано...