Имя: Пароль:
1C
1C 7.7
v7: Вылет программы с ошибкой c000020c
,
0 Slypower
 
02.09.19
14:16
Добрый день.
Теперь суть. Обработка написана на прямых запросах через ODBCRecordset.
Сама 1С стоит на серваке WS 2016 Standart. Там же и скуль.  Файлы 1CPP.dll (3.2.4.1), FormEx.dll (2.0.5.101 beta) и др. на этом же серваке в папке базы. Обработка работает без проблем.
Если же подключиться через другой сервак WS  2008 R2 Standart, то валится в ошибку
Такая ошибка
https://cloud.mail.ru/public/HkjQ/4euupZgnk.
Примечательно, что валится не постоянно, 2 дня работает без проблем, 1 день ошибка. Завтра опять без проблем. Серваки не перезагружаются. Как побороть данную ошибку?
Ждать день - это логично, но сверить и предоставить данные в головной офис нужно сегодня)))
1 Ёпрст
 
02.09.19
14:19
(0) посмотреть, есть ли обращения к форме из операторов основной программы, например, к заголовку. Если есть, то открытие 2-3 раз приведёт в вылету.
2 Kigo_Kigo
 
02.09.19
14:24
надо бы понять когда вылетает, используются ли в этот момент ВК?
3 Slypower
 
02.09.19
14:26
(1) т.е. может влиять данная строка: ЗаголовокСистемы(СокрЛП(Пользователь)); ? Не, вряд ли.
"обращения к форме из операторов основной программы" как это понять?
(2) вылетает непосредственно при формировании запроса через ODBCRecordset
4 Ёпрст
 
02.09.19
14:27
(3) операторы основной программы - это весь код, который идёт после описания всех процедур и функций.
Там есть чего ?
5 Slypower
 
02.09.19
14:33
(4) нет ничего


    //индексированные таблицы. запросы и разные плюшки
    Если ЗагрузитьВнешнююКомпоненту(КаталогИБ() + "1CPP.dll")=0 Тогда
        Предупреждение("Не удалось обнаружить компоненту 1CPP.dll!" + РазделительСтрок + "Невозможно работать с визированием документов!", 5);
    КонецЕсли;
    
    // dll для работы с FTP сервером, где хранятся договора для регистрации
    Если ЗагрузитьВнешнююКомпоненту(КаталогИБ() + "DialMail.dll")=0 Тогда
        Предупреждение("Не удалось обнаружить компоненту DialMail.dll!" + РазделительСтрок + "Невозможно работать с визированием документов!", 5);
    КонецЕсли;
    
    // dll для работы с расширенными возможностями таблиц
    Если ЗагрузитьВнешнююКомпоненту(КаталогИБ() + "FormEx.dll")=0 Тогда  
        флЗагрКомпонентаFrmEx = 0;
        Предупреждение("Не удалось обнаружить компоненту FormEx.dll!" + РазделительСтрок + "Невозможно работать с расширенными свойствами таблиц!", 5);
    Иначе                        
        флЗагрКомпонентаFrmEx = 1;
        Сервис = СоздатьОбъект("Сервис");
        Сервис.ВключитьРаскраскуТаблиц();
        Сервис.ИспользоватьПланРаскраски(1);
    КонецЕсли;
    
    //изменение кода и шапки на лету.. загрузки именно в такой последовательности!!!
    Если ЗагрузитьВнешнююКомпоненту(КаталогИБ() + "TurboMD.dll")=0 Тогда
        Предупреждение("Не удалось обнаружить компоненту TurboMD.dll!" + РазделительСтрок + "Невозможно работать с визированием документов!", 5);
    КонецЕсли;
      
    ЗаголовокСистемы(СокрЛП(Пользователь));
    ЗаголовокСистемы(СокрЛП(Пользователь));
КонецПроцедуры
6 Slypower
 
02.09.19
14:36
Нет ничего такого, чтобы было обращение к формам. Есть только это в конце, не считая созданных списков значений и считывания значений из констант, задания некоторых переменных
ОбработкаОжидания("ПроверкаРасписания",Константа.АдмПериодОпроса);
7 Kigo_Kigo
 
02.09.19
14:40
(6) то есть обработка ожидания у тебя работает для всех пользователей?
8 Slypower
 
02.09.19
14:44
(7) да, для всех
9 trad
 
02.09.19
14:55
10 Slypower
 
02.09.19
14:55
Проверил на 3м сервере (WS 2008 R2 Standat). Т.е. так же подключение по сети. Ошибка не выскочила. Значит чего-то не хватает на серваке.
Может ли причиной быть установленный патч на 4 Гб, или отсутствие qryConsole?
11 Ёпрст
 
02.09.19
14:59
(10) что за патч ? И qryConsole тут вообще никоим боком
12 Slypower
 
02.09.19
15:01
(11) 4gb_patch. Патч на оперативу, когда 2 гига мало. Но врдли, ведь его везде ставили, на всех серваках
13 Slypower
 
02.09.19
15:35
Стоит сказать, что на том серваке, на котором выбрасывает, работаю все пользователи. Т.е. через него по RDP работают в 1С, на других никого. Возможно ли это еще из-за того, что там 2 разные 1с 7.7?
Может что у кого из файлов может запущено и блокирует нормальную работу...
14 Slypower
 
03.09.19
10:02
На сегодня проблема не вылечилась. Но заметил, если зайти на зеркало базы на этом же сервере, то ошибки нет. Вывод: что-то не то в папке с базой.
Скажите, что за файлы типо: SC3427.$lk? Можно ли их удалить?
15 Slypower
 
03.09.19
10:13
Файлы эти - это открытие элементы справочника для редактирования.
16 Slypower
 
03.09.19
10:17
Есть файл в базе: defcls.prm. Создавал его для подключения класса AccountsRecordset. Если этот файл удалить, то валится с такой же ошибкой, как и в (0). Он должен быть пусть и пустой, но должен быть. Полагаю, что вся ошибка из-за него. Как избпвиться от файла, чтобы не валило с ошибкой 1С?
17 trad
 
03.09.19
10:48
(16) в конфе - обработка defcls в ней инклюд
18 Slypower
 
03.09.19
11:30
(17) в конфигураторе такой обработки нет, в опенконфе тоже не нашел.
19 Slypower
 
03.09.19
11:41
(17)  мне нужно удалить файл, а не создавать подключение к классу
20 Slypower
 
04.09.19
08:45
В общем решение такое, перезагрузить сервер. Будем настраивать регламентное задание по перезагрузку компа
21 trad
 
04.09.19
15:27
(19) Я и не предлагал "создавать подключение к классу"
Тебе нужно найти то место, где требуется нужен наличие defcls.prm
Одно из таких возможных мест - include в обработке defcls в конфигурации
22 trad
 
04.09.19
15:28
(18) что значит "в опенконфе тоже не нашел" ?
как можно defcls найти в опенконфе
23 uno-group
 
04.09.19
16:02
Где то я недавно глюк поймал с русским названием пути базы.
24 uno-group
 
04.09.19
16:05
или пробелом. когда обработка которой 100 раз юзал вдруг перестала работать
25 Slypower
 
04.09.19
17:51
(21) нигде не прописано. Занимательно то, что просто удалить файл из папки нельзя, тогда в ошибку валится при запуске 1С.
Глупец, лишенный способности посмеяться над собой вместе с другими, не сможет долго выносить программирование. Фредерик Брукс-младший