|
v7: Списание расходов будущих периодов. | ☑ | ||
---|---|---|---|---|
0
Eeakie
30.08.12
✎
14:07
|
Добрый день. Перестала формироваться проводка 26 - 97.9 при заполнении документа "СписаниеРасходовБП". До марта всё было нормально. В справочнике РБП даты с 01.01.2012 по 01.01.2013 - вроде всё пучком. Прогнал через отладчик, оказалось не может получить счет (БухИт.ПолучитьСчет() = 0!). В чём может быть проблема?
БухИт = СоздатьОбъект("БухгалтерскиеИтоги"); БухИт.ВключатьСубсчета(-1,); Если Группа.Выбран()=1 тогда Если (Группа.ЭтоГруппа()=1) тогда БухИт.ИспользоватьСубконто(ВидыСубконто.РасходыБудущихПериодов,Группа,1,0); Иначе БухИт.ИспользоватьСубконто(ВидыСубконто.РасходыБудущихПериодов,Группа,2); КонецЕсли; Иначе БухИт.ИспользоватьСубконто(ВидыСубконто.РасходыБудущихПериодов); КонецЕсли; БухИт.ВыполнитьЗапрос(ТекущийДокумент(),,Счет97); Если НужноВыбиратьСч97 = 1 Тогда БухИт.ВыбратьСчета(); Пока БухИт.ПолучитьСчет(,) = 1 Цикл СчРасхБП = БухИт.Счет; СформироватьПроводкиПоСубконто(БухИт); КонецЦикла; Иначе СформироватьПроводкиПоСубконто(БухИт); КонецЕсли; |
|||
1
Eeakie
30.08.12
✎
14:16
|
Я как-то неясно изложил суть проблемы или никто не в курсе?
|
|||
2
fedoss
30.08.12
✎
14:31
|
Остатки на 97 есть по этим РБП? Пересчет БИ пробовали?
|
|||
3
Eeakie
30.08.12
✎
14:37
|
(2) Остатки имеются. Полный пересчет сделал - не помогло.
Кстати, при перепроведении за январь-март проводки опять же исчезают. Никто ничего не менял (или просто никто не признается). |
|||
4
Eeakie
30.08.12
✎
14:39
|
Процедура ОбработкаПроведения()
Счет97 = СчетПоКоду("97"); НужноВыбиратьСч97 = Счет97.ЭтоГруппа(); Если НужноВыбиратьСч97 = 1 Тогда СчРасхБП = ОпределитьСчет97(ДатаДок); Если ПустоеЗначение(СчРасхБП) = 1 Тогда Сообщить("Не удалось подобрать субсчет счета 97!"); Сообщить(" Обновите ""План счетов""","!"); КолОшибок = КолОшибок + 1; КонецЕсли; Иначе СчРасхБП = Счет97; КонецЕсли; Если КолОшибок > 0 Тогда Сообщить("---------"+ТекущийДокумент()+": Документ не проведен из-за ошибок","I"); СтатусВозврата(0); Возврат; КонецЕсли; ДатаКон = КонМесяца(ДатаДок); ГодДок = ДатаГод(ДатаДок); МесяцДок = ДатаМесяц(ДатаДок); СуммаОперации = 0; ИтогоОстаток=0; БухИт = СоздатьОбъект("БухгалтерскиеИтоги"); БухИт.ВключатьСубсчета(-1,); Если Группа.Выбран()=1 тогда Если (Группа.ЭтоГруппа()=1) тогда БухИт.ИспользоватьСубконто(ВидыСубконто.РасходыБудущихПериодов,Группа,1,0); Иначе БухИт.ИспользоватьСубконто(ВидыСубконто.РасходыБудущихПериодов,Группа,2); КонецЕсли; Иначе БухИт.ИспользоватьСубконто(ВидыСубконто.РасходыБудущихПериодов); КонецЕсли; БухИт.ВыполнитьЗапрос(ТекущийДокумент(),,Счет97); Если НужноВыбиратьСч97 = 1 Тогда БухИт.ВыбратьСчета(); Пока БухИт.ПолучитьСчет(,) = 1 Цикл СчРасхБП = БухИт.Счет; СформироватьПроводкиПоСубконто(БухИт); КонецЦикла; Иначе СформироватьПроводкиПоСубконто(БухИт); КонецЕсли; Операция.СуммаОперации = СуммаОперации; Операция.Записать(); ИтогоСписано= СуммаОперации; КонецПроцедуры |
|||
5
Eeakie
30.08.12
✎
14:40
|
Функция ОпределитьСчет97(ДатаПроверки)
Счет = СоздатьОбъект("Счет.Основной"); Сч97 = ПолучитьПустоеЗначение(Счет); Если ДатаГод(ДатаПроверки)< 2009 тогда Если Счет.НайтиПоКоду("97.0") = 1 Тогда Сч97 = СчетПоКоду("97.0"); КонецЕсли; Иначе Если Счет.НайтиПоКоду("97.9") = 1 Тогда Сч97 = СчетПоКоду("97.9"); КонецЕсли; КонецЕсли; Возврат Сч97; КонецФункции |
|||
6
Eeakie
30.08.12
✎
14:41
|
Процедура СформироватьПроводкиПоСубконто(БухИт)
БухИт.ВыбратьСубконто(); Пока БухИт.ПолучитьСубконто() = 1 Цикл Страховка = БухИт.Субконто(); Если (Страховка.ДатаОкончанияСписания=Дата(0)) или (Страховка.ДатаНачалаСписания=Дата(0)) Тогда Продолжить; КонецЕсли; Если Страховка.ДатаНачалаСписания > ДатаКон Тогда Продолжить; КонецЕсли; ДатаОкончанияСписания = КонМесяца(Страховка.ДатаОкончанияСписания); ГодОкончанияСписания = ДатаГод(Страховка.ДатаОкончанияСписания); МесяцОкончанияСписания = ДатаМесяц(Страховка.ДатаОкончанияСписания); Если ДатаОкончанияСписания >= ДатаКон Тогда Если ГодОкончанияСписания = ГодДок Тогда КолМес = МесяцОкончанияСписания - МесяцДок +1; // Иначе КолМес = 12 - МесяцДок + 1; // кол месяцев до конца года, включая текущий месяц КолГод = ГодОкончанияСписания - ГодДок; // количество ост. лет, включая текущий год КолМес = КолМес + 12 * (КолГод - 1); КолМес = КолМес + МесяцОкончанияСписания; КонецЕсли; ОстСтраховки = БухИт.СНД(); СуммаСписания = ОстСтраховки / КолМес; Если СуммаСписания > 0 Тогда Операция.НоваяПроводка(); // СчетСписания - 97 Операция.СодержаниеПроводки = "Списание расходов БП за "+Формат(ДатаДок,"Д ММММГГГГ"); Операция.Сумма = СуммаСписания; СуммаОперации = СуммаОперации + СуммаСписания; ИтогоОстаток = ИтогоОстаток + ОстСтраховки - СуммаСписания; Операция.Дебет.Счет = СчетСписания; Операция.Дебет.Субконто(1,Субконто1); Операция.Дебет.Субконто(2,Субконто2); Операция.Дебет.Субконто(3,Субконто3); Операция.Кредит.Счет = СчРасхБП; Операция.Кредит.РасходыБудущихПериодов = Страховка; Таб.ВывестиСекцию("Стр"); КонецЕсли; Иначе Продолжить; КонецЕсли; КонецЦикла; КонецПроцедуры |
|||
7
Eeakie
30.08.12
✎
14:42
|
Может в коде косяк какой... я уже не знаю...
|
|||
8
Eeakie
30.08.12
✎
14:43
|
Такое ощущение, что с запросом что-то не так.
|
|||
9
Eeakie
30.08.12
✎
14:48
|
Сдаюсь. Пусть операциями вводят.
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |