Ошибка с кодом 1 при работе 1С: где возникает и что проверить

· 10 мин

Содержание

Код ошибки 1 в 1С — это не конкретная поломка, а общий сигнал «процесс завершился неуспешно». Чтобы исправить системный сбой, сначала найдите, кто вернул этот код: служба агента сервера (Ошибка 1: Неверная функция), пакетный запуск 1cv8.exe из скрипта или задание в планировщике Windows (Последний результат: 0x1). Настоящая причина записана в журнале — в окне ошибки её почти никогда нет.

Тема общая для платформы 8.3 и не зависит от конфигурации: одинаково ведут себя Бухгалтерия, ЗУП, УТ и любые другие решения. Порядок ниже — от безопасных проверок к тем, что требуют остановки работы пользователей.

Откуда берётся код 1 и почему он такой размытый

Любая программа в Windows при завершении отдаёт системе число — код возврата. Ноль означает успех, всё остальное — неудачу. Единица — самый общий вариант: «что-то пошло не так», без уточнения.

В связке с 1С код 1 появляется в трёх местах:

  • 🖥️ Служба «Агент сервера 1С:Предприятия 8.3» не стартует. В оснастке «Службы» выходит окно Windows не удается запустить службу ... Ошибка 1: Неверная функция. Для Windows это системная ошибка ERROR_INVALID_FUNCTION, а по факту процесс ragent.exe упал при запуске.
  • ⚙️ Пакетный режим 1cv8.exe DESIGNER — выгрузка .dt, обновление конфигурации , загрузка .cf. Скрипт получает код 1, когда операция не выполнилась.
  • 🕒 Планировщик заданий Windows запускает bat-файл с резервным копированием или обменом. В свойствах задачи видно (0x1). Это код, который вернул сам скрипт или последняя команда в нём.

Реже код 1 встречается в тексте исключения внутри 1С, когда платформа пересказывает ответ операционной системы или СУБД. Логика та же: смотреть, кто первоисточник.

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

Какой у вас случай: быстрая сортировка

Диагностика: выберите симптом

Диагностика ошибки с кодом 1 по журналам

Журналов три, и каждый закрывает свою часть картины.

Журнал регистрации 1С

Если база вообще открывается, начните с него. В Бухгалтерии 3.0, ЗУП 3.1 и УТ 11 путь одинаковый: Администрирование → Обслуживание → Журнал регистрации.

  1. Установите отбор по периоду: 5 минут до и после ошибки.
  2. Включите отбор по уровню «Ошибка».
  3. Откройте запись двойным щелчком. В поле комментария обычно лежит полный текст исключения со стеком вызовов.

В Конфигураторе тот же журнал открывается через Администрирование → Журнал регистрации.

Журнал событий Windows

Для службы агента сервера и скриптов он важнее, чем журнал 1С. Запустите eventvwr.msc и откройте Журналы Windows → Приложение, затем Журналы Windows → Система.

  • В «Системе» ищите записи диспетчера управления службами о том, что служба агента 1С завершилась с ошибкой.
  • В «Приложении» ищите записи с источником, в имени которого есть 1C, и сбои ragent.exe, rmngr.exe, rphost.exe или 1cv8.exe.

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

Технологический журнал

Когда первые два журнала молчат, включите технологический журнал платформы. Он настраивается файлом logcfg.xml в каталоге conf установленной платформы, например C:\Program Files\1cv8\conf\. Минимальная настройка, которая ловит только исключения:

<?xml version="1.0" encoding="UTF-8"?>
<config xmlns="http://v8.1c.ru/v8/tech-log">
  <log location="C:\1c_techlog" history="24">
    <event>
      <eq property="name" value="EXCP"/>
    </event>
    <property name="all"/>
  </log>
</config>

Платформа подхватывает файл без перезапуска, примерно через минуту. Повторите ошибку и откройте свежие файлы в C:\1c_techlog. Параметр history="24" хранит логи 24 часа.

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

Очистка кэша и временных файлов платформы

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

Самый простой способ — запуск с параметром /ClearCache. Добавьте его в поле «Дополнительные параметры запуска» в настройках базы в окне запуска или запустите из командной строки:

"C:\Program Files\1cv8\common\1cestart.exe" ENTERPRISE /ClearCache

Если не помогло, удалите кэш вручную:

  1. Закройте все окна 1С у этого пользователя. Проверьте в диспетчере задач, что не осталось процессов 1cv8.exe и 1cv8c.exe.
  2. Откройте %APPDATA%\1C\1cv8 и %LOCALAPPDATA%\1C\1cv8 (наберите путь в адресной строке Проводника).
  3. Удалите папки с длинными именами вида a1b2c3d4-... — это кэши отдельных баз.
  4. Файлы 1cestart.cfg и ibases.v8i в %APPDATA%\1C\1CEStart не трогайте: там список баз пользователя.
  5. Заодно очистите %TEMP% от старых файлов — платформа кладёт туда временные данные, и переполненный каталог тоже даёт сбои.

На сервере 1С есть свой кэш — сеансовые данные в каталоге кластера srvinfo\reg_1541\snccntx*. Его чистят только при остановленной службе агента.

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

Права доступа, учётная запись службы и совместимость

Когда служба агента выдаёт Ошибка 1: Неверная функция, в первую очередь проверьте три вещи.

Путь запуска службы

Откройте свойства службы в services.msc и посмотрите поле «Исполняемый файл». Строка должна выглядеть примерно так:

"C:\Program Files\1cv8\8.3.25.1445\bin\ragent.exe" -srvc -agent -regport 1541 -port 1540 -range 1560:1591 -d "C:\Program Files\1cv8\srvinfo" -debug

Типичная поломка — после удаления старой версии платформы служба продолжает ссылаться на папку, которой больше нет. Тогда ragent.exe просто не находится. Проще всего заново зарегистрировать службу установщиком нужной версии с галочкой «Установить 1С:Предприятие 8 как сервис Windows ». Править путь в реестре вручную не стоит: ошибка в строке даст тот же результат.

Права учётной записи

Служба обычно работает от пользователя USR1CV8 или от доменной учётной записи. Ей нужно:

  • 🔑 полный доступ к каталогу srvinfo (путь из параметра -d) и всем вложенным папкам;
  • 🔑 право «Вход в качестве службы» в локальной политике безопасности (secpol.msc → Локальные политики → Назначение прав пользователя);
  • 🔑 доступ на чтение к каталогу платформы bin;
  • 🔑 для файловых баз и обменов через сетевые папки — доступ к этим папкам.

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

Порты и совместимость

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

netstat -ano | findstr ":1540 :1541"

Если порт занят процессом не от 1С, по PID из последней колонки найдите его в диспетчере задач. Частая история — на сервере уже стоит вторая служба агента другой версии на тех же портах.

Для клиентского 1cv8.exe откройте свойства ярлыка, вкладку «Совместимость». Режим совместимости со старыми версиями Windows там должен быть выключен. Галочка «Запускать от имени администратора» годится только для проверки: если с ней ошибка пропала, значит, не хватает прав на кэш или каталог базы, и права нужно выдать, а не оставлять запуск с повышением.

Код 1 в пакетном запуске и планировщике задач

Здесь код 1 означает только одно: команда не выполнилась. Чтобы увидеть причину, заставьте платформу писать лог. Пример выгрузки базы в .dt:

@echo off
set V8="C:\Program Files\1cv8\8.3.25.1445\bin\1cv8.exe"
%V8% DESIGNER /S "srv1c\buh" /N "Администратор" /P "пароль" ^
  /DisableStartupDialogs /DisableStartupMessages ^
  /DumpIB "D:\Backup\buh.dt" /Out "D:\Backup\dump.log"
echo Код возврата: %ERRORLEVEL%

Для файловой базы вместо /S "srv1c\buh" укажите /F "D:\Bases\Buh". После запуска откройте dump.log — там будет текст вроде «Ошибка соединения с информационной базой» или «Информационная база используется другими пользователями».

Что чаще всего ломает задание в планировщике:

ПричинаПризнакЧто сделать
Путь с пробелами без кавычекВручную работает, из планировщика — 0x1Взять пути в кавычки, как в примере
Не задана рабочая папкаЛог не создаётся там, где ждалиЗаполнить поле «Рабочая папка» в действии задачи
Сетевой диск по буквеZ:\ не найденУказать UNC-путь \\server\share\
Учётная запись задачи без правЗадача падает при выходе пользователя из системыВыдать права на базу и папку бэкапов, включить «Выполнять для всех пользователей»
В базе есть активные сеансыВ логе — база занятаЗапускать ночью, завершать сеансы заранее, использовать код разрешения блокировки /UC

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

Проверка целостности базы и конфигурации

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

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

  1. Проверка конфигурации. В Конфигураторе: Конфигурация → Проверка конфигурации. Она ищет ошибки в модулях и метаданных и не меняет данные — запускать можно в любой момент.
  2. Тестирование и исправление. В Конфигураторе: Администрирование → Тестирование и исправление. Нужен монопольный доступ: все пользователи должны выйти из базы. Сначала запустите только с проверкой логической целостности, без исправления, и прочитайте отчёт.
  3. Утилита chdbfl.exe — только для файловых баз. Лежит в каталоге bin платформы. Проверяет физическую целостность файла 1Cv8.1CD, когда база не открывается даже в Конфигураторе. Перед запуском закройте все сеансы.
  4. Для клиент-серверной базы физическую целостность проверяют средствами СУБД: в MS SQL — DBCC CHECKDB, в PostgreSQL — на уровне резервной копии и журналов сервера.
-- MS SQL Server: проверка базы без исправления
DBCC CHECKDB ('buh') WITH NO_INFOMSGS;

Если Тестирование и исправление нашло ошибки ссылочной целостности, решите, что с ними делать: создавать объекты-заглушки или очищать битые ссылки. Для учётной базы безопаснее первый вариант — заглушки потом видно и можно разобрать вручную.

Особые случаи и версия платформы

Часть сбоев с кодом 1 уходит только после смены или переустановки платформы.

  • 🔢 Разные версии клиента и сервера. В клиент-серверном варианте версия клиента должна совпадать с версией сервера 1С до последней цифры, например обе 8.3.25.1445. Иначе подключение не устанавливается.
  • 💽 Нет места на диске. Сервер 1С, СУБД и каталог %TEMP% при нехватке места падают с невнятными кодами. Держите свободными хотя бы 10–15% диска с базами и srvinfo.
  • 🛡️ Антивирус. Блокировка rphost.exe или файлов базы выглядит как случайный сбой. Добавьте в исключения каталоги платформы, srvinfo и баз — по согласованию с тем, кто отвечает за безопасность.
  • 🧩 Повреждённая установка платформы. Если 1cv8.exe падает сразу при старте на одном компьютере, переустановите ту же версию через «Программы и компоненты» → «Изменить» → «Восстановить» или удалите и поставьте заново.
  • ⬆️ Конфигурация требует более новую платформу. После обновления конфигурации она может требовать платформу с номером не ниже указанного в описании релиза. Поставьте нужную версию на клиенты и сервер одновременно.
Перед переустановкой платформы на сервере
Выполнено: 0 / 5

Частые вопросы

Код 1 и ошибка «Неверная функция» — это одно и то же?
Да. «Неверная функция» — стандартный текст Windows для системной ошибки с номером 1. Сама 1С такого текста не пишет: его подставляет оснастка служб, когда процесс агента завершился с этим кодом.
Можно ли просто перезагрузить сервер?
Иногда это снимает зависший порт или блокировку файла, но причину не устраняет. Перед перезагрузкой загляните в журнал событий Windows, иначе запись о причине затеряется среди новых. И предупредите пользователей: все сеансы оборвутся.
Почему задача в планировщике работает при ручном запуске, но падает ночью?
Ночью задача идёт без открытого сеанса пользователя. Сетевые диски по букве не подключены, а учётной записи задачи может не хватать прав. Используйте UNC-пути и проверьте права этой учётной записи.
Помогает ли переустановка 1С при коде 1 у одного пользователя?
Редко. Сначала очистите кэш и проверьте права на профиль пользователя. Переустановка нужна, когда ошибка возникает у любого пользователя на этом компьютере.
Как понять, что ошибка в базе, а не в компьютере?
Откройте ту же базу с другого компьютера или под другим пользователем. Ошибка повторяется везде — проблема в базе или на сервере. Только у одного — в кэше, правах или установке платформы на этом рабочем месте.