|
Формула в калькуляторе стажа | ☑ | ||
---|---|---|---|---|
0
Tolstiy Beremenniy
02.12.18
✎
08:56
|
Подскажите пожалуйста по формуле.
Табличная часть, в которую вводится дата начала, дата окончания. Это сколько проработал тот или иной сотрудник. Вводятся все его рабочие места. Нужно что бы при вводе 2х дат выводилось года, месяца и дни, сколько отработал сотрудник. Как это лучше сделать? |
|||
1
PuhUfa
02.12.18
✎
09:00
|
Я думаю, что лучше это посчитать
|
|||
2
Tolstiy Beremenniy
02.12.18
✎
09:07
|
(1) Форма, табличная часть
в шапке сотрудник, в табличной части места и даты начала и окончания работ в них. Нужно просто формула рассчитывающая года, месяца и дни между двумя датами. |
|||
3
Гость из Мариуполя
гуру
02.12.18
✎
09:34
|
в типовой ЗУП 2.5 есть
Процедура РазобратьРазностьДат(Дата1, Дата2, Лет = 0, Месяцев = 0, Дней = 0) Экспорт за ЗУП 3.1. ничего не скажу, не копался (0) >>Как это лучше сделать? ИМХО, взять типовую и не париться. Потому что при нефиксированнызх единицах измерения разночтения неизбежны. Простой пример (приводился на исе) - разница между 01.03. и 31.01 - это сколько? 1 месяц и 1 день? или 0 мес и 29 дней? |
|||
4
Гость из Мариуполя
гуру
02.12.18
✎
09:38
|
а так хоть будет какое-то единообразие с типовой.
|
|||
5
Tolstiy Beremenniy
02.12.18
✎
09:46
|
(4) Ну понял, посмотрю это в этой конфигурации.
Как то все же не соображу как правильно. Так как не знаю всех моментов. |
|||
6
SleepyHead
гуру
02.12.18
✎
12:54
|
В ЗУП 3.1 есть методы работы с расчетом стажа, я делал так:
// расчет стажа общего и научно-педагогического МенеджерВременныхТаблиц = Новый МенеджерВременныхТаблиц; // сначала в таблицу ВТИсходныеДанные поместить поля Дата, ФизическоеЛицо, Сотрудник, ВидСтажа Запрос = Новый Запрос; Запрос.МенеджерВременныхТаблиц = МенеджерВременныхТаблиц; Запрос.УстановитьПараметр("МассивСотрудников", МассивСотрудников); Запрос.УстановитьПараметр("Период", КонецПериода); Запрос.УстановитьПараметр("СтажОбщий", Справочники.ВидыСтажа.НайтиПоРеквизиту("КатегорияСтажа", Перечисления.КатегорииСтажа.Общий)); Запрос.УстановитьПараметр("СтажНаучный", Справочники.ВидыСтажа.НайтиПоРеквизиту("КатегорияСтажа", Перечисления.КатегорииСтажа.ОбщийНаучноПедагогический)); Запрос.Текст = "ВЫБРАТЬ | Сотрудники.ФизическоеЛицо КАК ФизическоеЛицо, | Сотрудники.Ссылка КАК Сотрудник, | &Период КАК Дата, | &СтажОбщий КАК ВидСтажа |ПОМЕСТИТЬ ВТИсходныеДанные |ИЗ | Справочник.Сотрудники КАК Сотрудники |ГДЕ | Сотрудники.Ссылка В(&МассивСотрудников) | |ОБЪЕДИНИТЬ ВСЕ | |ВЫБРАТЬ | Сотрудники.ФизическоеЛицо, | Сотрудники.Ссылка, | &Период, | &СтажНаучный |ИЗ | Справочник.Сотрудники КАК Сотрудники"; Запрос.Выполнить(); // расчет стажа указанного вида КадровыйУчетРасширенный.СоздатьВТСтажиСотрудников(Запрос.МенеджерВременныхТаблиц); // выбрать стаж в месяцах из полученных данных Запрос.Текст = " |ВЫБРАТЬ | ВТСтажиСотрудников.Сотрудник.ФизическоеЛицо КАК ФизическоеЛицо, | ВТСтажиСотрудников.Дата КАК Период, | ВТСтажиСотрудников.ВидСтажа.КатегорияСтажа КАК КатегорияСтажа, | ВТСтажиСотрудников.РазмерМесяцев КАК РазмерМесяцев |ИЗ ВТСтажиСотрудников"; Выборка = Запрос.Выполнить().Выбрать(); Пока Выборка.Следующий() Цикл // мне нужен был размер стажа только в месяцах // но если прочитать описания в модулях, выбирай что нужно КонецЦикла; |
|||
7
mikecool
02.12.18
✎
14:33
|
у расчета стада есть нюансы, не помню уже какие, но есть
надо посоветоваться с кадровиком прежде, чем писать функции |
|||
8
SleepyHead
гуру
02.12.18
✎
14:41
|
(7) Они расскажут, ага :)
|
|||
9
Tolstiy Beremenniy
03.12.18
✎
09:29
|
вызываю вот эту функцию
ОбщегоНазначения.РазобратьРазностьДат(ЭлементыФормы.ПриемУвольнение.ТекущаяСтрока.ДатаНачала, ЭлементыФормы.ПриемУвольнение.ТекущаяСтрока.ДатаОкончания, Лет, Месяцев, Дней); передаю 2 даты, в Лет, Месяцев и дней стоят нули, почему она не работает? |
|||
10
Tolstiy Beremenniy
03.12.18
✎
09:35
|
Мне нужно получить значения лет, месяцев и дней.
Между двумя датами. как это сделать? |
|||
11
Tolstiy Beremenniy
03.12.18
✎
09:59
|
Если вызывать вот так. возвращает количество дней, но
не возвращает количество месяцев и лет Дата1 = ЭлементыФормы.ПриемУвольнение.ТекущаяСтрока.ДатаНачала; Дата2 = ЭлементыФормы.ПриемУвольнение.ТекущаяСтрока.ДатаОкончания; ОбщегоНазначения.РазобратьРазностьДат(Дата2, Дата1, Лет, Месяцев, Дней); |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |