Форум 1С
Программистам, бухгалтерам, администраторам, пользователям
Задай вопрос - получи решение проблемы
25 ноя 2024, 11:59

Посчитать количество дней между датами

Автор Елизавета, 28 мая 2018, 22:55

0 Пользователей и 1 гость просматривают эту тему.

Елизавета

Добрый день! Пытаюсь посчитать количество дней между датами. Код хорошо работал на обычных реквизитах, но после того, как я добавила табличную часть, скопировала реквизиты для табличной части и удалила старые реквизиты, программа перестала считать дни в таблице. В чем может быть проблема? Рисунки прилагаю.

&НаКлиенте
Процедура ДатаОкончанияПриИзменении(Элемент)
РасчетДней(Объект.Дней)
КонецПроцедуры


Процедура РасчетДней(Дней)   

   Дней = Объект.Дней;
   ДатаНачала = Объект.ДатаНачала;
   ДатаОкончания = Объект.ДатаОкончания;
   
   Дней = (НачалоДня(ДатаОкончания) - НачалоДня(ДатаНачала))/86400;
   
КонецПроцедуры

ls600

Посмотрите событие на дату окончания

Процедура ТабличнаяЧастьДатаОкончанияПриИзменении (Элемент) // Ваша Табличная часть
РасчетДней(Объект.Дней)
КонецПроцедуры;

Елизавета

Цитата: ls600 от 29 мая 2018, 06:44
Посмотрите событие на дату окончания

Процедура ТабличнаяЧастьДатаОкончанияПриИзменении (Элемент) // Ваша Табличная часть
РасчетДней(Объект.Дней)
КонецПроцедуры;


Доброе утро! Я исправила код и переназначила событие на ДатуОкончания.

Процедура ТабличнаяЧасть1ДатаОкончанияПриИзменении (Элемент)
   РасчетДней(Объект.ТабличнаяЧасть1.Дней)
КонецПроцедуры

Процедура РасчетДней(Дней)
   Дней = Объект.ТабличнаяЧасть1.Дней;
   ДатаНачала = Объект.ТабличнаяЧасть1.ДатаНачала;
   ДатаОкончания = Объект.ТабличнаяЧасть1.ДатаОкончания;
   
   Дней = (НачалоДня(ДатаОкончания) - НачалоДня(ДатаНачала))/86400;
   
КонецПроцедуры

Не работает. Не пойму, что я не так делаю.
Добавлено: 29 мая 2018, 07:50


Цитата: Елизавета от 28 мая 2018, 22:55
Добрый день! Пытаюсь посчитать количество дней между датами. Код хорошо работал на обычных реквизитах, но после того, как я добавила табличную часть, скопировала реквизиты для табличной части и удалила старые реквизиты, программа перестала считать дни в таблице. В чем может быть проблема? Рисунки прилагаю.

&НаКлиенте
Процедура ДатаОкончанияПриИзменении(Элемент)
РасчетДней(Объект.Дней)
КонецПроцедуры


Процедура РасчетДней(Дней)   

   Дней = Объект.Дней;
   ДатаНачала = Объект.ДатаНачала;
   ДатаОкончания = Объект.ДатаОкончания;
   
   Дней = (НачалоДня(ДатаОкончания) - НачалоДня(ДатаНачала))/86400;
   
КонецПроцедуры


Т.е. Раньше код считал значение для поля обычного реквизита, я попыталась его исправить так, чтобы считалось значение в том же поле табличной части (заменила обычные реквизиты на табличную часть). И, видимо, что-то не так сделала. В чем может быть ошибка?

alex0402

Цитата: Елизавета от 29 мая 2018, 07:23РасчетДней(Объект.ТабличнаяЧасть1.Дней)

Нужно РасчетДней(Элементы.ТабличнаяЧасть1.ТекущиеДанные.Дней).

и зачем серверный вызов? можно все на клиенте сделать.
Спасибо за Сказать спасибо

Елизавета

Цитата: alex0402 от 29 мая 2018, 08:12
Цитата: Елизавета от 29 мая 2018, 07:23РасчетДней(Объект.ТабличнаяЧасть1.Дней)

Нужно РасчетДней(Элементы.ТабличнаяЧасть1.ТекущиеДанные.Дней).

и зачем серверный вызов? можно все на клиенте сделать.

Спасибо! А текущие данные везде дописывать при обращении к объектам? Или изменить только так, где Вы показали? (Извиняюсь за глупый вопрос)

Похожие темы (5)

Рейтинг@Mail.ru

Поиск