|
Помогите найти ошибку | ☑ | ||
---|---|---|---|---|
0
prilforreal
10.07.17
✎
15:07
|
Добрый день, помогите обнаружить и поправить ошибку...
В форме документа в табличной части добавил колонку "срок" заполняется ячейка в колонке автоматически, в нее записывается дата и время, в зависимости от текущей. Вызываю процедуру автоподбора значения для текущей записи в кнопке, заполняющей остальные поля из файла, приложение начинает ругаться на мою процедуру, оставляя поле пустым. Ошибка :{Документ.ДилЗаказ.Форма.Форма1.Форма(1687)}: Значение не является значением объектного типа (Срок) ЭлементыФормы.ТабличноеПоле1.ТекущиеДанные.Срок = КонецДня(ТекущаяДата()) Листинг процедуры и той в которой она вызывается: Процедура ПривязатьНовыйНажатие(Элемент) ПривязНов(); ТабличноеПоле1ПриНачалеРедактирования("",ИСТИНА,ЛОЖЬ); КонецПроцедуры Процедура ТабличноеПоле1ПриНачалеРедактирования(Элемент, НоваяСтрока,Копирование) Если НоваяСтрока И НЕ Копирование Тогда Если ТекущаяДата() + 60*60*6 < КонецДня(ТекущаяДата()) Тогда ЭлементыФормы.ТабличноеПоле1.ТекущиеДанные.Срок = КонецДня(ТекущаяДата()); КонецЕсли; Если ТекущаяДата() + 60*60*6 > КонецДня(ТекущаяДата()) Тогда ЭлементыФормы.ТабличноеПоле1.ТекущиеДанные.Срок = КонецДня(ТекущаяДата())+60*60*10; КонецЕсли; КонецЕсли; КонецПроцедуры |
|||
1
Ёпрст
10.07.17
✎
15:12
|
Может того, срок сделаешь реквизитом табличной части ?
|
|||
2
Beduin
10.07.17
✎
15:12
|
(0) У тебя минимум три возможных варианта не исполнения условий в процедуре ТабличноеПоле1ПриНачалеРедактирования.
|
|||
3
Ёпрст
10.07.17
✎
15:13
|
с типом дата.
|
|||
4
sapphire
10.07.17
✎
15:55
|
(1) +100500.
Или сделать копию табличной части реквизитом формы. |
|||
5
prilforreal
10.07.17
✎
16:12
|
Ёпрст Конечно же срок- реквизит табличной части) Проблема в том, что просто при добавлении строки ячейка заполняется необходимым значением, при добавлении строки из процедуры ПривязатьНовыйНажатие всплывает ошибка.
|
|||
6
prilforreal
10.07.17
✎
16:15
|
sapphire Условия исполняются, но при вызове процедуры ТабличноеПоле1ПриНачалеРедактирования из процедуры ПривязатьНовыйНажатие(Элемент) выводит ошибку и ячейка остается пустой.
|
|||
7
Alexandr_U1982
10.07.17
✎
16:16
|
Проверь отладчиком: Есть ли в свойстве "ЭлементыФормы.ТабличноеПоле1.ТекущиеДанные" поле "Срок".
|
|||
8
Alexandr_U1982
10.07.17
✎
16:19
|
Вместо:
Если ТекущаяДата() + 60*60*6 < КонецДня(ТекущаяДата()) Тогда ЭлементыФормы.ТабличноеПоле1.ТекущиеДанные.Срок = КонецДня(ТекущаяДата()); КонецЕсли; Если ТекущаяДата() + 60*60*6 > КонецДня(ТекущаяДата()) Тогда ЭлементыФормы.ТабличноеПоле1.ТекущиеДанные.Срок = КонецДня(ТекущаяДата())+60*60*10; КонецЕсли; Лучше написать: Если ТекущаяДата() + 60*60*6 < КонецДня(ТекущаяДата()) Тогда ЭлементыФормы.ТабличноеПоле1.ТекущиеДанные.Срок = КонецДня(ТекущаяДата()); ИначеЕсли ТекущаяДата() + 60*60*6 > КонецДня(ТекущаяДата()) Тогда ЭлементыФормы.ТабличноеПоле1.ТекущиеДанные.Срок = КонецДня(ТекущаяДата())+60*60*10; КонецЕсли; Вопрос на засыпку: А что будет при условии, "ТекущаяДата() + 60*60*6 = КонецДня(ТекущаяДата())"? |
|||
9
sapphire
10.07.17
✎
16:23
|
(6) А если ЭлементыФормы.ТабличноеПоле1.ТекущиеДанные=неопределено?
Например, нет текущей строки. |
|||
10
prilforreal
10.07.17
✎
16:47
|
Alexandr_U1982 откроются врата в ад, сатана поглотит все базы 1С наступит вечная ночь?
sapphire Тогда ни какое поле не будет заполняться. |
|||
11
prilforreal
10.07.17
✎
17:00
|
Замечено, в отладчике при двойном клике по пустой ячейке срок значение заполняется.
|
|||
12
prilforreal
10.07.17
✎
17:01
|
Alexandr_U1982 Спасибо, с иначе конечно намного удобнее, сам думал об этом но не был уверен в синтаксисе)))
|
|||
13
craxx
10.07.17
✎
17:01
|
(0) Срок не является реквизитом табличной части. Это просто колонка, не более
|
|||
14
craxx
10.07.17
✎
17:03
|
(13) Проверь внимательно что в этой колонке в Данные записано
|
|||
15
prilforreal
10.07.17
✎
17:10
|
craxx В Данных выбран реквизит табличной части срок)
|
|||
16
sapphire
10.07.17
✎
17:34
|
(15) Посмотри, стоит ли галка "Использовать всегда" у реквизита табличной части "Срок".
|
|||
17
Alexandr_U1982
11.07.17
✎
07:45
|
(10) Какой нафиг сатана? У тебя условия не отрабатывают ситуацию со знаком "="
|
|||
18
1dvd
11.07.17
✎
07:50
|
(15) тип какой у реквизита?
|
|||
19
prilforreal
11.07.17
✎
08:02
|
||||
20
prilforreal
11.07.17
✎
08:05
|
sapphire не смог найти такого свойства.
|
|||
21
DrZombi
гуру
11.07.17
✎
08:22
|
(17) Да и условия бредовые :)
|
|||
22
DrZombi
гуру
11.07.17
✎
08:22
|
(19) Пиши лучше с номерами, а то не поймешь, на что ты там отвечаешь :)
|
|||
23
youalex
11.07.17
✎
08:23
|
Включи Отладка/Остановка по ошибке..
Когда вывалится ошибка, смотри в отладчике что у тебя в ЭлементыФормы.ТабличноеПоле1.ТекущиеДанные |
|||
24
DrZombi
гуру
11.07.17
✎
08:25
|
(23) = Неопределено, не всегда текущие данные текущие :)
|
|||
25
youalex
11.07.17
✎
08:28
|
(24) ну, если не врет про свойство "данные" - только оно)
|
|||
26
prilforreal
11.07.17
✎
09:35
|
(23) Табличное поле пустое, вываливается ошибка "Ошибка времени выполнения: {Документ.ДилЗаказ.Форма.Форма1.Форма(1685)} Значение не является значением объектного типа (Срок) в модуле Документ.ДилЗаказ.Форма.Форма1.Форма, строка 1685.
|
|||
27
prilforreal
11.07.17
✎
09:41
|
(24) Подскажите, каким образом мне приравнять Неопределено?
Добавил Условие: ИначеЕсли ЭлементыФормы.ТабличноеПоле1.ТекущиеДанные.Срок = Неопределено Тогда КонецЕсли; Но без изменений, та же ошибка всплывает. |
|||
28
Ёпрст
11.07.17
✎
09:41
|
(26) да ё..
Вставь ты ужо в свой код условие: СтрокаТабличнойЧасти = ЭлементыФормы.ТабличноеПоле1.ТекущиеДанные; Если СтрокаТабличнойЧасти = Неопределено Тогда Возврат; КонецЕсли; |
|||
29
aleks_default
11.07.17
✎
09:50
|
отладкофобия в запущенной стадии
|
|||
30
prilforreal
11.07.17
✎
10:00
|
(28) Спасибо, ошибка пропала, но поле почему то при вызове процедуры не заполняется, данные в нем заполняются только после двойного клика по ячейке.
|
|||
31
Ёпрст
11.07.17
✎
10:04
|
(30) как написал, так и работает.
Нам отсюда не видно, в какой момент и что ты делаешь |
|||
32
prilforreal
11.07.17
✎
15:49
|
Спасибо всем, кто помог, все работает как и написано, Процедура ПриНачалеРедактирования, вот и значение заполняется только при начале редактирования а не при добавлении строки)
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |