Форум 1С
Программистам, бухгалтерам, администраторам, пользователям
Задай вопрос - получи решение проблемы
22 ноя 2024, 10:20

Корректное закрытие счета 20

Автор Vadzim1988, 02 янв 2018, 13:09

0 Пользователей и 1 гость просматривают эту тему.

Vadzim1988

Здравствуйте, помогите разобраться следующем вопросе. Имеется 1с 7.7. Оказание услуг. 25 счет "Общехозяйственные расходы" закрывается на 20 счет "Основное производство" по статьям затрат. На 20 счете 3 субконто: 1. Виды номенклатуры; 2. Затраты на производство; 3. Подразделения.
Проблема в следующем: При проведении документа "Закрытие месяца" сч.20 закрывается только по двум субконто (Виды номенклатуры и Подразделения). По субконто Затраты на произодсто не происходит. В чем причина?
P.S. Для наглядности скидываю код, прописанный для закрытия счета 20

//******************************************************************************
// ЗакрытиеСчета20()
//
// Параметры:
// Нет.
//
// Вызывается из формул элементов диалога:
// Нет.
//
// Описание:
// Здесь описывается процедура.
Процедура ЗакрытиеСчета20()
Сч20 = СчетПоКоду("20");
Сч90 = СчетПоКоду("90");
Сч90_1 = СчетПоКоду("90.1.1");
Сч90_2 = СчетПоКоду("90.2.1");
Сч90_3 = СчетПоКоду("90.3");
Сч90_4 = СчетПоКоду("90.4");
//Определим остатки незавершенного производства
ЗапросПоОстаткамНезавершенногоПроизводства = СоздатьОбъект("Запрос");
ТекстЗапроса =
"//{{ЗАПРОС(НезавершенноеПроизводство)
|Период с ДатаНач по ДатаКон;
|ОбрабатыватьДокументы все;
|Обрабатывать НеПомеченныеНаУдаление;
|ВидНоменклатуры = Документ.НезавершенноеПроизводство.ВидНоменклатуры;
|Подразделение = Документ.НезавершенноеПроизводство.Подразделение;
|ОстатокДок = Документ.НезавершенноеПроизводство.Остаток;
|Функция Остаток = Сумма(ОстатокДок);
|Группировка ВидНоменклатуры;
|Группировка Подразделение;
|"//}}ЗАПРОС
;
ЗапросПоОстаткамНезавершенногоПроизводства.Выполнить(ТекстЗапроса);
//Если ранее на счет 20 были списаны общепроизводственные или общехозяйственные
//расходы, запишем проводки, чтобы учесть эти суммы при закрытии счета 20
Если Операция.КоличествоПроводок() > 0 Тогда
Операция.ЗаписатьПроводки();
КонецЕсли;
БухИт90 = СоздатьОбъект("БухгалтерскиеИтоги");
БухИт90.ИспользоватьСубконто(ВидыСубконто.ВидыНоменклатуры,,,);
БухИт90.ВключатьСубсчета(-1,);
БухИт90.ВыполнитьЗапрос(ДатаНач, ДатаКон, Сч90,,,,,);
БухИт20 = СоздатьОбъект("БухгалтерскиеИтоги");
БухИт20.ИспользоватьСубконто(ВидыСубконто.ВидыНоменклатуры,,,);
БухИт20.ИспользоватьСубконто(ВидыСубконто.Подразделения,,,);
БухИт20.ИспользоватьСубконто(ВидыСубконто.СтатьиЗатратНаПроизводство,,,);
БухИт20.ВыполнитьЗапрос(ДатаНач, ДатаКон, Сч20,,,,,);
БухИт20.ВыбратьСубконто(ВидыСубконто.ВидыНоменклатуры);
Пока БухИт20.ПолучитьСубконто(ВидыСубконто.ВидыНоменклатуры) = 1 Цикл
БухИт20.ВыбратьСубконто(ВидыСубконто.Подразделения);
Пока БухИт20.ПолучитьСубконто(ВидыСубконто.Подразделения) = 1 Цикл
СуммаСписания = БухИт20.СКД() - ОстатокНезавершенногоПроизводства(БухИт20.Субконто(ВидыСубконто.ВидыНоменклатуры), БухИт20.Субконто(ВидыСубконто.Подразделения));
Если СуммаСписания <> 0 Тогда
Операция.НоваяПроводка();
Операция.НомерЖурнала = "ФР";
Операция.СодержаниеПроводки = "Списание счета 20";
Операция.ПервичныйДокумент = глПредставлениеПервичногоДокумента(Контекст);
Операция.Дебет.Счет = Сч90_4;
Операция.Дебет.ВидыНоменклатуры = БухИт20.Субконто(ВидыСубконто.ВидыНоменклатуры);
Операция.Кредит.Счет = Сч20;
Операция.Кредит.ВидыНоменклатуры = БухИт20.Субконто(ВидыСубконто.ВидыНоменклатуры);
Операция.Кредит.Подразделения = БухИт20.Субконто(ВидыСубконто.Подразделения);
Операция.Сумма = глОкругление(СуммаСписания, ДатаДок);
КонецЕсли;
КонецЦикла;
КонецЦикла;
КонецПроцедуры // ЗакрытиеСчета20()

Похожие темы (5)

Рейтинг@Mail.ru

Поиск