Заказы на доработку 1С (сервис удаленной работы)

Хранилище

База знаний
Бесплатные отчеты, обработки, конфигурации, внешние компоненты для 1С Статьи, описание работы, методики по работе с 1С

Здравствуйте, гость ( Вход | Зарегистрироваться )



> Оклад+Отпускные в Больничном листе          
akella Подменю пользователя
сообщение 22.03.10, 13:58
Сообщение #1

Говорящий
***
Группа: Пользователи
Сообщений: 54
Спасибо сказали: 0 раз
Рейтинг: 0

еще раз доброе время суток.

последний вопрос что меня интересует)

есть злополучный больничный лист. есть расчет оклада и количества календарных дней для 6 месяцев предшествующих месяцу ухода на больничный.

нужно при вычете оклада учитывать отпускные...цитирую " выплаты включаются в период, за который они начислены. Если отпускные начислены например, в июле за август и сентябрь, то они включаються соотвесвенно в августе и сентябре. Поэтому для поиска выплат нужно проверять ведомоти, начиная за 2 месяца до расчетного периода."

расчетный период это как раз и есть эти 6 месяцев предшествующие месяцу начала больничного листа.

не подскажите как тут быть?

я понимаю что нужно шерстить, документ с больничными и проверять его на наличие больничного для нашего сотрудника... но вот каким макаром..пока хз)

счас читаю книгу по 1с, мож там что найду))) а может и вы что подскажите..
буду очень признателен!!!
заранее спасибо)

alex1c Подменю пользователя
сообщение 22.03.10, 14:25
Сообщение #2

Завсегдатай
Иконка группы
Группа: Местный
Сообщений: 247
Спасибо сказали: 51 раз
Рейтинг: 46

а в какой конфе ты это делаешь?

akella Подменю пользователя
сообщение 22.03.10, 14:50
Сообщение #3

Говорящий
***
Группа: Пользователи
Сообщений: 54
Спасибо сказали: 0 раз
Рейтинг: 0

конфиг свой. не типовой

отпускные хрянятся в документе расчетная ведомость.
вот от туда их и нужно вытягивать..я пока никидал вот такую белиберду...если может кто поправьте)

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


        Пока РасчетВедомость.ПолучитьДокумент()>0 Цикл
            Если РасчетВедомость.ПометкаУдаления()=0 тогда   
                естьтведомость=1;
                Прервать;
            Конецесли;    
            Конеццикла;                                               
        

        Если Естьведомость=1 тогда
            расчетведомость.ВыбратьСтроки();
            Пока расчетведомость.Получитьстроку()<>0 цикл
                Если расчетведомость.Сотрудник=Сотрудник и расчетведомость.отпускные=отпускные тогда  
                 начислено=всегоначислено+отпускные;
                конецесли;
            конеццикла;
        Конецесли;
    конецесли;

alex1c Подменю пользователя
сообщение 22.03.10, 16:03
Сообщение #4

Завсегдатай
Иконка группы
Группа: Местный
Сообщений: 247
Спасибо сказали: 51 раз
Рейтинг: 46

Что такое отпускные в данном коде надо знать?
Ну а остальное где-то так...



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

		Пока РасчетВедомость.ПолучитьДокумент()>0 Цикл
			Если РасчетВедомость.ПометкаУдаления()=1 Тогда Продолжить; КонецЕсли;    
			расчетведомость.ВыбратьСтроки();
			Пока расчетведомость.Получитьстроку()<>0 цикл
				Если расчетведомость.Сотрудник=Сотрудник и расчетведомость.отпускные=отпускные Тогда  
					начислено=всегоначислено+отпускные;
				КонецЕсли;
			КонецЦикла;
		КонецЦикла;                                               
	КонецЕсли;



akella Подменю пользователя
сообщение 23.03.10, 10:41
Сообщение #5

Говорящий
***
Группа: Пользователи
Сообщений: 54
Спасибо сказали: 0 раз
Рейтинг: 0

спс Алекс)
вот что у меня получилось) в целом рабочая схема) почти, но есть 1 беда...почему то не выполняется выделенное условие...

    Отпускные=СоздатьОбъект("Справочник.ВидВыплаты");
    Отпускные.НайтиПоКоду("Отпуск");
    Ведомость=0;
    РасчетВедом=СоздатьОбъект("Документ.РасчетнаяВедомость");
    Если РасчетВедом.ВыбратьДокументы(НП1,КП1)=1  тогда
        Пока РасчетВедом.ПолучитьДокумент()>0 Цикл
            Если РасчетВедом.ПометкаУдаления()=0 тогда   
                Ведомость=1;
                Прервать;
            Конецесли;    
        Конеццикла;                                               
        Если Ведомость=1 тогда
            РасчетВедом.ВыбратьСтроки();
             Пока РасчетВедом.ПолучитьСтроку()<>0 цикл
                Если РасчетВедом.Сотрудник=Сотрудник тогда
                    [u][b]Если РасчетВедом.ВидВыплаты=Отпускные.ТекущийЭлемент() тогда  [/b][/u]
                    
                        Начислено=ВсегоНачисл+Отпускные;
                    иначе
                        Начислено=ВсегоНачисл;
                    конецесли;
                 конецесли;
             конеццикла;                       
        конецесли;
        
    конецесли;


даже если есть начисленные отпускные в нужном нам месяце, то почему то не считается....и не плюсуеться.

заранее спасибо) мож я где то туплю.?

MATEVI Подменю пользователя
сообщение 23.03.10, 11:28
Сообщение #6

Отдыхающий
Иконка группы
Ветеран троянской войныМодератору Про1С (за заслуги в 2011 году)
Группа: Местный
Сообщений: 2203
Из: Одесса
Спасибо сказали: 968 раз
Рейтинг: 796.3

А "Отпускные.НайтиПоКоду("Отпуск");" отрабатывает?
Находит этот справочник?

Начислено = 0;

И что такое "ВсегоНачисл"?

Ну и вообще как то сильно намудрил smile.gif Если уж выбрал такой метод почему не?
РасчетВедом= СоздатьОбъект("Документ.РасчетнаяВедомость");
РасчетВедом.УстановитьФильтр(1,0);
РасчетВедом.ВыбратьДокументы(НП1,КП1);
Пока РасчетВедом.ПолучитьДокумент() = 1 Цикл
РасчетВедом.ВыбратьСтроки();
Пока РасчетВедом.ПолучитьСтроку() = 1 Цикл
Если РасчетВедом.Сотрудник=Сотрудник тогда
...

А лучше запросом

akella Подменю пользователя
сообщение 23.03.10, 11:54
Сообщение #7

Говорящий
***
Группа: Пользователи
Сообщений: 54
Спасибо сказали: 0 раз
Рейтинг: 0

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

Не нашли ответа на свой вопрос?
Зарегистрируйтесь и задайте новый вопрос.


Ответить Новая тема
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 

RSS Текстовая версия Сейчас: 30.06.25, 13:03
1С Предприятие 8.3, 1С Предприятие 8.2, 1С Предприятие 8.1, 1С Предприятие 8.0, 1С Предприятие 7.7, Литература 1С, Общие вопросы по администрированию 1С, Методическая поддержка 1С - всё в одном месте: на Украинском 1С форуме!