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

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

Задачи пользователя - Закрытие периода

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

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

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

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

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

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

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

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

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

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

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

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

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

Исправляем.

Вариант 1:

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

См. также

АЦРК: Многовариантный автоматический запрет редактирования (для конфигурации УТ 10.3)

Закрытие периода Математика и алгоритмы Инструменты администратора БД Платформа 1С v8.3 1С:Управление торговлей 10 Абонемент ($m)

В этой статье описывается усовершенствованная технология автоматической установки даты запрета редактирования Во-первых, можно определить несколько стратегий запрета редактирования с разными параметрами. Например, запрет в днях, запрет доступа в предыдущие месяцы кварталы и т.п., с указанием отступа от текущей даты. То есть для некоторых пользователей (рядовых менеджеров) при входе в базе будет устанавливаться запрет по вчерашний день, для других (старших менеджеров) на 5 дней назад, для третьих (администраторов базы или руководителей отдела) - запрет предыдущего месяца с отступом в 10 дней.. Во-вторых, запрет будет устанавливаться для ВСЕХ без исключения пользователей базы данных. Для самых привилегированных это будет максимальная глубина, но запрет будет установлен. Управление этой системой осуществляется через механизм дополнительных прав пользователей. При необходимости пользователь с полными правами может открыть для себя закрытый период, но только на текущий сеанс работы.

1 стартмани

22.07.2013    21767    acrk    9    

9