Имя: Пароль:
1C
1С v8
добавляю субконто, хэлпмисосми
0 Добрый_фей
 
27.03.15
18:49
их бин э кляйнэ програмайнэн после книжкочитайнэн. Поэтому прошу пояснять на пальцах) Слабонервным не писать, какой бы не был соблазн). БП 8,2. Добавляю третье субконто для 313-го, пытаюсь написать движения для ППИ операция оплаты
Запрос.Текст = ТекстЗапроса;     //и этот
    НаборЗаписей = Движения.ВзаиморасчетыСРаботникамиОрганизаций;
    НаборЗаписейСведенияОВыплатах = Движения.СведенияОВыплатахРаботникамОрганизацийПоПлатежнымВедомостям;
    СчетУчетаДепонентов = ПланыСчетов.Хозрасчетный.РасчетыПоДепонентам;
    
    
    ВыборкаОрганизация = Запрос.Выполнить().Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам, "Организация");
    //тз = ВыборкаОрганизация.Выгрузить();
    //тз.ВыбратьСтроку();
    //ВыборкаОрганизация.Выбрать();
    Пока ВыборкаОрганизация.Следующий() Цикл
        ВыборкаСотрудник = ВыборкаОрганизация.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам, "Сотрудник");

        Пока ВыборкаСотрудник.Следующий() Цикл
            
            ВыборкаВедомость = ВыборкаСотрудник.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам, "Ведомость");
            Пока ВыборкаВедомость.Следующий() Цикл
                
            //ВыборкаВидБюджетногоФинансирования = ВыборкаВидБюджетногоФинансирования.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам, "ВидБюджетногоФинансирования");
            //Пока ВыборкаВидБюджетногоФинансирования.Следующий() Цикл
                
                Если ЭтоДепонирование Тогда
                    
                    // нужны все движения по взаиморасчетам
                    // + надо  задепонировать сумму
                    ДобавитьСтрокуВзаиморасчетыСДепонентамиОрганизаций(ВыборкаВедомость, ДокументВыплаты.Дата, ВидДвиженияНакопления.Приход, Движения.ВзаиморасчетыСДепонентамиОрганизаций);
                    
                КонецЕсли;
                
                // теперь движения по каждому счету
                Выборка = ВыборкаВедомость.Выбрать(ОбходРезультатаЗапроса.Прямой);
                //Выборка = ВыборкаВидБюджетногоФинансирования.Выбрать(ОбходРезультатаЗапроса.Прямой);
                СтрокаПоРаботнику = 1;
                Пока Выборка.Следующий() Цикл
                    
                    ЭтоВыплатаДепонента = ?( Выборка.Ведомость.ВидВыплаты = Справочники.ВидыВыплат.Депоненты, Истина, Ложь);
                    Если (Выборка.РегистраторРанееВыплаченные <> NULL И Выборка.РегистраторРанееВыплаченные <> ДокументВыплаты) Тогда
                        // выплата по ФизЛицу и по ведомости уже производилась
                        Продолжить;
                    ИначеЕсли СтрокаПоРаботнику = 1 Тогда    
                        // зарегистрируем факт выплаты по работнику и по ведомости
                        ДобавитьСтрокуСведенияОВыплатахРаботникамОрганизацийПоПлатежнымВедомостям(Выборка, НаборЗаписейСведенияОВыплатах);
                    КонецЕсли;
                    Если ПроводкиБУ <> "" И НЕ ЭтоВыплатаДепонента Тогда
                        //ВидБюджетногоФинансирования = Выборка.ВидБюджетногоФинансирования;
                        ДобавитьСтрокуВыполнитьПроводкуВыплатыЗарплаты(Выборка, ПроводкиБУ, Выборка.СчетУчета, СчетКт, ДокументВыплаты.Дата, СчетОрганизации, ОбособленноеПодразделениеОрганизации, ВидБюджетногоФинансирования); //
                        
                    КонецЕсли;
                    
                    
                    Если ЭтоВыплатаДепонента Тогда
                        
                        ДобавитьСтрокуВыполнитьПроводкуВыплатыЗарплаты(Выборка, ПроводкиБУ, СчетУчетаДепонентов, СчетКт, ДокументВыплаты.Дата, СчетОрганизации,ОбособленноеПодразделениеОрганизации,ДокументВыплаты.СтатьяДвиженияДенежныхСредств); //
                        ДобавитьСтрокуВзаиморасчетыСДепонентамиОрганизаций(Выборка, ДокументВыплаты.Дата, ВидДвиженияНакопления.Расход, Движения.ВзаиморасчетыСДепонентамиОрганизаций);
                        
                    Иначе
                        ДобавитьСтрокуВзаиморасчетыСРаботникамиОрганизаций( Выборка, НаборЗаписей );
                    КонецЕсли;    
                    СтрокаПоРаботнику = СтрокаПоРаботнику + 1;
                    ВидБюджетногоФинансирования = Выборка.ВидБюджетногоФинансирования;
                    //КонецЦикла;
                КонецЦикла;
            КонецЦикла;
        КонецЦикла;    
    КонецЦикла;
    
КонецПроцедуры // ВыполнитьДвиженияПоЗарплате()
1 Добрый_фей
 
27.03.15
18:56
В запросе все поменял - субконто для операции перечисление оплаты труда тянет из документа, не могу понять где ошибся. в процедуре добавил Процедура    ДобавитьСтрокуВыполнитьПроводкуВыплатыЗарплаты(Выборка, ПроводкиБУ, СчетДт, СчетКт, Дата, СчетОрганизации = Неопределено, ОбособленноеПодразделениеОрганизации = Неопределено, СтатьяДвиженияДенежныхСредств = Неопределено, ВидБюджетногоФинансирования = Неопределено) Экспорт //
Если ЗначениеЗаполнено(ВидБюджетногоФинансирования) Тогда
        БухгалтерскийУчет.УстановитьСубконто(Проводка.СчетКт, Проводка.СубконтоКт, "ВидБюджетногоФинансирования", ВидБюджетногоФинансирования);
    КонецЕсли;
2 Мимохожий Однако
 
27.03.15
19:12
полуОФФ: Без отладчика не разберешься.
3 Добрый_фей
 
30.03.15
08:36
Спс, всем, разбирался сам с отладчиком, ларчик просто открывался надо было название субконто изменить на порядковый номер.
БухгалтерскийУчет.УстановитьСубконто(Проводка.СчетКт, Проводка.СубконтоКт, "ВидБюджетногоФинансирования", ВидБюджетногоФинансирования); на БухгалтерскийУчет.УстановитьСубконто(Проводка.СчетКт, Проводка.СубконтоКт, 3, Выборка.ВидБюджетногоФинансирования);
4 alex_shkut
 
30.03.15
09:02
А почему так, тоже понял?
Программист всегда исправляет последнюю ошибку.