v8: Автоматизировать ввод значений графика работДля начисления зарплата регистры расчета используют значения графиков работ (регистр сведений с измерениями "Дата", и обычно еще "ГрафикРаботы". Далее приведен пример, как можно автоматизировать ввод значений значений в этот регистр сведений. Для этого добавляем в форму элемента табличное поле со списком регистра сведений "ГрафикРаботы", и добавляем кнопку заполнить... | | Автор статьи: Demiurg Последняя редакция №1 от 12.06.05 URL: http://kb.mista.ru/article.php?id=42 | |
Для начисления зарплата регистры расчета используют значения графиков работ (регистр сведений с измерениями "Дата", и обычно еще "ГрафикРаботы". Далее приведен пример, как можно автоматизировать ввод значений значений в этот регистр сведений. Для этого добавляем в форму элемента справочника ГрафикиРабот табличное поле со списком регистра сведений "ГрафикРаботы", и добавляем кнопку заполнить.
Процедура КоманднаяПанель1Заполнить(Кнопка)
ТекущийГрафик = Ссылка;
ИнтервалПоказа = Новый НастройкаПериода;
ИнтервалПоказа.ДатаНачала = НачалоМесяца(ТекущаяДата());
ИнтервалПоказа.ДатаОкончания = КонецДня(КонецМесяца(ТекущаяДата()));
ИнтервалПоказа.ВариантНачала = ВариантГраницыИнтервала.КонкретнаяДата;
ИнтервалПоказа.ВариантОкончания = ВариантГраницыИнтервала.КонкретнаяДата;
Если ИнтервалПоказа.Редактировать() Тогда
ДатаНачалаИнтервала = ИнтервалПоказа.ПолучитьДатуНачала();
ДатаОкончанияИнтервала = ИнтервалПоказа.ПолучитьДатуОкончания();
НаборЗаписейКалендарь = РегистрыСведений.ГрафикиРаботы.СоздатьНаборЗаписей();
НаборЗаписейКалендарь.Отбор.ГрафикРаботы.Значение = ТекущийГрафик;
НаборЗаписейКалендарь.Отбор.ГрафикРаботы.Использование = Истина;
Дней = (ДатаОкончанияИнтервала - ДатаНачалаИнтервала) / 86400;
Для Сч = 0 По Дней Цикл
НовыйДень = НаборЗаписейКалендарь.Добавить();
НовыйДень.ГрафикРаботы = ТекущийГрафик;
НовыйДень.Дата = ДатаНачалаИнтервала + Сч * 86400;
Если ДеньНедели(ДатаНачалаИнтервала + Сч * 86400)>5 Тогда
НовыйДень.Значение = 0;
Иначе
НовыйДень.Значение = 8;
КонецЕсли;
КонецЦикла;
Иначе
Возврат;
КонецЕсли;
НаборЗаписейКалендарь.Записать();
КонецПроцедуры
И добавим, что бы при открытии в списке регистра "Графики работ" происходил отбор по текущему элементу справочника ГрафикиРабот.
Процедура ПриОткрытии()
ЭлементыФормы.ТабличноеПолеГрафикиРаботы.Значение.Отбор.ГрафикРаботы.Установить(Ссылка);
КонецПроцедуры
|