Настройка - Расчет зарплаты - Используются тарифные группы Настройка состава начисленийи удержаний - Почасовая оплата Начисление - Доплата за работу в коптильне; Только если введен вид учета времени, вид времени - Время работы в коптильне Показатель - Процент заработу в коптильне Тип - Числовой, зависящий от другого показателя Базовый показатель - Время в часах, заполняем Настройка - Шаблон работы в коптильне - Виды времени 2 (время в коптильне, явка) Данные для расчета зарплаты - Заполняем Настройка - Тарифные группы - Операторы - Заполняем разряды ###################################################################################### В справочник Сотрудники добавляем реквизит НомерПропуска Добавляем его на форму в ГруппаГрафикЗанятость Создаем документ ДанныеПропускнойСистемы Реквизиты - Организация, Начисление ТЧ-Сотрудники, РеквизитыТЧ - Сотрудник, НомерПропуска, ВремяВхода, ВремяВыхода Создаем РС ПроцентДоплатыЗаРаботуВКоптильне Измерения - ЧасовОт, ЧасовДо Ресурсы - ПроцентДоплаты ####################################################################################### Файл для загрузки на форму по кнопке Заполнить должен быть такого вида 0010;01.01.2024 10:00:00;01.01.2024 11:30:00 0012;02.01.2024 10:05:00;02.01.2024 14:45:00 Форма документа ДанныеПропускнойСистемы &НаКлиенте Процедура Заполнить(Команда) Диалог = Новый ДиалогВыбораФайла(РежимДиалогаВыбораФайла.Открытие); Диалог.Фильтр = ".txt"; ОписаниеОповещения = Новый ОписаниеОповещения("ПослеВыбораФайла", ЭтотОбъект); Диалог.Показать(ОписаниеОповещения); КонецПроцедуры &НаСервере Процедура ПослеВыбораФайла(ВыбранныйФайл, ДопПараметры) Экспорт Если ВыбранныйФайл = Неопределено Тогда Возврат; КонецЕсли; ПутькФайлу = ВыбранныйФайл[0]; ДвДанные = Новый ДвоичныеДанные(ПутькФайлу); ПутьВрФайла = ПоместитьВоВременноеХранилище(ДвДанные); РаботаСФайлом(ПутьВрФайла) КонецПроцедуры Процедура РаботаСФайлом(ПутьВрФайла) ДвДанные = ПолучитьИзВременногоХранилища(ПутьВрФайла); Файл = ПолучитьИмяВременногоФайла("txt"); ДвДанные.Записать(Файл); ЧтениеТекста = Новый ЧтениеТекста(Файл); СтрИзФайла = ЧтениеТекста.ПрочитатьСтроку(); ТЗ = Новый ТаблицаЗначений; ТЗ.Колонки.Добавить("НомерПропуска", Новый ОписаниеТипов("Строка")); ТЗ.Колонки.Добавить("ВремяВхода",Новый ОписаниеТипов("Дата")); ТЗ.Колонки.Добавить("ВремяВыхода",Новый ОписаниеТипов("Дата")); Пока СтрИзФайла <> Неопределено Цикл СтрТЗ = ТЗ.Добавить(); мСтр = СтрРазделить(СтрИзФайла,";"); СтрТЗ.НомерПропуска = мСтр[0]; СтрТЗ.ВремяВхода = Дата(мСтр[1]); СтрТЗ.ВремяВыхода = Дата(мСтр[2]); СтрИзФайла = ЧтениеТекста.ПрочитатьСтроку(); КонецЦикла; ЧтениеТекста.Закрыть(); Запрос = Новый Запрос; Запрос.Текст = "ВЫБРАТЬ | ВЫРАЗИТЬ(ТЗ.НомерПропуска КАК СТРОКА(10)) КАК НомерПропуска, | ТЗ.ВремяВыхода КАК ВремяВыхода, | ТЗ.ВремяВхода КАК ВремяВхода |ПОМЕСТИТЬ ВТ_ТЗ |ИЗ | &ТЗ КАК ТЗ |; | |//////////////////////////////////////////////////////////////////////////////// |ВЫБРАТЬ | Сотрудники.Ссылка КАК Сотрудник, | ВЫРАЗИТЬ(ВТ_ТЗ.НомерПропуска КАК СТРОКА(10)) КАК НомерПропуска, | ВТ_ТЗ.ВремяВхода КАК ВремяВхода, | ВТ_ТЗ.ВремяВыхода КАК ВремяВыхода |ИЗ | ВТ_ТЗ КАК ВТ_ТЗ | ЛЕВОЕ СОЕДИНЕНИЕ Справочник.Сотрудники КАК Сотрудники | ПО ВТ_ТЗ.НомерПропуска = Сотрудники.НомерПропуска"; Запрос.УстановитьПараметр("ТЗ", ТЗ); Объект.Сотрудники.Загрузить(Запрос.Выполнить().Выгрузить()); КонецПроцедуры Создаем несколько документов на разные даты ########################################################################################## Документ ДанныеПропускнойСистемы делает движения в регистр ДанныеОперативногоУчетаРабочегоВремениСотрудников Модуль объекта копируем из ДанныеДляРасчетаЗарплаты ################################################################################################ Модуль объекта ДанныеДляРасчетаЗарплаты #Если Сервер Или ТолстыйКлиентОбычноеПриложение Или ВнешнееСоединение Тогда #Область ОбработчикиСобытий Процедура ОбработкаПроведения(Отказ, РежимПроведения) // Проведение документа ПроведениеСервер.ПодготовитьНаборыЗаписейКРегистрацииДвижений(ЭтотОбъект); ДанныеОВремени = ДанныеОВремени(); УчетРабочегоВремени.ПроверитьРегистрируемыеДанныхОВремени(Ссылка, ДанныеОВремени, Отказ, Истина); УчетРабочегоВремени.ЗарегистрироватьРабочееВремяСотрудников(Движения, ДанныеОВремени); КонецПроцедуры #КонецОбласти #Область СлужебныеПроцедурыИФункции Функция ДанныеОВремени() ТаблицаДанных = УчетРабочегоВремениРасширенный.ПустаяТаблицаДляРегистрацииВремени(); Для Каждого СтрокаТабличнойЧасти Из Сотрудники Цикл СтрокаТаблицы = ТаблицаДанных.Добавить(); СтрокаТаблицы.Дата = НачалоДня(СтрокаТабличнойЧасти.ВремяВхода); СтрокаТаблицы.Сотрудник = СтрокаТабличнойЧасти.Сотрудник; СтрокаТаблицы.ВидВремени = Справочники.ВидыИспользованияРабочегоВремени.НайтиПоНаименованию("Время работы в коптильне"); СтрокаТаблицы.Дней = 1; СтрокаТаблицы.Часов = (СтрокаТабличнойЧасти.ВремяВыхода - СтрокаТабличнойЧасти.ВремяВхода)/3600; //СтрокаТаблицы.План = Ложь; //СтрокаТаблицы.Внутрисменное = Ложь; //СтрокаТаблицы.ВЦеломЗаПериод = Истина; КонецЦикла; Для Каждого СтрокаТабличнойЧасти Из Сотрудники Цикл СтрокаТаблицы = ТаблицаДанных.Добавить(); СтрокаТаблицы.Дата = НачалоДня(СтрокаТабличнойЧасти.ВремяВхода); СтрокаТаблицы.Сотрудник = СтрокаТабличнойЧасти.Сотрудник; СтрокаТаблицы.ВидВремени = Справочники.ВидыИспользованияРабочегоВремени.Явка; СтрокаТаблицы.Дней = 1; СтрокаТаблицы.Часов = 12 - (СтрокаТабличнойЧасти.ВремяВыхода - СтрокаТабличнойЧасти.ВремяВхода)/3600; //СтрокаТаблицы.План = Ложь; //СтрокаТаблицы.Внутрисменное = Ложь; //СтрокаТаблицы.ВЦеломЗаПериод = Истина; КонецЦикла; Возврат ТаблицаДанных; КонецФункции #КонецОбласти #КонецЕсли ############################################################################################################################ Отчет Работа в горячем цеху ВЫБРАТЬ ДанныеОперативногоУчетаРабочегоВремениСотрудниковОбороты.Сотрудник КАК Работник, ЕСТЬNULL(ПроцентДоплатыЗаРаботуВКоптильне.ПроцентДоплаты, 0) КАК ПроцентДоплаты, ЕСТЬNULL(ДанныеОперативногоУчетаРабочегоВремениСотрудниковОбороты.ЧасыОборот, 0) КАК ОтработаноЧасовВГорячемЦеху, ДанныеОперативногоУчетаРабочегоВремениСотрудниковОбороты.Период КАК День, ЕСТЬNULL(ТекущаяТарифнаяСтавкаСотрудников.ТекущаяТарифнаяСтавка, 0) КАК ТарифнаяСтавка, ЕСТЬNULL(ДанныеОперативногоУчетаРабочегоВремениСотрудниковОбороты.ЧасыОборот, 0) * ЕСТЬNULL(ТекущаяТарифнаяСтавкаСотрудников.ТекущаяТарифнаяСтавка, 0) * ЕСТЬNULL(ПроцентДоплатыЗаРаботуВКоптильне.ПроцентДоплаты, 0) / 100 КАК СуммаДоплаты, НАЧАЛОПЕРИОДА(ДанныеОперативногоУчетаРабочегоВремениСотрудниковОбороты.Период, МЕСЯЦ) КАК Месяц ИЗ РегистрНакопления.ДанныеОперативногоУчетаРабочегоВремениСотрудников.Обороты(&НачалоПериода, &КонецПериода, День, ВидУчетаВремени = &ВремяВКоптильне) КАК ДанныеОперативногоУчетаРабочегоВремениСотрудниковОбороты ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ПроцентДоплатыЗаРаботуВКоптильне КАК ПроцентДоплатыЗаРаботуВКоптильне ПО ДанныеОперативногоУчетаРабочегоВремениСотрудниковОбороты.ЧасыОборот >= ПроцентДоплатыЗаРаботуВКоптильне.ЧасовОт И ДанныеОперативногоУчетаРабочегоВремениСотрудниковОбороты.ЧасыОборот < ПроцентДоплатыЗаРаботуВКоптильне.ЧасовДо ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ТекущаяТарифнаяСтавкаСотрудников КАК ТекущаяТарифнаяСтавкаСотрудников ПО ДанныеОперативногоУчетаРабочегоВремениСотрудниковОбороты.Сотрудник = ТекущаяТарифнаяСтавкаСотрудников.Сотрудник Ресурсов - нет Параметры - ВремяВКоптильне, Тип- СправочникСсылка.ВидыИспользованияРабочегоВремени Выражение - Справочники.ВидыИспользованияРабочегоВремени.НайтиПоНаименованию("Время работы в коптильне") Настройки отчета - Группировка(Месяц, Работник, Детальные записи) Выбранные поля - День, ОтработаноЧасовВГорячемЦеху, ПроцентДоплаты, СуммаДоплаты ############################################################################################################################## ---Пояснительная записка--- Добавлен показатель Процент заработу в коптильне зависящий от другого показателя Время в часах Добавлено начисление Доплата за работу в коптильне, Только если введен вид учета времени, вид времени - Время работы в коптильне Формула ВремяВЧасах * ТарифнаяСтавкаЧасовая * ПроцентЗаработуВКоптильнеВидУчетаВремени/100 Объекты конфигурации Создан РС ПроцентДоплатыЗаРаботуВКоптильне для сопоставления времени проведенного в коптильне и процента доплаты Измерения - ЧасовОт, ЧасовДо Ресурсы - ПроцентДоплаты Создан документ ДанныеПропускнойСистемы для регистрации данных об отработанных работниками в горячем цеху периодах времени. Табличная часть документа заполняется по команде "Заполнить" всеми сотрудниками организации из выбранного файла Документ делает движения по типовому РН ДанныеОперативногоУчетаРабочегоВремениСотрудников Создан отчет "Работа в горячем цеху" Источники данных для отчета РН ДанныеОперативногоУчетаРабочегоВремениСотрудников: Работник, Период-день, Период-месяц, ОтработаноЧасовВГорячемЦеху РС ПроцентДоплатыЗаРаботуВКоптильне: Процент доплаты РС ТекущаяТарифнаяСтавкаСотрудников: Тарифный разряд РН ДанныеОперативногоУчетаРабочегоВремениСотрудников + РС ТекущаяТарифнаяСтавкаСотрудников + РС ПроцентДоплатыЗаРаботуВКоптильне: Сумма доплаты ######################################################################################## Заполнение На работу 1 января 2025 года приняты 3 сотрудника, оплата по указанному тарифу, указан тарифный разряд Введены данные согласно файла по документу ДанныеПропускнойСистемы за январь и февраль 2025 Оплата по окладу, и возмещение социальных расходов начисляются типовым документом "Начисление зарплаты и взносов".