Реклама на этом месте
Форум 1С
Форум 1С
Программистам. Бухгалтерам. Администраторам. Пользователям
Задай вопрос - получи решение проблемы. Без троллинга и флуда.
15 Дек 2017, 21:03
МультиВход
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Не получили письмо с кодом активации?
 
collapse

Автор Тема: Подсчет стажа для работника (в справочнике)  (Прочитано 2925 раз)

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

Оффлайн AlexKag

  • **
  • Сообщений: 90
  • РЕПУТАЦИЯ: 0
  • Регистрация: 2012-09-05
  • Сайт: 
  • Профессия: Ученик 1С
Добрый вечер! Такой вопрос. В Справочнике есть реквизит типа дата (ДатаНачала), под ним есть еще один реквизит Стаж, подскажите как сделать так, чтобы при вводе даты в поле ДатаНачала, в поле Стаж подсчитывался стаж работы (то есть из текущей даты вычиталась бы ДатаНачала, и результат округлялся бы до годов, и записывался в поле Стаж) Как это мне организовать?


Оффлайн mixqn

  • Администратор
  • *****
  • Сообщений: 1346
  • РЕПУТАЦИЯ: 166
  • КПД: 12%
  • Who is John Galt?
  • Регистрация: 2012-08-15
  • Сайт: 3gmaster.net
  • Профессия: Программист 1С
Ну организовать то не сложно, допустим вот так:
ДлинаСутокСекунд = 60*60*24; // длина суток в секундах
ДлинаГодаСуток = 365; // длина года в сутках

СтажСекунд = ДатаНачала - ТекущаяДата(); // стаж в секундах
Стаж = Цел(СтажСекунд/ДлинаСутокСекунд/ДлинаГодаСуток);  // количество целых лет стажа
вопрос, как вы поддерживать актуальность данных планируете (текущая дата же меняться будет постоянно)? Или такая задача не стоит?

Оффлайн AlexKag

  • **
  • Сообщений: 90
  • РЕПУТАЦИЯ: 0
  • Регистрация: 2012-09-05
  • Сайт: 
  • Профессия: Ученик 1С
Нет, такой задачи не стоит. А скажите пожалуйста, данный обработчик будет ПриИзменении у поля ДатаНачала? Сделал так, но при вводе даты поле стаж не заполняется, в чем может заключаться ошибка?
&НаКлиенте
Процедура ДатаНачалаПриИзменении(Элемент)
ДлинаСутокСекунд = 60*60*24; // длина суток в секундах
    ДлинаГодаСуток = 365; // длина года в сутках
СтажСекунд = Объект.ДатаНачала - ТекущаяДата(); // стаж в секундах
Объект.Стаж = Цел(СтажСекунд/ДлинаСутокСекунд/ДлинаГодаСуток);  // количество целых лет стажа
КонецПроцедуры


Теги:
 


* Живое общение

Не устроил ответ?

Зарегистрируйся и задай свой вопрос. Живое общение приносит результат намного быстрее.


Зарегистрироваться

* Реклама

* Поиск

* Последние задачи на разработку (фриланс)

* Реклама

* Последние вакансии

* Топ 10 авторов за месяц

Геннадий ОбьГЭС Геннадий ОбьГЭС
180 Сообщений
ilyay ilyay
69 Сообщений
alex0402
54 Сообщений
oleg-x
48 Сообщений
AIFrame
46 Сообщений
andron81_81
44 Сообщений
MuI_I_Ika MuI_I_Ika
33 Сообщений
Golickoff Golickoff
31 Сообщений
BuhRust
30 Сообщений
Dima Dddd Dima Dddd
26 Сообщений

* Кто онлайн

  • Точка Гостей: 267
  • Точка Скрытых: 0
  • Точка Пользователей: 1
  • Точка Сейчас на форуме:

* Облако тэгов

* Форум 1С с мобильного

* Инструменты

* Дополнительно

Поиск

 
SimplePortal 2.3.5 © 2008-2012, SimplePortal