УТ 11.4.9.98: Проблема наличия остатков по регистру "прочих расходов" при выполнении операции закрытия месяца с включенной функциональной опцией "Финансовый результат по направлениям деятельности"

Публикация № 1186678

Учет и отчетность - Закрытие периода - Закрытие периода

направление деятельности

Разберемся в причине возникновения проблемы и найдем пути решения.

В ходе анализа было определено, что проблемы возникают с документами, в которых в качестве статей расхода указаны статьи без указания правил распределения расходов по направлениям деятельности (далее НП), но при этом, в качестве типа аналитики указано именно "Направление деятельности".

Рассмотрим список документов "Распределение расходов по направлениям деятельности", которые формируются при закрытии месяца.

Обнаружим, что остались несформированные документы:

Повторная попытка формирования этих документов приводит к такой же ошибке. Переходим к анализу этих документов.

УТ утверждает, что нам дополнительно документ распределять не требуется, т.к. в аналитике указано направление деятельности.

Так почему же документ не формируется. Как всегда спасает консоль запросов.

Видим, что не заполнены реквизиты "база распределения" и "направление деятельности", и реквизит "Направление распределения" имеет значение "Текущее подразделение". Это происходит только в том случае, если в качестве аналитики  указано Тип("СправочникСсылка.НаправленияДеятельности"). Это точно видно из следующего:

Документ.РаспределениеПрочихЗатрат.МодульОбъекта.Процедура ОбработкаЗаполнения()

Если НазначениеНастройкиРаспределения = Перечисления.НазначениеПравилРаспределенияРасходов.РаспределениеРасходовНаФинансовыйРезультат
	И (ЗначениеЗаполнено(НаправлениеДеятельности)
	Или (ТипЗнч(АналитикаРасходов) = Тип("СправочникСсылка.НаправленияДеятельности")
		И ЗначениеЗаполнено(АналитикаРасходов))
	Или Не ПолучитьФункциональнуюОпцию("ФормироватьФинансовыйРезультат")) Тогда
	НаправлениеРаспределения = Перечисления.НаправлениеРаспределенияПоПодразделениям.Текущее;
КонецЕсли;

Т.е. "Направление распределения" программисты установили, а про остальные реквизиты, необходимые для распределения, забыли и заблокировали их для заполнения.

В результате всех этих факторов и происходит ошибка при распределении расходов по НП.

Исправляем.

Вариант 1:

Разблокируем элементы формы, чтобы можно было вручную указать правила распределения расходов.

В Документ.РаспределениеПрочихЗатрат.Формы.ФормаНастроекНаФР исправляем указанные процедуры следующим образом:

&НаКлиентеНаСервереБезКонтекста
Процедура УстановитьВидимостьСтраниц(Форма, ИмяРеквизита = Неопределено)
	
	Элементы = Форма.Элементы;
	Объект = Форма.Объект;
	
	Если ИмяРеквизита = Неопределено Или ИмяРеквизита = "НаправлениеРаспределения" Тогда
		
		Элементы.ОписаниеПравилаНаФинансовыйРезультат.Видимость = 
			Не Объект.НаправлениеРаспределения = ПредопределенноеЗначение("Перечисление.НаправлениеРаспределенияПоПодразделениям.ПоКоэффициентам");
			
		Элементы.СтраницаНаправленияДеятельности.Видимость = 
			Объект.НаправлениеРаспределения = ПредопределенноеЗначение("Перечисление.НаправлениеРаспределенияПоПодразделениям.ПоКоэффициентам");
			
	КонецЕсли;
	
КонецПроцедуры

&НаКлиентеНаСервереБезКонтекста
Процедура УстановитьВидимостьЭлементов(Форма, ИмяРеквизита = Неопределено)
	
	Элементы = Форма.Элементы;
	Объект = Форма.Объект;
	
	Если ИмяРеквизита = "НаправлениеРаспределения" Или ИмяРеквизита = Неопределено Тогда
		Элементы.ПредставлениеУказанныхНД.Видимость = 
			Объект.НаправлениеРаспределения = ПредопределенноеЗначение("Перечисление.НаправлениеРаспределенияПоПодразделениям.Указанные");
	КонецЕсли;
	
	Если ИмяРеквизита = "ПоказательРаспределения" Или ИмяРеквизита = Неопределено Тогда
		Элементы.ГруппаБазаРаспределенияНаФР.Видимость = Форма.ПоказательРаспределения = "ПрямыеЗатраты";
	КонецЕсли;
	
	Если ИмяРеквизита = Неопределено Тогда
		
		Элементы.ГруппаВидыУчета.Видимость = Не Форма.УТБазовая;
		Элементы.НастройкаРаспределенияНеТребуется.Видимость = Ложь;
		Элементы.ГруппаКудаРаспределять.Видимость = Не Элементы.НастройкаРаспределенияНеТребуется.Видимость;
			
	КонецЕсли;
	
КонецПроцедуры

&НаКлиентеНаСервереБезКонтекста
Процедура УстановитьДоступностьЭлементов(Форма, ИмяРеквизита = Неопределено)
	
	Элементы = Форма.Элементы;
	Объект = Форма.Объект;
	
	Если ИмяРеквизита = Неопределено Тогда
		
		ВариантыРаспределения = ОбщегоНазначенияУТВызовСервера.ЗначенияРеквизитовОбъекта(Объект.СтатьяРасходов, 
			"ВариантРаспределенияРасходовРегл, ВариантРаспределенияРасходовУпр");
		Элементы.ГруппаВидыУчета.Доступность = 
			ВариантыРаспределения.ВариантРаспределенияРасходовРегл = ВариантыРаспределения.ВариантРаспределенияРасходовУпр;
		Элементы.НаправлениеРаспределенияМеждуНД.Доступность = Истина;
		
	КонецЕсли;
	
КонецПроцедуры

Второй вариант:

Документ.РаспределениеПрочихЗатрат.МодульОбъекта.Процедура ОбработкаЗаполнения() допишем для нашего случая после текста:

Если НазначениеНастройкиРаспределения = Перечисления.НазначениеПравилРаспределенияРасходов.РаспределениеРасходовНаФинансовыйРезультат
	И (ЗначениеЗаполнено(НаправлениеДеятельности)
	Или (ТипЗнч(АналитикаРасходов) = Тип("СправочникСсылка.НаправленияДеятельности")
		И ЗначениеЗаполнено(АналитикаРасходов))
	Или Не ПолучитьФункциональнуюОпцию("ФормироватьФинансовыйРезультат")) Тогда
	НаправлениеРаспределения = Перечисления.НаправлениеРаспределенияПоПодразделениям.Текущее;
КонецЕсли;
	
//переопределим наш случай
Если НазначениеНастройкиРаспределения = Перечисления.НазначениеПравилРаспределенияРасходов.РаспределениеРасходовНаФинансовыйРезультат
	И (ЗначениеЗаполнено(НаправлениеДеятельности)
	Или (ТипЗнч(АналитикаРасходов) = Тип("СправочникСсылка.НаправленияДеятельности")
		И ЗначениеЗаполнено(АналитикаРасходов))
	И ПолучитьФункциональнуюОпцию("ФормироватьФинансовыйРезультат")) Тогда
	НаправлениеРаспределения = Перечисления.НаправлениеРаспределенияПоПодразделениям.Указанные;
КонецЕсли;
//

При варианте 2 удалите старые документы через "обслуживание - удаление объектов" и запустите процедуру закрытия месяца.

Теперь можем исправить правила распределения вручную.

После исправления и проведения всех документов "Распределение расходов" со статусом "Готов к распределению" выполним регламентные операции закрытия месяца.

В результате получим правильное распределение расходов по направлениям деятельности и закрытие месяца без ошибок.

P.S. Вторым вариантом решения проблемы является отказ от использования статей расходов с видом аналитики "Направление деятельности" и не указанным правилом распределения (скриншот 2). Т.е. либо сразу указывать в статьях расходов правила распределения, либо указывать аналитики <> "Направление деятельности", по которым вы сможете вручную указать распределение расходов при формировании документов распределения.

Как обстоят дела в новых версиях, я не знаю.

Скачать файлы

Наименование Файл Версия Размер
УТ 11.4.9.98: Исправление распределения расходов через правку модуля объекта

.cfe 15,71Kb
29.01.20
3
.cfe 1 15,71Kb 3 Скачать

Специальные предложения

Комментарии
В избранное Подписаться на ответы Сортировка: Древо развёрнутое
Свернуть все
1. Suslik_Johns 20.05.20 13:37 Сейчас в теме
А у нас другая ситуация. Здесь на форуме описали - пока все молчат.
https://forum.infostart.ru/forum86/topic241258/#message2444210
Выяснили, что в поле НазначениеНастройкиРаспределения почему-то заполняется "Распределение расходов на партии производства". Хотя в статье расходов четко прописано: "Списать на финансовый результат" и к тому же правило распределения между направлениями деятельности к нему указано четко......
2. IntellXeon 23.06.20 17:58 Сейчас в теме
Спасибо за разъяснение, но увы не помогло! Все-равно не распределяет.
Оставьте свое сообщение