Имя: Пароль:
1C
 
CODEBASE error "unrecognized field name" на SQL базе. Откуда?
0 vcv
 
02.05.11
23:40
Непонятно с чего и в какой момент SQL база при работе стала выдавать CODEBASE ERROR #210 "unrecognized field name". Притом названия полей меняются в одной и той же ситуации. Видел различные SPxxxx, IDDOC, PERIOD. Ошибка выдаётся нерегулярно. Вылезла, например, при открытии документа, тут же документ закрыл/открыл - ошибки нет. Или есть, но ругается на другое поле.
Может кто знает, что это за фигня?
Windows Server 2003, MSSQL 2005, терминал, 1С 7.70.027.
Есть смутное подозрение, что как-то виноваты обновления сервера, которые админ накатывал на этих выходных. Но какие и каким образом?
1 vde69
 
02.05.11
23:51
1c использует свой словарь DD для сопоставления имен метаданных и физ таблиц,

варианты (в порядке убывания вероятности):
1. кто-то балуется со словарем
2. используешь нештатный доступ к базе, внешние ВК и т.д.
3. SQL права ограничивают доступ к отдельным полям
4. средсва защиты конфигурации
2 vcv
 
03.05.11
00:01
(1) Словарь-то словарь, но база-то SQL. И запускается нормально. То есть, формально, на сколько 1С может проверить, база данных соответствует DDS. К тому же я не могу представить, что такое должно случиться в DDS, что бы 1С-ка ругалась на поле PERIOD.
Ошибка, как я понимаю, возникает, когда 1С кладет результат запроса к SQL-серверу во временный DBF-ник и вот тут что-то и происходит.
1. Со словарйм ни кто не балуется.
2. ВК есть FormEx, 1C++, Йоксель и SvcSvc. Версии не обновлялись уже давно. Нешатаных способов доступа к базе не используется.
3. А при чем тут CODEBASE ?
4. Версия КЗК2 тоже не обновлялась уже с полгодика.
3 vde69
 
03.05.11
00:04
(2) при таком зоопарке вк утверждать "Нешатаных способов доступа к базе не используется" просто смешно!!!

ну а про доступ - если ограничить доступ к полю период то получешь сабж
4 vcv
 
03.05.11
00:31
(3) Нештатного доступа к базе не используется. 1С++ используется минимально.
Все же что-то с сервером. База распределенная. Копирую с удаленного сервера на центральный (на котором проблема) копию периферийки. Периферийка в DBF. На удаленном сервере работает без проблем, на центральном - выдает те же ошибки, что и ЦБ в SQL.
То есть, думаю, SQL и права на него можно отбросить, если на DBF-ной базе та же проблема. Саму по себе 1С, кажется, тоже. По крайней мере с базой бухгалтерии (там совсем не используются ВК) аналогичную проблему воспроизвести не удалось.
Что ли какая-то несовместимость возникла 1С++ с сервером? Неожиданно и непонятно откуда :-(
5 vcv
 
03.05.11
00:50
+(4) Самое, по моему, смешное, в том, что не смотря на постоянное вываливание ошибок CODEBASE, 1С не закрывается, и, визуально, работает нормально. Отчеты формируются с виду нормальные. Документы проводятся с, похоже, нормальными движениями.
6 ТочноеЯдро
 
03.05.11
03:33
у одного клиента такая же проблема на ДБФ базе уже достаточно давно.
Вылазит на одном виде документов.
Проявляется крайне случайным образом. В пределах одной сессии 1С - постоянно при проведении. Кроме ошибок по SPххх ничего не попадалось.
Кроме того, что нужно нажать Ок никаких побочных последствий не выявлено.
7 vcv
 
03.05.11
06:20
Заметил сейчас странную вещь. В проблемных базах в папке SYSLOG копятся файлы вида T0.CDX, T0.DBF, T1.CDX, T1.DBF, T2.CDX, T2.DBF, ...
После их удаления ошибки перестали вылазить. По крайней мере долбился-долбился в программу - ни разу не выскочила ошибка. Правда файлы опять таки появляются. И довольно быстро.
8 smaharbA
 
03.05.11
06:32
странное место для темпов ?
9 vcv
 
03.05.11
06:37
Понимаю, что темпы. Но не понимаю, как они туда попали. TEMP и TMP указывают совсем в другое место. Личная папка пользователя в конфигураторе - тоже. Кажется как-то вмешивается то, что я активно пользуюсь файл-флагами, сохраняемыми в SYSLOG с помощью объекта "ТЕКСТ". Сейчас поеду на работу - приеду, буду экспериментировать.
10 Кириллка
 
03.05.11
06:56
(0)эта ошибка может появляться при формировании каких-либо отчетов (штатно) или выборок (штатно). CODEBASE - это компонент платформы для работы с DBF.
11 DrZombi
 
гуру
03.05.11
07:27
(9)(0) Вот пример, как тама временные файлы...
Параметр: /T<путь> - путь к временным файлам

1cv7.exe MODE [ /M | /D<Path> | /U<Path> | /N<Name> | /P<Pass> ],
где MODE - режим запуска, может принимать только одно из трех значений :
config - режим конфигуратора;
debug - режим отладчика;
enterprise - нормальный (рабочий) режим.
monitor - режим "Монитор".
следующие ключи опциональны:
/M - запуск программы в монопольном режиме;
/D - каталог базы данных;
/U - рабочий каталог пользователя (каталог из списка пользователей игнорируется);
/N - имя пользователя;
/P - пароль пользователя;
/T<путь> - путь к временным файлам
/@<ИмяФайла> - для режима конфигуратора с указанием файла пакетного запуска
/W - инициализация Web расширения
/L - язык интерфейса: ENG - английский, UKR - украинский
12 vcv
 
03.05.11
11:10
Кажется причина выяснена.
Каталог временных файлов для 1С размещен на RAM-диске. А так как много места на рам-диске не бывает, сделали скрипт для чистки ненужных файлов во временных каталогах пользователей. Сделали по принципу - если файл во временной папке удалось удалить, значит он уже никому не нужен. Похоже для 1С это не так. У 1С срывает крышу, она начинает раскладывать свои временные файлы в папку SYSLOG и даже, почему-то, на диски клиента, подключенные к терминалу "\\tsclient\C\Documents and Settings\...".
На тестовой базе стало работать нормально. Вечерком, когда все полтораста пользователей пойдут спать, обновлю рабочую базу. Завтра отрапортую общественности, эта причина или нет.
13 Torquader
 
03.05.11
11:13
(12) Ну вы, блин, даёте.
Если бы у вас была файловая база, то её таким методом можно было бы всю удалить.
А каталоги пользователей тоже на RAM сложили ?
P.S. в NTFS открытый файл удаляется, но остаётся до закрытия.
14 vcv
 
03.05.11
11:19
(13) Ну кто же знал. Последние лет пятнадцать C:\TEMP, C:\Windows\TEMP, "C:\D&S\Local Settings\TEMP" чистил просто "del. /y" и никогда проблем не было. И никакого лишнего удаления временных файлов на NTFS не наблюдалось. К тому же чистка проводилась только при запуске 1С, а не на лету в процессе работы. Но 1Ске и этого хватило :-(
15 1Сергей
 
03.05.11
11:25
(14) на терминале "del. /y" при запуске?
16 vcv
 
03.05.11
12:34
(15) Нет. Я предпочел вставить очистку временного каталога в 1С ПриНачалеРаботыСистемы, потому что серверов много, в разных городах, и я не могу отслеживать, что там творят админы. Ненадежно получается через планировщик. Переустановил винду местный админ, а я об этом узнаю только тогда, когда 1С начнет падать по причине отсутствия места для временных файлов.
17 1Сергей
 
03.05.11
12:35
(16) а темпы у всех свои?
18 vcv
 
03.05.11
13:27
(17) У каждого пользователя свой каталог на RAM-диске.