1с ошибка при записи конфигурационного файла
Ошибки, которые возникают во время работы в 1С и методы их исправления
Эта статья ориентирована на обычных пользователей и новичков, которые только начали работать с программой. Опытные программисты знают об этих ошибках и у них есть свои методы решения проблемы. Я объединила в данной статье часто возникающие ошибки.
Причин появления ошибок может быть много. Может быть нарушена целостность базы, разработчик (программист) ошибся – такое бывает, все мы люди, сами пользователи не корректно работают с базой, сбой в операционной системе и так далее.
Если специалист, с которым Вы общаетесь, работает у Вас не постоянно, то необходимо сообщить информацию о релизах платформы и конфигурации, в которых работаете в настоящий момент. Как часто и как давно возникла проблема. Возникает такая ошибка у всех пользователей или только у одного. Исходя из всей полученной информации, специалист может уже сделать какие-то выводы и дать дальнейшие рекомендации.
При возникновении программных ошибок, первое, что нужно сделать – это почистить Кешь (и Local, и Roaming) чистим в первую очередь. И при возможности перезапускаем серверы приложения и СУБД.
Теперь перейдем к рассмотрению ошибок и вариантам их исправления.
1. Как не удивительно, но бывает так, что при обновлении платформы начали появляться ошибки , например при запуске программы, но полностью работу программы не останавливает. Тут можно попробовать переустановить платформу, бывает, что ошибки в релизе. Например: в версии платформы 8.3.13.1690 от пользователей поступали жалобы на сбои программы, переустановка при этом не помогала.
При установке нового релиза ошибка больше не появляется. В таком случае приходится ждать обновления.
Если уже такое случилось, и нового релиза нет, то выход один – восстанавливать базу из бекапа.
3. При выполнении действия ссылка на код, то есть выкидывает в конфигуратор.
В данном случае ошибка в коде и нужно с помощью отладчика искать ошибку. Это может произойти из-за ошибки программиста, который не учел какие-то моменты или ошибка в новом релизе (после обновления программы стала возникать), но в любом случае - без отладчика не обойтись.
4 . Ко мне часто обращались с таким вопросом, что один пользователь может выполнять операцию, а другой нет .
Тут все просто и я в статье уже об этом писала – ограничение прав. Значит у одного пользователя предоставлено в программе больше прав.
Бывает и так, что права то я дала одинаковые и проверила настройки прав доступа, а проблемы возникают. Тут поможет очистка кеша. О том как очистить кеш есть много информации в интернете, поэтому в этой статье я не буду об этом подробно рассказывать.
5. Частые жалобы, что все сломалось, а пользователь утверждает, что ни при чем, и ничего не делал . Или такое заявление: «Я не отменял(ла) проводки, а кто-то все сломал». Как правило, в таких случаях не добьёшься правды.
Нужно смотреть журнал регистрации. Его можно найти в Пользовательском режиме в разделе «Администрирование – Обслуживание - Журнал регистрации». В Конфигураторе – «Администрирование – Журнал регистрации». Отобраться по нужным реквизитам, и посмотреть какие были изменения, и кто их сделал. Еще специальную обработку добавляли, с помощью которой видели все изменения, которые происходили с документом или справочником (но это уже по личной инициативе, своя обработка).
6. С одного компьютера не войти в базу, с других – все работает
Если это файловая база , то очищаем кеш. Проверяем доступ к папке с базой. Возможно, что к папке не предоставлен общий доступ.
Если это клиент-серверный вариант , то тут может быть проблема связи или авторизации. В данном случае пингуем, анализируем системные логи и т. д. Еще помогает в решении проблемы технологический журнал, но это отдельная тема, так как неопытным специалистам будет сложно работать с ним. Технологический журнал требует хорошего понимания архитектуры работы системы и тексты запросов регистрируются на языке DBMS.
7. База запускается в конфигураторе, а в пользовательском режиме не работает
Если это единичная ошибка , то есть на одном компьютере, а у других такой проблемы нет, то удаляем базу из списка и подключаем заново. Можно попробовать зайти на другом компьютере под своими правами, если ошибка повториться, то проблема в настройке прав. Если с правами все в порядке, то возможна проблема с ПК, попробуйте подключить базу на другом компьютере.
В случае, если такая ошибка и у других пользователей , то нужно сделать Тестирование и исправление информационной базы. В конфигураторе «Администрирование – Тестирование и исправление». Галочки устанавливаете в зависимости от ситуации.
Можно выгрузить базу (dt), создать пустую новую базу и туда загрузить (dt) или провести тестирование средствами sql (chdbfl /).
8. База не открывается ни в конфигураторе, ни в пользовательском режиме
В данном случае решения похожи на те, что в пункте 6. То есть, очистка кеша, новое подключение базы, запуск с другого ПК – в случае ошибки на одном рабочем месте.
Если файловая база , то запустите утилиту chdbfl, для определения физической целостности базы. Утилита находится в папке: C:\Program Files (x86)\1cv8\8.x.x.xxx\bin\chdbfl.exe
Если база на sql, то тестируйте chdbfl /.
Если все выше перечисленное не помогло, попробуйте установить новую платформу.
В пунктах 7 и 8 тоже специалисты рекомендуют не гадать, а обращаться к технологическому журналу. Это уже на Ваше усмотрение.
9. 1С закрывается с записью дампа памяти
При работе в программе, чаще всего при формировании отчетов 1с закрывается с формирование дампа памяти.
В этом случае нужно отключить аппаратное ускорение видеокарты .
Отключение аппаратного ускорения в Windows XP
- Открываем свойства экрана через Панель управления или щелкнув правой кнопкой мыши по любой части рабочего стола (свободного без ярлыков), выбрав в контекстном меню «Свойства».
- Откроется окно настройки дисплея. Нужно перейти на закладку «Параметры» и нажать кнопку «Дополнительно».
- Откроется окно свойств видеокарты. Перейдите на вкладку «Диагностика».
- Передвиньте регулятор в крайнее левое положение (то есть «нет»). Далее нажать «Применить» или «ОК».
- Все аппаратное ускорение отключено, но изменения вступят в силу только после перезагрузки системы.
Отключение аппаратного ускорения в Windows 7
- Открываете Панель управления (Пуск – Панель управления).
- Открываете элемент «Экран».
- В левой части открывшегося окна щелкните по ссылке «Настройка параметров экрана».
- В открывшемся окне нажмите на ссылку «Дополнительные параметры».
- Перейдите на вкладку «Диагностика» и нажмите кнопку «Изменить параметры».
- В открывшемся окне передвиньте регулятор в крайнее левое положение («нет») и нажмите «Ок».
- Если UAC включен, придется подтвердить, что изменения санкционированы пользователем.
- Аппаратное ускорение отключено. Изменения вступят в силу после перезагрузки системы.
В Windows 7 не всегда активна кнопка «Изменить параметры». Если кнопка неактивна, то отключить аппаратное ускорение не возможно, значит видеокарта и драйвер не поддерживают такие настройки.
Вариант решения проблемы через отключение аппаратного ускорения предлагается у многих специалистов, но это одна из возможных причин.
Лучшее решение – это обновление драйверов видео, так как чаще всего ошибки такого характера происходят со старыми драйверами.
При возникновении этой ошибки тоже рекомендуется анализировать технологический журнал.
10. Элементы форм неправильно расположены, форма до конца не разворачивается и т.д .
Такое часто возникало в 1С 8.2., в обычных формах (ОФ). В управляемых приложениях такой ошибки я уже не видела, хотя утверждают, что такое бывает, тогда может быть виноват браузер.
Если у вас старая версия программы и такое возникает в ОФ, то либо попробуйте очистить кешь, либо в конфигураторе смотрите привязки элементов формы. Я чаще всего в этом случае исправляла привязки.
В некоторых случаях достаточно просто перезапустить сеанс, но это работает не всегда.
11. Недостаточно памяти.
Эта ошибка может возникать при обновлении конфигурации, формировании отчета, загрузке или обработке большого файла и т. д. В данном случае речь идет об адресной памяти.
Причина ошибки в том, что по умолчанию, адресная память ограничена. Для 32-х битной системы – это 2 гб., а для 64- разрядной системы – 4 гб..
Можно увеличить размер памяти. Для этого нужно:
- запустить командную строку – «Пуск» - «Выполнить» - введите в поле « CMD » и нажмите « Enter »;
- ввести в командной строке «bcdedit /set increaseuserva 3072″, где 3072 — размер желаемой адресной памяти;
После успешного завершения процесса в 1С рекомендуется вернуть размер адресной памяти, если такая ошибка возникает редко. Для возврата нужно ввести в командной строке bcdedit /deletevalue increaseuserva.
Если такая ошибка происходит на сервере , то перезапустите рабочие процессы. Оптимизируйте проблемные запросы, не забудьте о фрагментации адресного пространства памяти.
12. Конфликт блокировок при выполнении транзакций
Конфликт блокировок встречается по следующим причинам:
- одновременная работа пользователей с большим объемом данных;
- ошибки и недочеты конфигурации, то есть неоптимальные запросы, неправильное применение объектов конфигурации, избыточность дополнительно разработанных блокировок, запрос остатков вначале действий.
Не стоит игнорировать конфликты блокировок. Они могут привести к дальнейшим, более грубым ошибкам в программе.
Решением проблемы конфликта блокировок в 1С 8.3 может стать перевод на ручной режим управления блокировками. Но в этом случае нужно будет самостоятельно контролировать все блокировки в системе, если вы это делать не готовы, то не торопитесь с переводом.
Быстрое решение проблемы, но при этом без поиска первопричин:
- завершить заблокированный сеанс пользователя;
- если очень много сотрудников и найти быстро заблокированный сеанс не возможно или жалоб несколько в одно и то же время, то можно перезагрузить сервер.
Перечисленные способы направлены на быстрое решение проблемы, чтобы не задерживать работу пользователей. Первопричину проблемы нужно искать уже в процессе работы, в отладчике, в журналах, то есть, анализируя весь процесс.
13. Ошибка СУБД: Внутренняя ошибка компоненты dbeng8
Как правило, это ошибка появляется при нарушении структуры базы данных. Прежде чем исправлять эту ошибку, сделайте резервную копию базы.
В этом случае нужно сделать Тестирование и исправление средствами конфигуратора .
- Администрирование – Тестирование и исправление…
- Далее устанавливаем как на картинке ниже.
Можно использовать утилиту chdbfl, она является аналогом тестирования и исправления . В пункте 8 я уже писала об этой утилите, напомню, что она находится - C:\Program Files (x86)\1cv8\8.x.x.xxx\bin\chdbfl.exe. После запуска утилиты потребуется указать путь к тестируемой базе данных и установить флаг «Исправлять обнаруженные ошибки».
Если два предыдущих способа не помогли, то можно переустановить платформу или подменить файл dbeng8.dll из другого дистрибутива программы, который находится также в папке bin .
Еще как вариант можно сделать выгрузку dt и загрузку в новую базу.
14. Ошибка SDBL: Выход за пределы размерности результата»
Такая ошибка может появиться при обновлении конфигурации или при использовании обменов по средствам РИБ (распределенных баз данных).
В этом случае может помочь один из вариантов решения.
- Очистите кеш сервера или перезагрузите службу сервера 1С:Предприятие.
- В менеджере SQL сервера очистить таблицы _ConfigChngR и _ConfigChngR_ExtProps (используя команду delete).
- Может помочь обновление платформы.
15. Ошибка десериализации контактной информации не указан ожидаемый тип
Эта ошибка может появиться при переходе на новую редакцию программы. Например: переводим Бухгалтерию Предприятия с версии 2.0 на 3.0. В этом случае некорректно конвертировался справочник «Виды контактной информации» . Бывает, что ошибка описана по-другому: «Сведения о виде контактной информации были повреждены» . В обоих случаях решается ошибка одинаково.
Нужно в справочнике «Виды контактной информации» пометить на удаление поле, тогда оно перестанет отображаться.
16. Ошибка формата потока
Варианты исправлений такие же как и в предыдущих ошибках.
Удаление временных файлов, тестирование и исправление в конфигураторе или с помощью утилиты.
Если перечисленные способы не помогли, но режим 1С предприятие запускается, то можно выгрузить данные в новую базу при помощи обработки « Универсальная выгрузка/загрузка данных XML », только при этом способе можете потерять некоторые данные.
Если конфигуратор запускается, то лучше выгрузить dt , а потом загрузить в новую базу. При таком способе вы данные не потеряете.
17. Начало сеанса с информационной базой запрещено. Резервное копирование
В этом случае перед тем, как что-то делать и выбирать вариант решения проблемы, о которых я расскажу позже, нужно полностью убедиться, что никто не работает в программе (не обновляет ее) и Вы на 100 % уверены, что процесс завис.
Самый простой вариант - удалить файл блокировки 1Cv8.cdn из каталога с информационной базой . Особенно этот способ подойдет, если это файловая база .
Второй способ – это через дополнительные параметры запуска с параметром СРазрешитьРаботуПользователей /UC /. На этом варианте остановимся подробней.
Такой способ подойдет в том случае если в программе был задан код для разблокировки. Задается этот код на закладке «Администрирование – Поддержка и обслуживание - Блокировка работы пользователей» (пример на картинке ниже).
Для того, чтобы запустить программу с дополнительными параметрами нужно выбрать из списка базу, которая заблокирована, затем нажать кнопку «Изменить» откроется окно «Редактирование информационной базы», затем «Далее», на второй закладке редактирования есть нужная нам строка «Дополнительные параметры запуска». Туда нужно ввести параметр СРазрешитьРаботуПользователей /UC 6542 , где 6542 – это пароль для разблокировки (пример на картинке ниже).
Если код блокировки был задан, но его забыли , то можно посмотреть его в файле 1Cv8.cdn. Открыть этот файл нужно с помощью текстового редактора.
Если кода не знаете или не задавали , то можете попробовать использовать значение по умолчанию «/UCКодРазрешения» или «/UC КодРазрешения».
Третий вариант решения проблемы подойдет для снятия блокировки с клиент-серверной базы .
Если есть доступ к консоли сервера , то нужно открыть свойства информационной базы и убрать галку «Блокировка начала сеансов включена» (на картинке выделено красным цветом, где нужно отключить флажок).
Четвертый способ – это откорректировать содержимое файла 1Cv8.cdn . Открываете файл с помощью текстового редактора. Первый параметр, который на картинке подчеркнут красным цветом – является признаком блокировки. Если там стоит 1, значит база заблокирована. Если поменять на 0 и записать изменения, то база должна запуститься.
18. Неверный формат хранилища данных
Причина ошибки кроется в кеше, или в нарушении целостности структуры.
Первое, что надо сделать – это почистить кешь. Если это не поможет, то запускаем Тестирование и исправление или файла chdbfl.exe , в предыдущих пунктах об этих способах я уже писала.
Самый радикальный способ – это перенос данных в пустую базу. Делать это стоит в самом крайнем случае, когда уже ничего не помогает.
Наверняка, найдутся специалисты и критики, у которых есть свое мнение по решению каждой из этих ошибок, отличное от моего - ну что-же, тогда напишите свои рекомендации, я буду признательна и мне они тоже пригодятся в дальнейшем.
Рада, что эта статья пользуется спросом. Появились новые ошибки, о которых, как и обещала рассказываю во второй части.
Любите ли Вы динамическое обновление конфигураций так, как люблю его я? Обожаю что-нибудь с его помощью пропатчить на продакшене! Особенно в пятницу! Вечером! Перед майскими праздниками! Без предупреждения!
На самом деле нет! Динамическое обновление с одной стороны выглядит отличным механизмом платформы 1С, который позволяет вносить изменения в конфигурации "на лету". Главное, чтобы изменения не затрагивали структуру базы данных, в противном случае придется выполнять обновление монопольно и "выгонять" пользователей.
Согласитесь, при появлении ошибки в коде после очередных изменений просто берешь и обновляешь базу "на горячую" и никаких проблем! Главное всем, кому нужны были эти изменения, перезапустили сеанс и изменения вступят в силу!
С другой стороны может что-то пойти не так и Вы найдете небольшую, но весомую порцию багов у себя.
И никакие отговорки, что это были изменения для ТОП-менеджеров Вам не помогут!
Но как же так! Вы пользуетесь динамическим обновлением и у Вас нет никаких проблем? Коллеги рассказывают страшные истории, но Вы им не верите? "Просто они плохие 1Сники!", думаете Вы?
Как работает динамическое обновление
Наверное это странный вопрос, ведь ответ лежит на поверхности - это механизм позволяет обновить конфигурацию базы данных без остановки ее работы, внося изменения не требующие модификации на уровне базы данных. В официальной документации на ИТС есть информация в каких случаях платформа позволяет провести динамическое обновление. Вроде все просто. Но что если пойти дальше.
В любой информационной базе есть таблицы "Config" и "ConfigSave". Назначение этих таблиц также известно:
- Config - содержит основную конфигурацию информационной базы, которая соответствует актуальной структуре базы данных и используется активными сеансами.
- ConfigSave - содержит сохраненную конфигурацию. Ту самую, которую Вы редактируете в конфигураторе. Как только Вы нажимаете "Сохранить", все измененные объекты и связанная информация записывается именно сюда. После запуска обновления информационной базы все изменения из этой таблицы переносятся в таблицу Config. Если же выполнить команду "Конфигурация -> Конфигурация базы данных -> Вернуться к конфигурации БД", то вся информация об изменениях в этой таблице удалится.
Все просто, не так ли? Но пойдем еще дальше. Посмотрите на структуру таблиц для хранения данных конфигурации.
Структура таблиц идентична.
Описание полей такое:
- FileName - строка длиной 128, используется для хранения имени "файла", это некоторая часть конфигурации.
- Creation - дата создания записи.
- Modified - дата модификации записи.
- Attributes - целое число, назначение которого сейчас нет смысла рассматривать (на самом деле я точно не могу утверждать, только предполагаю зачем оно нужно. Но если Вы знаете, то напишите в комментариях).
- DataSize - размер данных в байтах, хранящийся в поле "BinaryData"
- BinaryData - непосредственно данные конфигурации.
- PartNo - номер части. Иногда размер данных объекта метаданных может быть очень большим и платформа его разбивает на части.
То есть конфигурация хранится некоторыми блоками. Вообще, структура хранения конфигурации в таблице базы соответствует тому, как устроена внутренняя структура форматом файлов CF. Подробнее об этом Вы можете узнать в отличной статье "Описание формата файлов конфигурации (CF, EPF, ERF)" от Андрея Овсянкина.
Со структурой таблиц и их назначением понятно. Пойдем дальше.
Когда Вы начинаете процесс обновления информационной базы, на первом этапе платформа 1С выполняет множество служебных действий, останавливаться на которых сейчас особо нет смысла. Самое интересное начинается после того, как Вы нажимаете заветную кнопку "Обновить динамически".
Среди множества служебных действий, платформа переносит данные об объектах из таблицы ConfigSave в Config:
В следующий раз, когда информационная база будет обновляться в обычном режиме, записи об объектам, созданных при динамическом обновлении, будут удалены и останутся только основные записи с актуальными данными конфигурации.
Это очень поверхностное описание и сам процесс имеет множество особенностей как со стороны работы БД, так и со стороны работы клиентских приложений платформы 1С. Но суть должна быть понятной.
Подробный пример динамического обновления
Для того, чтобы детальней погрузиться в происходящее при таком обновлении, рассмотрим все действия платформы 1С, до которых можно добраться законым способом. То есть мы не будем влазить в модули работы самой платформы и открывать то, за что можно получить повестку в суд. Мы лишь посмотрим что делает платформа на стороне базы данных. И этого нам будет достаточно!
В нашем примере есть некоторая конфигурация на базе БСП (хотя это и не важно), в которой добавлен очень важный общий модуль "ДляДинамическогоОбновления".
Модуль полностью клиентский, имеет в своем составе только одну функцию.
На первом шаге мы вносим изменения в модуль и нажимаем "Сохранить конфигурацию". При этом изменения в конфигурации сохранены, но не применены к информационной базе.
На этом шаге платформа 1С делает записи в таблицу "ConfigSave", некоторое промежуточное хранилище, из котого потом измененные элементы конфигурации должны будут перенесены в основную таблицу конфигурации "Config".
Вот вся история операций в таблице "ConfigSave" после сохранения конфигурации. Здесь подробная информация обо всех действия практически на физическом уровне, поэтому некоторые операции "INSERT" разделены на две (INSERT и UPDATE), а операция UPDATE может быть выделена как операции DELETE и INSERT. Но эти особенности сейчас не играют роли.
Кроме этого в таблице есть дата операции (Period) и идентификатор транзакции (__$start_lsn). По факту все эти действия выполняются в разных транзакциях, лишь некоторые из действий в таблице выполняются в единой транзакции.
Вся операция, как уже упоминалось выше, делится на два этапа:
- Записываем в таблицу информацию об изменениях конфигурации , в частности нашего общего модуля "ДляДинамическогоОбновления". Кстати, на скрине выше видно, что его идентификатор "cb327a01-e9cc-44e6-af31-5f30c88faeca", отсюда и эти названия похожие. Имена содержат суффикс "new", что говорит о промежуточной записи объектов.
- На следующем шаге промежуточные записи преобразовываем в нормальные , просто исключив "new" из имен элементов конфигурации.
Тут все достаточно просто, идем к следующему шагу. Вы нажимаете кнопку "Обновить информационную базу", но так как в базе есть сеансы, а изменения касаются только модулей, то платформа 1С предлагает выполнить динамическое обновление без завершения сеансов.
В этот момент платформа 1С сделала два действия:
- Скопировала записи из таблицы "ConfigSave" в таблицу "Config" с суффиксом "new", почти все действия выполнены в одной транзакции.
- Затем было обнаружено, что обновление невозможно продолжить из-за наличия активных сеансов. Был показан диалог для динамического обновления, а ранее добавленные записи удалены из таблицы "Config" в одной транзакции.
Изменений в таблице "ConfigSave" в этот момент не выполнялось.
И вот мы добрались до последнего шага - запуска динамического обновления. Соглашаемся с этой операцией и получаем следующее.
- В таблице "Config" сначала добавляются новые записи с суффиком "new" для последующих операций с ними. Примерно такие же действия мы видели в самом начале в таблице "Config", перед тем как было предложено выполнение динамического обновления. Но в этот раз также сделаны служебные записи "commit", "dynamicCommit" и "dbStruFinal", которые относятся непосредственно к динамическому обновлению (частично о них было упомянуто выше).
- Предварительные записи с суффиксом "new" теперь платформа преобразовывает в нормальные записи, также добавляет записи с форматом "_dynupdate_", плюс вставляет флаг динамического обновления "DynamicallyUpdated".
- Из таблицы "ConfigSave" удалены все сохраненные ранее записи. Все в одной транзакции.
- И напоследок из таблицы "Config" удаляются служебные данные "commit", "dynamicCommit" и "dbStruFinal".
Заметьте, каждый этап - почти всегда разные транзакции, это важно.
После этого конфигурация успешно обновлена динамически, база работает. Чтобы клиентам получить новые изменения достаточно перезапустить сеанс. Вроде все хорошо.
На самом деле это не все действия платформы 1С, т.к. еще обновляются данные в таблице "Params" и некоторые другие. Но мы это рассматривать сейчас не будем.
Разработчики ликуют и со словами "Я же говорил" продолжают убеждать коллег, что динамическое обновление это нормально!
Что может пойти не так
Весь процесс динамического обновления мы рассмотрели, но что же может случиться?
Представим простую ситуацию: что, если все обновление прошло успешно, кроме последнего этапа? Например, во время выполнения запросов на удаление служебных данных соединение с базой данных почему-то "отпало":
- Сбой сети.
- Регламентные работы на сервере, внезапно.
- Обслуживание базы, которое завершило блокирующий сеанс, опять же внезапно!
- Конфигуратор вылетел из-за ошибки внутренней.
- Разработчик 1С был странным и завершил сеанс конфигуратора во время обновления.
- И еще сотни причин, которые лень добавлять.
Чтобы такое проще было представить, можно добавить в базу данных триггер, который при попытке удаления служебной записи о динамическом обновлении упадет в ошибку.
Попытаемся теперь выполнить динамическое обновление и столкнемся с ошибками:
- Сначала во время обновления в конфигураторе поймаем ошибку.
- А при попытке зайти в конфигуратор повторно мы словим ошибку.
- При попытке повторить обновление мы уйдем в бесконечную ошибку вида.
Все, конфигуратор нам больше недоступен! Чистите кэш, пытайтесь выполнить обновление ИБ, удаляйте сеансовые данные! Все бесполезно! Можете еще взять бубен, но и он бесполезен!
После этого проблема будет полностью исправлена в 99% случаев.
И это все?
Такая ошибка вас не остановит? Говорите, что ну и ладно, что в конфигуратор не вошли, зато клиенты работают, а с конфигуратором бы разобрались? Ведь решения есть на просторах интернета!
Хорошо, а как вам такой же "обрыв" соединения на этапе обновления данных в таблице "Params". Сделаем другой триггер (отключите только предыдущий):
При попытке обновления записи "DynamicallyUpdated" в таблице "Params" мы получим падение. Конфигуратор закроется системной ошибкой. Не страшно, скажите Вы! Но в этот же момент все клиентские соединения также вылетят, причем с разными ошибками. Например, с такой.
А при попытке перезапустить клиентский сеанс, также будут происходить различные ошибки. Никто не сможет работать с информационной базой!
Но и тут не все потеряно!
Клиентские сеансы не могут зайти в базу, их всех выкинуло и так далее! Но мы все еще можем в большинстве (но не во всех) случаев зайти в конфигуратор! И при повторном обновлении также в большинстве (но не во всех) случаях мы восстановим работу информационной базы!
Итог, все вылетели из базы, мы словили адреналина, и восстановили работу после штатного повторного обновления. Вас и это не убедило, что динамическое обновление очень опасно?
Вы поистине яркий человек
Если Вам и этого мало, то как Вы думаете, что будет, если оба этих случая будут комбинированы? В этом случае Вы "выкинете" всех пользователей из информационной базы, а потом еще и не сможете войти в конфигуратор повторно. Пойдете после этого вручную очищать таблицу "Config" от служебны записей динамического обновления и надеяться, что это в этот раз поможет.
Вы удивительный человек!
А ведь есть еще проблемы другого рода:
- Повреждение сеансовых данных сервера. Возникают из-за какого-то особого поведения платформы 1С, меняется от релиза к релизу, сложно прогнозируемые и сложновоспроизводимые ошибки.
- Повреждение клиентского кэша, которое приводит к:
- Ошибкам запуска клиентского приложения при входе в информационную базу
- Случайным ошибкам во время работы приложения, таким как "Тип неопределен" или подобные.
Ниже есть ссылки на примеры различных проблем и их решение. Для воспроизведения таких проблем мне пришлось бы откопать код приложений платформы 1С, но это не очень правильно.
Это весело
Вы все еще считаете, что динамическое обновление это хорошо? Что нет ни единой причины, чтобы отказаться от него? Что все описанные ошибки, которые даже можно воспроизвести прямо на свежих версиях платформы (от 8.0 до 8.3.20), не являются критичными? Может вы еще и бэкапы не делаете?
Кстати, описанные выше проблемы аткуальный как для платформы 1С версии 8.0, так и для всех более новых версий, вплоть до 8.3.20.*. И это только вершина айсберга!
Надеюсь, информация из статьи поможет кому-то хотя бы задуматься над тем, что Вы делаете!
P.S. А Вы задумывались над тем, что установка расширений тоже может приводить к подобным проблемам? :)
1С постоянно улучшается разработчиками. Поэтому компаниям, работающим с этой программой, стоит постоянно обновлять уже установленные конфигурации. Так вы никогда не пропустите новые возможности ПО и исправление ошибок в нем. Однако иногда и простой апдейт иногда не проходит гладко, и после установки новой версии «вылезают» ошибки. В этой статье мы разберем самые частые проблемы, с которыми могут столкнуться пользователи.
Типовая конфигурация
Обновление стандартной программы не должно вызвать затруднений – как правило, для этого достаточно стабильного подключения к интернету. Все нужные действия программа подскажет вам сама. Однако иногда и с этим могут возникнуть проблемы.
Ошибка при записи профиля. Такой профиль уже существует
Имя предопределенного элемента не уникально
Если у вас есть резервная копия БД, вам потребуется:
- Зайти в режим конфигуратора;
- Перейти в меню «Администрирование – Загрузить информационную базу»;
- Далее найдите файл, в котором ранее была сохранена резервная копия в формате .dt;
- Система предупредит вас о том, что несохраненная ранее информация будет потеряна – согласитесь с этим и дождитесь загрузки ИД;
- После успешной выгрузки перезапустите конфигуратор.
Резервное копирование – важная операция, которая позволит вам сэкономить время при появлении ошибки обновления локальной базы. В этом случае решить проблему можно быстро и без потери необходимых данных. Резервные копии можно делать вручную или настроить их сохранение автоматически. Кроме того, специалисты рекомендуют создавать резервную БД перед началом обновления. Для этого нужно:
- Перейти в режим конфигуратора;
- Включить режим администрирования БД и выбрать пункты «Администрирование – Выгрузить информационную базу»;
- Выберите путь, в который программа сохранит БД, и ее название.
Лучше всего сохранять БД на внешний носитель – например, на жесткий диск или флэш-карту.
Автоматическая архивация осуществляется с помощью дополнительных программ. О том, какой лучше воспользоваться, можно спросить у специалистов компании Авиант.
Специалисты 1С ответят на любые вопросы
и помогут абсолютно бесплатно!Файл не содержит доступных обновлений
Можно ли ускорить обновление? Для этого потребуется актуальный релиз файла конфигурации 1Cv8.cf. Последовательность действий следующая:
- Активируйте режим «Конфигуратор»;
- Далее перейдите в меню «Конфигурация – Поддержка – Настройка поддержки – Включить возможность изменения конфигурации»;
- Появится предупреждение о невозможности выполнять обновление автоматически полностью – нажмите кнопку «Да»;
- В окне настройки правил поддержки включите дважды выберите «Объект поставщика редактируется с сохранением поддержки». На изменение режима уйдет несколько минут;
- Закрыв последнее окно, перейдите в меню «Конфигурация – Загрузить конфигурацию из файла»;
- Найдите на компьютере файл 1Cv8.cf с актуальным релизом и откройте его;
- Появится предупреждение о замене текущей версии на загружаемую, нажмите «Да». Загрузка может занять несколько минут, после чего вам потребуется обновить конфигурацию БД;
- В зависимости от объема вашей базы данных обновление может занять до нескольких часов. В процессе загрузки вы увидите окно «Реорганизация информации», в котором нужно нажать кнопку «Принять»;
- Далее нажмите кнопку F5 на клавиатуре или же найдите опцию «Начать отладку» и подтвердите легальность обновления.
После этого нужно дождаться завершение апдейта базы данных – и проблема решена. Если же ошибка возникает при обновлении доработанной конфигурации, стоит обратиться к специалисту, который сможет найти выход из положения, сохранив все наработки особенности установленной у вас программы.
Ошибка формата потока
Еще одна распространенная ошибка после обновления платформы 1С. Чаще всего является следствием непоследовательного апдейта и сравнивания своей сборки ПО с файлом поставки. Это делают для того, чтобы сэкономить время: файл поставки и имеющаяся версия сравниваются, изменения выписываются, а затем вносятся в уже имеющуюся конфигурацию.
- Завершите все процессы в программе и закройте ее;
- Вручную найдите папки с кэшем – как правило, они располагаются в директориях C:/Users/Username/AppData/Roaming/1C в папках, название которых начинается с 1Cv8. Если найти эти папки не получается, настройте видимость скрытых файлов и папок в настройках компьютера;
- В этой директории могут находиться другие папки с очень длинными именами из букв и цифр – их и нужно удалить.
Также очистить кэш можно автоматически: перейдя в режим конфигуратора и в меню «Администрирование – Тестирование и обновление» отметьте пункты «Реиндексация таблиц информационной базы» и «Проверка логистической целостности ИБ». Нажмите «Выполнить», и программа сама проверит базу, найдет ошибки, исправит их – и предоставит вам отчет.
Если эти способы не помогли, обратитесь к своему программисту или специалистам компании «Авиант».
Предопределенный элемент отсутствует в данных
Однако такая ошибка 1С базы требует обращения к программисту, который сможет проанализировать причину ее появления и либо создать необходимый элемент в ИБ, либо создать его только для тех ИБ, для которых его требует программная логика.
Ошибка при вызове метода контекста
И в этом случае лучше обратиться к профессионалам, которые проанализируют имеющуюся у вас конфигурацию и выявят ошибки, чтобы потом найти решение проблемы.
Специалисты 1С ответят на любые вопросы
и помогут выбрать программу абсолютно бесплатно!Ошибки при обновлении нетиповой конфигурации
Другое дело – обновление доработанной 1С. Ошибка в такой версии программы может привести к серьезным последствиям. Как правило доработкой программ занимается штатный программист, поэтому обычный пользователь – бухгалтер или администратор, - может не разобраться в причинах появившейся проблемы. Так что ошибки апдейта нетиповой ПО стоит доверить профессионалам.
Но можно и вовсе избежать проблем, подключив пакет ИТС 1С от «Авиант». Так ошибки обновления базы, конфликты программы с другими ПО, неактуальные формы документов и неправильно оформленная отчетность останутся в прошлом. Удобные тарифы, официальное программное обеспечение, единые цены от компании 1С и максимальная эффективность поддержки – все это входит в пакет ИТС от «Авиант».
Любая программа, установленная на компьютер, может время от времени работать неправильно. Периодические сбои, которые приводят к невозможности использования ПО, называются ошибки. Чтобы суметь диагностировать и устранять ошибки в 1С, пользователь должен хотя бы немного разбираться в особенностях работы программ. Наличие минимальных знаний позволяет решать проблемы самостоятельно.
Прежде чем рассматривать основные разновидности ошибок, стоит заметить, что они отличаются между собой по происхождению. Приложение может привести к физическому или логическому сбою. В результате 1С просто не запускается или начинает работать в режиме «Конфигуратор». Пользовательский режим бывает недоступен или, при использовании определенных команд, будет появляться сбой.
Чтобы научиться быстро исправлять ошибки в 1С необходимо изначально их проанализировать. Часто во всплывающем окне написана суть некорректного поведения, что помогает решить проблему.
Причины появления ошибки в 1С
Разберем основные моменты, связанные с частым появлением сбоев при работе с базой данных. Они возникают в разных ситуациях, и определить их истинную причину не всегда возможно.
Одна из самых частых причин нарушение работы связанна с компьютером, на который установлена база данных 1С. Рабочая область может автоматически закрываться из-за нехватки оперативной памяти на сервере. Все возникающие неисправности должны быстро устраняться. В противном случае есть вероятность потери данных.
Часто возникающие ошибки 1С
Все имеющиеся сбои выводят на экран разные уведомления. Одинакового текста не бывает. Чтобы проще ориентироваться, разделим существующие ошибки 1С на следующие пункты:
- Недостаточно памяти.
- Ошибка доступа.
- Ошибка формата потока.
- Ошибка СУБД: Файл базы данных поврежден.
- Неправильное отображение блоков формы.
- Внутренняя ошибка компоненты dbeng.
- Dump при запуске.
- Неверный формат хранилища.
- Ничего не работает.
Для того, чтобы научиться исправлять возникающие ошибки, рассмотрим каждый пункт по отдельности.
Недостаточно памяти
Подобный сбой проявляется только в том случае, если на выполнение операций с программой выделено мало оперативной памяти. Приложение не может обрабатывать большие объемы информации, поэтому выдает «Недостаточно памяти 1С». Это случается при формировании отчета, обработки «тяжелого» файла, обновлении конфигурации и т.д. Причина – мощности компьютера недостаточно.
Пользователь может самостоятельно решить проблему с памятью. По умолчанию операционная система выделят фиксированное значение гигабайт на обслуживание приложения: 32 bit ОС – 2 Гб, 64 bit – 4 Гб.
Увеличить размер выделенной памяти можно вручную. Для этого запускается адресная строка (Пуск – Выполнить, вводиться фраза cmd). После нажатия «Ентер» достаточно ввести фразу bcdedit /set increaseuserva 4096 и подтвердить действие (клавиша «Enter»). Цифра 4096 – новый выделяемый объем «оперативки». Выполняется перезагрузка системы. Проблема должна быть устранена.
Ошибка доступа
Она возникает, если учетная запись не имеет достаточно прав. Проявляется при выполнении определенного действия, которое доступно только ограниченному кругу пользователей. Для исправления ситуации достаточно изменить роль выбранного профиля в конфигураторе (вкладка «Администрирование – Пользователи»). В некоторых случаях это увеличивает безопасность базы данных, если необходимо защитить файлы от изменения сторонними людьми.
Ошибка формата потока
Когда пользователь только запускает программу, на экране может появиться окно сбоя. Оно предлагает завершить работу или перезапустить. Причиной выступает некорректное завершение работы приложения.
Устранение подобной ошибки 1С выполняется простой чисткой кэша. Для этого необходимо перейти в папку, где хранятся временные файлы. В Windows 7 и выше она находится по адресу C:\Users\Username\AppData\Local\1C или C:\Users\Username\AppData\Roaming\1C. Для Windows ХР другой путь – Local Settings\Application Data\1C\. Все файлы, начинающиеся на 1cv8, кроме «1Cv8.1CD» полностью удаляются.
Если «Ошибка формата потока» возникает в процессе работы, то нужно провести тестирование (Администрирование – Тестирование и исправление), выбрать первые 2 галочки и запустить процесс.
Ошибка СУБД: Файл базы данных поврежден
Если всплывает информационное окно с подобной надписью, неисправность базы данных решается тестированием файла и всей информационной базы. Такое мероприятие может проводиться 2 способами:
- Запуск утилиты chdbfl.exe. Эта программа предназначена для того, чтобы проверять целостность базы данных при совместном ее использовании с информационной базой. Данный метод хорош тем, что дает возможность решать сбои даже в тех ситуациях, когда конфигуратор запустить невозможно. Сначала выполняется резервное копирование информации. В папке, где установлен 1С (директория bin) находится файл chdbfl.exe. Он запускается, в окне прописывает путь к файлу базы данных и ставится галочка, чтобы провести исправление ошибок. Нажимается кнопка «Выполнить». После завершения процесса все должно заработать. Если нет – используется конфигуратор.
- Через конфигуратор. Нужное окно вызывается после нажатия «Администрирование – Тестирование и исправление». На экране появляется форма, где выставляются галочки на следующе строчки: «Реиндексация таблиц…», «Проверка логической целостности…», «Проверка ссылочной…», «Реструктуризация таблиц…», «Тестирование и исправление» и 2 раза «Создать объекты». Нажимается кнопка «Выполнить». После завершения процедуры сбой устраняется.
Неправильное отображение блоков формы
Такая неисправность возникает от разных факторов. Чтобы привести программу к нормальной работоспособности, пользователю необходимо последовательно выполнить несколько команд. После проведения каждой проверяется устранение сбоя:
Если приведенные методы не помогают, рационально будет провести обновление платформы.
Внутренняя ошибка компоненты dbeng
Dump при запуске
Возвращение 1С в рабочее состояние проводится простым обновлением MS Visual Studio (Visual C++) и дополнительными манипуляциями. Чтобы отследить конкретный файл, в котором возникает ошибка, открывается «Просмотр событий». Для этого пользователь переходит в «Панель управления – Система и безопасность – Администрирование». С левой стороны раскрывается «Журнал Windows – Приложение».
На экране появляется список ошибок и точное расположение поврежденного файла. После установки новой версии MS Visual Studio (Visual C++) с папки System32 копируется одноименный файл dll и вставляется в папку платформы 1С. Проблема решилась.
Неверный формат хранилища
Ничего не работает
Если программа перестала нормально работать без видимых причин, значит пользователю придется самостоятельно искать неисправность. Для восстановления работоспособности базы данных проводятся следующие мероприятия:
- чистится кэш;
- открывается файл chdbfl.exe из папки установки приложения и выполняется исправление;
- выполняется запуск «Конфигуратора» для тестирования и исправления сбоев;
- обновление «1С».
Если это не критичная ошибка, она должна исправляться при установке актуальной версии программного комплекса. В остальных ситуациях необходимо пользоваться помощью профессиональных мастеров, которые отлично понимают принцип подобных продуктов.
Хотите получать подобные статьи по четвергам?
Быть в курсе изменений в законодательстве?
Подпишитесь на рассылкуРассмотрим основные ошибки, которые могут возникнуть при обновлении конфигурации 1С, а также методы их решения.
Файл не содержит доступных обновлений
Ошибка возникает при несовпадении конфигураций.
Порядок исправления следующий:
-
.
- Сделать сравнение/объединение конфигурации 1С с типовым cf-файлом того же релиза. При этом выключить все чекбоксы в дереве метаданных, нажать кнопку «Выполнить».
- Затем в диалоге «Настройка правил поддержки» для всех объектов дерева метаданных выставить «Редактируется с сохранением поддержки», нажать «Ок». В результате восстановится конфигурация поставщика и конфигурация встанет на поддержку. При этом останутся все изменения и возможность редактирования.
- Обновить конфигурацию базы данных.
- Поставьте чистую конфигурацию, аналогичную вашей, а затем через конфигуратор, сохраните её в файл.
- Аналогично сохраните файл конфигурации проблемной базы и следующие шаги выполняйте в нём же.
- Откройте пункт меню «Конфигурация» > «Загрузить конфигурацию из файла». При запросе системы «Обновить конфигурацию БД» обязательно выбираем «Нет»
- Создайте новую конфигурацию поставщика через меню «Конфигурация» > «Настройка поддержки» > «Включить возможность изменения».
- Следующим шагом выбираем «Конфигурация» > «Сравнить Объединить с конфигурацией из файла» и указываете файл конфигурации, созданный на втором шаге.
- Соглашаемся с изменениями и применяем их к конфигурации информационной базы по кнопке F7 — «Обновить конфигурацию базы данных».
- Обновляете.
Имя предопределенного элемента не является уникальным
Существует несколько причин, по которым возникает ситуация «задвоения» связи элементов информационной базы и предопределенных элементов. Если ошибка произошла при обновлении конфигурации, то, с большой степенью вероятности, можно сказать о проблеме совместимости конфигурации с платформой.
Для исправления ситуации снизьте версию платформы, например, до предыдущей версии и повторно запустите обновление конфигурации.
Предопределенный элемент отсутствует в данных
Ситуация, характерна, когда предопределенный элемент отсутствует в базе данных ИБ, но в конфигурации он описан. Существует два основных варианта событий, когда такое происходит.
Иногда ошибкой может быть само обращение в предопределенному элементу, а не само наличие такого элемента. В таком случае нужно понять, почему элемент не создан. Возможно, его случайно удалили либо он создается только при выполнении определенного режима программы.
Если это все же ошибка в информационной базе, то выполните привязку элемента базы к предопределенному элементу. Технически это просто указание имени в свойстве «ИмяПредопределенныхДанных».
Ошибка формата потока
Ещё одна ошибка, возникновение которой может быть вызвано разными причинами. Например, она характерна при нарушении регламента обновления, когда администратор обновляет систему минуя промежуточные конфигурации 1С — в таких случаях «бьется» конфигурация поставщика. Профилактика данной ошибки — последовательное обновление с помощью cfu-файлов.
Если же ошибка всё же возникла, попробуйте следующий порядок действий:
Ошибка при записи профиля
Данная ошибка вызвана, как правило, дублированием информации профилей. Зайдите в справочник пользовательских профилей: «Все функции» > Справочники > «Профили групп доступа» (не путайте со справочником «Пользователи)».
Раскройте все группы профилей и посмотрите, есть ли повторяющиеся записи. Удалите все ненужные дубли, и ошибка исчезнет.
12 статей про обновление 1С
Типовую программу 1С легко обновить самостоятельно через конфигуратор или интернет. Ещё один способ — использовать cfu-файл. Если пропущено много релизов, вам сэкономят время промежуточные конфигурации.
После обновления не забывайте запустить особые процедуры.
Бывает выгоднее отдать обновление нетиповой 1С на аутсорсинг.
Что нового для вашей 1С?
Рассылка осуществляется в день выхода обновления. Никакой рекламы, только полезная информация. Посмотрите пример →
Читайте также: