|
Средний часовой заработок | ☑ | ||
---|---|---|---|---|
0
Vyacheslav 777
29.06.14
✎
19:16
|
Подскажите как называется проц для прописываниея формулы по расчету СЧЗ?
|
|||
1
Отладчик
29.06.14
✎
19:18
|
Что есть проц. Процедуро.
|
|||
2
Отладчик
29.06.14
✎
19:20
|
Мясо от слова бифштекс.
|
|||
3
Отладчик
29.06.14
✎
19:20
|
Пиво от слова пить.
|
|||
4
Vyacheslav 777
29.06.14
✎
19:22
|
Сказать от слово Помочь
|
|||
5
Отладчик
29.06.14
✎
19:22
|
(4) Логично.
|
|||
6
Отладчик
29.06.14
✎
19:23
|
Ну, я бы отладчиком нашел. Или гуглом. Ну кто тебе на память, на вскидку сейчас её назовет???
|
|||
7
Vyacheslav 777
29.06.14
✎
19:24
|
Мне нужно чтобы в печатной форме т60 рассчитывалось поле СЧЗ
|
|||
8
Armando
29.06.14
✎
19:24
|
Отладчик от слова "Отладчик"
|
|||
9
Отладчик
29.06.14
✎
19:24
|
Сформулируй вопрос грамотно. И пока будешь формулировать - сам и ответ найдешь. Серьезно! Со мной такое не раз бывало.
|
|||
10
Отладчик
29.06.14
✎
19:25
|
Армандо от слово Армандо.
|
|||
11
Отладчик
29.06.14
✎
19:26
|
Армандо, перечислите по памяти названия процедур в модуле глобального модуля в УПП 8.3 на вскидку. Иначе - Вы уволены.
|
|||
12
Vyacheslav 777
29.06.14
✎
19:26
|
уже второй день формулирую. Вот Задача Документ Начисления отпучка сотрудникам организации оставить одну печатную форму т60(Готово) В печатной форме т60 заполнить поле средней дневной зароботое
|
|||
13
Vyacheslav 777
29.06.14
✎
19:27
|
Перем мДлинаСуток;
Перем мСведенияОВидахРасчета; //////////////////////////////////////////////////////////////////////////////// // ЭКСПОРТНЫЕ ПРОЦЕДУРЫ И ФУНКЦИИ // Заполняет документ по перерассчитываемому документу // ИсходныйДокумент - тип ДокументОбъект.НачислениеОтпускаРаботникамОрганизаций // Процедура ЗаполнитьПоПерерассчитываемомуДокументу(ИсходныйДокумент, Сотрудники = Неопределено) Экспорт ПерерассчитываемыйДокумент = ИсходныйДокумент.Ссылка; ЗаполнитьЗначенияСвойств(ЭтотОбъект,ИсходныйДокумент,,"Проведен, Дата, Номер, ПометкаУдаления, ПериодРегистрации, Комментарий, Ответственный, ПерерассчитываемыйДокумент"); КонецПроцедуры // ЗаполнитьПоПерерассчитываемомуДокументу() // Процедура рассчитывает начисления по среднему и заполняет реквизит Результат таблицы начислений // Параметры: // РассчитываемыеТаблицы - структура из элементов, соответствующих табличным частям документа. // Значение Истина для каждого из элементов структуры означает необходимость расчета // соответствующей табличной части документа // РежимПерерасчета - булево - признак вызов расчета при перерасчете документа Процедура Рассчитать(РассчитываемыеТаблицы, РежимПерерасчета = Ложь, ВыборкаПоШапкеДокумента = Неопределено) Экспорт //Перед вызовом процедуры документ должнен быть записан, движения должны быть удалены Отказ = Ложь; Если ВыборкаПоШапкеДокумента = Неопределено Тогда ВыборкаПоШапкеДокумента = СформироватьЗапросПоШапке().Выбрать(); // позиционируем выборку ВыборкаПоШапкеДокумента.Следующий(); КонецЕсли; Заголовок = ОбщегоНазначения.ПредставлениеДокументаПриПроведении(Ссылка); ПроверитьЗаполнениеШапки(ВыборкаПоШапкеДокумента, Отказ, Заголовок); Если Отказ Тогда Возврат; КонецЕсли; // Создадим наборы записей используемых регистров НаборОсновныеНачисления = РегистрыРасчета.ОсновныеНачисленияРаботниковОрганизаций.СоздатьНаборЗаписей(); НаборОсновныеНачисления.Отбор.Регистратор.Значение = Ссылка; НаборДополнительныеНачисления = РегистрыРасчета.ДополнительныеНачисленияРаботниковОрганизаций.СоздатьНаборЗаписей(); НаборДополнительныеНачисления.Отбор.Регистратор.Значение = Ссылка; НаборРасчетСреднего = РегистрыРасчета.РасчетСреднегоЗаработка.СоздатьНаборЗаписей(); НаборРасчетСреднего.Отбор.Регистратор.Значение = Ссылка; Если Не РассчитываемыеТаблицы.РасчетСреднего Тогда // запишем движения по среднему заработку для расчета начислений // получим реквизиты табличной части РасчетСреднего РезультатЗапросаПоРасчетСреднего = СформироватьЗапросПоРасчетСреднего(); ВыборкаПоРасчетСреднего = РезультатЗапросаПоРасчетСреднего.Выбрать(); Пока ВыборкаПоРасчетСреднего.Следующий() Цикл // проверим очередную строку табличной части ПроверитьЗаполнениеСтрокиРасчетСреднего(ВыборкаПоШапкеДокумента, ВыборкаПоРасчетСреднего, Отказ, Заголовок); Если Не Отказ Тогда // Заполним записи в наборах записей регистров ДобавитьСтрокуРасчетаСреднего(ВыборкаПоШапкеДокумента, ВыборкаПоРасчетСреднего, НаборРасчетСреднего); КонецЕсли; КонецЦикла; НаборРасчетСреднего.Записать(); КонецЕсли; Если Отказ Тогда Возврат; КонецЕсли; // Если это документ-исправление, тогда добавим сторно-записи из исправляемого документа. ПроведениеРасчетов.СформироватьСторноЗаписиПоПерерассчитываемомуДокументу(ПерерассчитываемыйДокумент,ВыборкаПоШапкеДокумента, НаборОсновныеНачисления, НаборДополнительныеНачисления); // Начисления документа. СформироватьДвиженияПоНачислениям(ВыборкаПоШапкеДокумента, НаборОсновныеНачисления, НаборДополнительныеНачисления); // Получим дополнительные записи, имеющие признак сторно, которые необходимо добавить // в текущий набор для того, чтобы в результате сохранения получился максимальный // фактический период действия ТаблицаСторноЗаписей = НаборОсновныеНачисления.ПолучитьДополнение(); ТаблицаСторноЗаписей.Колонки.Удалить("ПериодРегистрации"); ТаблицаСторноЗаписей.Колонки.ПериодРегистрацииСторно.Имя = "ПериодРегистрации"; ТаблицаСторноЗаписей.Колонки.Удалить("ПериодДействияНачало"); ТаблицаСторноЗаписей.Колонки.ПериодДействияНачалоСторно.Имя = "ПериодДействияНачало"; ТаблицаСторноЗаписей.Колонки.Удалить("ПериодДействияКонец"); ТаблицаСторноЗаписей.Колонки.ПериодДействияКонецСторно.Имя = "ПериодДействияКонец"; ТаблицаСторноЗаписей.Колонки.Удалить("СторнируемыйДокумент"); ТаблицаСторноЗаписей.Колонки.Регистратор.Имя = "СторнируемыйДокумент"; Для каждого СтрокаСторно Из ТаблицаСторноЗаписей Цикл // Заполним записи в наборе записей регистра // и в табличной части // новая запись движений Движение = НаборОсновныеНачисления.Добавить(); ЗаполнитьЗначенияСвойств(Движение,СтрокаСторно); // Свойства Движение.Сторно = Истина; Движение.Авторасчет = Истина; КонецЦикла; // получим список зависимых начислений Если ТаблицаСторноЗаписей.Количество() <> 0 Тогда // если таблица сторно-записей не пустая, получим таблицу // начислений, зависисяцих от тех начислений, которые зарегистрированы, ТаблицаОсновныхНачислений = ПроведениеРасчетов.ПолучитьТаблицуЗависимыхНачисленийОсновные(НаборОсновныеНачисления.Выгрузить()); Для каждого СтрокаТаблицы Из ТаблицаОсновныхНачислений Цикл Если СтрокаТаблицы.Начислить > 0 Тогда // начисление зависит от сторнирующего, добавим не сторно Движение = НаборОсновныеНачисления.Добавить(); ЗаполнитьЗначенияСвойств(Движение,СтрокаТаблицы); Движение.СторнируемыйДокумент = Неопределено; Движение.Сторно = Ложь; Движение.Авторасчет = Истина; КонецЕсли; Если СтрокаТаблицы.Сторнировать > 0 Тогда // начисление зависит от сторнируемого, добавим сторно Движение = НаборОсновныеНачисления.Добавить(); ЗаполнитьЗначенияСвойств(Движение,СтрокаТаблицы); Движение.Сторно = Истина; Движение.Авторасчет = Ложь; Движение = НаборОсновныеНачисления.Добавить(); ЗаполнитьЗначенияСвойств(Движение,СтрокаТаблицы); Движение.СторнируемыйДокумент = Неопределено; Движение.Сторно = Ложь; Движение.Авторасчет = Истина; КонецЕсли; КонецЦикла; ТаблицаДополнительныхНачислений = ПроведениеРасчетов.ПолучитьТаблицуЗависимыхНачисленийДополнительные(ТаблицаСторноЗаписей); Для каждого СтрокаТаблицы Из ТаблицаДополнительныхНачислений Цикл Движение = НаборДополнительныеНачисления.Добавить(); ЗаполнитьЗначенияСвойств(Движение,СтрокаТаблицы); Движение.Сторно = Истина; Движение.Авторасчет = Истина; Движение = НаборДополнительныеНачисления.Добавить(); ЗаполнитьЗначенияСвойств(Движение,СтрокаТаблицы); Движение.СторнируемыйДокумент = Неопределено; Движение.Сторно = Ложь; Движение.Авторасчет = Истина; КонецЦикла; КонецЕсли; // Очистим начисления Начисления.Очистить(); // рассчитываем записи начислений и если надо, записи расчета среднего заработка Если РассчитываемыеТаблицы.Начисления Тогда Если НаборОсновныеНачисления.Количество() <> 0 Тогда Если РассчитываемыеТаблицы.РасчетСреднего Тогда ПроведениеРасчетовПереопределяемый.РассчитатьЗаписиРегистраРасчета("ОсновныеНачисленияРаботниковОрганизаций", НаборОсновныеНачисления, , НаборРасчетСреднего, ВыборкаПоШапкеДокумента.ГоловнаяОрганизация, ВыборкаПоШапкеДокумента.ОбособленноеПодразделение,,Истина); Иначе ПроведениеРасчетовПереопределяемый.РассчитатьЗаписиРегистраРасчета("ОсновныеНачисленияРаботниковОрганизаций", НаборОсновныеНачисления, , , ВыборкаПоШапкеДокумента.ГоловнаяОрганизация, ВыборкаПоШапкеДокумента.ОбособленноеПодразделение); КонецЕсли; КонецЕсли; Если НаборДополнительныеНачисления.Количество() > 0 Тогда НаборОсновныеНачисления.Записать(Истина, Истина); Если РассчитываемыеТаблицы.РасчетСреднего Тогда ПроведениеРасчетовПереопределяемый.РассчитатьЗаписиРегистраРасчета("ДополнительныеНачисленияРаботниковОрганизаций", НаборДополнительныеНачисления, , НаборРасчетСреднего, ВыборкаПоШапкеДокумента.ГоловнаяОрганизация, ВыборкаПоШапкеДокумента.ОбособленноеПодразделение); Иначе ПроведениеРасчетовПереопределяемый.РассчитатьЗаписиРегистраРасчета("ДополнительныеНачисленияРаботниковОрганизаций", НаборДополнительныеНачисления, , , ВыборкаПоШапкеДокумента.ГоловнаяОрганизация, ВыборкаПоШапкеДокумента.ОбособленноеПодразделение); КонецЕсли; НаборДополнительныеНачисления.Записать(Истина, Истина); // повторный расчет на случай зависимости основных начислений от дополнительных ПроведениеРасчетовПереопределяемый.РассчитатьЗаписиРегистраРасчета("ОсновныеНачисленияРаботниковОрганизаций", НаборОсновныеНачисления, , , ВыборкаПоШапкеДокумента.ГоловнаяОрганизация, ВыборкаПоШапкеДокумента.ОбособленноеПодразделение,,Истина); КонецЕсли; // перепишем записи основных начислений в документ ЗаписиНачислений = НаборОсновныеНачисления.Выгрузить(); ЗаписиНачислений.Колонки.ПериодДействияНачало.Имя = "ДатаНачала"; ЗаписиНачислений.Колонки.ПериодДействияКонец.Имя = "ДатаОкончания"; Начисления.Загрузить(ЗаписиНачислений); Если НаборДополнительныеНачисления.Количество() > 0 Тогда // перепишем записи начислений в документ ЗаписиНачислений = НаборДополнительныеНачисления.Выгрузить(); ЗаписиНачислений.Колонки.БазовыйПериодНачало.Имя = "ДатаНачала"; ЗаписиНачислений.Колонки.БазовыйПериодКонец.Имя = "ДатаОкончания"; Для каждого СтрокаТаблицы Из ЗаписиНачислений Цикл СтрокаТабличнойЧасти = Начисления.Добавить(); ЗаполнитьЗначенияСвойств(СтрокаТабличнойЧасти,СтрокаТаблицы); КонецЦикла; КонецЕсли; ИначеЕсли РассчитываемыеТаблицы.РасчетСреднего Тогда НаборОсновныеНачисления.Записать(Истина, Ложь, Истина, Ложь); НаборДополнительныеНачисления.Записать(Истина, Ложь, Истина, Ложь); Если НаборОсновныеНачисления.Количество() > 0 Тогда ПроведениеРасчетовПереопределяемый.СформироватьИЗаписатьДанныеРасчетаСреднего("ОсновныеНачисленияРаботниковОрганизаций", Ссылка, НаборРасчетСреднего); КонецЕсли; Если НаборДополнительныеНачисления.Количество() > 0 Тогда ПроведениеРасчетовПереопределяемый.СформироватьИЗаписатьДанныеРасчетаСреднего("ДополнительныеНачисленияРаботниковОрганизаций", Ссылка, НаборРасчетСреднего); КонецЕсли; КонецЕсли; Если РассчитываемыеТаблицы.РасчетСреднего Тогда // перепишем записи расчета среднего заработка в документ РасчетСреднегоПоКалендарным.Очистить(); РасчетСреднегоПоШестидневке.Очистить(); ВременнаяТЗ = НаборРасчетСреднего.Выгрузить(); ВременнаяТЗ.Свернуть("СпособРасчета,БазовыйПериодКонец,БазовыйПериодНачало,ВидРасчета,КоэффициентИндексации,НормаПоПятидневке,ОтработаноДней,ОтработаноПоПятидневке,ОтработаноЧасов,Результат,ЧислоМесяцев"); // перепишем записи расчета среднего заработка в документ Для Каждого СтрокаНабора Из ВременнаяТЗ Цикл Если СтрокаНабора.СпособРасчета = Перечисления.СпособыРасчетаОплатыТруда.ПоСреднемуЗаработкуДляОтпускаПоКалендарнымДням Тогда СтрокаТЧ = РасчетСреднегоПоКалендарным.Добавить(); Иначе СтрокаТЧ = РасчетСреднегоПоШестидневке.Добавить(); КонецЕсли; ЗаполнитьЗначенияСвойств(СтрокаТЧ,СтрокаНабора); КонецЦикла; КонецЕсли; Если ПроведениеРасчетовПереопределяемый.ЗаписыватьДвиженияПриРасчетеДокументаСреднегоЗаработка(РассчитываемыеТаблицы, РежимПерерасчета) Тогда Если НаборОсновныеНачисления.Модифицированность() Тогда НаборОсновныеНачисления.Записать(Истина, Ложь, Истина, Ложь); КонецЕсли; Если НаборДополнительныеНачисления.Модифицированность() Тогда НаборДополнительныеНачисления.Записать(Истина, Ложь, Истина, Ложь); КонецЕсли; Если НаборРасчетСреднего.Модифицированность() Тогда НаборРасчетСреднего.Записать(Истина, Ложь, Истина, Ложь); КонецЕсли; ПроведениеРасчетовПереопределяемый.ВыполнитьДополнительныеДействияПриРасчетеДокументаСреднегоЗаработка(ЭтотОбъект); КонецЕсли; Если Не РежимПерерасчета тогда // Удаляем движения для режима интерактивного расчета НаборОсновныеНачисления.Очистить(); НаборОсновныеНачисления.Записать(Истина, Ложь, Истина, Ложь); НаборДополнительныеНачисления.Очистить(); НаборДополнительныеНачисления.Записать(Истина, Ложь, Истина, Ложь); НаборРасчетСреднего.Очистить(); НаборРасчетСреднего.Записать(Истина, Ложь, Истина, Ложь); КонецЕсли; КонецПроцедуры // РассчитатьНачисления() // Выполняет перерасчет по заданному списку физлиц // Параметры // Физлица - массив - ссылки на физлиц // Возвращаемое значение // Нет // Процедура Перерассчитать(Физлица = Неопределено) Экспорт // проверим можно ли что-то делать с документом ОписаниеПричиныОтказа = ""; Если ПроведениеРасчетов.ДокументНельзяИзменятьЗаднимЧислом(Ссылка, ОписаниеПричиныОтказа) Тогда ВызватьИсключение(ОписаниеПричиныОтказа); КонецЕсли; ВыборкаПоШапкеДокумента = СформироватьЗапросПоШапке().Выбрать(); ВыборкаПоШапкеДокумента.Следующий(); // Выполним полный перерасчет документа Рассчитать(Новый Структура("Начисления,РасчетСреднего",Истина,Истина), Истина, ВыборкаПоШапкеДокумента); // Зафиксируем данные табличных частей после расчета Записать(); НачислениеОтпускаРаботникамОрганизацийПереопределяемый.ПереписатьПрочиеДвиженияПриПерерасчете(ЭтотОбъект, ВыборкаПоШапкеДокумента); // Удалим записи перерасчета по которым выполнен перерасчет ПроведениеРасчетов.УдалитьСведенияОПерерасчетеДокумента(Ссылка); КонецПроцедуры // Перерассчитать() // Возвращает доступные варианты печати документа // // Возвращаемое значение: // Структура, каждая строка которой соответствует одному из вариантов печати // Функция ПолучитьСтруктуруПечатныхФорм() Экспорт СтруктураПечатныхФорм = НачислениеОтпускаРаботникамОрганизацийПереопределяемый.ПолучитьСтруктуруРегламентированныхФорм(ЭтотОбъект); //СтруктураПечатныхФорм.Вставить("РасчетОсновногоОтпуска", "Расчет среднего основного отпуска"); //СтруктураПечатныхФорм.Вставить("РасчетДополнительногоОтпуска", "Расчет среднего дополнительного отпуска"); //СтруктураПечатныхФорм.Вставить("РасчетКомпенсацииОтпуска", "Расчет среднего компенсации отпуска"); Возврат СтруктураПечатныхФорм; КонецФункции // ПолучитьСтруктуруПечатныхФорм() Функция ОсновнойВариантРасчетаДокумента() Экспорт Если ОсновнойОтпуск Тогда Если ПорядокРасчетаОсновногоОтпуска = Перечисления.ПорядокРасчетаОтпуска.ПоКалендарнымДням Тогда Возврат Новый Структура("ВидРасчета, СпособРасчета", ПланыВидовРасчета.ОсновныеНачисленияОрганизаций.ОплатаПоСреднемуОтпКалендарныеДни,Перечисления.СпособыРасчетаОплатыТруда.ПоСреднемуЗаработкуДляОтпускаПоКалендарнымДням) Иначе Возврат Новый Структура("ВидРасчета, СпособРасчета", ПланыВидовРасчета.ОсновныеНачисленияОрганизаций.ОплатаПоСреднемуОтпШестидневка, Перечисления.СпособыРасчетаОплатыТруда.ПоСреднемуЗаработкуДляОтпускаПоШестидневке) КонецЕсли; ИначеЕсли ДополнительныйОтпуск Тогда Возврат Новый Структура("ВидРасчета, СпособРасчета", ВидРасчетаДополнительногоОтпуска, ПроведениеРасчетов.ПолучитьСведенияОВидеРасчета(мСведенияОВидахРасчета, ВидРасчетаДополнительногоОтпуска).СпособРасчета); ИначеЕсли КомпенсацияОтпуска Тогда Если ПорядокРасчетаКомпенсацииОтпуска = Перечисления.ПорядокРасчетаОтпуска.ПоКалендарнымДням Тогда Возврат Новый Структура("ВидРасчета, СпособРасчета", ПланыВидовРасчета.ДополнительныеНачисленияОрганизаций.КомпенсацияОтпускаКалендарныеДниБезУвольнения, Перечисления.СпособыРасчетаОплатыТруда.ПоСреднемуЗаработкуДляОтпускаПоКалендарнымДням) Иначе Возврат Новый Структура("ВидРасчета, СпособРасчета", ПланыВидовРасчета.ДополнительныеНачисленияОрганизаций.КомпенсацияОтпускаШестидневкаБезУвольнения, Перечисления.СпособыРасчетаОплатыТруда.ПоСреднемуЗаработкуДляОтпускаПоШестидневке) КонецЕсли; Иначе Возврат Новый Структура("ВидРасчета, СпособРасчета",Неопределено,Неопределено) КонецЕсли; КонецФункции // ОсновнойСпособРасчетаСреднего() Процедура ОпределитьРасчетныйПериод() Экспорт Если ЗначениеЗаполнено(ДатаНачалаСобытия) Тогда ВидРасчета = ОсновнойВариантРасчетаДокумента().ВидРасчета; Если ЗначениеЗаполнено(ВидРасчета) Тогда СведениеОВидеРасчета = ПроведениеРасчетов.ПолучитьСведенияОВидеРасчета(мСведенияОВидахРасчета, ВидРасчета); МесяцевРасчетногоПериода = ?(СведениеОВидеРасчета.ПорядокОпределенияРасчетногоПериодаСреднегоЗаработка = Перечисления.ПорядокОпределенияРасчетногоПериодаСреднегоЗаработка.ПоКолдоговору,СведениеОВидеРасчета.ПериодРасчетаСреднегоЗаработка,НачислениеОтпускаРаботникамОрганизацийПереопределяемый.КоличествоМесяцевРасчетаПоЗакону(ЭтотОбъект)); Иначе МесяцевРасчетногоПериода = 12 КонецЕсли; ПериодРасчетаСреднегоЗаработкаНачало = ДобавитьМесяц(НачалоМесяца(ДатаНачалаСобытия), - МесяцевРасчетногоПериода); ПериодРасчетаСреднегоЗаработкаОкончание = НачалоМесяца(ДатаНачалаСобытия) - 1; Иначе ПериодРасчетаСреднегоЗаработкаНачало = ""; ПериодРасчетаСреднегоЗаработкаОкончание = "" КонецЕсли; КонецПроцедуры #Если Клиент Тогда // Процедура осуществляет печать документа. Можно направить печать на // экран или принтер, а также распечатать необходимое количество копий. // // Название макета печати передается в качестве параметра, // по переданному названию находим имя макета в соответствии. // // Параметры: // НазваниеМакета - строка, название макета. // Функция Печать(ИмяМакета, КоличествоЭкземпляров = 1, НаПринтер = Ложь) Экспорт Если Не Проведен Тогда РаботаСДиалогами.ВывестиПредупреждение("Документ можно распечатать только после расчета и проведения!"); Возврат Неопределено; КонецЕсли; Если Не РаботаСДиалогами.ПроверитьМодифицированность(ЭтотОбъект) Тогда Возврат Неопределено; КонецЕсли; ОбработкаКомментариев = глЗначениеПеременной("глОбработкаСообщений"); ОбработкаКомментариев.УдалитьСообщения(); // Получить экземпляр документа на печать Если ИмяМакета = "РасчетОсновногоОтпуска" Тогда Если Не ОсновнойОтпуск Тогда ОбщегоНазначения.ВывестиИнформациюОбОшибке("По документу не оплачивается основной отпуск!"); Иначе ВыборкаПоШапкеДокумента = СформироватьЗапросПоШапке().Выбрать(); ВыборкаПоШапкеДокумента.Следующий(); ТабДокумент = ФормированиеПечатныхФормЗК.ПечатьРасчетаСреднегоЗаработка(Ссылка, ДатаНачалаСобытия, ВыборкаПоШапкеДокумента.ПериодРасчетаОсновногоОтпуска, "с " + Формат(ДатаНачалаОсновногоОтпуска,"ДФ=dd.MM.yyyy") + " по " + Формат(ДатаОкончанияОсновногоОтпуска,"ДФ=dd.MM.yyyy"), ?(ПорядокРасчетаОсновногоОтпуска = Перечисления.ПорядокРасчетаОтпуска.ПоКалендарнымДням,Перечисления.СпособыРасчетаОплатыТруда.ПоСреднемуЗаработкуДляОтпускаПоКалендарнымДням,Перечисления.СпособыРасчетаОплатыТруда.ПоСреднемуЗаработкуДляОтпускаПоШестидневке), НачислениеОтпускаРаботникамОрганизацийПереопределяемый.ИспользуетсяСреднеЧасовойЗаработок(ЭтотОбъект)); Возврат УниверсальныеМеханизмы.НапечататьДокумент(ТабДокумент, КоличествоЭкземпляров, НаПринтер, ОбщегоНазначения.СформироватьЗаголовокДокумента(ЭтотОбъект,Метаданные().Синоним) + " (расчет среднего заработка основного отпуска)", ТабДокумент); КонецЕсли; ИначеЕсли ИмяМакета = "РасчетДополнительногоОтпуска" Тогда Если Не ДополнительныйОтпуск Тогда ОбщегоНазначения.ВывестиИнформациюОбОшибке("По документу не оплачивается дополнительный отпуск!"); Иначе ВыборкаПоШапкеДокумента = СформироватьЗапросПоШапке().Выбрать(); ВыборкаПоШапкеДокумента.Следующий(); ТабДокумент = ФормированиеПечатныхФормЗК.ПечатьРасчетаСреднегоЗаработка(Ссылка, ДатаНачалаСобытия, ВыборкаПоШапкеДокумента.ПериодРасчетаДополнительногоОтпуска, "с " + Формат(ДатаНачалаДополнительногоОтпуска,"ДФ=dd.MM.yyyy") + " по " + Формат(ДатаОкончанияДополнительногоОтпуска,"ДФ=dd.MM.yyyy"), ВидРасчетаДополнительногоОтпуска.СпособРасчета, НачислениеОтпускаРаботникамОрганизацийПереопределяемый.ИспользуетсяСреднеЧасовойЗаработок(ЭтотОбъект)); Возврат УниверсальныеМеханизмы.НапечататьДокумент(ТабДокумент, КоличествоЭкземпляров, НаПринтер, ОбщегоНазначения.СформироватьЗаголовокДокумента(ЭтотОбъект,Метаданные().Синоним) + " (расчет среднего заработка дополнительного отпуска)", ТабДокумент); КонецЕсли; ИначеЕсли ИмяМакета = "РасчетКомпенсацииОтпуска" Тогда Если Не КомпенсацияОтпуска Тогда ОбщегоНазначения.ВывестиИнформациюОбОшибке("По документу не оплачивается компенсация отпуска!"); Иначе ВыборкаПоШапкеДокумента = СформироватьЗапросПоШапке().Выбрать(); ВыборкаПоШапкеДокумента.Следующий(); ТабДокумент = ФормированиеПечатныхФормЗК.ПечатьРасчетаСреднегоЗаработка(Ссылка, ДатаНачалаСобытия, ВыборкаПоШапкеДокумента.ПериодРасчетаКомпенсацииОтпуска, "за " + ДнейЧасовКомпенсацииОтпуска + " дней(часов) компенсации отпуска", ?(ПорядокРасчетаКомпенсацииОтпуска = Перечисления.ПорядокРасчетаОтпуска.ПоКалендарнымДням,Перечисления.СпособыРасчетаОплатыТруда.ПоСреднемуЗаработкуДляОтпускаПоКалендарнымДням,Перечисления.СпособыРасчетаОплатыТруда.ПоСреднемуЗаработкуДляОтпускаПоШестидневке), НачислениеОтпускаРаботникамОрганизацийПереопределяемый.ИспользуетсяСреднеЧасовойЗаработок(ЭтотОбъект)); Возврат УниверсальныеМеханизмы.НапечататьДокумент(ТабДокумент, КоличествоЭкземпляров, НаПринтер, ОбщегоНазначения.СформироватьЗаголовокДокумента(ЭтотОбъект,Метаданные().Синоним) + " (расчет среднего заработка компенсации отпуска)", ТабДокумент); КонецЕсли; ИначеЕсли ЗначениеЗаполнено(ИмяМакета) Тогда ТабДокумент = НачислениеОтпускаРаботникамОрганизацийПереопределяемый.РегламентированнаяПечатнаяФорма(ЭтотОбъект, ИмяМакета); Возврат УниверсальныеМеханизмы.НапечататьДокумент(ТабДокумент, КоличествоЭкземпляров, НаПринтер, ОбщегоНазначения.СформироватьЗаголовокДокумента(ЭтотОбъект,Метаданные().Синоним) + НачислениеОтпускаРаботникамОрганизацийПереопределяемый.ОписаниеРегламентированнойПечатнойФормы(ЭтотОбъект, ИмяМакета), ТабДокумент); КонецЕсли; ОбработкаКомментариев.ПоказатьСообщения(); Возврат Неопределено; КонецФункции // Печать() #КонецЕсли //////////////////////////////////////////////////////////////////////////////// // ПРОЦЕДУРЫ И ФУНКЦИИ ОБЩЕГО НАЗНАЧЕНИЯ // Выполняет проверку непрерывности интервалов начислений // Процедура ПроверитьНепрерывностьЗаписейНачислений(Отказ) Если Начисления.Количество() = 0 Тогда Возврат; КонецЕсли; ТНачислений = Начисления.Выгрузить(); ТНачислений.Сортировать("ДатаНачала"); ПредыдущаяДатаОкончания = '00010101'; СтрокаНеПервая = Ложь; Для Каждого Строка ИЗ ТНачислений Цикл Если Строка.Сторно ИЛИ Строка.ВидРасчета <> ПланыВидовРасчета.ОсновныеНачисленияОрганизаций.ОплатаПоСреднемуОтпКалендарныеДни И Строка.ВидРасчета <> ПланыВидовРасчета.ОсновныеНачисленияОрганизаций.ОплатаПоСреднемуОтпШестидневка И Строка.ВидРасчета <> ВидРасчетаДополнительногоОтпуска Тогда Возврат; КонецЕсли; // если встретили не первую строку начислений Если СтрокаНеПервая Тогда // строка не первая Если Строка.ДатаНачала <> ПредыдущаяДатаОкончания + мДлинаСуток Тогда СтрокаНачалаСообщенияОбОшибке = "В строке номер """+ СокрЛП(Строка.НомерСтроки) + """ табл. части ""Начисления"": "; ОбщегоНазначения.ВывестиИнформациюОбОшибке(СтрокаНачалаСообщенияОбОшибке + "нарушено требование непрерывности записей начислений!", Отказ); КонецЕсли; Иначе СтрокаНеПервая = Истина; КонецЕсли; ПредыдущаяДатаОкончания = Строка.ДатаОкончания; КонецЦикла; КонецПроцедуры // ПроверитьНепрерывностьЗаписейНачислений() // Формирует записи регистра "ОсновныеНачисленияРаботниковОрганизаций" по данным шапки документа // Процедура СформироватьДвиженияПоНачислениям(ВыборкаПоШапкеДокумента, Набор |
|||
14
Отладчик
29.06.14
✎
19:29
|
Да ты зверь..
|
|||
15
acanta
29.06.14
✎
19:29
|
Я не знаю КакУВасВВосьмерке, но в 7.7 это было окошко в документе..
|
|||
16
Отладчик
29.06.14
✎
19:31
|
(15) Чо? ЗУП, равно как и ЗиК никогда не поддавался программированию. Ну, среди уважающих себя людей.
Промозговать то можно. Тока нах? |
|||
17
Vyacheslav 777
29.06.14
✎
19:33
|
Армандо?
|
|||
18
Vyacheslav 777
29.06.14
✎
19:33
|
Можете просто просматрев сказать: Засунь вот сюда и все
|
|||
19
Отладчик
29.06.14
✎
19:33
|
(13) Завтра, извини. Если на работу выйду.
Я за домашним ноутом - у меня никаких подручных инструментов нету под рукой(только ключ на 42 в кармане). |
|||
20
Отладчик
29.06.14
✎
19:35
|
(17) - Армандо умер.
- Мои соболезнования. - Ооо! Армандо жив! |
|||
21
Vyacheslav 777
29.06.14
✎
19:36
|
))) Завтра мне на работе вот это вот и надо бы)
|
|||
22
acanta
29.06.14
✎
19:37
|
ФормированиеПечатныхФормЗК.ПечатьРасчетаСреднегоЗаработка
а там чего? |
|||
23
Armando
29.06.14
✎
20:14
|
(11) Уволь себя. Я автору предложил отладчиком попользоваться.
|
|||
24
шаэс
29.06.14
✎
20:45
|
(21) а Вы документ в пользовательском режиме открывали? Там же этот заработок в паре мест на форму выведен. Неужели не найдете?
|
|||
25
mdocs
29.06.14
✎
23:06
|
Отпуск уже года три только по дням считается, не мучий попу.
|
|||
26
SeraFim
30.06.14
✎
05:58
|
Не путай, что ты хочешь сделать?
Рассчитать средний заработок или вывести на печатную формулу? |
|||
27
SeraFim
30.06.14
✎
05:58
|
*вывести на печатную форму
|
|||
28
Vyacheslav 777
30.06.14
✎
07:02
|
Хочу чтобы в печатной форме отображался Средний зароботок.
|
|||
29
Фокусник
30.06.14
✎
07:06
|
(28) волшебной палочкой не забыл взмахнуть?
А то желание не исполнится ;) |
|||
30
Vyacheslav 777
30.06.14
✎
07:08
|
)))) У меня Борода)
|
|||
31
Vyacheslav 777
30.06.14
✎
07:09
|
Подскажите куда прописать код? В модуль объекта? а какая процедура?
|
|||
32
SeraFim
30.06.14
✎
07:57
|
Судя по всему
НачислениеОтпускаРаботникамОрганизацийПереопределяемый.РегламентированнаяПечатнаяФорма |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |