Преобразуем известные строки без префиксов и видим, что один и тот же текст 10 означает разные числа в разных системах счисления.
Где и как запускать
Учебная база: создайте серверный общий модуль УчебныеЗадачи (флаг Сервер). Код без директив вставьте в тело процедуры ВыполнитьПример() Экспорт. Вызовите её из серверного обработчика команды учебной обработки. Не запускайте в рабочей базе.
Подготовка
Все значения учебные и создаются в памяти; документы, регистры и рабочие данные не изменяются.
Выполняйте на сервере учебной базы. Представление десятичного разделителя в сообщениях зависит от локали.
Это текстовые числовые поля, а не байтовый порядок двоичного пакета. Символы префикса 0x/0b здесь не используются.
Сообщить(ЧислоИзДвоичнойСтроки("11111111"));
Сообщить(ЧислоИзШестнадцатеричнойСтроки("FF"));
Сообщить(ЧислоИзДвоичнойСтроки("10"));
Сообщить(ЧислоИзШестнадцатеричнойСтроки("10"));
Сообщить(Число("10"));
Попытка
Неверное = ЧислоИзШестнадцатеричнойСтроки("0G");
Сообщить(Неверное);
Исключение
Сообщить("Некорректное шестнадцатеричное значение отклонено");
КонецПопытки;Разбор по шагам
11111111 в двоичной системе и FF в шестнадцатеричной обозначают одно число.
У текста 10 результат зависит от явно выбранной функции преобразования.
Некорректную букву G обрабатываем как ошибку входящих данных.
Не подменяем отсутствующее или неверное значение числом 0.
Как проверить результат
Первые результаты 255 и 255, затем 2, 16 и 10.
Значение 0G отклоняется через исключение.
Замените FF на 0A: результат 10. Если ведущий ноль важен для идентификатора, храните исходную строку отдельно.
Ожидаемый результат
Показаны явные преобразования оснований системы счисления и отказ на неверном символе.
На что обратить внимание
Для номера товара FF может быть именно строковым идентификатором — не преобразуйте его в число без контракта.
Чтение сетевого пакета дополнительно требует знания порядка байтов; эти функции его не определяют.
Пример не запускался в вашей базе. Перед применением проверьте его в указанном учебном контексте.