gifts2017

Как в УПП: установка плановой себестоимости по фактической для КА 1.1 (РАУЗ)

Опубликовал Василий Пупкин (Cyberhawk) в раздел Программирование - Практика программирования

В статье описано, как перенести обработку из УПП в КА (только для РАУЗ). Конечного файла обработки в статье нет (есть только описание необходимых изменений).

Если у вас конфигурация "Комплексная автоматизация" (КА) и если вы используете РАУЗ, то наверняка когда-нибудь (или, быть может, уже) у вас возникнет желание или необходимость отойти от установки плановой себестоимости выпускаемой продукции по плановым ценам.

Одной из альтернатив может являться установка плановой себестоимости на основании фактической (например, за предыдущий месяц), как это реализовано в УПП.

Для написания статьи была использована демобаза КА версии 1.1.62.3.

Вероятно, описанное заработает и в более ранних версиях КА, но, например, на 1.1.56 (по моей информации) уже не работает.

Сама обработка была взята из демобазы УПП версии 1.3.55.1.

Обработка была адаптирована для КА и несколько доработана (суть доработки в том, чтобы можно было считать себестоимость не только по данным упр., но и регл. учета):

Данные для расчета берутся из двух основных регистров РАУЗ: УчетЗатрат и УчетЗатратРегл.

Далее описываю необходимые изменения:

1. В модуле обработки в функции

СформироватьТекстЗапросаФактическиеЗатратыРасширеннаяАналитика()

изменить код

ТекстЗапроса = ПроцедурыРасчетаСебестоимостиВыпуска.ЗаменитьКомментарииВТекстеЗапроса(

на код

ТекстЗапроса = УправлениеЗатратами.ЗаменитьКомментарииВТекстеЗапроса(

2. В модуле обработки в функции

ПолучитьТехОперации()

убрать выполнение запроса, например, вот таким комментированием:

//РезультатЗапроса = Запрос.Выполнить();
//Если РезультатЗапроса.Пустой() Тогда
	Возврат Неопределено;
//КонецЕсли;
//
//Возврат РезультатЗапроса.Выгрузить();

3. Наконец, изменение самого запроса. В модуле обработки в функции

СформироватьТекстЗапросаФактическиеЗатратыРасширеннаяАналитика()

необходимо закомментировать / изменить часть запроса в соответствии с приведенным ниже фрагментом:

ТекстЗапросаСКомментариями = "
	|ВЫБРАТЬ
	|	ЗатратыНаВыпуск.Номенклатура,
	|	ЗатратыНаВыпуск.ХарактеристикаНоменклатуры,
	|	ЗатратыНаВыпуск.СтатьяЗатрат,
	|	ЗатратыНаВыпуск.ХарактерЗатрат,
	|	ЗатратыНаВыпуск.СтатьяЗатрат.ВидЗатрат		КАК ВидЗатрат,
	|	ЗатратыНаВыпуск.Затрата						КАК Затрата,
	|	СУММА(Сумма //ПроцентИзм //СуммаИзм) 		КАК Сумма
	|ИЗ (
	|	ВЫБРАТЬ
	|		РегистрАналитикаРаспределенияЗатрат.Продукция КАК Номенклатура,
	|		РегистрАналитикаРаспределенияЗатрат.ХарактеристикаПродукции	КАК ХарактеристикаНоменклатуры,
	|		РегистрАналитикаУчетаЗатрат.СтатьяЗатрат,
	|		РегистрАналитикаУчетаЗатрат.ХарактерЗатрат,
	|		РегистрАналитикаУчетаЗатрат.Затрата,
	|		СУММА(ВЫБОР КОГДА ВыпускПродукции.Количество ЕСТЬ NULL ТОГДА
	|			0
	|		ИНАЧЕ
	|			ЗатратыНаВыпуск.СтоимостьПриход / ВыпускПродукции.Количество
	|		КОНЕЦ) КАК Сумма
	|	ИЗ
	|		РегистрНакопления.УчетЗатрат%СуффиксРегл%.Обороты(//ДатаНач, //ДатаКон, Период,
	|			АналитикаВидаУчета В (
	|				ВЫБРАТЬ
	|					Ссылка
	|				ИЗ
	|					РегистрСведений.АналитикаВидаУчета КАК РегистрАналитикаВидаУчета
	//|				ГДЕ
	//|					РазделУчета = ЗНАЧЕНИЕ(Перечисление.РазделыУчета.ЗатратыНаВыпуск)
	//|					ИЛИ РазделУчета = ЗНАЧЕНИЕ(Перечисление.РазделыУчета.ЗатратыПоНаработке)
	|				)
	//|			И АналитикаУчетаЗатрат В (
	//|				ВЫБРАТЬ
	//|					Ссылка
	//|				ИЗ
	//|					РегистрСведений.АналитикаУчетаЗатрат КАК РегистрАналитикаУчетаЗатрат
	//|				ГДЕ
	//|					СтатьяЗатрат.СтатусМатериальныхЗатрат <> ЗНАЧЕНИЕ(Перечисление.СтатусыМатериальныхЗатратНаПроизводство.ПринятыеВПереработку)
	//|					//ХарактерЗатратПроизводственные И ХарактерЗатрат = &ХарактерЗатратПроизводственные
	//|					//ХарактерЗатратОбщепроизводственные И ХарактерЗатрат = &ХарактерЗатратОбщепроизводственные
	//|					//ХарактерЗатратОбщехозяйственные И ХарактерЗатрат = &ХарактерЗатратОбщехозяйственные
	//|					//ХарактерЗатратБрак И ХарактерЗатрат = &ХарактерЗатратБракВПроизводстве
	//|					//ВидЗатрат
	//|				)
	|			И АналитикаРаспределенияЗатрат В (
	|				ВЫБРАТЬ
	|					Ссылка
	|				ИЗ
	|					РегистрСведений.АналитикаРаспределенияЗатрат КАК РегистрАналитикаРаспределенияЗатрат
	|				ГДЕ
	|					Продукция В (&МассивНоменклатуры)
	|					И ХарактеристикаПродукции В(&МассивХарактеристикНоменклатуры)
	|				)
	|
	|		) КАК ЗатратыНаВыпуск
	|
	|	ВНУТРЕННЕЕ СОЕДИНЕНИЕ
	|		РегистрСведений.АналитикаРаспределенияЗатрат КАК РегистрАналитикаРаспределенияЗатрат
	|	ПО
	|		ЗатратыНаВыпуск.АналитикаРаспределенияЗатрат = РегистрАналитикаРаспределенияЗатрат.Ссылка
	|		
	//|	ВНУТРЕННЕЕ СОЕДИНЕНИЕ
	|	ЛЕВОЕ СОЕДИНЕНИЕ

После осуществления описанных выше мер обработка начнет работать (показывать результат расчета):

Стоит отметить, что для корректного результата расчета необходимо в настройках расчета указать метод расчета только у какого-то одного (какого - без разницы) вида расходов, у остальных видов расходов метод расчета должен быть выставлен в "Не рассчитывать":

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

См. также

Подписаться Добавить вознаграждение
Комментарии
1. Игорь Герман (German_Tagil) 07.08.16 17:23
Вопрос - сбросьте пожалуйста обработку Как в УПП: установка плановой себестоимости по фактической для КА 1.1 (РАУЗ) для тестирования
germanigor@rambler.ru
у нас как раз таки КА 1.1
2. Василий Пупкин (Cyberhawk) 07.08.16 18:07
(1) German_Tagil, вроде бы в статье описаны все необходимые шаги для самостоятельной подготовки (адаптации) обработки.
Поэтому пока ограничусь вопросом: что-то не получилось, с чем-то не удалось разобраться?
3. Игорь Герман (German_Tagil) 08.08.16 05:29
У меня УПП нет и если Вы уж опубликовали хочется в реале посмотреть как это работает
Вопрос достаточно сложный для меня поэтому и прошу сбросить обработку
4. Василий Пупкин (Cyberhawk) 08.08.16 06:22
если Вы уж опубликовали хочется в реале посмотреть как это работает
Увы, возможности получить обработку в рамках этой публикации нет.
И об этом вроде достаточно ясно написано жирным текстом (в самом начале публикации).
5. Игорь Герман (German_Tagil) 10.08.16 13:31