Кто изменял закрытие 25 счета отзовитесь! Интересуют проводки по НУ!
21.01.2009
19:27
#1
"На 25 счете есть затраты по разным подразделениям. При закрытии месяца надо распределить эти затраты пропорционально зарплате по подразделениям. Стандартно документ закрытие месяца делает списание «само на себя», а нам надо, чтобы затраты по некоторым подразделениям распределялись между определенными подразделениями. Например затраты по цеху 1 списать на участок 2, участок 3, участок 5, а затраты по цеху 2 списать на участок 1, участок 4, участок 6. Т.е. это отдельный документ, который проводится перед документом «Закрытие месяца». А после этого документ закрытие месяца уже закрывает то, что осталось на 25 счете стандартно «само на себя». Т.е. скажем к затратам на 20 счете по участку 2 которые появились от цеха 1 добавятся непосредственные затраты участка 2.
Все бы ничего, если бы не налоговый учет. Описанную выше схему по бух. учету я как смог реализовал, в 7-ке я это уже делал но без реализации налогового учета. Из документа закрытие месяца ничего не понятно как эти налоговые проводки устроены. получаесят что по БУ одна проводка а по НУ три: сприсанеие косвенных расходов, распределение ОХР и ОПР и корректировна выпуска продукции по моему. Может у кого есть предложения или наработки.
Вот как выглядит то, о чем я говорю для бух учета. На форме документа выбираем организацию и в табличной части подразделения, которые закрываются нестандартно. В модуле тупо прописано, какие подразделения, на какие закрываются, так как это будет неизменно.
В запросе пока период не определен.
Перем Операция;
Функция ОпределитьБазуБУ(Подразделение) //Определяем базу, т.е. з/п
Запрос=Новый Запрос;
Запрос.УстановитьПараметр("Счет20", ПланыСчетов.Хозрасчетный.ОсновноеПроизводство);
Запрос.УстановитьПараметр("счет70", ПланыСчетов.Хозрасчетный.РасчетыСПерсоналомПоОплатеТруда);
Запрос.УстановитьПараметр("Подразделение", Подразделение);
Запрос.УстановитьПараметр("Организация", Организация);
Запрос.Текст=
"ВЫБРАТЬ
| ХозрасчетныйОбороты.Счет,
| ХозрасчетныйОбороты.КорСчет,
| ХозрасчетныйОбороты.Субконто1 как Подразделение,
| ХозрасчетныйОбороты.Субконто2 как Номенклатура,
| ХозрасчетныйОбороты.Субконто3 как СтатьиЗатрат,
| ХозрасчетныйОбороты.СуммаОборот как Сумма,
| ХозрасчетныйОбороты.Организация
|ИЗ
| РегистрБухгалтерии.Хозрасчетный.Обороты(, , , Счет = &Счет20, &ТипыСубконт, , КорСчет = &Счет70) КАК ХозрасчетныйОбороты
|Где
| Субконто1 = &Подразделение
|И
| Организация = &Организация";
ТипыСубконт=Новый Массив;
ТипыСубконт.Добавить(ПланыВидовХарактеристик.ВидыСубконтоХозрасчетные.Подразделения);
ТипыСубконт.Добавить(ПланыВидовХарактеристик.ВидыСубконтоХозрасчетные.НоменклатурныеГруппы);
ТипыСубконт.Добавить(ПланыВидовХарактеристик.ВидыСубконтоХозрасчетные.СтатьиЗатрат);
Запрос.УстановитьПараметр("ТипыСубконт",ТипыСубконт);
РезультатЗапроса = Запрос.Выполнить();
Возврат РезультатЗапроса;
КонецФункции
Процедура РаспределитьРаспределитьБУ(БазаРаспределения, ТаблицаБазыРаспределения, СуммаСписания, СтВ)
Для каждого Эл из ТаблицаБазыРаспределения Цикл
Коэффициент = Число(Эл.Сумма)/Число(БазаРаспределения);
Сообщить(СуммаСписания*Коэффициент);
НоваяПроводка = Операция.Добавить();
НоваяПроводка.Организация = Организация;
НоваяПроводка.Активность = Истина;
НоваяПроводка.Период = Дата;
НоваяПроводка.Содержание = "ПроверкаРаспределения";
НоваяПроводка.Сумма = СуммаСписания*Коэффициент;
НоваяПроводка.СчетДт = ПланыСчетов.Хозрасчетный.ОсновноеПроизводство;
ОбщегоНазначения.УстановитьСубконто(НоваяПроводка.СчетДт, НоваяПроводка.СубконтоДт, 1, Эл.Подразделение);
ОбщегоНазначения.УстановитьСубконто(НоваяПроводка.СчетДт, НоваяПроводка.СубконтоДт, 2, Эл.Номенклатура);
ОбщегоНазначения.УстановитьСубконто(НоваяПроводка.СчетДт, НоваяПроводка.СубконтоДт, 3, СтВ.СтатьиЗатрат);
//Если СтруктураШапкиДокумента.ОтражатьВНалоговомУчете Тогда
// НоваяПроводка.ВидУчетаДт = СтруктураДопПараметров.ВидУчетаПБУ18;
// СчетКт = Обход.СчетЗатратНУ;
//Иначе
// СчетКт = Обход.СчетЗатрат;
//КонецЕсли;
НоваяПроводка.СчетКт = ПланыСчетов.Хозрасчетный.ОбщепроизводственныеРасходы;
ОбщегоНазначения.УстановитьСубконто(НоваяПроводка.СчетКт, НоваяПроводка.СубконтоКт, 1, СтВ.Подразделение);
ОбщегоНазначения.УстановитьСубконто(НоваяПроводка.СчетКт, НоваяПроводка.СубконтоКт, 2, СтВ.СтатьиЗатрат);
//Если СтруктураШапкиДокумента.ОтражатьВНалоговомУчете Тогда
// НоваяПроводка.ВидУчетаКт = СтруктураДопПараметров.ВидУчетаПБУ18;
//КонецЕсли;
//РаспределениеВыполнено = Истина;
//Записываем порциями(в случае большого количество проводок)
//Если Операция.Количество() >= 10000 Тогда
//Операция.Записать(Ложь);
//КонецЕсли;
КонецЦикла;
КонецПроцедуры
Процедура РаспределитьБУ(СуммаСписания,Ств,Подр1,Подр2,Подр3)
ТаблицаБазыРаспределения1 = ОпределитьБазуБУ(Подр1).Выгрузить();
БазаРаспределения1 = ТаблицаБазыРаспределения1.Итог("Сумма");
Сообщить("База1 "+БазаРаспределения1);
ТаблицаБазыРаспределения2 = ОпределитьБазуБУ(Подр2).Выгрузить();
БазаРаспределения2 = ТаблицаБазыРаспределения2.Итог("Сумма");
Сообщить("База2 "+БазаРаспределения2);
ТаблицаБазыРаспределения3 = ОпределитьБазуБУ(Подр3).Выгрузить();
БазаРаспределения3 = ТаблицаБазыРаспределения3.Итог("Сумма");
Сообщить("База3 "+БазаРаспределения3);
База = БазаРаспределения1+БазаРаспределения2+БазаРаспределения3;
КБаза1 = БазаРаспределения1/База;
КБаза2 = БазаРаспределения2/База;
КБаза3 = БазаРаспределения3/База;
СуммаСписания1=СуммаСписания*КБаза1;
СуммаСписания2=СуммаСписания*КБаза2;
СуммаСписания3=СуммаСписания*КБаза3;
Операция = Движения.Хозрасчетный;
Если БазаРаспределения1 > 0 Тогда
РаспределитьРаспределитьБУ(БазаРаспределения1, ТаблицаБазыРаспределения1, СуммаСписания1, СтВ)
КонецЕсли;
Если БазаРаспределения2 > 0 Тогда
РаспределитьРаспределитьБУ(БазаРаспределения2, ТаблицаБазыРаспределения2, СуммаСписания2, СтВ)
КонецЕсли;
Если БазаРаспределения3 > 0 Тогда
РаспределитьРаспределитьБУ(БазаРаспределения3, ТаблицаБазыРаспределения3, СуммаСписания3, СтВ)
КонецЕсли;
КонецПроцедуры
Процедура ОбработкаПроведения(Отказ)
Отказ = Ложь;
Для Каждого Ст из тчПодразделения Цикл
Запрос=Новый Запрос;
Запрос.УстановитьПараметр("Счет25", ПланыСчетов.Хозрасчетный.ОбщепроизводственныеРасходы);
Запрос.УстановитьПараметр("Подразделение", Ст.Подразделение);
Запрос.УстановитьПараметр("Организация", Организация);
Запрос.Текст=
"ВЫБРАТЬ
| ХозрасчетныйОбороты.Счет,
| ХозрасчетныйОбороты.Субконто1 как Подразделение,
| ХозрасчетныйОбороты.Субконто2 как СтатьиЗатрат,
| ХозрасчетныйОбороты.СуммаОборот как Сумма,
| ХозрасчетныйОбороты.Организация
|ИЗ
| РегистрБухгалтерии.Хозрасчетный.Обороты(, , , Счет = &Счет25, &ТипыСубконт) КАК ХозрасчетныйОбороты
|Где
| Субконто1 = &Подразделение
|И
| Организация = &Организация";
ТипыСубконт=Новый Массив;
ТипыСубконт.Добавить(ПланыВидовХарактеристик.ВидыСубконтоХозрасчетные.Подразделения);
ТипыСубконт.Добавить(ПланыВидовХарактеристик.ВидыСубконтоХозрасчетные.СтатьиЗатрат);
Запрос.УстановитьПараметр("ТипыСубконт",ТипыСубконт);
РезультатЗапроса = Запрос.Выполнить();
ТаблицаЗапроса = РезультатЗапроса.Выгрузить();
СуммаСписания = ТаблицаЗапроса.Итог("Сумма");
Сообщить("СуммаСписания "+ СуммаСписания);
Для Каждого Ств Из ТаблицаЗапроса Цикл
Если Ст.Подразделение.код = "000000175" Тогда
Подр1=Справочники.ПодразделенияОрганизаций.НайтиПоКоду("000000001");
Подр2=Справочники.ПодразделенияОрганизаций.НайтиПоКоду("000000002");
Подр3=Справочники.ПодразделенияОрганизаций.НайтиПоКоду("000000003");
РаспределитьБУ(СуммаСписания,Ств,Подр1,Подр2,Подр3);
КонецЕсли;
Если Ст.Подразделение.код = "000000176" Тогда
Подр1=Справочники.ПодразделенияОрганизаций.НайтиПоКоду("000000004");
Подр2=Справочники.ПодразделенияОрганизаций.НайтиПоКоду("000000005");
Подр3=Справочники.ПодразделенияОрганизаций.НайтиПоКоду("000000006");
РаспределитьБУ(СуммаСписания,Ств,Подр1,Подр2,Подр3);
КонецЕсли;
//Если Ст.Подразделение.код = "000000177" Тогда
// Подр1=Справочники.ПодразделенияОрганизаций.НайтиПоКоду("000000007");
// Подр2=Справочники.ПодразделенияОрганизаций.НайтиПоКоду("000000008");
// Подр3=Справочники.ПодразделенияОрганизаций.НайтиПоКоду("000000009");
// РаспределитьБУ(СуммаСписания,Ств,Подр1,Подр2,Подр3);
//КонецЕсли;
КонецЦикла;
КонецЦикла;
Если СуммаСписания >0 Тогда
Операция.Записать(Истина);
Иначе
сообщить(" " + СуммаСписания);
КонецЕсли;
КонецПроцедуры
"
Все бы ничего, если бы не налоговый учет. Описанную выше схему по бух. учету я как смог реализовал, в 7-ке я это уже делал но без реализации налогового учета. Из документа закрытие месяца ничего не понятно как эти налоговые проводки устроены. получаесят что по БУ одна проводка а по НУ три: сприсанеие косвенных расходов, распределение ОХР и ОПР и корректировна выпуска продукции по моему. Может у кого есть предложения или наработки.
Вот как выглядит то, о чем я говорю для бух учета. На форме документа выбираем организацию и в табличной части подразделения, которые закрываются нестандартно. В модуле тупо прописано, какие подразделения, на какие закрываются, так как это будет неизменно.
В запросе пока период не определен.
Перем Операция;
Функция ОпределитьБазуБУ(Подразделение) //Определяем базу, т.е. з/п
Запрос=Новый Запрос;
Запрос.УстановитьПараметр("Счет20", ПланыСчетов.Хозрасчетный.ОсновноеПроизводство);
Запрос.УстановитьПараметр("счет70", ПланыСчетов.Хозрасчетный.РасчетыСПерсоналомПоОплатеТруда);
Запрос.УстановитьПараметр("Подразделение", Подразделение);
Запрос.УстановитьПараметр("Организация", Организация);
Запрос.Текст=
"ВЫБРАТЬ
| ХозрасчетныйОбороты.Счет,
| ХозрасчетныйОбороты.КорСчет,
| ХозрасчетныйОбороты.Субконто1 как Подразделение,
| ХозрасчетныйОбороты.Субконто2 как Номенклатура,
| ХозрасчетныйОбороты.Субконто3 как СтатьиЗатрат,
| ХозрасчетныйОбороты.СуммаОборот как Сумма,
| ХозрасчетныйОбороты.Организация
|ИЗ
| РегистрБухгалтерии.Хозрасчетный.Обороты(, , , Счет = &Счет20, &ТипыСубконт, , КорСчет = &Счет70) КАК ХозрасчетныйОбороты
|Где
| Субконто1 = &Подразделение
|И
| Организация = &Организация";
ТипыСубконт=Новый Массив;
ТипыСубконт.Добавить(ПланыВидовХарактеристик.ВидыСубконтоХозрасчетные.Подразделения);
ТипыСубконт.Добавить(ПланыВидовХарактеристик.ВидыСубконтоХозрасчетные.НоменклатурныеГруппы);
ТипыСубконт.Добавить(ПланыВидовХарактеристик.ВидыСубконтоХозрасчетные.СтатьиЗатрат);
Запрос.УстановитьПараметр("ТипыСубконт",ТипыСубконт);
РезультатЗапроса = Запрос.Выполнить();
Возврат РезультатЗапроса;
КонецФункции
Процедура РаспределитьРаспределитьБУ(БазаРаспределения, ТаблицаБазыРаспределения, СуммаСписания, СтВ)
Для каждого Эл из ТаблицаБазыРаспределения Цикл
Коэффициент = Число(Эл.Сумма)/Число(БазаРаспределения);
Сообщить(СуммаСписания*Коэффициент);
НоваяПроводка = Операция.Добавить();
НоваяПроводка.Организация = Организация;
НоваяПроводка.Активность = Истина;
НоваяПроводка.Период = Дата;
НоваяПроводка.Содержание = "ПроверкаРаспределения";
НоваяПроводка.Сумма = СуммаСписания*Коэффициент;
НоваяПроводка.СчетДт = ПланыСчетов.Хозрасчетный.ОсновноеПроизводство;
ОбщегоНазначения.УстановитьСубконто(НоваяПроводка.СчетДт, НоваяПроводка.СубконтоДт, 1, Эл.Подразделение);
ОбщегоНазначения.УстановитьСубконто(НоваяПроводка.СчетДт, НоваяПроводка.СубконтоДт, 2, Эл.Номенклатура);
ОбщегоНазначения.УстановитьСубконто(НоваяПроводка.СчетДт, НоваяПроводка.СубконтоДт, 3, СтВ.СтатьиЗатрат);
//Если СтруктураШапкиДокумента.ОтражатьВНалоговомУчете Тогда
// НоваяПроводка.ВидУчетаДт = СтруктураДопПараметров.ВидУчетаПБУ18;
// СчетКт = Обход.СчетЗатратНУ;
//Иначе
// СчетКт = Обход.СчетЗатрат;
//КонецЕсли;
НоваяПроводка.СчетКт = ПланыСчетов.Хозрасчетный.ОбщепроизводственныеРасходы;
ОбщегоНазначения.УстановитьСубконто(НоваяПроводка.СчетКт, НоваяПроводка.СубконтоКт, 1, СтВ.Подразделение);
ОбщегоНазначения.УстановитьСубконто(НоваяПроводка.СчетКт, НоваяПроводка.СубконтоКт, 2, СтВ.СтатьиЗатрат);
//Если СтруктураШапкиДокумента.ОтражатьВНалоговомУчете Тогда
// НоваяПроводка.ВидУчетаКт = СтруктураДопПараметров.ВидУчетаПБУ18;
//КонецЕсли;
//РаспределениеВыполнено = Истина;
//Записываем порциями(в случае большого количество проводок)
//Если Операция.Количество() >= 10000 Тогда
//Операция.Записать(Ложь);
//КонецЕсли;
КонецЦикла;
КонецПроцедуры
Процедура РаспределитьБУ(СуммаСписания,Ств,Подр1,Подр2,Подр3)
ТаблицаБазыРаспределения1 = ОпределитьБазуБУ(Подр1).Выгрузить();
БазаРаспределения1 = ТаблицаБазыРаспределения1.Итог("Сумма");
Сообщить("База1 "+БазаРаспределения1);
ТаблицаБазыРаспределения2 = ОпределитьБазуБУ(Подр2).Выгрузить();
БазаРаспределения2 = ТаблицаБазыРаспределения2.Итог("Сумма");
Сообщить("База2 "+БазаРаспределения2);
ТаблицаБазыРаспределения3 = ОпределитьБазуБУ(Подр3).Выгрузить();
БазаРаспределения3 = ТаблицаБазыРаспределения3.Итог("Сумма");
Сообщить("База3 "+БазаРаспределения3);
База = БазаРаспределения1+БазаРаспределения2+БазаРаспределения3;
КБаза1 = БазаРаспределения1/База;
КБаза2 = БазаРаспределения2/База;
КБаза3 = БазаРаспределения3/База;
СуммаСписания1=СуммаСписания*КБаза1;
СуммаСписания2=СуммаСписания*КБаза2;
СуммаСписания3=СуммаСписания*КБаза3;
Операция = Движения.Хозрасчетный;
Если БазаРаспределения1 > 0 Тогда
РаспределитьРаспределитьБУ(БазаРаспределения1, ТаблицаБазыРаспределения1, СуммаСписания1, СтВ)
КонецЕсли;
Если БазаРаспределения2 > 0 Тогда
РаспределитьРаспределитьБУ(БазаРаспределения2, ТаблицаБазыРаспределения2, СуммаСписания2, СтВ)
КонецЕсли;
Если БазаРаспределения3 > 0 Тогда
РаспределитьРаспределитьБУ(БазаРаспределения3, ТаблицаБазыРаспределения3, СуммаСписания3, СтВ)
КонецЕсли;
КонецПроцедуры
Процедура ОбработкаПроведения(Отказ)
Отказ = Ложь;
Для Каждого Ст из тчПодразделения Цикл
Запрос=Новый Запрос;
Запрос.УстановитьПараметр("Счет25", ПланыСчетов.Хозрасчетный.ОбщепроизводственныеРасходы);
Запрос.УстановитьПараметр("Подразделение", Ст.Подразделение);
Запрос.УстановитьПараметр("Организация", Организация);
Запрос.Текст=
"ВЫБРАТЬ
| ХозрасчетныйОбороты.Счет,
| ХозрасчетныйОбороты.Субконто1 как Подразделение,
| ХозрасчетныйОбороты.Субконто2 как СтатьиЗатрат,
| ХозрасчетныйОбороты.СуммаОборот как Сумма,
| ХозрасчетныйОбороты.Организация
|ИЗ
| РегистрБухгалтерии.Хозрасчетный.Обороты(, , , Счет = &Счет25, &ТипыСубконт) КАК ХозрасчетныйОбороты
|Где
| Субконто1 = &Подразделение
|И
| Организация = &Организация";
ТипыСубконт=Новый Массив;
ТипыСубконт.Добавить(ПланыВидовХарактеристик.ВидыСубконтоХозрасчетные.Подразделения);
ТипыСубконт.Добавить(ПланыВидовХарактеристик.ВидыСубконтоХозрасчетные.СтатьиЗатрат);
Запрос.УстановитьПараметр("ТипыСубконт",ТипыСубконт);
РезультатЗапроса = Запрос.Выполнить();
ТаблицаЗапроса = РезультатЗапроса.Выгрузить();
СуммаСписания = ТаблицаЗапроса.Итог("Сумма");
Сообщить("СуммаСписания "+ СуммаСписания);
Для Каждого Ств Из ТаблицаЗапроса Цикл
Если Ст.Подразделение.код = "000000175" Тогда
Подр1=Справочники.ПодразделенияОрганизаций.НайтиПоКоду("000000001");
Подр2=Справочники.ПодразделенияОрганизаций.НайтиПоКоду("000000002");
Подр3=Справочники.ПодразделенияОрганизаций.НайтиПоКоду("000000003");
РаспределитьБУ(СуммаСписания,Ств,Подр1,Подр2,Подр3);
КонецЕсли;
Если Ст.Подразделение.код = "000000176" Тогда
Подр1=Справочники.ПодразделенияОрганизаций.НайтиПоКоду("000000004");
Подр2=Справочники.ПодразделенияОрганизаций.НайтиПоКоду("000000005");
Подр3=Справочники.ПодразделенияОрганизаций.НайтиПоКоду("000000006");
РаспределитьБУ(СуммаСписания,Ств,Подр1,Подр2,Подр3);
КонецЕсли;
//Если Ст.Подразделение.код = "000000177" Тогда
// Подр1=Справочники.ПодразделенияОрганизаций.НайтиПоКоду("000000007");
// Подр2=Справочники.ПодразделенияОрганизаций.НайтиПоКоду("000000008");
// Подр3=Справочники.ПодразделенияОрганизаций.НайтиПоКоду("000000009");
// РаспределитьБУ(СуммаСписания,Ств,Подр1,Подр2,Подр3);
//КонецЕсли;
КонецЦикла;
КонецЦикла;
Если СуммаСписания >0 Тогда
Операция.Записать(Истина);
Иначе
сообщить(" " + СуммаСписания);
КонецЕсли;
КонецПроцедуры
"
ПУБ,7.7, книга доходы и расходы, неправильно заполняются,Бухгалтерия предприятия 8.Вопрос по установке
Читают тему
(гостей: 1)