Наиболее частые ошибки «1С» и методы их исправления. Наиболее частые ошибки «1С» и методы их исправления Табличные части могут быть длинными


Последняя редакция №22 от 15.07.08 | История
URL:
Ключевые слова: ошибка,исключение,попытка, 80004005, 80040E31, 00000005, 00000041, 80070005, 80000009, 80030005, 8001011B, 80010108, 80010005, 800706BA, 800706BE, 80080005,SDBL,pos,CAST

Предлагаю всем дружно составить перечень ошибок 1С 80 и какое сообщение об этой ошибке можно получить для анализа в функции ОписаниеОшибки().

Просьба соблюдать формат и дословно приводить текст ошибки.

Ошибка блокировки при транзакциях

Microsoft OLE DB Provider for SQL Server: Transaction (Process ID 55) was deadlocked on lock resources with another process and has been chosen as the deadlock victim. Rerun the transaction.

HRESULT=80004005, SQLSTATE=40001, native=1205

Возникает при конфликте транзакций, часто при записи объектов.

Ошибка блокировки при транзакциях 2

Microsoft OLE DB Provider for SQL Server: Lock request time out period exceeded.

HRESULT=80040E31, SQLSTATE=HYT00, native=1222

Истек тайм-аут.

Более 256 таблиц в запросе

Ошибка выполнения запроса "Построенный запрос к СУБД использует слишком много таблиц. Допустимо не более 256."

Когда в запросе идет обращение более, чем к 256 таблицам.

Ошибки: 00000005, 00000041, 80070005, 80000009, 80030005, 8001011B
Возникают в тех случаях, когда пользователь, от имени которого работает клиентское приложение, не имеет прав доступа к каким-либо ресурсам. В частности, это может означать, что пользователю, от имени которого стартовало клиентское приложение 1С:Предприятия, недоступны либо средства COM+ того компьютера, на котором установлен сервер, либо зарегистрированное на нем COM+ приложение 1CV8, которое является сервером 1С:Предприятия.

Если эта ошибка возникает во внешнем соединении 1С:Предприятия, то это означает отсутствие соответствующих прав у пользователя того приложения, которое обратилось к внешнему соединению. Это может быть любое интерактивное приложение или, например, WEB-сервер. В частности, если в качестве WEB-сервера используется Microsoft Internet Information Services, то таким пользователем может быть пользователь IUSR_<Имя компьютера> или ASPNET.

Методика настройки прав доступа пользователей к COM+ серверу описана в разделах "Вопросы установки и настройки 1C:Предприятия 8.0 в варианте "клиент-сервер"" и "Особенности использования внешнего соединения 1С:Предприятия в WEB-приложениях".
(С) ИТС

Ошибка 80010108
Может возникнуть в том случае, если клиентское приложение некоторое время (несколько минут) находилась в неактивном состоянии, например из-за засыпания компьютера или долгого ожидания на точке останова в отладчике. Причиной этого является особенность механизма DCOM, обеспечивающего принудительный разрыв соединения с сервером, если клиент долго не проявлял активность.
(C) ИТС

Ошибка 80010005
Может возникнуть в клиентском приложении в процессе обращения к серверу 1С:Предприятия, если при перерисовке экрана клиентское приложение обратилось к серверу 1С:Предприятия повторно. Это может быть проявлением внутренней ошибки клиентского приложения 1С:Предприятия. Для ее оперативного исправления желательно описать обстоятельства ее возниконовения и обратиться на линию технической поддержки 1С:Предприятия 8.0.
(C) ИТС

Ошибки 800706BA, 800706BE
Сигнализируют об аварийной ситуации на сервере 1С:Предприятия, которая привела к его автоматическому перезапуску.
(С) ИТС

Ошибка 0х80080005: Server execution failed
Одной из причин возникновения этой ошибки явлются проблемы с подсистемой COM+, являющейся частью операционной системы. При возникновении такой ошибки, как правило, в системные журналы событий также записываются события с источником COM+, именем серверного приложения System Application и указанием файла Comsvcs.dll. Существуют процедуры восстановления работоспособности COM+, однако они дают желаемый результат не всегда. Описания официально рекомендованных процедур можно найти в http://support.microsoft.com/default.aspx?scid=kb;en-us;315296 (или похожей http://support.microsoft.com/default.aspx?scid=kb;en-us;318731), однако по результатам практических применений рекомендуется процедура, описанная в http://www.jsifaq.com/subN/tip6900/rh6951.htm . Эта последовательность шагов дополнена по сравнению с официальной и может быть использована в операционных системах 2000/XP/2003. Ниже приводится ее перевод на русский язык.
Для восстановления поврежденного каталога COM+:

1. Переименуйте каталог %SystemRoot%\System32\Clbcatq.dll в %SystemRoot%\System32\~Clbcatq.dll (обратите внимание на появление тильды в имени каталога).
2. Перезагрузите компьютер.
3. Удалите из системного реестра ключ COM3, расположенный в ключе HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft.
4. Запустите командную консоль CMD.EXE.
5. Наберите pushd %SystemRoot% и нажмите Enter.
6. Наберите rd /s /q Registration и нажмите Enter.
7. Наберите popd и нажмите Enter.
8. Наберите exit и нажмите Enter.
9. Удалите слово Hide из строки, начинающейся с COM=, в файле %SystemRoot%\Inf\Sysoc.inf. Для редактирования файла можно использовать Notepad.
10. Для Windows XP:
* Запустите командную консоль CMD.EXE.
* Наберите regsvr32 /s ole32.dll и нажмите Enter.
* Наберите regsvr32 /s oleaut32.dll и нажмите Enter.
* Наберите exit и нажмите Enter.
11. Запустите панель управления Установка/Удаление программ и выберите пункт Добавление\удаление компонент Windows.
12. Нажмите Next и переустановите COM+.
Замечание: Если механизм защиты системных файлов Windows File Protection блокирует одно или несколько из вышеприведенных действий, то необходимо выполнять эти действия в безопасном режиме (Safe Mode).
http://users.v8.1c.ru/Adm433.aspx

Ошибка записи/проведения

Ошибка при вызове метода контекста (Записать): Операция не выполнена!

Возникает, если в модуле записи/проведения присвоить Отказ=истина

Ошибка преобразования данных XML

возникает при рассинхронизации структуры данных (конфигурации) между узлами распределенной базы

В базе нет пользователя с административными правами
При редактировании списка пользователей роли берутся только из конфигурации БД. Обновить конфигурацию БД (F7).

Попытка передачи мутабельного значения на сервер 1С:Предприятия
Возникает только в клиент-серверной версии (SQL). Для исправления ошибки нужен программист. Если у вас типовая конфигурация, попробуйте обновить ее до последнего релиза.
Мутабельный - изменяемое. На сервер 1С можно передавать значения только примитивных типов данных.

Клиентский поток исполняется на сервере. Удалить клиента веременно невозможно
v8: Клиентский поток исполняется на сервере. Удалить клиента веременно невозмож

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

Ошибка SDBL: Поля "CAST (Q_000_T_001/Recorder AS REF(Document4055)/Fld4092" и "CAST (Q_000_T_001/Recorder AS REF(Document123)/Fld2322" не совместимы по типам.(pos=10173)

В документах "Приходный кассовый ордер" и "Расходный кассовый ордер" реквизит "Основание" имеет в свойстве "Неограниченная длина" включенный флаг, надо снимать флаг и указать длину этого реквизита

"Ошибка SQL: Поле не найдено "MaxGetCode"

Эта ошибка выдается в файловом варианте, когда клиенты разных версий одновременно работают с ИБ в файловом варианте.

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

Из-за чего возникают ошибки в базе 1с?

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

Виды ошибок в базе 1с

Ошибок в 1с может быть великое множество и происходить они могут по самым разным причинам. В данной статье мы не будем рассматривать все возможные ошибки 1с, мы постараемся выделить так называемые основные "виды" встречающихся ошибок. Мы условно называем их "виды" так как содержание ошибки которое показывает Вам программа как правило всегда различное, а суть часто бывает одинаковая. Итак выделим самые часто встречающиеся ошибки в базе 1с :

  1. Ошибка формата потока
  2. Поле объекта не обнаружено
  3. Метод объекта не обнаружен
  4. Недостаточно памяти
  5. Ошибки связанные с таблицами SQL (актуальны для серверов 1с которые работают на реляционных базах данных, например MySQL)
  6. Ошибка доступа 1с

Ошибка формата потока в 1с

ошибка формата потока 1с

Поле объекта не обнаружено

Поле объекта не обнаружено

Индекс находится за границами массива

Ошибка 1с

Ошибка формата потока в 1с

Данная ошибка очень часто проявляется при ошибочном чтении последовательности команд из байт-кода в потоке, поэтому она и называется ошибка формата потока 1с . Любая транзакция будет прервана если в следствии ее исполнения возникает данная ошибка. Подобные ошибки требуют немедленного исправления так как они могут навредить работе системы 1С Предприятие. Данные ошибки могут исправить только квалифицированные программисты 1с.

Поле объекта не обнаружено

Если система 1с выдает вам сообщение об ошибке с текстом "Поле объекта не обнаружено ", то это означает следующее, что ошибка возникает в ситуации когда программа пытается обратится к реквизиту (полю) объекта которого просто не существует. Данная ошибка носит характер "ошибки времени выполнения" если она возникает в 1С Предприятии. Ошибки этого рода также исправить могут только программисты.

Индекс находится за границами массива

Массивом в программировании называется некая область памяти в которой хранятся множество объектов одинакового типа (в 1с такими типами могут выступать например СправочникСсылка, ДокументОбъект и т.д. , а также любые примитивные типы такие как число, строка, булево и т.д.). Ошибка 1с связанная с выходом за границы массива как раз и случается тогда, когда программа обращается за границы памяти которая выделена под массив. Соответственно программа в этом случае и выдает ошибку, уведомляет пользователя (программиста) о том, что происходит обращение за пределы массива, а это в свою очередь является программной ошибкой.

Метод объекта не обнаружен

Подобная ошибка происходит тогда когда система пытается обратится к методу (функции) объекта, описание которого (которой) не существует в коде. Ошибки такого типа могут исправляются программистами.

Недостаточно памяти в 1с

Эта ошибка происходит в том случае если у системы заканчивается вся оперативная память выделенная под нужды выполнения программ в операционной системе, поэтому программа и выдает ошибку "Недостаточно памяти в 1с ". Она может произойти при различных событиях таких как обновление конфигурации, обработка большого файла, при формировании отчета, загрузки большой базы данных и т.д. Подобную ошибку пользователь может попробовать исправить сам.

Возможное исправление ошибки 1с «Недостаточно памяти»

Ошибка кроется в ограниченном выделении адресной памяти операционной системой под ПО (программное обеспечение).
Ограничения для адресной памяти по умолчанию составляют:

  • для 32 битной системы – 2гб
  • для 64 битной – 4 гб

Для того, что бы увеличить размер адресной памяти Вам необходимо сделать следующие действия:

  1. Запустите командную строку: “Пуск – Выполнить” – введите CMD и нажмите клавишу enter
  2. Теперь в командной строке введите текст без кавычек “bcdedit /set increaseuserva 3072″, где 3072 – размер желаемой адресной памяти
  3. Перезагрузите Вашу операционную систему (компьютер)
  4. Попробуйте выполнить то действие в 1С, которое не получалось ранее и приводило к ошибке.
  5. Если всё получилось и операция повторяется не так часто – рекомендуется вернуть размер адресной памяти к значению по умолчанию с помощью команды “bcdedit /deletevalue increaseuserva”

Ошибки связанные с таблицами SQL

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

Ошибка доступа в 1с

Данная ошибка происходит тогда когда пользователь пытается выполнить какое-либо действие которое запрещено правами доступа (роли). Именно поэтому система выдает ошибку доступа в 1с. Роли настраиваются в конфигураторе программистом.

Не получилось исправить ошибку в 1с?

Если у Вас не получилось исправить какую-нибудь ошибку в 1с не стоит отчаиваться, поднимите трубку и позвоните нам! Наши специалисты всегда готовы Вам помочь в решении любых вопросов связанных с 1с, в том числе и с ошибками возникающими при работе системы.

Случаются ситуации, когда при работе с 1С 8.3 или 8.2 у вас появляется ошибка «Ошибка СУБД: Внутренняя ошибка компоненты dbeng8». Конечно же, описание ее не настолько информативно, как бы нам этого хотелось.

В данном случае, скорее всего, нарушена структура внутреннего хранилища таблиц в БД используемого вами прикладного решения. Не отчаивайтесь, ошибка лечится и, если вы воспользуетесь всеми нашими советами, то с большой вероятностью сможете ее исправить.

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

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

В нашем случае она расположена в каталоге «D:\Program Files (x86)\1cv8\8.3.9.2170\bin», так как именно в нем установлена сама платформа.

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

Зачастую способ с обновлением платформы помогает не всегда, так как ошибка кроется в самой БД. В таком случае, с очень большой вероятностью, вам поможет .

Средствами конфигуратора

Решение проблемы данным способом производится из конфигуратора. Перейдите в меню «Администрирование» и выберите пункт «Тестирование и исправление…».

В появившейся форме предварительных настроек снимем флаги с пунктов «Реиндексация таблиц информационной базы» и «Пересчет итогов». Данные надстройки не сыграют роли в исправлении нашей ошибки, а лишь увеличат время обработки данных.

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

Утилита «chdbfl.exe»

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

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

Теперь откроем саму и в поле «Имя файла БД» выберем файл «1Cv8.1CD» из того каталога, адрес которого только что выяснили.

Нам нужно не только провести диагностику, но и восстановить работоспособность информационной базы. В связи с этим в данной ситуации необходимо установить флаг на пункте «Исправлять обнаруженные ошибки».

Эти и некоторые другие способы рассмотрены также в этом видео:

В этой небольшой статье я попытаюсь собрать воедино типичные ошибки, которые совершают начинающие пользователи 1С Бухгалтерии 8. Большинство этих ошибок к самой бухгалтерии отношения не имеют и, в основном, связаны с невнимательностью или плохим знанием Windows. Впрочем, бывают и другие. Ниже приводится список наиболее распространённых "граблей", на которые не устают наступать пользователи на моих курсах по 1С Бухгалтерии, несмотря на многократные повторения.

"Кривая" дата документа

Эта ошибка настолько распространена, что она обсуждается в отдельной статье . Ставьте правильную дату в документах!

Закрывание окон крестиком по поводу и без

Аналогично предыдущему пункту, это вынесено в . Не забывайте, зачем вы изначально открывали то или иное окно!

Попытка писать там, где нужно выбирать

Как всем известно, в 1С Бухгалтерии есть поля, предназначенные для выбора значения. Такие поля обозначаются кнопкой с троеточием, буквой Т или стрелкой вниз в правой части поля. Вот два примера.

сайт_

Кнопка со стрелкой вниз предназначена для выбора из выпадающего списка . Кнопка с троеточием в большинстве случаев открывает для выбора отдельное окно, где требуется выбрать объект. Кнопка с буквой Т открывает окно, в котором требуется выбрать тип объекта .

Тут была важная часть статьи, но без JavaScript её не видно!

Если поле снабжено кнопкой выбора, то следует выбирать , а не печатать. Ниже приводится окно, которое появляется при попытке писать там, где нужно выбирать .

сайт_

Из этого правила есть исключения, которые мы рассматриваем на моих курсах по 1С Бухгалтерии 8 . Но в целом могу порекомендовать следовать правилу: видите поле с элементом для выбора — выбирайте!

Попытка печатать в поле табличной части, в котором нет курсора

Если вам требуется ввести данные в ячейку строки табличной части, то проследите чтобы данная ячейка была активна (как в Excel), иначе при попытке ввода текста сработает быстрый поиск ! Пример приведён ниже.

сайт_

Это была попытка напечатать текст в выделенной ячейке без её активации. Следовало сделать вот так.

сайт_

сайт_

Табличные части могут быть длинными!

Если табличная часть документа не влезает в размер окна, то внизу такой табличной части появляется полоса прокрутки , как на рисунке ниже.

сайт_

Ошибка эта из той же серии, что и пропуск полей. Про скрытую часть таблицы очень часто забывают. Обратите внимание на стрелку на рисунке — она показывает, что требуется прокрутить окно и дозаполнить то, что скрыто (в приведённом примере скрыта чуть ли не половина(!) таблицы)

Двойной щелчок для редактирования элемента

... не работает в том случае, когда окно открыто для выбора! Если окно открыто для выбора (легко определяется по наличию кнопки Выбрать), то используйте F2 или кнопку редактирования на панели инструментов!

сайт_

Нажимание кнопки, принадлежащей другому окну.

Ниже приведён пример того, как НЕ НАДО делать .

сайт_

Зелёным подчеркнута нужная кнопка, а красным — кнопка, принадлежащая СОВСЕМ ДРУГОМУ ОКНУ!

Это исключительно проблема с интерфейсом Windows (проблемы с умением определять границы окон и других объектов) и 1С Бухгалтерия ("я ведь только учусь!!!" ) тут ни при чём! Конечно, иногда можно случайно промазать мышкой, задумавшись о чем-то. Но когда это происходит раз за разом, то не пора ли изучить интерфейс операционной системы?

Для большей убедительности привожу ту же самую картинку, на которой ГРАНИЦЫ нужного окна обведены зелёной линией. Стрелочка-указатель на правильную кнопку прилагается.

сайт_

В 1С Бухгалтерии 8.3 окна открываются в отдельных вкладках, так что эта проблема там менее распространена (в фирме 1С тоже заметили проблему?), но полностью не исчезла.

В полях с числами нули после запятой — дробная часть

Это, как правило, копейки в суммах. Могут быть и другие дробные числа. Ниже приведен пример, в котором зарплата сотрудника получилась слишком маленькой:)

сайт_

В приведённом примере это не двадцать тысяч, а двадцать рублей!

На самом деле, «внутренняя ошибка компоненты dbeng8» крайне распространенное явление в системе 1С предприятие 8. Чаще всего причиной ошибки является нарушение четкого структурирования баз данных. Впрочем, разобраться с данной проблемой довольно просто, нужно лишь поэтапно выполнять указанные ниже пункты. А вот причин, которые вызывают данную ошибку можно выделить несколько. Например - запуск 1С 8.3, либо закрытие базы, выгрузка базы, закрытие месяца, запуск меню, проверка сделанного документа и т.п.

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

Как исправить ошибку

Итак, давайте рассмотрим поэтапно исправление внутренней ошибки компонента dbeng8:

1. Тестируем и исправляем систему средствами конфигуратора

Чтобы сделать эту операцию, нужно войти в систему через режим «конфигуратор». Сделать это очень просто. Нужно выбрать строчку «Администрирование» и найти там «Тестирование и исправление».

Вам откроется новое окно, в нем устанавливаем галочки как на фото снизу и подтверждаем действие, нажимая кнопку «Выполнить».

У вас есть вопрос, нужна помощь консультанта?

По завершению операции, программа уведомит вас о проведенной работе.

2. Исправляем ошибку с помощью chdbfl.exe

Эта программа также помогает справиться с внутренней ошибкой компонента dbeng8, и по своему принципу схожа с указанным выше вариантом. Запускается она очень просто. Нужно найти в программной папке файл chdbfl.exe и запустить его.