Преобразование значения к типу число не может быть выполнено 1с
Турум-Пурм (кружусь с бубном напротив чучела голого бабуина) Турум-Пурум!
суть вот в чем . есть установка цен . цена устанавливаеться за 1грам изделия и исходя из веса изделия выводит новую цену и нужно чтоб полученная цена округлялось .
(13) ваще пофих на суть. сколько граммов в граме?
>цена устанавливаеться.. и .. выводит.. и нужно чтоб цена округлялось
язык форума русский
(14) ну сообщит оно ему ерунду всякую. может, даже кто-то посоветует перечитать (3). боюсь, это автора не спасёт
(0) загнать всю конструкцию в:
попытка. тут ваш текст. исключение =0 конец попытки;
и идти пить пиво =))) в пн. уже серьезно думать
(31) но сложени пустой строки с 1 даст строку "1", что при последующем сложении с Ложь преобразуется в число
(37) тут нормально помогают, надо нормально задавать вопрос. разжёжвывать всё - хуже в первую очередь для тебя, а не для других. ответы по существу были, ты их проигнорировал
тыт больше придуривались чем пытались понять проблемму ! да и хотел бы я посмотреть как вы начинали програмировать все ли у вас с самого начала шло без проблем!
Ошибка написана по русски, "Преобразование значения к типу Число не может быть выполнено".
Строка, на которую ругается - известна (но она появилась только в (7)), если не знаем что такое отладчик, то код (14) указал бы конкретную переменную из 2-х. Дальше смотрели бы в чем проблема.
Выкладывая кусок кода, без текста ошибки (там строка указана), без попыток самому понять - не оправдание тому что только начинаешь. Это больше похоже на "Сделайте всё за меня"
да понимаю что допустил ошибку не укозав строку на которую ссылаеться . но ваши термины для меня непонятны . и когда мне сказали нормальным человеческим языком я указал строчку . а умничать многие из вас гаразды, да и над начинающими посмеяться, вместа того чтоб помоч!
да не надо принимать на свой счет такое тут, а тем более в пятницу. Люди устали за неделю, надо отдыхать
При написании кода 1С или проведения бухгалтерских операций в системе 1С 8.3 и более ранних системах вы можете столкнуться с уведомлением « Преобразование значения к типу Число не может быть выполнено ». Причиной ошибки обычно является попытка программиста преобразовать в число значение, которое числовым быть не может. Ниже разберём суть данной ошибки, а также представим возможные варианты её решения.
Причины ошибки выполнения преобразования значения к типу Число
Обычно данная проблема возникает при запуске кода, выполнении процедуры проверки кода на ошибки или при осуществлении стандартных операцией составления отчётности в системе 1С 8.3 (и ранних системах).
В частности, ошибка фиксировалась в следующих обстоятельствах:
- Вместо переменной числового типа был использован NULL, строка, индекс почты, ИНН, дата и другие значения. В этом случае стандартное арифметическое действие с двумя или несколькими числовыми переменными не может быть выполнено, так как какое-либо из значений не может быть трансформировано в число;
- При выполнении операции по сложению чисел программист указал первым значением строку, а не число, тем самым совершив ошибку;
- Было использовано двойное обозначение для единиц исчисления. К примеру, это может быть руб и RUB. Для устранения ошибки рекомендуем использовать одно унифицированное обозначение, в случае двоих указывайте для них одинаковые ставки и коэффициенты во избежание конфликта;
- В коде указана операция в двух разных направлениях (наиболее часто встречается в 8 версии 1С). Во избежание дисфункции необходимо убрать одну из проводок;
- Пользователь использует устаревшую (неотлаженную) версию 1С, где пытается работать с современными типами данных.
Давайте разберём, как устранить ошибку «Преобразование значения к типу Число не может быть выполнено» в конфигурации 1С 8.3.
Обновите вашу систему 1С до самой актуальной версии
Прежде чем разбирать особенности ошибок в коде 1С, рекомендуем обновить вашу 1С до самой актуальной версии. В некоторых случаях ошибка «преобразование значения к типу число» вызвана устаревшим вариантом системы, на которой специалист пытается вести отчётность. Установите наиболее актуальную версию системы, и рассматриваемая нами ошибка может исчезнуть.
Внимательно проверьте код на наличие переменных
В большинстве случаев рассматриваемая ошибка вызвана невнимательностью программиста, вместо числового значения указавшего не числовое, что не позволяет системе выполнить правильный подсчёт числовых значений. Рекомендуем внимательно проверить создаваемый вами код, найти место в коде вызывающее исключение (ошибку) и пофиксить его.
Например, в примере:
переменная B будет вести к ошибке так как её формат не позволяет системе сложить числовое значение «А» и значение в форме даты. Для решения проблемы замените B на строку: B=5 или аналогичную. В этом случае система выдаст вам корректный результат (в данном случае это будет 8).
Измените первый тип слагаемого на число
В некоторых случаях платформа 1С анализирует тип первого слагаемого числа, обнаруживает строку, вследствие чего может решить, что в данном коде речь идёт о сложении строк, а не необходимых программисту числах. Вследствие этого она пытается выполнить преобразование каждого слагаемого в строку, после чего объединить их как строки.
Для решения проблемы необходимо использовать скобки, позволяя системе вначале выполнить вычисление результата в скобках как суммы чисел, а уже потом преобразовать результат в строку.
К примеру, вместо ошибочной строки:
Сообщить(«Результат: » + 7 + 8 + 9);
Будет необходимо использовать строку:
Сообщить(«Результат: » + (7 + 8 + 9));
Вследствие этого вы получите ожидаемый результат в виде числе 24.
Используйте конфигуратор для нахождения исключения кода
Порядок действий в этом случае будет следующим:
- Выполните запуск конфигуратора;
- В его настройках поставьте галочку на опцию остановки по ошибке;
- Нажмите на кнопку F5 для запуска 1С;
- Выполните приведшие к ошибке операции. Программа определит строчку, где имеется некорректный код;
- Найдите в данной строчке ошибку и исправьте её. Проблема будете решена.
Переиндексируйте ваши файлы
Запустите данный файл, укажите имя файла для проверки, поставьте галочку рядом с опцией «Исправлять обнаруженные ошибки», после чего нажмите на «Выполнить внизу». Дождитесь завершения процедуры проверки и исправления, после чего вновь попробуйте выполнить необходимые операции.
Используйте функцию «Есть NULL»
Если выскакивает ошибка, то иногда одна из задействуемых переменных может принимать значение NULL. Для исправления ошибки рекомендуется использовать функцию «ЕСТЬNULL» (переменная, 0), что позволит устранить рассматриваемую в статье проблему.
Заключение
Очень часто начинающие программисты 1С 8.3 встречаются с этой проблемой. Рассмотрим причины возникновения ошибки Преобразование значения к типу Число не может быть выполнено и методы её решения.
Причина ошибки Преобразование значения к типу Число не может быть выполнено
Причина достаточно банальна. Обычно при каком-либо арифметическом действии над переменными числового типа система ожидает увидеть в этом действии два значения числового типа, например:
Система, естественно, верно отработает это выражение и вернет 4.
Существуют ситуации, в которых в таких простых случаях в переменных оказывается не число, а, например, строка, NULL неопределено, дата и др.
Вот такой пример обязательно выдаст ошибку Преобразование значения к типу Число не может быть выполнено:
Потому как платформа не может сложить значения типа число и значения типа дата.
Единственное исключение — сложения со строкой, в которой содержатся только цифры:
Получите понятные самоучители по 1С бесплатно:
Система выдаст результат 4, однако, если поменять слагаемые местами, система выдаст строковые «22», т.к 1С 8 выбирает тип по первому в выражению значению.
Решение Преобразование значения к типу Число не может быть выполнено
В качестве решения рекомендую использовать дополнительные проверки. Например, на тип переменных:
Очень распространенная ошибка — это получение NULL в запросе и использование его в арифметических выражениях:
Здесь в строке Сч = Сч + Выборка.КоличествоОборот вполне вероятно появление данной ошибки в случае получения в качестве значения NULL.
Чтобы избежать данной ошибки, достаточно использовать проверку на NULL ресурсов в запросе:
Если в значении будет значение NULL, то система заменит его на ноль, тем самым ошибка будет исправлена.
Другие статьи по 1С:
Если Вы начинаете изучать 1С программирование, рекомендуем наш бесплатный курс (не забудьте подписаться на YouTube — регулярно выходят новые видео):
Ошибка 1С: Преобразование значения к типу Число не может быть выполнено 1С
Чаще всего ошибка «Преобразование значения к типу Число не может быть выполнено» выскакивает из-за невнимательности программиста. В одной из переменных указывается не числовое значение, что и приводит к несоответствию.
Например, правильный код будет выглядеть следующим образом:
Программа вернёт значение 7.
Программа выдаст ошибку.
Исключение возможно только в случае, когда в строке указаны только числа, например:
Результат отобразится корректно – 8. Но если пункты a и b поменять местами, программа выдаст результат «35», так как при вычислении тип чисел выбирается по первому пункту.
На месте переменной всегда должно стоять число, то есть значение, предназначенное для арифметических вычислений. Любые другие данные на этой позиции (NULL неопределенно, индекс почты, дата, ИНН и т. д.) приведут к ошибке.
Причины возникновения конфликта
Ситуации, в которых ошибка «Преобразование значения к типу Число не может быть выполнено» возникает чаще всего:
Решение проблемы
Если возникает подобная ошибка, требуется найти исключение кода, которое не соответствует числовому значению. Для этих целей лучше всего подходит конфигуратор 1С, который в режиме отладки сам указывает на места с ошибками. Порядок действий:
- Запустить конфигуратор;
- В настройках установить галочку «Останов по ошибке» (по окончании работы её необходимо будет убрать);
- Нажать на F5 (откроется 1С);
- Выполнить операции, которые привели к ошибке – программа укажет на строчку, в которой введён некорректный код;
- Затем необходимо найти в этой строчке ошибку.
В некоторых случаях помогает переиндексация файлов:
- Необходимо удалить из развёрнутого сальдо счёт 68.10 (это не совсем удобно, так как дебетные и кредитные налоги начинают учитываться вместе, что не является верным);
- Свернуть всю базу (в дополнительных настройках нужно поставить галочку «выводить забалансовые счета»). С установленной галкой ошибка не выскакивает.
Часто найти точную причину вывода ошибки может только программист. При работе с объемными базами разного рода ошибки не редкость, но исправлять их надо правильно, чтобы не были потеряны данные.
Всем привет!
Я пока Новичек в области 1С, но на данный момент выходит такая ошибка,непонимаю что нужно делать.
: Преобразование значения к типу Число не может быть выполнено
ПервыйАргумент=Число(ТаблоКалькулятора);
Преобразование значения к типу Число не может быть выполнено
Всем доброго времени суток! Я только начала изучать 1С по Чистову. Сейчас выходит следующая ошибка.
Ошибка: Преобразование значения к типу Число не может быть выполнено
Пытаюсь провести начисления по книге Радченко, написал алгоритм формирования различных видов.
ParanoidChaos, Нужно понять, что вероятнее всего проблема в разных типах данных, например
Есть реквизит1 с типом "Строка" и значением 5
Есть реквизит2 с типом "Число" и значением 2
когда делаем так реквизит1+реквизит2 получаем то что ты получил.
А вообще, обычно код прикладывать лучше, проще помогать будет.
Когда отрабатывает ошибка, в появившемся диалоге нажми конфигуратор, курсор спозиционируется на строке с ошибкой. Если кнопки нету, то перед тем как отлаживать идешь в меню отладка - остановка по ошибке, ставишь галку остановить по ошибке, после начинаешь отлаживать, опять таки делается для того что бы понять в какой строке косяк.
После того как строку отследишь, проверяй реквизиты которые участвуют в арифметике, если реквизиты впорядке, то может быть косяк в переменных. Тогда явно указывай тип переменной до начала исполнения строки, например
Перемен = 0;
Далее арифметика
Перемен = табло*Перемен;
Как то так, пробуй, отпишись.
Когда ставишь Переменной=0 то при нажатие Кнопки Сложения табло всегда=0.А мне это не нужно.
Мне нужно чтоб при Нажатие несколько раз на кнопку Сложения,мне не давало ошибку. Но при нажатие цифры любой,происходило операция сложения.
Решение
ParanoidChaos, какое у вас приложение? Управляемое/обычное? Сделайте ТаблоКалькулятора переменной(если упр форма, то перед объявлением &НаКлиенте), и при открытии формы объявите ее -> ТаблоКалькулятора =0.
Читайте также: