Стаж работы на предприятии (количество лет, месяцев, дней) от даты приема до даты отчета

09.06.21

Учетные задачи - Зарплата

Доработка отчета "Личные данные сотрудников" путем настройки трех пользовательских полей системы компоновки данных, в режиме 1С:Предприятие. Конфигуратор не требуется. Конфигурации: ЗУП 3.1, ЗГУ 3.1, с 3.1.14. Проверял на ЗУП 3.1.17.171.

Постановка задачи

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

Пример (на дату 08.06.2021)
Иванов Иван Иванович, принят 21.11.2019, стаж 1 год 6 месяцев 18 дней

Почему пришлось написать новую статью

Сначала я искал готовые решения на Инфостарте и других ресурсах. Нашел файлы самописных отчетов, и ни один из них меня не устроил.

Первый попавшийся отчет строился на регистре «ТекущиеКадровыеДанныеСотрудников» - закрыл эту статью сразу же.

Второй был построен грамотнее, показатели считались в запросе, и формулы были выложены в статье. Но вот с формулами там было что-то напутано, нужный мне результат не смог получить, рассчитывая по этим формулам вручную. Кроме того, статья была довольно старая, и нет гарантии, что заработает в актуальном релизе.

При этом мне известно, что типовой отчет "Личные данные сотрудников" уже умеет отделять работающих сотрудников от уволенных, а также не учитывает договора подряда.

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

Настройку отчета можно будет сохранить, а если она «слетит» при очередном обновлении – так же легко можно будет и восстановить, так как формулы расчета сохранил у себя в файле и в этой статье.

Формулы расчета стажа на языке выражений СКД

Для решения задачи у нас есть следующие исходные данные

1. Дата, по состоянию на которую формируется отчет (это параметр отчета "Личные данные").

2. Дата приема сотрудника.

Я считаю, что эта дата всегда заполнена, так как в отчете есть предустановленный отбор по работающим сотрудникам по состоянию на дату отчета. Поэтому все дальнейшие формулы не учитывают проверку на пустую дату приема.

Первое, что нужно рассчитать – это количество полных месяцев с даты приема до даты отчета. В нашем примере (с 21.11.2019) получается 18 полных месяцев. Если прибавить 18 месяцев к дате приема, получаем 21.05.2021, что меньше даты отчета (08.06.2021).

В языке выражений СКД есть функция РазностьДат(), в нашем приемер она дает 19 месяцев между датами отчета и датой приема. Поэтому при расчеете нужно проверять: если к дате приема прибавляем разность дат и полученная дата больше даты отчета, нужно отнять один месяц.

Формула на языке выражений СКД будет выглядеть так:
 

ВЫБОР КОГДА НачалоПериода(ДобавитьКДате([Дата приема], "Месяц", РазностьДат([Дата приема], [Параметры.Дата], "МЕСЯЦ")), "ДЕНЬ") > НачалоПериода([Параметры.Дата], "ДЕНЬ") ТОГДА -1 ИНАЧЕ 0 КОНЕЦ + РазностьДат([Дата приема], [Параметры.Дата], "МЕСЯЦ")
 

Обратите внимание, что при сравнении дат обе приводятся к началу дня. Полученный показатель назову условно КолМесяцев, чтобы использовать его для пояснения алгоритма расчета в других формулах.

Теперь можно рассчитать количество полных лет, которые сотрудник отработал на предприятии: это количество полных месяцев, деленное на 12. От полученного числа нужно взять целую часть. Упрощенно формула выглядит так:

Цел(КолМесяцев/12)

Подставляем выражение расчета количества полных месяцев, получаем формулу расчета отработанных лет на языке выражений СКД:

Цел((ВЫБОР КОГДА НачалоПериода(ДобавитьКДате([Дата приема], "Месяц", РазностьДат([Дата приема], [Параметры.Дата], "МЕСЯЦ")), "ДЕНЬ") > НачалоПериода([Параметры.Дата], "ДЕНЬ") ТОГДА -1 ИНАЧЕ 0 КОНЕЦ + РазностьДат([Дата приема], [Параметры.Дата], "МЕСЯЦ"))/12)

Зная количество отработанных лет и количество полных месяцев стажа, легко рассчитать количество месяцев стажа, исключая отработанные годы: КолМесяцев-СтажЛет*12

Формула на языке СКД для количества месяцев стажа:

ВЫБОР КОГДА НачалоПериода(ДобавитьКДате([Дата приема], "Месяц", РазностьДат([Дата приема], [Параметры.Дата], "МЕСЯЦ")), "ДЕНЬ") > НачалоПериода([Параметры.Дата],"ДЕНЬ") ТОГДА -1 ИНАЧЕ 0 КОНЕЦ +РазностьДат([Дата приема], [Параметры.Дата], "МЕСЯЦ") - 12 * Цел((Выбор Когда НачалоПериода(ДобавитьКДате([Дата приема], "Месяц", РазностьДат([Дата приема], [Параметры.Дата], "МЕСЯЦ")), "ДЕНЬ") > НачалоПериода([Параметры.Дата], "ДЕНЬ") Тогда -1 Иначе 0 Конец + РазностьДат([Дата приема], [Параметры.Дата], "МЕСЯЦ")) / 12)

Наконец, осталось посчитать количество дней, по следующему алгоритму: к дате приема добавляем количество полных месяцев, а затем считаем разницу в днях между датой отчета и полученной датой.

РазностьДат(ДобавитьКДате([Дата приема], "МЕСЯЦ", Выбор Когда НачалоПериода(ДобавитьКДате([Дата приема], "Месяц", РазностьДат([Дата приема], [Параметры.Дата], "МЕСЯЦ")), "ДЕНЬ") > НачалоПериода([Параметры.Дата], "ДЕНЬ") Тогда -1   Иначе 0 Конец + РазностьДат([Дата приема], [Параметры.Дата], "МЕСЯЦ")), [Параметры.Дата], "ДЕНЬ")

Доработка варианта отчета, сохранение варианта

 

Для доработки варианта отчета открываем раздел «Кадры» - «Кадровые отчеты» - «Личные данные сотрудников». На форме отчета есть кнопка «Еще» - нажимаем еще, выбираем «Прочее» - «Изменить вариант отчета».

 

 

Переходим на вкладку «Пользовательские поля», нажимаем кнопку «Добавить», тип поля – выражение, и создаем поле «Стаж работы на предприятии, лет». В заголовок пишем произвольный заголовок поля, в выражение детальных записей – формулу расчета количества лет, см. выше. Выражение итоговых записей не заполняем. Нажимаем кнопку ОК.

Точно так же добавляем поля расчета месяцев и дней.

 

В итоге мы добавили в отчет три пользовательских поля, нажимаем кнопку «Завершить редактирование». Но это еще не все, требуется добавить наши поля в список полей отчета.

 

 

Для добавления полей на форме отчета нужно нажать кнопку «Настройка» - откроется окно настройки, сразу же переключаемся в расширенный режим, и на вкладке «Поля и сортировки» добавляем только что созданные пользовательские поля – стаж работы на предприятии. Теперь можно нажать кнопку «Закрыть и сформировать».



 

Чтобы настройка отчета сохранилась для последующего использования, нужно сохранить вариант отчета – нажать маленькую кнопочку справа от кнопки «Настройка» и выбрать пункт «Сохранить вариант отчета».  Далее потребуется присвоить имя варианту отчета, я указал – «Личные данные сотрудников – стаж работы на предприятии».


 

После сохранения настройки отчет можно легко найти в списке кадровых отчетов:

 

Расчет стажа от даты приема

См. также

Обновление для КА 1.1, ЗУП 2.5, БУХ 2.0: НДС, ЕФС-1, Расчет страховых взносов, Мобилизация, Статистика, Электронные трудовые книжки, 2-НДФЛ, Регламентированная отчетность, Кадровый учет, Прослеживаемость импортных товаров

Зарплата Регламентированный учет и отчетность Кадровый учет Обновление 1С Платформа 1С v8.3 Сложные периодические расчеты 1С:Комплексная автоматизация 1.х 1С:Бухгалтерия 2.0 1С:Зарплата и Управление Персоналом 2.5 Бухгалтерский учет Налоговый учет Управленческий учет Акцизы ЕНВД ЕСН Земельный налог ИП, ПБОЮЛ, КФХ Налог на имущество Налог на прибыль НДС НДФЛ ФОМС, ЕФС Транспортный налог УСН ПСН (патентная система налогообложения) Платные (руб)

Обновления для конфигураций: КА 1.1; ЗУП 2.5; БУХ 2.0; КА 1.1 Комплексная автоматизация торговли алкогольной продукцией; КА 1.1 Комплексный учет сельскохозяйственного предприятия

19900 руб.

01.04.2020    141135    669    352    

233

Перенос данных из Парус 8 в ЗГУ 3

Зарплата Внешние источники данных Бюджетный учет Платформа 1С v8.3 Сложные периодические расчеты 1С:Зарплата и кадры государственного учреждения 3 Государственные, бюджетные структуры Россия Бухгалтерский учет Бюджетный учет Платные (руб)

Обработка позволяет перенести кадровую информацию и данные по заработной плате, фактических удержаниях, НДФЛ, вычетах, страховых взносах из базы Парус 8 учреждений в конфигурацию 1С:Зарплата и кадры государственного учреждения ред. 3 (ЗГУ) и начать с ней работать с любого месяца года.

84000 руб.

19.08.2020    22613    19    1    

22

Перенос данных из Камин 3.5 (5.5) в ЗиКГУ 3.х

Обмен между базами 1C Зарплата Бюджетный учет Платформа 1С v8.3 Сложные периодические расчеты 1С:Зарплата и кадры государственного учреждения 3 1С:Зарплата и Управление Персоналом 3.x Государственные, бюджетные структуры Россия Бюджетный учет Платные (руб)

Обработки для быстрого перехода с конфигураций «КАМИН:Расчет зарплаты для бюджетных учреждений 3.5» и «КАМИН:Зарплата для бюджетных учреждений 5.5» на конфигурацию «Зарплата и кадры государственного учреждения».

12000 руб.

28.07.2016    57263    140    141    

117

Устранение начислений прошлых периодов в ведомостях ЗУП 3.1, КА, ЗиКГУ 3.1

Зарплата Платформа 1С v8.3 1С:Зарплата и кадры государственного учреждения 3 1С:Комплексная автоматизация 2.х 1С:Зарплата и Управление Персоналом 3.x Россия Бухгалтерский учет Платные (руб)

При заполнении ведомости на выплату зарплаты вылазят задолженности прошлых периодов, которых быть не должно? Наша обработка позволяется убрать эти доходы прошлых периодов за пару секунд. Больше не нужно тратить часы на анализ каждого такого случая.

15600 руб.

14.09.2022    12986    63    24    

66

Запрет доступа к данным по зарплате для БП 3.0 и КА 2.5

Зарплата Роли и права Платформа 1С v8.3 Бухгалтерский учет Управление правами 1С:Бухгалтерия 3.0 1С:Комплексная автоматизация 2.х Молдова Россия Казахстан Бухгалтерский учет Платные (руб)

Расширение позволяет максимально полно ограничить доступ пользователей к данным по заработной плате, а именно закрывает доступ к документам начисления и выплаты заработной платы, не позволяет просматривать бухгалтерские отчеты по счету учета зарплаты а также убирает зарплатные проводки из журнала проводок. Расширение запрещает просматривать платежные документы на выплату зарплаты, так же не доступны регламентные отчеты в ПФР и ИФНС. Расширение предлагает готовые настроенные профили "Бухгалтер без зарплаты", "Только просмотр без зарплаты".

5700 руб.

27.05.2021    33131    206    89    

166

Исправление в 1С:ЗУП/ЗКГУ ошибок по НДФЛ и взаиморасчетам с сотрудниками на начало расчетного года.

Корректировка данных Зарплата Платформа 1С v8.3 Сложные периодические расчеты 1С:Зарплата и кадры бюджетного учреждения 1С:Зарплата и Управление Персоналом 3.x Россия Бухгалтерский учет НДФЛ Платные (руб)

Обработка исправляет технические ошибки по НДФЛ, взаиморасчетам с сотрудниками в 1С:ЗУП (1С:ЗКГУ) на начало года. Фактически все ошибки, которые проявляются в ведомостях на выплату, расчетных листках, при заполнении ведомостей на выплату и отчетах 6-НДФЛ и т.д. нужно начинать исправлять с начала расчетного года. Это позволит быть уверенными, что после завершения расчетов предыдущего года, начали работать с «чистого листа» без ошибочных остатков.

4800 руб.

06.10.2023    2622    29    15    

35

Перенос данных из Парус 7.хх в ЗГУ ред.3

Внешние источники данных Зарплата Бюджетный учет Платформа 1С v8.3 Сложные периодические расчеты 1С:Зарплата и кадры государственного учреждения 3 Государственные, бюджетные структуры Россия Бухгалтерский учет Бюджетный учет Платные (руб)

Обработка позволяет перенести кадровую информацию и данные по заработной плате, фактических удержаниях, НДФЛ, вычетах, страховых взносах из базы Парус 7.хх учреждений в конфигурацию 1С:Зарплата и кадры государственного учреждения ред. 3 (ЗГУ) и начать с ней работать с любого месяца года.

24000 руб.

24.04.2017    48833    97    163    

86
Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
1. dmit66 91 15.06.21 10:26 Сейчас в теме
А если сотрудник увольнялся и принимался вновь?
+
2. VinnieThePOOH 147 15.06.21 12:48 Сейчас в теме
(1) Физическое лицо будет то же самое, а сотрудник - другой, будет другой табельный номер, другая дата приема, другой элемент справочника сотрудников.

Расчет стажа выполняется в разрезе элементов справочника "Сотрудники" (а не справочника "Физические лица").

Если для одного физлица окажется несколько сотрудников, у каждого из них будет своя собственная дата приема, свой собственный стаж.

Интерпретация отчета будет зависеть от того, с какой целью отчет формируется. Если для какой-нибудь премии - можно выбрать строку с максимальным стажем.

Задачу интерпретации отчета я не ставил.
+
3. Gaffer 85 09.09.21 22:40 Сейчас в теме
Дополню расчет лет стажа:
- корректный расчет по уволенным (если их будут выводить в отчет);
- округление до десятых долей года. Внимание, это НЕ МЕСЯЦЫ, а доли года!;
- корректный расчет в случае, когда сотрудник принимался и увольнялся в одном и том же месяце;

Выразить((Выбор
		Когда НачалоПериода(ДобавитьКДате([Дата приема], "Месяц", РазностьДат([Дата приема], [Параметры.Дата], "МЕСЯЦ")), "ДЕНЬ") > НачалоПериода([Параметры.Дата], "ДЕНЬ")
			Тогда -1
		Иначе 0
	Конец + РазностьДат([Дата приема], Выбор
			Когда [Дата увольнения] > ДатаВремя(1, 1, 1)
				Тогда [Дата увольнения]
			Иначе [Параметры.Дата]
		Конец, "МЕСЯЦ")) / 12 * Выбор
		Когда НачалоПериода([Дата приема], "месяц") = НачалоПериода([Дата увольнения], "месяц")
			Тогда 0
		Иначе 1
	Конец, "Число(3,1)")
Показать
user1488047; VinnieThePOOH; +2
8. user1488047 10.02.22 16:51 Сейчас в теме
(3) Добрый день. А как можно сделать расчет, если сотрудник уволен 31 , а принят 1. Стаж берется с последней даты приема.
+
9. VinnieThePOOH 147 10.02.22 18:50 Сейчас в теме
(8) Это будет другой сотрудник.
+
4. dubovenko_m 63 19.11.21 12:33 Сейчас в теме
Спасибо. Хорошее решение. В последних релизах Прочие настройки спрятали - Настройки- Еще -Настройки для технического специалиста.
Прикрепленные файлы:
KirinaAS; VinnieThePOOH; +2
5. RizhkovSergio 37 21.12.21 10:16 Сейчас в теме
От себя добавлю кому может пригодится тоже самое в запрос:
В запросе:
ВЫРАЗИТЬ(
       (ВЫБОР
			КОГДА НАЧАЛОПЕРИОДА(ДОБАВИТЬКДАТЕ(ВТ_.ДатаМин, МЕСЯЦ, РАЗНОСТЬДАТ(ВТ_.ДатаМин, ВТ_.ДатаМакс, МЕСЯЦ)), ДЕНЬ) > НАЧАЛОПЕРИОДА(ВТ_.ДатаМакс, ДЕНЬ)
				ТОГДА -1
			ИНАЧЕ 0
		КОНЕЦ + РАЗНОСТЬДАТ(ВТ_.ДатаМин, ВТ_.ДатаМакс, МЕСЯЦ)) / 12 - 0.5 КАК ЧИСЛО(15, 0)) КАК СтажЛет,

	ВЫБОР
		КОГДА НАЧАЛОПЕРИОДА(ДОБАВИТЬКДАТЕ(ВТ_.ДатаМин, МЕСЯЦ, РАЗНОСТЬДАТ(ВТ_.ДатаМин, ВТ_.ДатаМакс, МЕСЯЦ)), ДЕНЬ) > НАЧАЛОПЕРИОДА(ВТ_.ДатаМакс, ДЕНЬ)
			ТОГДА -1
		ИНАЧЕ 0
	КОНЕЦ + РАЗНОСТЬДАТ(ВТ_.ДатаМин, ВТ_.ДатаМакс, МЕСЯЦ) - 12 * (ВЫРАЗИТЬ((ВЫБОР
			КОГДА НАЧАЛОПЕРИОДА(ДОБАВИТЬКДАТЕ(ВТ_.ДатаМин, МЕСЯЦ, РАЗНОСТЬДАТ(ВТ_.ДатаМин, ВТ_.ДатаМакс, МЕСЯЦ)), ДЕНЬ) > НАЧАЛОПЕРИОДА(ВТ_.ДатаМакс, ДЕНЬ)
				ТОГДА -1
			ИНАЧЕ 0
		КОНЕЦ + РАЗНОСТЬДАТ(ВТ_.ДатаМин, ВТ_.ДатаМакс, МЕСЯЦ)) / 12 - 0.5 КАК ЧИСЛО(15, 0))) КАК СтажМесяцев,

	РАЗНОСТЬДАТ(ДОБАВИТЬКДАТЕ(ВТ_.ДатаМин, МЕСЯЦ, ВЫБОР
				КОГДА НАЧАЛОПЕРИОДА(ДОБАВИТЬКДАТЕ(ВТ_.ДатаМин, МЕСЯЦ, РАЗНОСТЬДАТ(ВТ_.ДатаМин, ВТ_.ДатаМакс, МЕСЯЦ)), ДЕНЬ) > НАЧАЛОПЕРИОДА(ВТ_.ДатаМакс, ДЕНЬ)
					ТОГДА -1
				ИНАЧЕ 0
			КОНЕЦ + РАЗНОСТЬДАТ(ВТ_.ДатаМин, ВТ_.ДатаМакс, МЕСЯЦ)), ВТ_.ДатаМакс, ДЕНЬ) КАК СтажДней
Показать
+
6. RizhkovSergio 37 21.12.21 11:58 Сейчас в теме
(5)

ВТ_Свод.ДатаПриема КАК ДатаПриема,
ВТ_Свод.ДатаУвольнения КАК ДатаУвольнения,
ВЫРАЗИТЬ(ВЫБОР
			КОГДА (ВЫБОР
					КОГДА НАЧАЛОПЕРИОДА(ДОБАВИТЬКДАТЕ(ВТ_Свод.ДатаПриема, МЕСЯЦ, РАЗНОСТЬДАТ(ВТ_Свод.ДатаПриема, ВЫБОР
										КОГДА ВТ_Свод.ДатаУвольнения = ДАТАВРЕМЯ(1, 1, 1)
											ТОГДА &ДатаСреза
										ИНАЧЕ ВТ_Свод.ДатаУвольнения
									КОНЕЦ, МЕСЯЦ)), ДЕНЬ) > НАЧАЛОПЕРИОДА(ВТ_Свод.ДатаУвольнения, ДЕНЬ)
						ТОГДА -1
					ИНАЧЕ 0
				КОНЕЦ + РАЗНОСТЬДАТ(ВТ_Свод.ДатаПриема, ВЫБОР
						КОГДА ВТ_Свод.ДатаУвольнения = ДАТАВРЕМЯ(1, 1, 1)
							ТОГДА &ДатаСреза
						ИНАЧЕ ВТ_Свод.ДатаУвольнения
					КОНЕЦ, МЕСЯЦ)) / 12 - 0.5 < 0
				ТОГДА 0
			ИНАЧЕ (ВЫБОР
					КОГДА НАЧАЛОПЕРИОДА(ДОБАВИТЬКДАТЕ(ВТ_Свод.ДатаПриема, МЕСЯЦ, РАЗНОСТЬДАТ(ВТ_Свод.ДатаПриема, ВЫБОР
										КОГДА ВТ_Свод.ДатаУвольнения = ДАТАВРЕМЯ(1, 1, 1)
											ТОГДА &ДатаСреза
										ИНАЧЕ ВТ_Свод.ДатаУвольнения
									КОНЕЦ, МЕСЯЦ)), ДЕНЬ) > НАЧАЛОПЕРИОДА(ВТ_Свод.ДатаУвольнения, ДЕНЬ)
						ТОГДА -1
					ИНАЧЕ 0
				КОНЕЦ + РАЗНОСТЬДАТ(ВТ_Свод.ДатаПриема, ВЫБОР
						КОГДА ВТ_Свод.ДатаУвольнения = ДАТАВРЕМЯ(1, 1, 1)
							ТОГДА &ДатаСреза
						ИНАЧЕ ВТ_Свод.ДатаУвольнения
					КОНЕЦ, МЕСЯЦ)) / 12 - 0.5
		КОНЕЦ КАК ЧИСЛО(15, 0)) КАК СтажЛет,

ВЫБОР
	КОГДА НАЧАЛОПЕРИОДА(ДОБАВИТЬКДАТЕ(ВТ_Свод.ДатаПриема, МЕСЯЦ, РАЗНОСТЬДАТ(ВТ_Свод.ДатаПриема, ВЫБОР
							КОГДА ВТ_Свод.ДатаУвольнения = ДАТАВРЕМЯ(1, 1, 1)
								ТОГДА &ДатаСреза
							ИНАЧЕ ВТ_Свод.ДатаУвольнения
						КОНЕЦ, МЕСЯЦ)), ДЕНЬ) > НАЧАЛОПЕРИОДА(ВЫБОР
					КОГДА ВТ_Свод.ДатаУвольнения = ДАТАВРЕМЯ(1, 1, 1)
						ТОГДА &ДатаСреза
					ИНАЧЕ ВТ_Свод.ДатаУвольнения
				КОНЕЦ, ДЕНЬ)
			ТОГДА -1
		ИНАЧЕ 0
	КОНЕЦ + РАЗНОСТЬДАТ(ВТ_Свод.ДатаПриема, ВЫБОР
			КОГДА ВТ_Свод.ДатаУвольнения = ДАТАВРЕМЯ(1, 1, 1)
				ТОГДА &ДатаСреза
			ИНАЧЕ ВТ_Свод.ДатаУвольнения
		КОНЕЦ, МЕСЯЦ) - 12 * (ВЫРАЗИТЬ(ВЫБОР
			КОГДА (ВЫБОР
					КОГДА НАЧАЛОПЕРИОДА(ДОБАВИТЬКДАТЕ(ВТ_Свод.ДатаПриема, МЕСЯЦ, РАЗНОСТЬДАТ(ВТ_Свод.ДатаПриема, ВЫБОР
										КОГДА ВТ_Свод.ДатаУвольнения = ДАТАВРЕМЯ(1, 1, 1)
											ТОГДА &ДатаСреза
										ИНАЧЕ ВТ_Свод.ДатаУвольнения
									КОНЕЦ, МЕСЯЦ)), ДЕНЬ) > НАЧАЛОПЕРИОДА(ВТ_Свод.ДатаУвольнения, ДЕНЬ)
						ТОГДА -1
					ИНАЧЕ 0
				КОНЕЦ + РАЗНОСТЬДАТ(ВТ_Свод.ДатаПриема, ВЫБОР
						КОГДА ВТ_Свод.ДатаУвольнения = ДАТАВРЕМЯ(1, 1, 1)
							ТОГДА &ДатаСреза
						ИНАЧЕ ВТ_Свод.ДатаУвольнения
					КОНЕЦ, МЕСЯЦ)) / 12 - 0.5 < 0
				ТОГДА 0
			ИНАЧЕ (ВЫБОР
					КОГДА НАЧАЛОПЕРИОДА(ДОБАВИТЬКДАТЕ(ВТ_Свод.ДатаПриема, МЕСЯЦ, РАЗНОСТЬДАТ(ВТ_Свод.ДатаПриема, ВЫБОР
										КОГДА ВТ_Свод.ДатаУвольнения = ДАТАВРЕМЯ(1, 1, 1)
											ТОГДА &ДатаСреза
										ИНАЧЕ ВТ_Свод.ДатаУвольнения
									КОНЕЦ, МЕСЯЦ)), ДЕНЬ) > НАЧАЛОПЕРИОДА(ВТ_Свод.ДатаУвольнения, ДЕНЬ)
						ТОГДА -1
					ИНАЧЕ 0
				КОНЕЦ + РАЗНОСТЬДАТ(ВТ_Свод.ДатаПриема, ВЫБОР
						КОГДА ВТ_Свод.ДатаУвольнения = ДАТАВРЕМЯ(1, 1, 1)
							ТОГДА &ДатаСреза
						ИНАЧЕ ВТ_Свод.ДатаУвольнения
					КОНЕЦ, МЕСЯЦ)) / 12 - 0.5
		КОНЕЦ КАК ЧИСЛО(15, 0))) КАК СтажМесяцев,

РАЗНОСТЬДАТ(ДОБАВИТЬКДАТЕ(ВТ_Свод.ДатаПриема, МЕСЯЦ, ВЫБОР
				КОГДА НАЧАЛОПЕРИОДА(ДОБАВИТЬКДАТЕ(ВТ_Свод.ДатаПриема, МЕСЯЦ, РАЗНОСТЬДАТ(ВТ_Свод.ДатаПриема, ВЫБОР
									КОГДА ВТ_Свод.ДатаУвольнения = ДАТАВРЕМЯ(1, 1, 1)
										ТОГДА &ДатаСреза
									ИНАЧЕ ВТ_Свод.ДатаУвольнения
								КОНЕЦ, МЕСЯЦ)), ДЕНЬ) > НАЧАЛОПЕРИОДА(ВЫБОР
							КОГДА ВТ_Свод.ДатаУвольнения = ДАТАВРЕМЯ(1, 1, 1)
								ТОГДА &ДатаСреза
							ИНАЧЕ ВТ_Свод.ДатаУвольнения
						КОНЕЦ, ДЕНЬ)
					ТОГДА -1
				ИНАЧЕ 0
			КОНЕЦ + РАЗНОСТЬДАТ(ВТ_Свод.ДатаПриема, ВЫБОР
					КОГДА ВТ_Свод.ДатаУвольнения = ДАТАВРЕМЯ(1, 1, 1)
						ТОГДА &ДатаСреза
					ИНАЧЕ ВТ_Свод.ДатаУвольнения
				КОНЕЦ, МЕСЯЦ)), ВЫБОР
			КОГДА ВТ_Свод.ДатаУвольнения = ДАТАВРЕМЯ(1, 1, 1)
				ТОГДА &ДатаСреза
			ИНАЧЕ ВТ_Свод.ДатаУвольнения
		КОНЕЦ, ДЕНЬ) КАК СтажДней
Показать
Vinzor; +1
7. user1731619 21.01.22 12:38 Сейчас в теме
Спасибо. У автора некорректно считается кол-во лет (16.10.2019 прием, увольнение -15.01.2020 = 1 год, ошибка). Помог комментарий, оставленный Gaffer
+
11. olga10121982 1 17.10.23 12:10 Сейчас в теме
(7) Подскажите пожалуйста, как вы исправили ошибку? не получается почему-то (можно в лс)
+
10. Nuzhnaya 23.01.23 15:17 Сейчас в теме
Спасибо большое!!!Очень помогло)
+
12. olga10121982 1 17.10.23 12:55 Сейчас в теме
Может кто поможет: Как вывести данные стаж месяц дни в одной колонке?
те в одной колонке 2 года 10 мес 5 дн
+
13. VinnieThePOOH 147 17.10.23 13:32 Сейчас в теме
(12) сгруппируйте колонки в настройке в одну. Вывод "вместе".
+
14. AneJIbcuH 37 13.04.24 08:31 Сейчас в теме
Все методы, если Дата начала и дата окончания в рамках одно месяца (и года), выдают ерунду
+
Оставьте свое сообщение