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

Хранилище

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

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



> Расчетные листки в 1С 7.7 Бухгалтерия , Неправильно считает          
ZedWizard Подменю пользователя
сообщение 27.05.11, 13:59
Сообщение #1

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

Помогите где глянуть и что исправить
При выводе расчетных листков по заработной плате через печать все выводит правильно, кроме "Выплачено в течении месяца"
И плюс к этому в "Полагается к выплате" не отминусовывает это число
Причем само число "Выплачено в течении месяца" "съезжает" на следующего работника и т.д.
В Журнале-ордере по субконто по 661 смотрю, все ок..
Скажите, что показать? Форму или таблицу... в чем трабл?

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

У нас здесь своя атмосфера...
***********
Группа: Основатель
Сообщений: 13956
Из: Киев
Спасибо сказали: 4523 раз
Рейтинг: 3646.4

Для начала прочитать правила и указать всю необходимую инфу. А пока тема переезжает в раздел для экстрасенсов.

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

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

1С Предприятие 7.7(сетевая версия) - 7.70.027
Конфигурация: Бухгалтерский учет для Украины (7.70.010) (Сетевая версия)
Немного дорабатывалось по номенклатуре (7.70.281)
что-то еще?

Vofka Подменю пользователя
сообщение 27.05.11, 14:55
Сообщение #4

У нас здесь своя атмосфера...
***********
Группа: Основатель
Сообщений: 13956
Из: Киев
Спасибо сказали: 4523 раз
Рейтинг: 3646.4

Наверное так:
1С Предприятие 7.7(сетевая версия) - 7.70.027
и
Конфигурация: Бухгалтерский учет для Украины (7.70.281)

ZedWizard Подменю пользователя
сообщение 27.05.11, 14:59
Сообщение #5

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

Цитата(Vofka @ 27.05.11, 14:55) *
Наверное так:
1С Предприятие 7.7(сетевая версия) - 7.70.027
и
Конфигурация: Бухгалтерский учет для Украины (7.70.281)

да, спасибо)

-=VJ=- Подменю пользователя
сообщение 27.05.11, 19:14
Сообщение #6

Оратор
Иконка группы
Группа: Местный
Сообщений: 402
Из: Киев
Спасибо сказали: 73 раз
Рейтинг: 0

Цитата(ZedWizard @ 27.05.11, 13:59) *
Причем само число "Выплачено в течении месяца" "съезжает" на следующего работника и т.д.


Журнал тут ни при чем - скорее всего намутили где-то с ВывестиСекцию.
Нужно в отладчике проверить, где именно напутали - так Вам всё равно никто ничего не скажет.
Или бросьте сюда весь код процедуры "Печать()"


Signature
Живу на VJ.net.ua.
Спілкуюсь в ЖЖ

ZedWizard Подменю пользователя
сообщение 27.05.11, 21:26
Сообщение #7

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

Вот собственно сама процедура расчета:
Процедура РасчетныеЛистки() 
    Перем Стр;
    КвоНаСтраницу = 3;
    ВвестиЧисло(КвоНаСтраницу,"Введите кол-во листков на страницу.",1,0);
    КвоНаСтраницу = ?(КвоНаСтраницу > 0, КвоНаСтраницу, 3);
    ПолучитьДанныеИзЗапроса();
    Таб.ПараметрыСтраницы(1); // портрет
    ВыбратьСтроки();
    Ном = 1;
    БИ = СоздатьОбъект("БухгалтерскиеИтоги");
    БИ.ИспользоватьСубконто(ВидыСубконто.Сотрудники);
    БИ.ИспользоватьСубконто(ВидыСубконто.МесяцНачисленияЗП,НачМесяца(ДатаДок),2);
    БИ.ВыполнитьЗапрос(НачМесяца(ДатаДок),ТекущийДокумент(),"661","301");
    БИ.ВыбратьСубконто(1);
    Пока ПолучитьСтроку() = 1 Цикл
        
        //СА начало
        Аванс = 0;        
        Если БИ.ПолучитьСубконто(1,,Сотрудник) = 1 Тогда
            Аванс = БИ.ДО("С");
        КонецЕсли;
        СуммаИЛ = 0;    
        Сумма1 = 0;
        Сумма2 = 0;  
        Сумма3 = 0;
        Сумма = 0;  
        Удержание1 = "";
        Удержание2 = "";
        Удержание3 = "";  
        Удержание4 = "";
        Удержание = "";
        НиО = создатьобъект("Справочник.НалогиОтчисления");
        Если глПолучитьНиО(ноПроцентПочт,"ПроцентПочт1","об отчислениях в ПФ с сотрудника!") = 0 Тогда
            Возврат;
        КонецЕсли;  
        КонецПериода = КонМесяца(ДатаДок);
        НиО.ИспользоватьДату(КонецПериода);
        Сч = 1;
        КВыпл = Начислено - Удержано;
        СпрИЛ = создатьобъект("Справочник.ИсполнительныеЛисты");
        СпрИЛ.ИспользоватьВладельца(Сотрудник);
        СпрИЛ.ВыбратьЭлементы();  
        Пока СпрИЛ.ПолучитьЭлемент() = 1 Цикл
            СуммаИЛ = 0;  
            Сумма = 0;
            Если СпрИЛ.ПометкаУдаления() = 0 Тогда
                Если (пустоезначение(СпрИЛ.ДатаКонца) = 0) и (СпрИЛ.ДатаКонца < конмесяца(ДатаДок)) Тогда
                    Продолжить;
                КонецЕсли;    
                Если (пустоезначение(СпрИЛ.ДатаНачала) = 0) и (СпрИЛ.ДатаНачала > начмесяца(ДатаДок)) Тогда
                    Продолжить;
                КонецЕсли;
                Если СпрИЛ.ПроцентСумма = 1 тогда
                    СуммаИЛ = КВыпл*СпрИЛ.ПроцентОтОклада/100;
                Иначе
                    СуммаИЛ = СпрИЛ.Сумма;
                КонецЕсли;    
                Если СпрИЛ.ПочтовыйПеревод = 1 тогда  
                    НиО.ИспользоватьРодителя(ноПроцентПочт.Родитель);
                    НиО.ИспользоватьДату(КонецПериода);
                    НиО.ПорядокНаименований();
                    НиО.ВыбратьЭлементы();
                    Пока НиО.ПолучитьЭлемент() = 1 Цикл
                        Если СуммаИЛ <= НиО.Предел Тогда
                            СуммаИЛ = НиО.Ставка*СуммаИЛ + СуммаИЛ;  
                            прервать;
                        КонецЕсли;
                    КонецЦикла;
                КонецЕсли;
                Если Сч = 1 Тогда
                    Сумма1 = СуммаИЛ;
                    Удержание1 = ?(СпрИЛ.ВидИсполнительногоЛиста = Перечисление.ИсполнительныеЛисты.Алименты,"Алименты","Исп.лист: "+СпрИЛ.Наименование);
                    Сч=Сч+1;
                ИначеЕсли Сч = 2 тогда
                    Сумма2 = СуммаИЛ;
                    Удержание2 = ?(СпрИЛ.ВидИсполнительногоЛиста = Перечисление.ИсполнительныеЛисты.Алименты,"Алименты","Исп.лист: "+СпрИЛ.Наименование);
        //            Таб.ВывестиСекцию("Основная");
                    Сч=Сч+1;
                ИначеЕсли Сч = 3 тогда
                    Сумма3 = СуммаИЛ;
                    Удержание3 = ?(СпрИЛ.ВидИсполнительногоЛиста = Перечисление.ИсполнительныеЛисты.Алименты,"Алименты","Исп.лист: "+СпрИЛ.Наименование);
        //            Таб.ВывестиСекцию("Основная");
                    Сч=Сч+1;    
                ИначеЕсли Сч = 4 тогда
                    Сумма4 = СуммаИЛ;
                    Удержание4 = ?(СпрИЛ.ВидИсполнительногоЛиста = Перечисление.ИсполнительныеЛисты.Алименты,"Алименты","Исп.лист: "+СпрИЛ.Наименование);
        //            Таб.ВывестиСекцию("Основная");
                    Сч=Сч+1;  
                ИначеЕсли Сч = 5 тогда
                    Сумма5 = СуммаИЛ;
                    Удержание5 = ?(СпрИЛ.ВидИсполнительногоЛиста = Перечисление.ИсполнительныеЛисты.Алименты,"Алименты","Исп.лист: "+СпрИЛ.Наименование);
                    Таб.ВывестиСекцию("Основная");
                    Сч=Сч+1;
                иначе
                    Сумма = СуммаИЛ;
                    Удержание = ?(СпрИЛ.ВидИсполнительногоЛиста = Перечисление.ИсполнительныеЛисты.Алименты,"Алименты","Исп.лист: "+СпрИЛ.Наименование);
                    Таб.ВывестиСекцию("Строка");
                КонецЕсли;
                //Если СпрИЛ.ПочтовыйПеревод = 1 тогда
                //    НиО.ИспользоватьРодителя(ноПроцентПочт.Родитель);
                //    НиО.ИспользоватьДату(КонецПериода);
                //    НиО.ПорядокНаименований();
                //    НиО.ВыбратьЭлементы();
                //    Пока НиО.ПолучитьЭлемент() = 1 Цикл
                //        Если СуммаИЛ <= НиО.Предел Тогда
                //            СуммаПП = НиО.Ставка*СуммаИЛ;
                //            Если Сч = 1 Тогда
                //                Сумма1 = СуммаПП;
                //                Удержание1 = "Почтовый сбор";
                //                Сч=Сч+1;
                //            ИначеЕсли Сч = 2 тогда
                //                Сумма2 = СуммаПП;
                //                Удержание2 = "Почтовый сбор";
                //                Таб.ВывестиСекцию("Основная");
                //                Сч=Сч+1;
                //            иначе    
                //                Сумма = СуммаПП;
                //                Удержание = "Почтовый сбор";
                //                Таб.ВывестиСекцию("Строка");
                //            КонецЕсли;
                //            Прервать;
                //        КонецЕсли;
                //    КонецЦикла
                //КонецЕсли;
            КонецЕсли;
        КонецЦикла;
        Если Сч <= 5 тогда
            Таб.ВывестиСекцию("Основная");
        КонецЕсли;
        Таб.ВывестиСекцию("Итого");
        //СА конец
        ТаблСотр.НайтиЗначение(Сотрудник,Стр,"Сотрудник");
        ТаблСотр.ПолучитьСтрокуПоНомеру(Стр);
        Стр = 0; Долг=" ";
        Если ТаблСотр.СальдоНач <> 0 Тогда  
            Если ТаблСотр.СальдоНач < 0 Тогда
                Долг = "Долг за работником";
                СальдоН=(-1)*ТаблСотр.СальдоНач;
            Иначе
                Долг = "Долг за предприятием";
                СальдоН=ТаблСотр.СальдоНач;
            КонецЕсли;    
            Таб.ВывестиСекцию("ДолгНач");
        КонецЕсли;
        ПолагаетсяКВыплате = Макс(0, ТаблСотр.КВыплате + ТаблСотр.Аванс + ТаблСотр.СальдоНач);
        Выплачено = ТаблСотр.ВыплПред + ТаблСотр.Аванс + ТаблСотр.ВыплТек;
        Таб.ВывестиСекцию("КВыплате");
        Если ТаблСотр.СальдоКон <> 0 Тогда
            Если ТаблСотр.СальдоКон < 0 Тогда
                Долг = "Долг за работником";
                СальдоК=(-1)*ТаблСотр.СальдоКон;
            Иначе
                Долг = "Долг за предприятием";
                СальдоК=ТаблСотр.СальдоКон;
            КонецЕсли;    
            //Таб.ВывестиСекцию("ДолгКон");
        КонецЕсли;
        Если Ном < КоличествоСтрок() Тогда
            Если Ном%КвоНаСтраницу = 0 Тогда
                Таб.НоваяСтраница();
            Иначе
                Таб.ВывестиСекцию("Черта");
            КонецЕсли;
        КонецЕсли;
        Ном = Ном + 1;
    КонецЦикла;
    Таб.Показать("Расчетные листки","");

-=VJ=- Подменю пользователя
сообщение 28.05.11, 22:19
Сообщение #8

Оратор
Иконка группы
Группа: Местный
Сообщений: 402
Из: Киев
Спасибо сказали: 73 раз
Рейтинг: 0

Цитата(ZedWizard @ 27.05.11, 13:59) *
И плюс к этому в "Полагается к выплате" не отминусовывает это число


Как оно может отминусовывать, если его не только нет в формуле, но и само Полагается расчитывается раньше, чем Выплачено?

Цитата(ZedWizard @ 27.05.11, 13:59) *
Скажите, что показать? Форму или таблицу... в чем трабл?


ИМХО - трабл во всем модуле. Какой-то он... бредовый. Причем весь.
Такое ощущение, что его писало три разных студента, и каждый не знал, что делал другой.


Signature
Живу на VJ.net.ua.
Спілкуюсь в ЖЖ

ZedWizard Подменю пользователя
сообщение 29.05.11, 9:37
Сообщение #9

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

Цитата(-=VJ=- @ 28.05.11, 22:19) *
Как оно может отминусовывать, если его не только нет в формуле, но и само Полагается расчитывается раньше, чем Выплачено?
ИМХО - трабл во всем модуле. Какой-то он... бредовый. Причем весь.
Такое ощущение, что его писало три разных студента, и каждый не знал, что делал другой.

Да вот именно, что бредовый, ток не переписывать же весь..
моих познаний сейчас не хватит, чтобы переписать модуль. Поэтому надеюсь подправить по возможности
Вот к примеру в самой таблице часть расчетов идет
К выплате:
Начислено-(Удержано+УдержанияПоИспЛистам+Аванс) #Ч12.2-,

Удержания:
Удержано+УдержанияПоИспЛистам+Аванс #Ч12.2-,

-=VJ=- Подменю пользователя
сообщение 29.05.11, 18:29
Сообщение #10

Оратор
Иконка группы
Группа: Местный
Сообщений: 402
Из: Киев
Спасибо сказали: 73 раз
Рейтинг: 0

Цитата(ZedWizard @ 29.05.11, 9:37) *
Да вот именно, что бредовый, ток не переписывать же весь..


Лучше переписать весь, по моему. Будет надежнее - и работать станет быстрее.
Без файла конфигурации понять, куда у вас пропадает секция (а только так можно объяснить смещение на одного сотрудника) всё равно невозможно. Я, к примеру, так и не въехал в смысл куска модуля, крутящего исполнительные листы да ещё и с применением десяти переменных и шестью операциями "Если".
Обратитесь в стол заказов или к кому-то знакомому, пусть он на живой базе всё посмотрит.
Тут не тот случай, что можно ткнуть пальцем в пропущенную запятую и всё станет на место.

Единственное, что можно было сказать по модулю - я сказал: поменяйте местами вычисления ПолагаетсяКВыплате и Выплачено, а Выплачено включите в вычисление ПолагаетсяКВыплате (только Аванс всуньте в какой-то один из расчетов) - тогда оно будет учитываться при расчете суммы.


Signature
Живу на VJ.net.ua.
Спілкуюсь в ЖЖ

Спасибо сказали: Vofka,

ZedWizard Подменю пользователя
сообщение 30.05.11, 11:20
Сообщение #11

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

Спасибо.
В реальности оказалось до банального все просто, нужно было подправить колонки в таблице и там-же отминусовать.

-=VJ=- Подменю пользователя
сообщение 30.05.11, 13:49
Сообщение #12

Оратор
Иконка группы
Группа: Местный
Сообщений: 402
Из: Киев
Спасибо сказали: 73 раз
Рейтинг: 0

Цитата(ZedWizard @ 30.05.11, 11:20) *
В реальности оказалось до банального все просто


А оно так всегда smile.gif


Signature
Живу на VJ.net.ua.
Спілкуюсь в ЖЖ

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


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

 

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