Прогон программы завершен с ошибкой или с предупреждением код возвр 4

Обновлено: 07.07.2024

Дата публикации 30.07.2021

Использован релиз 3.1.18

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

Установка патчей может выполняться автоматически или вручную.

Автоматическая установка патчей

Загрузка и установка исправлений (патчей) в этом случае выполняется автоматически при наличии официальной поддержки и постоянного доступа к сети Интернет. Это рекомендуемый режим работы (если у вас типовая конфигурация, т.е. в нее не вносились изменения).

При автоматической загрузке патчей пользователь, скорее всего, даже не заметит ошибку при работе с программой. Настроить автоматическую загрузку патчей можно через флажок Загружать и устанавливать исправления (патчи) автоматически (раздел Администрирование – Интернет-поддержка и сервисы – раздел Обновление версии программы) (рис. 1).


Установка патчей в ручном режиме

Патчи также можно загрузить вручную. В этом случае можно самостоятельно указать, какие именно патчи для исправления каких ошибок следует установить.

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



Для загрузки исправления (патча) в программу зайдите в раздел Администрирование – Обслуживание – раздел Обновление программы. Нажмите на ссылку "Установка обновлений и исправлений (патчей)" и укажите ранее скаченный файл (рис. 4). Кнопка "Далее". Кнопка "Продолжить".


После установки исправления необходимо перезагрузить программу (рис. 5). Для этого установите флажок "Перезапустить программу". Кнопка "Готово".


Список установленных исправлений (патчей) можно посмотреть в форме "Установленные исправления". Для этого в разделе "Обновление программы" (раздел Администрирование – Обслуживание) нажмите на ссылку "Установленные исправления (патчи)" (рис. 6).


Удаление патчей вручную

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

В этом случае следует удалить патч вручную. Для этого откройте список установленных патчей (раздел: Администрирование – Обслуживание – Обновление программы – Установленные исправления (патчи)) (рис. 6), выберите патч, который нужно удалить, нажмите кнопку "Удалить исправление", затем подтвердите удаление по кнопке "Да".

С какого то момента перестали уходить и приходить документы, все тесты проходит успешно, в файле лога
Ошибки:
Вид операции: Отправка пакета
Краткое представление ошибки: Отправка пакета 'EDI_58dc1c40-8189-11eb-82bc-a5606f221a85.zip', по учетной записи: '2AE1D9CD19F-C862-4CDC-ACA6-54FF2D17051E'
проверка токена авторизации завершена с ошибкой у абонента с Ид_ЭДО '2AE1D9CD19F-C862-4CDC-ACA6-54FF2D17051E' зафиксирована ошибка регистрации
В сертификате CE6280142496D542EF7076C18CECFF815F743EDB не задан атрибут 'O' [OID=2.5.4.10] (3.01.26.013)
Подробнее см. в журнале регистрации.
Подробное представление ошибки: <
"ApiErrorCode": 0,
"Details": "проверка токена авторизации завершена с ошибкой у абонента с Ид_ЭДО '2AE1D9CD19F-C862-4CDC-ACA6-54FF2D17051E' зафиксирована ошибка регистрации\n В сертификате CE6280142496D542EF7076C18CECFF815F743EDB не задан атрибут 'O' [OID=2.5.4.10] (3.01.26.013)",
"CommonDescription": "Неизвестная ошибка сервиса. Попробуйте позже или обратитесь в службу поддержки.",
"AdditionalData": "traceID 871d5ebe9696e0db40bd430f665c4b3d",
"StatusCode": 500
>

Атрибут "О" - это название организации-владельца ЭЦП (гугль так говорит). Случайно новый сертификат цифровой подписи не выпускался недавно?

(1) Да, выпускался, что надо сделать?
Я вроде все перерегистрировал

(5) Других реальных вариантов нет.
1С-ЭДО это же услуга и только через 1С-Коннект можно быстро до саппорта достучаться

(6) Что бы там зарегаться мне нужен код продукта , а у меня его неть.

(8) Через программу 1С Бухии все настроил и зарегался, все работало, и тут на те, ьухия куплена официально, но кто то проипал рег доки, скажу даже ИТС-ки были, компашки которая это все оформляла уже нет, по докам бухии программа приобретена, а вот рег номера найти не могу, печаль

есть вот у меня 3 книги - все руководство администратора, все с 3-мя разными рег номерами, какая от чего хер пойми

(11) нахрен коннект, у 1С-ЭДО есть телефонная линия, им номер ПП не нужен.

(9) если ИТС были, должен быть ЛК , там нет ?
если ИТС были, то можно у 1с запросить восстановление анкеты

(14) В ЛК зарегестрированных ПП нет, походу тока обновы качали

(15) если итс был, то по идее у 1с есть инфа к какому продукты, без пп итс не продают
так что можете просить

(3) именно OO ? надо O="ООО ""ывафыва""", мб это самоподписанный из опенвпн? кем выдан?

Перехват исключений в коде

Область применения: управляемое приложение, мобильное приложение, обычное приложение.

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

3. Частные случаи некорректного использования и перехвата исключений.

Область применения (уточнение): управляемое приложение, обычное приложение.

3.1. Если имеется некоторая серверная бизнес-логика, которая вызывается с клиента при интерактивной работе пользователя:

&НаСервере
Процедура ВыполнитьОперацию()
// код, приводящий к вызову исключения
.
КонецПроцедуры

то неправильно маскировать от пользователя и администратора исходную проблему:

// на клиенте
Попытка
ВыполнитьОперацию();
Исключение
ПоказатьПредупреждение(,НСтр("ru = 'Операция не может быть выполнена.'"));
КонецПопытки;

&НаСервере
Процедура ВыполнитьОперацию()
Попытка
// код, приводящий к вызову исключения
.
Исключение
// Запись события в журнал регистрации для системного администратора.
ЗаписьЖурналаРегистрации(НСтр("ru = 'Выполнение операции'"),
УровеньЖурналаРегистрации.Ошибка.
ПодробноеПредставлениеОшибки(ИнформацияОбОшибке()));
ВызватьИсключение;
КонецПопытки;
КонецПроцедуры

и тогда на клиенте:

Не следует использовать функцию ОписаниеОшибки , т.к. она неинформативна для разработчика, потому что не возвращает стек в тексте ошибки.

3.2. Не следует анализировать текст исключений с целью интерпретации причины ошибки. Текст исключения может меняться в зависимости от локализации. В условиях отсутствия штатных средств (например, типизированных исключений), следует выдавать пользователю тексты исключений «как есть». Для понятности, его можно дополнить пояснением возможных причин.
Например:

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

КодОшибки = ЗагрузитьФайлИзИнтернета(. );
Если КодОшибки = 12345 Тогда
.
ИначеЕсли .

правильно применять строковые литералы (например, "Успешно", "НетМестаНаДиске", "Отменено" и т.п.):

РезультатЗагрузки = ЗагрузитьФайлИзИнтернета(. );
Если РезультатЗагрузки = "Успешно" Тогда
.
ИначеЕсли .

Строковые литералы кодов ошибок не локализуются.

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

3.3. Если имеется некоторая клиентская бизнес-логика (код выполняется полностью на клиенте):

&НаКлиенте
Процедура СоздатьФайлНаДиске()
// код, приводящий к вызову исключения
.
КонецПроцедуры

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

&НаСервереБезКонтекста
Процедура ЗаписатьОшибкуРаботыСФайлами(. )
ЗаписьЖурналаРегистрации(НСтр("ru = 'Выполнение операции'"),
УровеньЖурналаРегистрации.Ошибка.
ПодробноеПредставлениеОшибки);
КонецПроцедуры

3.4. Недопустимо перехватывать любые исключения, бесследно для системного администратора:

Попытка
// код, приводящий к вызову исключения
.
Исключение // перехват любых исключений
КонецПопытки;

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

Попытка
// код, приводящий к вызову исключения
.
Исключение
// Пояснение причин перехвата всех исключений "незаметно" от пользователя.
// .
// И запись события в журнал регистрации для системного администратора.
ЗаписьЖурналаРегистрации(НСтр("ru = 'Выполнение операции'"),
УровеньЖурналаРегистрации.Ошибка.
ПодробноеПредставлениеОшибки(ИнформацияОбОшибке()));
КонецПопытки;

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

Процедура ПередЗаписью(Отказ)
Если Не ЗарегистрироватьИзмененияНаУзлахПлановОбмена() Тогда
ВызватьИсключение НСтр("ru = 'Не удалось зарегистрировать изменения на узлах планов обмена. Обратитесь к администратору.'");
КонецЕсли;
.
КонецПроцедуры

Подробнее см. пп. 1.1 и 1.3 стандарта Информирование пользователя.

3.6. Недопустимо делать проверки наличия у объекта реквизитов, методов, макетов и т.п., используя для этого исключения, т.к. это может привести к сложно диагностируемым ошибкам, а также затрудняет отладку в режиме «Останавливаться по ошибке».
Вместо перехвата исключений в этом случае рекомендуется:

  • использовать механизмы работы с метаданными, чтобы явным образом проверять наличие или отсутствие реквизита (макета и т.п.);
  • если различия связаны с особенностями встраивания библиотек – описывать особенности явным образом в переопределяемых модулях (см. Переопределяемые и поставляемые объекты);
  • пересмотреть логику работы методов, использующих перехват исключений. Например, можно предусмотреть параметры, которые определяются в вызывающем коде и указывают нужно или нет обращаться к какому-либо методу или свойству объекта.

Попытка
КонтекстЭДОСервер.ПолучитьМакет("КомпонентаОбмена");
ПутьВК = КонтекстЭДОСервер.ПутьКОбъекту + ".Макет.КомпонентаОбмена";
Исключение
КонецПопытки;

МакетКомпонентыОбмена = КонтекстЭДОСервер.Метаданные().Макеты.Найти("КомпонентаОбмена");
Если МакетКомпонентыОбмена <> Неопределено Тогда
ПутьКМакету = КомпонентаОбмена.ПолноеИмя()
КонецЕсли;

3.7. Порядок обработки исключений при использовании транзакций описан в стандарте Транзакции: правила использования.

3.8. Неправильно использовать исключения для приведения значения к типу. Для таких операций необходимо использовать возможности объекта ОписаниеТипов .

Попытка
КоличествоДнейРазрешения = Число(Значение);
Исключение
КоличествоДнейРазрешения = 0; // значение по умолчанию
КонецПопытки;

ОписаниеТипа = Новый ОписаниеТипов("Число");
КоличествоДнейРазрешения = ОписаниеТипа.ПривестиЗначение(Значение);

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

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

Чтобы научиться быстро исправлять ошибки в 1С необходимо изначально их проанализировать. Часто во всплывающем окне написана суть некорректного поведения, что помогает решить проблему.

Причины появления ошибки в 1С

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

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

Часто возникающие ошибки 1С

Все имеющиеся сбои выводят на экран разные уведомления. Одинакового текста не бывает. Чтобы проще ориентироваться, разделим существующие ошибки 1С на следующие пункты:

  1. Недостаточно памяти.
  2. Ошибка доступа.
  3. Ошибка формата потока.
  4. Ошибка СУБД: Файл базы данных поврежден.
  5. Неправильное отображение блоков формы.
  6. Внутренняя ошибка компоненты dbeng.
  7. Dump при запуске.
  8. Неверный формат хранилища.
  9. Ничего не работает.

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

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

Подобный сбой проявляется только в том случае, если на выполнение операций с программой выделено мало оперативной памяти. Приложение не может обрабатывать большие объемы информации, поэтому выдает «Недостаточно памяти 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С».

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

Проблема с одним приложением заставила ознакомиться с Журналом событий Windows, ниже привожу текст зафиксированных в журнале ошибок:

Имя журнала: Application
Источник: Application Error
Дата: 30.09.2018 22:58:41
Код события: 1000
Категория задачи:(100)
Уровень: Ошибка
Ключевые слова:Классический
Пользователь: Н/Д
Компьютер: DESKTOP-4U4D85M
Описание:
Имя сбойного приложения: svchost.exe_WpnUserService, версия: 10.0.17134.1, метка времени: 0xa38b9ab2
Имя сбойного модуля: NotificationController.dll, версия: 10.0.17134.165, метка времени: 0xe0385185
Код исключения: 0xc0000005
Смещение ошибки: 0x000000000007c686
Идентификатор сбойного процесса: 0x80c
Время запуска сбойного приложения: 0x01d458c1c073fa9a
Путь сбойного приложения: C:\Windows\system32\svchost.exe
Путь сбойного модуля: C:\Windows\System32\NotificationController.dll
Идентификатор отчета: 1dfc6e2a-2721-4fd2-9af0-ebebd9b9a205
Полное имя сбойного пакета:
Код приложения, связанного со сбойным пакетом:

И ошибка второго приложения, из-за которого я и ознакомился с журналом:

Имя журнала: Application
Источник: Application Error
Дата: 30.09.2018 22:46:03
Код события: 1000
Категория задачи:(100)
Уровень: Ошибка
Ключевые слова:Классический
Пользователь: Н/Д
Компьютер: DESKTOP-4U4D85M
Описание:
Имя сбойного приложения: ShippingPC-BmGame.exe, версия: 1.1.1.0, метка времени: 0x52178ad2
Имя сбойного модуля: ShippingPC-BmGame.exe, версия: 1.1.1.0, метка времени: 0x52178ad2
Код исключения: 0xc0000005
Смещение ошибки: 0x006333b6
Идентификатор сбойного процесса: 0x1b98
Время запуска сбойного приложения: 0x01d458c3e0c69871
Путь сбойного приложения: D:\Games\steamapps\common\Batman Arkham Asylum GOTY\Binaries\ShippingPC-BmGame.exe
Путь сбойного модуля: D:\Games\steamapps\common\Batman Arkham Asylum GOTY\Binaries\ShippingPC-BmGame.exe
Идентификатор отчета: f6fc4a8d-b940-486b-9744-bc16a8606d94
Полное имя сбойного пакета:
Код приложения, связанного со сбойным пакетом:

Собственно, что можно с этим сделать? Проявление первой ошибки я не увидел, а вторая ошибка выражается в вылете данного приложения.

Читайте также: