#0
by Eka-dobrik
Помогите разобраться. Есть Фунция в модуле приложения, к которой обращаются отчеты при открытии ("Функция1"). Эта "Функция1" обращается к другой функции, все в том же модуле, которая содержит запрос ("Функция2"). По порядку: Функция1 при открытии какого-либо отчета проверяет (обращяясь при этом к Функции2), есть ли у данного пользователя права для открытия данного отчета (она работает), т.е. если доступа нет - отчет не открывается, и выдает сообщение. А Функция2 как раз таки в своем запросе проверяет из справочника Пользователей, может ли данный пользователь открывать данный отчет. Запрос работает, а в случае, если ЕстьДоступ (реквизит справочника Пользователей, тип булево) = истина, то, при открытии отчета он говорит, что "Преобразование значения к типу Булево не может быть выполнено", ссылаясь на строку Возврат(Выборка.ЕстьДоступ); Таки я не могу понять, почему так оно происходит?
#3
by Hitcher
Вероятнее всего в выборке значение NULL, которое невозможно првести к булево. В отладчик умеешь заглядывать?
#4
by Defender aka LINN
Скажи, тебе каое именно слово непонятно - "преобразование", "не может", "тип" или "Булево"?
#7
by Defender aka LINN
Да будет тебе известно, преобразование случается не только принудительно. И вообще, ты про отладчик когда-нибудь слышал?
#8
by Eka-dobrik
Вот сам запрос, я все проверяла, только последняя строчка не работает Объясните тогда, пожалуйста, почему значение может быть "неопределено" или "null"?
#10
by Eka-dobrik
Уточню еще, что ВидыОтчетовДляДоступа - это табличная часть справочника Пользователи, с реквизитом типа булево ЕстьДоступ. Главное, если его нет - все работает, как надо, а если он есть - не работает нифига...
#11
by ЛНТ
ну объясни мне, где в этой строчке Возврат(Выборка.ЕстьДоступ); непринудительное преобразование типов отладчик - да, слышал такое слово
#13
by Eka-dobrik
ЛНТ, ну пусть слышала... подскажите пожалуйста, как "принудить" его преобразовать? ((
#20
by Eka-dobrik
ЛНТ, а давай с тобой все по порядочку? Есть процедура (во всех отчетах, сейчас рассмотрим акт сверки): она обращается к функции из модуля приложения: а эта обращается к следующей (которая и не работает), код выше... может ты мне поможешь?
#25
by Eka-dobrik
{Отчет.АктСверки.Форма.Форма}: Преобразование значения к типу Булево не может быть выполнено Ошибку он мне показывает в строке с обращением к Функции глПередОткрытиемОтчета(прОбъект), а эта функция ссылается на Функцию ЕстьДоступПоВидуОтчета(ВидОтчета)
#27
by Stepa86
вот в этой строчке надо выделить (глПередОткрытиемОтчета(ЭтотОбъект)) и нажать Shift + F9, и то что получиться показать нам
#34
by hhhh
скорее всего она ругается на группы справочника "Пользователи". Они ведь тоже попадают в выборку. Попробуй в ГДЕ добавить
#36
by vde69
Учись правильному стилю програмирования: всегда делай возвраты в функции только через переменные, и всегда предусматиривй начальную инициализацию этой переменной, и не делый возврата значений в нутри кода
#41
by vde69
ты не глумись ))) я дело говорю... подумай что будет если в выборке не будет ни одной записи... и в моем случе не вызовет ошибки исполнения :)) конечно код выглядет коряво, и надо делать предворительную проверку ... но учитывая уровень САБЖ-а я дал просто рабочий код (я пытался ранее наставить на этот путь)
#42
by КонецЕсли
Запрос.Текст = "ВЫБРАТЬ ПЕРВЫЕ 1 возврат НЕ (Выборка.Количество=0 или Не Выборка[0].ЕстьДоступ); :)))))))
#43
by vde69
сново могу ошибку подсказать: что будет если поле "ЕстьДоступ" совсем недавно добавлено в ТЧ справочника "Пользователи", то есть есть строки ТЧ в которых это поле не заполнено???? У тебя будет вот тут ошибка исполнения: Кроме того твоя конструкция "возврат НЕ (Выборка.Количество=0 или Не Выборка[0].ЕстьДоступ)" - тоже выглядит нелепо и не читаебильно...
#44
by КонецЕсли
по первой части: Если булевое поле совсем недавно добавлено, то оно инициализируется в "ложь" по умолчанию. по второй части: Это всего лишь антипод вашего лепого и читабельного: Если Результат = Истина Тогда Результат = Истина; з.ы. не надо быть таким серьезным :)
Тэги:
Ответить:
Комментарии доступны только авторизированным пользователям
Похожие вопросы 1С
- Преобразование значения к типу Булево не может быть выполнено
- УТ 10.3.3.3 Преобразование значения к типу Булево не может быть выполнено
- Преобразование значения к типу Число не может быть выполнено
- Преобразование значения к типу Булево не может быть выполнено
- Преобразование значения к типу Булево не может быть выполнено Бух (1.6.25.5)
- Преобразование значения к типу Булево не может быть выполнено.
- Преобразование значения к типу Булево не может быть выполнено
- Преобразование значения к типу Булево не может быть выполнено
- преобразование значения к типу число не может быть выполнено
- Преобразование значения к типу Дата не может быть выполнено
- Преобразование значения к типу Булево не может быть выполнено
- Преобразование значения к типу Число не может быть выполнено
В этой группе 1С
- Хранилище конфигурации в клиент-серверном варианте.
- v7: Назначение вида субконто.
- Почему могут пропадать штрих-кода в 1С.
- Не списывается номенклатура со склада
- Как сравнить два элемента справочника?
- v7: Телепат, Intellisence и AddIn.XMLParser
- Попытка передачи с клиента на сервер мутабельного значения
- При перегрузке из 1С:8 в 1С:7.7 надо назначить тип реквизиту с неопределенным типом
- Обновление Управление Автотранспортом 8.0
- при смене даты документы - Не уникальный номер документа
- Преобразовать строку в число
- Получить из списка N чисел, сумму максимально приближенную к необх.
- Была обработина под 77, которая красиво из mxl делала xls нужна под 8.0
- Компоновщик данных - выгрузить результат в Excel
- УПП:РеализацияТоваровУслуг, Процедура ПриУстановкеНовогоНомера(СтандартнаяОбработка,
- Есть ли для запросов какой нибутьаналог функции Лев()?
- Как сравнить табличные части документов и добавить в первый - недостающие позиции.
- счет 43 отрицательные суммы
- Списание материалов из эксплуатации
- Как подключить компоненту склонения фамилий namedecl.dll