как отразить часы в ЖурналеРасчетовЗарплата

1. VASYA 18.12.07 21:22 Сейчас в теме
Привет Всем!
В ЗиК в док НачисленияУдержанияСписком в табличной части добавил реквизит часы, нужно было отразить для ряда начислений регистрацию времени.
Что нужно сделать чтобы эти часы попали в ЖурналРасчетовЗарплата???
Направте в нужном направлении пожалуйста. Заранее Всем Спасибо!

Добавил в обработке проведения
ЖурналРасчетовЗарплата = СоздатьОбъект("ЖурналРасчетов.Зарплата");
ЖурналРасчетовЗарплата.УстановитьРеквизит("Часы",Ч асы);
ЖурналРасчетовЗарплата.ВвестиРасчет(Сотрудник,Расч ет,Начало,Окончание,Сумма);
Это все вроде понятно но при попытке провести док выдает сообщение, ошибку

ЖурналРасчетовЗарплата.ВвестиРасчет(Сотрудник,Расч ет,Начало,Окончание,Сумма);
{Документ.НачисленияУдержанияСписком.Модуль Документа(271)}: Объект расчета не найден!

Документ не проведен

Перепробовал разные варианты не пойму в чем проблема???


Ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. Mordens 91 20.12.07 13:18 Сейчас в теме
Ну НачисленияУдержанияСписком это документ...который помогает внести в ЖурналРасчетовЗарплата запись, какого либо ВИД РАСЧЕТА...

<отразить для ряда начислений регистрацию времени.
??? для расчета чтоль? в смысле для способа расчета по часам?

Непойму что Вы хотите сделать...те более в этом документе...

<ЖурналРасчетовЗарплата.ВвестиРасчет(Сотрудник,Расчет,Начало,Окончание,Сумма);
И как вы вводите расчет ...Сумма то откуда взялась?
передается ВЕЛИЧИНА...покрайней мере в этом документе...а уж "Результат" (В ЖРЗ именно такой реквизит, а не СУММА) ...высчитывается в модуле РАСЧЕТА...

В общем надо подробнее описать что хотите и зачем
3. Mordens 91 20.12.07 13:31 Сейчас в теме
<ЖурналРасчетовЗарплата.ВвестиРасчет(Сотрудник,Расч ет,Начало,Окончание,Сумма);
<{Документ.НачисленияУдержанияСписком.Модуль Документа(271)}: Объект расчета не найден!

И насчет ошибки ...это многострочный докумет...надо передавать строку документа, не Сотрудника

ЖурналРасчетовЗарплата.УстановитьРеквизит("НомерСтрокиДокумента", НомерСтроки);
4. VASYA 21.12.07 05:37 Сейчас в теме
Если ПустоеЗначение(Сотрудник)=1 Тогда
Продолжить
КонецЕсли;


Если НерегистрируемоеВНачисленииУдержании = 1 Тогда

ЖурналРасчетовЗарплата = СоздатьОбъект("ЖурналРасчетов."+?(Дополнительный = 1,"Дополнительный","Зарплата"));
ДатаН = ?(Расчет.ВходитВГруппу(ГруппаРасчетов.НерегистрируемыеВНачисленииУдержании)=0,?(Начало=Дата(0),ДатаДок,Начало),ДатаДок);
ДатаК = ?(Расчет.ВходитВГруппу(ГруппаРасчетов.НерегистрируемыеВНачисленииУдержании)=0,?(Окончание=Дата(0),ДатаДок,Окончание),ДатаДок);


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

Если Дополнительный = 0 Тогда
Если ОблагаетсяПоСтавке35 = 1 Тогда // ввод записей по другим ставкам

......................

А, что здесь строка не передается?
С ошибкой разобрался, не в том месте добавил вышеизложенные строки, а часы все равно не отображаются в журналеРасчетовЗарплата.
Если кто конкретно знает, подскажите конкретно, а не морочте голову сбивая мысли.
Всем огромное спасибо!
5. Mordens 91 21.12.07 09:39 Сейчас в теме
Во...я морочу голову...надо хотябы немного знать компоненту расчет...я не говорю о ЗиК...
<передается ВЕЛИЧИНА...покрайней мере в этом документе...а уж "Результат" (В ЖРЗ именно такой <реквизит, а не СУММА) ...высчитывается в модуле РАСЧЕТА...
Ну ладно...вот кусок модуля для конкретно ввода...только "в то место добавте вышеуказанные строки"...
//******************************************************************************
// Предопределенная процедура
//
Процедура ПровестиРасчет()
Если Документ.Вид() = "НачисленияУдержанияСписком" Тогда
Если Документ.ПолучитьСтрокуПоНомеру(НомерСтрокиДокумента) > 0 Тогда
Результат = Документ.Величина;
Часы = Документ.Часы;
КонецЕсли;
КонецЕсли;
КонецПроцедуры // ПровестиРасчет
6. Mordens 91 21.12.07 14:59 Сейчас в теме
В документе НачисленияУдержанияСписком ...в модуле не надо передавать
ЖурналРасчетовЗарплата.УстановитьРеквизит("Часы", Часы);
..да и вообще снесите что дописывали...оставте поле Часы...
можно дописать условие (в модуле формы отчета)...ну чтоб не на все расчеты показывалась это поле

в расчете который вы ставите в документе ...в его модуле!!!

добавте строку ...где Результат = "какоето выражение";
Часы = Документ.Часы;

если стоит
глВыполнитьПроизвольныйРасчет(Контекст);
или
другое из процедур глобального модуля
то это снести и написать свою..или дописать

Процедура ПровестиРасчет()
**************************
Если (Исправлена=1) или (Фиксирована=1) Тогда
глСообщениеТрассировки(глСообщенияТрассировки, "" + ?(Исправлена=1,"Результат записи исправлен вручную","Запись фиксирована") + ". Расчет не проводился.", 0, 1);

Возврат
КонецЕсли;
Результат = Документ.Величина;
Часы = Документ.Часы;
КонецПроцедуры // ПровестиРасчет()

тоды когда вводите документ...в ЖурналРасчетовЗарплата появляется нерасчитанная запись...расчет,начало,Окончание,результат(0),Часы(0)

при выполнении расчета ...появятся ваши часы
что непонятно пишите...но вразумительно
Без обид

7. VASYA 21.12.07 15:11 Сейчас в теме
Мне посоветовали решить таким образом
В глобальном модуле добавил ЖурналРасчетов.Часы=ДокументИзЖурнала.Часы;
............................................
............................................
............................................
Если ДокументИзЖурнала.Вид()="НачисленияУдержанияСотрудника" Тогда
Величина = ДокументИзЖурнала.Величина;
ВТекущемЗаИстекший = ДокументИзЖурнала.ВТекущемЗаИстекший;
// определим формат числа в документе:
ВеличинаСтрокой = СокрЛП(Строка(Величина));
ФорматЧисла = ?(СтрДлина(ВеличинаСтрокой) - Найти(ВеличинаСтрокой,".") = 3,"Ч15.3","Ч15.2");
глСообщениеТрассировки(глСообщенияТрассировки, "Величина "+?(ВР.ВходитВГруппу(ГруппаРасчетов.ВсеУдержания)=0,"начисления","удержания")+" _П01 введена документом ""Ввод расчета сотруднику""" , 0, 1, Величина, ФорматЧисла);
ИначеЕсли ДокументИзЖурнала.Вид() = "НачисленияУдержанияСписком" Тогда
Если ЖурналРасчетов.НомерСтрокиДокумента > 0 Тогда
ДокументИзЖурнала.ПолучитьСтрокуПоНомеру(ЖурналРасчетов.НомерСтрокиДокумента);
Величина = ДокументИзЖурнала.Величина;
ВТекущемЗаИстекший = ДокументИзЖурнала.ВТекущемЗаИстекший;

//Изменения от Меня
ЖурналРасчетов.Часы=ДокументИзЖурнала.Часы; // Я добавил часы
// Здесь заканчиваються изменения от Меня

// определим формат числа в документе:
ВеличинаСтрокой = СокрЛП(Строка(Величина));
ФорматЧисла = ?(СтрДлина(ВеличинаСтрокой) - Найти(ВеличинаСтрокой,".") = 3,"Ч15.3","Ч15.2");
глСообщениеТрассировки(глСообщенияТрассировки, "Величина "+?(ВР.ВходитВГруппу(ГруппаРасчетов.ВсеУдержания)=0,"начисления","удержания")+" _П01 введена "+ЖурналРасчетов.НомерСтрокиДокумента+" строкой документа ""Ввод расчета списку сотрудников""" , 0, 1, Величина, ФорматЧисла);
Иначе
....................................
....................................
....................................

и все заработало так как надо, но Ваш вариант обязательно попробую реализовать,
большое спасибо за отзыв помощи и извините пожалуйста если чем огорчил.
С Наступающим Новым Годом Уважаемые Форумчане!
8. Mordens 91 21.12.07 15:24 Сейчас в теме
Обязательно попробуйте...и отпишите
Вас также с С Наступающим Новым Годом!
9. Mordens 91 21.12.07 15:30 Сейчас в теме
<//Изменения от Меня
<ЖурналРасчетов.Часы=ДокументИзЖурнала.Часы; // Я добавил часы
<// Здесь заканчиваються изменения от Меня

Это тож самое...но если в модуле присутствует
глВыполнитьПроизвольныйРасчет(Контекст);

в принципе все правильно!!!
Оставьте свое сообщение

Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот