Сотрудники компании «АйТи-Консалтинг», специализирующиеся на разных программных продуктах, бухгалтерских и it услугах, написали статьи, позволяющие посетителям сайта быстро ориентироваться в ответах на интересующие вопросы.
Неточности СУБД базы данных (ошибка SQL) в программном продукте 1С: Предприятие 8
Данный материал будет полезен пользователям, столкнувшимся с неточностями в работе программных продуктов на платформе 1С: Предприятие 8.
Наличие большого количества сообщений пользователей (администраторов компаний, клиентов) с просьбой о содействии в ликвидации крупных ошибок СУБД базы данных (ошибка SQL) в программе 1С: Предприятие 8, стало причиной создания данной публикации.
На рисунке 1 приведен пример окна ошибки: Ошибка СУБД Ошибка SQL.
Почему возникают такие ошибки?
В первую очередь это обуславливается неправильной работой пользователей на местах с программами 1С. Экономия владельцев бизнеса на обучении своего персонала корректной работе с данным программным обеспечением, либо экономия на техническом оснащении, работа на устаревших компьютерах, применение близких к окончанию сроков эксплуатации жестких дисков через некоторое время могут вызвать крупные расходы. Неприятным результатом может стать простой бизнеса, а также утеря данных управленческого, бухгалтерского либо финансового учета.
Примеры источников ошибок в функционировании программ 1С и виды визуального выражения нарушения целостности БД (база данных):
-
аварийное завершение работы ОС с работающей программой 1С: Предприятие 8, в особенности во время формирования, проведения либо удаления файлов;
-
удаление и повреждение конфигурационных файлов в результате вмешательства со стороны пользователя либо техники;
-
приостановка процесса восстановления архивной информации;
-
отсутствие внешнего надежного напряжения питания;
-
присутствие файлов без нумерации, дат создания;
-
присутствие файлов с датой создания, которая не соответствует рядом стоящим файлам, к примеру, 2001 г. 01 ч. 01 мин. 01 с.;
-
присутствие операций без нумерации, дат создания;
-
недоступность ранее созданных файлов и операций;
-
отсутствие ссылок на объекты.
Таким образом, в первую очередь нужно завершить работу программы 1С.
После этого создайте копию БД (база данных) с повреждениями (для этого нужно сохранить базу в отдельный каталог на винчестере). Путь, ведущий к местонахождению БД (база данных), можно определить с помощью панели запуска 1С: Предприятие 8 внизу, найдите данный каталог на жестком диске и скопируйте его (смотрите рисунок 2).
Рисунок 2: Окно запуска 1С: Предприятие 8.
Далее протестируйте БД (база данных) на физическую целостность (на предмет «разрушения»). Чтобы это сделать, выполните переход к стандартной встроенной обработке 1С: Предприятие 8 по исправлению и тестированию неточностей – chdbfl.exe (загрузить для 1С: Предприятие 8). Данный документ должен присутствовать в каталоге с установленной программой 1С, найдите и выполните его запуск (смотрите рисунок 3).
Рисунок 3: Местонахождение документа chdbfl.exe.
Потом выбираем документ 1CV8.1 CD, который можно найти в каталоге нашей БД (база данных) с повреждениями, устанавливаем галочку «Исправлять обнаруженные ошибки» и жмем «Выполнить» (смотрите рисунок 4).
На проверку физической целостности документа БД (база данных) может уйти от 10 мин. до нескольких часов – это определяется объемом вашей БД (база данных) и количеством неточностей в ней. По завершении проверки обнаруженные неточности рекомендуется сохранить в отдельный документ для последующей экспертной диагностики.
Рисунок 4: Окно проверки физической целостности документа информационной базы
После этого зайдите в режим конфигуратора (смотрите рисунок 5) и найдите в нем сервисную утилиту “Тестирование и исправление информационной базы” (смотрите рисунок 6).
Меню – Администрирование – Тестирование и исправление
Рисунок 5: Конфигуратор
Рисунок 6: Окно тестирования и исправления БД (база данных)
Выберите такие пункты, как:
-
Реиндексация таблиц информационной базы – функция восстановления табличной части БД (база данных).
-
Проверка логической целостности информационной базы – функция проверки логической целостности БД (база данных).
-
Проверка ссылочной целостности информационной базы – тестирование внутренних связей таблиц, которые устанавливает программа 1С: Предприятие 8, проверка фактического существования элементов данных со ссылками в полях записи таблиц.
-
Перерасчет итогов – выполнение полного перерасчета итоговых данных.
-
Переключатель ниже, выбор пункта «Тестирование и исправление».
Операция «Тестирование и исправление» может длиться от 10 мин. до нескольких часов – это определяется объемом БД (база данных) и количеством неточностей в ней. По завершении проверки обнаруженные неточности рекомендуется сохранить в отдельный документ для последующей экспертной диагностики.
На следующем этапе закройте конфигуратор, откройте БД (база данных) в стандартном режиме и оцените произошедшие изменения с поврежденными файлами либо справочниками, сформируйте ключевые отчеты для сравнения. Если проблемы отсутствуют и все в порядке, смело продолжайте работу с БД (база данных). Если проблема с информационной базой все еще присутствует, приглашайте эксперта по 1С из обслуживающей компании «АйТи-Консалтинг», либо сразу обращайтесь в техническую поддержку 1С.
Внимательно изучите ситуацию, сделайте верные выводы: обеспечьте вашим работникам обучение корректной работе с программами 1С, купите новую технику на замену старой.
Если Вы слишком заняты и не можете тратить на это время, мы ждем Ваших обращений в сертифицированный центр обслуживания 1С — «АйТи-Консалтинг».
Делимся опытом, как исправить ошибки в логической целостности в базе 1С, размещенной на Microsoft SQL Server.
Поступила жалоба от бухгалтера о проблемах с проведением документов в 1С.
Из скриншота выяснилось, что 1С «ругается» на проблемы с согласованностью «внутри» базы данных и предлагает провести проверку на согласованность.
Переходим в SQL Server Management Studio и, сделав, на всякий случай, бэкап текущего состояния, выполняем проверку:
Для начала переводим нужную нам БД в однопользовательский режим
Запускаем Окно запросов (CTRL+N). Выбираем Новый запрос и вводим запрос Transact-SQL (T-SQL) в этом окне:
ALTER DATABASE KA SET SINGLE_USER WITH ROLLBACK IMMEDIATE
Далее, вводим запрос на сканирование базы данных:
USE [ka] GO DBCC CHECKDB(N'ka') WITH NO_INFOMSGS GO
Проверка продлилась около 15 минут, после чего выдала следующее:
CHECKDB обнаружил 0 ошибок размещения и 766 ошибок согласованности, не связанных ни с одним объектом.
CHECKDB обнаружил 0 ошибок размещения и 1 ошибок согласованности в таблице «sys.sysdbfiles» (идентификатор объекта 20).
CHECKDB обнаружил 0 ошибок размещения и 1 ошибок согласованности в таблице «sys.sysxmlcomponent» (идентификатор объекта 91).
CHECKDB обнаружил 0 ошибок размещения и 49 ошибок согласованности в таблице «_AccRg1025» (идентификатор объекта 1778313595).
CHECKDB обнаружил 0 ошибок размещения и 3 ошибок согласованности в таблице «_AccRgAT21046» (идентификатор объекта 1826313766).
CHECKDB обнаружил 0 ошибок размещения и 1783 ошибок согласованности в таблице «_AccRg1051» (идентификатор объекта 1906314051).
CHECKDB обнаружил 0 ошибок размещения и 2603 ошибок согласованности в базе данных «KA».
Вариант решения №1: восстановление из бэкапа выявило накопительный характер ошибки: чем раньше сделан бэкап – тем меньше в базе ошибок, вплоть до самого «дальнего» (14 дней). Примерно на третьем бэкапе количество ошибок перестало уменьшаться – стало ясно, что этим путём мы придём только к потере актуальности базы и проблему не решить
Вариант решения №2: В
справочной информации описаны три возможных варианта исправления этих ошибок, рассмотрим каждый:
REPAIR_FAST
Синтаксис поддерживается только для обеспечения обратной совместимости. Действия по восстановлению не выполняются.
REPAIR_REBUILD
Выполняет действия по восстановлению данных, которые можно выполнить без риска их потери. Это может быть быстрое восстановление (например, восстановление отсутствующих строк в некластеризованных индексах) или более ресурсоемкие операции (например, перестроение индекса).
REPAIR_ALLOW_DATA_LOSS
Пытается устранить все обнаруженные ошибки. Эти исправления могут привести к частичной потере данных.
Аргумент REPAIR_FAST нам не подходит, REPAIR_ALLOW_DATA_LOSS оставим на крайний случай — пробуем REPAIR_REBUILD:
DBCC CHECKDB(N'ka', REPAIR_REBUILD) WITH NO_INFOMSGS
CHECKDB обнаружил 0 ошибок размещения и 766 ошибок согласованности, не связанных ни с одним объектом.
CHECKDB обнаружил 0 ошибок размещения и 1 ошибок согласованности в таблице «sys.sysdbfiles» (идентификатор объекта 20).
CHECKDB обнаружил 0 ошибок размещения и 1 ошибок согласованности в таблице «sys.sysxmlcomponent» (идентификатор объекта 91).
CHECKDB обнаружил 0 ошибок размещения и 49 ошибок согласованности в таблице «_AccRg1025» (идентификатор объекта 1778313595).
CHECKDB обнаружил 0 ошибок размещения и 3 ошибок согласованности в таблице «_AccRgAT21046» (идентификатор объекта 1826313766).
CHECKDB обнаружил 0 ошибок размещения и 1783 ошибок согласованности в таблице «_AccRg1051» (идентификатор объекта 1906314051).
CHECKDB обнаружил 0 ошибок размещения и 2603 ошибок согласованности в базе данных «KA».
Не помогло, переводим базу данных обратно в многопользовательский режим:
ALTER DATABASE KA SET MULTI_USER
На всякий случай, я попробовал провести обслуживание базы данных и перепроверил – результат тот же.
Решил провести тестирование и исправление информационной базы средствами 1С, на что получил ошибку
Выгрузить базу данных в *.dt файл тоже не удалось:
Что ж, стало понятно, что часть потерянных данных – меньшее зло, по сравнению с «развалившейся» базой данных, пробуем REPAIR_ALLOW_DATA_LOSS:
DBCC CHECKDB (N'KA', REPAIR_ALLOW_DATA_LOSS) WITH NO_INFOMSGS
И, наконец, после нескольких прогонов, количество ошибок немного уменьшилось:
CHECKDB обнаружил 0 ошибок размещения и 733 ошибок согласованности, не связанных ни с одним объектом.
CHECKDB обнаружил 0 ошибок размещения и 1 ошибок согласованности в таблице «sys.sysdbfiles» (идентификатор объекта 20).
CHECKDB обнаружил 0 ошибок размещения и 1 ошибок согласованности в таблице «sys.sysxmlcomponent» (идентификатор объекта 91).
CHECKDB обнаружил 0 ошибок размещения и 1783 ошибок согласованности в таблице «_AccRg1051» (идентификатор объекта 1906314051).
CHECKDB обнаружил 0 ошибок размещения и 2518 ошибок согласованности в базе данных «KA «.
Ситуацию это не спасло: база, по-прежнему не выгружалась и не «лечилась» средствами 1С.
Дальнейшие попытки (по очереди несколько раз запускал REPAIR_REBUILD и REPAIR_ALLOW_DATA_LOSS) не увенчались успехом: количество ошибок не уменьшилось, база, по-прежнему, не выгружалась и не «лечилась».
Коллеги подсказали попробовать очистить (именно очистить, без удаления самой таблицы) «проблемную» таблицу в MS SQL.
Больше всего ошибок в таблице «_AccRg1051» – ей и было принято решение заняться:
Вводим запрос
TRUNCATE TABLE _AccRg1051
И, после успешного выполнения, прогоняем проверку еще раз:
DBCC CHECKDB(N'ka') WITH NO_INFOMSGS
15 минут ожидания и, о чудо – все ошибки исчезли, в том числе и в остальных таблицах.
Перевожу базу в многопользовательский режим, выгружаю в *.dt файл и загружаю обратно.
Звоню бухгалтеру – прошу проверить проблемные документы: всё работает нормально. Пускаю остальных пользователей в базу.
Через час снова ошибка:
Делаем вывод, что выгрузка в *.dt – не панацея. Выгоняем Вежливо просим пользователей выйти и ещё немного потерпеть и тестируем базу с исправлением ошибок в режиме конфигуратора 1С со следующими параметрами
Видим, что всё ОК
Пускаем обратно пользователей в 1С и идём молиться настраивать планы обслуживания баз данных.
Иногда мне на почту приходят письма, где пользователи пишут, что внедрив план обслуживания базы 1С (MS SQL) вдруг замечают, что в базе ошибки.
Конечно, данная тема также подымается и на курсе: Администратор 1С!
И происходит это, как правило, на этапе проверки целостности базы данных.
Проблема вскрывается благодаря плану обслуживания, а конкретно на задаче проверки целостности базы.
Простым языком, проблема с базой есть и ее уже нужно решать!
Иначе в недалеком будущем, база может «сломаться», и работа встанет совсем.
А в лучшем, более оптимистичном варианте, могут наблюдаться «тормоза».
И так быстрый ремонт базы на сервере MS SQL по шагам:
Шаг №0
Обязательно делаем «Бэкап» перед выполнением любых действий над базой данных.
Шаг №1 (Переводим базу данных в режим “single user”).
И так чтоб перевести базу данных в однопользовательский режим “single user”.
Нужно выполнить следующий скрипт на MS SQL.
ALTER DATABASE MY_BASE SET SINGLE_USER WITH ROLLBACK IMMEDIATE; |
Шаг №2 (Проверка и ремонт базы).
Проверять физическую целостность БД мы будем, конечно, средствами MS SQL.
Для проверки нужно выполнить следующую команду:
DBCC CHECKDB («имя_базы», REPAIR_REBUILD) |
В процессе работы этой команды: DBCC CHECKDB могут быть обнаружены ошибки, но часть их может быть сразу же исправлена. Ведь мы используем параметр «REPAIR_REBUILD».
Если ошибки останутся и после этого, то это будет означать что их нельзя восстановить без потери некоторых данных. В этом случае нужно запустить команду DBCC CHECKDB с параметром REPAIR_ALLOW_DATA_LOSS
То есть так:
DBCC CHECKDB («имя базы», REPAIR_ALLOW_DATA_LOSS) |
После выполнения команды, обратно возвращаемся в нормальный режим «MULTI_USER» (выходим из режима “single user”):
Вот скрипт, который выполняем на сервере.
Шаг №3 (MULTI_USER).
ALTER DATABASE MY_BASE SET MULTI_USER; |
Это должно “отремонтировать вашу базу” Но не забываем в самом начале обязательно сделать «бэкап» базы!
Если Вы хотите больше узнать о технической стороне 1С, тогда регистрируйтесь на первый бесплатный модуль курса: Администратор 1С >>>
�� ������� |
������� |
���� |
�������� |
������ ���������� (�� ������� House M.D. � ����������� � ������ �������)
- �-� �����: ����� �������. �������, 26 ���, ����� ���� ��� �������, � �������� �� ��� �������� ����� 6 �����. ��� �������� ��-�� �������������� ��������� � ������
�-� ����: �����, ��������� ����� ��� ��������� ������������� �� �� ������ ������. - �-� ����: �����������, ��� ����� �������� ���������� �� ���� ������� ����������� ������. � �� �������� �������������.
�������: ������ � ������ ������ ����������� ������? ����� �����, �� ����� ����������� ���-������ � ���������������. ��� ���-�� ������� ������ � ��������� 帅
�-� ����: ��, ���������. ������������� �������� ����� ������ ����. �������� ������������� �� �� �����������. ��� ������ ������� ������� ���.��������, �������� ��� ������.
�������:��� ��������.
���� � ��������� �������������
�������: � ���� ������� ��������.
�-� ����:(����������) ������,����-�������. ������� �� ��������. ���� ������ �������� ��������. ������ �� ��� � �����. ��������� � ������ ����� ������. � ������� � ������ ����������� ������.
- �-� ����: � �������� �������, ��� ��� ���� ������ ��� �� ����, ��� ������ ����������.
��� ���������: � ������, ��� ��� ������� ��������. � ���, �� �������� ��� �������?
�-� ����: Ÿ ������� � � ��������? ����� ���������. - ���� ���������: � �������� �������, ��� ��� ���� ��������� ��� ��������?
�-� ����: ���, �� � ����������� ����� �������
�-� �����: �� ����� �������� � � ����?
�-� ����: ��������, ��� ������� �� � �������. �������, ����� ���������� ������ ��� 1000 ���� ��������. - ������: � �� ������� ������������, ����� ��� ����� ������� ��� ������ ���������.
� ���� ������ ������� ������ ����� ��������� ������� ��������������� ��������, ������� ����� ���������� ��� ������ � 1�:����������� 8.1.
������ ������ ����� ���, �� ����� ������� �� ����, � ���� ����� ��������� ����� ������ ���� :))) . ������� ����� ������� ����� ������������, ��� ������ �������� ������� ���� ������ ��� ���������� ��� �����������, � �� ������ ������� ������ ������� � ���������� �������� �� ������. ��� �� ����� ��� ��������, ���������� ����� ������� �� ���� �������� ����� ����������� ��� ������� ����������� �������.
� �������� �������� ����� ���������:
������ 1. ������������ ����������� �� ������������� ������� 1�:�����������.
����� ���������:
«������ ���������� � �������� 1�: ����������� 8.1:
server_addr=App1�:1540=������ �������� ������� � �������
(Windows sockets — 10061(0x0000274D)
No connection could be made because the target machine actively refused it) line =567
������ 2. «���������» ������ � �������������� ����.
����� ���������:
������ ��� ���������� �������� � �������������� �����
Microsoft OLE DB provider for SQL Server: Login failed for user �user1c�
HRESULT=80040E4D, SQLSrvr: Error state=1, Severity=E, native=18456, line=1
������ 3. �������� «�����������» ������.
����� ���������: ���������� ����������� ������ �� ������� 1� ����������� (80010108)�
1. ����������� ������ (����������) ������ � ����������� ��������� �������������
- ������������ ������ (����� �/��� ������ ����������, ������� ����� ����������� ��� ������� ��������). �������� ����� ����������� � ������� ���������������� �������. �����: ���� �� �� ����������� ��������������� ������ ��� ������ �����, ��������� ��� �� ���������� ��� ���� ������� «����������» (EXCP) � ������������ ������ ������ ������� ���������.
- ������������ ����� ������������� ������. ��� � ���������� ������� ������������ ����� �������� ��������� �����.
- �������� ����� ���������, ����������� ����� ������ �������� ������������� �������� �� ����������� ����� ������.
- ��������� ����� ������� �� ������ ��������� � ��������� ��� � ������ ��������� ��� ���������� ������� ��������.
- ��, ��� �� ����� �� ���������� �������� ������� � �������� ���������, ������ �� �� �����, ����� ��� ��� ���� ��������� ��� ����������.
����������. ������ 1. ����� � ���� � ������� «��� ����� ����� ������� �������» �� ����������� �� ������ �������� ������ «10061» ������� ����� ���������� ������� � �������: �� ������� ���������� ����������� ������ «����� ������� 1�:����������� 8.1«. �������������� �� ���� ���������, �������� �� ��������� ������:
net start ����� ������� 1�:����������� 8.1
���� ������ ���������� �� ��������, � ��������� ������� �������� ����� ����� C:Program Files1cv81server � ������� ���������� ����� �������� ������.
2. ��������������� ������
�� ����������� �������� ��������, ���� ������ ����� �� ���� ��� ������ ������ ����� �������. ������ ����� ������, ���� ������� �� ������� ��� �������� ����������. �� ������ ������ ����������� ��������� �������������� ������, ������� �������-����������� � ������ �������. ����� ��������� ����, � ������������� ��������� ��������� �������, ������������� �� ����.
��� ����������� ��������� ������������ � ����� ��������� �� ������. ���� ��� ����������� ��������� ����������, ���������� ��������� ���������� (���� ��� ��������) ������ �������� ��-������. ��� ����������� ������������-��������� � ���� ������� ���������� ����� ���������� ������� �������� ������� ��������� �� ���������� �������������.
��������������� ������
��������� ��������������� ������ ����� ����������� ��� ��������, ����������� «������» ������-���������� ��������. ���������� � ������ �����, �� ���� ��� ����� ���� ������ �������. ���� �� �� ������������ ��������������� �������� ��� �� ������ — ��� �� ������ ������� � �������� ����������� ����� �������. ��������������� ������ ���������� ������ ��� ������� ���� �����.
����� �������������
�-� ���� (������� � �����): �� ������ ��������� ���?
�-� �������/�-� ���� (������������): ���!
�-� ����: ������� ��������� �������� ���!
���� ���� (Everybody lies) � ����
� ������� ������������� ���� ����������. ���� ������ ����������� ����� ���������, ������ ����� ���� ��� ����� ������������ � ���������������� ��� ������ ��������� ����������. ����� ����, ��� ����� � ������ ����������������� �� ������� ������� �/��� ����������� ������, ���� ���� ����.
��������������� ��������
������ ��������������� ��������� ���� ���������� ����������.
����� ����������� �����-���� «������-����������������� ��������» ����������� �������� �����.
����������. ������ 2. ������� �� ������ �� ��������� �������� �� ��������� ������ ��������� «provider for SQL Server». ��� ��������, ��� �������� �������� ��� �������������� ������� ���������� 1�, ������� �������� �������� ��� SQL Server. ���������� �������� �Login failed for user �user1c�� — ��������� ����������, ��� ������ �������� ��� ��������� ����������� ������������ �user1c�, ������� ������ �� SQL Server.
����� ��������� ������������� ������ ������ ���������� �������������, �������� �� � ��� � ������ ������ �������������� ����. ������������ � ����� ������� ������ ��������, ��� ����� �������� �� �����. ��� � ���� ������� ��������� «����» ���������� ����� 1�:�����������, ��� ��� ����� ������ ���� �� �� ��� � ����.
�������:
��������� Management Studio � ������� ������������ � ������� ��� «user1c». �����������, ������������� ������� ������ ������ ������ «user1c». ��� ���� � ���������� �������������� ���� � �������� �������� ������� «������» ������.
����� ���������� ������ � �������������� ���� � �������� �������� 1�:����������� �������� �������.
3. ����� �������
- ����� ������� �������� �� �������� ����� ������� �������� � �������:
� ����� ���� � ��� ���� ����� � ������� ���������� �� ����? ������� ��� �������� �� ������ � �� ���� - ��� ������ �������������� ������� �����������.
- �� ����� ���������, ���������� �� ������ forum.mista.ru � partners.v8.1c.ru (������ ��� ������������� ����������, ��� �� ������ ����� ���������� ��������� �����).
- ��� ����� ������������� ������� ������������ ��������� ������ «���� ������», «����� ������», «������ � ���������� ������������».
����������. ������ 3. ��������� ������� Google (www.google.ru) ������ ����� ������� �The object invoked has disconnected from its clients�. �.�. �� ����� ������� ���������� ������� 1�:����������� ���� ���������. ��������� ���������� ��������� ������� ���������� ����������: ���������, ��������� �� ����� ������ ������������ � ���� �������������. ������ ��������� �� �������� (�.�. ����� ��������� ����� ����� ��������� ����������). �������, ������ �� ������� ����������, ������ ����� ��������. ���������, ���� �� ��������� � �������, ����������� ����������������� � ����� ����������, ������� �������� ������� � ������ ������� ��������.
��� ���������� ��������, ����� �� ������� �������� ������� ����� ����������������, ������� ����� ������������ ���������� ������� ���������������� ���������� �������.
� ������ ������� «����� ���������� ��������» ����� ��������� «���������� ������» = 20 �����, ��� ������������� � 20 ��������� ��������� ������������� ���� ������.
������ �4. ������ �����.
���������� ����������
� ������, ��� � ��� ���� ��� ��������.
��� ����� ���.
��� ��� ��� ����� ��-�� ����,
��� ���������� ��� �������,
� ��� ���� ���� ���������.
� ����
�������� ������ ������������� � ���������, ������� �������� ����������. ����� ��� ������ �������� ��������������� ������ � ������������ ��������� ������ ������. ���������� ������ ���������� �������� �� ������, �� ��� �� ����������, �������� ���� �������.
��������, ���� ��� ������������� ����� ����������� MS SQL Server 2005 ���� SP3 ��� ������ � 1� v8.1 ���� ����� ������� � ��������� ������� �������� ����� ��-�� ������� ������ � �������� 23:59:59, ����� ������� ������ � ����� �� ��������. ������ ��������� ������������� ���� ��� ��������� ���������� «**.**.** 0:00:00» — ����������� ����������.
(���������� ����� http://social.msdn.microsoft.com/forums/en-US/sqldatabaseengine/thread/b720d8cc-d8c7-419f-8f65-5a4187a26ac2 � http://partners.v8.1c.ru/forum/thread.jsp?id=462620#462620)�������, ���� ���������� �� �����, �� ������� �������� ��� ����� ����� �����. �� �����������, ����� ������� �� �������!
��� ����� ����� ������� �������
� ��������� ����� ����������� ��������������� �������� ���������� ����� ������, ��� ��� �� ��� � ��������� ��������� ������.
���� �������� ������ ����� ��������. ���������� ��������� ����� �� ���� ������ ��� ����� ������ ���������.
��������� � ��������� �� 8.2
�� ���������� ������������� ������ 1�:�����������
������������������� |
� |
� | |
������SDBL |
� |
� | |
� | |
� | |
� | |
� | |
� | |
� | |
� | |
� | |
� | |
��������������������������� |
� |
� | |
� | |
Windows�Sockets |
� |
10061 |
� |
� | |
� | |
� | |
� | |
� | |
� | |
� | |
� | |
� | |
� | |
10106 ������ �������� ������� � �������. (Windows Sockets — 10106(0x0000277A) 10048 ������ �������� ������� � ������� (Windows Sockets — 10048(0x00002740) |
� |
� | |
� | |
Windows�Installer |
� |
� | |
Windows | � |
� | |
� | |
HRESULT=800708C5 | � |
� | |
HRESULT=800706BE� | � |
� | |
HRESULT=800706BA | � |
800706BA� |
� |
HRESULT=8007056B | � |
� | |
HRESULT=80070056 | � |
� | |
HRESULT=80040E4D | � |
� | |
HRESULT=80040E31 | � |
SQLSTATE=HYT00 |
� |
native=1222 |
� |
� | |
HRESULT=80040E2F | � |
native=2601 |
� |
� | |
� |
� |
� | |
HRESULT=80040E14 | � |
native=9002 |
� |
� | |
native=8630 |
� |
� | |
native=8626� |
� |
� | |
native=8133 |
� |
� | |
native=8124 |
� |
� | |
native=8120 |
� |
� | |
native=319 |
� |
� | |
� | |
� | |
native=306 |
� |
� | |
� |
|
� |
� |
native=207 |
� |
� | |
native=130 |
� |
� |
� |
� | |
�� ��� ��� �Microsoft OLE DB Provider for SQL Server: Multiple-step OLE DB operation generated errors. Check each OLE DB status value, if available. No work was done. HRESULT=80040E07 |
� |
� | |
HRESULT=8002000A | � |
� | |
HRESULT=80010108� | � |
HRESULT=80010005� | � |
HRESULT=80004005 | � |
native=8134 |
� |
� | |
� | |
� | |
native=601 |
� |
� | |
native=3624 |
� |
� | |
� | |
native=1205 |
� |
� | |
native=11 |
� |
� | |
� | |
native=102 |
� |
native=21 |
� |
�������������������HRESULT=80004005 | � |
� | |
������ ����: ������ ����: htype=SQL_HANDLE_STMT hndl=0x10001, line=2491, file=.srcDB2Connection.cpp SQLSTATE=57011, native=-964, ‘[IBM][CLI Driver][DB2/NT64] SQL0964C ������ ���������� ��� ���� ������ ��������. SQLSTATE=57011’ ������ ����:[IBM][CLI Driver][DB2/NT64] SQL0429N ������ ����: htype=SQL_HANDLE_STMT hndl=0x10001, line=2609, file=.SrcDB2Connection.cpp SQLSTATE=42986, native=-750, '[IBM][CLI Driver][DB2/NT] SQL0750N �����������������,�����������������������������,������������������������ |
� |
� | |
� | |
|
� |
� | |
� | |
� | |
� | |
� | |
� | |
� | |
� | |
� | |
� | |
� | |
� | |
� | |
� | |
� | |
� | |
� | |
� | |
� | |
� | |
� | |
� | |
� | |
�� ����������� ���� ������ � dt
�� ������� ���������� ������ ������
���������������8.0
������…
���� ������� ����������������. ��������� ����� �����. �� ��� ���� ������ ������������ ��������. ������, ��� ���� ������������ 1� � � :).
������� � ������ ���������� �����
Доброго времени суток, уважаемые читатели блога SoftMaker.kz. Сегодня мы поговорим, как побороть ошибку, возникающую в файловой базе 1С при неправильном закрытии системы 1С:Предприятие, например при внезапном отключении света или неправильной работе компьютера (работает и в случае, если 1С:Предприятие 8 установлено на MS SQL Server 2008 R2 Express). Ошибка СУБД: Ошибка SQL: «Таблица не найдена: _Reference76» появлялась, когда производилось тестирование и исправление информационной базы (ТиИ ИБ) при прохождении проверки логической целостности ИБ. При попытке выгрузить ИБ Конфигуратор вылетал.
Проверка физической целостности файла 1Cv8.1CD с помощью утилиты chdbfl.exe показало, что ошибок не обнаружено. Поэтому пришлось идти другим путём и получилось следующее:
- Определяем как в базе называется таблица _Reference76 с помощью внешней обработки 1С
- Заменяем справочник «Спецификации номенклатуры» на новый
- Убираем ссылки со старого справочника «Спецификации номенклатуры» и удаляем его
Определяем как в базе называется таблица _Reference76 с помощью внешней обработки 1С
В случае ошибки СУБД: Ошибка SQL: Таблица не найдена _Reference76 сразу становится ясно, что была удалена таблица «_Reference76» и из названия ясно, что это какой-то справочник. Но как теперь определить, к какому именно справочнику таблица «_Reference76» относится, чтобы попытаться её восстановить? Для этого можно написать небольшую обработку для выяснения названия:
Процедура КнопкаВыполнитьНажатие(Кнопка) МассивИменМетаданных = Новый Массив(); Для каждого Объект Из Метаданные.Справочники Цикл МассивИменМетаданных.Добавить(Объект.ПолноеИмя()); КонецЦикла; // Таблица значений, содержащая таблицы указанного объекта. Таблицы = ПолучитьСтруктуруХраненияБазыДанных(МассивИменМетаданных); Для Каждого Таблица Из Таблицы Цикл Сообщить(Таблица.Метаданные + " - " + Таблица.ИмяТаблицыХранения); КонецЦикла; КонецПроцедуры
В результате работы обработки выяснилось, что таблица «_Reference76» относится к справочнику «Спецификации номенклатуры».
... Справочник.СпецификацииНоменклатуры - Reference76 ...
Обработку для поиска соответствия названия справочников конфигурации 1С и их внутренних таблиц можно скачать отсюда.
Заменяем справочник «Спецификации номенклатуры» на новый
Теперь заменим справочник «Спецификации номенклатуры» на новый. Для этого выполним следующие действия:
- Изменим наименование справочника «СпецификацииНоменклатуры» на «ЯСпецификацииНоменклатуры». Нажмём правой кнопкой мыши на справочнике «СпецификацииНоменклатуры» и в контекстном меню выберем пункт «Свойства» и в поле «Имя» изменим наименование.
- Теперь отсортируем справочники в дереве метаданных по имени. Нажмём правой кнопкой мыши на справочнике «СпецификацииНоменклатуры» и в контекстном меню выберем пункт «Сортировать…». Cправочник «СпецификацииНоменклатуры» оказался в самом низу, нам это пригодится в дальнейшем.
- Теперь заменим справочник «Спецификации номенклатуры» на новый. Для этого нужна идентичная конфигурация с неповреждённым справочником «Спецификации номенклатуры». Нужно открыть эту конфигурацию в режиме «Конфигуратор» и выделить справочник «Спецификации номенклатуры» в дереве метаданных и скопировать его (Ctrl+C).
- Открываем «Конфигуратор» с повреждённой базой и вставляем новый справочником «Спецификации номенклатуры» (Ctrl+V).
- Теперь снимем с поддержки справочник «ЯСпецификацииНоменклатуры», чтобы затем удалить его. «Конфигурация» | «Поддержка» | «Настройка поддержки». В дереве метаданных выберем справочник «ЯСпецификацииНоменклатуры» и двойным щелчком мыши на справочнике откроем следующий диалог:
- В диалоге «Настройка правил поддержки» выберем правило «Объект поставщика снят с поддержки» и поставим флажок «Установить для подчинённых объектов».
- После снятия с поддержки справочники «ЯСпецификацииНоменклатуры» и «СпецификацииНоменклатуры» в дереве метаданных конфигурации выглядят следующим образом:
Убираем ссылки со старого справочника «Спецификации номенклатуры» и удаляем его
-
- Жмём правой кнопкой мыши на справочнике «ЯСпецификацииНоменклатуры» и в контекстном меню выбираем пункт «Удалить». Появилось сообщение Конфигуратора: «Объект не может быть удален, так как на него имеются ссылки в других объектах!»
- Нажимаем на кнопку «ОК». В окне служебных сообщений видим список объектов, которые содержат в себе ссылки на справочник «ЯСпецификацииНоменклатуры». Этот список поможет быстро заменить ссылки со справочника «ЯСпецификацииНоменклатуры» на справочник «СпецификацииНоменклатуры». Приступим.
- Чтобы заменить ссылки в объектах нажимаем на каждую строку списка двойным кликом. Для примера возьмём первый элемент списка «ПодпискаНаСобытие.ПриУстановкеНовогоКодаСправочника.Источник»
- После двойного клика на этом элементе, в дереве метаданных откроется объект и в нём мы найдем ссылку на справочник «ЯСпецификацииНоменклатуры».
- Два раза нажимаем левой кнопкой мыши, чтобы открыть свойство объекта, в котором содержится ссылка на справочник «ЯСпецификацииНоменклатуры».
- Как видно из вышеприведённого изображения в поле «Источник» содержится составной тип, в который входит и справочник «ЯСпецификацииНоменклатуры». Заменим ссылку со справочника «ЯСпецификацииНоменклатуры» на справочник «СпецификацииНоменклатуры» в диалоге редактирования составного типа данных. Ссылка заменяется снятием флажка напротив справочника «ЯСпецификацииНоменклатуры» и установкой флажка напротив справочника «СпецификацииНоменклатуры».
- Эти же самые действия проделываем для всех элементов вышеприведённого списка.
- Открываем каждый объект и заменяем в нём ссылки.
- После замены ссылок объект спокойно удаляется.
- Сохраняем конфигурацию, нажав, клавишу «F7».
Теперь новый справочник «СпецификацииНоменклатуры» ссылается на новую таблицу в базе 1С — _Reference6845. Если в справочнике были какие-нибудь данные, то они уже уничтожены, поэтому нужно их восстановить. Это можно сделать воспользовавшись советами статьи Как выгрузить данные в идентичную конфигурацию 1С? Если была удалена другая таблица, например _DOCUMENT, тогда нужно изменить обработку для поиска соответствия названия документов конфигурации 1С и их внутренних таблиц, а шаги проделать те же самые.