Top.Mail.Ru

Как быстро, при помощи расширений, доработать движения регламентированного учета в ERP 2.4 или KA 2

Как быстро, при помощи расширений, доработать движения регламентированного учета в ERP 2.4 или KA 2



Для тех, кому предстоит поработать с отражением документов в регламентированном учете в конфигурациях ERP 2 и KA 2.

Прогресс не стоит на месте, с развитием механизма расширений решение все большего количества задач становится привлекательным с использованием этой технологии.

Возвращаясь к заголовку, в этой статье, на простом примере, я расскажу, как это можно сделать.

Сокращения:

РУ – регламентированный учет

УУ – управленческий учет

Итого что мы имеем:

  • конфигурация: ERP 2.4.5.24;
  • версия платформы 8.3.12.1616.

P.S. В конфигурации комплексная автоматизация 2 можно использовать такой же алгоритм, какой будет описан ниже.

Некое лирическое отступление:

Есть некоторые спорные моменты - как быть если нужно добавить некоторые объекты в систему? На проектах, команда разработчиков, частью которой я являюсь, договорилась, что все новые объекты конфигурации, мы добавляем именно в основную конфигурацию, а всю новую логику мы выносим в расширение. С чем это связано? С тем, что нет четкой уверенности, как поведет себя платформа, например, с данными новых реквизитов при отключении расширения. Есть мнение что им может прийти конец. Риск – дело благородное, но у клиента на этот счет может быть иное мнение. Плюс ко всему, новые объекты конфигурации не сильно осложняют последующие обновление конфигурации, да конфигурация «вскрыта», но сравнение и объединение пройдет быстро.

Постановка задачи:   

Необходимо добавить подразделение в табличную часть товары в документе «Реализация товаров и услуг».

Типовое поведение системы подразумевает, что подразделение у нас устанавливается на вкладке «Дополнительно». А нам надо, чтобы подразделение было в табличной части «Товары».

Решение:

Для начала нам нужно добавить новый реквизит «Подразделение» в табличную часть документа «Приобретение товаров и услуг». Не забываем добавить префикс у нового реквизита.

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

Третьим этапом, мы выясним, что все запросы для движений регистра бухгалтерии «хозрасчетный» находятся в модуле менеджера нашего документа, нам останется только их отредактировать. Открываем в расширении модуль менеджера объекта «реализация товаров и услуг». Ищем нужные нам функции, содержащие соответствующие тексты запросов. Весьма важно, чтобы у нас внезапно не упала база с красной ошибкой, перед началом работы добавить область:

#Если Сервер Или ТолстыйКлиентОбычноеПриложение Или ВнешнееСоединение Тогда

#КонецЕсли

Пример как это может выглядеть приведен ниже:

Здесь видно, что при помощи директивы «&Вместо» мы подменяем функции модуля менеджера основной конфигурации, на нужные нам (копируем код и правим).

Далее осталось только отредактировать запрос в нашей новой функции:      

///////////////////////////////////////////////////////////////////////////////////////////////
|	НЕОПРЕДЕЛЕНО КАК МестоУчетаДт,
|	Операция.ВалютаВзаиморасчетов КАК ВалютаДт,
//+ Некоторый комментарий
//  Операция.Подразделение КАК ПодразделениеДт,
|	РеализацияТоваровУслугТовары.ИС_Подразделение КАК ПодразделениеДт,
//- Некоторый комментраий
|	ЕСТЬNULL(Расчеты.НаправлениеДеятельности, Операция.НаправлениеДеятельности) КАК НаправлениеДеятельностиДт,
///////////////////////////////////////////////////////////////////////////////////////////////
	
///////////////////////////////////////////////////////////////////////////////////////////////
|	ЗНАЧЕНИЕ(Справочник.Склады.ПустаяСсылка) КАК МестоУчетаКт,
|	ЗНАЧЕНИЕ(Справочник.Валюты.ПустаяСсылка) КАК ВалютаКт,
//+ Некоторый комментарий
//  Операция.Подразделение КАК ПодразделениеКт,
|	РеализацияТоваровУслугТовары.ИС_Подразделение КАК ПодразделениеКт,
//- Некоторый комментарий
|	Операция.НаправлениеДеятельности КАК НаправлениеДеятельностиКт,
|	ЗНАЧЕНИЕ(ПланСчетов.Хозрасчетный.ПустаяСсылка) КАК СчетКт,
///////////////////////////////////////////////////////////////////////////////////////////////

Теперь про движения по регистру бухгалтерии в целом. Тот маленький кусочек, который мы рассмотрели, это часть единого механизма отложенного отражения в РУ. В ERP движения по УУ и РУ разделены, это преследует разные цели в т.ч. производительность. При проведении документа, если это требуется, в регистре сведений «Документы к отражению в регламентированном учете» делается запись, которая является маркером, по которому определяется нужно отразить документ в РУ или нет. После этого обработка «Отражение документов в регламентированном учете», по запросу пользователя или регламентным заданием, опираясь на маркер, собирает сведения по отражению. Вот тут мы снова возвращаемся к модулю менеджера, где для каждого документа уже есть свой алгоритм формирования данных – запросы. Тут же мы можем не только дорабатывать существующие запросы, но и добавлять свои (можно скопировать запрос наиболее похожий на тот который мы в итоге хотим получить и дописать его). Все запросы в итоге объединяются в один, в процедуре которая указана ниже.

Функция ТекстОтраженияВРеглУчете() Экспорт
	
	ТекстыОтражения = Новый Массив;
	
	//////////////////////////////////////////////////////////////
	ТекстыОтражения.Добавить(ТекстПередачаНаКомиссию());
	//+ Некоторый комментарий
	ТекстыОтражения.Добавить(ТекстНашНовыйЗапрос());
	//- Некоторый комментарий
	//////////////////////////////////////////////////////////////
	
	Возврат СтрСоединить(ТекстыОтражения, ОбщегоНазначенияУТ.РазделительЗапросовВОбъединении());
	
КонецФункции

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

Источник // infostart.ru