Проверка данных в 1С: где она срабатывает и что делать с ошибками
Содержание
Валидация в 1С — это автоматическая проверка данных на соответствие правилам: формату файла, структуре схемы, контрольным соотношениям или целостности базы. Если проверка не пройдена, программа останавливает загрузку, выгрузку или отправку и выдаёт текст ошибки.
Слово «валидация» в самой 1С встречается редко. Чаще вы увидите «Ошибка формата потока», «Не пройден форматно-логический контроль» или «Нарушена целостность данных». Ниже разберём, какие бывают проверки, почему они падают и как читать диагностику, чтобы не гадать.
Какие проверки бывают в 1С
Под одним словом прячутся четыре разных механизма. Ошибка в каждом лечится по-своему, поэтому сначала определите, с чем вы имеете дело.
| Тип проверки | Где срабатывает | Что проверяет |
|---|---|---|
| Проверка XML-файла | Обмен между базами, выгрузка в банк, ЭДО | Соответствие файла схеме: теги, порядок, типы значений |
| Контроль отчётности | Регламентированные отчёты перед отправкой | Заполнение обязательных полей и контрольные соотношения |
| Проверка конфигурации | Конфигуратор, разработка и доработки | Синтаксис модулей, ссылки на метаданные, синтакс-контроль форм |
| Проверка информационной базы | Тестирование и исправление базы | Целостность таблиц, битые ссылки, индексы |
Если ошибка появилась при обмене или отправке отчёта, речь почти всегда о первых двух строках. Последние две — это работа администратора или программиста.
Проверка XML-файла по схеме
Обмен данными и многие электронные документы устроены одинаково. Одна система собирает XML-файл, вторая сверяет его с описанием формата — XSD-схемой. Если в файле лишний тег, пустое обязательное поле или дата в неверном виде, файл отклоняется целиком.
Проверка идёт построчно, но сообщение об ошибке чаще всего указывает только на первое нарушение. Исправили одно — вылезло второе. Это нормально: схема читается до первого сбоя.
Контроль отчётности
Регламентированный отчёт проверяется дважды. Сначала форматно-логический контроль в самой 1С: все ли обязательные показатели заполнены, сходятся ли суммы между разделами. Потом проверка на стороне получателя — инспекции, фонда, Росстата. Вторая бывает строже первой, поэтому отчёт может «пройти» у вас и вернуться с отказом.
Основные причины сбоев при обмене и выгрузке
В большинстве случаев виноваты не «глюки» 1С, а данные. Вот что встречается чаще всего.
- 🔤 Недопустимые символы. Управляющие символы, невидимые пробелы, спецсимволы из Word или мессенджера в наименовании контрагента или номенклатуры. XML такие символы не принимает.
- 📅 Неверный формат даты или числа. Пустая дата
01.01.0001там, где нужна реальная. Дробное количество в поле, где ожидается целое. - 🧩 Пустое обязательное поле. Нет ИНН, КПП, кода страны, единицы измерения, вида документа.
- 🔢 Длина значения. ИНН из 11 цифр, КПП из 8, наименование длиннее допустимого в схеме.
- 🔄 Разные версии программ. Одна база обновлена, вторая нет. Формат обмена за это время изменился, и файл не проходит по схеме новой версии.
- 🗂 Устаревшее правило обмена. Правила конвертации не обновлялись, а в документах появились новые реквизиты.
- 🗑 Ссылка на удалённый объект. Документ ссылается на элемент справочника, которого уже нет в базе-приёмнике.
Если ошибка появилась после обновления релиза, а до него всё работало, проверьте сначала версии обеих баз. Это самая частая причина и самая быстрая проверка.
Как найти причину через журнал регистрации
Сообщение на экране обычно короткое: «Ошибка при загрузке данных». Подробности лежат в журнале регистрации, и именно с него стоит начинать любую диагностику.
Где открыть журнал
В управляемом интерфейсе зайдите в раздел администрирования и найдите пункт «Журнал регистрации» (он находится в блоке обслуживания). В Конфигураторе путь другой: меню Администрирование → Журнал регистрации.
Если пункта нет в меню, нажмите поиск по командам и введите слово «журнал». Не путайте его с журналом документов — это другой список.
Как отфильтровать нужное
Журнал за месяц содержит тысячи записей. Не листайте его целиком.
- Откройте журнал сразу после неудачной попытки обмена или отправки.
- Установите отбор по времени — последние 10–15 минут.
- В поле «Важность» оставьте «Ошибка» и «Предупреждение».
- Если знаете пользователя, под которым шёл обмен, добавьте его в отбор.
- Откройте последнюю запись об ошибке двойным щелчком и прочитайте поле «Комментарий».
В комментарии 1С обычно пишет, какой именно тег, реквизит или объект вызвал отказ. Строка вида «Элемент не может быть пустым» или «значение не соответствует типу» — это почти готовый ответ.
Журнал регистрации хранит ограниченный период. Если записи старше нескольких недель сохранены в архивных файлах, откройте нужный файл отдельно. На больших базах журнал могут чистить автоматически.
Как читать типичные тексты
Короткая шпаргалка по формулировкам, которые встречаются чаще всего.
Инструменты исправления и ручная правка файлов
Начните с исправления данных в самой базе. Ручная правка файла — крайняя мера, и её результат придётся повторять при каждой новой выгрузке.
Исправление данных в источнике
Это основной путь. Нашли в журнале проблемный объект — исправьте его там, где он создан.
- Откройте элемент справочника или документ из записи журнала.
- Проверьте реквизиты: ИНН, КПП, наименование, код, дату.
- Уберите лишние пробелы в начале и конце строк, переносы строк внутри наименований, странные символы.
- Проведите документ повторно, если он проводился.
- Запустите обмен или выгрузку заново.
Если одинаковых ошибок много, например в сотнях карточек контрагентов, помогает обработка групповой замены реквизитов или отчёт по справочнику с отбором по пустым полям.
Проверка выгрузки перед отправкой
Многие обмены и модули отчётности умеют проверять файл до отправки. В форме отчёта ищите кнопку проверки или контроля. После запуска программа покажет протокол, где ошибки сгруппированы по разделам и подсвечены.
Не отправляйте отчёт, пока в протоколе остаются критичные ошибки. Предупреждения иногда допустимы, но пояснение к ним лучше прочитать.
Ручная правка XML
Иногда выгрузка нужна срочно, а источник не исправить: данные пришли из чужой системы или файл уже сформирован. Тогда допустима правка файла.
- Сделайте копию исходного файла. Правьте только копию.
- Откройте файл в редакторе, который не меняет кодировку и разметку, например в Notepad++. Блокнот и Word для этого не подходят.
- Найдите место из сообщения об ошибке. Номер строки обычно указан в журнале.
- Исправьте значение. Теги, их порядок и кодировку не трогайте.
- Загрузите файл заново.
<!-- Было: пустое обязательное поле -->
<ИНН></ИНН>
<!-- Стало -->
<ИНН>7701234567</ИНН>
Не правьте вручную файлы, которые подписаны электронной подписью. После любого изменения подпись станет недействительной, и документ придётся формировать и подписывать заново.
Проверка конфигурации и базы
Если ошибка не связана с конкретным файлом, а база ведёт себя странно, нужны другие инструменты. Оба запускаются в Конфигураторе.
- 🛠
Конфигурация→Проверка конфигурации— ищет ошибки в модулях и ссылках на метаданные. Нужна после доработок и переноса изменений. - 🧰
Администрирование→Тестирование и исправление информационной базы— проверяет целостность таблиц и ссылок, умеет исправлять часть нарушений.
Перед тестированием и исправлением базы сделайте полную копию: Администрирование → Выгрузить информационную базу, либо скопируйте файл базы при закрытых сеансах. Исправление необратимо, а в режиме «Реструктуризация» может удалить то, что считает нарушением.
Запускайте проверку при монопольном доступе. Выгнать пользователей можно через список активных пользователей. В клиент-серверном варианте работы лучше согласовать окно с администратором.
Профилактика: как настроить правила и не получать ошибки
Один раз настроенный обмен работает годами, если за ним следить. Ниже то, что реально снижает число отказов.
Правила обмена и версии
- Держите обе базы на актуальных релизах. Не разносите их по версиям больше чем на один-два обновления.
- После обновления одной из баз сразу проверьте обмен тестовой выгрузкой.
- Обновляйте правила конвертации вместе с конфигурацией. Если правила типовые, они приходят в обновлении. Если доработаны, нужен программист.
- Включите регистрацию изменений только для нужных объектов, чтобы не гонять в обмене лишнее.
Дисциплина в данных
- Заполняйте карточки контрагентов через проверку по ИНН, а не вручную из любого источника.
- Не копируйте наименования из мессенджеров и документов Word без очистки форматирования.
- Закрепите, кто и в каком порядке вносит справочные данные. Дубли и пустые поля чаще всего рождаются на входе.
- Раз в месяц просматривайте журнал регистрации с отбором по ошибкам. Повторяющиеся записи — сигнал, что где-то в данных системная дыра.
Расписание и контроль
Автоматический обмен по расписанию полезен, но без контроля ошибка может висеть неделями. Настройте уведомление администратору или просматривайте состояние обмена в начале рабочего дня. Для отчётности обычное правило: проверяйте выгрузку не в день срока, а за несколько дней до него. Тогда отказ получателя не превращается в штраф за просрочку.
Когда нужна помощь специалиста
Большинство ошибок проверки решается правкой данных. Но есть ситуации, когда лучше не экспериментировать.
- 🔴 Тестирование и исправление базы выдаёт ошибки, которые не исправляются, или программа зависает.
- 🔴 Ошибка воспроизводится после правки всех найденных объектов, а журнал не даёт конкретики.
- 🔴 Обмен идёт через доработанные правила конвертации, написанные программистом.
- 🔴 Формат обмена изменился по требованию получателя, а типового обновления нет.
- 🔴 Подозрение на повреждение файла базы после сбоя питания или переполнения диска.
В таких случаях передавайте специалисту три вещи: текст ошибки из журнала, номера релизов обеих баз и копию файла выгрузки. Это экономит время диагностики и сразу показывает, где проблема.