Меню

1с ошибка преобразования значения к двоичному типу

Содержание:

1.       Ошибка кэша

2.       Исключение ошибки в настройках пользователя

3.       Обновление типовой конфигурации 1С

4.       Исправление ошибки Булево в конфигураторе 1С

5.       Как самостоятельно найти ошибку преобразования значения к типу Булево?

Статья рассчитана как на пользователей-непрограммистов, так и на тех, кто имеет желание попробовать свои силы в решении этой проблемы. Для последних в этом вопросе важно иметь представление о режиме «Конфигуратор». Однако начать стоит с малого – того, что может сделать даже не знакомый с тонкостями программирования пользователь.  

1.   Ошибка кэша

В зависимости от режима работы программы 1С Предприятие 8 можно попробовать перезагрузить компьютер, на котором расположена база, если режим файловый, или сервер – если программа работает в серверном режиме.

Узнать, в каком режиме работает Ваша 1С можно из окна «О программе», как показано на скриншоте ниже.

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

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

2.   Исключение ошибки в настройках пользователя

Если ошибка повторяется только у одного пользователя, есть вариант просто исключить ее в настройках пользователя 1С.

Откроем настройки карточки данного пользователя 1С и отыщем в списке форму, на которой возникает ошибка. Если таковая в списке имеется, просто очищаем ее, путем нажатия на кнопку «Очистить» (показано на рисунке ниже).  


3.   Обновление типовой конфигурации 1С

Если вы работаете с типовой конфигурацией системы 1С — лучшее решение — обновить программу до версии последнего релиза. Возможно, это решит проблему.

Если описанные выше способы не стали решением проблемы, рекомендую неподкованным в программировании пользователям остановиться на этом, и обратиться за помощью к более компетентным коллегам. Далее последует информация для тех, кто уже имел опыт работы в 1С в режиме «Конфигуратор».  

4.   Исправление ошибки Булево в Конфигураторе 1С

Значения типа Булево в 1С имеют два значения в коде программы: Истина и Ложь (Да и Нет). Значения данного типа возвращаются в качестве результата вычисления логических выражений. То есть, если преобразование значения к типу Булево не может быть выполнено в 1С – у вас неверно сформулировано это самое логическое выражение. Ниже рассмотрим простой пример.

У вас может быть и свое условие, но его можно упростить до такого варианта: есть некоторое значение (переменная), которая имеет тип «Булево», но по какой-то причине ей присвоено значение «Неопределено». Вот условия, при которых будет возникать ошибка преобразования значения к типу Булево в 1С, и при которых она не возникнет:

Еще пример: есть переменные А и Б. Необходимо проверить, есть ли Б в некотором Списке. Ниже приведена часть кода, при котором воспроизводится и закомментированное верное условие, и ошибка не возникает:

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

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

При внесении остатков склада через внешнюю обработку пользователь не указал «Вид номенклатуры» и не поставил признака «Не определена». Т.е. она просто не была заполнена.

Далее были определенные действия (использование механизма подбора в складских типах документов), при которых возникала ошибка преобразования значения к типу Булево в 1С. То есть, програмно, без проверок была создана Номенклатура со значением вида NULL.

Решение существующей проблемы: заполнить значение – простыми словами – указать соответствующий вид номенклатуры.  

5.   Как самостоятельно найти ошибку преобразования значения к типу Булево?

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

Далее включаем отладку по ошибке:

 

Открываем программу 1С Предприятие 8 в режиме отладки:

Проверяем, запущена ли отладка (пример на файловом варианте работы системы «1С:Предприятие 8»):

В подключенных предметах отладки должно быть две строки с типом «Сервер» и «Тонкий клиент» (исключение, если режим отладки запущен в Толстом клиенте, тогда строка будет только одна – с этим типом):

Проверили. Закрыли. Теперь повторяем то же действие в режиме 1С:Предприятия, при котором возникает ошибка. В данном примере это внешняя обработка. Для выявления ошибки она открыта как в режиме Конфигуратора, так и в режиме 1С:Предприятие:

После выполнения действий, при которых возникает ошибка преобразования значения к типу Булево, появится следующая картина:

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

Каждая отдельная ситуация требует частного рассмотрения. Если вы имеете базовые представления об отладке, умеете читать код и обладаете весомым запасом энтузиазма и любопытства, то найдете причину и примете решение по ее устранению. Однако делать это лучше на резервной копии базы, дабы обезопасить данные.

А если у Вас недостаточно опыта, и первые три пункта из статьи не помогли исправить ошибку Булево, рекомендую поберечь время и нервы: мы в кратчайшие сроки решим ваш вопрос!

Специалист компании ООО «Кодерлайн»

Антонова Юлия Сергеевна

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

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

Содержание

  1. Причины ошибки выполнения преобразования значения к типу Число
  2. Обновите вашу систему 1С до самой актуальной версии
  3. Внимательно проверьте код на наличие переменных
  4. Например, в примере:
  5. Измените первый тип слагаемого на число
  6. Используйте конфигуратор для нахождения исключения кода
  7. Переиндексируйте ваши файлы
  8. Используйте функцию «Есть NULL»
  9. Заключение

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

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

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

  • Вместо переменной числового типа был использован NULL, строка, индекс почты, ИНН, дата и другие значения. В этом случае стандартное арифметическое действие с двумя или несколькими числовыми переменными не может быть выполнено, так как какое-либо из значений не может быть трансформировано в число; Параметр NULL
  • При выполнении операции по сложению чисел программист указал первым значением строку, а не число, тем самым совершив ошибку;
  • Было использовано двойное обозначение для единиц исчисления. К примеру, это может быть руб и RUB. Для устранения ошибки рекомендуем использовать одно унифицированное обозначение, в случае двоих указывайте для них одинаковые ставки и коэффициенты во избежание конфликта;
  • В коде указана операция в двух разных направлениях (наиболее часто встречается в 8 версии 1С). Во избежание дисфункции необходимо убрать одну из проводок;
  • Пользователь использует устаревшую (неотлаженную) версию 1С, где пытается работать с современными типами данных.

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

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

Читайте также: Соединение с сервером баз данных разорвано администратором в системе 1С.

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

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

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

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

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

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

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

A=3;

B=Текущая Дата();

С=A+B;

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

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

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

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

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

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

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

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

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

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

Это может помочь: В данной транзакции уже происходили ошибки система 1С 8.3 —  как решить?

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

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

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

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

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

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

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

Файл 1С

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

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

Выполните проверку вашей базы

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

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

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

Это также пригодится: Не удалось определить цифровой сертификат получателя в 1С — как решить?

Заключение

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

Black and white numbers backgroundЧаще всего ошибка «Преобразование значения к типу Число не может быть выполнено» выскакивает из-за невнимательности программиста. В одной из переменных указывается не числовое значение, что и приводит к несоответствию.

Например, правильный код будет выглядеть следующим образом:

a = 3;

b = 4;

c = a + b.

Программа вернёт значение 7.

Неправильный код:

a = 3;

b = ТекущаяДата();

c = a + b.

Программа выдаст ошибку.

Исключение возможно только в случае, когда в строке указаны только числа, например:

a = 5;

b= «3»;

c = a + b;

Результат отобразится корректно – 8. Но если пункты a и b поменять местами, программа выдаст результат «35», так как при вычислении тип чисел выбирается по первому пункту.

На месте переменной всегда должно стоять число, то есть значение, предназначенное для арифметических вычислений. Любые другие данные на этой позиции (NULL неопределенно, индекс почты, дата, ИНН и т. д.) приведут к ошибке.

Причины возникновения конфликта

image002

Ситуации, в которых ошибка «Преобразование значения к типу Число не может быть выполнено» возникает чаще всего:

  1. В проводке не указано числовое значение. Некоторые думают, что по умолчанию это число «0». Даже если это так, значение должно быть прописано;
  2. Двойное обозначение единиц исчисления. Например, RUB и руб. Нужно использовать одно из обозначений, а если используются оба, необходимо указывать к ним одинаковые ставки и коэффициенты, чтобы не возникало конфликта;
  3. В программе указывается одна из операций в двух разных направлениях. Допустим, производится начисление налога и перечисление его по банку. Для решения проблемы нужно убрать одну из проводок (ошибка встречается только на 8-ой версии программы).
Решение проблемы

image003

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

  • Запустить конфигуратор;
  • В настройках установить галочку «Останов по ошибке» (по окончании работы её необходимо будет убрать);
  • Нажать на F5 (откроется 1С);
  • Выполнить операции, которые привели к ошибке – программа укажет на строчку, в которой введён некорректный код;
  • Затем необходимо найти в этой строчке ошибку.

В некоторых случаях помогает переиндексация файлов:

  • На 7-ой версии 1С для этого требуется удалить cdx-файлы;
  • На 8-ой версии – файл chdbfl.exe
Конфликт 7-ой и 8-ой версии

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

В свойствах базы указывается развёрнутое сальдо, в том числе и по счёту 68.10. Когда в учёте наступает очередь этого счёта – появляется ошибка (на 8-ой версии). Для решения проблемы есть два пути:

  • Необходимо удалить из развёрнутого сальдо счёт 68.10 (это не совсем удобно, так как дебетные и кредитные налоги начинают учитываться вместе, что не является верным);
  • Свернуть всю базу (в дополнительных настройках нужно поставить галочку «выводить забалансовые счета»). С установленной галкой ошибка не выскакивает.

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

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

Оглавление

  • Про ошибку
  • На заметку

Про ошибку

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

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

Для Шаг = 1 По 3 Цикл
   Сообщить(Шаг + "абв");
КонецЦикла;

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

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

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

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

Для Шаг = 1 По 3 Цикл
   Сообщить(Строка(Шаг) + "абв");
КонецЦикла;

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

Для Шаг = 1 По 3 Цикл
   Сообщить("" + Шаг + "абв");
КонецЦикла;

На заметку

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

Сообщить("Результат:  " + 1 + 2 + 3);

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

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

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

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

Сообщить("Результат:  " + (1 + 2 + 3));

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

Black and white numbers backgroundЧаще всего ошибка «Преобразование значения к типу Число не может быть выполнено» выскакивает из-за невнимательности программиста. В одной из переменных указывается не числовое значение, что и приводит к несоответствию.

Например, правильный код будет выглядеть следующим образом:

Программа вернёт значение 7.

Программа выдаст ошибку.

Исключение возможно только в случае, когда в строке указаны только числа, например:

Результат отобразится корректно – 8. Но если пункты a и b поменять местами, программа выдаст результат «35», так как при вычислении тип чисел выбирается по первому пункту.

На месте переменной всегда должно стоять число, то есть значение, предназначенное для арифметических вычислений. Любые другие данные на этой позиции (NULL неопределенно, индекс почты, дата, ИНН и т. д.) приведут к ошибке.

Причины возникновения конфликта

image002

Ситуации, в которых ошибка «Преобразование значения к типу Число не может быть выполнено» возникает чаще всего:

  1. В проводке не указано числовое значение. Некоторые думают, что по умолчанию это число «0». Даже если это так, значение должно быть прописано;
  2. Двойное обозначение единиц исчисления. Например, RUB и руб. Нужно использовать одно из обозначений, а если используются оба, необходимо указывать к ним одинаковые ставки и коэффициенты, чтобы не возникало конфликта;
  3. В программе указывается одна из операций в двух разных направлениях. Допустим, производится начисление налога и перечисление его по банку. Для решения проблемы нужно убрать одну из проводок (ошибка встречается только на 8-ой версии программы).
Решение проблемы

image003

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

  • Запустить конфигуратор;
  • В настройках установить галочку «Останов по ошибке» (по окончании работы её необходимо будет убрать);
  • Нажать на F5 (откроется 1С);
  • Выполнить операции, которые привели к ошибке – программа укажет на строчку, в которой введён некорректный код;
  • Затем необходимо найти в этой строчке ошибку.

В некоторых случаях помогает переиндексация файлов:

  • На 7-ой версии 1С для этого требуется удалить cdx-файлы;
  • На 8-ой версии – файл chdbfl.exe
Конфликт 7-ой и 8-ой версии

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

В свойствах базы указывается развёрнутое сальдо, в том числе и по счёту 68.10. Когда в учёте наступает очередь этого счёта – появляется ошибка (на 8-ой версии). Для решения проблемы есть два пути:

  • Необходимо удалить из развёрнутого сальдо счёт 68.10 (это не совсем удобно, так как дебетные и кредитные налоги начинают учитываться вместе, что не является верным);
  • Свернуть всю базу (в дополнительных настройках нужно поставить галочку «выводить забалансовые счета»). С установленной галкой ошибка не выскакивает.

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

Разберем основные вопросы преобразования типов в 1С 8.3: из строки в число, из числа в строку, из даты в число и прочие варианты. В этой статье мы рассмотрим функции преобразования значений, и я соберу в едино все варианты преобразования примитивных типов.

Строка в число в 1С

Узнаем, как в 1С 8.3 преобразовать строку в число.

Пусть, у нас есть числа в таком виде.

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

Обратите внимание, что разделять дробную часть можно в строке как при помощи символа точка «.», так и при помощи символа запятая «,». Если перед каким-то числом в строке стоят нули, то они отсекаются. У нас будет следующий результат.

Строка в число в 1С

Число в строку в 1С

Рассмотрим обратную задачу, когда в 1С 8.3 нужно преобразовать число в строку. Самый простой вариант использовать метод Строка, который преобразует собственный параметр в строку.

И какой результат возвращает этот код:

Число в строку в 1С

У этого способа имеется недостаток: он ставит пробелы между разрядами у длинных чисел. Для того, чтобы в 1С преобразовать число в строку без пробелов нужно воспользоваться функцией Формат. Данная функция имеет два параметра: преобразуемое значение и форматную строку. Если нам нужно указать, что число преобразуется в строку без пробелов в разряде, то необходимо указать в форматной строке, что порядок разделения группировки разрядов числа или равен 0, или пустой.

Результат будет без разрядов:

число в строку без пробелов 1C

Строка в дату 1С

Узнаем, как преобразовать в 1С 8.3 строку в дату. Для этого необходимо использовать метод Дата, который преобразует параметр (в том числе строку ) в дату . Причем, замечу, что строка должна быть задана в таком формате «ГГГГММДДЧЧММСС».

Подробнее о форматах дат читайте в этой статье: даты в 1С.

Строка в дату в 1С

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

Например, этот код:

Приведет к ошибке:

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

Дата в строку в 1С

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

В этом случае у нас выйдет строка в обычном «полном» формате даты.

Дата в строку в 1С

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

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

Мы изменим предыдущий код, написав вместо метода Строка метод Формат, а в качестве второго параметра у метода Формат напишем просто две кавычки.

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

Конструктор форматной строки

В этом конструкторе на закладке Дата вы можете выбрать удобный вам формат даты.

Конструктор форматной строки

И после нажатия кнопки ОК этого конструктора, нужный формат появится в виде строки.

В результате метода Формат, дата будет преобразована в строку в том виде, в каком нам необходимо.

Дата в строку в 1С

Строка в булево в 1С

При помощи метода Булево мы можем некоторые строковые представления (Да, Нет, Истина, Ложь) преобразовывать в значения Истина или Ложь.

Например, следующие переменные:

Будут иметь такие значения:

Строка в булево

Булево в строку в 1С

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

Например, как здесь:

У нас будет выходить следующий результат:

Булево в строку

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

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

Переделаем, предыдущий код:

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

Конструктор форматной строки Булево

После нажатия кнопки ОК конструктора, второй параметр метода Формат заполнится:

И будет следующий результат:

Булево в строку

Число в булево в 1С

В 1С 8.3. мы можем преобразовать любое число в булево по следующему правилу: 0 будет преобразован в Ложь, все остальные значения в Истина.

Будет следующий результат:

Число в булево в 1С

Булево в число в 1С

Можно сделать и обратное преобразование. Булево значение в число.

Для этого нужно воспользоваться методом Число, где в качестве параметра указать булево значение. Тогда Истина будет преобразована в 1С, а Ложь – в 0.

Например, как в этом коде:

С таким результатом:

Булево в число

Статьи о примитивных типах в 1С:

Более подробно и основательно начальные вопросы программирования в 1С есть вы можете изучить в
Книга «Программировать в 1С за 11 шагов»

Изучайте программирование в 1С в месте с моей книгой «Программировать в 1С за 11 шагов»

Программировать в 1С за 11 шагов

Книга написана понятным и простым языком — для новичка.

  1. Книга посылается на электронную почту в формате PDF. Можно открыть на любом устройстве!
  2. Научитесь понимать архитектуру 1С;
  3. Станете писать код на языке 1С;
  4. Освоите основные приемы программирования;
  5. Закрепите полученные знания при помощи задачника.

О том как разрабатывать под управляемым приложением 1С, читайте в книге Книга «Основы разработки в 1С: Такси»

Отличное пособие по разработке в управляемом приложении 1С, как для начинающих разработчиков, так и для опытных программистов.

Основы разработки в 1С такси

  1. Очень доступный и понятный язык изложения
  2. Книга посылается на электронную почту в формате PDF. Можно открыть на любом устройстве!
  3. Поймете идеологию управляемого приложения 1С
  4. Узнаете, как разрабатывать управляемое приложение;
  5. Научитесь разрабатывать управляемые формы 1С;
  6. Сможете работать с основными и нужными элементами управляемых форм
  7. Программирование под управляемым приложением станет понятным

Промо-код на скидку в 15% — 48PVXHeYu

Эти книги, плюс книга по программированию оперативного учета имеются в едином комплекте: комплект книг по разработке в 1С.
Только для читателей моего блога,
промо-код на скидку в 300 рублей на весь комплект: blog


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

можно оплатить вручную:

Яндекс.Деньги — 410012882996301
Web Money — R955262494655

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

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

Такое сообщение выдаёт 1С Бухгалтерия 8.2 (версия 3.0) при попытке сформировать Книгу учёта доходов и расходов. Подскажите, пожалуйста, где кроется ошибка?

Сообщение от trud-consalting

Такое сообщение выдаёт 1С Бухгалтерия 8.2 (версия 3.0) при попытке сформировать Книгу учёта доходов и расходов. Подскажите, пожалуйста, где кроется ошибка?

  • Просмотр профиля
  • Сообщения форума
  • Блог
  • Просмотр профиля
  • Сообщения форума
  • Блог

Обновление не поможет. Отладчик тоже вряд ли что-то прояснит.
Столкнулась с этой ошибкой уже давно при формировании ОСВ.
Вот моё обращение в техподдержку:
Прошу Вас смоделировать на демо-версии следующую ситуацию.
1. Создать новое предприятие без начальных остатков по счёту 68
2. Ввести простейшую операцию БУ НУ начисления налога, например, 91.2 68.10 6000 руб
3. Ввести операцию списания с расчётного счёта этого налога 68.10 51 6000 руб
4. Сформировать ОСВ, выставив в её настройках развернутое сальдо по счёту 68 по субсчетам

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

ОСВ сформируется без ошибок если:
1) сумма начисления будет отлична от суммы перечисления хотя бы на копейку
2) есть начальные остатки по счёту 68 (причём по любому 68-му, совершенно не обязательно по 68.10)
3) в развернутом сальдо не стоит галочка 68 по субсчетам.

Пожалуйста, помогите исправить ошибку. Очень мешает в работе.

Ответ — «указанная ошибка не проявляется».

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

1С:Предприятие 8.2 (8.2.18.109)
Бухгалтерия предприятия, редакция 3.0 (3.0.24.11)

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

Я
   Folinn

11.03.13 — 11:34

заходишь в документ заказ, нужна создать документ поступление жмешь кнопку   ВВЕСТИ НА ОСНОВАНИЕ — поступление товара и услуг

выходит ошибка  «Преобразование значения к типу число не может быть выполнено» подробно — Ошибка при выполнении обработчика — ‘{Документ.ПоступлениеТоваровУслуг(1950)}: Преобразование значения к типу Число не может быть выполнено’

по причине:

{Документ.ПоступлениеТоваровУслуг(1950)}: Преобразование значения к типу Число не может быть выполнено

захожу в конфигурацию  

СтрокаТабличнойЧасти.Заказ                      = Неопределено;

а без ошибки

СтрокаТабличнойЧасти.Заказ             = СтрокаРазмещения.Размещение;

что делать??

   Fragster

1 — 11.03.13 — 11:35

перешли с 8.1 на 8.2 не прочитав доки?

   Folinn

2 — 11.03.13 — 11:36

не переходили

   Fragster

3 — 11.03.13 — 11:38

демонически обновлялись?

   Folinn

4 — 11.03.13 — 11:38

(1) 8,1 УТ 10,3

все другие документы нормально только один не хочет

   Folinn

5 — 11.03.13 — 11:38

(3) вообще да, но давно

   Maxus43

6 — 11.03.13 — 11:39

(5) на других компах тоже самое?

   Folinn

7 — 11.03.13 — 11:41

да,  000000425 именно он с ошибкой а все остальные нормально

   Folinn

8 — 11.03.13 — 11:42

что можно сделать как на документе исправить ошибку ?

   Reset

9 — 11.03.13 — 11:42

(0)Какая из двух указанных строк 1950-я?

Хотя эту ошибку ни та ни другая вызвать не может.

Или (3) или давай правильную строку

   GROOVY

10 — 11.03.13 — 11:42

Сейчас про кеш напишут.

   Maxus43

11 — 11.03.13 — 11:43

(8) я про другой компьютер спрашивал, а не про документ

   Folinn

12 — 11.03.13 — 11:45

(11) я про компьютер говорил, а про документ дописал

   Godofsin

13 — 11.03.13 — 11:45

Точку остановы на строку 1950 и смотреть, что там

   Maxus43

14 — 11.03.13 — 11:46

(12) 000000425 это компьютер?)

на другом компе ошибки нет? чисти кэш

   Folinn

15 — 11.03.13 — 11:49

{Документ.ПоступлениеТоваровУслуг(1950)}: Преобразование значения к типу Число не может быть выполнено
                СтрокаТабличнойЧасти.Количество = СписатьПоЗаказу * СтрокаТабличнойЧасти.Номенклатура.ЕдиницаХраненияОстатков.Коэффициент 
(14) на всех попробовал такая ошибка выходит
   Reset

16 — 11.03.13 — 11:49

(14) наверное
q: "на других компах тоже самое?"
a: "да, ....."
ясное изложение - не сильная строна автора ;)
   GROOVY

17 — 11.03.13 — 11:51

(15) «СписатьПоЗаказу» запросом выбирается?

У номенклатуры на задана единицаХраненияОстатков.

   Reset

18 — 11.03.13 — 11:51

(15) Там деление еще забыл

   Reset

19 — 11.03.13 — 11:53

телепат говорит что /СтрокаЗаказа.Коэффициент к числу не преобразовывается

   Defender aka LINN

20 — 11.03.13 — 11:56

(15) А сколько будет 45*NULL?

   Godofsin

21 — 11.03.13 — 11:59

про коэффициент единицы уже было?

   Folinn

22 — 11.03.13 — 12:02

(20) не понял?((

   Godofsin

23 — 11.03.13 — 12:03

(22) печально

   Defender aka LINN

24 — 11.03.13 — 12:04

(22) Я-то понял.

   GROOVY

25 — 11.03.13 — 12:08

(22) Николай, Вам же намекают открытым текстом, что в одном из операторов NULL, посмотрите отладчиком в каком именно.

   Folinn

26 — 11.03.13 — 12:17

(25)((( как это сделать?

   НафНаф

27 — 11.03.13 — 12:19

(20) 45*NULL = NULL+NULL+…+NULL (всего 45 слагаемых)

   Godofsin

28 — 11.03.13 — 12:20

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

   Alex375

29 — 11.03.13 — 12:37

(26) если ты не программист, тогда лучше не лезь…

   Defender aka LINN

30 — 11.03.13 — 13:57

(27) и чему это равно?

   Folinn

31 — 11.03.13 — 19:33

(28) СтрокаТабличнойЧасти(0).Количество(0)=СписатьПоЗаказу(60) * СтрокаТабличнойЧасти(1).Номенклатура(1).ЕдиницаХраненияОстатков(1).Коэффициент(1)

                                                                  /СтрокаЗаказа(1).Коэффициент(1);
   Defender aka LINN

32 — 11.03.13 — 19:54

(31) Это еще что за НЕХ?

   Folinn

33 — 11.03.13 — 20:05

(32) значение

   Defender aka LINN

34 — 11.03.13 — 20:08

(33) Что значение?

   hhhh

35 — 11.03.13 — 20:34

(33) точку останова поставил? на строке 1950?

   Folinn

36 — 11.03.13 — 20:51

(35) да, в чем тут ошибка?

   Defender aka LINN

37 — 11.03.13 — 21:10

(36) Скрин в студию

   hhhh

38 — 11.03.13 — 21:53

(36) когда остановится, делай меню Отладка — вычислить выражение и вводи какое выражение: СтрокаТабличнойЧасти.Номенклатура.ЕдиницаХраненияОстатков.Коэффициент

   Folinn

39 — 12.03.13 — 04:19

(38) СтрокаТабличнойЧасти.Номенклатура.ЕдиницаХраненияОстатков.Коэффициент (значение: 1) (тип: число)

   Godofsin

40 — 12.03.13 — 04:30

(31) Чо за цифры в скобках?

(39) тут что: СтрокаЗаказа.Коэффициент

   Folinn

41 — 12.03.13 — 04:32

   Folinn

42 — 12.03.13 — 04:32

   Godofsin

43 — 12.03.13 — 04:34

(42) теперь также посмотри: СтрокаЗаказа.Коэффициент

   Godofsin

44 — 12.03.13 — 04:34

ну и СписатьПоЗаказу тоже

   Folinn

45 — 12.03.13 — 04:36

(44) ошибка будет если = 0?

   Godofsin

46 — 12.03.13 — 04:41

(45) Если СтрокаЗаказа.Коэффициент = 0 тогда ошибка будет.

Если СписатьПоЗаказу то не будет ошибки

   Folinn

47 — 12.03.13 — 04:42

СписатьПоЗаказу (значение: 60) (тип: число)
СтрокаЗаказа.Коэффициент (значение: 1) (тип: число)
   Godofsin

48 — 12.03.13 — 04:45

(47) Чудеса…

   Godofsin

49 — 12.03.13 — 04:46

(48) Даж не знаю… проверь тип: СтрокаТабличнойЧасти.Количество

   Folinn

50 — 12.03.13 — 04:49

(49)СтрокаТабличнойЧасти.Количество (значение:60)(тип: число)

   Godofsin

51 — 12.03.13 — 04:49

(50) Ты точно на ошибке проверяешь?

   Godofsin

52 — 12.03.13 — 04:50

+ (51) Убери все точки остановки, в конфигураторе: отладка — остановка по ошибке

   Godofsin

53 — 12.03.13 — 04:51

и заново проверь все

   Folinn

54 — 12.03.13 — 04:52

(50) СтрокаТабличнойЧасти.Количество (значение:0)(тип: число)

   Godofsin

55 — 12.03.13 — 04:53

(54) Сделай (52)

   Folinn

56 — 12.03.13 — 04:55

(55) СтрокаЗаказа.Коэффициент тип NULL

   Godofsin

57 — 12.03.13 — 04:57

(56) Ну вот и твоя ошибка

   Folinn

58 — 12.03.13 — 04:57

СтрокаЗаказа.ЕдиницаИзмерения значение- Объект не найден(28:….)

   Folinn

59 — 12.03.13 — 04:58

(57) а как исправить её?

   Folinn

60 — 12.03.13 — 05:01

СтрокаЗаказа.ЕдиницаИзмерения была у меня в карточке проблема 
её исправил
  

   Folinn

61 — 12.03.13 — 05:02

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

   Godofsin

62 — 12.03.13 — 05:04

(61) Перевыбери номенклатуру в зказе, там сохранились старые значения

  

Folinn

63 — 12.03.13 — 05:21

(62)  спасибо всем!!! особенно тебе

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

0 0 голоса
Рейтинг статьи
Подписаться
Уведомить о
guest

0 комментариев
Старые
Новые Популярные
Межтекстовые Отзывы
Посмотреть все комментарии

А вот еще интересные материалы:

  • Яшка сломя голову остановился исправьте ошибки
  • Ясность цели позволяет целеустремленно добиваться намеченного исправьте ошибки
  • Ясность цели позволяет целеустремленно добиваться намеченного где ошибка
  • 1с ошибка представление состояния
  • 1с ошибка потока данных при загрузке конфигурации