|
"Преобразование значения к типу Число не может быть выполнено" (вина Роли???) |
☑ |
0
e2e4
11.08.15
✎
19:33
|
Жму кнопку, с которой никаких раньше проблем не было. И прежде, чем процедура этой кнопки начинает выполняться (т.е. даже не могу отладчиком посмотреть, что за беда), получаю сабж.
Откуда вылезло? Все на что грешу - создана была роль (и юзер с этой ролью), но для нее на этот документ (где кнопка) дал полные права...
|
|
1
runoff_runoff
11.08.15
✎
19:39
|
в Отледке поставить Остановка по ошибке..
|
|
2
e2e4
11.08.15
✎
20:08
|
с отладчиком кажется понял - отладка тоже требует соответствующих прав....
Под админской учеткой выполнил трассировку - и в очередной раз сильно удивился. Вот код:
Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ
| МАКСИМУМ(КачествоОбъектаПрокатаСрезПоследних.ИнвНомер) КАК ИнвНомер
|ИЗ
| РегистрСведений.КачествоОбъектаПроката.СрезПоследних(, ) КАК КачествоОбъектаПрокатаСрезПоследних";
РезультатЗапроса = Запрос.Выполнить();
ВыборкаДетальныеЗаписи = РезультатЗапроса.Выбрать();
Если ВыборкаДетальныеЗаписи.Следующий() Тогда
Результат = ВыборкаДетальныеЗаписи.ИнвНомер;
Иначе
Результат = "00000";
КонецЕсли;
Возврат Результат;
...смысл простой - тупо берем МАКСИМУМ от измерения РС (строкового типа).
Сейчас этот РС пустой. Поэтому, как я понимаю, ВыборкаДетальныеЗаписи.Следующий() = Ложь, но в табло вижу Истина! При этом - выполнение все же идет в ветку Иначе!! А дальше - вообще потеря дара речи: жму еще раз кнопку (движения РС еще не записаны - он все еще пустой!), теперь выполнение идет в ветку Если!!! Причем ВыборкаДетальныеЗаписи.ИнвНомер = Null (отсюда в дальнейшем и сабж)... "Где логика, где разум?!" (с)
|
|
3
e2e4
11.08.15
✎
20:15
|
(2) я балдею.... оказывается, если ОТЛАДЧИКОМ ПОСМОТРЕТЬ значение выражения "ВыборкаДетальныеЗаписи.Следующий()" ... Да, вы правильно поняли - происходит ПЕРЕХОД к следующей записи выборки. Т.е., когда я смотрю это выражение отладчиком - попадаю в Иначе. Если не смотрю - в Если.
|
|
4
Defender aka LINN
11.08.15
✎
20:16
|
(3) В первый раз отладчик запустил, что ли?
|
|
5
e2e4
11.08.15
✎
20:22
|
(4) а что, к этому можно привыкнуть? не, я не ругатель 1С, но.......
|
|
6
ДенисЧ
11.08.15
✎
20:24
|
(5) Это, вообще-то, в любом языке так.
Ну, кроме тех, у из отладчиков только Сообщить() или аналог
|
|
7
e2e4
11.08.15
✎
20:35
|
(6) щас некогда, но не поленюсь, сделаю на днях тестик с ADODB.Recordset в Аксесе...чо-то сильно сомневаюсь, что так в любом языке.
|
|
8
ДенисЧ
11.08.15
✎
20:58
|
(7) То есть если ты вычислишь в отладчике rs.MoveNext(), то у тебя оно на следующую запись не перейдёт?
Не рановато ли начал? Сегодня только вторник...
|
|
Кaк может человек ожидaть, что его мольбaм о снисхождении ответит тот, кто превыше, когдa сaм он откaзывaет в милосердии тем, кто ниже его? Петр Трубецкой