Запрос = Новый Запрос;
Запрос.Текст = "ВЫБРАТЬ
| ХозрасчетныйОбороты.СчетКт,
| ХозрасчетныйОбороты.СубконтоКт1,
| ХозрасчетныйОбороты.КоличествоОборотКт,
| ХозрасчетныйОбороты.СуммаОборот
|ИЗ
| РегистрБухгалтерии.Хозрасчетный.ОборотыДтКт(&НачДата, &КонДата, , СчетДт В ИЕРАРХИИ (&Счета), , , &ВидСубконтоНом, Организация = &Организация) КАК ХозрасчетныйОбороты";
ВидСубконтоНом = Новый Массив;
ВидСубконтоНом.Добавить(ПланыВидовХарактеристик.ВидыСубконтоХозрасчетные.Номенклатура);
Запрос.УстановитьПараметр("ВидСубконтоНом", ВидСубконтоНом);
СчетаЗатрат = Новый Массив;
СчетаЗатрат.Добавить(ПланыСчетов.Хозрасчетный.ОсновноеПроизводство);
Запрос.УстановитьПараметр("Счета", СчетаЗатрат);
! | Правила: 12, 13 |
Запрос = Новый Запрос;
Запрос.Текст = "ВЫБРАТЬ
| ХозрасчетныйОбороты.СчетКт,
| ХозрасчетныйОбороты.СубконтоКт1,
| ХозрасчетныйОбороты.КоличествоОборотКт,
| ХозрасчетныйОбороты.СуммаОборот
|ИЗ
| РегистрБухгалтерии.Хозрасчетный.ОборотыДтКт(&НачДата, &КонДата, , СчетДт В ИЕРАРХИИ (&Счета), , , &ВидСубконтоНом, Организация = &Организация) КАК ХозрасчетныйОбороты";
ВидСубконтоНом = Новый Массив;
ВидСубконтоНом.Добавить(ПланыВидовХарактеристик.ВидыСубконтоХозрасчетные.Номенклатура);
Запрос.УстановитьПараметр("ВидСубконтоНом", ВидСубконтоНом);
СчетаЗатрат = Новый Массив;
СчетаЗатрат.Добавить(ПланыСчетов.Хозрасчетный.ОсновноеПроизводство);
Запрос.УстановитьПараметр("Счета", СчетаЗатрат);
Процедура РасчитатьПотребностьВМатериалах(СтруктураШапкиДокумента, Отказ)
Если НЕ СтруктураШапкиДокумента.РасчетПотребностиВМатериалах Тогда
Возврат;
КонецЕсли;
СчетЗаб = ПланыСчетов.Хозрасчетный.НайтиПоКоду("0201");
Если СчетЗаб = ПланыСчетов.Хозрасчетный.ПустаяСсылка() Тогда
Сообщить("Не найден счет учета материалов в производстве 0201!");
Отказ = Истина;
Возврат;
КонецЕсли;
Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ
| Выпуск.СчетЗатрат,
| Выпуск.Подразделение,
| Выпуск.НоменклатурнаяГруппа,
| Выпуск.НалоговоеНазначение,
| ХозрасчетныйОстатки.Субконто1 КАК Номенклатура,
| Выпуск.КоличествоСост * (ВЫРАЗИТЬ(ХозрасчетныйОстатки.СуммаОстаток / ХозрасчетныйОстатки.КоличествоОстаток КАК ЧИСЛО(15, 2))) КАК Стоимость,
| Выпуск.КоличествоСост КАК Количество
|ИЗ
| (ВЫБРАТЬ
| ВыпускПродукции.Продукция КАК Продукция,
| ИсторияСпецификацийСрезПоследних.Спецификация КАК Спецификация,
| ВыпускПродукции.СчетЗатрат КАК СчетЗатрат,
| ВыпускПродукции.Подразделение КАК Подразделение,
| ВыпускПродукции.НоменклатурнаяГруппа КАК НоменклатурнаяГруппа,
| ВыпускПродукции.СчетСписания КАК СчетСписания,
| ВыпускПродукции.КоличествоОборот КАК КоличествоВыпуск,
| ИсходныеКомплектующие.Номенклатура КАК Номенклатура,
| ВыпускПродукции.КоличествоОборот / (ИсходныеКомплектующие.Ссылка.Количество * ИсходныеКомплектующие.Ссылка.Коэффициент) * (ИсходныеКомплектующие.Количество * ИсходныеКомплектующие.Коэффициент) КАК КоличествоСост,
| ВыпускПродукции.НалоговоеНазначениеДоходовИЗатрат КАК НалоговоеНазначение
| ИЗ
| РегистрНакопления.ВыпускПродукцииУслугБухгалтерскийУчет.Обороты(&Дата1, &Дата2, , Организация = &Организация) КАК ВыпускПродукции
| ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрСведений.ИсторияСпецификаций.СрезПоследних(&Дата2, ) КАК ИсторияСпецификацийСрезПоследних
| ВНУТРЕННЕЕ СОЕДИНЕНИЕ Справочник.СпецификацииНоменклатуры.ИсходныеКомплектующие КАК ИсходныеКомплектующие
| ПО ИсторияСпецификацийСрезПоследних.Спецификация = ИсходныеКомплектующие.Ссылка
| ПО ВыпускПродукции.Продукция = ИсторияСпецификацийСрезПоследних.Номенклатура) КАК Выпуск
| ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрБухгалтерии.Хозрасчетный.Остатки(&Дата2, Счет = &Счет0201, , Организация = &Организация) КАК ХозрасчетныйОстатки
| ПО Выпуск.Номенклатура = ХозрасчетныйОстатки.Субконто1";
Запрос.УстановитьПараметр("Дата1", НачалоМесяца(Дата));
Запрос.УстановитьПараметр("Дата2", Дата);
Запрос.УстановитьПараметр("Организация", Организация);
Запрос.УстановитьПараметр("Счет0201", СчетЗаб);
Результат = Запрос.Выполнить().Выгрузить();
// Дт 231 быт/спец одежда - Кт 231 общая аналитика
ПН = Результат.Скопировать();
ПН.Свернуть("СчетЗатрат, Подразделение, НоменклатурнаяГруппа, НалоговоеНазначение","Стоимость");
Для каждого Строка Из ПН Цикл
Проводка = Движения.Хозрасчетный.Добавить();
Проводка.Регистратор = Ссылка;
Проводка.Период = Дата;
Проводка.Организация = Организация;
Проводка.Содержание = "распределение материалов";
Проводка.СчетДт = Строка.СчетЗатрат; //231
БухгалтерскийУчет.УстановитьСубконто(Проводка.СчетДт, Проводка.СубконтоДт, 1, Строка.Подразделение);
БухгалтерскийУчет.УстановитьСубконто(Проводка.СчетДт, Проводка.СубконтоДт, 2, Строка.НоменклатурнаяГруппа);
Если Проводка.СчетДт.НалоговыйУчет Тогда
Проводка.НалоговоеНазначениеДт = Строка.НалоговоеНазначение;
КонецЕсли;
Проводка.СчетКт = Строка.СчетЗатрат; //231
БухгалтерскийУчет.УстановитьСубконто(Проводка.СчетКт, Проводка.СубконтоКт, 1, Справочники.ПодразделенияОрганизаций.НайтиПоКоду("000000004"));
БухгалтерскийУчет.УстановитьСубконто(Проводка.СчетКт, Проводка.СубконтоКт, 2, Справочники.НоменклатурныеГруппы.Общая);
Если Проводка.СчетКт.НалоговыйУчет Тогда
Проводка.НалоговоеНазначениеКт = Строка.НалоговоеНазначение;
КонецЕсли;
Проводка.Сумма = Строка.Стоимость;
КонецЦикла;
// Кт 0201
Результат.Свернуть("Номенклатура","Стоимость, Количество");
Для каждого Строка Из Результат Цикл
Проводка = Движения.Хозрасчетный.Добавить();
Проводка.Регистратор = Ссылка;
Проводка.Период = Дата;
Проводка.Организация = Организация;
Проводка.Содержание = "материалы выбывшие из производства";
Проводка.СчетКт = СчетЗаб; //0201
БухгалтерскийУчет.УстановитьСубконто(Проводка.СчетКт, Проводка.СубконтоКт, 1, Строка.Номенклатура);
Проводка.КоличествоКт = Строка.Количество;
Проводка.Сумма = Строка.Стоимость;
КонецЦикла;
КонецПроцедуры
Если СтруктураШапкиДокумента.ЕстьНалогНаПрибыль
И Строка.НалоговоеНазначение <> Справочники.НалоговыеНазначенияАктивовИЗатрат.НДС_НеоблагаемаяНеХозДеятельность Тогда
СуммаНУ = Строка.СуммаПлановая;
НоваяПроводка.СуммаНУДт = СуммаНУ;
НоваяПроводка.СуммаНУКт = СуммаНУ;
КонецЕсли;