1С бухгалтерия

В конфигурации Зарплата и управление персоналом в форме редактирования среднего заработка есть кнопка Дополнить по данным ФОТ. В некоторых случаях она активна, а в некоторых нет.

Есть функция в общем модуле УчетСреднегоЗаработка:

Функция МесяцыКорректировкиСреднегоЗаработка(Сотрудник, НачалоПериодаРасчета, ОкончаниеПериодаРасчета, ДатаПриемаНаРаботу, ДатаНачалаСобытия) Экспорт
 
	// Метод определяет доступный для редактирования период, 
	// опираясь на наличие данных расчета зарплаты.
	ТекстЗапроса = 
		"ВЫБРАТЬ
		|	МИНИМУМ(НАЧАЛОПЕРИОДА(Начисления.ПериодДействияНачало, МЕСЯЦ)) КАК Месяц
		|ИЗ
		|	РегистрРасчета.Начисления КАК Начисления
		|ГДЕ
		|	Начисления.Сотрудник = &Сотрудник
		|	И НЕ Начисления.Регистратор ССЫЛКА Документ.ПереносДанных";
 
	Запрос = Новый Запрос(ТекстЗапроса);
	Запрос.УстановитьПараметр("Сотрудник", Сотрудник);
 
	// Месяцы, в которых доступен ручной ввод, т.е. корректировка.
	МесяцыКорректировкиМассив = Новый Массив;
 
	Выборка = Запрос.Выполнить().Выбрать();
	Выборка.Следующий();
 
	МесяцОбхода = НачалоПериодаРасчета;
	Пока МесяцОбхода < ОкончаниеПериодаРасчета Цикл
		Если НачалоМесяца(МесяцОбхода) = НачалоМесяца(ДатаНачалаСобытия) Тогда
			// Если период расчета захватывает дату начала события, 
			// значит это месяц приема на работу, зарплата еще не рассчитана, нужно дать возможность корректировок.
			МесяцыКорректировкиМассив.Добавить(МесяцОбхода);
		КонецЕсли;
		Если ЗначениеЗаполнено(Выборка.Месяц) И МесяцОбхода >= Выборка.Месяц Тогда
			// Если начались расчеты, значит месяцы корректировок закончились.
			Прервать;
		КонецЕсли;
		Если КонецМесяца(МесяцОбхода) >= ДатаПриемаНаРаботу Тогда
			МесяцыКорректировкиМассив.Добавить(МесяцОбхода);
		КонецЕсли;
		МесяцОбхода = ДобавитьМесяц(МесяцОбхода, 1);
	КонецЦикла;
 
	Возврат Новый ФиксированныйМассив(МесяцыКорректировкиМассив);
 
КонецФункции

Если она возвращает не пустой массив, то тогда кнопка становится активной. Судя по всему кнопка предполагает доступность только в том случае, если по сотруднику не было начислений в выбранном периоде(документы Перенос данных не учитываются). При этом не учитываются и месяцы, когда сотрудник не был принят на работу. Т.е. необходимо чтобы в каком-то месяце сотрудник числился работающим, но зарплаты в этом месяце в регистре расчета Начисления не было.
Но бывают ситуации когда у человека есть сплошные командировки (т.е. записи в рег. Начисления), но при этом в среднем заработке при увольнении ничего нет. И эта кнопка будет на активна. Самый простой способ активировать эту кнопку - закомментировать команду Прервать.

Отправить комментарий

Содержание этого поля является приватным и не предназначено к показу.
  • Адреса страниц и электронной почты автоматически преобразуются в ссылки.
  • Доступны HTML теги: <a> <em> <strong> <cite> <code> <ul> <ol> <li> <dl> <dt> <dd> <img>
  • Строки и параграфы переносятся автоматически.
  • You can enable syntax highlighting of source code with the following tags: <code>, <blockcode>, <1c7>, <drupal5>, <drupal6>, <javascript>, <php>. Beside the tag style "<foo>" it is also possible to use "[foo]".