Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: аналіз рахунка посубконто, 1С Бухгалтерия 7.7 для Украины
Украинский 1С форум: всё про 1С 8.3, 1С 8.2, 1С 8.1, 1С 8.0, 1С 7.7 > Программисту > Программирование в 1С Предприятие 7.7
djdf_crash

Допоможіть вияснити, чому не підтягується субконто. Має стояти "Оплата труда (консервация)". Дякую.
djdf_crash
в журналі проводок також немає цього субконто...
Vofka
Какой документ делает проводку и почему, по-вашему, субконто должно заполняться?
djdf_crash
Цитата(Vofka @ 12.05.14, 8:58) необходимо зарегистрироваться для просмотра ссылки
Какой документ делает проводку

Документ Нарахування ЗП.
Цитата(Vofka @ 12.05.14, 8:58) необходимо зарегистрироваться для просмотра ссылки
и почему, по-вашему, субконто должно заполняться?

Ось в цьому я б хотів розібратися з Вашою допомогою.
vadim007
Приведите скрин отчета Ж/О по субконто по этому-же счету за этот-же период.
djdf_crash
vadim007
А теперь, кликните по сумме 517,91 сч.651, и сумме 1392,60 сч.661.
Какие документы сформировали эти проводки? Покажите скрин.
djdf_crash

vadim007
Сколько у вас субконто на счете 471? Приведите их названия.
См. Операции, план счетов.
djdf_crash
Субконто1=Виды деятельности
Субконто2=Виды затрат
vadim007
Посмотрел в конфигураторе модуль документа НачислениеЗП. Вот строка формирования проблемной проводки:
глПроводка(Контекст,"47.1",тбНиО.НиО.Счет,СуммаОтчисленийСОтпуска,тбНиО.НиО.Наименование,, тбБазы.ВидДеятельности,тбБазы.ВидЗатрат,, тбНиО.НиО,,, ,,"ЗП");

У меня след. догадки:
1. У сотрудника не указан вид деятельности (спр. Сотрудники).
2. Не указан вид деятельности по умолчанию (Сервис->Индивидуальная настройка).
Проверьте.
djdf_crash
Цитата(vadim007 @ 12.05.14, 10:47) необходимо зарегистрироваться для просмотра ссылки
1. У сотрудника не указан вид деятельности (спр. Сотрудники).

Вказаний рахунок 471
Цитата(vadim007 @ 12.05.14, 10:47) необходимо зарегистрироваться для просмотра ссылки
2. Не указан вид деятельности по умолчанию (Сервис->Индивидуальная настройка).

Вказаний
Можливо Вам ось це допоможе

Процедура ПроводкиДно()
    //Базы.Свернуть("СчетЗатрат,ВидЗатрат,ВидДеятельности,НиО","Оклад,Отпускные,ОблагаемаяМатПомощь,ОблагаемаяМатПомощьВР,Индексация,Больничные,БольничныеЗаСчетПредприятия");
    тбБазы.Свернуть("СчетЗатрат,ВидЗатрат,ВидДеятельности,НиО","Оклад,Отпускные,ОблагаемаяМатПомощь,ОблагаемаяМатПомощьВР,Индексация,Больничные,БольничныеЗаСчетПредприятия,БольничныеИнв,БольничныеЗаСчетПредприятияИнв");
    тбБазы.Сортировать("НиО,СчетЗатрат,ВидДеятельности,ВидЗатрат");
    
    глСписокОшибокОкругления.УдалитьВсе();
    ИтСуммаОтчислениеБУ = 0;
    
    //для расчета взносов ФОП больничных инвалидов
    ПолучитьНиО("ФЗПЕСВИнв");  
    СтавкаИнв = тбНиО.Ставка;  
    
    СпрВидыЗатрат = СоздатьОбъект("Справочник.ВидыЗатрат");
    
    тбБазы.ВыбратьСтроки();
    Пока тбБазы.ПолучитьСтроку() = 1 Цикл
        ПолучитьНиО(тбБазы.НиО);
        Если НачалоПериода<'01.12.2011' Тогда
            //по общей ставке
            СтавкаИнв = тбНиО.Ставка;
        КонецЕсли;
        
        //СуммаОтчисленийБезОтпуска    = глОкрКорр(тбНиО.Код, тбНиО.Ставка * (тбБазы.Оклад + тбБазы.ОблагаемаяМатПомощь + тбБазы.ОблагаемаяМатПомощьВР + тбБазы.Индексация + тбБазы.Больничные + тбБазы.БольничныеЗаСчетПредприятия)
        //                                +(тбБазы.БольничныеЗаСчетПредприятияИнв+тбБазы.БольничныеИнв)*СтавкаИнв, 2);
                                        
        СуммаОтчисленийБезОтпуска    = глОкрКорр(тбНиО.Код, тбНиО.Ставка * (тбБазы.Оклад + тбБазы.ОблагаемаяМатПомощь + тбБазы.ОблагаемаяМатПомощьВР + тбБазы.Индексация), 2);  
        //теперь считаем больничный отдельно  
        СуммаОтчисленийБольничного    = глОкрКорр(тбНиО.Код, тбНиО.Ставка * (тбБазы.Больничные + тбБазы.БольничныеЗаСчетПредприятия)
                                        +(тбБазы.БольничныеЗаСчетПредприятияИнв+тбБазы.БольничныеИнв)*СтавкаИнв, 2);  
                                        
        СуммаОтчисленийСОтпуска        = глОкрКорр(тбНиО.Код, тбНиО.Ставка * (тбБазы.Отпускные), 2);
        СуммаОтчисленийВсего        = СуммаОтчисленийБезОтпуска + СуммаОтчисленийСОтпуска;
        ОтчисленияСФОТНУ = 0;
        Если (Найти(тбБазы.НиО.Код,"ФЗПЕСВБольн")>0) Тогда    
            ОтчисленияСФОТНУ = глОкрКорр("Нал",(тбБазы.Оклад+тбБазы.ОблагаемаяМатПомощьВР+тбБазы.Отпускные+тбБазы.Индексация)*тбНиО.Ставка, 2);    
        КонецЕсли;    
        
        СчетЗатрат = тбБазы.СчетЗатрат;
        Если ПустоеЗначение(СчетЗатрат)=1 Тогда
            // используем счета по умолчанию
            СчетЗатрат = тбНиО.СчетЗатрат;
        КонецЕсли;
        
        Если Константа.ИспользоватьОбеспечениеОтпусков.Получить(КонецПериода) = Да Тогда
            глПроводка(Контекст,СчетЗатрат,тбНиО.НиО.Счет,СуммаОтчисленийБезОтпуска,тбНиО.НиО.Наименование,, тбБазы.ВидДеятельности,тбБазы.ВидЗатрат,,
            тбНиО.НиО,,, ,,"ЗП");
            
            //ВидЗатратФондыДляРезерваОтпусков +Релиз 291.04-------------------------------------------
            кодЗатратОтпуск = 0;
            Если Лев(СчетЗатрат.Код,2) = "23" Тогда
                кодЗатратОтпуск = 60;
            ИначеЕсли Лев(СчетЗатрат.Код,2) = "92" Тогда    
                кодЗатратОтпуск = 121;
            ИначеЕсли Лев(СчетЗатрат.Код,2) = "93" Тогда    
                кодЗатратОтпуск = 157;
            ИначеЕсли Лев(СчетЗатрат.Код,2) = "94" Тогда    
                кодЗатратОтпуск = 281;
            КонецЕсли;
            ВидЗатратОтпуск = "";
            Если СпрВидыЗатрат.НайтиПоКоду(кодЗатратОтпуск,0) = 1 Тогда
                ВидЗатратОтпуск = СпрВидыЗатрат.ТекущийЭлемент();
            КонецЕсли;    
            
            глПроводка(Контекст,"47.1",тбНиО.НиО.Счет,СуммаОтчисленийСОтпуска,тбНиО.НиО.Наименование,, тбБазы.ВидДеятельности,ВидЗатратОтпуск,,
            тбНиО.НиО,,, ,,"ЗП");  
            глПроводка(Контекст,СчетЗатрат,тбНиО.НиО.Счет,СуммаОтчисленийБольничного,тбНиО.НиО.Наименование,, тбБазы.ВидДеятельности,тбБазы.ВидЗатрат,,
            тбНиО.НиО,,, ,,"ЗП");
        Иначе
            глПроводка(Контекст,СчетЗатрат,тбНиО.НиО.Счет,СуммаОтчисленийВсего,тбНиО.НиО.Наименование,, тбБазы.ВидДеятельности,тбБазы.ВидЗатрат,,
            тбНиО.НиО,,, ,,"ЗП");
            глПроводка(Контекст,СчетЗатрат,тбНиО.НиО.Счет,СуммаОтчисленийБольничного,тбНиО.НиО.Наименование,, тбБазы.ВидДеятельности,тбБазы.ВидЗатрат,,
            тбНиО.НиО,,, ,,"ЗП");
        КонецЕсли;
        
    КонецЦикла;
    
КонецПроцедуры
vadim007
Цитата(djdf_crash @ 12.05.14, 10:54) необходимо зарегистрироваться для просмотра ссылки
Вказаний рахунок 471

Т.е. сотрудник в отпуске? А какой у сотрудника указан Вид деятельности, Вид затрат?
Приведенный мною фрагмент (стандартный) срабатывает только тогда, когда константа "Использовать обеспечение отпусков" установлена в Да.
Если-же вы отправляете сотрудника в отпуск через задание счета затрат в карточке сотрудника в 471, то вроде должно получиться. Нужно трассировать в отладчике, и смотреть, где создается проводка со сч.471, и все параметры этой проводки.
djdf_crash
Цитата(vadim007 @ 12.05.14, 11:13) необходимо зарегистрироваться для просмотра ссылки
А какой у сотрудника указан Вид деятельности, Вид затрат?

Вид затрат=Оплата труда с начислен. (консервация)
Вид деятельности=Прочая деятельность не н/у

Дякую. Буду пробувати через отладчик upset.gif
vadim007
Да, и еще. Вид деятельности и Вид затрат - периодические. Посмотрите историю. М.б. они заданы на май, а документ - за апрель.
djdf_crash
найшлось рішення, все підтягує.
    СпрВидыЗатрат = СоздатьОбъект("Справочник.ВидыЗатрат");
            кодЗатратОтпуск = 0;
            Если Лев(ТекСчетЗатрат.Код,2) = "23" Тогда
                кодЗатратОтпуск = 40; // 60;
            ИначеЕсли Лев(ТекСчетЗатрат.Код,2) = "92" Тогда    
                кодЗатратОтпуск = 117; // 121;
            ИначеЕсли Лев(ТекСчетЗатрат.Код,2) = "93" Тогда    
                кодЗатратОтпуск = 153; // 157;
            ИначеЕсли Лев(ТекСчетЗатрат.Код,2) = "94" Тогда    
                кодЗатратОтпуск = 280; // 281;
            ИначеЕсли Лев(ТекСчетЗатрат.Код,3) = "977" Тогда
                ТекВидЗатратОтпуск = ТекВидЗатрат;
            ИначеЕсли Лев(ТекСчетЗатрат.Код,3) = "471" Тогда
                ТекВидЗатратОтпуск = ТекВидЗатрат
            КонецЕсли;
            //ВидЗатратОтпуск = "";
            Если СпрВидыЗатрат.НайтиПоКоду(кодЗатратОтпуск,0) = 1 Тогда
                ТекВидЗатратОтпуск = СпрВидыЗатрат.ТекущийЭлемент();
            КонецЕсли;


Дякую всі.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.