|
Проверка на неравенство нулю | ☑ | ||
---|---|---|---|---|
0
Singenor
29.05.12
✎
15:18
|
Если ЗначениеЗаполнено(ЭтотОбъект.ЭтапПроекта) И ЭтотОбъект.Этап.ТрудозатратыПоНорме <> 0 Тогда
СтавкаНаЭтапе = ЭтотОбъект.ЭтапПроекта.СуммаЭтапа / ЭтотОбъект.ЭтапПроекта.ТрудозатратыПоНорме; Иначе Сообщить("Трудозатраты по норме не могут быть равными 0", Отказ); Отказ = Истина; КонецЕсли; Для каждого ТекСтрока Из РаспределениеПоСотрудникам Цикл ТекСтрока.КНачислению = СтавкаНаЭтапе * Текстрока.КНачислениюСотрудникуЧасов; КонецЦикла; Данный код мне выдает ошибку: Документ.ЗаявкаНаНачисление.Форма.ФормаДокумента(688)}: Преобразование значения к типу Число не может быть выполнено ТекСтрока.КНачислению = СтавкаНаЭтапе * Текстрока.КНачислениюСотрудникуЧасов; как мне обойти ее?( |
|||
1
Любопытная
29.05.12
✎
15:19
|
Выяснить какая из переменных содержит не число и исправить ситуацию
|
|||
2
Kreont
29.05.12
✎
15:20
|
Прверь отладчиком что здесь, типы какие:
СтавкаНаЭтапе Текстрока.КНачислениюСотрудникуЧасов |
|||
3
Singenor
29.05.12
✎
15:20
|
у них у обеих тип число
|
|||
4
Kreont
29.05.12
✎
15:21
|
визуально определил или как?
|
|||
5
Buster007
29.05.12
✎
15:21
|
ЭтотОбъект.Этап.ТрудозатратыПоНорме
|
|||
6
Buster007
29.05.12
✎
15:21
|
+(5) а здесь что?
|
|||
7
jumper
29.05.12
✎
15:21
|
(3) в отладчике какие значения?
|
|||
8
Любопытная
29.05.12
✎
15:21
|
А ТекСтрока.КНачислению какой тип имеет?
|
|||
9
mikecool
29.05.12
✎
15:22
|
ЭтотОбъект.Этап = пустое значение
|
|||
10
Singenor
29.05.12
✎
15:26
|
Ставка на этапе неопределено, а как ее сделать типом число?
|
|||
11
Kreont
29.05.12
✎
15:26
|
Если НЕ ТипЗнч(Текстрока.КНачислениюСотрудникуЧасов) = ТипЗнч("Число") Тогда
Сообщить("..."); и т.д. в цикле |
|||
12
Kreont
29.05.12
✎
15:27
|
(10) :)
и что должно быть результатом неопределено*число? |
|||
13
Любопытная
29.05.12
✎
15:27
|
(10) засунуть этот цикл в проверку
|
|||
14
Singenor
29.05.12
✎
15:27
|
да уж, в том то и проблема, что ничего*
|
|||
15
Любопытная
29.05.12
✎
15:27
|
Если ЗначениеЗаполнено(ЭтотОбъект.ЭтапПроекта) И ЭтотОбъект.Этап.ТрудозатратыПоНорме <> 0 Тогда
СтавкаНаЭтапе = ЭтотОбъект.ЭтапПроекта.СуммаЭтапа / ЭтотОбъект.ЭтапПроекта.ТрудозатратыПоНорме; Для каждого ТекСтрока Из РаспределениеПоСотрудникам Цикл ТекСтрока.КНачислению = СтавкаНаЭтапе * Текстрока.КНачислениюСотрудникуЧасов; КонецЦикла; Иначе Сообщить("Трудозатраты по норме не могут быть равными 0", Отказ); Отказ = Истина; КонецЕсли; |
|||
16
Kreont
29.05.12
✎
15:28
|
тогда типа (11) + сообщение что именно не заполнено и пропускай из обработки
|
|||
17
Ненавижу 1С
гуру
29.05.12
✎
15:31
|
телепатирую, там NULL
|
|||
18
Singenor
29.05.12
✎
15:45
|
ну почти так, только теперь Вылезает фраза :
{Документ.ЗаявкаНаНачисление.Форма.ФормаДокумента(1104)}: Деление на 0 СтавкаНаЭтапе = ЭтотОбъект.ЭтапПроекта.СуммаЭтапа / ЭтотОбъект.ЭтапПроекта.ТрудозатратыПоНорме; А мне нужно, чтобы она в нижнем окне ошибок, где сообщить выдается вылезала, как так сделать? или может установить в справочнике, откуда берутся данные, что Трудозатраты не могут быть равны нулю? |
|||
19
Любопытная
29.05.12
✎
15:47
|
(18) почти так это как?
|
|||
20
Singenor
29.05.12
✎
15:52
|
и еще один вопрос, как сделать, чтобы пользователь не смог снять установленный отбор?
|
|||
21
Fish
29.05.12
✎
15:52
|
(18) А для тебя явилось открытием, что на 0 делить нельзя? Жесть какая :)))
Вообще-то, если делишь на какую-то переменную, которая может принимать нулевое значение, то принято проверку на 0 делать. |
|||
22
Singenor
29.05.12
✎
16:19
|
ФормаВыбораЗадача = Справочники.ЗадачиИсполнителей.ПолучитьФормуВыбора(, Ссылка);
ФормаВыбораЗадача.Отбор.Владелец.Доступность = Ложь; ФормаВыбораЗадача.Отбор.Исполнитель.Доступность = Ложь; То есть по владельцу и по исполнителю выбор отбора должен быть недоступен так? а мне выдается ошибка про то, что Доступность не обнаружено |
|||
23
Singenor
29.05.12
✎
16:22
|
(19) а можно ли сделать, что если Ставка = 0, то и Этап тогда не выбирался вообще?
|
|||
24
Любопытная
29.05.12
✎
16:23
|
(23) сделать можно все, что душа пожелает.
|
|||
25
Singenor
29.05.12
✎
16:23
|
(24)
подскажите как ;) |
|||
26
Любопытная
29.05.12
✎
16:25
|
Если ЗначениеЗаполнено(ЭтотОбъект.ЭтапПроекта) И ЭтотОбъект.ЭтапПроекта.ТрудозатратыПоНорме <> 0 Тогда
СтавкаНаЭтапе = ЭтотОбъект.ЭтапПроекта.СуммаЭтапа / ЭтотОбъект.ЭтапПроекта.ТрудозатратыПоНорме; Для каждого ТекСтрока Из РаспределениеПоСотрудникам Цикл ТекСтрока.КНачислению = СтавкаНаЭтапе * Текстрока.КНачислениюСотрудникуЧасов; КонецЦикла; Иначе Сообщить("Трудозатраты по норме не могут быть равными 0", Отказ); Отказ = Истина; КонецЕсли; Думаю так |
|||
27
Singenor
29.05.12
✎
16:26
|
(26) это тоже самое, что было выше), Этап выбирается, но не считается ТЧ, как и нужно + выдается сообщение что трудозатраты равны нулю, но мне нужно, чтобы даже этап тогда не выбирался
|
|||
28
Любопытная
29.05.12
✎
16:28
|
(27) ну я же не знаю, что у тебя там и где.
|
|||
29
Любопытная
29.05.12
✎
16:29
|
Поставь вначале проверку на Ставка = 0 и делай все, что хочешь
|
|||
30
Singenor
29.05.12
✎
16:30
|
(29) -(22) а как с отбором сделать?
|
|||
31
Singenor
29.05.12
✎
16:58
|
сделал, с делением на 0, все круто, помогите теперь с отбором)
|
|||
32
Kreont
29.05.12
✎
18:04
|
ФормаВыбораЗадача.НастройкаОтбора.Владелец.Доступность = Ложь;
|
|||
33
Singenor
30.05.12
✎
10:51
|
Поле объекта не обнаружено (НастройкаОтбора)
ФормаВыбораЗадача.НастройкаОтбора.Владелец.Доступность = Ложь; |
|||
34
Kreont
30.05.12
✎
11:06
|
ФормаВыбораЗадача.ХХХХХХСписок.НастройкаОтбора.Владелец.Доступность = Ложь;
вместо х = документ или справочник или ..хз что еще ) |
|||
35
hhhh
30.05.12
✎
11:12
|
(33) ЭлементыФормы надо
ФормаВыбораЗадача.ЭлементыФормы.<ИмяТвоегоТабличногоПоля>.НастройкаОтбора.Владелец.Доступность = Ложь; |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |