Исправление ошибки ЗУП 3.1.6.54 в части Отпуска по уходу за ребенком

Программирование - Ошибки в отраслевых решениях

Если вы обновились, не прочитав предупреждения "Не обновляйтесь на релиз ЗУП 3.1.6.54. В релизе ЗУП 3.1.6.54 обнаружена ошибка, которая проявляется, если кадровые данные сотрудников введены документом Начальная штатная расстановка."

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

Разработчики сообщили, что исправление выйдет в ближайшем релизе.

Ошибка опубликована на сайте 1С, если не ждать релиза 3.1.7, то можно установить прилагаемое расширение конфигурации.

Потом нужно будет перепровести документ "Начальная штатная установка" (возможно, придется открыть соответствующий период для изменения).

Скачать файлы

Наименование Файл Версия Размер
Исправление ошибки ЗУП 3.1.6.54 в части Отпуска по уходу за ребенком:
.cfe 9,49Kb
01.06.18
12
.cfe 9,49Kb 12 Скачать

См. также

Комментарии
3. Андрей Журавлев (Wrols) 71 04.06.18 10:44 Сейчас в теме
Добрый день!

Почему-то не помогло...
Должны быть изменения в регистре "Данные состояний сотрудников"? Если да, то после подключения расширения и перепроведения Начальной штатной расстановки изменений нет.
В регистре по сотруднику 2 записи - "Отпуск по уходу за ребенком" и "Работа".

При заполнении табеля - сотруднику ставится "Явка"...
4. Евгений (Evmil) 15 04.06.18 16:11 Сейчас в теме
Добрый день. Конфигуратором можно проверить, запускается ли функция в расширении http://SSMaker.ru/5114611a/ при перепроведении начальной штатной установки.
5. Бочаров Кирилл Игоревич (bocharovki) 6 05.06.18 08:00 Сейчас в теме
Я применил немного другой вариант в ДанныеДляПроведения() у документа Начальная штатная расстановка.
В этом случае просто состояние на момент начальной штатной расставноки продолжается далее.

Запрос.Текст =
		"ВЫБРАТЬ
		|	Сотрудники.Сотрудник КАК Сотрудник,
		
		// Начало вставки
		//|	ЗНАЧЕНИЕ(Перечисление.СостоянияСотрудника.Работа) КАК Состояние,
		|	ЕСТЬNULL(СостоянияСотрудников.Состояние,ЗНАЧЕНИЕ(Перечисление.СостоянияСотрудника.Работа)) КАК Состояние,
		// Конец вставки		
		
		|	Сотрудники.ДатаСобытия КАК Начало,
		|	ДАТАВРЕМЯ(1, 1, 1) КАК Окончание,
		|	НЕОПРЕДЕЛЕНО КАК ВидВремени
		|ИЗ
		|	ВТСотрудники КАК Сотрудники
		
		// Начало вставки
		|  ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.СостоянияСотрудников КАК СостоянияСотрудников
		|		ПО Сотрудники.Сотрудник = СостоянияСотрудников.Сотрудник
		|			И СостоянияСотрудников.Период <= Сотрудники.ДатаСобытия
		|			И (СостоянияСотрудников.ДействуетДо >= Сотрудники.ДатаСобытия
		|				ИЛИ СостоянияСотрудников.ДействуетДо = ДАТАВРЕМЯ(1, 1, 1)) 
		|
		// Конец вставки		
		
		|ГДЕ
		|	Сотрудники.ВидЗанятости <> ЗНАЧЕНИЕ(Перечисление.ВидыЗанятости.Подработка)";
	
	// Данные состояний
	ДанныеСостояний = Запрос.Выполнить().Выгрузить();
	ДанныеДляПроведения.Вставить("ДанныеСостояний", ДанныеСостояний);
Показать
6. Ogonyok Shri (shriogonyok) 08.06.18 10:20 Сейчас в теме
//Еще вариант фикса
//ОбщийМодуль ЗарплатаКадры
//Нужно учесть что Отпуск по уходу за ребенком нужно перепровести 2 раза сначала сняв галку "Не начислять зарплату и не выплачивать аванс во время отпуска" а затем снова установив

Функция ВыборкаРассчитанныеПериодыСостояний(ЗначенияИзмерений, ОписаниеРегистра) Экспорт
	
	МенеджерВременныхТаблиц = Новый МенеджерВременныхТаблиц;
	СоздатьВТПоТаблицеЗначений(МенеджерВременныхТаблиц, ЗначенияИзмерений, "ВТЗначенияИзмеренийГода"); 
	Запрос = ЗапросВТПервичныеДанные(МенеджерВременныхТаблиц, ОписаниеРегистра, ЗначенияИзмерений);
	Результат = Запрос.Выполнить();
	ОткрытыеИнтервалы = Результат.Выгрузить();
	// {Агроресурсы ogn 2018.06.08 a.ognev@agrores.ru
	//фиксим баг: ошибка сотруднице ставится что она работает хотя она в отпуске по уходу
	ЕстьНачальная = Ложь;
	ЕстьОтпускПоУходуЗаРебенком = Ложь;
	Для Каждого СтрокаОткрытых Из ОткрытыеИнтервалы Цикл
		Если ТипЗнч(СтрокаОткрытых.Регистратор) = Тип("ДокументСсылка.НачальнаяШтатнаяРасстановка") Тогда
			ЕстьНачальная = Истина;
			СтрокаНачальной = СтрокаОткрытых;
			ДатаНачальной = СтрокаОткрытых.Регистратор.Дата;
			НачШтРастановка = СтрокаОткрытых.Регистратор;
		КонецЕсли; 
		Если ТипЗнч(СтрокаОткрытых.Регистратор) = Тип("ДокументСсылка.ОтпускПоУходуЗаРебенком") Тогда
			ЕстьОтпускПоУходуЗаРебенком = Истина;
			ДатаОтпуска = СтрокаОткрытых.Регистратор.Дата;
		КонецЕсли; 
	КонецЦикла; 
	Если ЕстьНачальная И ЕстьОтпускПоУходуЗаРебенком И ДатаНачальной > ДатаОтпуска Тогда
		Запрос.Текст = "Выбрать * Поместить ВТПервичныеДанныеВрем Из ВТПервичныеДанные КАК ПервичныеДанные ГДЕ ПервичныеДанные.Регистратор <> &НачШтРасстановка;
		|Уничтожить ВТПервичныеДанные; 
		|Выбрать * Поместить ВТПервичныеДанные ИЗ ВТПервичныеДанныеВрем;";
		Запрос.УстановитьПараметр("НачШтРасстановка", НачШтРастановка);
		Запрос.Выполнить();
		
		ОткрытыеИнтервалы.Удалить(СтрокаНачальной);
	КонецЕсли; 
	// }Агроресурсы ogn 2018.06.08  
	СоздатьВТЗакрытыеИнтервалы(ОткрытыеИнтервалы, МенеджерВременныхТаблиц, ОписаниеРегистра);
	
	Запрос = ЗапросРассчитанныеДаты(МенеджерВременныхТаблиц, ОписаниеРегистра);
	Результат = Запрос.Выполнить();
		
	Возврат Результат.Выбрать();
	
КонецФункции
Показать
7. Алексей Комиссаров (salbey) 57 09.06.18 11:05 Сейчас в теме
(6)
//Нужно учесть что Отпуск по уходу за ребенком нужно перепровести 2 раза сначала сняв галку "Не начислять зарплату и не выплачивать аванс во время отпуска" а затем снова установив
Внес данные изменения в расширение, все заработало должным образом. Спасибо, дружище... лови плюс.
Оставьте свое сообщение