Перейти к содержимому

Преобразование к типу число не может быть выполнено в 1с как исправить

  • автор:

Преобразование к типу дата

Очень часто начинающие программисты 1С 8.3 встречаются с этой проблемой. Рассмотрим причины возникновения ошибки Преобразование значения к типу Число не может быть выполнено и методы её решения.

Причина ошибки Преобразование значения к типу Число не может быть выполнено

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

Система, естественно, верно отработает это выражение и вернет 4.

Существуют ситуации, в которых в таких простых случаях в переменных оказывается не число, а, например, строка, NULL неопределено, дата и др.

Вот такой пример обязательно выдаст ошибку Преобразование значения к типу Число не может быть выполнено:

Потому как платформа не может сложить значения типа число и значения типа дата.

Единственное исключение — сложения со строкой, в которой содержатся только цифры:

Получите 267 видеоуроков по 1С бесплатно:

Система выдаст результат 4, однако, если поменять слагаемые местами, система выдаст строковые «22», т.к 1С 8 выбирает тип по первому в выражению значению.

Решение Преобразование значения к типу Число не может быть выполнено

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

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

Очень распространенная ошибка — это получение NULL в запросе и использование его в арифметических выражениях:

Здесь в строке Сч = Сч + Выборка.КоличествоОборот вполне вероятно появление данной ошибки в случае получения в качестве значения NULL.

Чтобы избежать данной ошибки, достаточно использовать проверку на NULL ресурсов в запросе:

Если в значении будет значение NULL, то система заменит его на ноль, тем самым ошибка будет исправлена.

Другие статьи по 1С:

Если Вы начинаете изучать 1С программирование, рекомендуем наш бесплатный курс (не забудьте подписаться на YouTube — регулярно выходят новые видео):

К сожалению, мы физически не можем проконсультировать бесплатно всех желающих, но наша команда будет рада оказать услуги по внедрению и обслуживанию 1С. Более подробно о наших услугах можно узнать на странице Услуги 1С или просто позвоните по телефону +7 (499) 350 29 00. Мы работаем в Москве и области.

Программирование системы 15.08.2016 10:22 8131

В 1С:Предприятии при создании перемененных не нужно определять тип её значения. В других языках программирования типа C# или C++ при создании переменных необходимо сразу определять тип значения. Так как в 1С нет строгой типизации переменных, то в одну и туже переменную можно записывать значения разного типа.

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

Неявное преобразование типов

Неявное преобразование типов переменных возникает когда над переменными выполняется какие либо действия: сложение, вычитание, соединение строк, и т.д.

Явное преобразование типов

Для преобразования типов значений в 1С предназначены специальные функции: Число(), Строка(), Дата().

Для того чтобы добавить сообщение, необходимо Войти или Зарегистрироваться

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

Даты, отформатированные как текст, выравниваются по левому краю в ячейке (вместо выравнивания по правому краю). Если включена Проверка ошибок , Текстовая дата с двумя цифрами года также может помечаться индикатором ошибки: .

Поскольку функция проверки ошибок в Excel распознает даты в текстовом формате с двузначным номером года, можно воспользоваться средством автозамены и преобразовать их в даты в формате даты. С помощью функции ДАТАЗНАЧ можно преобразовывать в даты большинство типов текстовых дат.

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

Вы можете использовать индикатор ошибки для преобразования дат из текстового формата в формат даты.

Примечания: Сначала убедитесь в том, что в Excel включена проверка ошибок. Для этого:

Щелкните Файл > Параметры > Формулы.

В Excel 2007 нажмите кнопку Microsoft Office и выберите Параметры ExcelExcel 2007 формулы.

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

В разделе правила проверки ошибоквыделите ячейки, которые содержат годы, представленные 2 цифрами.

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

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

Совет: Чтобы отменить выделение ячеек, щелкните любую ячейку на листе.

Нажмите появившуюся рядом с выделенной ячейкой кнопку ошибки.

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

Текстовые даты с двумя цифрами года преобразуются в стандартные даты с четырьмя цифрами года.

После преобразования ячеек с текстовыми значениями можно изменить внешний вид дат путем применения формата даты.

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

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

Нажмите кнопку числовой формат и выберите нужный формат даты.

Краткий формат даты выглядит следующим образом:

В длинный формат даты содержатся дополнительные сведения, как показано на рисунке:

Чтобы преобразовать текстовую дату в ячейку в серийный номер, используйте функцию ДАТАЗНАЧ. Затем скопируйте формулу, выделите ячейки, содержащие текстовые даты, и используйте команду Специальная Вставка , чтобы применить к ним формат даты.

Выполните указанные ниже действия:

Выберите пустую ячейку и убедитесь в том, что ее числовой формат является общим.

В пустой ячейке сделайте следующее.

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

Нажмите клавишу ВВОД, и функция ДАТАЗНАЧ возвращает порядковый номер даты, представленной текстовым форматом даты.

Что такое серийный номер Excel?

В Excel даты хранятся в виде порядковых номеров, что позволяет использовать их в вычислениях. По умолчанию 1 января 1900 г. является порядковым числом 1, а 1 января 2008 — порядковый номер 39448, так как он составляет 39 448 дня после 1 января, 1900.To скопировать формулу преобразования в диапазон смежных ячеек, выделите ячейку, содержащую введенную формулу. , а затем перетащите маркер заполнения по диапазону пустых ячеек, который соответствует размеру диапазона ячеек, содержащих текстовые даты.

В результате получится диапазон ячеек с порядковыми номерами, который соответствует диапазону ячеек с датами в текстовом формате.

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

Сочетание клавиш: Кроме того, можно нажать клавиши CTRL + C.

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

В диалоговом окне Специальная вставка в разделе Вставить выберите параметр Значения и нажмите кнопку ОК.

На вкладке Главная нажмите кнопку вызова всплывающего окна рядом с полем число.

В поле Категория выберите пункт Дата, после чего укажите необходимый формат даты в списке Тип.

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

Дополнительные сведения

Вы всегда можете задать вопрос специалисту Excel Tech Community, попросить помощи в сообществе Answers community, а также предложить новую функцию или улучшение на веб-сайте Excel User Voice.

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

Get expert help now

Don’t have time to figure this out? Our expert partners at Excelchat can do it for you, 24/7.

Преобразование к типу число не может быть выполнено в 1с как исправить

Почему возникает ошибка «Преобразование значения к типу Число не может быть выполнено»?

Про ошибку

Причиной такой ошибки является попытка преобразования в число значения, которое в число преобразовано быть не может.

Рассмотрим такой пример:

Программист, который пишет этот код ожидает, что 1С выведет пользователю следующие значения:

Вместо этого возникает ошибка преобразования значения в число.

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

Мы должны подсказать системе, что собираемся складывать строки, а не числа. Для этого мы можем явно указать преобразование первого слагаемого в строку, вот так:

Другой вариант — поставить первым слагаемым любое строковое значение, например, пустое:

На заметку

Раз мы заговорили про неявные преобразования значений, рассмотрим сразу ещё и такой пример:

Программист ожидает, что 1С выведет пользователю:

Вместо этого он видит:

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

В данном случае необходимо расставить скобки, чтобы 1С сначала посчитала результат в скобках (как сумму чисел), а уже затем преобразовала результат в строку, вот так:

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

заходишь в документ заказ, нужна создать документ поступление жмешь кнопку ВВЕСТИ НА ОСНОВАНИЕ — поступление товара и услуг
выходит ошибка «Преобразование значения к типу число не может быть выполнено» подробно — Ошибка при выполнении обработчика — ‘<Документ.ПоступлениеТоваровУслуг(1950)>: Преобразование значения к типу Число не может быть выполнено’
по причине:
<Документ.ПоступлениеТоваровУслуг(1950)>: Преобразование значения к типу Число не может быть выполнено

захожу в конфигурацию
СтрокаТабличнойЧасти.Заказ = Неопределено;
а без ошибки
СтрокаТабличнойЧасти.Заказ = СтрокаРазмещения.Размещение;

Преобразование значения к типу Число не может быть выполнено 1С 8.3 — как исправить?

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

Ошибка преобразование по типу число

Причины ошибки выполнения преобразования значения к типу Число

Обычно данная проблема возникает при запуске кода, выполнении процедуры проверки кода на ошибки или при осуществлении стандартных операцией составления отчётности в системе 1С 8.3 (и ранних системах).

В частности, ошибка фиксировалась в следующих обстоятельствах:

    Вместо переменной числового типа был использован NULL, строка, индекс почты, ИНН, дата и другие значения. В этом случае стандартное арифметическое действие с двумя или несколькими числовыми переменными не может быть выполнено, так как какое-либо из значений не может быть трансформировано в число;

Параметр NULL

Давайте разберём, как устранить ошибку «Преобразование значения к типу Число не может быть выполнено» в конфигурации 1С 8.3.

Ошибка преобразование 1С

Обновите вашу систему 1С до самой актуальной версии

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

Сообщение об обновлении версии конфигурации

Внимательно проверьте код на наличие переменных

В большинстве случаев рассматриваемая ошибка вызвана невнимательностью программиста, вместо числового значения указавшего не числовое, что не позволяет системе выполнить правильный подсчёт числовых значений. Рекомендуем внимательно проверить создаваемый вами код, найти место в коде вызывающее исключение (ошибку) и пофиксить его.

Рисунок где ошибка

Например, в примере:

переменная B будет вести к ошибке так как её формат не позволяет системе сложить числовое значение «А» и значение в форме даты. Для решения проблемы замените B на строку: B=5 или аналогичную. В этом случае система выдаст вам корректный результат (в данном случае это будет 8).

Фото девушки жест отлично

Измените первый тип слагаемого на число

В некоторых случаях платформа 1С анализирует тип первого слагаемого числа, обнаруживает строку, вследствие чего может решить, что в данном коде речь идёт о сложении строк, а не необходимых программисту числах. Вследствие этого она пытается выполнить преобразование каждого слагаемого в строку, после чего объединить их как строки.

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

К примеру, вместо ошибочной строки:

Сообщить(«Результат: » + 7 + 8 + 9);

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

Сообщить(«Результат: » + (7 + 8 + 9));

Вследствие этого вы получите ожидаемый результат в виде числе 24.

Используйте конфигуратор для нахождения исключения кода

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

Порядок действий в этом случае будет следующим:

  1. Выполните запуск конфигуратора;
  2. В его настройках поставьте галочку на опцию остановки по ошибке;
  3. Нажмите на кнопку F5 для запуска 1С;
  4. Выполните приведшие к ошибке операции. Программа определит строчку, где имеется некорректный код;
  5. Найдите в данной строчке ошибку и исправьте её. Проблема будете решена.

Остановка по ошибке

Переиндексируйте ваши файлы

В некоторых редких случаях исправить ошибку «Преобразование значения к типу Число» может помочь переиндексация ваших файлов. Для версии 1С 8.3 стоит использовать файл chdbfl.exe, запускающий переиндексацию. Обычно данный файл находится по пути C:\Program Files (x86) \1cv8\8.3ХХХ\bin. Вместо ХХХ у вас могут находиться указатели вашей версии продукта.

Файл 1С

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

Окно переиндексации базы

Используйте функцию «Есть NULL»

Если выскакивает ошибка, то иногда одна из задействуемых переменных может принимать значение NULL. Для исправления ошибки рекомендуется использовать функцию «ЕСТЬNULL» (переменная, 0), что позволит устранить рассматриваемую в статье проблему.

Параметр ЕСТЬNULL

Заключение

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

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *