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