ЗиК ТК 7.70. 269 Начисление отпуска

Новая тема
Есть ли возможность по документу ПриказПоОтпуску сразу и всегда формировать документ НачислениеОтпуска?
Сейчас он создается как "ввести на основании" приказа, и остается возможность просто забыть его создать. Приказ на отпуск создается в отделе кадров, начисление отпуска - в расчетном отделе.
Спасибо.
Возможность есть, но нужна помощь программиста
Спасибо,попробую.
Вообще то за начисление отпуска ответственность несет расчетчик,
и он имеет право начислять только после того, как получит приказ подписанный всеми ответственными лицами.
А Приказ созданный отделом кадров могут и не подписать.
Поэтому создавать расчет безусловия - нельзя.
Я для некоторых клиентов (по их просьбе) сделал, чтобы при проведении "ПриказПоОтпуску" создавался, но не проводился соотв. "НачислениеОтпуска". Почему нельзя автоматически проводить - надеюсь, понятно (см. выше).
Интересная идея.
И расчетчик сразу видит, какие документы должны принести да забыли.
Может уточнить.
<<Я для некоторых клиентов (по их просьбе) сделал, чтобы при проведении "ПриказПоОтпуску" создавался, но не проводился соотв. "НачислениеОтпуска". Почему нельзя автоматически проводить - надеюсь, понятно (см. выше).


Если не трудно!!!!
Подскажите ПЛИЗ как вы енто сделали!!!
ТОЖЕ ХОЧУ!!!!

Заранее БЛАГОДАРЕН!!!!
"Форма-документ.ПриказПоОтпуску:

Процедура ПровестиИзФормы(НажатаКнопкаОК=0)

Записать();
Если Проверка()=1 Тогда
Если Провести(,ОбработчикСообщений)=0 Тогда
глДобавитьСообщение(ОбработчикСообщений, "Документ не проведен.",ТекущийДокумент());
КонецЕсли;
КонецЕсли;
глОткрытьОбработчик(ОбработчикСообщений, Вид()+НомерДок);

// изменение для создания док-та НачислениеОтпуска
Права = НазваниеНабораПрав(0);
Если (Права = "Расчетчик") или (Права= "Полные права") Тогда

Документы = СоздатьОбъект("Документ");
//среди подчиненных могут быть: начисление з-ты, начисление компенсаци отпуска, выходное пособие
БылаКомпенсация=0;
Если Документы.ВыбратьПодчиненныеДокументы(,,ТекущийДокумент()) = 1 Тогда
//подчиненные нашлись, надо определить конкретнее
Пока Документы.ПолучитьДокумент()=1 Цикл
Если Документы.Вид()="НачислениеОтпуска" Тогда
БылаКомпенсация=1;
КонецЕсли;
КонецЦикла;
КонецЕсли;

Если (БылаКомпенсация=0) Тогда
Если Вопрос("Можно сформировать документ Начисление отпуска."+РазделительСтрок +
"Вы хотите сделать это сейчас?","Да+Нет") = "Да" тогда
ОписаниеНачислений = "Начисление отпускных";
ПараметрыКоманды = СоздатьОбъект("СписокЗначений");
ПараметрыКоманды.Установить("Сотрудник",Сотрудник);
ПараметрыКоманды.Установить("Дата",ДатаДок);
ПараметрыКоманды.Установить("Документ",ТекущийДокумент());
ПараметрыКоманды.Установить("Дней",КоличествоДнейОтпуска);
глОткрытьФормуИВыполнитьКоманду("Документ.НачислениеОтпуска","ПриказНаОтпуск",ПараметрыКоманды);

КонецЕсли;
КонецЕсли;
КонецЕсли;

// если вызвали через кнопку ОК, то закроем форму
// и обработчик соообщений пуст
Если (НажатаКнопкаОК=1)и(глПустойОбработчик(ОбработчикСообщений)=1) Тогда
Форма.Закрыть();
КонецЕсли;

КонецПроцедуры // ПровестиИзФормы

В Форма-Документ.НачислениеОтпуска:

Процедура ПриОткрытии()
Перем ПараметрыКоманды; // параметры команды при открытии

// если открыли для заполнения
Если глВыполнитьКомандуФормы(Контекст,"Заполнить",ПараметрыКоманды)=1 Тогда
глЗаполнитьДокумент(ПараметрыКоманды, Контекст);
ИначеЕсли глВыполнитьКомандуФормы(Контекст, "ЗаполнитьИзПомощника", ПараметрыКоманды) = 1 Тогда  
глЗаполнитьДокументИзПомощника(Контекст, ПараметрыКоманды);
Записать();
Открыть = ПараметрыКоманды.Получить("СтатусВозврата");
СтатусВозврата(Открыть);
ИначеЕсли глВыполнитьКомандуФормы(Контекст,"КомпенсацияОтпуска",ПараметрыКоманды)=1 Тогда // если открыли на основании увольнения (компенсация отпуска при увольнении)
ДатаДок         = ПараметрыКоманды.Получить("Дата");
УстановитьНовыйНомер();
Сотрудник = ПараметрыКоманды.Получить("Сотрудник");
ДокОснование = ПараметрыКоманды.Получить("Документ");
Если ДокОснование.ДнейКомпенсацииОтпуска >= 0  Тогда
ВидОтпуска = ВидРасчета.КомпенсацияОтпуска;
Иначе
ВидОтпуска = ВидРасчета.УдержаниеЗаНеотработанныйОтпуск
КонецЕсли;
Если глПолучитьПорядокРасчетаСреднегоЗаработка(ДатаДок)=2 Тогда
КоличествоМесяцев = 2;    
Иначе
КоличествоМесяцев = 1;
КонецЕсли;
// изменение для вызова из ПриказНаОтпуск
ИначеЕсли глВыполнитьКомандуФормы(Контекст,"ПриказНаОтпуск",ПараметрыКоманды)=1 Тогда // если открыли на основании увольнения (компенсация отпуска при увольнении)
ДатаДок         = ПараметрыКоманды.Получить("Дата");
УстановитьНовыйНомер();
Сотрудник = ПараметрыКоманды.Получить("Сотрудник");
ДокОснование = ПараметрыКоманды.Получить("Документ");
ВидОтпуска    = ДокОснование.ВидОтпуска;
Начало                  = ДокОснование.Начало;
Окончание               = ДокОснование.Окончание;
ТипРасчетаОтпуска       = ДокОснование.ТипРасчетаОтпуска;
ТипРасчетаДополнительногоОтпуска      = ДокОснование.ТипРасчетаДополнительногоОтпуска;
ДатаВыходаНаРаботу    = ДокОснование.ДатаВыходаНаРаботу;
ДатаРожденияРебенка    = ДокОснование.ДатаРожденияРебенка;
ПроцентУчебногоОтпуска  = ДокОснование.ПроцентУчебногоОтпуска;
КоличествоДнейОтпуска   = ДокОснование.КоличествоДнейОтпуска;
КоличествоДнейДополнительногоОтпуска  = ДокОснование.КоличествоДнейДополнительногоОтпуска;
// изменение для вызова из ПриказНаОтпуск

Иначе
КонецЕсли;

// инициализация обработчика сообщений
ОбработчикСообщений = глСоздатьОбработчикСообщений(глПредставлениеДокумента(Контекст));
.................
"
Читают тему
(гостей: 1)

Быстрый переход