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

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

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

В наличии

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

Категория:

Описание

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

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

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

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

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

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

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

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

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

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

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

Исправляем.

Вариант 1:

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

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

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

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

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

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

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

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

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

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

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

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

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

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

has been added to your cart:
Оформление заказа