gifts2017

Часто встречающиеся ошибки 1С и общие способы их решения

Опубликовал Григорий (suggestive) в раздел Управление - Пользователю системы

Статья рассчитана в первую очередь на тех, кто недостаточно много работал с 1С и не успел набить шишек при встрече с часто встречающимися ошибками. Обычно можно определить для себя несколько действий благодаря которым можно определить решится ли проблема за несколько минут или же потребует дополнительного анализа. В первое время сталкиваясь с простыми ошибками тратил уйму времени на то, чтобы с ними разобраться. Конечно, интернет сильно помогает в таких вопросах, но не всегда есть возможность им воспользоваться. Поэтому надеюсь, что эта статья поможет кому-нибудь сэкономить время.

В информационных базах на платформе 1С могут возникнуть множество различных ошибок:

нарушение логической/физической целостности базы, ошибки пользователей, «кривой» код разработчика и многое другое.

Причин может быть множество: отключили свет, и не было источника бесперебойного питания, или вечер пятницы удался, и пользователь уже и не может вспомнить в понедельник, что он натворил такого.

Во-первых, стоит задать несколько уточняющих вопросов пользователю:

1) Релизы платформы/конфигурации.

2) Полный текст сообщения об ошибке. Пользователи имеют досадное свойство не читать целиком такие сообщения, а возможно в нем содержится рекомендация к устранению неисправности.

3) Как давно возникла и при каких обстоятельствах появляется. Не воспроизводимые ошибки, которых мы ранее не встречали, мы наврядли сможем исправить.

4) Возникает ли если запустить 1с с другого компьютера/от другого пользователя? Это даст нам пищу для размышлений – сможет ли помочь очистка кэша, настройка прав, или очистка настроек пользователя.

 Теперь немного о самих ошибках и том как их решать.

Общее:
Часть ошибок возникает при использовании нелицензионного ПО (windows, 1C и т.д.).

Распространенный пример – ломаная платформа. Один из патчей взламывает конкретную версию платформы, поэтому после установки новой версии платформы и попытке зайти в базу можно увидеть окно «Не обнаружено свободной лицензии».

Если Вы встретили ошибку в первый раз - возможно, кто-то уже ее встречал -

поищите в google, возможно кто-то уже с этим сталкивался и решил проблему, и Вы не потратите лишних пару часов своего времени.

Релиз конфигураций должен быть актуальным (в первую очередь для конфигураций из которых сдается регламентированная отчетность), неспроста на линии консультаций практически всегда предлагают вначале обновиться, а потом уже смотреть дальше.

Актуальный релиз платформы - у каждой конфигурации написано, какой релиз платформы рекомендован для работы с этой конфигурацией.

Технологический журнал позволяет протоколировать все события 1С:Предприятия (или часть, используя фильтр).
Про него можно прочитать здесь и здесь.

 !!!ВАЖНО

Перед любыми действиями с базой - сделать архивную копию!

Если база не открывается в конфигураторе - скопировать папку с базой и выполнять все операции на копии!

 1) База вообще не открывается ни в пользовательском режиме, ни в конфигураторе.

  • Самое быстрое, что можно сделать - очистить временные файлы (удалить базу из списка баз и подключить заново)

    Это действие не удалит временные файлы (кэш), а создаст новую папку для временных файлов базы, удалить файлы можно:
    В Windows 7 в C:\Users\Имя_Пользователя\AppData\Roaming\1C\1Cv8x
    В Windows XP C:\Documents and Settings\Имя_Пользователя\Application Data\1C\1Cv8х
  • Также можно попытаться зайти в базу от другого пользователя.
  • Если база файловая, то стоит запустить утилиту для тестирования физической целостности базы chdbfl. Она находится в папке:
    C:\Program Files (x86)\1cv8\8.x.x.xxx\bin\chdbfl.exe
  • Если база sql-ная то тестирование средствами sql.
  • Если ни то ни другое не помогло, то можно обновить платформу (см. под какой платформой работает релиз)

  • Если не получилось ничего из перечисленного, можно воспользоваться программкой Tool_1CD. Ссылка.

2) Если база при запуске уходит в дамп.

  • Отключить аппаратное ускорение видеокарты:

В Windows XP:

  1. Откройте свойства экрана. Это можно сделать через Панель управления, или просто щелкнув правой кнопкой мыши по любому месту рабочего стола, свободному от окон и значков, и выбрав пункт контекстного меню «Свойства».
  2. В открывшемся окне настройки дисплея перейдите на закладку «Параметры» и нажмите кнопку «Дополнительно».
  3. В открывшемся окне свойств видеокарты перейдите на вкладку «Диагностика».
  4. Передвиньте движок «Ускорение» в крайнюю левую позицию («нет») и нажмите «Применить» или «Ок». Аппаратное ускорение отключено. Изменения вступят в силу после перезагрузки системы.

В Windows 7:

  1. Откройте Панель управления (Пуск — Панель управления).
  2. Найдите и откройте элемент «Экран».
  3. В левой части открывшегося окна щелкните по ссылке «Настройка параметров экрана».
  4. В открывшемся окне нажмите на ссылку «Дополнительные параметры».
  5. Перейдите на вкладку «Диагностика» и нажмите кнопку «Изменить параметры».
  6. В открывшемся окне передвиньте движок в крайнее левое положение («нет») и нажмите «Ок». Если UAC включен, придется подтвердить, что изменения санкционированы пользователем. Аппаратное ускорение отключено. Изменения вступят в силу после перезагрузки системы.

В Windows 7 в некоторых случаях кнопка «Изменить параметры» будет неактивна. В этом случае отключить аппаратное ускорение невозможно, так как видеокарта и ее драйвер не поддерживают манипуляции аппаратным ускорением.

Подробнее: http://www.kakprosto.ru/kak-2210-kak-otklyuchit-apparatnoe-uskorenie#ixzz331zNZKaX

  • Если антивирус Касперский, то можно попробовать отключить самозащиту и переименовать файлы kloehk.dll и mzvkbd3.dll в папке Касперского. (Ошибка возникала на старых версиях 2011 года, но еще иногда встречается)
  • Проверить соответствие релиза платформы/конфигурации.
  • Попробовать зайти в базу с другой платформы.

3) База открывается в конфигураторе, но не хочет заходить в пользовательский режим.

  • Очистка временных файлов
  • Попытка зайти за другого пользователя
  • chdbfl / тестирование средствами sql
  • Тестирование и исправление ИБ:
    В конфигураторе Администрирование-Тестирование и исправление – галочки в зависимости от ситуации.
  • Выгрузка в *.dt и загрузка в "чистую" базу
  • Попробовать создать др. пользователя с полными правами и зайти от него.
  • Попробовать перенести на другой ПК и открыть там, может что-то с ПК.

4) При каком-то действии выкидывает на код в конфигуратор.

  • Для проверки стоит очистить кэш.
  • Если не помогло то скорей всего ошибка в коде - особенно актуально для нетиповых и самописных конфигураций, но встречается иногда и в типовых.

Если конфигурация нетиповая, то тут либо обновление прошло некорректно или разработчик дорабатывавший конфигурацию не предусмотрел все возможности пользовательских ошибок – защита от дурака (если это возможно!).

Если типовая, то возможно ошибка в релизе.

В любом случае стоит пробежать в отладчике и посмотреть что не так.

5) Под одним пользователем дает что-то сделать, под другим нет.

  • Настройки прав пользователей.
  • Настройки пользователя.
  • Очистка кэша.

6) С одного ПК заходит, с другого нет.

  • Проверить в проводнике видит ли базу – может к папке с базой не предоставлен общий доступ.
  • Очистка кэша.
  • Зайти под другим пользователем.

7) Я ничего не делал/делала но у меня все сломалось

  • Если смогут подсказать что именно «не делали» и когда, то можно воспользоваться
  • журналом регистрации с отборами и возможно узнать, в чем проблема.
  • Журнал регистрации можно найти в конфигураторе:
  • Администрирование – журнал регистрации.

    Либо в пользовательском режиме – расположение зависит от конфигурации.

8) Недостаточно памяти.

Был у меня случай, пришел клиент, говорит, при закрытии месяца вылетает ошибка "Недостаточно памяти". Взялся я за эту проблему. Думал, что легко, сначала добавил оперативки - ошибка. Было 2 гигабайта, стало 4, а все равно 1с-ке мало. Размер файла подкачки менял - ошибка, переустановка системы (поставил Windows 7) дало только временный результат, где-то на неделю. Перепробовал все. Спустя некоторое время решение было найдено.

Решение

На клиентском компе запустить командную строку от имени администратора, прописать там следующее:

BCDEdit /set increaseuserva xxxx - вместо хххх пишите объем виртуального адресного пространства в мегабайтах, т.е. сколько нужно памяти под работу приложений. По умолчанию 2 гига. Вообще в 32-разрядных операционных системах выделяется 4 гигабайта: 2 - на приложения и 2 на нужды самой ОС.  Я выбрал 3000 (т.е. CDEdit /set increaseuserva 3000). Однако система может подглючивать. Особенно, если у вас 2 гига оперативки, как у меня. Это для ОС семейства Windows Vista, 7, Windows 2008.

Для Windows XP \ Windows 2003 пишем
/3GB /userva=xxxx (xxxx в МБ в диапазоне 2048 - 3072) в файле boot.ini, рекомендуемый максимум значений userva 2900–3030.

Ссылка на эту ошибку http://infostart.ru/public/147631/

9) Элементы форм налезают друг на друга и имеют неправильное расположение.

  • Очистка кэша.

10) Ошибка СУБД Внутренняя ошибка компоненты dbeng8

  • Ошибка связана с различием кода разных версий платформы, когда пользователи пытаются использовать файловый вариант. Для клиент-серверного варианта при запуске происходит контроль и работа с разными версиями платформы в принципе невозможна.

Решение: обновиться до актуального релиза на всех рабочих местах.

Если не помогло, тогда делаем следующее:

  • Тестирование и исправление

    chdbfl 

  • Выгрузка в *.dt и загрузка в "чистую" базу

11) Ошибка в платформе 8.3.4.428

  • В версии 8.3.4.428 платформы "1С:Предприятие" обнаружена критичная ошибка, возникающая при реструктуризации данных. Данная ошибка локализована и будет исправлена в следующей версии платформы.

12) Конфликт блокировок при выполнении транзакции:


Microsoft OLE DB Provider for SQL Server: Could not continue scan with NOLOCK due to data movement.
HRESULT=80040E14, SQLSrvr: SQLSTATE=42000, state=3, Severity=C, native=601, line=1

"Как проверить (восстановить) базу на MS SQL Server средствами сервера
Проверку логической целостности нужно выполнять штатными средствами 1С:Предприятия (Тестирование и исправление ИБ). В случае, если такую проверку не удается выполнить, следует проверить физическую целостность БД средствами MS SQL. Для проверки целостности средствами MS SQL нужно выполнить следующую команду:
Код:
DBCC CHECKDB ("",REPAIR_REBUILD)
Перед выполнением этой команды нужно базу данных перевести в режим "single user":
Код:
sp_dboption "","single user",true
В процессе работы DBCC CHECKDB могут быть обнаружены ошибки и часть может быть сразу же исправлена. Если ошибки остались, то по всей видимости их нельзя восстановить без потери некоторых данных. В этом случае нужно запустить DBCC CHECKDB с параметром REPAIR_ALLOW_DATA_LOSS (перед запуском желательно сделать копию файлов базы данных).
Код:
DBCC CHECKDB ("",REPAIR_ALLOW_DATA_LOSS)
После выполнения DBCC CHECKDB нужно не забыть вернуться в нормальный режим (выйти из режима "single user"):
Код:
sp_dboption "","single user",false" (Взято с сайта http://1c-esse.buter.ru)

 

Конечно список далеко не полный, так что буду рад, если его дополнят в комментариях.

См. также

PowerTools от 1 000
Подписаться Добавить вознаграждение

Комментарии

1. cassyan (cassyan) 04.06.14 02:25
В случае, когда база открывается только в Конфигураторе, может помочь выгрузка данных с последующей загрузкой в новую "нулевую" базу. Не панацея, конечно, но иногда выручало.
2. unior (didkovskij) 04.06.14 06:01
По пункту 10 помогло обычное ТиС.
3. Александр Лыткин (TrinitronOTV) 04.06.14 06:14
спасибо большое автору за предоставленный материал, очень для меня познавательно, положу в закладки
4. Nio Nio (Nio) 04.06.14 07:19
При любой непонятной фигне чистить кэш потом разбираться.

У меня пользователи уже научены что сначала давят Сервис\Очистить кэш и перезапустить программу а потом уже звонить и жаловаться.
5. Oleg Bogdanov (OlegBog1971) 04.06.14 08:13
Спасибо за интересную и познавательную информацию.
6. Ольга (Bagrick) 04.06.14 08:24
Хорошая статья! По первому пункту могу добавить. Если не получилось ничего из перечисленного, можно воспользоваться программкой Tool_1CD и с ее помощью удалить записи в таблице configsave. Только это мне и помогло в свое время.
7. rasswet (rasswet) 04.06.14 08:42
8. aleks (maldinitaly) 04.06.14 09:24
Автору большое, спасибо за труды. Уже пригодилось.
9. Данил Сальников (Aspire1C) 04.06.14 10:05
Статья классная, я плюсанул. Одно но "Часть ошибок возникает при использовании нелицензионного ПО (windows, 1C и т.д.)." - очень сомнительное предложение.
Sophus; Bukaska; JesteR; buganov; for-elenak; plmshka; Sergafan10; +7 1 Ответить 3
10. Сергей Вн (EmpireSer) 04.06.14 14:41
(9) Aspire1C,
Скорее это относится к карявым патчам в которых "что-то не учли"

(0) suggestive,
Статья хорошая, хотя у нас с одним клиентом, в клиент-серверном варианте, возникла ошибка, которая не была описана ни где в интернете (по крайней мере я не нашёл):
При попытки открыть форму справочника или сделать запрос хотя бы к одному его полю - рабочий сервер 1С 8.3 падает и перезапускается. Тут ни чиска кешев, ни dt, ни чекдб в скуле, ни выгрузка-загрузка через файловую базу (с проверкой chdbfl и тестированием-исправлением) не помогают :-) Хотя в файловом варианте всё работало отлично.
11. Александр Жохов (Progerok) 04.06.14 15:11
12. Алексей Жуков (alexsey777) 04.06.14 15:35
13. Антон Стеклов (asved.ru) 04.06.14 16:26
Это не статья. Это перечень условно известных проблем с не всегда корректными рекомендациями по их решению.

Далее по пунктам:
0) Кэш (и Local, и Roaming) чистим в первую очередь. И при возможности перезапускаем серверы приложения и СУБД.

1) Правильное решение - технологический журнал.
2) Приведена только одна из возможных причин, к тому же не самая частая. (проверьте в системном логе ошибок GDI). И даже в этом случае лучшее решение - обновлять драйвера видео. Наблюдается это только со старыми дровами встроенного видео Intel. А вообще правильное решение - технологический журнал.
3) Правильное решение - технологический журнал
4) Не нужно гадать - сразу идем в отладчик.
5) Верно.
6) Скорее всего, это какая-то проблема связи либо авторизации. В случае с файловой базой первичная рекомендация верная, а при клиент-серверной помогут всяческие пинги, телнеты, анализ системных логов и опять же - технологический журнал.
7) Не забыть написать служебку о саботаже рабочего процесса пользователем. В следующий раз пользователь будет помнить, что он делал. А так да, ЖР, минимальный ТЖ (excp, excpcntx) и логи.
8) Вообще-то в современных конфигурациях механизмы, требовательные к памяти, обычно выполняются на сервере. Может помочь оптимизация проблемных запросов. А в некоторых случаях поможет только сервер x64. Ну и о фрагментации адресного пространства памяти не забываем, спасет плановый перезапуск рабочих процессов.
9) Не факт. В УФ может быть виноват браузер, в ОФ - кривые привязки элементов формы.
10) Тоже не факт. Сбойная база к такой ошибке может приводить.
11) Версия платформы отозвана. Решение - только поднимать базу из бэкапа.

12) С чего вы вообще взяли, что конфликт блокировок - это ошибка? Это показатель некорректной работы СУБД или логики конфигурации, и dbcc checkdb Вас от этого не спасет.
"Конфликт блокировок" бывает двух видов:
а) таймаут - тут нужно выяснять, почему не удалось наложить блокировку за отведенное время.
б) дедлок - тут нужно анализировать порядок наложения блокировок, и далеко не всегда эту проблему удается решить "малой кровью".
Ikarus; mms76; white_sochi; meuses; ojiojiowka; gigabyte_artur; quNas; anchovy; CratosX; warrior1985; mr.Kot; Bukaska; ВРедная; Yashazz; lesna; Redokov; JesteR; suggestive; TrinitronOTV; EmpireSer; +20 Ответить 5
15. Александр Лыткин (TrinitronOTV) 05.06.14 05:45
(13) asved.ru, по пункту 10: какой вариант решения тогда может быть?
16. Антон Стеклов (asved.ru) 05.06.14 08:56
(15) TrinitronOTV, ТИИ, выгрузка/загрузка в DT, chdbfl. Про пункт 0 тоже не забываем.
17. Борис (soap) 05.06.14 09:43
Очень полезный перечень настраивает действовать в нужном направлении
18. Адамчук Татьяна (т1951) 05.06.14 11:53
Спасибо большое! Попытались протестировать копию - справочник сотрудники в УПП стал недоступен...
19. Григорий (suggestive) 05.06.14 16:55
(9) Aspire1C, Описал частый пример с ломаной платформой.
20. Григорий (suggestive) 05.06.14 17:10
(13) asved.ru, Технологический журнал - очень полезная штука и его обязательно надо настраивать, но порой возникают ситуации, когда ошибка уже есть и ее надо срочно исправить, а тж не был настроен.
8) Бывают еще ситуации, когда на сервере просто не хватает оперативной памяти. А так да, в некоторых случае без 64-битного сервера 1С никак не обойтись.
10) Спасибо, дополнил описание.
12) Действительно, проблема может и не решаться так просто, но это тема отдельной статьи.

21. Евгений Кредько (kredko) 06.06.14 05:24
(13) asved.ru, <<9) Не факт. В УФ может быть виноват браузер, в ОФ - кривые привязки элементов формы. >>
Может и ни то и ни другое. А просто надо перезапустить 1С. С чем связаны такие глюки, я не знаю. Только перезапуск сеанса помогает.
22. Антон Стеклов (asved.ru) 06.06.14 07:50
(20) suggestive,
когда ошибка уже есть и ее надо срочно исправить

это значит, что она воспроизводится, и ничто не мешает настроить нужный ТЖ и снять логи.
23. Станислав Майданюк (st4rk) 06.06.14 15:51
Спасибо, имхо, полезная статья.
Надеюсь гуру дополнят ее своим полезным опытом.
В том числе как не наступать на типичные грабли.
24. Яков Коган (Yashazz) 08.06.14 16:18
Да. Не статья ни разу, а так, сборник личного опыта и понадёрганных советов. Кое-что толково, кое-что спорно, но освещены не самые тривиальные вещи, и это радует. Я уж было думал, опять "как написать запрос и создать элемент справочника"...
25. Алексей Карвацкий (AVK_Alex) 09.06.14 09:13
Вроде все известное, но для кого-то это будет спасательный круг. Плюсую.
26. Данил Сальников (Aspire1C) 11.06.14 00:50
(19) то есть по вашему сообщение «Не обнаружено свободной лицензии" - это ошибка)))) хаа) и может метод борьбы с ней опишите?)))
27. Антон Стеклов (asved.ru) 11.06.14 11:08
(26) Aspire1C, да, часто это ошибка, возникшая вследствие незнания администратором специфики механизмов лицензирования 1С/HASP.
TaTaPuH-Magic; +1 Ответить
28. Владимир Кузнецов (mr.Kot) 11.06.14 11:16
(13) asved.ru, если бы статья была в духе этого комментария, то читалось бы интереснее
29. Марат Хафизов (Painted) 11.06.14 15:03
1 пункт. Как же можно выгрузить в *.dt, если по условию не загружается конфигуратор?
8. пункт это не решение. Увеличение до 3Гб памяти под процесс зачастую не помогает. Решение - это 64-разряда для клиента и для сервера.
Вообще в 32-разрядных операционных системах выделяется 4 гигабайта: 2 - на приложения и 2 на нужды самой ОС.
Строго говоря, 4 гигабайта это адресное пространство 32-разрядных систем, а не "выделяется". Из которых MS еще что-то резервирует под аппаратную часть, плюс еще ограничивает каждый процесс 2 Гигами.
9. Проще сделать "Восстановить положение окна Alt-Shift-R"
Многократно повторенный совет использовать chdbfl.exe довольно сомнителен. Утилита известна тем, что зачастую добивает базу окончательно.
(6)(9) - присоединяюсь. С программными лицензиями проблемы возникают гораздо чаще.
30. Антон Стеклов (asved.ru) 11.06.14 16:03
Многократно повторенный совет использовать chdbfl.exe довольно сомнителен. Утилита известна тем, что зачастую добивает базу окончательно


Если точнее, chdbfl восстанавливает то, что может, а что не может - удаляет на фиг.Соответственно, если повреждены, к примеру, такие таблицы, как Config или Params - chdbfl базу убьет. Но в этом случае целевая аудитория статьи вряд ли что-то сможет сделать самостоятельно, ибо действия требуются весьма нетривиальные.

Именно отсюда рекомендация обязательно делать бэкап файла 1CD перед применением chdbfl.
31. Иван Иванов (ivanov_ii) 12.06.14 16:44
(13) asved.ru,
с пунктом
4) Не нужно гадать - сразу идем в отладчик.
не согласен. Когда ломается кэш, бывает, что возникают ошибки, которые выглядят как ошибки кода (не объявлена переменная, не существует функция и т.п.), хотя на самом деле их нет.
32. Антон Стеклов (asved.ru) 13.06.14 12:53
(31) ivanov_ii, ага, лично наблюдал, как строковая константа внезапно принимает значение типа СправочникОбъект.

Вообще это указано пунктом 0.
33. Allexey (alex_4x) 23.06.14 10:29
Вопрос к разработчикам 1С, каким образом аппаратное ускорение на видеокарте мешает работе платформы.
34. Антон Стеклов (asved.ru) 23.06.14 10:45
(33) alex_4x, это очень сильное колдунство.
chmv; Shaka13; +2 Ответить
35. Елена Пименова (Bukaska) 23.06.14 10:50
(33) alex_4x, аппаратное ускорение встроенной видяхи.. это вам не технология параллельных вычислений отдельной видеокарты.. у встроенной там не за что хвататься))))
36. Юрий Лу (yura1960) 24.06.14 18:10
Вот так живешь, живешь и опять узнаешь кое-что новое. Автору зачет!
37. Xer shi (Xershi) 26.06.14 15:33
Спасибо за статью, теперь многим советую ознакомиться!!
38. Сергей Маслов (LexSeIch) 28.06.14 20:23
Мир этому дому!
Статья интересная и нужная. Я думаю все согласятся, что систематизация ошибок в поведении системы (и 1С Предприятие не исключение)- вещь архиважная. Тем более, что такие ошибки возникают не всегда и не у всех. И как правило, в тот момент когда они появляются, нет времени на их анализ, и если есть чей то чужой опыт и решения проблем в подобных ситуациях, то это экономит время, нервы и в конечном счете - деньги. То, что после таких публикаций, появляется много комментариев и обсуждений - еще один большой плюс.
39. Гульнара Р (Эсти) 22.08.14 05:44
40. Дмитрий Мазуров (DIMM10) 02.09.14 15:22
Неплохая статья, может пригодиться.
41. Светлана Юсубуллина (Swetlana) 18.09.14 17:28
Статья понравилась.

Автору +
42. Роберт В е р т и н с к и й (v3rter) 18.06.15 14:52
Сталкивался в процессе работы со всем, кроме 8) и 11)
Спасибо за "сборку" готового FAQ.
Для написания сообщения необходимо авторизоваться
Прикрепить файл
Дополнительные параметры ответа