Вылет 1С на методе "ВвестиДату". #551094


#0 by Torquader
По мотивам и ей подобных. Как показала работа программы в круглосуточном режиме именно на этой "чудесной" функции и происходит вылет. Причём вылет вероятностный, так как заранее нельзя сказать, вылетит или нет. С чем это может быть связано ? Причём, есть подозрение, что имеется некоторая связь с появлением диалога "Сменилась дата", так как после его появления вылет практически гарантирован. Конечно, можно пытаться совсем избавится от ввода дат, но хочется понять причину такого "чудесного" явления. P.S. знаю, что тема "баян", но как "играет" нигде не нашёл.
#1 by andrewks
ну да, баян. причину только ч/з дебаггер наверное можно выловить
#2 by andrewks
проверено, вылетает на разных сервиспаках/версиях вынь2к, вынь2к3, выньхр, причём вылетает действительно хаотично, появление диалога "Сменилась дата" не при делах
#3 by Torquader
Вообще-то, я так понял, что для вылета необходимо, чтобы закончились какие-то ресурсы. Причём они, конечно, могут закончится и для чего-то ещё, но только InputDate даёт вылет с высокой вероятностью. P.S. для "очищения" форм на все обработки наляпал невидимых ТЗ - в списке ресурсов ничего не прибывает, а всё равно вылетает.
#4 by andrewks
да, и что самое интересное: некоторые товарищи утверждают, что работают годами, и типа ничего подобного не замечали. не знаю, мне кажется, это гон, т.к. сам допёр, что это глючит именно ВвестиДату только через пяток лет :-)
#5 by Злопчинский
хз.. у меня аналогичное вылетает изредка только при вводе даты во множественном фильтре. Закономерности/причины - не установил
#6 by andrewks
не, утечка тут ни при чём. несколько раз вываливался практически сразу после начала работы
#7 by andrewks
кстати, таких вылетов (хаотичных, но стабильных по местам появления) дофига, могу ещё как минимум тройку привести: 1. при редактировании таблиц: если заходим в поле редактирования текста, которое сверху, пишем что надо, ОК - вылет. если прямо в ячейке обоими способами - нормуль 2. ошибка записи при транзакции, выполняемой другим пользователем, повторить - ОК, вылет 3. бывает, при выходе пишет типа "сохранить документ?" (глючок возникает тоже при транзакциях) - если жмём Да - смачный вылет, если Нет - нормальное завершение может, ещё чё вспомню, пока вроде всё
#8 by Torquader
У меня вылетело при мне (я сделал кнопку для ввода даты) при допросе пользователей выяснил, что никому и в голову не приходило, что эта кнопка им поможет - и не нажимали. Потом, при вылете dbf-версии просит переиндексацию. При работе базы я реиндексацию делал примерно раз в неделю (и не всегда база её требовала сама), потом часть "вылетов" была списана на закрытие программы (крестик в углу позволяет очень быстро закрыть программу - что так нельзя делать - все знают, но нельзя и очень хочется - можно). Также дата вводится в другом месте - там было несколько вылетов именно на вводе даты. Народ предлагает использовать ввести значение, но у этой функции нет таймаута, то есть InputValue висит пока не нажмут ОК или Отмена. Также некоторые делают свою форму для ввода даты - утверждают, что спасает. 1. При редактировании не видел (а у меня таблицы редактируют в открытом отдельном окне Internet Explorer - там только он сам вылетает - при этом 1С остаётся жить). 2. При транзакции тоже не видел - видел, как подвисают две транзакции, которые пытаются друг друга столкнуть (но спасал "магический" файл прерывания всех обработок - главное не забыть в обработку проверку его наличия вставить). 3. К сожалению, они не выходят, так как программа работает в терминале - они умеют только закрывать сессию и прекрасно знают, что если мне их "забытые" сессии мешают, то я в них войду и корректно выйду. Кроме того, опять же ОбработкаОжидания и магические файлы (для чего очень нужен таймаут в диалогах), чтобы дольше определённого не висело.
#9 by andrewks
кстати, ВвестиЗначение тоже иногда вылетает. но _очень_ редко, раза три-четыре за пяток лет лично у меня
#10 by Torquader
Единственное, что удаётся понять - чем больше размер MD-файла, тем больше вероятность вылета на "ВвестиДату". А ВвестиСтроку как работает - мне из-за таймаута приходится переходить на ввести строку (как в Basic InputBox).
#11 by VladZ
Вроде ромикс про это писал. Там че-то с ресурсами. Попробуй положить ТЗ на форму и сделай ее невидимой.
#12 by VladZ
не, не Ромикс..
#13 by andrewks
мимо не, на 14-метровом мдэ вылетает ещё как
#14 by Torquader
Это я уже делал - и ресурсы считал - после того, как появилась ТЗ ничего не прибавляется, но также вылетает. И ещё на тестовой базе запустил: Ни разу не вылетело, но словил такой глюк - открываем "календарь" и кончается TimeOut - окно закрывается, а календарь висит - и его закрыть кнопкой нельзя, и новое окно не появляется, но тыканьем мышой вне календаря всё возвращается в работу.
#15 by andrewks
дык вылет-то после нажатия на Энтер, а не при выводе окошка. тут тыкать надоть :-)
#16 by Torquader
У меня вылетает до появления диалога ввода даты - то есть сам видел - вместо диалога сразу Exception.
#17 by Torquader
Для сравнения - запустил вместо InputDate OpenFormModal - каждое открытие кушает по два объекта User (каждую секунду), но 1С ещё не упала - хотя объектов User съедено немеряно.
#18 by andrewks
сорри, прогнал, давно не вылетал :-) да, при выводе окошка
#19 by Torquader
Что ещё удалось заметить - запустил ВвестиДату и ОткрытьФормуМодально вместе - форма без таблицы и каждый запуск кушает ровно по 2 ресурса, но уже "доели" до трёх тысяч ресурсов USER и никто не упал. То есть, видимо, падение из-за ресурсов наступит когда они кончатся, но уже при открытии любой формы, только работать так 1С может месяцами (если форму, конечно, не открывать как я на одну секунду).
#20 by andrewks
есть мнение (возможно, неверное), что вероятность вылета на терм. серваке гораздо выше
#21 by Torquader
Короче, только перевалило за три тысячи - и вылетело даже без сообщения, то есть просто "нет 1С" и всё. То есть на ресурсы похоже - теперь нужно как-то сделать измеритель ресурсов, чтобы понять, а что там происходит.
#22 by andrewks
ну да, именно так и вылетает - раз - и нет
#23 by andrewks
т.е. 1сину вываливает не система
#24 by Torquader
Если невидимая таблица значений, то никакие ресурсы не едятся, буду ждать.
#25 by andrewks
а при чём здесь ТЗ?
#26 by Torquader
Если на форме нет таблицы значений, то при открытии форма хавает ресурсы, а при закрытии захаванных остаётся на два больше - и так с каждым закрытием. В итоге, при очередном открытии 1С "куда-то делась", а получилось, что я смотрел в диспетчер задач и считал до трёх тысяч, оно дошло, и потом строка с 1С просто пропала.
#27 by andrewks
это понятно, глюк с утечкой. но здесь имхается мне, всё-таки дело в другом. можно создать пустую конфу, и пихануть цикл с ВвестиДату в ПриНачалеРаботыСистемы для чистоты эксперимента
#28 by Torquader
Я так и сделал - вот утечку объектов поймал, а вылет на ВвестиДату не поймал - пока ловлю. Есть подозрение, что проблема намного глубже, то есть кто-то "засирает" память диалога ввода даты при работе, что сказывается при открытии диалога ввода даты.
#29 by andrewks
это не укладывается в вылеты практически сразу после начала работы.
#30 by Torquader
У меня в журнале снизу две маленькие кнопки "Документ по номеру" и "Документ по номеру от даты" (д.№) и (д.№.д) вот - документ по номеру всегда работает, так как вводит только номер документа, а документ от даты перед номером запрашивает дату - и там как раз вылетает. Конечно, не сразу после начала работы, но достаточно быстро.
#31 by Torquader
Тут ещё один "момент" в "вылетающей" используются объекты WScript.NetWork и Scripting.FileSystemObject - может в них дело ?
#32 by andrewks
нет, у меня в базе без них также вылетало. и вообще, вылетало даже в голой ТиС безо всяких внешних приблуд, пока не заменил на ВвестиЗначение
#33 by Torquader
В голой ТиС много чего интересного в глобальном модуле выполняется, да и глобальных переменных немало.
#34 by Fragster
оси типа новые?
#35 by andrewks
--->
#36 by andrewks
без внеш.оборудования
#37 by Torquader
Если 2k3 server - это новая - то да (с "Вислая" и "воскресная" мы пока не работаем - себе дороже). Хотя, на Windows 2000 и на Windows 98 никто не жаловался, что вообще вылетает.
#38 by andrewks
на вынь2к сервер вылетает
#39 by trad
есть такой баг. у меня уже давно в ГМ есть: в модуле обработки: ну и на форме реквизит ВыбДата с типом Дата и формулой ВыполнитьВвод да, и невидимая ТЗ, как на всех других часто вызываемых обработках.
#40 by cabat
пробовал "ВвестиЗначение" - вылетает точно также.. недавно переехали на терминал - по ощущениям частота вылетов не изменилась собираюсь заменить ввод даты своей формой, по аналогии с
Тэги:
Ответить:
Комментарии доступны только авторизированным пользователям

В этой группе 1С