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

Содержание:

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

Нравится0

11.03.2015 17:18:36

Почему-то при Перемещении, Списании и в Материалах (Наряды) при нажатии кнопки «Подбор» появляется ошибка «Преобразование значения к типу Булево не может быть выполнено»… Как можно убрать эту ошибку?

 

#2

Нравится0

11.03.2015 17:18:59

У Вас последняя версия установлена? Вы обновились до версии 3.0.17.7?

Автоматизация сегодня — Ваш успех завтра

 

#3

Нравится0

12.03.2015 17:19:24

Да, установил последнюю версию, ошибка осталась.

 

#4

Нравится0

12.03.2015 17:19:34

Кстати, сейчас заметил, в каких-то случаях ошибки нет, сейчас попробую найти закономерность.

 

#5

Нравится0

12.03.2015 17:20:04

Добрый день! Не можем у себя воспроизвести описанную Вами ошибку. Сообщите, как с Вами можно связаться на

idm@softonit.ru

 

#6

Нравится0

12.03.2015 17:20:19

Нашел условие, при котором нет ошибки — когда место хранения пустое

 

#7

Нравится0

12.03.2015 17:20:35

Ок, сейчас пришлю свои контактные данные.

 

#8

Нравится0

13.03.2015 17:20:54

Спасибо службе техподдержки, ошибку быстро определили ;)
При внесении остатков склада через внешнюю обработку я не указал «Вид номенклатуры» и не поставил признака «Не определена». Т.е. она у меня была просто не заполнена ничем.

 

Виталий Барилко

Администратор

Сообщений: 934
Регистрация: 10.01.2016

#9

Нравится0

06.02.2017 16:48:46

Такая ошибка возникает тогда, когда в тексте модуля используется код:

Код
Переменная = Истина;
...
Переменная = Неопределено;
...
Если Переменная Тогда // << тут ошибка, так как идет преобразование к булево, но в переменной Неопределено и генерируется эта ошибка.
  ...
КонецЕсли;

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

Код
Если Переменная = Истина Тогда
  ...
КонецЕсли;

Автоматизация сегодня — Ваш успех завтра

 

Ольга Несина

Пользователь

Сообщений: 1
Регистрация: 23.05.2017

#10

Нравится0

23.05.2017 18:16:51

ДД,У меня тоже такая ошибка,подскажите пожалуйста,что не так.В базе выдает ошибку при попытке редактировать номенклатуру и создать новую.А в конфигураторе пишет»{Справочник.ВидыНоменклатуры.МодульОбъекта(227)}: Значение не является значением объектного типа (Наименование)
ОбъектНабора.Наименование = Наименование;» 1С:Предприятие 8.3 (8.3.8.1652) Управление торговлей, редакция 11.1 (11.1.10.193)

Прикрепленные файлы

  • Безымянный.png (56.19 КБ)

Изменено: Ольга Несина23.05.2017 18:19:48

Добрый день.

Столкнулся со странным поведением 1ски.

При создании внутреннего документа в Документообороте (1С Документооборот КОРП 2 (2.1.11.5) программно в моей обработке 1с вываливается с ошибкой «Преобразование значения к типу Булево не может быть выполнено».

Ругается на строку из общего модуля «Делопроизводство». Ниже привожу строку саму:

Если ГрифыУтверждения.Количество() > 0

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

Но странность главная в том заключается, что, судя по отладчику, туда прилетает пустая таблица значений и «ГрифыУтверждения.Количество()» замечательно вычисляется (равно нулю).

В чем может быть причина и как поправить ошибку?

Кэш чистил уже.

  1. 18.02.2020, 00:03


    #1

    neseforov вне форума


    Пришел за помощью


    Exclamation Ошибка: Преобразование значения к типу Булево

    Полный код ошибки:
    Преобразование значения к типу Булево не может быть выполнено
    {Обработка.РабочийКалендар ь.Форма.Форма.Форма(1412)}: Если НЕ Элементы.ТабличныйДокумен� �.ГоризонтальнаяПолосаПрок рутки Тогда
    {Обработка.РабочийКалендар ь.Форма.Форма.Форма(1314)}: ОбновлениеСтраницыЖурналП редварительнойЗаписиСерве р(ПараметрыПостроения, ОбновитьПанельДни, МассивСотрудниковИОбласте й);
    {Обработка.РабочийКалендар ь.Форма.Форма.Форма(1685)}: ОбновлениеСтраницыЖурналП редварительнойЗаписи(,Исти на);

    как исправить?

    конф Хеликс Стом: Стоматологическая клиника, редакция 1.0 (1.0.25.2)
    1С:Предприятие 8.3 (8.3.16.1030)

    Спасибо


  2. 18.02.2020, 00:36


    #2

    burluckoff вне форума


    Просто юзер


    По умолчанию Re: Ошибка: Преобразование значения к типу Булево

    Табличный документ это не булево, не может принимать значение ложь или истина. Используйте «неопределено». Если Элементы . ТабличныйДокумент <> неопределено


  3. 24.08.2021, 11:01


    #3

    Andrej1984 вне форума


    Гость форума


    По умолчанию Re: Ошибка: Преобразование значения к типу Булево

    Преобразование значения к типу Булево не может быть выполнено
    {Обработка.РабочийКалендар ь.Форма.Форма.Форма(1412)}: Если НЕ Элементы.ТабличныйДокумен� �.ГоризонтальнаяПолосаПрок рутки Тогда
    {Обработка.РабочийКалендар ь.Форма.Форма.Форма(1314)}: ОбновлениеСтраницыЖурналП редварительнойЗаписиСерве р(ПараметрыПостроения, ОбновитьПанельДни, МассивСотрудниковИОбласте й);
    {Обработка.РабочийКалендар ь.Форма.Форма.Форма(215)}: ОбновлениеСтраницыЖурналП редварительнойЗаписи(,Исти на);

    Помогите исправить.
    Установил конф Хеликс Стом: Стоматологическая клиника, редакция 1.0 (1.0.25.2)
    Платформа: 1С:Предприятие 8.3 (8.3.19.1264)
    Спасибо за помощь


Цитата: vitasw от 11 фев 2015, 13:17
Так приведите, что там в строке 200 пишется.

Приведу полностью кусок кода:

// Рассчитывает дату возврата многооборотной тары по условиям соглашения
//
// Параметры:
// Объект - ДокументОбъект - Документ, для которого считается срок возврата тары
// СрокВозвратаМногооборотнойТары - Число - Срок возврата многооборотной тары в днях
// РассчитыватьДатуВозвратаТарыПоКалендарю - Булево - Определяет вариант расчета даты: по всем дня или по основному календарю предприятия
// Календарь - СправочникСсылка.ПроизводственныеКалендари - Определяет календарь возврата тары
//
// Возвращаемое значение:
// Дата
//
Функция РассчитатьДатуВозвратаМногооборотнойТары(Знач Объект,
                                             Знач СрокВозвратаМногооборотнойТары,
                                             Знач РассчитыватьДатуВозвратаТарыПоКалендарю,
                                             Знач Календарь) Экспорт

ОдинДень = 86400;

ДатаОтсчетаВозвратаТары = ОпределитьДатуОтсчетаВозвратаТары(Объект);

Если Не ЗначениеЗаполнено(ДатаОтсчетаВозвратаТары) Тогда
ДатаОтсчетаВозвратаТары = ТекущаяДата();
КонецЕсли;

Если РассчитыватьДатуВозвратаТарыПоКалендарю И ЗначениеЗаполнено(Календарь) Тогда
ДатаВозвратаМногооборотнойТары = КалендарныеГрафики.ПолучитьДатуПоКалендарю(
Календарь,
ДатаОтсчетаВозвратаТары,
СрокВозвратаМногооборотнойТары);
Иначе
ДатаВозвратаМногооборотнойТары = ДатаОтсчетаВозвратаТары + ОдинДень * СрокВозвратаМногооборотнойТары;
КонецЕсли;

Возврат НачалоДня(ДатаВозвратаМногооборотнойТары);

КонецФункции

Строка 200 — это там, где «Если РассчитыватьДатуВозвратаТарыПоКалендарю И ЗначениеЗаполнено(Календарь) Тогда»

апд:
Получается, что РассчитыватьДатуВозвратаТарыПоКалендарю не существует, т.к. использование возвратной тары отключено или Календарь не существует, тогда и результат ЗначениеЗаполнено() = NULL? Так?

Добавлено: 11 фев 2015, 15:26


Удалил «РассчитыватьДатуВозвратаТарыПоКалендарю ИЛИ» и все заработало. Правда, цены почему-то не переносит из заявки в накладную, но это совсем другая история…

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

Быть может, правильнее как-то по другому сделать?

  • Ошибка премьер error compiling movie
  • Ошибка превышено время ожидания от сайта
  • Ошибка превышено время ожидания майнкрафт
  • Ошибка превышено время ожидания advego
  • Ошибка превышения размера при подписи эцп pdf