#Если Сервер Или ТолстыйКлиентОбычноеПриложение Или ВнешнееСоединение Тогда
#Область ПрограммныйИнтерфейс
Процедура ЗадатьОписаниеЗаполняемыхРеквизитовПоСтатистике(ОписаниеРеквизитов) Экспорт
ЗаполнениеОбъектовПоСтатистике.ДобавитьОписаниеЗаполняемыхРеквизитов(ОписаниеРеквизитов,
"Организация");
Параметры = ЗаполнениеОбъектовПоСтатистике.ПараметрыЗаполняемыхРеквизитов();
Параметры.РазрезыСбораСтатистики.ИспользоватьТолькоЗаполненные = "Организация";
ЗаполнениеОбъектовПоСтатистике.ДобавитьОписаниеЗаполняемыхРеквизитов(
ОписаниеРеквизитов, "Ответственный", Параметры);
КонецПроцедуры
Процедура ПриОпределенииНастроекВерсионированияОбъектов(Настройки) Экспорт
КонецПроцедуры
Функция ПредставлениеДокумента(Объект, ДатаДокумента = Неопределено) Экспорт
Возврат ПредставлениеДокументаОбщее(Объект, ДатаДокумента);
КонецФункции
Процедура ДобавитьКомандыСозданияНаОсновании(КомандыСозданияНаОсновании, Параметры) Экспорт
КонецПроцедуры
Функция ДобавитьКомандуСоздатьНаОсновании(КомандыСозданияНаОсновании) Экспорт
Если ПравоДоступа("Добавление", Метаданные.Документы.ИзделияИЗатратыНЗП) Тогда
КомандаСоздатьНаОсновании = КомандыСозданияНаОсновании.Добавить();
КомандаСоздатьНаОсновании.Менеджер = Метаданные.Документы.ИзделияИЗатратыНЗП.ПолноеИмя();
КомандаСоздатьНаОсновании.Представление = ОбщегоНазначенияУТ.ПредставлениеОбъекта(Метаданные.Документы.ИзделияИЗатратыНЗП);
КомандаСоздатьНаОсновании.РежимЗаписи = "Проводить";
Возврат КомандаСоздатьНаОсновании;
КонецЕсли;
Возврат Неопределено;
КонецФункции
Процедура ДобавитьКомандыОтчетов(КомандыОтчетов, Параметры) Экспорт
Возврат;
КонецПроцедуры
#Область Серии
Функция ИменаРеквизитовДляЗаполненияПараметровУказанияСерий() Экспорт
ИменаРеквизитов = "Дата, Спецификация";
Возврат ИменаРеквизитов;
КонецФункции
Функция ПараметрыУказанияСерий(Объект) Экспорт
ПараметрыУказанияСерийМатериалов = НоменклатураКлиентСервер.ПараметрыУказанияСерий();
ПараметрыУказанияСерийМатериалов.ПолноеИмяОбъекта = "Документ.ИзделияИЗатратыНЗП";
ПараметрыУказанияСерийМатериалов.ИмяПоляСклад = "Подразделение";
ПараметрыУказанияСерийМатериалов.ИмяТЧТовары = "МатериалыИУслуги";
ПараметрыУказанияСерийМатериалов.ИмяТЧСерии = "МатериалыИУслуги";
ПараметрыУказанияСерийМатериалов.ИмяПоляКоличество = "Количество";
ПараметрыУказанияСерийМатериалов.УчитыватьСебестоимостьПоСериям =
ПолучитьФункциональнуюОпцию("УчитыватьСебестоимостьПоСериямПроизводство", Новый Структура());
ПараметрыУказанияСерийМатериалов.ИспользоватьСерииНоменклатуры =
ПолучитьФункциональнуюОпцию("ИспользоватьСерииНоменклатурыПроизводство", Новый Структура());
ПараметрыУказанияСерийМатериалов.СкладскиеОперации.Добавить(Перечисления.СкладскиеОперации.СписаниеМатериаловНаЗатраты);
ПараметрыУказанияСерийМатериалов.ПоляСвязи.Добавить("Назначение");
ПараметрыУказанияСерийМатериалов.ПоляСвязи.Добавить("Подразделение");
ПараметрыУказанияСерийМатериалов.ЭтоНакладная = Истина;
ПараметрыУказанияСерийМатериалов.Дата = Объект.Дата;
ПараметрыУказанияСерий = Новый Структура;
ПараметрыУказанияСерий.Вставить("МатериалыИУслуги", ПараметрыУказанияСерийМатериалов);
Возврат ПараметрыУказанияСерий;
КонецФункции
Функция ТекстЗапросаЗаполненияСтатусовУказанияСерий(ПараметрыУказанияСерий) Экспорт
ТекстЗапроса =
"ВЫБРАТЬ
| Товары.Серия,
| Товары.Номенклатура,
| Товары.Характеристика,
| Товары.Подразделение,
| Товары.Назначение,
| Товары.Количество,
| Товары.СтатусУказанияСерий,
| Товары.НомерСтроки
|ПОМЕСТИТЬ Товары
|ИЗ
| &Товары КАК Товары
|;
|
|
|ВЫБРАТЬ
| Товары.Серия,
| Товары.Номенклатура,
| Товары.Характеристика,
| Товары.Подразделение,
| Товары.Назначение,
| СУММА(Товары.Количество) КАК Количество,
| ВЫРАЗИТЬ(Товары.Номенклатура КАК Справочник.Номенклатура).ВидНоменклатуры КАК ВидНоменклатуры
|ПОМЕСТИТЬ ТоварыДляЗапроса
|ИЗ
| Товары КАК Товары
|
|СГРУППИРОВАТЬ ПО
| Товары.Серия,
| Товары.Номенклатура,
| Товары.Характеристика,
| Товары.Подразделение,
| Товары.Назначение
|;
|
|
|ВЫБРАТЬ
| Товары.НомерСтроки КАК НомерСтроки,
| Товары.СтатусУказанияСерий КАК СтатусУказанияСерийСтарый,
| ВЫБОР
| КОГДА ПолитикиУчетаСерий.ПолитикаУчетаСерий ЕСТЬ NULL
| ТОГДА 0
| КОГДА ПолитикиУчетаСерий.ПолитикаУчетаСерий.УчитыватьСебестоимостьПоСериям
| ТОГДА ВЫБОР
| КОГДА Товары.Серия <> ЗНАЧЕНИЕ(Справочник.СерииНоменклатуры.ПустаяСсылка)
| ТОГДА 14
| ИНАЧЕ 13
| КОНЕЦ
| ИНАЧЕ 0
| КОНЕЦ КАК СтатусУказанияСерий
|ПОМЕСТИТЬ Статусы
|ИЗ
| Товары КАК Товары
| ЛЕВОЕ СОЕДИНЕНИЕ ТоварыДляЗапроса КАК ТоварыДляЗапроса
| ЛЕВОЕ СОЕДИНЕНИЕ Справочник.ВидыНоменклатуры.ПолитикиУчетаСерий КАК ПолитикиУчетаСерий
| ПО (ТоварыДляЗапроса.Подразделение = ПолитикиУчетаСерий.Склад)
| И ТоварыДляЗапроса.ВидНоменклатуры = ПолитикиУчетаСерий.Ссылка
| ПО Товары.Номенклатура = ТоварыДляЗапроса.Номенклатура
| И Товары.Характеристика = ТоварыДляЗапроса.Характеристика
| И Товары.Подразделение = ТоварыДляЗапроса.Подразделение
| И Товары.Назначение = ТоварыДляЗапроса.Назначение
|;
|
|
|ВЫБРАТЬ
| Статусы.НомерСтроки КАК НомерСтроки,
| Статусы.СтатусУказанияСерий КАК СтатусУказанияСерий
|ИЗ
| Статусы КАК Статусы
|ГДЕ
| Статусы.СтатусУказанияСерий <> Статусы.СтатусУказанияСерийСтарый
|
|УПОРЯДОЧИТЬ ПО
| НомерСтроки";
Возврат ТекстЗапроса;
КонецФункции
#КонецОбласти
Функция ПараметрыВыбораСпецификаций(Объект) Экспорт
ПараметрыВыбораСпецификаций = УправлениеДаннымиОбИзделияхКлиентСервер.ПараметрыВыбораСпецификаций();
ПараметрыВыбораСпецификаций.ДоступныеТипы.Добавить(Перечисления.ТипыПроизводственныхПроцессов.Сборка);
ПараметрыВыбораСпецификаций.ДоступныеСтатусы.Добавить(Перечисления.СтатусыСпецификаций.Действует);
СвязиПараметровВыбора = Новый Структура(УправлениеДаннымиОбИзделияхКлиентСервер.ПоляСтруктурыДанныхОбИзделииДляВыбораСпецификации());
СвязиПараметровВыбора.Номенклатура = "Объект.Номенклатура";
СвязиПараметровВыбора.Характеристика = "Объект.Характеристика";
СвязиПараметровВыбора.НачалоПроизводства = "Объект.Дата";
ПараметрыВыбораСпецификаций.СвязиПараметровВыбора.Вставить("Объект.Спецификация", СвязиПараметровВыбора);
Возврат ПараметрыВыбораСпецификаций;
КонецФункции
Функция ИменаРеквизитовДляЗаполненияПараметровВыбораСпецификаций() Экспорт
ИменаРеквизитов = "";
Возврат ИменаРеквизитов;
КонецФункции
#КонецОбласти
#КонецЕсли
#Область ОбработчикиСобытий
Процедура ОбработкаПолученияПредставления(Данные, Представление, СтандартнаяОбработка)
СтандартнаяОбработка = Ложь;
Представление = ПредставлениеДокументаОбщее(Данные);
КонецПроцедуры
#КонецОбласти
#Область СлужебныеПроцедурыИФункции
Функция ПредставлениеДокументаОбщее(Объект, ДатаДокумента = Неопределено)
ДатаПредставления = ?(ЗначениеЗаполнено(Объект.Дата), Объект.Дата, ДатаДокумента);
МесяцДокумента = Месяц(ДатаПредставления);
Если МесяцДокумента = 1 Тогда
МесяцСтрокой = Нстр("ru = 'Января'");
ИначеЕсли МесяцДокумента = 2 Тогда
МесяцСтрокой = Нстр("ru = 'Февраля'");
ИначеЕсли МесяцДокумента = 3 Тогда
МесяцСтрокой = Нстр("ru = 'Марта'");
ИначеЕсли МесяцДокумента = 4 Тогда
МесяцСтрокой = Нстр("ru = 'Апреля'");
ИначеЕсли МесяцДокумента = 5 Тогда
МесяцСтрокой = Нстр("ru = 'Мая'");
ИначеЕсли МесяцДокумента = 6 Тогда
МесяцСтрокой = Нстр("ru = 'Июня'");
ИначеЕсли МесяцДокумента = 7 Тогда
МесяцСтрокой = Нстр("ru = 'Июля'");
ИначеЕсли МесяцДокумента = 8 Тогда
МесяцСтрокой = Нстр("ru = 'Августа'");
ИначеЕсли МесяцДокумента = 9 Тогда
МесяцСтрокой = Нстр("ru = 'Сентября'");
ИначеЕсли МесяцДокумента = 10 Тогда
МесяцСтрокой = Нстр("ru = 'Октября'");
ИначеЕсли МесяцДокумента = 11 Тогда
МесяцСтрокой = Нстр("ru = 'Ноября'");
ИначеЕсли МесяцДокумента = 12 Тогда
МесяцСтрокой = Нстр("ru = 'Декабря'");
КонецЕсли;
ШаблонПредставления = НСтр("ru = 'Изделия и затраты НЗП на %1 %2 %3 №%4'");
Представление = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
ШаблонПредставления,
День(КонецМесяца(ДатаПредставления)),
МесяцСтрокой,
Формат(ДатаПредставления,"ДФ=гггг"),
Объект.Номер);
Возврат Представление;
КонецФункции
#КонецОбласти