|   |   | 
| 
 | Помогите найти ошибку | ☑ | ||
|---|---|---|---|---|
| 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 | 
        Спасибо всем, кто помог, все работает как и написано, Процедура ПриНачалеРедактирования, вот и значение заполняется только при начале редактирования а не при добавлении строки)     | 
| Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |