Имя: Пароль:
1C
1С v8
Необходимо в элемент справочника, вывести оставшееся количество дней до определенной даты.
,
0 Prototype
 
28.01.17
12:09
Всем привет. Прошу помощи.

Есть задача

Необходимо в элемент справочника, вывести оставшееся количество дней до определенной даты.

Использую процедуру ПриИзменении

Объект.ОсталосьДней = (НачалоДня(ТекущаяДата())-НачалоДня(Объект.ДатаСледующегоВыезда))/86400;

Все отлично, в поле "Осталось дней" я получаю нужное мне количество дней, пусть и со знаком минус.

Однако на следующий день в поле остается то же самое значение. Как сделать так, чтобы значение в справочнике менялось автоматически?

P.S. Только учусь
1 zak555
 
28.01.17
12:12
не храни в справочнике информации, которому постоянно надо будет перезаписывать
2 Фрэнки
 
28.01.17
12:14
Очень может быть, что смысл задачи в том и заключается, чтоб показать бесполезность хранения в реквизитах динамически изменяемых значений. Можно уточнить постановку или текст задания перечитать и сделать вывод или на форму элемента с расчетным по формуле значением или в колонку поля списка.
3 Prototype
 
28.01.17
12:15
(1) А какой объект конфигурации лучше подойдет для таких целей? Пока что знаком только со справочниками, документами и отчетами.
4 zak555
 
28.01.17
12:15
(2) туда надо будет выводит инфу из связанного РС
5 zak555
 
28.01.17
12:15
(3) предвижу, что Регистр Сведений

но ты сформулируй точно задачу
6 Фрэнки
 
28.01.17
12:16
(3) а какие цели? показать пользователю по текущему элементу, вывести в отчет по списку элементов, определить время события в какой-то процедуре?
7 Prototype
 
28.01.17
12:19
(5)

Задача такая:

Условие 1: Есть дата следующего выезда из страны
Условие 2: Есть дата текущая

+ФИО сотрудника +Комментарий

Все эта композиция нужна для того чтобы фиксировать сколько кому осталось до выезда из страны для обновления визы.

Необходимо отобразить пользователю количество оставшихся дней до даты выезда.
8 Фрэнки
 
28.01.17
12:22
(7) ну т.е. просто отобразить. не надо записывать это в объект, а отобразить или на форме элемента, или на форме списка, или "отобразить" в отчет.
9 Garykom
 
гуру
28.01.17
12:23
(8)+ банально в "ПриОткрытии" и реквизит формы
10 Prototype
 
28.01.17
12:31
(8) Пишу так:

&НаКлиенте
Процедура ПриОткрытии(Отказ)
    Элементы.ОсталосьДней = (НачалоДня(ТекущаяДата())-НачалоДня(Объект.ДатаСледующегоВыезда))/86400;
КонецПроцедуры

Получаю:

{Справочник.Визы.Форма.ФормаЭлемента.Форма(4)}: Поле объекта недоступно для записи (ОсталосьДней)
    Элементы.ОсталосьДней = (НачалоДня(ТекущаяДата())-НачалоДня(Объект.ДатаСледующегоВыезда))/86400;
11 Prototype
 
28.01.17
12:32
Как правильно произвести отображение? )
12 nordbox
 
28.01.17
12:34
(10) Ну так ты определи это поле на форме то
13 nordbox
 
28.01.17
12:36
Элементы, это значит что это что то на форме, это или поле ввода или текст с идентификатором ОсталосьДней
14 Prototype
 
28.01.17
12:46
(13) Элемент есть, создан соответствующий реквизит и отображается на форме как целое число. Насколько я знаю, записывать напрямую в элементы формы нельзя. Тогда как, без записи в объект, отобразить значение выражения в элементе формы?
15 nordbox
 
28.01.17
12:49
Сделай на форме реквизит Текст и присвой ему идентификатор ОсталосьДней и будет тебе счастье
16 nordbox
 
28.01.17
12:52
Форма обычная или управляемая?
17 Prototype
 
28.01.17
12:53
(16) Управляемая
18 EvgeniuXP
 
28.01.17
13:05
Твоя задача похожа на отображение возраста - ведь завтра может настать день когда изменится возраст у человека :)
19 nordbox
 
28.01.17
13:14
Создай на форме Декорация Текст
Имя: ОсталосьДней
Заголовок: Убери все что там есть
и обращайся к нему
ЭтаФорма.Элементы.ОсталосьДней.Заголовок="Привет";
20 Prototype
 
28.01.17
13:32
(19) Блин так и сделал))

Элементы.ОсталосьДней.Заголовок = "Осталось дней:" + " " + (НачалоДня(ТекущаяДата())-НачалоДня(Объект.ДатаСледующегоВыезда))/86400;

Спасибо за ответ. Сейчас надо вывести эту же информацию на форму списка. Буду разбираться!

Спасибо всем кто помогал :)
Кaк может человек ожидaть, что его мольбaм о снисхождении ответит тот, кто превыше, когдa сaм он откaзывaет в милосердии тем, кто ниже его? Петр Трубецкой