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

Анализ дат и вывод в числовом формате.

Автор deks500, 04 июн 2012, 17:26

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

deks500

Здравствуйте господа! Суть в том что я создаю базу под названием "Отель" и в ней есть 2 документа:
Заселение
Квитанция
При заселении указываем данные приезжего в том числе дату его заселения.(Допустим Попов Сергей заселился 5 сентября)
Затем он решает съехать 7 сентября, тем самым мы выписываем ему Квитанцию- в этом документе есть реквизит Дата выселения и Количество прожитых дней. Тобишь в Дате выселения 
мы ставим 7 сентября, а в реквизите Количество прожитых дней должно автоматом подставиться цифра 2!
Вопрос в том, как это все сделать?чтобы он сравнивал 2 даты разных документов, затем преобразовал это дело в число и вывел в реквизит Количество прожитых дней.
дата учитывается через регистр сведений как и наш постоялец

cska-fanat-kz

Дата2 - Дата1 = КоличествоСекундМеждуДатами;

Т.е. можно это число разделить на 24*60*60 и получить количество дней...

Проще в запросе
РАЗНОСТЬДАТ(Дата1, Дата2, ДЕНЬ) КАК КоличествоДнейМеждуДатами
Получил помощь - скажи СПАСИБО.
Разобрался сам - расскажи другим.

deks500

Цитата: cska-fanat-kz от 04 июн 2012, 17:38
Дата2 - Дата1 = КоличествоСекундМеждуДатами;

Т.е. можно это число разделить на 24*60*60 и получить количество дней...

Проще в запросе
РАЗНОСТЬДАТ(Дата1, Дата2, ДЕНЬ) КАК КоличествоДнейМеждуДатами
Что-то такое я пытался сделать, завтра базу себе притараню - посмотрим.)

deks500

Вот функция....и что-то тут не так!
Функция КолличествоДней() Экспорт
   Запрос = Новый Запрос;
   Запрос.Текст = "ВЫБРАТЬ
                  |   РасселениеСтудентовСрезПоследних.ДатаЗаселения,
                  |   Заселение.ДатаЗаселения КАК ДатаЗаселения1
                  |ИЗ
                  |   РегистрСведений.РасселениеСтудентов.СрезПоследних КАК РасселениеСтудентовСрезПоследних
                  |      ЛЕВОЕ СОЕДИНЕНИЕ Документ.Заселение КАК Заселение
                  |      ПО РасселениеСтудентовСрезПоследних.Регистратор = Заселение.Ссылка"  ;
               
   Запрос.УстановитьПараметр("КолличествоДней", Объект.КолличествоПрожитыхДней);

   ВЗ = Запрос.Выполнить().Выбрать();
   РЗ = Запрос.Выполнить();
   Если РЗ.Пустой() Тогда
         Сообщить("Не прошел день");
   
         Объект.КолличествоПрожитыхДней = ПустаяСтрока("");
         
      КонецЕсли;
            

               
Конецфункции

cska-fanat-kz

Очередная щука, вызвавшаяся ловить мышей... ((
Смотрите, как бы хвост не откусили...

Может лучше ловлю мышей поручить коту?
Получил помощь - скажи СПАСИБО.
Разобрался сам - расскажи другим.

deks500

Цитата: cska-fanat-kz от 07 июн 2012, 08:02
Очередная щука, вызвавшаяся ловить мышей... ((
Смотрите, как бы хвост не откусили...

Может лучше ловлю мышей поручить коту?

Спасибо капитан, я сам знаю что не умею писать процедуры и т.д
Такой был учитель, но вот курсовую как-то сделать нада)

cska-fanat-kz

Цитата: deks500 от 07 июн 2012, 11:13
курсовую как-то сделать нада)

почти растрогали.
и, смахнув скупую мужскую слезу, прошу выложить условие задачи курсовой...
Получил помощь - скажи СПАСИБО.
Разобрался сам - расскажи другим.

deks500

Цитата: cska-fanat-kz от 07 июн 2012, 11:52
Цитата: deks500 от 07 июн 2012, 11:13
курсовую как-то сделать нада)

почти растрогали.
и, смахнув скупую мужскую слезу, прошу выложить условие задачи курсовой...

Создать базу "Отель"
Что там должно быть:
-Заселение
-Переселение
-Выселение
-Квитанция
-Оплата
-Вывод сообщения о приближении срока оплаты
-Отчеты
Вот восновном все это сделал, только вот в Квитанции в поле колличество прожитых дней нужно сделать вот эту штучку о чем писал выше....с этим я осел...понять не могу.

Теги:

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

Рейтинг@Mail.ru

Поиск