public void РаспределитьПрямыеПроизводственныеЗатратыПоБазеРаспределения(/*
СтруктураШапкиДокумента,
РезультатЗапросаПоЗатратам,
РезультатЗапросаПоСпособамРаспределенияЗатрат,
РезультатЗапросаБазаРаспределения,
НаборЗаписейЗатратыНаВыпуск,
НаборЗаписейЗатратыНаВыпускНаработка
*/)
{
/*// Получим построитель запроса по базе распределения.
*/
/*ПостроительЗапроса = ПолучитьПостроительЗапросаПоБазеРаспределения(
СтруктураШапкиДокумента,
РезультатЗапросаБазаРаспределения
);*/
//ВыборкаПоСпособамРаспределенияЗатрат = РезультатЗапросаПоСпособамРаспределенияЗатрат.Выбрать();
//МассивКоэф = Новый Массив;
//ХарактерЗатрат = Перечисления.ХарактерЗатрат.ПроизводственныеРасходы;
//ВыборкаПоЗатратам = РезультатЗапросаПоЗатратам.Выбрать();
while(true/*ВыборкаПоЗатратам.Следующий()*/)
{
/*// Определим способ и характер распределения затрат.
*/
//СпособРаспределения = Неопределено;
//ХарактерРаспределенияЗатрат = Перечисления.ХарактерРаспределенияЗатрат.ПустаяСсылка();
//РаспределятьНаПодчиненныеПодразделения = Ложь;
/*// ОпределятьПоХарактеруЗатрат
*/
/*// ПроверятьУказаниеСпособаРаспределения
*/
/*СпособРаспределения,
ХарактерРаспределенияЗатрат,
РаспределятьНаПодчиненныеПодразделения
);*/
if(true/*Не РаспределятьЗатраты*/)
{
}
/*// Отберем строки базы распределения.
*/
/*// НомерПередела
*/
/*// ЕНВД
*/
/*// ОпределятьПоЕНВД
*/
/*// ОпределятьПоСчетуУчету
*/
/*// ОтборПоПродукции
*/
/*ПостроительЗапроса
);*/
if(true/*УстановленНовыйОтбор*/)
{
//ПостроительЗапроса.Выполнить();
}
//РезультатЗапросаБаза = ПостроительЗапроса.Результат;
//ВсегоБазаРаспределения = 0;
//ВсегоБазаРаспределенияНЗП = 0;
//МассивКоэф.Очистить();
//ВыборкаБаза = РезультатЗапросаБаза.Выбрать();
while(true/*ВыборкаБаза.Следующий()*/)
{
//МассивКоэф.Добавить(ВыборкаБаза.База);
//ВсегоБазаРаспределения = ВсегоБазаРаспределения + ВыборкаБаза.База;
//ВсегоБазаРаспределенияНЗП = ВсегоБазаРаспределенияНЗП + ВыборкаБаза.БазаОстатокНЗП;
}
if(true/*ВсегоБазаРаспределения = 0*/)
{
/*ОбщегоНазначения.Сообщение("Сумма базы коэф. по " + СпособРаспределения + " равна 0, для:
|Подразделение: " + ВыборкаПоЗатратам.Подразделение + "
|Статья затрат: " + ВыборкаПоЗатратам.СтатьяЗатрат + "
|Заказ: " + ВыборкаПоЗатратам.Заказ + "
|Номенклатурная группа: " + ВыборкаПоЗатратам.НоменклатурнаяГруппа, СтатусСообщения.Важное);*/
}
//КоличествоОстаток = ВыборкаПоЗатратам.КоличествоОстаток;
//СуммаОстаток = ВыборкаПоЗатратам.СуммаОстаток;
if(true/*СтруктураШапкиДокумента.ОтражатьВНалоговомУчете*/)
{
//ПостояннаяРазницаОстаток = ВыборкаПоЗатратам.ПостояннаяРазницаОстаток;
//ВременнаяРазницаОстаток = ВыборкаПоЗатратам.ВременнаяРазницаОстаток;
/*СуммаОстаток = СуммаОстаток + ПостояннаяРазницаОстаток
+ ВременнаяРазницаОстаток;*/
}
/*// Пропускаем строки с пустой суммой.
*/
if(true/*КоличествоОстаток = 0
И ВыборкаПоЗатратам.СуммаОстаток = 0
И ПостояннаяРазницаОстаток = 0
И ВременнаяРазницаОстаток = 0*/)
{
}
if(true/*(ВсегоБазаРаспределения + ВсегоБазаРаспределенияНЗП) <> 0*/)
{
//КоэффициентРаспределения = ВсегоБазаРаспределения / (ВсегоБазаРаспределения + ВсегоБазаРаспределенияНЗП);
}
//КоэффициентРаспределения = ?(КоэффициентРаспределения < 0, - КоэффициентРаспределения, КоэффициентРаспределения);
if(true/*ВыборкаПоЗатратам.ВидЗатрат = Перечисления.ВидыЗатрат.Материальные*/)
{
if(true/*ВыборкаПоЗатратам.КоличествоИнвентаризация <> 0 И КоличествоОстаток <> 0*/)
{
//СуммаИнвентаризация = Окр(ВыборкаПоЗатратам.КоличествоИнвентаризация * СуммаОстаток / КоличествоОстаток, 2, 1);
//КоличествоОстаток = КоличествоОстаток - ВыборкаПоЗатратам.КоличествоИнвентаризация;
//СуммаОстаток = СуммаОстаток - СуммаИнвентаризация;
}
}
//КоличествоОстаток = Окр(КоличествоОстаток * КоэффициентРаспределения, 3, 1);
//СуммаОстаток = Окр(СуммаОстаток * КоэффициентРаспределения, 2, 1);
/*// Материальные затраты распределяются по количеству, поэтому нулевые остатки пропускаем.
*/
if(true/*ВыборкаПоЗатратам.ВидЗатрат = Перечисления.ВидыЗатрат.Материальные
И КоличествоОстаток = 0*/)
{
}
//МассивКоличество = ОбщегоНазначения.РаспределитьПропорционально(КоличествоОстаток, МассивКоэф, 3);
//МассивСумма = ОбщегоНазначения.РаспределитьПропорционально(СуммаОстаток, МассивКоэф, 2);
if(true/*СтруктураШапкиДокумента.ОтражатьВНалоговомУчете*/)
{
//СуммаОстатокНУ = СуммаОстаток - ПостояннаяРазницаОстаток - ВременнаяРазницаОстаток;
//ПостояннаяРазницаОстаток = Окр(ПостояннаяРазницаОстаток * КоэффициентРаспределения, 2, 1);
//ВременнаяРазницаОстаток = Окр(ВременнаяРазницаОстаток * КоэффициентРаспределения, 2, 1);
//СуммаОстатокНУ = Окр(СуммаОстатокНУ * КоэффициентРаспределения, 2, 1);
//МассивПостояннаяРазница = ОбщегоНазначения.РаспределитьПропорционально(ПостояннаяРазницаОстаток, МассивКоэф, 2);
//МассивВременнаяРазница = ОбщегоНазначения.РаспределитьПропорционально(ВременнаяРазницаОстаток, МассивКоэф, 2);
//МассивСуммаНУ = ОбщегоНазначения.РаспределитьПропорционально(СуммаОстатокНУ, МассивКоэф, 2);
}
//Индекс = 0;
//ВыборкаБаза.Сбросить();
while(true/*ВыборкаБаза.Следующий()*/)
{
//Количество = ?(МассивКоличество = Неопределено, 0, МассивКоличество[Индекс]);
//Сумма = ?(МассивСумма = Неопределено, 0, МассивСумма[Индекс]);
if(true/*СтруктураШапкиДокумента.ОтражатьВНалоговомУчете*/)
{
//ПостояннаяРазница = ?(МассивПостояннаяРазница = Неопределено, 0, МассивПостояннаяРазница[Индекс]);
//ВременнаяРазница = ?(МассивВременнаяРазница = Неопределено, 0, МассивВременнаяРазница[Индекс]);
//СуммаНУ = ?(МассивСуммаНУ = Неопределено, 0, МассивСуммаНУ[Индекс]);
/*// Скорректируем сумму затрат по временной или постоянной разнице для исключения ошибок округления.
*/
if(true/*СуммаНУ + ПостояннаяРазница + ВременнаяРазница <> Сумма*/)
{
if(true/*ВременнаяРазница <> 0*/)
{
//ВременнаяРазница = Сумма - (СуммаНУ + ПостояннаяРазница);
}
}
}
if(true/*ВыборкаБаза.ВидВыпуска = Перечисления.ВидыВыпуска.Наработка
И Не СтруктураШапкиДокумента.ОтражатьВМеждународномУчете*/)
{
/*// Формирование движений по регистру "Затраты на выпуск (наработка)".
*/
/*СформироватьДвиженияПоРегиструЗатратыНаВыпускПродукцииНаработка(
СтруктураШапкиДокумента,
ВыборкаПоЗатратам,
ВыборкаБаза,
Количество,
Сумма,
НаборЗаписейЗатратыНаВыпускНаработка
);*/
}
//Индекс = Индекс + 1;
}
//;;
}
//;;
}