Разработка и Конфигурация · 12 мин
Ошибка «Преобразование значения к типу Дата не может быть выполнено» в 1С: причины и пошаговое исправление
Почему в 1С возникает ошибка «Преобразование значения к типу Дата не может быть выполнено» и как исправить её пошагово: проверка формата, кода, запросов и данных.
Ошибка «Преобразование значения к типу Дата не может быть выполнено» появляется, когда платформа 1С пытается превратить строку, число или другое значение в дату, но формат исходного значения не соответствует ожидаемому. Чаще всего сбой возникает при загрузке данных из файлов, обмене между базами, выполнении запросов или работе внешних обработок.
Проблема почти всегда находится в одном из трёх мест: в самих данных (пустое значение, текст вместо даты, нестандартный формат), в коде обработки или запроса, либо в региональных настройках сеанса, которые определяют, как платформа распознаёт строки с датами. Реже ошибку вызывают повреждённые записи в регистрах и документах.
Исправление начинается с локализации: нужно точно понять, какое значение и в каком месте не преобразуется. Только после этого выбирается способ — от корректировки формата строки до изменения кода или чистки данных. Ниже разобраны все основные сценарии с пошаговыми действиями.
Как понять, где именно возникает ошибка
Первый шаг — определить контекст. Если ошибка появляется при открытии документа или отчёта, проблема обычно в данных конкретной записи: например, в реквизите хранится пустая строка вместо даты. Если сбой происходит при загрузке файла (Excel, CSV, XML), источник почти наверняка в формате дат внутри файла. Если ошибка возникает в момент проведения документа или выполнении обмена — ищите проблему в коде обработчика или в настройках правил конвертации.
Обратите внимание на полный текст сообщения. Платформа часто указывает, какое именно значение не удалось преобразовать, например: «Преобразование значения к типу Дата не может быть выполнено: "31.13.2026"». Это сразу показывает, что в данных несуществующая дата. Если в сообщении указано пустое значение или слово вроде «NULL» — проблема в отсутствующих данных.
Если у вас есть доступ к конфигуратору, включите отладку и воспроизведите ошибку: точка останова в момент исключения покажет конкретную строку кода и содержимое переменной. Для файловых баз без доступа к коду используйте журнал регистрации — там фиксируется контекст ошибки с указанием пользователя, времени и объекта.
Проверьте, как записаны даты: ДД.ММ.ГГГГ, ГГГГ-ММ-ДД или текст
Проверьте параметры запроса и функции типа ДАТАВРЕМЯ()
Проверьте значения реквизитов с типом Дата в проблемной записи
Сравните поведение на копии базы до обновления
Проверка и исправление формата даты в загружаемых файлах
Самый частый сценарий — загрузка данных из Excel или CSV, где даты записаны в формате, отличном от ожидаемого обработкой. Например, в файле дата записана как «2026/03/15», «15-Mar-24» или вообще как число 45366 (внутреннее представление даты в Excel). Обработка пытается преобразовать строку функцией Дата() и получает исключение.
Откройте файл и проверьте несколько строк с датами, особенно в начале и конце документа. Убедитесь, что: в ячейках нет текста вместо дат («нет данных», «—», «уточняется»); нет пустых ячеек там, где дата обязательна; формат одинаков во всех строках. В Excel дополнительно проверьте, не воспринимается ли дата как текст — текстовые значения обычно выровнены по левому краю и не меняют вид при смене формата ячейки.
Если файл формируется вручную или выгружается из другой системы, приведите даты к одному из форматов, которые платформа распознаёт стабильно: «ГГГГММДД» (например, 20260315) или «ДД.ММ.ГГГГ». Первый вариант надёжнее, так как не зависит от региональных настроек сеанса. После исправления файла повторите загрузку на тестовой копии базы.
- 1Сохраните копию исходного файла и откройте его в редакторе
- 2Найдите колонки с датами и проверьте формат в 10–20 строках
- 3Замените текстовые и пустые значения на корректные даты или удалите строки
- 4Приведите все даты к формату ГГГГММДД или ДД.ММ.ГГГГ
- 5Проведите тестовую загрузку на копии базы и проверьте результат
- 6Только после успешного теста загрузите данные в рабочую базу
Исправление ошибки в коде и запросах
В коде на встроенном языке ошибка возникает при явном вызове конструктора Дата("строка") с некорректным аргументом, при неявном присвоении строкового значения реквизиту типа Дата, а также при передаче параметра неверного типа в запрос. Типичный пример: значение приходит из формы, файла или веб-сервиса как строка, и код без проверки пытается его преобразовать.
Правильный подход — проверять значение до преобразования. Для строк используйте функцию СтрДлина() и разбор по разделителям, а затем конструируйте дату из числовых компонентов: Дата(Год, Месяц, День). Этот способ не зависит от региональных настроек и не вызывает исключений, если заранее проверить диапазоны (месяц от 1 до 12, день от 1 до 31 с учётом месяца).
В запросах ошибка возникает при использовании функции ДАТАВРЕМЯ() с параметрами-строками или при сравнении поля типа Дата со строкой. Параметры запроса передавайте строго с типом Дата через Запрос.УстановитьПараметр(), предварительно убедившись, что переменная имеет нужный тип — проверить можно функцией ТипЗнч().
// Безопасное преобразование строки "15.03.2026" в дату
Части = СтрРазделить(СтрокаДаты, ".");
Если Части.Количество() = 3 Тогда
Попытка
Результат = Дата(Число(Части[2]), Число(Части[1]), Число(Части[0]));
Исключение
Результат = Дата(1,1,1); // пустая дата как признак ошибки
КонецПопытки;
Иначе
Результат = Дата(1,1,1);
КонецЕсли;Проблемы с региональными настройками и форматом сеанса
Платформа 1С при преобразовании строки в дату функцией Дата() с одним строковым аргументом ориентируется на ожидаемый формат, который зависит от настроек информационной базы и сеанса. Если база настроена на формат «ДД.ММ.ГГГГ», а строка приходит как «03/15/2026» (американский формат), преобразование может либо завершиться ошибкой, либо — что опаснее — молча дать неверную дату.
Проверьте региональные настройки информационной базы: в конфигураторе откройте «Администрирование — Региональные установки информационной базы» и посмотрите установленный язык и формат даты. Для баз, куда загружаются данные из зарубежных систем, несоответствие форматов — типовой источник ошибок.
Надёжное решение — не полагаться на автоматическое распознавание формата. В коде разбирайте строку вручную и создавайте дату из числовых компонентов, а при обмене между системами договаривайтесь о едином нейтральном формате, например ISO 8601 (ГГГГ-ММ-ДД), и преобразуйте его явно.
Ошибка в данных: повреждённые и пустые значения
Если ошибка появляется при открытии конкретного документа, элемента справочника или построении отчёта по определённому периоду, вероятно, в базе есть запись с некорректным значением в поле типа Дата. Такое случается после нештатных обменов, прямой записи в таблицы внешними средствами или сбоев во время загрузки.
Найдите проблемную запись: постройте отчёт или консольный запрос по объекту с отбором по реквизиту-дате, проверив значения на пустоту. В типовых конфигурациях полезно запустить обработку «Групповое изменение реквизитов» в режиме просмотра, чтобы увидеть фактические значения. Для файловых баз при подозрении на повреждение выполните «Тестирование и исправление» информационной базы — предварительно сделав резервную копию.
Исправление сводится к записи корректного значения в проблемное поле: вручную через форму объекта, групповой обработкой или кодом. Если повреждённых записей много и источник — внешняя система, сначала устраните причину в обмене, иначе ошибка будет воспроизводиться после каждой загрузки.
Типовые сценарии в популярных механизмах
Загрузка из Excel через типовые обработки
В типовых конфигурациях (например, «Управление торговлей», «Бухгалтерия предприятия») загрузка табличных документов сопоставляет колонки файла с реквизитами. Если колонка с датой сопоставлена неверно или в ней смешаны форматы, возникает ошибка преобразования. Решение: в настройках сопоставления укажите для колонки правильный формат даты, а в файле уберите строки-заголовки и итоговые строки, где вместо даты стоит текст.
Обмен между конфигурациями и Конвертация данных
В правилах конвертации даты передаются как строки в формате XML (ГГГГ-ММ-ДДTчч:мм:сс). Если правило изменено вручную или выгрузка сформирована сторонним инструментом, формат может нарушиться. Проверьте файл обмена в текстовом редакторе: найдите значения дат и сравните их с ожидаемым шаблоном. Ошибка в одном значении останавливает загрузку всего пакета.
Веб-сервисы и HTTP-интеграции
При получении данных из внешних API даты часто приходят в виде Unix-времени (число секунд) или строк в произвольном формате. Платформа не преобразует их автоматически. Для Unix-времени используйте вычисление: Дата(1970,1,1) + ЧислоСекунд с учётом часового пояса. Для строк — явный разбор формата перед преобразованием.
Проверка результата после исправления
После любого исправления повторите действие, которое вызывало ошибку, на копии базы или на ограниченном наборе данных. Убедитесь, что обработка завершается без исключений и что даты в результате соответствуют исходным: выборочно сравните несколько значений из файла-источника с записанными в базу.
Дополнительно проверьте граничные случаи: первую и последнюю строки файла, записи с минимальной и максимальной датой, переход через високосный год (29 февраля). Если ошибка была в коде, прогоните обработку с заведомо некорректными данными — она должна выдать понятное сообщение, а не падать с исключением платформы.
Как проверить результат
Обработка завершается без ошибок, количество загруженных строк совпадает с файлом
Ошибка повторяется или часть строк пропущена без сообщений
Даты совпадают с источником, нет значений 01.01.0001 там, где дата обязательна
Появились пустые даты или смещение дня/месяца местами
Нет новых ошибок преобразования после исправления
Ошибки фиксируются у других пользователей или в других операциях
Частые вопросы
Почему одна и та же обработка работает у одного пользователя и выдаёт ошибку у другого?
Чаще всего причина в разных региональных настройках сеанса или в правах доступа. Если обработка преобразует строки в даты с учётом формата сеанса, у пользователей с разными настройками одна строка распознаётся по-разному. Проверьте региональные установки базы и используемый код — надёжнее разбирать дату из числовых компонентов.
Можно ли исправить ошибку без доступа к конфигуратору?
Да, если источник — данные: исправьте формат дат в загружаемом файле, заполните пустые значения, скорректируйте настройки сопоставления колонок в типовой обработке загрузки. Если же ошибка в коде конфигурации или правилах обмена, без доработки кода обойтись не получится.
Что означает дата 01.01.0001 в отчётах и документах?
Это пустое значение типа Дата. Оно появляется, когда реквизит не заполнен или когда код при неудачном преобразовании присвоил пустую дату. Такие записи стоит найти и заполнить корректными значениями, иначе отчёты с отбором по периоду будут работать непредсказуемо.
Ошибка возникает в запросе с функцией ДАТАВРЕМЯ — что проверить?
Функция ДАТАВРЕМЯ принимает числовые параметры (год, месяц, день и опционально время). Если вместо чисел передаются строки или параметр не установлен, возникает ошибка преобразования. Проверьте, что все параметры запроса установлены через УстановитьПараметр() и имеют числовой тип или тип Дата.
После обновления конфигурации начала появляться ошибка — в чём причина?
Вероятно, обновление изменило состав или типы реквизитов, а старые данные или внешние обработки не соответствуют новым требованиям. Сравните поведение на копии базы до обновления, проверьте внешние обработки и расширения на совместимость с новой версией, изучите описание изменений в поставке обновления.
Что важно запомнить
Ошибка преобразования к типу Дата всегда означает несоответствие значения ожидаемому формату. Сначала локализуйте источник (файл, код, запрос, данные), затем приведите значения к корректному виду или добавьте проверку перед преобразованием. Любые массовые исправления данных выполняйте только после создания резервной копии и теста на копии базы.