#Если Сервер Или ТолстыйКлиентОбычноеПриложение Или ВнешнееСоединение Тогда
#Область ПрограммныйИнтерфейс
#Область Проведение
Процедура ЗарегистрироватьУчетныеМеханизмы(МеханизмыДокумента) Экспорт
МеханизмыДокумента.Добавить("Обеспечение");
МеханизмыДокумента.Добавить("ОборотныеРегистрыУправленческогоУчета");
МеханизмыДокумента.Добавить("ОперативныйУчетТоваровОрганизаций");
МеханизмыДокумента.Добавить("ПриемНаОтветхранение");
МеханизмыДокумента.Добавить("Производство");
МеханизмыДокумента.Добавить("РеестрДокументов");
МеханизмыДокумента.Добавить("СебестоимостьИПартионныйУчет");
МеханизмыДокумента.Добавить("СерийныйУчет");
МеханизмыДокумента.Добавить("АдресныйСклад");
МеханизмыДокумента.Добавить("УчетДоходовРасходов");
МеханизмыДокумента.Добавить("УчетПрочихАктивовПассивов");
МеханизмыДокумента.Добавить("УчетРабот");
МеханизмыДокумента.Добавить("УчетНДС");
МеханизмыДокумента.Добавить("ИсправлениеДокументов");
ПроизводствоБезЗаказаЛокализация.ЗарегистрироватьУчетныеМеханизмы(МеханизмыДокумента);
КонецПроцедуры
Функция ДанныеДокументаДляПроведения(Документ, Регистры, ДопПараметры = Неопределено) Экспорт
Если ДопПараметры = Неопределено Тогда
ДопПараметры = ПроведениеДокументов.ДопПараметрыИнициализироватьДанныеДокументаДляПроведения();
КонецЕсли;
Если ТипЗнч(Документ) = Тип("ДокументОбъект.ПроизводствоБезЗаказа") Тогда
ДокументСсылка = Документ.Ссылка;
Иначе
ДокументСсылка = Документ;
КонецЕсли;
Запрос = Новый Запрос;
ТекстыЗапроса = Новый СписокЗначений;
Если Не ДопПараметры.ПолучитьТекстыЗапроса Тогда
ЗаполнитьПараметрыИнициализации(Запрос, ДокументСсылка);
ТекстЗапросаТаблицаВыпускПродукции(Запрос, ТекстыЗапроса, Регистры);
ТекстЗапросаТаблицаДатыПоступленияТоваровОрганизаций(Запрос, ТекстыЗапроса, Регистры);
ТекстЗапросаТаблицаДвиженияСерийТоваров(Запрос, ТекстыЗапроса, Регистры);
ТекстЗапросаТаблицаМатериалыИРаботыВПроизводстве(Запрос, ТекстыЗапроса, Регистры);
ТекстЗапросаТаблицаПрочиеАктивыПассивы(Запрос, ТекстыЗапроса, Регистры);
ТекстЗапросаТаблицаПрочиеРасходы(Запрос, ТекстыЗапроса, Регистры);
ТекстЗапросаТаблицаПартииПрочихРасходов(Запрос, ТекстыЗапроса, Регистры);
ТекстЗапросаТаблицаРеестрДокументов(Запрос, ТекстыЗапроса, Регистры);
ТекстЗапросаТаблицаТоварыКОформлениюОтчетовКомитенту(Запрос, ТекстыЗапроса, Регистры);
ТекстЗапросаТаблицаТоварыОрганизаций(Запрос, ТекстыЗапроса, Регистры);
ТекстЗапросаТаблицаТоварыОрганизацийКПередаче(Запрос, ТекстыЗапроса, Регистры);
ТекстЗапросаТаблицаТрудозатратыКОформлению(Запрос, ТекстыЗапроса, Регистры);
ТекстЗапросаТаблицаДвиженияНоменклатураДоходыРасходы(Запрос, ТекстыЗапроса, Регистры);
ТекстЗапросаТаблицаДвиженияНоменклатураНоменклатура(Запрос, ТекстыЗапроса, Регистры);
ТекстЗапросаТаблицаДвиженияПоПрочимАктивамПассивам(Запрос, ТекстыЗапроса, Регистры);
ПроизводствоБезЗаказаЛокализация.ДополнитьТекстыЗапросовПроведения(Запрос, ТекстыЗапроса, Регистры);
КонецЕсли;
ОтразитьРаспределениеЗапасовДвижения(Запрос, ТекстыЗапроса, Регистры);
ЗапланироватьПоступлениеТоваров(Запрос, ТекстыЗапроса, Регистры);
ОформитьПоступлениеТоваровПоОдноходовке(Запрос, ТекстыЗапроса, Регистры);
ЗапланироватьОтгрузкуТоваров(Запрос, ТекстыЗапроса, Регистры);
ОформитьОтгрузкуТоваров(Запрос, ТекстыЗапроса, Регистры);
ПроведениеДокументов.ДобавитьЗапросыСторноДвижений(Запрос, ТекстыЗапроса, Регистры, ПустаяСсылка().Метаданные());
РасчетСебестоимостиПроведениеДокументов.ОтразитьВМеханизмеУчетаЗатратИСебестоимости(
ДокументСсылка, Запрос, ТекстыЗапроса, Регистры);
Возврат ПроведениеДокументов.ИнициализироватьДанныеДокументаДляПроведения(Запрос, ТекстыЗапроса, ДопПараметры);
КонецФункции
#КонецОбласти
Процедура ЗадатьОписаниеЗаполняемыхРеквизитовПоСтатистике(ОписаниеРеквизитов) Экспорт
ЗаполнениеОбъектовПоСтатистике.ДобавитьОписаниеЗаполняемыхРеквизитов(ОписаниеРеквизитов, "Организация, Подразделение");
Параметры = ЗаполнениеОбъектовПоСтатистике.ПараметрыЗаполняемыхРеквизитов();
Параметры.РазрезыСбораСтатистики.ИспользоватьТолькоЗаполненные = "Организация, Подразделение";
ЗаполнениеОбъектовПоСтатистике.ДобавитьОписаниеЗаполняемыхРеквизитов(
ОписаниеРеквизитов, "Ответственный", Параметры);
Параметры = ЗаполнениеОбъектовПоСтатистике.ПараметрыЗаполняемыхРеквизитов();
Параметры.РазрезыСбораСтатистики.ИспользоватьВсегда = "Ответственный";
ЗаполнениеОбъектовПоСтатистике.ДобавитьОписаниеЗаполняемыхРеквизитов(ОписаниеРеквизитов, "ГруппировкаЗатрат", Параметры);
КонецПроцедуры
#Область СтандартныеПодсистемыКоманды
Процедура ПриОпределенииНастроекВерсионированияОбъектов(Настройки) Экспорт
КонецПроцедуры
Процедура ДобавитьКомандыСозданияНаОсновании(КомандыСозданияНаОсновании, Параметры) Экспорт
ПроизводствоСервер.ДобавитьКомандуСоздатьВыпускПродукцииБезЗаказаНаОсновании(КомандыСозданияНаОсновании);
Документы.АктВыполненныхВнутреннихРабот.ДобавитьКомандуСоздатьНаОсновании(КомандыСозданияНаОсновании);
Документы.ВыработкаСотрудников.ДобавитьКомандуСоздатьНаОснованииСозданиеВыработкиСотрудников(КомандыСозданияНаОсновании);
Обработки.СправочноеРазмещениеНоменклатуры.ДобавитьКомандуСоздатьНаОсновании(КомандыСозданияНаОсновании);
Документы.РасходныйОрдерНаТовары.ДобавитьКомандуСоздатьНаОснованииРасходныйОрдерНаТовары(КомандыСозданияНаОсновании);
ИсправлениеДокументов.ДобавитьКомандуИсправление(КомандыСозданияНаОсновании, ПустаяСсылка().Метаданные());
ИсправлениеДокументов.ДобавитьКомандуСторно(КомандыСозданияНаОсновании, ПустаяСсылка().Метаданные());
ПроизводствоБезЗаказаЛокализация.ДобавитьКомандыСозданияНаОсновании(КомандыСозданияНаОсновании, Параметры);
КонецПроцедуры
Функция ДобавитьКомандуСоздатьНаОсновании(КомандыСозданияНаОсновании) Экспорт
Если ПравоДоступа("Добавление", Метаданные.Документы.ПроизводствоБезЗаказа) Тогда
КомандаСоздатьНаОсновании = КомандыСозданияНаОсновании.Добавить();
КомандаСоздатьНаОсновании.Менеджер = Метаданные.Документы.ПроизводствоБезЗаказа.ПолноеИмя();
КомандаСоздатьНаОсновании.Представление = НСтр("ru = 'Производство без заказа'");
КомандаСоздатьНаОсновании.Обработчик = "ПроизводствоКлиент.ОформитьПроизводствоБезЗаказаНаОсновании";
КомандаСоздатьНаОсновании.РежимЗаписи = "Проводить";
КомандаСоздатьНаОсновании.ФункциональныеОпции = "ИспользоватьУправлениеПроизводством2_2";
КомандаСоздатьНаОсновании.МножественныйВыбор = Ложь;
Возврат КомандаСоздатьНаОсновании;
КонецЕсли;
Возврат Неопределено;
КонецФункции
Процедура ДобавитьКомандыОтчетов(КомандыОтчетов, Параметры) Экспорт
Отчеты.ДеревоСебестоимостиПродукции.ДобавитьКомандуОтчета(КомандыОтчетов);
ПроизводствоБезЗаказаЛокализация.ДобавитьКомандыОтчетов(КомандыОтчетов, Параметры);
КонецПроцедуры
Процедура ДобавитьКомандыПечати(КомандыПечати) Экспорт
#Область ПечатьВыпускаПродукции
Если ПравоДоступа("Чтение", Метаданные.Документы.ПроизводствоБезЗаказа) Тогда
КомандаПечати = КомандыПечати.Добавить();
КомандаПечати.Идентификатор = "Накладная";
КомандаПечати.Представление = НСтр("ru = 'Выпуск продукции'");
КомандаПечати.ПроверкаПроведенияПередПечатью = Истина;
КонецЕсли;
#КонецОбласти
#Область ПечатьПередачиМатериалов
Если ПравоДоступа("Чтение", Метаданные.Документы.ПроизводствоБезЗаказа) Тогда
КомандаПечати = КомандыПечати.Добавить();
КомандаПечати.Идентификатор = "ПередачаМатериаловВПроизводство";
КомандаПечати.Представление = НСтр("ru = 'Передача материалов в производство'");
КомандаПечати.ПроверкаПроведенияПередПечатью = Истина;
КонецЕсли;
#КонецОбласти
#Область ПечатьЗаданиеНаОтборРазмещениеТоваров
Обработки.ПечатьЗаданияНаОтборРазмещениеТоваров.ДобавитьКомандуПечати(
КомандыПечати,
"ЗаданиеНаОтбор");
Обработки.ПечатьЗаданияНаОтборРазмещениеТоваров.ДобавитьКомандуПечати(
КомандыПечати,
"ЗаданиеНаРазмещение");
#КонецОбласти
ПроизводствоБезЗаказаЛокализация.ДобавитьКомандыПечати(КомандыПечати);
КонецПроцедуры
#КонецОбласти
#Область Серии
Функция ИменаРеквизитовДляЗаполненияПараметровУказанияСерий() Экспорт
Возврат "Подразделение, Дата";
КонецФункции
Функция ПараметрыУказанияСерий(Объект) Экспорт
ПараметрыУказанияСерий = Новый Структура;
#Область ВыходныеИзделия
ПараметрыУказанияСерийТЧ = НоменклатураКлиентСервер.ПараметрыУказанияСерий();
ПараметрыУказанияСерийТЧ.ПолноеИмяОбъекта = "Документ.ПроизводствоБезЗаказа";
ПараметрыУказанияСерийТЧ.ИмяПоляСклад = "Получатель";
ПараметрыУказанияСерийТЧ.ИмяТЧТовары = "ВыходныеИзделия";
ПараметрыУказанияСерийТЧ.ИмяТЧСерии = "ВыходныеИзделияСерии";
ПараметрыУказанияСерийТЧ.УчитыватьСебестоимостьПоСериям =
ПолучитьФункциональнуюОпцию("УчитыватьСебестоимостьПоСериямСклад", Новый Структура());
ПараметрыУказанияСерийТЧ.ИспользоватьСерииНоменклатуры =
ПолучитьФункциональнуюОпцию("ИспользоватьСерииНоменклатурыСклад", Новый Структура());
ПараметрыУказанияСерийТЧ.ИменаПолейСтатусУказанияСерий.Добавить("СтатусУказанияСерий");
ПараметрыУказанияСерийТЧ.ПоляСвязи.Добавить("Назначение");
ПараметрыУказанияСерийТЧ.ПоляСвязи.Добавить("Получатель");
ПараметрыУказанияСерийТЧ.ПоляСвязи.Добавить("НомерГруппыЗатрат");
ПараметрыУказанияСерийТЧ.СкладскиеОперации.Добавить(Перечисления.СкладскиеОперации.ПроизводствоПродукции);
ПараметрыУказанияСерийТЧ.ЭтоНакладная = Истина;
ПараметрыУказанияСерийТЧ.СерииПриПланированииОтгрузкиУказываютсяВТЧСерии = Истина;
ПараметрыУказанияСерийТЧ.ПланированиеОтгрузки = Ложь;
ПараметрыУказанияСерийТЧ.ПланированиеОтбора = Ложь;
ПараметрыУказанияСерийТЧ.ФактОтбора = Истина;
ПараметрыУказанияСерийТЧ.РегистрироватьСерии = Истина;
ПараметрыУказанияСерийТЧ.Дата = Объект.Дата;
ПараметрыУказанияСерий.Вставить("ВыходныеИзделия", ПараметрыУказанияСерийТЧ);
#КонецОбласти
#Область ПобочныеИзделия
ПараметрыУказанияСерийТЧ = НоменклатураКлиентСервер.ПараметрыУказанияСерий();
ПараметрыУказанияСерийТЧ.ПолноеИмяОбъекта = "Документ.ПроизводствоБезЗаказа";
ПараметрыУказанияСерийТЧ.ИмяПоляСклад = "Получатель";
ПараметрыУказанияСерийТЧ.ИмяТЧТовары = "ПобочныеИзделия";
ПараметрыУказанияСерийТЧ.ИмяТЧСерии = "ПобочныеИзделияСерии";
ПараметрыУказанияСерийТЧ.УчитыватьСебестоимостьПоСериям =
ПолучитьФункциональнуюОпцию("УчитыватьСебестоимостьПоСериямСклад", Новый Структура());
ПараметрыУказанияСерийТЧ.ИспользоватьСерииНоменклатуры =
ПолучитьФункциональнуюОпцию("ИспользоватьСерииНоменклатурыСклад", Новый Структура());
ПараметрыУказанияСерийТЧ.ИменаПолейСтатусУказанияСерий.Добавить("СтатусУказанияСерий");
ПараметрыУказанияСерийТЧ.ПоляСвязи.Добавить("Назначение");
ПараметрыУказанияСерийТЧ.ПоляСвязи.Добавить("Получатель");
ПараметрыУказанияСерийТЧ.ПоляСвязи.Добавить("НомерГруппыЗатрат");
ПараметрыУказанияСерийТЧ.СкладскиеОперации.Добавить(Перечисления.СкладскиеОперации.ПроизводствоПродукции);
ПараметрыУказанияСерийТЧ.ЭтоНакладная = Истина;
ПараметрыУказанияСерийТЧ.СерииПриПланированииОтгрузкиУказываютсяВТЧСерии = Истина;
ПараметрыУказанияСерийТЧ.ПланированиеОтгрузки = Ложь;
ПараметрыУказанияСерийТЧ.ПланированиеОтбора = Ложь;
ПараметрыУказанияСерийТЧ.ФактОтбора = Истина;
ПараметрыУказанияСерийТЧ.РегистрироватьСерии = Истина;
ПараметрыУказанияСерийТЧ.Дата = Объект.Дата;
ПараметрыУказанияСерий.Вставить("ПобочныеИзделия", ПараметрыУказанияСерийТЧ);
#КонецОбласти
#Область МатериалыИРаботы
ПараметрыУказанияСерийТЧ = НоменклатураКлиентСервер.ПараметрыУказанияСерий();
ПараметрыУказанияСерийТЧ.ПолноеИмяОбъекта = "Документ.ПроизводствоБезЗаказа";
ПараметрыУказанияСерийТЧ.ИмяПоляСклад = "Склад";
ПараметрыУказанияСерийТЧ.ИмяТЧТовары = "МатериалыИРаботы";
ПараметрыУказанияСерийТЧ.ИмяТЧСерии = "МатериалыИРаботы";
ПараметрыУказанияСерийТЧ.УчитыватьСебестоимостьПоСериям =
ПолучитьФункциональнуюОпцию("УчитыватьСебестоимостьПоСериямСклад", Новый Структура());
ПараметрыУказанияСерийТЧ.ИспользоватьСерииНоменклатуры =
ПолучитьФункциональнуюОпцию("ИспользоватьСерииНоменклатурыСклад", Новый Структура());
ПараметрыУказанияСерийТЧ.ИменаПолейСтатусУказанияСерий.Добавить("СтатусУказанияСерий");
ПараметрыУказанияСерийТЧ.ПоляСвязи.Добавить("Склад");
ПараметрыУказанияСерийТЧ.СкладскиеОперации.Добавить(Перечисления.СкладскиеОперации.ПотреблениеМатериаловПриПроизводстве);
ПараметрыУказанияСерийТЧ.ЭтоНакладная = Истина;
ПараметрыУказанияСерийТЧ.ПланированиеОтгрузки = Ложь;
ПараметрыУказанияСерийТЧ.ПланированиеОтбора = Ложь;
ПараметрыУказанияСерийТЧ.ФактОтбора = Истина;
ПараметрыУказанияСерийТЧ.РегистрироватьСерии =
НоменклатураКлиентСервер.НеобходимоРегистрироватьСерии(ПараметрыУказанияСерийТЧ);
ПараметрыУказанияСерийТЧ.Дата = Объект.Дата;
ПараметрыУказанияСерий.Вставить("МатериалыИРаботы", ПараметрыУказанияСерийТЧ);
#КонецОбласти
Возврат ПараметрыУказанияСерий;
КонецФункции
Функция ТекстЗапросаЗаполненияСтатусовУказанияСерий(ПараметрыУказанияСерий) Экспорт
ТекстЗапроса = "";
Если ПараметрыУказанияСерий.ИмяТЧТовары = "ВыходныеИзделия"
Или ПараметрыУказанияСерий.ИмяТЧТовары = "ПобочныеИзделия" Тогда
ТекстЗапроса = ТекстЗапросаЗаполненияСтатусовУказанияСерийВыходныеИзделия();
ИначеЕсли ПараметрыУказанияСерий.ИмяТЧТовары = "МатериалыИРаботы"
Или ПараметрыУказанияСерий.ИмяТЧТовары = "ПодобраннаяМаркируемаяПродукция"
Или ПараметрыУказанияСерий.ИмяТЧТовары = "Товары" Тогда
ТекстЗапроса = ТекстЗапросаЗаполненияСтатусовУказанияСерийМатериалыИРаботы();
КонецЕсли;
Возврат ТекстЗапроса;
КонецФункции
#КонецОбласти
#Область Заполнение
Процедура ДокументыПоПараметрам(Параметры, СписокОбъектов) Экспорт
ТаблицаПродукции = ПолучитьИзВременногоХранилища(Параметры.ИзделияПоСпецификации);
ЗаполнитьГруппыЗатратВКоллекции(ТаблицаПродукции);
МенеджерВременныхТаблиц = Новый МенеджерВременныхТаблиц;
ДанныеСпецификацииПоСпискуПродукции(ТаблицаПродукции, Параметры, МенеджерВременныхТаблиц);
СформироватьДокументы(Параметры, МенеджерВременныхТаблиц, СписокОбъектов);
КонецПроцедуры
Функция МакетФормыВыбораНазначений() Экспорт
МакетФормы = Справочники.Назначения.МакетФормыВыбораНазначений();
ШаблонНазначения = Справочники.Назначения.ДобавитьШаблонНазначений(МакетФормы, "Объект.ВыходныеИзделия.Назначение");
ШаблонНазначения.ТипыНазначений.Удалить(ШаблонНазначения.ТипыНазначений.Найти(Перечисления.ТипыНазначений.Давальческое21));
ШаблонНазначения.ДвиженияПоСкладскимРегистрам = "ИСТИНА";
ШаблонНазначения.НаправлениеДеятельности = "Объект.НаправлениеДеятельности";
ОписаниеКолонок = Справочники.Назначения.ДобавитьОписаниеКолонок(МакетФормы,
"ОбеспечениеЗаказов",
Истина,
"Объект.ВыходныеИзделия.Назначение",
"ВыходныеИзделияПотребность");
ОписаниеКолонок.Колонки.НайтиПоЗначению("Потребность").Пометка = Истина;
ОписаниеКолонок.УсловиеИспользования =
"Объект.ВыходныеИзделия.ТипНоменклатуры <> ЗНАЧЕНИЕ(Перечисление.ТипыНоменклатуры.Работа)";
ОписаниеКолонок.ПутиКДанным.Номенклатура = "Объект.ВыходныеИзделия.Номенклатура";
ОписаниеКолонок.ПутиКДанным.Характеристика = "Объект.ВыходныеИзделия.Характеристика";
ОписаниеКолонок.ПутиКДанным.Склад = "Объект.ВыходныеИзделия.Получатель";
ОписаниеКолонок = Справочники.Назначения.ДобавитьОписаниеКолонок(МакетФормы,
"ОбеспечениеЗаказовРаботами",
Истина,
"Объект.ВыходныеИзделия.Назначение",
"ВыходныеИзделияПотребностьВРаботах");
ОписаниеКолонок.Колонки.НайтиПоЗначению("Потребность").Пометка = Истина;
ОписаниеКолонок.УсловиеИспользования =
"Объект.ВыходныеИзделия.ТипНоменклатуры = ЗНАЧЕНИЕ(Перечисление.ТипыНоменклатуры.Работа)";
ОписаниеКолонок.ПутиКДанным.Номенклатура = "Объект.ВыходныеИзделия.Номенклатура";
ОписаниеКолонок.ПутиКДанным.Характеристика = "Объект.ВыходныеИзделия.Характеристика";
ОписаниеКолонок.ПутиКДанным.Подразделение = "Объект.Подразделение";
ШаблонНазначения = Справочники.Назначения.ДобавитьШаблонНазначений(МакетФормы, "Объект.ПобочныеИзделия.Назначение");
ШаблонНазначения.ТипыНазначений.Удалить(ШаблонНазначения.ТипыНазначений.Найти(Перечисления.ТипыНазначений.Давальческое21));
ШаблонНазначения.ДвиженияПоСкладскимРегистрам = "ИСТИНА";
ШаблонНазначения.НаправлениеДеятельности = "Объект.НаправлениеДеятельности";
ОписаниеКолонок = Справочники.Назначения.ДобавитьОписаниеКолонок(МакетФормы,
"ОбеспечениеЗаказов",
Истина,
"Объект.ПобочныеИзделия.Назначение",
"ПобочныеИзделияПотребность");
ОписаниеКолонок.Колонки.НайтиПоЗначению("Потребность").Пометка = Истина;
ОписаниеКолонок.УсловиеИспользования =
"Объект.ПобочныеИзделия.ТипНоменклатуры <> ЗНАЧЕНИЕ(Перечисление.ТипыНоменклатуры.Работа)";
ОписаниеКолонок.ПутиКДанным.Номенклатура = "Объект.ПобочныеИзделия.Номенклатура";
ОписаниеКолонок.ПутиКДанным.Характеристика = "Объект.ПобочныеИзделия.Характеристика";
ОписаниеКолонок.ПутиКДанным.Склад = "Объект.ПобочныеИзделия.Получатель";
ОписаниеКолонок = Справочники.Назначения.ДобавитьОписаниеКолонок(МакетФормы,
"ОбеспечениеЗаказовРаботами",
Истина,
"Объект.ПобочныеИзделия.Назначение",
"ПобочныеИзделияПотребностьВРаботах");
ОписаниеКолонок.Колонки.НайтиПоЗначению("Потребность").Пометка = Истина;
ОписаниеКолонок.УсловиеИспользования =
"Объект.ПобочныеИзделия.ТипНоменклатуры = ЗНАЧЕНИЕ(Перечисление.ТипыНоменклатуры.Работа)";
ОписаниеКолонок.ПутиКДанным.Номенклатура = "Объект.ПобочныеИзделия.Номенклатура";
ОписаниеКолонок.ПутиКДанным.Характеристика = "Объект.ПобочныеИзделия.Характеристика";
ОписаниеКолонок.ПутиКДанным.Подразделение = "Объект.Подразделение";
ШаблонНазначения = Справочники.Назначения.ДобавитьШаблонНазначений(МакетФормы, "Объект.МатериалыИРаботы.Назначение");
ШаблонНазначения.ТипыНазначений.Удалить(ШаблонНазначения.ТипыНазначений.Найти(Перечисления.ТипыНазначений.Давальческое21));
ШаблонНазначения.ТипыНазначений.Удалить(ШаблонНазначения.ТипыНазначений.Найти(Перечисления.ТипыНазначений.ПоставкаПодПринципала));
ШаблонНазначения.ДвиженияПоСкладскимРегистрам = "ИСТИНА";
ШаблонНазначения.НаправлениеДеятельности = "Объект.НаправлениеДеятельности";
ОписаниеКолонок = Справочники.Назначения.ДобавитьОписаниеКолонок(МакетФормы,
"ОбеспечениеЗаказов",
Истина,
"Объект.МатериалыИРаботы.Назначение",
"МатериалыИРаботыВНаличии");
ОписаниеКолонок.Колонки.НайтиПоЗначению("ВНаличии").Пометка = Истина;
ОписаниеКолонок.УсловиеИспользования =
"Объект.МатериалыИРаботы.ТипНоменклатуры <> ЗНАЧЕНИЕ(Перечисление.ТипыНоменклатуры.Работа)";
ОписаниеКолонок.ПутиКДанным.Номенклатура = "Объект.МатериалыИРаботы.Номенклатура";
ОписаниеКолонок.ПутиКДанным.Характеристика = "Объект.МатериалыИРаботы.Характеристика";
ОписаниеКолонок.ПутиКДанным.Склад = "Объект.МатериалыИРаботы.Склад";
Возврат МакетФормы;
КонецФункции
Функция ПараметрыВыбораСпецификаций(Объект) Экспорт
ПараметрыВыбораСпецификаций = УправлениеДаннымиОбИзделияхКлиентСервер.ПараметрыВыбораСпецификаций();
ПараметрыВыбораСпецификаций.ДоступныеТипы.Добавить(Перечисления.ТипыПроизводственныхПроцессов.Сборка);
ПараметрыВыбораСпецификаций.ДоступныеСтатусы.Добавить(Перечисления.СтатусыСпецификаций.Действует);
СвязиПараметровВыбора = Новый Структура(УправлениеДаннымиОбИзделияхКлиентСервер.ПоляСтруктурыДанныхОбИзделииДляВыбораСпецификации());
СвязиПараметровВыбора.Номенклатура = "Объект.ВыходныеИзделия.Номенклатура";
СвязиПараметровВыбора.Характеристика = "Объект.ВыходныеИзделия.Характеристика";
СвязиПараметровВыбора.НачалоПроизводства = "Объект.Дата";
СвязиПараметровВыбора.НаправлениеДеятельности = "Объект.ВыходныеИзделия.НаправлениеДеятельности";
ПараметрыВыбораСпецификаций.СвязиПараметровВыбора.Вставить("Объект.ВыходныеИзделия.Спецификация", СвязиПараметровВыбора);
Возврат ПараметрыВыбораСпецификаций;
КонецФункции
Функция ИменаРеквизитовДляЗаполненияПараметровВыбораСпецификаций() Экспорт
ИменаРеквизитов = "";
Возврат ИменаРеквизитов;
КонецФункции
Функция ПараметрыРаспределенияЗатрат(Объект) Экспорт
ПараметрыРаспределенияЗатрат = ПроизводствоКлиентСервер.ПараметрыРаспределенияЗатратНаВыходныеИзделия("ВыходныеИзделия", Объект.СпособРаспределенияЗатратНаВыходныеИзделия);
Если Объект.ГруппировкаЗатрат = Перечисления.ГруппировкиЗатратВПроизводствеБезЗаказа.ПоДокументу
Или Объект.ГруппировкаЗатрат = Перечисления.ГруппировкиЗатратВПроизводствеБезЗаказа.ЗатратыНеУказываются
Или Объект.ГруппировкаЗатрат = Перечисления.ГруппировкиЗатратВПроизводствеБезЗаказа.ПоСпецификациям
Или Объект.ГруппировкаЗатрат = Перечисления.ГруппировкиЗатратВПроизводствеБезЗаказа.ПоСпецификациямИНазначениям
Или Объект.Исправление
И Объект.ИсправлениеСохраняетПартииПроизводства Тогда
ПараметрыРаспределенияЗатрат.РассчитыватьПолеДоляСтоимостиПроцент = Истина;
ПараметрыРаспределенияЗатрат.РассчитыватьПризнакЕстьОшибкиЗаполнения = Истина;
ПараметрыРаспределенияЗатрат.РассчитыватьПризнакДоляСтоимостиОбязательна = Истина;
ПараметрыРаспределенияЗатрат.ПараметрыЗаполненияДолейСтоимости.Дата =
?(ОбщегоНазначенияКлиентСервер.ЕстьРеквизитИлиСвойствоОбъекта(Объект, "Дата"),
Объект.Дата,
Дата("00010101"));
ПараметрыРаспределенияЗатрат.ПараметрыЗаполненияДолейСтоимости.Валюта =
?(ОбщегоНазначенияКлиентСервер.ЕстьРеквизитИлиСвойствоОбъекта(Объект, "Валюта"),
Объект.Валюта,
Справочники.Валюты.ПустаяСсылка());
Если Не Объект.ГруппировкаЗатрат = Перечисления.ГруппировкиЗатратВПроизводствеБезЗаказа.ПоДокументу
И Не Объект.ГруппировкаЗатрат = Перечисления.ГруппировкиЗатратВПроизводствеБезЗаказа.ЗатратыНеУказываются Тогда
ПараметрыРаспределенияЗатрат.ПолеГруппировкиЗатрат = "НомерГруппыЗатрат";
ПараметрыРаспределенияЗатрат.ПолеПредставленияГруппировкиЗатрат = "ГруппаЗатрат";
КонецЕсли;
КонецЕсли;
Возврат ПараметрыРаспределенияЗатрат;
КонецФункции
Функция ПараметрыЗаполненияДокумента() Экспорт
ПараметрыЗаполнения = Новый Структура();
ПараметрыЗаполнения.Вставить("МассивЗаказов", Неопределено);
ПараметрыЗаполнения.Вставить("ФормаОткрыта", Ложь);
ПараметрыЗаполнения.Вставить("ФормаОбъекта", Неопределено);
ПараметрыЗаполнения.Вставить("ЗаполнятьПоОрдеру", Неопределено);
ПараметрыЗаполнения.Вставить("РеквизитыШапки", Неопределено);
ПараметрыЗаполнения.Вставить("Организация", Справочники.Организации.ПустаяСсылка());
ПараметрыЗаполнения.Вставить("Подразделение", Справочники.СтруктураПредприятия.ПустаяСсылка());
ПараметрыЗаполнения.Вставить("Склад", Справочники.Склады.ПустаяСсылка());
ПараметрыЗаполнения.Вставить("ОтборПоСкладу", Ложь);
ПараметрыЗаполнения.Вставить("ИмяДокумента", "ПроизводствоБезЗаказа");
ПараметрыЗаполнения.Вставить("ИмяПоляЗаказ", "ПроизводствоБезЗаказа");
ПараметрыЗаполнения.Вставить("КлючевыеПоля", "Номенклатура, Характеристика, Серия, Назначение");
Возврат ПараметрыЗаполнения;
КонецФункции
Процедура ИнициализироватьПараметрыЗаполнения(ПараметрыЗаполнения, РеквизитыШапки, МассивЗаказов) Экспорт
ПараметрыЗаполнения.РеквизитыШапки = РеквизитыШапки;
ПараметрыЗаполнения.МассивЗаказов = МассивЗаказов;
ПараметрыЗаполнения.Организация = РеквизитыШапки.Организация;
ПараметрыЗаполнения.Подразделение = РеквизитыШапки.Подразделение;
Если ПараметрыЗаполнения.ЗаполнятьПоОрдеру = Неопределено Тогда
ПараметрыЗаполнения.ЗаполнятьПоОрдеру = НакладныеСервер.ЗаполнятьПоОрдеру(ПараметрыЗаполнения.Склад);
КонецЕсли;
КонецПроцедуры
Процедура ЗаполнитьПоЗаказамОрдерам(Товары, Регистратор, ПараметрыЗаполнения, ШтрихкодыУпаковок = Неопределено) Экспорт
Запрос = Новый Запрос(РегистрыНакопления.ТоварыКОтгрузке.ТекстЗапросаОсталосьОформить());
Запрос.УстановитьПараметр("Распоряжения", ПараметрыЗаполнения.МассивЗаказов);
Запрос.УстановитьПараметр("Регистратор", Регистратор);
ТаблицаОрдера = Запрос.Выполнить().Выгрузить();
КолонкаТЗ = ТаблицаОрдера.Колонки.Количество;
КолонкаТЗ.Имя = "КоличествоВОрдере";
НакладныеСервер.РаспределитьКоличествоИЗаполнить(ТаблицаОрдера, Товары, "КоличествоВОрдере",
"Номенклатура, Характеристика, Назначение", "ПО [Количество]", Истина, "Серия");
НакладныеСервер.ДополнитьТаблицу(ТаблицаОрдера, Товары, "КоличествоВОрдере");
НакладныеСервер.УдалитьПустыеСтроки(Товары, "Количество");
ПроизводствоБезЗаказаЛокализация.ЗаполнитьШтрихкодыУпаковок(ПараметрыЗаполнения.МассивЗаказов, Товары, ШтрихкодыУпаковок);
КонецПроцедуры
#КонецОбласти
#Область ГруппировкаЗатрат
Функция ПереченьПолейГруппыЗатрат(ГруппировкаЗатрат) Экспорт
СписокПолей = Новый СписокЗначений;
КодЯзыка = ОбщегоНазначения.КодОсновногоЯзыка();
Если ГруппировкаЗатрат = Перечисления.ГруппировкиЗатратВПроизводствеБезЗаказа.ПоПродукции Тогда
СписокПолей.Добавить("Номенклатура", НСтр("ru = 'Номенклатура'", КодЯзыка));
СписокПолей.Добавить("Характеристика", НСтр("ru = 'Характеристика'", КодЯзыка));
СписокПолей.Добавить("Серия", НСтр("ru = 'Серия'", КодЯзыка));
ИначеЕсли ГруппировкаЗатрат = Перечисления.ГруппировкиЗатратВПроизводствеБезЗаказа.ПоПродукцииИНазначениям Тогда
СписокПолей.Добавить("Номенклатура", НСтр("ru = 'Номенклатура'", КодЯзыка));
СписокПолей.Добавить("Характеристика", НСтр("ru = 'Характеристика'", КодЯзыка));
СписокПолей.Добавить("Назначение", НСтр("ru = 'Назначение'", КодЯзыка));
СписокПолей.Добавить("Серия", НСтр("ru = 'Серия'", КодЯзыка));
ИначеЕсли ГруппировкаЗатрат = Перечисления.ГруппировкиЗатратВПроизводствеБезЗаказа.ПоПродукцииБезСерий Тогда
СписокПолей.Добавить("Номенклатура", НСтр("ru = 'Номенклатура'", КодЯзыка));
СписокПолей.Добавить("Характеристика", НСтр("ru = 'Характеристика'", КодЯзыка));
ИначеЕсли ГруппировкаЗатрат = Перечисления.ГруппировкиЗатратВПроизводствеБезЗаказа.ПоПродукцииИНазначениямБезСерий Тогда
СписокПолей.Добавить("Номенклатура", НСтр("ru = 'Номенклатура'", КодЯзыка));
СписокПолей.Добавить("Характеристика", НСтр("ru = 'Характеристика'", КодЯзыка));
СписокПолей.Добавить("Назначение", НСтр("ru = 'Назначение'", КодЯзыка));
ИначеЕсли ГруппировкаЗатрат = Перечисления.ГруппировкиЗатратВПроизводствеБезЗаказа.ПоСпецификациям Тогда
СписокПолей.Добавить("Спецификация", НСтр("ru = 'Спецификация'", КодЯзыка));
ИначеЕсли ГруппировкаЗатрат = Перечисления.ГруппировкиЗатратВПроизводствеБезЗаказа.ПоСпецификациямИНазначениям Тогда
СписокПолей.Добавить("Спецификация", НСтр("ru = 'Спецификация'", КодЯзыка));
СписокПолей.Добавить("Назначение", НСтр("ru = 'Назначение'", КодЯзыка));
КонецЕсли;
Возврат СписокПолей;
КонецФункции
Функция ТекстЗапросаПоПолямГруппыЗатрат(ИмяТаблицы, СписокПолей) Экспорт
ТекстЗапросаПоПолям = "";
Для Каждого ТекПоле Из СписокПолей Цикл
ТекстЗапросаПоПолям = ТекстЗапросаПоПолям + ", " + ИмяТаблицы + "." + ТекПоле.Значение;
КонецЦикла;
Возврат ТекстЗапросаПоПолям;
КонецФункции
Функция СтруктураПоискаГруппыЗатрат(СписокПолей) Экспорт
СтруктураПоиска = Новый Структура;
Для Каждого ТекПоле Из СписокПолей Цикл
СтруктураПоиска.Вставить(ТекПоле.Значение);
КонецЦикла;
Возврат СтруктураПоиска;
КонецФункции
#КонецОбласти
#Область ВыборСтатейИАналитик
Функция ПараметрыВыбораСтатейИАналитик() Экспорт
ПараметрыВыбораСтатей = Новый Массив;
ПараметрыВыбора = ДоходыИРасходыСервер.ПараметрыВыбораСтатьиИАналитики();
ПараметрыВыбора.ПутьКДанным = "Объект.ВыходныеИзделия";
ПараметрыВыбора.Статья = "Получатель";
ПараметрыВыбора.ТипСтатьи = "ТипСтатьи";
ПараметрыВыбора.ВыборСтатьиРасходов = Истина;
ПараметрыВыбора.АналитикаРасходов = "АналитикаРасходов";
ПараметрыВыбора.ВыборСтатьиАктивовПассивов = Истина;
ПараметрыВыбора.АналитикаАктивовПассивов = "АналитикаАктивовПассивов";
ЭлементыФормы = ПараметрыВыбора.ЭлементыФормы;
ЭлементыФормы.Статья.Добавить("ВыходныеИзделияПолучатель");
ЭлементыФормы.АналитикаРасходов.Добавить("ВыходныеИзделияАналитикаРасходов");
ЭлементыФормы.АналитикаАктивовПассивов.Добавить("ВыходныеИзделияАналитикаАктивовПассивов");
ПараметрыВыбораСтатей.Добавить(ПараметрыВыбора);
ПараметрыВыбора = ДоходыИРасходыСервер.ПараметрыВыбораСтатьиИАналитики();
ПараметрыВыбора.ПутьКДанным = "Объект.ПобочныеИзделия";
ПараметрыВыбора.Статья = "Получатель";
ПараметрыВыбора.ТипСтатьи = "ТипСтатьи";
ПараметрыВыбора.ВыборСтатьиРасходов = Истина;
ПараметрыВыбора.АналитикаРасходов = "АналитикаРасходов";
ПараметрыВыбора.ВыборСтатьиАктивовПассивов = Истина;
ПараметрыВыбора.АналитикаАктивовПассивов = "АналитикаАктивовПассивов";
ЭлементыФормы = ПараметрыВыбора.ЭлементыФормы;
ЭлементыФормы.Статья.Добавить("ПобочныеИзделияПолучатель");
ЭлементыФормы.АналитикаРасходов.Добавить("ПобочныеИзделияАналитикаРасходов");
ЭлементыФормы.АналитикаАктивовПассивов.Добавить("ПобочныеИзделияАналитикаАктивовПассивов");
ПараметрыВыбораСтатей.Добавить(ПараметрыВыбора);
Возврат ПараметрыВыбораСтатей;
КонецФункции
#КонецОбласти
#Область НастройкаСчетовУчета
Функция ПараметрыНастройкиСчетовУчета() Экспорт
ПараметрыНастроек = Новый Массив;
ПараметрыНастройки = НастройкаСчетовУчетаСервер.ПараметрыНастройки();
ПараметрыНастройки.ДоступностьПоОперации = Истина;
ПараметрыНастройки.ТипСтатьи = "ТипСтатьи";
ПараметрыНастройки.ПутьКДанным = "Объект.ВыходныеИзделия";
ПараметрыНастройки.СтатьяАктивовПассивов = "Получатель";
ПараметрыНастройки.ЭлементыФормы.Добавить("ВыходныеИзделияПредставлениеОтраженияОперации");
ПараметрыНастройки.СкрыватьНедоступныйСчетУчетаВСтроках = Истина;
ПараметрыНастройки.УсловияДоступностиСчетаУчетаВСтроках.Вставить(
"НаправлениеВыпуска",
Перечисления.ХозяйственныеОперации.СписаниеТоваровПоТребованию);
ПараметрыНастроек.Добавить(ПараметрыНастройки);
ПараметрыНастройки = НастройкаСчетовУчетаСервер.ПараметрыНастройки();
ПараметрыНастройки.ДоступностьПоОперации = Истина;
ПараметрыНастройки.ТипСтатьи = "ТипСтатьи";
ПараметрыНастройки.ПутьКДанным = "Объект.ПобочныеИзделия";
ПараметрыНастройки.СтатьяАктивовПассивов = "Получатель";
ПараметрыНастройки.ЭлементыФормы.Добавить("ПобочныеИзделияПредставлениеОтраженияОперации");
ПараметрыНастройки.СкрыватьНедоступныйСчетУчетаВСтроках = Истина;
ПараметрыНастройки.УсловияДоступностиСчетаУчетаВСтроках.Вставить(
"НаправлениеВыпуска",
Перечисления.ХозяйственныеОперации.СписаниеТоваровПоТребованию);
ПараметрыНастроек.Добавить(ПараметрыНастройки);
Возврат ПараметрыНастроек;
КонецФункции
#КонецОбласти
#Область УчетНДС
Функция ПараметрыЗаполненияВидаДеятельностиНДС(Объект) Экспорт
ПараметрыЗаполнения = УчетНДСУПКлиентСервер.ПараметрыЗаполненияВидаДеятельностиНДС();
ПараметрыЗаполнения.Организация = Объект.Организация;
ПараметрыЗаполнения.Дата = Объект.Дата;
ПараметрыЗаполнения.НаправлениеДеятельности = Объект.НаправлениеДеятельности;
ПараметрыЗаполнения.ВыпускПродукцииИРабот = Истина;
Возврат ПараметрыЗаполнения;
КонецФункции
#КонецОбласти
#Область ДляВызоваИзДругихПодсистем
Процедура ПриЗаполненииОграниченияДоступа(Ограничение) Экспорт
Ограничение.Текст =
"РазрешитьЧтениеИзменение
|ГДЕ
| ЗначениеРазрешено(Организация)
| И ЗначениеРазрешено(Подразделение)";
КонецПроцедуры
#КонецОбласти
#Область Округление
Функция ПараметрыТЧДляОкругления() Экспорт
ПараметрыТЧ = Новый Структура;
ИмяТЧ = "ВыходныеИзделия";
ИмяПоляСклад = "Получатель";
ПараметрыТЧ.Вставить(ИмяТЧ, НоменклатураСервер.ПараметрыПроверкиЗаполненияКоличества());
ПараметрыТЧ[ИмяТЧ].ИмяТЧ = ИмяТЧ;
ПараметрыТЧ[ИмяТЧ].ДополнительныеПоля.Вставить(ИмяПоляСклад, ИмяТЧ + "." + ИмяПоляСклад);
ПараметрыТЧ[ИмяТЧ].УсловиеОтбораСтрокПоДополнительнымПолям =
ПроизводствоСервер.УсловиеОтбораСтрокДляОкругления(ИмяТЧ, ИмяПоляСклад);
ИмяТЧ = "ПобочныеИзделия";
ИмяПоляСклад = "Получатель";
ПараметрыТЧ.Вставить(ИмяТЧ, НоменклатураСервер.ПараметрыПроверкиЗаполненияКоличества());
ПараметрыТЧ[ИмяТЧ].ИмяТЧ = ИмяТЧ;
ПараметрыТЧ[ИмяТЧ].ДополнительныеПоля.Вставить(ИмяПоляСклад, ИмяТЧ + "." + ИмяПоляСклад);
ПараметрыТЧ[ИмяТЧ].УсловиеОтбораСтрокПоДополнительнымПолям =
ПроизводствоСервер.УсловиеОтбораСтрокДляОкругления(ИмяТЧ, ИмяПоляСклад);
ИмяТЧ = "МатериалыИРаботы";
ИмяПоляСклад = "Склад";
ПараметрыТЧ.Вставить(ИмяТЧ, НоменклатураСервер.ПараметрыПроверкиЗаполненияКоличества());
ПараметрыТЧ[ИмяТЧ].ИмяТЧ = ИмяТЧ;
ПараметрыТЧ[ИмяТЧ].ДополнительныеПоля.Вставить(ИмяПоляСклад, ИмяТЧ + "." + ИмяПоляСклад);
ПараметрыТЧ[ИмяТЧ].УсловиеОтбораСтрокПоДополнительнымПолям =
ПроизводствоСервер.УсловиеОтбораСтрокДляОкругления(ИмяТЧ, ИмяПоляСклад);
Возврат ПараметрыТЧ;
КонецФункции
#КонецОбласти
#Область ПечатьЗаданияНаОтборРазмещениеТоваров
Функция ПравилаПечатиЗаданияНаОтборРазмещение() Экспорт
ПравилаПечати = Новый Массив;
ПравилаПечатиЗадания = Обработки.ПечатьЗаданияНаОтборРазмещениеТоваров.ПравилаПечатиЗаданияНаОтборРазмещение();
ПравилаПечатиЗадания.СкладыВТЧ = Истина;
ПравилаПечатиЗадания.ИмяТЧТовары = "МатериалыИРаботы";
ПравилаПечатиЗадания.ИспользуютсяИсправленияДокумента = Истина;
ПравилаПечати.Добавить(ПравилаПечатиЗадания);
ПравилаПечатиЗадания = Обработки.ПечатьЗаданияНаОтборРазмещениеТоваров.ПравилаПечатиЗаданияНаОтборРазмещение();
ПравилаПечатиЗадания.ОперацияПоступления = Истина;
ПравилаПечатиЗадания.СкладыВТЧ = Истина;
ПравилаПечатиЗадания.ИмяТЧТовары = "ВыходныеИзделия";
ПравилаПечатиЗадания.ИмяПоляСклад = "Получатель";
ПравилаПечатиЗадания.ИспользуютсяИсправленияДокумента = Истина;
ПравилаПечати.Добавить(ПравилаПечатиЗадания);
ПравилаПечатиЗадания = Обработки.ПечатьЗаданияНаОтборРазмещениеТоваров.ПравилаПечатиЗаданияНаОтборРазмещение();
ПравилаПечатиЗадания.ОперацияПоступления = Истина;
ПравилаПечатиЗадания.СкладыВТЧ = Истина;
ПравилаПечатиЗадания.ИмяТЧТовары = "ПобочныеИзделия";
ПравилаПечатиЗадания.ИмяПоляСклад = "Получатель";
ПравилаПечатиЗадания.ИспользуютсяИсправленияДокумента = Истина;
ПравилаПечати.Добавить(ПравилаПечатиЗадания);
Возврат ПравилаПечати;
КонецФункции
#КонецОбласти
#Область Прочее
Функция ПредставлениеОбъектаНаОсновномЯзыке() Экспорт
КодОсновногоЯзыка = ОбщегоНазначения.КодОсновногоЯзыка();
ПредставлениеОбъекта = НСтр(
"ru = 'Производство без заказа'",
КодОсновногоЯзыка);
Возврат ПредставлениеОбъекта;
КонецФункции
Функция КоллекцияТабличныхЧастейТоваров() Экспорт
ТаблицыДокумента = Новый Структура;
ТаблицыДокумента.Вставить("ВыходныеИзделия");
ТаблицыДокумента.Вставить("ПобочныеИзделия");
ТаблицыДокумента.Вставить("МатериалыИРаботы");
Возврат ТаблицыДокумента;
КонецФункции
#КонецОбласти
#КонецОбласти
#Область СлужебныеПроцедурыИФункции
#Область Заполнение
Процедура ЗаполнитьГруппыЗатратВКоллекции(Коллекция)
Для Каждого ТекСтрока Из Коллекция Цикл
Если ЗначениеЗаполнено(ТекСтрока.Назначение) Тогда
Если ТекСтрока.ГруппировкаЗатрат = Перечисления.ГруппировкиЗатратВПроизводствеБезЗаказа.ПоСпецификациям Тогда
ТекСтрока.ГруппировкаЗатрат = Перечисления.ГруппировкиЗатратВПроизводствеБезЗаказа.ПоСпецификациямИНазначениям;
ИначеЕсли ТекСтрока.ГруппировкаЗатрат = Перечисления.ГруппировкиЗатратВПроизводствеБезЗаказа.ПоПродукции Тогда
ТекСтрока.ГруппировкаЗатрат = Перечисления.ГруппировкиЗатратВПроизводствеБезЗаказа.ПоПродукцииИНазначениям;
ИначеЕсли ТекСтрока.ГруппировкаЗатрат = Перечисления.ГруппировкиЗатратВПроизводствеБезЗаказа.ПоПродукцииБезСерий Тогда
ТекСтрока.ГруппировкаЗатрат = Перечисления.ГруппировкиЗатратВПроизводствеБезЗаказа.ПоПродукцииИНазначениямБезСерий;
КонецЕсли;
КонецЕсли;
КонецЦикла;
Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ
| ТаблицаПродукции.Организация,
| ТаблицаПродукции.ГруппировкаЗатрат,
| ТаблицаПродукции.Подразделение,
| ТаблицаПродукции.Номенклатура,
| ТаблицаПродукции.Характеристика,
| ТаблицаПродукции.Назначение,
| ТаблицаПродукции.Спецификация
|ПОМЕСТИТЬ ТаблицаПродукции
|ИЗ
| &ТаблицаПродукции КАК ТаблицаПродукции
|ГДЕ
| НЕ ТаблицаПродукции.Количество = 0
| И НЕ ТаблицаПродукции.ОшибкаВНастройкахМодели
|;
|
|
|ВЫБРАТЬ
| ТаблицаПродукции.Организация КАК Организация,
| ТаблицаПродукции.ГруппировкаЗатрат КАК ГруппировкаЗатрат,
| ТаблицаПродукции.Подразделение КАК Подразделение,
| ТаблицаПродукции.Номенклатура,
| ТаблицаПродукции.Характеристика,
| ТаблицаПродукции.Назначение,
| ТаблицаПродукции.Спецификация
|ИЗ
| ТаблицаПродукции КАК ТаблицаПродукции
|
|ИТОГИ ПО
| Организация,
| Подразделение,
| ГруппировкаЗатрат";
Запрос.УстановитьПараметр("ТаблицаПродукции", Коллекция);
РезультатДерево = Запрос.Выполнить().Выгрузить(ОбходРезультатаЗапроса.ПоГруппировкам);
ИндексГруппы = 1;
Для Каждого ТекОрганизация Из РезультатДерево.Строки Цикл
Для Каждого ТекПодразделение Из ТекОрганизация.Строки Цикл
Для Каждого ТекГруппировкаЗатрат Из ТекПодразделение.Строки Цикл
СписокПолей = ПереченьПолейГруппыЗатрат(ТекГруппировкаЗатрат.ГруппировкаЗатрат);
ОбязательныеПоляГруппировки = "Организация, Подразделение, ГруппировкаЗатрат";
ПоляГруппировки = "";
Для Каждого ТекПоле Из СписокПолей Цикл
ПоляГруппировки = ПоляГруппировки + ", " + ТекПоле.Значение;
КонецЦикла;
ПоляГруппировки = ОбязательныеПоляГруппировки + ПоляГруппировки;
СтруктураПоиска = Новый Структура(ОбязательныеПоляГруппировки);
ЗаполнитьЗначенияСвойств(СтруктураПоиска, ТекГруппировкаЗатрат);
ГруппыЗатрат = Коллекция.Скопировать(СтруктураПоиска);
ГруппыЗатрат.Свернуть(ПоляГруппировки);
СтруктураПоиска = Новый Структура(ПоляГруппировки);
Для Каждого ТекГруппа Из ГруппыЗатрат Цикл
ЗаполнитьЗначенияСвойств(СтруктураПоиска, ТекГруппа);
Строки = Коллекция.НайтиСтроки(СтруктураПоиска);
Для Каждого ТекСтрока Из Строки Цикл
ТекСтрока.НомерГруппыЗатрат = ИндексГруппы;
КонецЦикла;
ИндексГруппы = ИндексГруппы + 1;
КонецЦикла;
КонецЦикла;
КонецЦикла;
КонецЦикла;
КонецПроцедуры
Процедура ДанныеСпецификацииПоСпискуПродукции(ТаблицаПродукции, Параметры, МенеджерВременныхТаблиц) Экспорт
ПереченьДанных = Параметры.ПереченьДанных;
ДанныеШапки = Параметры.ДанныеШапки;
СписокНоменклатуры = Справочники.РесурсныеСпецификации.СписокНоменклатуры();
СписокНоменклатуры.Колонки.Добавить("НомерГруппыЗатрат");
СписокНоменклатуры.Колонки.Добавить("Подразделение");
Для Каждого ТекСтрока Из ТаблицаПродукции Цикл
Если Не ТекСтрока.ОтражатьЗатратыДокументом Тогда
Продолжить;
КонецЕсли;
НоваяСтрока = СписокНоменклатуры.Добавить();
ЗаполнитьЗначенияСвойств(НоваяСтрока, ТекСтрока);
НоваяСтрока.НачалоПроизводства = ДанныеШапки.Дата;
КонецЦикла;
ДанныеПродукции = Справочники.РесурсныеСпецификации.ДанныеСпецификацииПоСпискуНоменклатуры(
СписокНоменклатуры,
Справочники.РесурсныеСпецификации.ПараметрыВыборкиДанных(),
Истина,
"НомерГруппыЗатрат,Подразделение");
Если Не ПереченьДанных.Найти("ВозвратныеОтходы") = Неопределено Тогда
ИсключитьВозвратныеОтходыИзВыходныхИзделий(ТаблицаПродукции, ДанныеПродукции);
КонецЕсли;
Запрос = Новый Запрос;
Запрос.МенеджерВременныхТаблиц = МенеджерВременныхТаблиц;
ИнициализироватьТаблицыДанныхСпецификаций(ТаблицаПродукции, МенеджерВременныхТаблиц);
Если Не ПереченьДанных.Найти("ВозвратныеОтходы") = Неопределено Тогда
Запрос.Текст = Запрос.Текст + ТекстЗапросаВозвратныеОтходы();
КонецЕсли;
Если Не ПереченьДанных.Найти("МатериалыИУслуги") = Неопределено Тогда
Запрос.Текст = Запрос.Текст + ТекстЗапросаМатериалы();
КонецЕсли;
Если Не ПереченьДанных.Найти("Трудозатраты") = Неопределено Тогда
Запрос.Текст = Запрос.Текст + ТекстЗапросаТрудозатраты();
КонецЕсли;
Индекс = 0;
ПолучитьДанныеЗатрат = Не ПереченьДанных.Найти("ВозвратныеОтходы") = Неопределено
ИЛИ Не ПереченьДанных.Найти("МатериалыИУслуги") = Неопределено
ИЛИ Не ПереченьДанных.Найти("Трудозатраты") = Неопределено;
Для Каждого ТекСтрока Из ДанныеПродукции Цикл
Если ТекСтрока = Неопределено Тогда
Продолжить;
КонецЕсли;
Запрос.УстановитьПараметр("НомерГруппыЗатрат", ТекСтрока.НомерГруппыЗатрат);
Запрос.УстановитьПараметр("Подразделение", ТекСтрока.Подразделение);
Если Не ПереченьДанных.Найти("ВозвратныеОтходы") = Неопределено Тогда
Запрос.УстановитьПараметр("ВозвратныеОтходы", ТекСтрока.ВозвратныеОтходы);
КонецЕсли;
Если Не ПереченьДанных.Найти("МатериалыИУслуги") = Неопределено Тогда
Запрос.УстановитьПараметр("МатериалыИУслуги", ТекСтрока.МатериалыИУслуги);
КонецЕсли;
Если Не ПереченьДанных.Найти("Трудозатраты") = Неопределено Тогда
Запрос.УстановитьПараметр("Трудозатраты", ТекСтрока.Трудозатраты);
КонецЕсли;
Если ПолучитьДанныеЗатрат Тогда
Запрос.Выполнить();
КонецЕсли;
Индекс = Индекс + 1;
КонецЦикла;
ЗаполнитьНазначениеМатериаловПоОбособленнымОстаткам(МенеджерВременныхТаблиц, Параметры);
КонецПроцедуры
Процедура ЗаполнитьНазначениеМатериаловПоОбособленнымОстаткам(МенеджерВременныхТаблиц, Параметры)
Если Параметры.ПереченьДанных.Найти("МатериалыИУслуги") = Неопределено Тогда
Возврат;
КонецЕсли;
Запрос = Новый Запрос;
Запрос.МенеджерВременныхТаблиц = МенеджерВременныхТаблиц;
Запрос.Текст =
"ВЫБРАТЬ
| ТаблицаПродукции.НомерГруппыЗатрат КАК НомерГруппыЗатрат,
| ТаблицаПродукции.Организация КАК Организация,
| ТаблицаПродукции.Назначение КАК Назначение,
| НазначенияДавальца.Ссылка КАК НазначениеДавальца
|ПОМЕСТИТЬ НазначенияПродукции
|ИЗ
| ТаблицаПродукции КАК ТаблицаПродукции
| ЛЕВОЕ СОЕДИНЕНИЕ Справочник.Назначения КАК СпрНазначения
| ПО СпрНазначения.Ссылка = ТаблицаПродукции.Назначение
| ЛЕВОЕ СОЕДИНЕНИЕ Справочник.Назначения КАК НазначенияДавальца
| ПО НазначенияДавальца.НаправлениеДеятельности = СпрНазначения.НаправлениеДеятельности
| И НазначенияДавальца.Партнер = СпрНазначения.Партнер
| И НазначенияДавальца.Договор = СпрНазначения.Договор
| И НазначенияДавальца.ТипНазначения В(
| ЗНАЧЕНИЕ(Перечисление.ТипыНазначений.ДавальческоеМатериалы22),
| ЗНАЧЕНИЕ(Перечисление.ТипыНазначений.Давальческое2_5))
|ГДЕ
| ТаблицаПродукции.ГруппировкаЗатрат В
| (ЗНАЧЕНИЕ(Перечисление.ГруппировкиЗатратВПроизводствеБезЗаказа.ПоПродукцииИНазначениям),
| ЗНАЧЕНИЕ(Перечисление.ГруппировкиЗатратВПроизводствеБезЗаказа.ПоПродукцииИНазначениямБезСерий),
| ЗНАЧЕНИЕ(Перечисление.ГруппировкиЗатратВПроизводствеБезЗаказа.ПоСпецификациямИНазначениям))
| И НЕ ТаблицаПродукции.Назначение = ЗНАЧЕНИЕ(Справочник.Назначения.ПустаяСсылка)
|
|СГРУППИРОВАТЬ ПО
| ТаблицаПродукции.Организация,
| ТаблицаПродукции.Назначение,
| ТаблицаПродукции.НомерГруппыЗатрат,
| НазначенияДавальца.Ссылка
|;
|
|
|ВЫБРАТЬ
| МатериалыИУслуги.НомерГруппыЗатрат КАК НомерГруппыЗатрат,
| КлючиАналитики.КлючАналитики КАК АналитикаУчетаНоменклатуры,
| НазначенияПродукции.Организация КАК Организация,
| НазначенияПродукции.Назначение КАК Назначение
|ПОМЕСТИТЬ АналитикаОстатков
|ИЗ
| МатериалыИУслуги КАК МатериалыИУслуги
| ВНУТРЕННЕЕ СОЕДИНЕНИЕ НазначенияПродукции КАК НазначенияПродукции
| ПО МатериалыИУслуги.НомерГруппыЗатрат = НазначенияПродукции.НомерГруппыЗатрат
| ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрСведений.АналитикаУчетаНоменклатуры КАК КлючиАналитики
| ПО (КлючиАналитики.Номенклатура = МатериалыИУслуги.Номенклатура)
| И (КлючиАналитики.Характеристика = МатериалыИУслуги.Характеристика)
| И (КлючиАналитики.МестоХранения = МатериалыИУслуги.Склад)
| И (КлючиАналитики.Назначение = НазначенияПродукции.Назначение)
| И (КлючиАналитики.СтатьяКалькуляции = ЗНАЧЕНИЕ(Справочник.СтатьиКалькуляции.ПустаяСсылка))
|
|СГРУППИРОВАТЬ ПО
| НазначенияПродукции.Назначение,
| НазначенияПродукции.Организация,
| КлючиАналитики.КлючАналитики,
| МатериалыИУслуги.НомерГруппыЗатрат
|
|ОБЪЕДИНИТЬ ВСЕ
|
|ВЫБРАТЬ
| МатериалыИУслуги.НомерГруппыЗатрат КАК НомерГруппыЗатрат,
| КлючиАналитики.КлючАналитики КАК АналитикаУчетаНоменклатуры,
| НазначенияПродукции.Организация КАК Организация,
| НазначенияПродукции.НазначениеДавальца КАК Назначение
|ИЗ
| МатериалыИУслуги КАК МатериалыИУслуги
| ВНУТРЕННЕЕ СОЕДИНЕНИЕ НазначенияПродукции КАК НазначенияПродукции
| ПО МатериалыИУслуги.НомерГруппыЗатрат = НазначенияПродукции.НомерГруппыЗатрат
| ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрСведений.АналитикаУчетаНоменклатуры КАК КлючиАналитики
| ПО (КлючиАналитики.Номенклатура = МатериалыИУслуги.Номенклатура)
| И (КлючиАналитики.Характеристика = МатериалыИУслуги.Характеристика)
| И (КлючиАналитики.МестоХранения = МатериалыИУслуги.Склад)
| И (КлючиАналитики.Назначение = НазначенияПродукции.НазначениеДавальца)
| И (КлючиАналитики.СтатьяКалькуляции = ЗНАЧЕНИЕ(Справочник.СтатьиКалькуляции.ПустаяСсылка))
|ГДЕ
| НЕ НазначенияПродукции.НазначениеДавальца = НазначенияПродукции.Назначение
|СГРУППИРОВАТЬ ПО
| НазначенияПродукции.НазначениеДавальца,
| НазначенияПродукции.Организация,
| КлючиАналитики.КлючАналитики,
| МатериалыИУслуги.НомерГруппыЗатрат
|
|ИНДЕКСИРОВАТЬ ПО
| АналитикаУчетаНоменклатуры,
| НазначенияПродукции.Организация
|;
|
|
|ВЫБРАТЬ
| АналитикаОстатков.НомерГруппыЗатрат КАК НомерГруппыЗатрат,
| ТоварыОрганизацийОстатки.АналитикаУчетаНоменклатуры.Номенклатура КАК Номенклатура,
| ТоварыОрганизацийОстатки.АналитикаУчетаНоменклатуры.Характеристика КАК Характеристика,
| ТоварыОрганизацийОстатки.АналитикаУчетаНоменклатуры.МестоХранения КАК Склад,
| АналитикаОстатков.Назначение КАК Назначение,
| СУММА(ТоварыОрганизацийОстатки.КоличествоОстаток) КАК Количество
|ИЗ
| РегистрНакопления.ТоварыОрганизаций.Остатки(
| &Дата,
| (АналитикаУчетаНоменклатуры, Организация) В
| (ВЫБРАТЬ
| АналитикаОстатков.АналитикаУчетаНоменклатуры,
| АналитикаОстатков.Организация
| ИЗ
| АналитикаОстатков КАК АналитикаОстатков)) КАК ТоварыОрганизацийОстатки
| ЛЕВОЕ СОЕДИНЕНИЕ АналитикаОстатков КАК АналитикаОстатков
| ПО (АналитикаОстатков.АналитикаУчетаНоменклатуры = ТоварыОрганизацийОстатки.АналитикаУчетаНоменклатуры)
| И (АналитикаОстатков.Организация = ТоварыОрганизацийОстатки.Организация)
|
|СГРУППИРОВАТЬ ПО
| ТоварыОрганизацийОстатки.АналитикаУчетаНоменклатуры.Номенклатура,
| ТоварыОрганизацийОстатки.АналитикаУчетаНоменклатуры.Характеристика,
| ТоварыОрганизацийОстатки.АналитикаУчетаНоменклатуры.МестоХранения,
| АналитикаОстатков.Назначение,
| АналитикаОстатков.НомерГруппыЗатрат
|;
|
|
|ВЫБРАТЬ
| МатериалыИУслуги.НомерГруппыЗатрат,
| МатериалыИУслуги.Склад,
| МатериалыИУслуги.Подразделение,
| МатериалыИУслуги.Номенклатура,
| МатериалыИУслуги.Характеристика,
| МатериалыИУслуги.Назначение,
| МатериалыИУслуги.СтатьяКалькуляции,
| МатериалыИУслуги.Упаковка,
| СУММА(МатериалыИУслуги.КоличествоУпаковок) КАК КоличествоУпаковок,
| СУММА(МатериалыИУслуги.Количество) КАК Количество
|ИЗ
| МатериалыИУслуги КАК МатериалыИУслуги
|
|СГРУППИРОВАТЬ ПО
| МатериалыИУслуги.Назначение,
| МатериалыИУслуги.СтатьяКалькуляции,
| МатериалыИУслуги.Упаковка,
| МатериалыИУслуги.Склад,
| МатериалыИУслуги.Подразделение,
| МатериалыИУслуги.Номенклатура,
| МатериалыИУслуги.Характеристика,
| МатериалыИУслуги.НомерГруппыЗатрат
|;
|
|
|УНИЧТОЖИТЬ МатериалыИУслуги";
Запрос.УстановитьПараметр("Дата", Параметры.ДанныеШапки.Дата);
Результат = Запрос.ВыполнитьПакет();
Индекс = Результат.ВГраница();
ОстаткиМатериалов = Результат[Индекс - 2].Выбрать();
МатериалыИУслуги = Результат[Индекс - 1].Выгрузить();
ПоляОтбора = "НомерГруппыЗатрат, Номенклатура, Характеристика, Склад";
МатериалыИУслуги.Индексы.Добавить(ПоляОтбора);
ОтборТоваров = Новый Структура(ПоляОтбора);
Пока ОстаткиМатериалов.Следующий() Цикл
КоличествоТоваров = ОстаткиМатериалов.Количество;
ЗаполнитьЗначенияСвойств(ОтборТоваров, ОстаткиМатериалов);
Для Каждого СтрокаМатериалов Из МатериалыИУслуги.НайтиСтроки(ОтборТоваров) Цикл
Если СтрокаМатериалов.Количество = 0 Тогда
Продолжить;
КонецЕсли;
Количество = Мин(КоличествоТоваров, СтрокаМатериалов.Количество);
НоваяСтрока = МатериалыИУслуги.Добавить();
ЗаполнитьЗначенияСвойств(НоваяСтрока, СтрокаМатериалов);
НоваяСтрока.Назначение = ОстаткиМатериалов.Назначение;
НоваяСтрока.Количество = Количество;
НоваяСтрока.КоличествоУпаковок = Количество
/ Справочники.УпаковкиЕдиницыИзмерения.КоэффициентУпаковки(НоваяСтрока.Упаковка, НоваяСтрока.Номенклатура);
СтрокаМатериалов.Количество = СтрокаМатериалов.Количество - НоваяСтрока.Количество;
СтрокаМатериалов.КоличествоУпаковок = СтрокаМатериалов.КоличествоУпаковок - НоваяСтрока.КоличествоУпаковок;
КоличествоТоваров = КоличествоТоваров - НоваяСтрока.Количество;
Если КоличествоТоваров = 0 Тогда
Прервать;
КонецЕсли;
КонецЦикла;
КонецЦикла;
МассивУдаляемыхСтрок = МатериалыИУслуги.НайтиСтроки(Новый Структура("Количество", 0));
Для Каждого СтрокаТаблицы Из МассивУдаляемыхСтрок Цикл
МатериалыИУслуги.Удалить(СтрокаТаблицы);
КонецЦикла;
Запрос.Текст =
"ВЫБРАТЬ
| МатериалыИУслуги.НомерГруппыЗатрат,
| МатериалыИУслуги.Склад,
| МатериалыИУслуги.Подразделение,
| МатериалыИУслуги.Номенклатура,
| МатериалыИУслуги.Характеристика,
| МатериалыИУслуги.Назначение,
| МатериалыИУслуги.СтатьяКалькуляции,
| МатериалыИУслуги.Упаковка,
| МатериалыИУслуги.КоличествоУпаковок КАК КоличествоУпаковок,
| МатериалыИУслуги.Количество КАК Количество
|ПОМЕСТИТЬ МатериалыИУслуги
|ИЗ
| &МатериалыИУслуги КАК МатериалыИУслуги";
Запрос.УстановитьПараметр("МатериалыИУслуги", МатериалыИУслуги);
Запрос.Выполнить();
КонецПроцедуры
Процедура СформироватьДокументы(Параметры, МенеджерВременныхТаблиц, СписокОбъектов)
Запрос = Новый Запрос;
Запрос.МенеджерВременныхТаблиц = МенеджерВременныхТаблиц;
Запрос.Текст = ТекстЗапросаПродукцияПоГруппамЗатрат()
+ ТекстЗапросаВозвратныеОтходыПоГруппамЗатрат()
+ ТекстЗапросаМатериалыПоГруппамЗатрат()
+ ТекстЗапросаТрудозатратыПоГруппамЗатрат();
ВидЦен = Справочники.ВидыЦен.ВидЦеныПлановойСтоимостиТМЦ();
Запрос.УстановитьПараметр("Дата", Параметры.ДанныеШапки.Дата);
Запрос.УстановитьПараметр("ВидЦены", ВидЦен);
Запрос.УстановитьПараметр("ЗаполнятьАвтоматически", Параметры.ЗаполнятьАвтоматически);
Результат = Запрос.ВыполнитьПакет();
Индекс = Результат.ВГраница();
Продукция = Результат[Индекс - 4].Выгрузить(ОбходРезультатаЗапроса.ПоГруппировкам);
ВозвратныеОтходы = Результат[Индекс - 3].Выгрузить();
МатериалыИРаботы = Результат[Индекс - 2].Выгрузить();
Трудозатраты = Результат[Индекс].Выгрузить();
СтруктураПоиска = Новый Структура("НомерГруппыЗатрат");
Для Каждого ТекОрганизация Из Продукция.Строки Цикл
Для Каждого ТекВыпускПодДеятельность Из ТекОрганизация.Строки Цикл
Для Каждого ТекГруппировкаЗатрат Из ТекВыпускПодДеятельность.Строки Цикл
Для Каждого ТекПодразделение Из ТекГруппировкаЗатрат.Строки Цикл
Для Каждого ТекСпособРаспределения Из ТекПодразделение.Строки Цикл
ТекДокумент = Документы.ПроизводствоБезЗаказа.СоздатьДокумент();
ТекДокумент.ПолучитьСсылкуНового();
ТекДокумент.ВидЦены = ВидЦен;
СписокОбъектов.Добавить(ТекДокумент);
ДанныеЗаполнения = Новый Структура("Организация, ВыпускПодДеятельность");
ЗаполнитьЗначенияСвойств(ДанныеЗаполнения, ТекСпособРаспределения);
ТекДокумент.Заполнить(ДанныеЗаполнения);
ЗаполнитьЗначенияСвойств(ТекДокумент, Параметры.ДанныеШапки);
ЗаполнитьЗначенияСвойств(ТекДокумент, ТекСпособРаспределения,, "ВыпускПодДеятельность");
СписокГруппЗатрат = Новый Массив;
Для Каждого ТекИзделие Из ТекСпособРаспределения.Строки Цикл
НоваяСтрока = ТекДокумент.ВыходныеИзделия.Добавить();
ЗаполнитьЗначенияСвойств(НоваяСтрока, ТекИзделие);
СписокГруппЗатрат.Добавить(ТекИзделие.НомерГруппыЗатрат);
КонецЦикла;
СписокГруппЗатрат = ОбщегоНазначенияКлиентСервер.СвернутьМассив(СписокГруппЗатрат);
Для Каждого ТекГруппа Из СписокГруппЗатрат Цикл
СтруктураПоиска.НомерГруппыЗатрат = ТекГруппа;
Для Каждого ТекСтрока Из ВозвратныеОтходы.НайтиСтроки(СтруктураПоиска) Цикл
ЗаполнитьЗначенияСвойств(ТекДокумент.ПобочныеИзделия.Добавить(), ТекСтрока);
КонецЦикла;
Для Каждого ТекСтрока Из МатериалыИРаботы.НайтиСтроки(СтруктураПоиска) Цикл
ЗаполнитьЗначенияСвойств(ТекДокумент.МатериалыИРаботы.Добавить(), ТекСтрока);
КонецЦикла;
Для Каждого ТекСтрока Из Трудозатраты.НайтиСтроки(СтруктураПоиска) Цикл
ЗаполнитьЗначенияСвойств(ТекДокумент.Трудозатраты.Добавить(), ТекСтрока);
КонецЦикла;
КонецЦикла;
ПараметрыУказанияСерий =
НоменклатураСервер.ПараметрыУказанияСерий(ТекДокумент, Документы.ПроизводствоБезЗаказа);
НоменклатураСервер.ЗаполнитьСтатусыУказанияСерий(ТекДокумент, ПараметрыУказанияСерий.ВыходныеИзделия);
НоменклатураСервер.ЗаполнитьСтатусыУказанияСерий(ТекДокумент, ПараметрыУказанияСерий.ПобочныеИзделия);
НоменклатураСервер.ЗаполнитьСтатусыУказанияСерий(ТекДокумент, ПараметрыУказанияСерий.МатериалыИРаботы);
ПеренестиСерииУказываемыеОтдельно(ТекДокумент, "ВыходныеИзделия");
ПеренестиСерииУказываемыеОтдельно(ТекДокумент, "ПобочныеИзделия");
ПараметрыРаспределенияЗатратСтруктура =
Документы.ПроизводствоБезЗаказа.ПараметрыРаспределенияЗатрат(ТекДокумент);
ПараметрыРаспределенияЗатрат =
Новый ФиксированнаяСтруктура(ПараметрыРаспределенияЗатратСтруктура);
ПроизводствоСервер.РассчитатьДолюСтоимости(ТекДокумент, ПараметрыРаспределенияЗатрат);
КонецЦикла;
КонецЦикла;
КонецЦикла;
КонецЦикла;
КонецЦикла;
КонецПроцедуры
Процедура ИнициализироватьТаблицыДанныхСпецификаций(ТаблицаПродукции, МенеджерВременныхТаблиц)
Запрос = Новый Запрос;
Запрос.МенеджерВременныхТаблиц = МенеджерВременныхТаблиц;
ТекстВозвратныеОтходы =
"ВЫБРАТЬ ПЕРВЫЕ 0
| ПобочныеИзделия.НомерГруппыЗатрат КАК НомерГруппыЗатрат,
| ПобочныеИзделия.Подразделение КАК Подразделение,
| ПобочныеИзделия.НаправлениеВыпуска КАК НаправлениеВыпуска,
| ПобочныеИзделия.Получатель КАК Получатель,
| ПобочныеИзделия.Номенклатура КАК Номенклатура,
| ПобочныеИзделия.Характеристика КАК Характеристика,
| ПобочныеИзделия.Серия КАК Серия,
| ПобочныеИзделия.Назначение КАК Назначение,
| ПобочныеИзделия.СтатьяКалькуляции КАК СтатьяКалькуляции,
| ПобочныеИзделия.Упаковка КАК Упаковка,
| &ПоляДляЦенообразования,
| ПобочныеИзделия.КоличествоУпаковок КАК КоличествоУпаковок,
| ПобочныеИзделия.Количество КАК Количество
|ПОМЕСТИТЬ ВозвратныеОтходы
|ИЗ
| Документ.ПроизводствоБезЗаказа.ПобочныеИзделия КАК ПобочныеИзделия
| ЛЕВОЕ СОЕДИНЕНИЕ Справочник.ВидыНоменклатуры КАК ВидыНоменклатуры
| ПО ВидыНоменклатуры.Ссылка = ПобочныеИзделия.Номенклатура.ВидНоменклатуры
|;
|";
НастройкаЦенообразования = ЦенообразованиеКлиентСервер.НастройкиДляВременнойТаблицыСДополнениемДляЦенообразования();
НастройкаЦенообразования.ИсточникТоваров = "ПобочныеИзделия";
ТекстЗамены = ЦенообразованиеКлиентСервер.ТекстПолейДляЦенообразования(НастройкаЦенообразования);
Если ЗначениеЗаполнено(ТекстЗамены) Тогда
ТекстВозвратныеОтходы = СтрЗаменить(ТекстВозвратныеОтходы, "&ПоляДляЦенообразования", ТекстЗамены);
Иначе
ТекстВозвратныеОтходы = СтрЗаменить(ТекстВозвратныеОтходы, "&ПоляДляЦенообразования,", "");
КонецЕсли;
ТекстМатериалыИРаботы =
"ВЫБРАТЬ ПЕРВЫЕ 0
| МатериалыИРаботы.НомерГруппыЗатрат КАК НомерГруппыЗатрат,
| МатериалыИРаботы.Склад КАК Склад,
| МатериалыИРаботы.Подразделение КАК Подразделение,
| МатериалыИРаботы.Номенклатура КАК Номенклатура,
| МатериалыИРаботы.Характеристика КАК Характеристика,
| МатериалыИРаботы.Назначение КАК Назначение,
| МатериалыИРаботы.СтатьяКалькуляции КАК СтатьяКалькуляции,
| МатериалыИРаботы.Упаковка КАК Упаковка,
| МатериалыИРаботы.КоличествоУпаковок КАК КоличествоУпаковок,
| МатериалыИРаботы.Количество КАК Количество
|ПОМЕСТИТЬ МатериалыИУслуги
|ИЗ
| Документ.ПроизводствоБезЗаказа.МатериалыИРаботы КАК МатериалыИРаботы
|;
|";
ТекстТрудозатраты =
"ВЫБРАТЬ ПЕРВЫЕ 0
| Трудозатраты.НомерГруппыЗатрат КАК НомерГруппыЗатрат,
| Трудозатраты.Подразделение КАК Подразделение,
| Трудозатраты.ВидРабот КАК ВидРабот,
| Трудозатраты.СтатьяКалькуляции КАК СтатьяКалькуляции,
| Трудозатраты.Количество КАК Количество
|ПОМЕСТИТЬ Трудозатраты
|ИЗ
| Документ.ПроизводствоБезЗаказа.Трудозатраты КАК Трудозатраты
|;
|";
Запрос.Текст = ТекстЗапросаПродукция()
+ ТекстВозвратныеОтходы
+ ТекстМатериалыИРаботы
+ ТекстТрудозатраты;
Запрос.УстановитьПараметр("ТаблицаПродукции", ТаблицаПродукции);
Запрос.Выполнить();
КонецПроцедуры
Функция ТекстЗапросаПродукция()
ТекстыЗапросов = Новый Массив();
ТекстЗапроса = "ВЫБРАТЬ
| ТаблицаПродукции.НомерГруппыЗатрат,
| ТаблицаПродукции.Организация,
| ТаблицаПродукции.ГруппировкаЗатрат,
| ТаблицаПродукции.Подразделение,
| ТаблицаПродукции.НаправлениеВыпуска,
| ТаблицаПродукции.Получатель,
| ТаблицаПродукции.Номенклатура,
| ТаблицаПродукции.Характеристика,
| ТаблицаПродукции.Серия,
| ТаблицаПродукции.Назначение,
| ТаблицаПродукции.Спецификация,
| ТаблицаПродукции.Количество
|ПОМЕСТИТЬ #ТаблицаПродукции
|ИЗ
| &ТаблицаПродукции КАК ТаблицаПродукции
|ГДЕ
| НЕ ТаблицаПродукции.Количество = 0
| И НЕ ТаблицаПродукции.ОшибкаВНастройкахМодели
|;
|";
ТекстыЗапросов.Добавить(ТекстЗапроса);
ИмяТаблицыТоваров = "ТаблицаПродукции";
ИспользуетсяЦенообразование25 = ЦенообразованиеВызовСервера.ИспользуетсяЦенообразование25();
Если ИспользуетсяЦенообразование25 Тогда
ИмяТаблицыТоваров = "ТаблицаПродукцииПредварительная";
Настройки = ЦенообразованиеКлиентСервер.НастройкиДляВременнойТаблицыСДополнениемДляЦенообразования();
Настройки.ИсточникТоваров = ИмяТаблицыТоваров;
Настройки.ПриемникТоваров = "ТаблицаПродукции";
Настройки.СписокПрочихПолей = "НомерГруппыЗатрат, Организация, ГруппировкаЗатрат, Подразделение,
|НаправлениеВыпуска, Получатель, Назначение, Спецификация, Количество";
Настройки.ПолеУпаковка = "";
ТекстЗапроса = ЦенообразованиеКлиентСервер.ТекстЗапросаВременнойТаблицыСДополнениемДляЦенообразования(
Настройки,
ИспользуетсяЦенообразование25);
ТекстыЗапросов.Добавить(ТекстЗапроса);
ТекстыЗапросов.Добавить(";");
КонецЕсли;
ТекстЗапроса = СтрСоединить(ТекстыЗапросов);
ТекстЗапроса = СтрЗаменить(ТекстЗапроса, "#ТаблицаПродукции", ИмяТаблицыТоваров);
Возврат ТекстЗапроса;
КонецФункции
Функция ТекстЗапросаВозвратныеОтходы()
ТекстЗапроса = "ВЫБРАТЬ
| &НомерГруппыЗатрат КАК НомерГруппыЗатрат,
| ВозвратныеОтходы.ПодразделениеЭтапа КАК Подразделение,
| ВЫБОР
| КОГДА ВозвратныеОтходы.ТипНоменклатуры = ЗНАЧЕНИЕ(Перечисление.ТипыНоменклатуры.Работа)
| ТОГДА ЗНАЧЕНИЕ(Перечисление.ХозяйственныеОПерации.ВыпускПродукцииВПодразделение)
| ИНАЧЕ ЗНАЧЕНИЕ(Перечисление.ХозяйственныеОПерации.ВыпускПродукцииНаСклад)
| КОНЕЦ КАК НаправлениеВыпуска,
| ВЫБОР
| КОГДА ВозвратныеОтходы.ТипНоменклатуры = ЗНАЧЕНИЕ(Перечисление.ТипыНоменклатуры.Работа)
| ТОГДА &Подразделение
| ИНАЧЕ ВозвратныеОтходы.Склад
| КОНЕЦ КАК Получатель,
| ВозвратныеОтходы.Номенклатура,
| ВозвратныеОтходы.Характеристика,
| ВозвратныеОтходы.Серия,
| ВозвратныеОтходы.Назначение,
| ВозвратныеОтходы.СтатьяКалькуляции,
| ВозвратныеОтходы.Упаковка,
| ВозвратныеОтходы.КоличествоУпаковок КАК КоличествоУпаковок,
| ВозвратныеОтходы.Количество КАК Количество
|ПОМЕСТИТЬ ВозвратныеОтходыСпецификации
|ИЗ
| &ВозвратныеОтходы КАК ВозвратныеОтходы
|ГДЕ
| НЕ ВозвратныеОтходы.СтатьяКалькуляции = ЗНАЧЕНИЕ(Справочник.СтатьиКалькуляции.ПолуфабрикатыПроизводимыеВПроцессе)
|;
|
|
|ВЫБРАТЬ
| ВозвратныеОтходы.НомерГруппыЗатрат,
| ВозвратныеОтходы.Подразделение,
| ВозвратныеОтходы.НаправлениеВыпуска,
| ВозвратныеОтходы.Получатель,
| ВозвратныеОтходы.Номенклатура,
| ВозвратныеОтходы.Характеристика,
| ВозвратныеОтходы.Серия,
| ВозвратныеОтходы.Назначение,
| ВозвратныеОтходы.СтатьяКалькуляции,
| ВозвратныеОтходы.Упаковка,
| ВозвратныеОтходы.КоличествоУпаковок,
| ВозвратныеОтходы.Количество
|ПОМЕСТИТЬ ВозвратныеОтходыПодготовительная
|ИЗ
| ВозвратныеОтходыСпецификации КАК ВозвратныеОтходы
|
|ОБЪЕДИНИТЬ ВСЕ
|
|ВЫБРАТЬ
| ВозвратныеОтходы.НомерГруппыЗатрат,
| ВозвратныеОтходы.Подразделение,
| ВозвратныеОтходы.НаправлениеВыпуска,
| ВозвратныеОтходы.Получатель,
| ВозвратныеОтходы.Номенклатура,
| ВозвратныеОтходы.Характеристика,
| ВозвратныеОтходы.Серия,
| ВозвратныеОтходы.Назначение,
| ВозвратныеОтходы.СтатьяКалькуляции,
| ВозвратныеОтходы.Упаковка,
| ВозвратныеОтходы.КоличествоУпаковок,
| ВозвратныеОтходы.Количество
|ИЗ
| ВозвратныеОтходы КАК ВозвратныеОтходы
|;
|
|
|УНИЧТОЖИТЬ ВозвратныеОтходы
|;
|
|
|УНИЧТОЖИТЬ ВозвратныеОтходыСпецификации
|;
|
|
|ВЫБРАТЬ
| ВозвратныеОтходы.НомерГруппыЗатрат,
| ВозвратныеОтходы.Подразделение,
| ВозвратныеОтходы.НаправлениеВыпуска,
| ВозвратныеОтходы.Получатель,
| ВозвратныеОтходы.Номенклатура,
| ВозвратныеОтходы.Характеристика,
| ВозвратныеОтходы.Серия,
| ВозвратныеОтходы.Назначение,
| ВозвратныеОтходы.СтатьяКалькуляции,
| ВозвратныеОтходы.Упаковка,
| &ПоляДляЦенообразования,
| ВозвратныеОтходы.КоличествоУпаковок,
| ВозвратныеОтходы.Количество
|ПОМЕСТИТЬ ВозвратныеОтходы
|ИЗ
| ВозвратныеОтходыПодготовительная КАК ВозвратныеОтходы
| ЛЕВОЕ СОЕДИНЕНИЕ Справочник.ВидыНоменклатуры КАК ВидыНоменклатуры
| ПО ВидыНоменклатуры.Ссылка = ВозвратныеОтходы.Номенклатура.ВидНоменклатуры
|;
|
|
|УНИЧТОЖИТЬ ВозвратныеОтходыПодготовительная
|;
|";
НастройкаЦенообразования = ЦенообразованиеКлиентСервер.НастройкиДляВременнойТаблицыСДополнениемДляЦенообразования();
НастройкаЦенообразования.ИсточникТоваров = "ВозвратныеОтходы";
ТекстЗамены = ЦенообразованиеКлиентСервер.ТекстПолейДляЦенообразования(НастройкаЦенообразования);
Если ЗначениеЗаполнено(ТекстЗамены) Тогда
ТекстЗапроса = СтрЗаменить(ТекстЗапроса, "&ПоляДляЦенообразования", ТекстЗамены);
Иначе
ТекстЗапроса = СтрЗаменить(ТекстЗапроса, "&ПоляДляЦенообразования,", "");
КонецЕсли;
Возврат ТекстЗапроса;
КонецФункции
Функция ТекстЗапросаМатериалы()
Возврат
"ВЫБРАТЬ
| &НомерГруппыЗатрат КАК НомерГруппыЗатрат,
| МатериалыИУслуги.ПодразделениеЭтапа КАК Подразделение,
| МатериалыИУслуги.Склад КАК Склад,
| МатериалыИУслуги.Номенклатура,
| МатериалыИУслуги.Характеристика,
| МатериалыИУслуги.СтатьяКалькуляции,
| МатериалыИУслуги.Упаковка,
| МатериалыИУслуги.КоличествоУпаковок КАК КоличествоУпаковок,
| МатериалыИУслуги.Количество КАК Количество
|ПОМЕСТИТЬ МатериалыИУслугиСпецификации
|ИЗ
| &МатериалыИУслуги КАК МатериалыИУслуги
|ГДЕ
| НЕ МатериалыИУслуги.СпособПолученияМатериала =
| ЗНАЧЕНИЕ(Перечисление.СпособыПолученияМатериаловВСпецификации.ПроизводитсяНаЭтапе)
|;
|
|
|ВЫБРАТЬ
| МатериалыИУслуги.НомерГруппыЗатрат,
| ЕСТЬNULL(МатериалыИУслуги.Склад, ЗНАЧЕНИЕ(Справочник.Склады.ПустаяСсылка)) КАК Склад,
| МатериалыИУслуги.Подразделение,
| МатериалыИУслуги.Номенклатура,
| МатериалыИУслуги.Характеристика,
| МатериалыИУслуги.СтатьяКалькуляции,
| МатериалыИУслуги.Упаковка,
| МатериалыИУслуги.КоличествоУпаковок КАК КоличествоУпаковок,
| МатериалыИУслуги.Количество КАК Количество
|ПОМЕСТИТЬ МатериалыИУслугиПодготовительная
|ИЗ
| МатериалыИУслугиСпецификации КАК МатериалыИУслуги
|
|ОБЪЕДИНИТЬ ВСЕ
|
|ВЫБРАТЬ
| МатериалыИУслуги.НомерГруппыЗатрат,
| МатериалыИУслуги.Склад,
| МатериалыИУслуги.Подразделение,
| МатериалыИУслуги.Номенклатура,
| МатериалыИУслуги.Характеристика,
| МатериалыИУслуги.СтатьяКалькуляции,
| МатериалыИУслуги.Упаковка,
| МатериалыИУслуги.КоличествоУпаковок,
| МатериалыИУслуги.Количество
|ИЗ
| МатериалыИУслуги КАК МатериалыИУслуги
|;
|
|
|УНИЧТОЖИТЬ МатериалыИУслуги
|;
|
|
|УНИЧТОЖИТЬ МатериалыИУслугиСпецификации
|;
|
|
|ВЫБРАТЬ
| МатериалыИУслуги.НомерГруппыЗатрат,
| МатериалыИУслуги.Склад,
| МатериалыИУслуги.Подразделение,
| МатериалыИУслуги.Номенклатура,
| МатериалыИУслуги.Характеристика,
| ЗНАЧЕНИЕ(Справочник.Назначения.ПустаяСсылка) КАК Назначение,
| МатериалыИУслуги.СтатьяКалькуляции,
| МатериалыИУслуги.Упаковка,
| МатериалыИУслуги.КоличествоУпаковок,
| МатериалыИУслуги.Количество
|ПОМЕСТИТЬ МатериалыИУслуги
|ИЗ
| МатериалыИУслугиПодготовительная КАК МатериалыИУслуги
|;
|
|
|УНИЧТОЖИТЬ МатериалыИУслугиПодготовительная
|;
|";
КонецФункции
Функция ТекстЗапросаТрудозатраты()
Возврат
"ВЫБРАТЬ
| &НомерГруппыЗатрат КАК НомерГруппыЗатрат,
| Трудозатраты.ПодразделениеЭтапа КАК Подразделение,
| Трудозатраты.ВидРабот,
| Трудозатраты.СтатьяКалькуляции,
| Трудозатраты.Количество КАК Количество
|ПОМЕСТИТЬ ТрудозатратыСпецификации
|ИЗ
| &Трудозатраты КАК Трудозатраты
|;
|
|
|ВЫБРАТЬ
| Трудозатраты.НомерГруппыЗатрат КАК НомерГруппыЗатрат,
| Трудозатраты.Подразделение КАК Подразделение,
| Трудозатраты.ВидРабот,
| Трудозатраты.СтатьяКалькуляции,
| Трудозатраты.Количество КАК Количество
|ПОМЕСТИТЬ ТрудозатратыПодготовительная
|ИЗ
| ТрудозатратыСпецификации КАК Трудозатраты
|
|ОБЪЕДИНИТЬ ВСЕ
|
|ВЫБРАТЬ
| Трудозатраты.НомерГруппыЗатрат КАК НомерГруппыЗатрат,
| Трудозатраты.Подразделение КАК Подразделение,
| Трудозатраты.ВидРабот,
| Трудозатраты.СтатьяКалькуляции,
| Трудозатраты.Количество КАК Количество
|ИЗ
| Трудозатраты КАК Трудозатраты
|;
|
|
|УНИЧТОЖИТЬ Трудозатраты
|;
|
|
|УНИЧТОЖИТЬ ТрудозатратыСпецификации
|;
|
|
|ВЫБРАТЬ
| Трудозатраты.НомерГруппыЗатрат КАК НомерГруппыЗатрат,
| Трудозатраты.Подразделение КАК Подразделение,
| Трудозатраты.ВидРабот,
| Трудозатраты.СтатьяКалькуляции,
| Трудозатраты.Количество КАК Количество
|ПОМЕСТИТЬ Трудозатраты
|ИЗ
| ТрудозатратыПодготовительная КАК Трудозатраты
|;
|
|
|УНИЧТОЖИТЬ ТрудозатратыПодготовительная
|;
|";
КонецФункции
Функция ТекстЗапросаПродукцияПоГруппамЗатрат()
ТекстЗапроса = "ВЫБРАТЬ
| ТаблицаПродукции.НомерГруппыЗатрат КАК НомерГруппыЗатрат,
| ТаблицаПродукции.Организация КАК Организация,
| ВЫБОР
| КОГДА ТаблицаПродукции.ГруппировкаЗатрат В
| (ЗНАЧЕНИЕ(Перечисление.ГруппировкиЗатратВПроизводствеБезЗаказа.ПоСпецификациямИНазначениям),
| ЗНАЧЕНИЕ(Перечисление.ГруппировкиЗатратВПроизводствеБезЗаказа.ПоПродукцииИНазначениям),
| ЗНАЧЕНИЕ(Перечисление.ГруппировкиЗатратВПроизводствеБезЗаказа.ПоПродукцииИНазначениямБезСерий))
| ТОГДА ЕСТЬNULL(ТаблицаПродукции.Назначение.ВидДеятельностиНДС, ЗНАЧЕНИЕ(Перечисление.ТипыНалогообложенияНДС.ПустаяСсылка))
| ИНАЧЕ ЗНАЧЕНИЕ(Перечисление.ТипыНалогообложенияНДС.ПустаяСсылка)
| КОНЕЦ КАК ВыпускПодДеятельность,
| ТаблицаПродукции.ГруппировкаЗатрат КАК ГруппировкаЗатрат,
| ТаблицаПродукции.Подразделение КАК Подразделение,
| ТаблицаПродукции.НаправлениеВыпуска КАК НаправлениеВыпуска,
| ТаблицаПродукции.Получатель КАК Получатель,
| ТаблицаПродукции.Номенклатура КАК Номенклатура,
| ТаблицаПродукции.Характеристика КАК Характеристика,
| ТаблицаПродукции.Серия КАК Серия,
| ТаблицаПродукции.Назначение КАК Назначение,
| ТаблицаПродукции.Спецификация КАК Спецификация,
| СУММА(ТаблицаПродукции.Количество) КАК Количество,
| СУММА(ТаблицаПродукции.Количество) КАК КоличествоУпаковок,
| СУММА(ЕСТЬNULL(ДолиСтоимости.ДоляСтоимости, 0)) КАК ДоляСтоимости,
| СпрРесурсныеСпецификации.СпособРаспределенияЗатратНаВыходныеИзделия КАК СпособРаспределенияЗатратНаВыходныеИзделия,
| ЦеныНоменклатуры.Цена КАК Цена,
| СУММА(ТаблицаПродукции.Количество * ЦеныНоменклатуры.Цена) КАК Сумма
|ИЗ
| ТаблицаПродукции КАК ТаблицаПродукции
| ЛЕВОЕ СОЕДИНЕНИЕ Справочник.РесурсныеСпецификации.ВыходныеИзделия КАК ДолиСтоимости
| ПО (ДолиСтоимости.Ссылка = ТаблицаПродукции.Спецификация)
| И (ДолиСтоимости.Номенклатура = ТаблицаПродукции.Номенклатура
| ИЛИ (ДолиСтоимости.Номенклатура = ЗНАЧЕНИЕ(Справочник.Номенклатура.ПустаяСсылка)
| И ДолиСтоимости.ВидНоменклатуры = ТаблицаПродукции.Номенклатура.ВидНоменклатуры))
| И (ДолиСтоимости.Характеристика = ТаблицаПродукции.Характеристика
| ИЛИ ДолиСтоимости.Характеристика = ЗНАЧЕНИЕ(Справочник.ХарактеристикиНоменклатуры.ПустаяСсылка))
| ЛЕВОЕ СОЕДИНЕНИЕ Справочник.РесурсныеСпецификации КАК СпрРесурсныеСпецификации
| ПО СпрРесурсныеСпецификации.Ссылка = ТаблицаПродукции.Спецификация
| ЛЕВОЕ СОЕДИНЕНИЕ
| &ЦеныНоменклатуры КАК ЦеныНоменклатуры
| ПО
| &УсловиеСоединенияЦеныНоменклатуры
|
|СГРУППИРОВАТЬ ПО
| ТаблицаПродукции.Спецификация,
| ТаблицаПродукции.Номенклатура,
| ТаблицаПродукции.НаправлениеВыпуска,
| ТаблицаПродукции.НомерГруппыЗатрат,
| СпрРесурсныеСпецификации.СпособРаспределенияЗатратНаВыходныеИзделия,
| ТаблицаПродукции.Характеристика,
| ТаблицаПродукции.Организация,
| ВЫБОР
| КОГДА ТаблицаПродукции.ГруппировкаЗатрат В
| (ЗНАЧЕНИЕ(Перечисление.ГруппировкиЗатратВПроизводствеБезЗаказа.ПоСпецификациямИНазначениям),
| ЗНАЧЕНИЕ(Перечисление.ГруппировкиЗатратВПроизводствеБезЗаказа.ПоПродукцииИНазначениям),
| ЗНАЧЕНИЕ(Перечисление.ГруппировкиЗатратВПроизводствеБезЗаказа.ПоПродукцииИНазначениямБезСерий))
| ТОГДА ЕСТЬNULL(ТаблицаПродукции.Назначение.ВидДеятельностиНДС, ЗНАЧЕНИЕ(Перечисление.ТипыНалогообложенияНДС.ПустаяСсылка))
| ИНАЧЕ ЗНАЧЕНИЕ(Перечисление.ТипыНалогообложенияНДС.ПустаяСсылка)
| КОНЕЦ,
| ТаблицаПродукции.Назначение,
| ТаблицаПродукции.Получатель,
| ТаблицаПродукции.Серия,
| ТаблицаПродукции.Подразделение,
| ЦеныНоменклатуры.Цена,
| ТаблицаПродукции.ГруппировкаЗатрат
|
|УПОРЯДОЧИТЬ ПО
| ТаблицаПродукции.Организация,
| ВЫБОР
| КОГДА ТаблицаПродукции.ГруппировкаЗатрат В
| (ЗНАЧЕНИЕ(Перечисление.ГруппировкиЗатратВПроизводствеБезЗаказа.ПоСпецификациямИНазначениям),
| ЗНАЧЕНИЕ(Перечисление.ГруппировкиЗатратВПроизводствеБезЗаказа.ПоПродукцииИНазначениям),
| ЗНАЧЕНИЕ(Перечисление.ГруппировкиЗатратВПроизводствеБезЗаказа.ПоПродукцииИНазначениямБезСерий))
| ТОГДА ЕСТЬNULL(ТаблицаПродукции.Назначение.ВидДеятельностиНДС, ЗНАЧЕНИЕ(Перечисление.ТипыНалогообложенияНДС.ПустаяСсылка))
| ИНАЧЕ ЗНАЧЕНИЕ(Перечисление.ТипыНалогообложенияНДС.ПустаяСсылка)
| КОНЕЦ,
| ТаблицаПродукции.ГруппировкаЗатрат,
| ТаблицаПродукции.Подразделение,
| СпрРесурсныеСпецификации.СпособРаспределенияЗатратНаВыходныеИзделия,
| ТаблицаПродукции.НомерГруппыЗатрат,
| ТаблицаПродукции.Номенклатура,
| ТаблицаПродукции.Характеристика,
| ТаблицаПродукции.Серия,
| ТаблицаПродукции.Назначение,
| ТаблицаПродукции.Спецификация,
| ТаблицаПродукции.НаправлениеВыпуска,
| ТаблицаПродукции.Получатель
|
|ИТОГИ ПО
| Организация,
| ВыпускПодДеятельность,
| ГруппировкаЗатрат,
| Подразделение,
| СпособРаспределенияЗатратНаВыходныеИзделия
|;
|";
ТекстЗапроса = СтрЗаменить(ТекстЗапроса,
"&ЦеныНоменклатуры",
ЦенообразованиеКлиентСервер.ТекстЗапросаРегистрСведенийЦеныНоменклатуры("ТаблицаПродукции",
,
Новый Структура("Параметр", "&ВидЦены")));
ТекстЗапроса = СтрЗаменить(ТекстЗапроса,
"&УсловиеСоединенияЦеныНоменклатуры",
ЦенообразованиеКлиентСервер.ТекстЗапросаРегистрСведенийЦеныНоменклатурыУсловиеСоединения(
"ТаблицаПродукции",
"ЦеныНоменклатуры"));
Возврат ТекстЗапроса;
КонецФункции
Функция ТекстЗапросаВозвратныеОтходыПоГруппамЗатрат() Экспорт
ТекстЗапроса = "ВЫБРАТЬ
| ВозвратныеОтходы.НомерГруппыЗатрат,
| ВозвратныеОтходы.Подразделение,
| ВозвратныеОтходы.НаправлениеВыпуска,
| ВозвратныеОтходы.Получатель,
| ВозвратныеОтходы.Номенклатура,
| ВозвратныеОтходы.Характеристика,
| ВозвратныеОтходы.Серия,
| ВозвратныеОтходы.Назначение,
| ВозвратныеОтходы.СтатьяКалькуляции,
| ВозвратныеОтходы.Упаковка,
| СУММА(ВозвратныеОтходы.КоличествоУпаковок) КАК КоличествоУпаковок,
| СУММА(ВозвратныеОтходы.Количество) КАК Количество,
| ЦеныНоменклатуры.Цена КАК Цена,
| СУММА(ВозвратныеОтходы.Количество * ЦеныНоменклатуры.Цена) КАК Сумма
|ИЗ
| ВозвратныеОтходы КАК ВозвратныеОтходы
| ЛЕВОЕ СОЕДИНЕНИЕ
| &ЦеныНоменклатуры КАК ЦеныНоменклатуры
| ПО
| &УсловиеСоединенияЦеныНоменклатуры
|ГДЕ
| &ЗаполнятьАвтоматически
|
|СГРУППИРОВАТЬ ПО
| ВозвратныеОтходы.Упаковка,
| ВозвратныеОтходы.НаправлениеВыпуска,
| ВозвратныеОтходы.СтатьяКалькуляции,
| ВозвратныеОтходы.Получатель,
| ВозвратныеОтходы.Характеристика,
| ВозвратныеОтходы.Номенклатура,
| ВозвратныеОтходы.Серия,
| ВозвратныеОтходы.Назначение,
| ВозвратныеОтходы.Подразделение,
| ЦеныНоменклатуры.Цена,
| ВозвратныеОтходы.НомерГруппыЗатрат
|
|УПОРЯДОЧИТЬ ПО
| ВозвратныеОтходы.НомерГруппыЗатрат,
| ВозвратныеОтходы.Номенклатура,
| ВозвратныеОтходы.Характеристика,
| ВозвратныеОтходы.Серия,
| ВозвратныеОтходы.Назначение,
| ВозвратныеОтходы.НаправлениеВыпуска,
| ВозвратныеОтходы.Получатель,
| ВозвратныеОтходы.Подразделение,
| ВозвратныеОтходы.СтатьяКалькуляции,
| ВозвратныеОтходы.Упаковка
|;
|";
ТекстЗапроса = СтрЗаменить(ТекстЗапроса,
"&ЦеныНоменклатуры",
ЦенообразованиеКлиентСервер.ТекстЗапросаРегистрСведенийЦеныНоменклатуры("ВозвратныеОтходы",
,
Новый Структура("Параметр", "&ВидЦены")));
ТекстЗапроса = СтрЗаменить(ТекстЗапроса,
"&УсловиеСоединенияЦеныНоменклатуры",
ЦенообразованиеКлиентСервер.ТекстЗапросаРегистрСведенийЦеныНоменклатурыУсловиеСоединения(
"ВозвратныеОтходы",
"ЦеныНоменклатуры"));
Возврат ТекстЗапроса;
КонецФункции
Функция ТекстЗапросаМатериалыПоГруппамЗатрат() Экспорт
Возврат
"ВЫБРАТЬ
| МатериалыИУслуги.НомерГруппыЗатрат,
| МатериалыИУслуги.Склад,
| МатериалыИУслуги.Подразделение,
| МатериалыИУслуги.Номенклатура,
| МатериалыИУслуги.Характеристика,
| МатериалыИУслуги.Назначение,
| МатериалыИУслуги.СтатьяКалькуляции,
| МатериалыИУслуги.Упаковка,
| СУММА(МатериалыИУслуги.КоличествоУпаковок) КАК КоличествоУпаковок,
| СУММА(МатериалыИУслуги.Количество) КАК Количество
|ИЗ
| МатериалыИУслуги КАК МатериалыИУслуги
|ГДЕ
| &ЗаполнятьАвтоматически
|
|СГРУППИРОВАТЬ ПО
| МатериалыИУслуги.Назначение,
| МатериалыИУслуги.СтатьяКалькуляции,
| МатериалыИУслуги.Упаковка,
| МатериалыИУслуги.Склад,
| МатериалыИУслуги.Подразделение,
| МатериалыИУслуги.Номенклатура,
| МатериалыИУслуги.Характеристика,
| МатериалыИУслуги.НомерГруппыЗатрат
|
|УПОРЯДОЧИТЬ ПО
| МатериалыИУслуги.НомерГруппыЗатрат,
| МатериалыИУслуги.Номенклатура,
| МатериалыИУслуги.Характеристика,
| МатериалыИУслуги.Назначение,
| МатериалыИУслуги.Склад,
| МатериалыИУслуги.Подразделение,
| МатериалыИУслуги.СтатьяКалькуляции,
| МатериалыИУслуги.Упаковка
|;
|";
КонецФункции
Функция ТекстЗапросаБригадыТрудозатрат()
Возврат
"ВЫБРАТЬ
| Трудозатраты.Подразделение,
| МАКСИМУМ(СпрБригады.Ссылка) КАК Бригада
|ПОМЕСТИТЬ БригадыТрудозатрат
|ИЗ
| Трудозатраты КАК Трудозатраты
|
| ВНУТРЕННЕЕ СОЕДИНЕНИЕ Справочник.Бригады КАК СпрБригады
| ПО СпрБригады.Подразделение = Трудозатраты.Подразделение
|ГДЕ
| &ЗаполнятьАвтоматически
|
|СГРУППИРОВАТЬ ПО
| Трудозатраты.Подразделение
|ИМЕЮЩИЕ
| КОЛИЧЕСТВО(РАЗЛИЧНЫЕ СпрБригады.Ссылка) = 1
|;
|";
КонецФункции
Функция ТекстЗапросаТрудозатратыПоГруппамЗатрат() Экспорт
Возврат ТекстЗапросаБригадыТрудозатрат() +
"ВЫБРАТЬ
| Трудозатраты.НомерГруппыЗатрат,
| Трудозатраты.Подразделение,
| БригадыТрудозатрат.Бригада КАК Исполнитель,
| Трудозатраты.ВидРабот,
| Трудозатраты.СтатьяКалькуляции,
| СУММА(Трудозатраты.Количество) КАК Количество
|ИЗ
| Трудозатраты КАК Трудозатраты
|
| ЛЕВОЕ СОЕДИНЕНИЕ БригадыТрудозатрат КАК БригадыТрудозатрат
| ПО БригадыТрудозатрат.Подразделение = Трудозатраты.Подразделение
|
|ГДЕ
| &ЗаполнятьАвтоматически
|
|СГРУППИРОВАТЬ ПО
| Трудозатраты.СтатьяКалькуляции,
| Трудозатраты.ВидРабот,
| Трудозатраты.Подразделение,
| БригадыТрудозатрат.Бригада,
| Трудозатраты.НомерГруппыЗатрат
|
|УПОРЯДОЧИТЬ ПО
| Трудозатраты.НомерГруппыЗатрат,
| БригадыТрудозатрат.Бригада,
| Трудозатраты.ВидРабот,
| Трудозатраты.Подразделение,
| Трудозатраты.СтатьяКалькуляции
|;
|";
КонецФункции
Процедура ИсключитьВозвратныеОтходыИзВыходныхИзделий(ТаблицаПродукции, ДанныеПродукции)
Отборы = Новый Структура("НомерГруппыЗатрат, Номенклатура, Характеристика");
Для Каждого ТекСтруктура Из ДанныеПродукции Цикл
Если ТекСтруктура = Неопределено Тогда
Продолжить;
КонецЕсли;
Отборы.НомерГруппыЗатрат = ТекСтруктура.НомерГруппыЗатрат;
ВозвратныеОтходы = ТекСтруктура.ВозвратныеОтходы.СкопироватьКолонки();
ВозвратныеОтходы.Колонки.Добавить("Назначение", Новый ОписаниеТипов("СправочникСсылка.Назначения"));
ВозвратныеОтходы.Колонки.Добавить("Серия", Новый ОписаниеТипов("СправочникСсылка.СерииНоменклатуры"));
Для Каждого ТекОтход Из ТекСтруктура.ВозвратныеОтходы Цикл
ЗаполнитьЗначенияСвойств(Отборы, ТекОтход, "Номенклатура, Характеристика");
СтрокиПродукции = ТаблицаПродукции.НайтиСтроки(Отборы);
Для Каждого ТекПродукция Из СтрокиПродукции Цикл
Количество = Мин(ТекПродукция.Количество, ТекОтход.Количество);
НоваяСтрока = ВозвратныеОтходы.Добавить();
ЗаполнитьЗначенияСвойств(НоваяСтрока, ТекОтход);
НоваяСтрока.Назначение = ТекПродукция.Назначение;
НоваяСтрока.Серия = ТекПродукция.Серия;
НоваяСтрока.Количество = Количество;
НоваяСтрока.КоличествоУпаковок = НоваяСтрока.Количество
* НоваяСтрока.ДанныеУпаковки.Знаменатель / НоваяСтрока.ДанныеУпаковки.Числитель;
ТекПродукция.Количество = ТекПродукция.Количество - Количество;
ТекОтход.Количество = ТекОтход.Количество - Количество;
КонецЦикла;
Если СтрокиПродукции.Количество() = 0 Тогда
НоваяСтрока = ВозвратныеОтходы.Добавить();
ЗаполнитьЗначенияСвойств(НоваяСтрока, ТекОтход);
КонецЕсли;
КонецЦикла;
ТекСтруктура.ВозвратныеОтходы = ВозвратныеОтходы;
КонецЦикла;
МассивУдаляемыхСтрок = ТаблицаПродукции.НайтиСтроки(Новый Структура("Количество", 0));
Для Каждого СтрокаТаблицы Из МассивУдаляемыхСтрок Цикл
ТаблицаПродукции.Удалить(СтрокаТаблицы);
КонецЦикла;
КонецПроцедуры
Процедура ПеренестиСерииУказываемыеОтдельно(Документ, ИмяТЧ)
Если ИмяТЧ = "ВыходныеИзделия" Тогда
ИмяТабличнойЧастиСерии = "ВыходныеИзделияСерии";
ИначеЕсли ИмяТЧ = "ПобочныеИзделия" Тогда
ИмяТабличнойЧастиСерии = "ПобочныеИзделияСерии";
КонецЕсли;
Для Каждого ТекСтрока Из Документ[ИмяТЧ] Цикл
Если (ТекСтрока.СтатусУказанияСерий = 3
ИЛИ ТекСтрока.СтатусУказанияСерий = 5
ИЛИ ТекСтрока.СтатусУказанияСерий = 7
ИЛИ ТекСтрока.СтатусУказанияСерий = 9)
И ЗначениеЗаполнено(ТекСтрока.Серия) Тогда
ЗаполнитьЗначенияСвойств(Документ[ИмяТабличнойЧастиСерии].Добавить(), ТекСтрока);
ТекСтрока.СтатусУказанияСерий = ТекСтрока.СтатусУказанияСерий + 1;
КонецЕсли;
КонецЦикла;
КонецПроцедуры
#КонецОбласти
#Область Проведение
#Область Инициализация
Функция ДополнительныеИсточникиДанныхДляДвижений(ИмяРегистра) Экспорт
ИсточникиДанных = Новый Соответствие;
Возврат ИсточникиДанных;
КонецФункции
Процедура ЗаполнитьПараметрыИнициализации(Запрос, ДокументСсылка)
Запрос.МенеджерВременныхТаблиц = Новый МенеджерВременныхТаблиц;
Запрос.УстановитьПараметр("Ссылка", ДокументСсылка);
Запрос.Текст =
"ВЫБРАТЬ
| Реквизиты.Дата,
| Реквизиты.Дата КАК Период,
| Реквизиты.Номер,
| Реквизиты.Ссылка,
| Реквизиты.Проведен,
| Реквизиты.ПометкаУдаления,
| Реквизиты.Организация,
| Реквизиты.Подразделение,
| Реквизиты.ГруппировкаЗатрат,
| Реквизиты.ВыпускПодДеятельность,
| Реквизиты.НаправлениеДеятельности,
| Реквизиты.ВидЦены,
| Реквизиты.ВидыЗапасовУказаныВручную,
| Реквизиты.Валюта,
| Реквизиты.Ответственный,
| Реквизиты.Автор,
| Реквизиты.Комментарий,
| Реквизиты.Исправление,
| Реквизиты.СторнируемыйДокумент,
| Реквизиты.ИсправляемыйДокумент,
| Реквизиты.РаспоряжениеДляТрудозатрат,
| Реквизиты.ИсправлениеСохраняетПартииПроизводства,
| ВЫБОР
| КОГДА Реквизиты.Исправление
| И Реквизиты.ИсправлениеСохраняетПартииПроизводства
| ТОГДА Реквизиты.ИсправляемыйДокумент
| ИНАЧЕ Реквизиты.Ссылка
| КОНЕЦ КАК ДокументПартии
|ИЗ
| Документ.ПроизводствоБезЗаказа КАК Реквизиты
|ГДЕ
| Реквизиты.Ссылка = &Ссылка";
Результат = Запрос.Выполнить();
Реквизиты = Результат.Выбрать();
Реквизиты.Следующий();
Для Каждого Колонка Из Результат.Колонки Цикл
Запрос.УстановитьПараметр(Колонка.Имя, Реквизиты[Колонка.Имя]);
КонецЦикла;
Запрос.УстановитьПараметр("ФормироватьВидыЗапасовПоГруппамФинансовогоУчета",
ПолучитьФункциональнуюОпцию("ФормироватьВидыЗапасовПоГруппамФинансовогоУчета"));
Запрос.УстановитьПараметр("АналитическийУчетПоГруппамПродукции",
ПолучитьФункциональнуюОпцию("АналитическийУчетПоГруппамПродукции"));
Запрос.УстановитьПараметр("ИдентификаторМетаданных",
ОбщегоНазначения.ИдентификаторОбъектаМетаданных(Тип("ДокументСсылка.ПроизводствоБезЗаказа")));
Запрос.УстановитьПараметр("НомерНаПечать", ПрефиксацияОбъектовКлиентСервер.НомерНаПечать(Реквизиты.Номер));
Запрос.УстановитьПараметр("НакладнаяЯвляетсяРаспоряжением",
ЗакупкиСервер.РаспоряжениеНаПриемкуТовараНакладная(Неопределено));
Запрос.УстановитьПараметр("Период", Запрос.Параметры.Дата);
Запрос.УстановитьПараметр("ИспользоватьИсправлениеДокументов", ПолучитьФункциональнуюОпцию("ИспользоватьИсправлениеДокументов"));
РасчетСебестоимостиПрикладныеАлгоритмы.ЗаполнитьПараметрыИнициализации(Запрос, Реквизиты);
КонецПроцедуры
Процедура УстановитьПараметрыЗапросаКоэффициентыВалют(Запрос)
Если Запрос.Параметры.Свойство("КоэффициентПересчетаВВалютуУпр")
И Запрос.Параметры.Свойство("КоэффициентПересчетаВВалютуРегл") Тогда
Возврат;
КонецЕсли;
Коэффициенты = РаботаСКурсамивалютУТ.ПолучитьКоэффициентыПересчетаВалюты(
Запрос.Параметры.Валюта,
Неопределено,
Запрос.Параметры.Дата,
Запрос.Параметры.Организация);
Запрос.УстановитьПараметр("КоэффициентПересчетаВВалютуРегл", Коэффициенты.КоэффициентПересчетаВВалютуРегл);
Запрос.УстановитьПараметр("КоэффициентПересчетаВВалютуУпр", Коэффициенты.КоэффициентПересчетаВВалютуУпр);
КонецПроцедуры
Процедура УстановитьПараметрЗапросаВидЗапасовПоУмолчанию(Запрос)
Если Запрос.Параметры.Свойство("ВидЗапасовПоУмолчанию") Тогда
Возврат;
КонецЕсли;
ВидЗапасовПоУмолчанию = Справочники.ВидыЗапасов.ВидЗапасовДокумента(Запрос.Параметры.Организация, Неопределено);
Запрос.УстановитьПараметр("ВидЗапасовПоУмолчанию", ВидЗапасовПоУмолчанию);
КонецПроцедуры
Процедура ИнициализироватьКлючиАналитикиНоменклатуры(Запрос)
Если Запрос = Неопределено ИЛИ Запрос.Параметры.Свойство("КлючиАналитикиНоменклатурыИнициализированы") Тогда
Возврат;
КонецЕсли;
ТекстыЗапроса = Новый СписокЗначений;
ТекстЗапроса =
"ВЫБРАТЬ РАЗЛИЧНЫЕ
| ТаблицаТовары.Склад КАК Склад,
| ТаблицаТовары.Номенклатура КАК Номенклатура,
| ТаблицаТовары.Характеристика КАК Характеристика,
| ТаблицаТовары.Назначение КАК Назначение,
| ТаблицаТовары.Серия КАК Серия,
| ТаблицаТовары.СтатьяКалькуляции
|ИЗ
| (
| ВЫБРАТЬ
| &Подразделение КАК Склад,
| ТаблицаТовары.Номенклатура КАК Номенклатура,
| ТаблицаТовары.Характеристика КАК Характеристика,
| ТаблицаТовары.Назначение КАК Назначение,
| ВЫБОР
| КОГДА ТаблицаТовары.СтатусУказанияСерий = 14
| ТОГДА ТаблицаТовары.Серия
| ИНАЧЕ ЗНАЧЕНИЕ(Справочник.СерииНоменклатуры.ПустаяСсылка)
| КОНЕЦ КАК Серия,
| ЗНАЧЕНИЕ(Справочник.СтатьиКалькуляции.ПустаяСсылка) КАК СтатьяКалькуляции
| ИЗ
| Документ.ПроизводствоБезЗаказа.ВыходныеИзделия КАК ТаблицаТовары
|
| ЛЕВОЕ СОЕДИНЕНИЕ Справочник.Склады КАК СпрСклады
| ПО СпрСклады.Ссылка = ТаблицаТовары.Получатель
|
| ГДЕ
| ТаблицаТовары.Ссылка = &Ссылка
| И (ТаблицаТовары.НаправлениеВыпуска = ЗНАЧЕНИЕ(Перечисление.ХозяйственныеОперации.СписаниеТоваровПоТребованию)
| ИЛИ СпрСклады.Ссылка ЕСТЬ НЕ NULL
| И (НЕ СпрСклады.ЦеховаяКладовая ИЛИ &УчетГотовойПродукцииПоПлановойСтоимости))
|
| ОБЪЕДИНИТЬ ВСЕ
|
| ВЫБРАТЬ
| &Подразделение КАК Склад,
| ТаблицаТовары.Номенклатура КАК Номенклатура,
| ТаблицаТовары.Характеристика КАК Характеристика,
| ЗНАЧЕНИЕ(Справочник.Назначения.ПустаяСсылка) КАК Назначение,
| ВЫБОР
| КОГДА ТаблицаТовары.СтатусУказанияСерий = 14
| ТОГДА ТаблицаТовары.Серия
| ИНАЧЕ ЗНАЧЕНИЕ(Справочник.СерииНоменклатуры.ПустаяСсылка)
| КОНЕЦ КАК Серия,
| ЗНАЧЕНИЕ(Справочник.СтатьиКалькуляции.ПустаяСсылка) КАК СтатьяКалькуляции
| ИЗ
| Документ.ПроизводствоБезЗаказа.ВыходныеИзделия КАК ТаблицаТовары
|
| ЛЕВОЕ СОЕДИНЕНИЕ Справочник.Склады КАК СпрСклады
| ПО СпрСклады.Ссылка = ТаблицаТовары.Получатель
|
| ГДЕ
| ТаблицаТовары.Ссылка = &Ссылка
| И (ТаблицаТовары.НаправлениеВыпуска = ЗНАЧЕНИЕ(Перечисление.ХозяйственныеОперации.СписаниеТоваровПоТребованию)
| ИЛИ СпрСклады.Ссылка ЕСТЬ НЕ NULL
| И (НЕ СпрСклады.ЦеховаяКладовая ИЛИ &УчетГотовойПродукцииПоПлановойСтоимости))
|
| ОБЪЕДИНИТЬ ВСЕ
|
| ВЫБРАТЬ
| ТаблицаТовары.Получатель КАК Склад,
| ТаблицаТовары.Номенклатура КАК Номенклатура,
| ТаблицаТовары.Характеристика КАК Характеристика,
| ЗНАЧЕНИЕ(Справочник.Назначения.ПустаяСсылка) КАК Назначение,
| ВЫБОР
| КОГДА ТаблицаТовары.СтатусУказанияСерий = 14
| ТОГДА ТаблицаТовары.Серия
| ИНАЧЕ ЗНАЧЕНИЕ(Справочник.СерииНоменклатуры.ПустаяСсылка)
| КОНЕЦ КАК Серия,
| ЗНАЧЕНИЕ(Справочник.СтатьиКалькуляции.ПустаяСсылка) КАК СтатьяКалькуляции
| ИЗ
| Документ.ПроизводствоБезЗаказа.ВыходныеИзделия КАК ТаблицаТовары
| ГДЕ
| ТаблицаТовары.Ссылка = &Ссылка
| И НЕ ТаблицаТовары.НаправлениеВыпуска = ЗНАЧЕНИЕ(Перечисление.ХозяйственныеОперации.СписаниеТоваровПоТребованию)
|
| ОБЪЕДИНИТЬ ВСЕ
|
| ВЫБРАТЬ
| &Подразделение КАК Склад,
| ТаблицаТовары.Номенклатура КАК Номенклатура,
| ТаблицаТовары.Характеристика КАК Характеристика,
| ТаблицаТовары.Назначение КАК Назначение,
| ВЫБОР
| КОГДА ТаблицаТовары.СтатусУказанияСерий = 14
| ТОГДА ТаблицаТовары.Серия
| ИНАЧЕ ЗНАЧЕНИЕ(Справочник.СерииНоменклатуры.ПустаяСсылка)
| КОНЕЦ КАК Серия,
| ЗНАЧЕНИЕ(Справочник.СтатьиКалькуляции.ПустаяСсылка) КАК СтатьяКалькуляции
| ИЗ
| Документ.ПроизводствоБезЗаказа.ПобочныеИзделия КАК ТаблицаТовары
|
| ЛЕВОЕ СОЕДИНЕНИЕ Справочник.Склады КАК СпрСклады
| ПО СпрСклады.Ссылка = ТаблицаТовары.Получатель
|
| ГДЕ
| ТаблицаТовары.Ссылка = &Ссылка
| И (ТаблицаТовары.НаправлениеВыпуска = ЗНАЧЕНИЕ(Перечисление.ХозяйственныеОперации.СписаниеТоваровПоТребованию)
| ИЛИ СпрСклады.Ссылка ЕСТЬ НЕ NULL
| И НЕ СпрСклады.ЦеховаяКладовая)
|
| ОБЪЕДИНИТЬ ВСЕ
|
| ВЫБРАТЬ
| &Подразделение КАК Склад,
| ТаблицаТовары.Номенклатура КАК Номенклатура,
| ТаблицаТовары.Характеристика КАК Характеристика,
| ЗНАЧЕНИЕ(Справочник.Назначения.ПустаяСсылка) КАК Назначение,
| ВЫБОР
| КОГДА ТаблицаТовары.СтатусУказанияСерий = 14
| ТОГДА ТаблицаТовары.Серия
| ИНАЧЕ ЗНАЧЕНИЕ(Справочник.СерииНоменклатуры.ПустаяСсылка)
| КОНЕЦ КАК Серия,
| ЗНАЧЕНИЕ(Справочник.СтатьиКалькуляции.ПустаяСсылка) КАК СтатьяКалькуляции
| ИЗ
| Документ.ПроизводствоБезЗаказа.ПобочныеИзделия КАК ТаблицаТовары
|
| ЛЕВОЕ СОЕДИНЕНИЕ Справочник.Склады КАК СпрСклады
| ПО СпрСклады.Ссылка = ТаблицаТовары.Получатель
|
| ГДЕ
| ТаблицаТовары.Ссылка = &Ссылка
| И (ТаблицаТовары.НаправлениеВыпуска = ЗНАЧЕНИЕ(Перечисление.ХозяйственныеОперации.СписаниеТоваровПоТребованию)
| ИЛИ СпрСклады.Ссылка ЕСТЬ НЕ NULL
| И НЕ СпрСклады.ЦеховаяКладовая)
|
| ОБЪЕДИНИТЬ ВСЕ
|
| ВЫБРАТЬ РАЗЛИЧНЫЕ
| ТаблицаТовары.Получатель КАК Склад,
| ТаблицаТовары.Номенклатура КАК Номенклатура,
| ТаблицаТовары.Характеристика КАК Характеристика,
| ЗНАЧЕНИЕ(Справочник.Назначения.ПустаяСсылка) КАК Назначение,
| ВЫБОР
| КОГДА ТаблицаТовары.СтатусУказанияСерий = 14
| ТОГДА ТаблицаТовары.Серия
| ИНАЧЕ ЗНАЧЕНИЕ(Справочник.СерииНоменклатуры.ПустаяСсылка)
| КОНЕЦ КАК Серия,
| ЗНАЧЕНИЕ(Справочник.СтатьиКалькуляции.ПустаяСсылка) КАК СтатьяКалькуляции
| ИЗ
| Документ.ПроизводствоБезЗаказа.ПобочныеИзделия КАК ТаблицаТовары
| ГДЕ
| ТаблицаТовары.Ссылка = &Ссылка
| И НЕ ТаблицаТовары.НаправлениеВыпуска = ЗНАЧЕНИЕ(Перечисление.ХозяйственныеОперации.СписаниеТоваровПоТребованию)
|
| ОБЪЕДИНИТЬ ВСЕ
|
| ВЫБРАТЬ РАЗЛИЧНЫЕ
| ТаблицаТовары.Подразделение КАК Склад,
| ТаблицаТовары.Номенклатура КАК Номенклатура,
| ТаблицаТовары.Характеристика КАК Характеристика,
| ТаблицаТовары.Назначение КАК Назначение,
| ВЫБОР
| КОГДА ТаблицаТовары.СтатусУказанияСерий = 14
| ТОГДА ТаблицаТовары.Серия
| ИНАЧЕ ЗНАЧЕНИЕ(Справочник.СерииНоменклатуры.ПустаяСсылка)
| КОНЕЦ КАК Серия,
| ТаблицаТовары.СтатьяКалькуляции КАК СтатьяКалькуляции
| ИЗ
| Документ.ПроизводствоБезЗаказа.ПобочныеИзделия КАК ТаблицаТовары
| ГДЕ
| ТаблицаТовары.Ссылка = &Ссылка
|
| ОБЪЕДИНИТЬ ВСЕ
|
| ВЫБРАТЬ РАЗЛИЧНЫЕ
| ТаблицаТовары.Подразделение КАК Склад,
| ТаблицаТовары.Номенклатура КАК Номенклатура,
| ТаблицаТовары.Характеристика КАК Характеристика,
| ЗНАЧЕНИЕ(Справочник.Назначения.ПустаяСсылка) КАК Назначение,
| ВЫБОР
| КОГДА ТаблицаТовары.СтатусУказанияСерий = 14
| ТОГДА ТаблицаТовары.Серия
| ИНАЧЕ ЗНАЧЕНИЕ(Справочник.СерииНоменклатуры.ПустаяСсылка)
| КОНЕЦ КАК Серия,
| ТаблицаТовары.СтатьяКалькуляции КАК СтатьяКалькуляции
| ИЗ
| Документ.ПроизводствоБезЗаказа.ПобочныеИзделия КАК ТаблицаТовары
| ГДЕ
| ТаблицаТовары.Ссылка = &Ссылка
|
| ОБЪЕДИНИТЬ ВСЕ
|
| ВЫБРАТЬ РАЗЛИЧНЫЕ
| ТаблицаТовары.Подразделение КАК Склад,
| ТаблицаТовары.Номенклатура КАК Номенклатура,
| ТаблицаТовары.Характеристика КАК Характеристика,
| ТаблицаТовары.Назначение КАК Назначение,
| ВЫБОР
| КОГДА ТаблицаТовары.СтатусУказанияСерий = 14
| ТОГДА ТаблицаТовары.Серия
| ИНАЧЕ ЗНАЧЕНИЕ(Справочник.СерииНоменклатуры.ПустаяСсылка)
| КОНЕЦ КАК Серия,
| ТаблицаТовары.СтатьяКалькуляции КАК СтатьяКалькуляции
| ИЗ
| Документ.ПроизводствоБезЗаказа.МатериалыИРаботы КАК ТаблицаТовары
| ГДЕ
| ТаблицаТовары.Ссылка = &Ссылка
|
| ОБЪЕДИНИТЬ ВСЕ
|
| ВЫБРАТЬ РАЗЛИЧНЫЕ
| ТаблицаТовары.Подразделение КАК Склад,
| ТаблицаТовары.Номенклатура КАК Номенклатура,
| ТаблицаТовары.Характеристика КАК Характеристика,
| ЗНАЧЕНИЕ(Справочник.Назначения.ПустаяСсылка) КАК Назначение,
| ВЫБОР
| КОГДА ТаблицаТовары.СтатусУказанияСерий = 14
| ТОГДА ТаблицаТовары.Серия
| ИНАЧЕ ЗНАЧЕНИЕ(Справочник.СерииНоменклатуры.ПустаяСсылка)
| КОНЕЦ КАК Серия,
| ТаблицаТовары.СтатьяКалькуляции КАК СтатьяКалькуляции
| ИЗ
| Документ.ПроизводствоБезЗаказа.МатериалыИРаботы КАК ТаблицаТовары
| ГДЕ
| ТаблицаТовары.Ссылка = &Ссылка
|
| ОБЪЕДИНИТЬ ВСЕ
|
| ВЫБРАТЬ РАЗЛИЧНЫЕ
| ТаблицаТовары.Подразделение КАК Склад,
| ТаблицаТовары.Номенклатура КАК Номенклатура,
| ТаблицаТовары.Характеристика КАК Характеристика,
| ТаблицаТовары.Назначение КАК Назначение,
| ВЫБОР
| КОГДА ТаблицаТовары.СтатусУказанияСерий = 14
| ТОГДА ТаблицаТовары.Серия
| ИНАЧЕ ЗНАЧЕНИЕ(Справочник.СерииНоменклатуры.ПустаяСсылка)
| КОНЕЦ КАК Серия,
| ЗНАЧЕНИЕ(Справочник.СтатьиКалькуляции.ПустаяСсылка) КАК СтатьяКалькуляции
| ИЗ
| Документ.ПроизводствоБезЗаказа.МатериалыИРаботы КАК ТаблицаТовары
| ГДЕ
| ТаблицаТовары.Ссылка = &Ссылка
| И ТаблицаТовары.Номенклатура.ПереноситьРНПТМатериала
|
| ОБЪЕДИНИТЬ ВСЕ
|
| ВЫБРАТЬ РАЗЛИЧНЫЕ
| ТаблицаТовары.Склад КАК Склад,
| ТаблицаТовары.Номенклатура КАК Номенклатура,
| ТаблицаТовары.Характеристика КАК Характеристика,
| ЗНАЧЕНИЕ(Справочник.Назначения.ПустаяСсылка) КАК Назначение,
| ВЫБОР
| КОГДА ТаблицаТовары.СтатусУказанияСерий = 14
| ТОГДА ТаблицаТовары.Серия
| ИНАЧЕ ЗНАЧЕНИЕ(Справочник.СерииНоменклатуры.ПустаяСсылка)
| КОНЕЦ КАК Серия,
| ЗНАЧЕНИЕ(Справочник.СтатьиКалькуляции.ПустаяСсылка) КАК СтатьяКалькуляции
| ИЗ
| Документ.ПроизводствоБезЗаказа.МатериалыИРаботы КАК ТаблицаТовары
| ГДЕ
| ТаблицаТовары.Ссылка = &Ссылка
|
| ОБЪЕДИНИТЬ ВСЕ
|
| ВЫБРАТЬ РАЗЛИЧНЫЕ
| ТаблицаТовары.ВидЗапасов.ВладелецТовара КАК Склад,
| ТаблицаТовары.АналитикаУчетаНоменклатуры.Номенклатура КАК Номенклатура,
| ТаблицаТовары.АналитикаУчетаНоменклатуры.Характеристика КАК Характеристика,
| ЗНАЧЕНИЕ(Справочник.Назначения.ПустаяСсылка) КАК Назначение,
| ЗНАЧЕНИЕ(Справочник.СерииНоменклатуры.ПустаяСсылка) КАК Серия,
| ЗНАЧЕНИЕ(Справочник.СтатьиКалькуляции.ПустаяСсылка) КАК СтатьяКалькуляции
| ИЗ
| Документ.ПроизводствоБезЗаказа.ВидыЗапасовМатериалыИРаботы КАК ТаблицаТовары
| ГДЕ
| ТаблицаТовары.Ссылка = &Ссылка
| И ТаблицаТовары.ВидЗапасов.ТипЗапасов = ЗНАЧЕНИЕ(Перечисление.ТипыЗапасов.КомиссионныйТовар)
| ) КАК ТаблицаТовары
|
| ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.АналитикаУчетаНоменклатуры КАК Аналитика
| ПО ТаблицаТовары.Номенклатура = Аналитика.Номенклатура
| И ТаблицаТовары.Характеристика = Аналитика.Характеристика
| И ТаблицаТовары.Серия = Аналитика.Серия
| И ТаблицаТовары.Склад = Аналитика.МестоХранения
| И ТаблицаТовары.Назначение = Аналитика.Назначение
| И ТаблицаТовары.СтатьяКалькуляции = Аналитика.СтатьяКалькуляции
|ГДЕ
| Аналитика.Номенклатура ЕСТЬ NULL
|
|СГРУППИРОВАТЬ ПО
| ТаблицаТовары.Склад,
| ТаблицаТовары.Номенклатура,
| ТаблицаТовары.Характеристика,
| ТаблицаТовары.Назначение,
| ТаблицаТовары.Серия,
| ТаблицаТовары.СтатьяКалькуляции";
ТекстыЗапроса.Добавить(ТекстЗапроса);
ЗапросАналитики = Новый Запрос;
ЗапросАналитики.Текст = СтрСоединить(ТекстыЗапроса.ВыгрузитьЗначения(), ОбщегоНазначения.РазделительПакетаЗапросов());
ЗапросАналитики.УстановитьПараметр("Ссылка", Запрос.Параметры.Ссылка);
ЗапросАналитики.УстановитьПараметр("Подразделение", Запрос.Параметры.Подразделение);
ЗапросАналитики.УстановитьПараметр("УчетГотовойПродукцииПоПлановойСтоимости", Запрос.Параметры.УчетГотовойПродукцииПоПлановойСтоимости);
Выборка = ЗапросАналитики.Выполнить().Выбрать();
Пока Выборка.Следующий() Цикл
РегистрыСведений.АналитикаУчетаНоменклатуры.СоздатьКлючАналитики(Выборка);
КонецЦикла;
Запрос.УстановитьПараметр("КлючиАналитикиНоменклатурыИнициализированы", Истина);
КонецПроцедуры
Функция АдаптированныйТекстЗапросаДвиженийПоРегистру(ИмяРегистра) Экспорт
ТекстыЗапроса = Новый СписокЗначений;
ПолноеИмяДокумента = "Документ.ПроизводствоБезЗаказа";
СинонимТаблицыДокумента = "";
ВЗапросеЕстьИсточник = Истина;
ТекстыЗапросаВременныхТаблиц = Новый Соответствие();
ПереопределениеРасчетаПараметров = Новый Структура;
ПереопределениеРасчетаПараметров.Вставить("НомерНаПечать", """""");
ПереопределениеРасчетаПараметров.Вставить("УчитыватьСебестоимостьТоваровПоНазначениям",
Формат(ПолучитьФункциональнуюОпцию("УчитыватьСебестоимостьТоваровПоНазначениям"), "БЛ=Ложь; БИ=Истина"));
ЗначенияПараметров = Новый Структура;
ЗначенияПараметров.Вставить("ИдентификаторМетаданных",
ОбщегоНазначения.ИдентификаторОбъектаМетаданных(ПолноеИмяДокумента));
Если ИмяРегистра = "ДвиженияСерийТоваров" Тогда
ТекстЗапроса = ТекстЗапросаТаблицаДвиженияСерийТоваров(Неопределено, ТекстыЗапроса, Неопределено);
СинонимТаблицыДокумента = "ТаблицаТовары";
ИначеЕсли ИмяРегистра = "РеестрДокументов" Тогда
ТекстЗапроса = ТекстЗапросаТаблицаРеестрДокументов(Неопределено, ТекстыЗапроса, Неопределено);
ТекстыЗапросаВременныхТаблиц.Вставить("ВтОснований", ТекстЗапросаВтОснований(Неопределено, ТекстыЗапроса));
СинонимТаблицыДокумента = "ДанныеДокумента";
Иначе
ТекстИсключения = НСтр("ru = 'В документе %ПолноеИмяДокумента% не реализована адаптация текста запроса
|формирования движений по регистру %ИмяРегистра%.'");
ТекстИсключения = СтрЗаменить(ТекстИсключения, "%ПолноеИмяДокумента%", ПолноеИмяДокумента);
ТекстИсключения = СтрЗаменить(ТекстИсключения, "%ИмяРегистра%", ИмяРегистра);
ВызватьИсключение ТекстИсключения;
КонецЕсли;
Если ИмяРегистра = "РеестрДокументов" Тогда
ТекстЗапроса = ОбновлениеИнформационнойБазыУТ.АдаптироватьЗапросПроведенияПоНезависимомуРегистру(
ТекстЗапроса,
ПолноеИмяДокумента,
СинонимТаблицыДокумента,
ВЗапросеЕстьИсточник,
ПереопределениеРасчетаПараметров,
ТекстыЗапросаВременныхТаблиц);
Иначе
ТекстЗапроса = ОбновлениеИнформационнойБазыУТ.АдаптироватьЗапросМеханизмаПроведения(
ТекстЗапроса,
ПолноеИмяДокумента,
СинонимТаблицыДокумента,
ПереопределениеРасчетаПараметров,
ТекстыЗапросаВременныхТаблиц);
КонецЕсли;
Результат = ОбновлениеИнформационнойБазыУТ.РезультатАдаптацииЗапроса();
Результат.ЗначенияПараметров = ЗначенияПараметров;
Результат.ТекстЗапроса = ТекстЗапроса;
Возврат Результат;
КонецФункции
Процедура УстановитьПараметрЗапросаПустаяАналитикаУчетаПартий(Запрос)
Если Не Запрос.Параметры.Свойство("АналитикаУчетаПартийТоваров") Тогда
ОтборПоАналитикеПартии = Новый Структура("Дата, ВидЦенности",
Запрос.Параметры.Дата,
Перечисления.ВидыЦенностей.Товары);
Запрос.УстановитьПараметр("АналитикаУчетаПартийТоваров",
Справочники.КлючиАналитикиУчетаПартий.ПолучитьКлючАналитики(ОтборПоАналитикеПартии));
КонецЕсли;
Если Не Запрос.Параметры.Свойство("АналитикаУчетаПартийРабот") Тогда
ОтборПоАналитикеПартии = Новый Структура("Дата, ВидЦенности",
Запрос.Параметры.Дата,
Перечисления.ВидыЦенностей.ПрочиеРаботыИУслуги);
Запрос.УстановитьПараметр("АналитикаУчетаПартийРабот",
Справочники.КлючиАналитикиУчетаПартий.ПолучитьКлючАналитики(ОтборПоАналитикеПартии));
КонецЕсли;
КонецПроцедуры
#КонецОбласти
#Область ПроведениеПоРеглУчету
Функция ТекстОтраженияВРеглУчете() Экспорт
Возврат ПроизводствоБезЗаказаЛокализация.ТекстОтраженияВРеглУчете();
КонецФункции
Функция ТекстЗапросаВТОтраженияВРеглУчете() Экспорт
Возврат ПроизводствоБезЗаказаЛокализация.ТекстЗапросаВТОтраженияВРеглУчете();
КонецФункции
#КонецОбласти
#Область ТекстыЗапросовПроведения
#Область ТекстыЗапросовВременныеТаблицы
Функция ТекстЗапросаВтОснований(Запрос, ТекстыЗапроса)
ИмяРегистра = "ВтОснований";
ТекстЗапроса =
"ВЫБРАТЬ
| Подразделения.Ссылка КАК Ссылка,
| Подразделения.ХозяйственнаяОперация КАК ХозяйственнаяОперация,
| Подразделения.Организация КАК Организация,
| Подразделения.Подразделение КАК Подразделение,
| МИНИМУМ(Подразделения.ДополнительнаяЗапись) КАК ДополнительнаяЗапись
|ПОМЕСТИТЬ ВтОснований
|ИЗ
| (
| ВЫБРАТЬ
| ДанныеДокумента.Ссылка КАК Ссылка,
| ЗНАЧЕНИЕ(Перечисление.ХозяйственныеОперации.ВыпускПродукции) КАК ХозяйственнаяОперация,
| ДанныеДокумента.Организация КАК Организация,
| &Подразделение КАК Подразделение,
| ЛОЖЬ КАК ДополнительнаяЗапись
| ИЗ
| Документ.ПроизводствоБезЗаказа КАК ДанныеДокумента
| ГДЕ
| ДанныеДокумента.Ссылка = &Ссылка
|
| ОБЪЕДИНИТЬ ВСЕ
|
| ВЫБРАТЬ
| ДанныеДокумента.Ссылка КАК Ссылка,
| ЗНАЧЕНИЕ(Перечисление.ХозяйственныеОперации.ВыпускПродукции) КАК ХозяйственнаяОперация,
| ВЫБОР
| КОГДА ИСТИНА
| ТОГДА ДанныеДокумента.Ссылка.Организация
| КОНЕЦ КАК Организация,
| ДанныеДокумента.Подразделение КАК Подразделение,
| ИСТИНА КАК ДополнительнаяЗапись
| ИЗ
| Документ.ПроизводствоБезЗаказа.ПобочныеИзделия КАК ДанныеДокумента
|
| ГДЕ
| ДанныеДокумента.Ссылка = &Ссылка
| И НЕ ДанныеДокумента.Подразделение = &Подразделение
|
| ОБЪЕДИНИТЬ ВСЕ
|
| ВЫБРАТЬ
| ДанныеДокумента.Ссылка КАК Ссылка,
| ЗНАЧЕНИЕ(Перечисление.ХозяйственныеОперации.СписаниеРасходовНаПартииПроизводства) КАК ХозяйственнаяОперация,
| ДанныеДокумента.ВидЗапасов.Организация КАК Организация,
| ДанныеДокумента.Подразделение КАК Подразделение,
| ИСТИНА КАК ДополнительнаяЗапись
| ИЗ
| Документ.ПроизводствоБезЗаказа.ВидыЗапасовМатериалыИРаботы КАК ДанныеДокумента
| ГДЕ
| ДанныеДокумента.Ссылка = &Ссылка
| И НЕ ДанныеДокумента.Подразделение = &Подразделение
|
| ОБЪЕДИНИТЬ ВСЕ
|
| ВЫБРАТЬ
| ДанныеДокумента.Ссылка КАК Ссылка,
| ЗНАЧЕНИЕ(Перечисление.ХозяйственныеОперации.СписаниеРасходовНаПартииПроизводства) КАК ХозяйственнаяОперация,
| &Организация КАК Организация,
| ДанныеДокумента.Подразделение КАК Подразделение,
| ИСТИНА КАК ДополнительнаяЗапись
| ИЗ
| Документ.ПроизводствоБезЗаказа.МатериалыИРаботы КАК ДанныеДокумента
| ГДЕ
| ДанныеДокумента.Ссылка = &Ссылка
| И НЕ ДанныеДокумента.Подразделение = &Подразделение
| И ДанныеДокумента.Номенклатура.ТипНоменклатуры = ЗНАЧЕНИЕ(Перечисление.ТипыНоменклатуры.Работа)
| ) КАК Подразделения
|
|СГРУППИРОВАТЬ ПО
| Подразделения.Ссылка,
| Подразделения.Организация,
| Подразделения.Подразделение,
| Подразделения.ХозяйственнаяОперация
|";
ТекстыЗапроса.Добавить(ТекстЗапроса, ИмяРегистра);
Возврат ТекстЗапроса;
КонецФункции
Функция ТекстЗапросаВтТаблицаАналитикУчетаПартий(Запрос, ТекстыЗапроса)
ТекстВыборкаПоляАналитик =
"ВЫБРАТЬ
| ""ВидыЗапасовВыходныеИзделия"" КАК ИмяТабличнойЧасти,
| ТаблицаДокумента.НомерСтроки КАК НомерСтроки,
| НЕОПРЕДЕЛЕНО КАК Поставщик,
| НЕОПРЕДЕЛЕНО КАК Контрагент,
| НЕОПРЕДЕЛЕНО КАК СтавкаНДС,
| НЕОПРЕДЕЛЕНО КАК НалогообложениеНДС,
| ВЫБОР
| КОГДА ТаблицаДокумента.АналитикаУчетаНоменклатуры.Номенклатура.ТипНоменклатуры = ЗНАЧЕНИЕ(Перечисление.ТипыНоменклатуры.Работа)
| ТОГДА ЗНАЧЕНИЕ(Перечисление.ВидыЦенностей.ПрочиеРаботыИУслуги)
| ИНАЧЕ ЗНАЧЕНИЕ(Перечисление.ВидыЦенностей.Товары)
| КОНЕЦ КАК ВидЦенности,
| ВЫБОР
| КОГДА &ПартионныйУчетВерсии22
| ТОГДА ТаблицаДокумента.КодСтроки
| ИНАЧЕ 0
| КОНЕЦ КАК КодСтроки
|ПОМЕСТИТЬ ВТПоляАналитикУчетаПартий
|ИЗ
| Документ.ПроизводствоБезЗаказа.ВидыЗапасовВыходныеИзделия КАК ТаблицаДокумента
|ГДЕ
| ТаблицаДокумента.Ссылка = &Ссылка
|
|ОБЪЕДИНИТЬ ВСЕ
|
|ВЫБРАТЬ
| ""ВыходныеИзделия"" КАК ИмяТабличнойЧасти,
| ТаблицаДокумента.НомерСтроки КАК НомерСтроки,
| НЕОПРЕДЕЛЕНО КАК Поставщик,
| НЕОПРЕДЕЛЕНО КАК Контрагент,
| НЕОПРЕДЕЛЕНО КАК СтавкаНДС,
| НЕОПРЕДЕЛЕНО КАК НалогообложениеНДС,
| ЗНАЧЕНИЕ(Перечисление.ВидыЦенностей.ПрочиеРаботыИУслуги) КАК ВидЦенности,
| ВЫБОР
| КОГДА &ПартионныйУчетВерсии22
| ТОГДА ТаблицаДокумента.КодСтроки
| ИНАЧЕ 0
| КОНЕЦ КАК КодСтроки
|ИЗ
| Документ.ПроизводствоБезЗаказа.ВыходныеИзделия КАК ТаблицаДокумента
|ГДЕ
| ТаблицаДокумента.Ссылка = &Ссылка
| И ТаблицаДокумента.Номенклатура.ТипНоменклатуры = ЗНАЧЕНИЕ(Перечисление.ТипыНоменклатуры.Работа)
| И НЕ ТаблицаДокумента.Номенклатура.ПрослеживаемыйТовар
|
|ОБЪЕДИНИТЬ ВСЕ
|
|ВЫБРАТЬ
| ""ВидыЗапасовПобочныеИзделия"" КАК ИмяТабличнойЧасти,
| ТаблицаДокумента.НомерСтроки КАК НомерСтроки,
| НЕОПРЕДЕЛЕНО КАК Поставщик,
| НЕОПРЕДЕЛЕНО КАК Контрагент,
| НЕОПРЕДЕЛЕНО КАК СтавкаНДС,
| НЕОПРЕДЕЛЕНО КАК НалогообложениеНДС,
| ВЫБОР
| КОГДА ТаблицаДокумента.АналитикаУчетаНоменклатуры.Номенклатура.ТипНоменклатуры = ЗНАЧЕНИЕ(Перечисление.ТипыНоменклатуры.Работа)
| ТОГДА ЗНАЧЕНИЕ(Перечисление.ВидыЦенностей.ПрочиеРаботыИУслуги)
| ИНАЧЕ ЗНАЧЕНИЕ(Перечисление.ВидыЦенностей.Товары)
| КОНЕЦ КАК ВидЦенности,
| ВЫБОР
| КОГДА &ПартионныйУчетВерсии22
| ТОГДА ТаблицаДокумента.НомерСтроки
| ИНАЧЕ 0
| КОНЕЦ КАК КодСтроки
|ИЗ
| Документ.ПроизводствоБезЗаказа.ВидыЗапасовПобочныеИзделия КАК ТаблицаДокумента
|ГДЕ
| ТаблицаДокумента.Ссылка = &Ссылка
|
|ОБЪЕДИНИТЬ ВСЕ
|
|ВЫБРАТЬ
| ""ПобочныеИзделия"" КАК ИмяТабличнойЧасти,
| ТаблицаДокумента.НомерСтроки КАК НомерСтроки,
| НЕОПРЕДЕЛЕНО КАК Поставщик,
| НЕОПРЕДЕЛЕНО КАК Контрагент,
| НЕОПРЕДЕЛЕНО КАК СтавкаНДС,
| НЕОПРЕДЕЛЕНО КАК НалогообложениеНДС,
| ЗНАЧЕНИЕ(Перечисление.ВидыЦенностей.ПрочиеРаботыИУслуги) КАК ВидЦенности,
| ВЫБОР
| КОГДА &ПартионныйУчетВерсии22
| ТОГДА ТаблицаДокумента.НомерСтроки
| ИНАЧЕ 0
| КОНЕЦ КАК КодСтроки
|ИЗ
| Документ.ПроизводствоБезЗаказа.ПобочныеИзделия КАК ТаблицаДокумента
|ГДЕ
| ТаблицаДокумента.Ссылка = &Ссылка
| И ТаблицаДокумента.Номенклатура.ТипНоменклатуры = ЗНАЧЕНИЕ(Перечисление.ТипыНоменклатуры.Работа)
| И НЕ ТаблицаДокумента.Номенклатура.ПрослеживаемыйТовар
|";
ТекстЗапроса = Справочники.КлючиАналитикиУчетаПартий.ТекстЗапросаВтТаблицаАналитикУчетаПартий(ТекстВыборкаПоляАналитик,
Запрос,
ТекстыЗапроса);
Возврат ТекстЗапроса;
КонецФункции
Функция ТекстЗапросаВтТовары(Запрос, ТекстыЗапроса)
ИмяРегистра = "ВтТовары";
УстановитьПараметрЗапросаПустаяАналитикаУчетаПартий(Запрос);
Если НЕ ПроведениеДокументов.ЕстьТаблицаЗапроса("ВтТаблицаАналитикУчетаПартий", ТекстыЗапроса) Тогда
ТекстЗапросаВтТаблицаАналитикУчетаПартий(Запрос, ТекстыЗапроса);
КонецЕсли;
ТекстЗапроса =
"ВЫБРАТЬ
| ТаблицаТовары.Ссылка КАК Ссылка,
| ТаблицаТовары.НомерГруппыЗатрат КАК НомерГруппыЗатрат,
| ""ВидыЗапасовВыходныеИзделия"" КАК ИмяТабличнойЧасти,
| ТаблицаТовары.НомерСтроки КАК НомерСтроки,
| ""Номенклатура"" КАК ИсточникАналитикаФинансовогоУчета,
| НЕОПРЕДЕЛЕНО КАК ИсточникКорАналитикаФинансовогоУчета,
| ""НазначениеПолучателя"" КАК ИсточникВидДеятельностиНДС,
|
| ТаблицаТовары.АналитикаУчетаНоменклатуры.Номенклатура КАК ОтправительНоменклатура,
| ТаблицаТовары.АналитикаУчетаНоменклатуры.Характеристика КАК ОтправительХарактеристика,
| ТаблицаТовары.АналитикаУчетаНоменклатуры.Серия КАК ОтправительСерия,
| ВЫБОР
| КОГДА НЕ ТаблицаТовары.НаправлениеВыпуска = ЗНАЧЕНИЕ(Перечисление.ХозяйственныеОперации.СписаниеТоваровПоТребованию)
| ТОГДА ТаблицаТовары.Ссылка.Подразделение
| ИНАЧЕ ТаблицаТовары.АналитикаУчетаНоменклатуры.МестоХранения
| КОНЕЦ КАК ОтправительМестоХранения,
| ТаблицаТовары.АналитикаУчетаНоменклатуры.Назначение КАК ОтправительНазначение,
| ТаблицаТовары.АналитикаУчетаНоменклатуры.СтатьяКалькуляции КАК ОтправительСтатьяКалькуляции,
|
| ТаблицаТовары.АналитикаУчетаНоменклатуры.Номенклатура КАК ПолучательНоменклатура,
| ТаблицаТовары.АналитикаУчетаНоменклатуры.Характеристика КАК ПолучательХарактеристика,
| ТаблицаТовары.АналитикаУчетаНоменклатуры.Серия КАК ПолучательСерия,
| ТаблицаТовары.АналитикаУчетаНоменклатуры.МестоХранения КАК ПолучательМестоХранения,
| ТаблицаТовары.АналитикаУчетаНоменклатуры.Назначение КАК ПолучательНазначение,
| ТаблицаТовары.АналитикаУчетаНоменклатуры.СтатьяКалькуляции КАК ПолучательСтатьяКалькуляции,
|
| ТаблицаТовары.НаправлениеВыпуска КАК НаправлениеВыпуска,
| ЗНАЧЕНИЕ(Перечисление.ХозяйственныеОперации.ВыпускПродукции) КАК ХозяйственнаяОперация,
| ТаблицаТовары.ВидЗапасов КАК ВидЗапасов,
| НЕОПРЕДЕЛЕНО КАК КорВидЗапасов,
| ВЫБОР
| КОГДА ТаблицаТовары.НаправлениеВыпуска = ЗНАЧЕНИЕ(Перечисление.ХозяйственныеОперации.СписаниеТоваровПоТребованию)
| ТОГДА ТаблицаТовары.Получатель
| ИНАЧЕ НЕОПРЕДЕЛЕНО
| КОНЕЦ КАК СтатьяРасходов,
| НЕОПРЕДЕЛЕНО КАК НомерГТД,
| ТаблицаТовары.Спецификация КАК Спецификация,
| ЗНАЧЕНИЕ(Справочник.СтатьиКалькуляции.ПустаяСсылка) КАК СтатьяКалькуляции,
| ТаблицаТовары.Количество КАК Количество,
| 0 КАК КоличествоПоРНПТ,
| ВЫБОР
| КОГДА ТаблицаТовары.ОформитьОтчетДавальцу
| ТОГДА 0
| КОГДА &УчетГотовойПродукцииПоПлановойСтоимости
| ТОГДА ТаблицаТовары.Сумма
| КОНЕЦ КАК Сумма,
| 0 КАК СуммаЗабалансовая,
|
| ТаблицаТовары.ИдентификаторСтроки КАК ИдентификаторСтроки,
| ТаблицаТовары.ИдентификаторФинЗаписи КАК ИдентификаторФинЗаписи,
| ЗНАЧЕНИЕ(Справочник.НастройкиХозяйственныхОпераций.ВыпускПродукции) КАК НастройкаХозяйственнойОперации,
|
| ВЫБОР
| КОГДА ТаблицаТовары.Подразделение = ЗНАЧЕНИЕ(Справочник.СтруктураПредприятия.ПустаяСсылка)
| ТОГДА &Подразделение
| ИНАЧЕ ТаблицаТовары.Подразделение
| КОНЕЦ КАК ПодразделениеПолучательРасходов,
| ТаблицаТовары.АналитикаРасходов КАК АналитикаРасходов,
| ТаблицаТовары.АналитикаАктивовПассивов КАК АналитикаАктивовПассивов,
| ТаблицаТовары.НастройкаСчетовУчета КАК НастройкаСчетовУчета,
| ВЫБОР
| КОГДА ТаблицаТовары.АналитикаУчетаНоменклатуры.Номенклатура.ТипНоменклатуры = ЗНАЧЕНИЕ(Перечисление.ТипыНоменклатуры.Работа)
| ТОГДА ИСТИНА
| ИНАЧЕ ЛОЖЬ
| КОНЕЦ КАК Работа,
| ТаблицаТовары.АналитикаУчетаНоменклатуры.Номенклатура.ПрослеживаемыйТовар КАК ПрослеживаемаяРабота,
| ЕСТЬNULL(ТаблицаТовары.АналитикаУчетаНоменклатуры.СкладскаяТерритория.ЦеховаяКладовая, ЛОЖЬ) КАК ЦеховаяКладовая
|ПОМЕСТИТЬ втТовары
|ИЗ
| Документ.ПроизводствоБезЗаказа.ВидыЗапасовВыходныеИзделия КАК ТаблицаТовары
|ГДЕ
| ТаблицаТовары.Ссылка = &Ссылка
|
|ОБЪЕДИНИТЬ ВСЕ
|
|ВЫБРАТЬ
| ТаблицаТовары.Ссылка КАК Ссылка,
| ТаблицаТовары.НомерГруппыЗатрат КАК НомерГруппыЗатрат,
| ""ВыходныеИзделия"" КАК ИмяТабличнойЧасти,
| ТаблицаТовары.НомерСтроки КАК НомерСтроки,
| ""Номенклатура"" КАК ИсточникАналитикаФинансовогоУчета,
| НЕОПРЕДЕЛЕНО КАК ИсточникКорАналитикаФинансовогоУчета,
| ""НазначениеПолучателя"" КАК ИсточникВидДеятельностиНДС,
|
| ВЫБОР
| КОГДА ТаблицаТовары.НаправлениеВыпуска = ЗНАЧЕНИЕ(Перечисление.ХозяйственныеОперации.СписаниеТоваровПоТребованию)
| ТОГДА ТаблицаТовары.АналитикаУчетаНоменклатуры.Номенклатура
| ИНАЧЕ НЕОПРЕДЕЛЕНО
| КОНЕЦ КАК ОтправительНоменклатура,
| ВЫБОР
| КОГДА ТаблицаТовары.НаправлениеВыпуска = ЗНАЧЕНИЕ(Перечисление.ХозяйственныеОперации.СписаниеТоваровПоТребованию)
| ТОГДА ТаблицаТовары.АналитикаУчетаНоменклатуры.Характеристика
| ИНАЧЕ НЕОПРЕДЕЛЕНО
| КОНЕЦ КАК ОтправительХарактеристика,
| ВЫБОР
| КОГДА ТаблицаТовары.НаправлениеВыпуска = ЗНАЧЕНИЕ(Перечисление.ХозяйственныеОперации.СписаниеТоваровПоТребованию)
| ТОГДА ТаблицаТовары.АналитикаУчетаНоменклатуры.Серия
| ИНАЧЕ НЕОПРЕДЕЛЕНО
| КОНЕЦ КАК ОтправительСерия,
| ВЫБОР
| КОГДА ТаблицаТовары.НаправлениеВыпуска = ЗНАЧЕНИЕ(Перечисление.ХозяйственныеОперации.СписаниеТоваровПоТребованию)
| ТОГДА ТаблицаТовары.АналитикаУчетаНоменклатуры.МестоХранения
| ИНАЧЕ НЕОПРЕДЕЛЕНО
| КОНЕЦ КАК ОтправительМестоХранения,
| ВЫБОР
| КОГДА ТаблицаТовары.НаправлениеВыпуска = ЗНАЧЕНИЕ(Перечисление.ХозяйственныеОперации.СписаниеТоваровПоТребованию)
| ТОГДА ТаблицаТовары.АналитикаУчетаНоменклатуры.Назначение
| ИНАЧЕ НЕОПРЕДЕЛЕНО
| КОНЕЦ КАК ОтправительНазначение,
| ВЫБОР
| КОГДА ТаблицаТовары.НаправлениеВыпуска = ЗНАЧЕНИЕ(Перечисление.ХозяйственныеОперации.СписаниеТоваровПоТребованию)
| ТОГДА ТаблицаТовары.АналитикаУчетаНоменклатуры.СтатьяКалькуляции
| ИНАЧЕ НЕОПРЕДЕЛЕНО
| КОНЕЦ КАК ОтправительСтатьяКалькуляции,
|
| ТаблицаТовары.АналитикаУчетаНоменклатуры.Номенклатура КАК ПолучательНоменклатура,
| ТаблицаТовары.АналитикаУчетаНоменклатуры.Характеристика КАК ПолучательХарактеристика,
| ТаблицаТовары.АналитикаУчетаНоменклатуры.Серия КАК ПолучательСерия,
| ТаблицаТовары.АналитикаУчетаНоменклатуры.МестоХранения КАК ПолучательМестоХранения,
| ТаблицаТовары.АналитикаУчетаНоменклатуры.Назначение КАК ПолучательНазначение,
| ТаблицаТовары.АналитикаУчетаНоменклатуры.СтатьяКалькуляции КАК ПолучательСтатьяКалькуляции,
|
| ТаблицаТовары.НаправлениеВыпуска КАК НаправлениеВыпуска,
| ЗНАЧЕНИЕ(Перечисление.ХозяйственныеОперации.ВыпускПродукции) КАК ХозяйственнаяОперация,
| НЕОПРЕДЕЛЕНО КАК ВидЗапасов,
| НЕОПРЕДЕЛЕНО КАК КорВидЗапасов,
| ВЫБОР
| КОГДА ТаблицаТовары.НаправлениеВыпуска = ЗНАЧЕНИЕ(Перечисление.ХозяйственныеОперации.СписаниеТоваровПоТребованию)
| ТОГДА ТаблицаТовары.Получатель
| ИНАЧЕ НЕОПРЕДЕЛЕНО
| КОНЕЦ КАК СтатьяРасходов,
| НЕОПРЕДЕЛЕНО КАК НомерГТД,
| ТаблицаТовары.Спецификация КАК Спецификация,
| ЗНАЧЕНИЕ(Справочник.СтатьиКалькуляции.ПустаяСсылка) КАК СтатьяКалькуляции,
| ТаблицаТовары.Количество КАК Количество,
| 0 КАК КоличествоПоРНПТ,
| ВЫБОР
| КОГДА &УчетГотовойПродукцииПоПлановойСтоимости
| ТОГДА ТаблицаТовары.Сумма
| ИНАЧЕ 0
| КОНЕЦ КАК Сумма,
| 0 КАК СуммаЗабалансовая,
|
| ТаблицаТовары.ИдентификаторСтроки КАК ИдентификаторСтроки,
| ТаблицаТовары.ИдентификаторСтроки КАК ИдентификаторФинЗаписи,
| ЗНАЧЕНИЕ(Справочник.НастройкиХозяйственныхОпераций.ВыпускПродукции) КАК НастройкаХозяйственнойОперации,
|
| ВЫБОР
| КОГДА ТаблицаТовары.Подразделение = ЗНАЧЕНИЕ(Справочник.СтруктураПредприятия.ПустаяСсылка)
| ТОГДА &Подразделение
| ИНАЧЕ ТаблицаТовары.Подразделение
| КОНЕЦ КАК ПодразделениеПолучательРасходов,
| ТаблицаТовары.АналитикаРасходов КАК АналитикаРасходов,
| ТаблицаТовары.АналитикаАктивовПассивов КАК АналитикаАктивовПассивов,
| ТаблицаТовары.НастройкаСчетовУчета КАК НастройкаСчетовУчета,
| ИСТИНА КАК Работа,
| ЛОЖЬ КАК ПрослеживаемаяРабота,
| ЛОЖЬ КАК ЦеховаяКладовая
|ИЗ
| Документ.ПроизводствоБезЗаказа.ВыходныеИзделия КАК ТаблицаТовары
|
|ГДЕ
| ТаблицаТовары.Ссылка = &Ссылка
| И ТаблицаТовары.Номенклатура.ТипНоменклатуры = ЗНАЧЕНИЕ(Перечисление.ТипыНоменклатуры.Работа)
| И НЕ ТаблицаТовары.Номенклатура.ПрослеживаемыйТовар
|
|ОБЪЕДИНИТЬ ВСЕ
|
|ВЫБРАТЬ
| ТаблицаТовары.Ссылка КАК Ссылка,
| ТаблицаТовары.НомерГруппыЗатрат КАК НомерГруппыЗатрат,
| ""ВидыЗапасовПобочныеИзделия"" КАК ИмяТабличнойЧасти,
| ТаблицаТовары.НомерСтроки КАК НомерСтроки,
| ""Номенклатура"" КАК ИсточникАналитикаФинансовогоУчета,
| НЕОПРЕДЕЛЕНО КАК ИсточникКорАналитикаФинансовогоУчета,
| ""НазначениеПолучателя"" КАК ИсточникВидДеятельностиНДС,
|
| ТаблицаТовары.АналитикаУчетаНоменклатуры.Номенклатура КАК ОтправительНоменклатура,
| ТаблицаТовары.АналитикаУчетаНоменклатуры.Характеристика КАК ОтправительХарактеристика,
| ТаблицаТовары.АналитикаУчетаНоменклатуры.Серия КАК ОтправительСерия,
| ВЫБОР
| КОГДА НЕ ТаблицаТовары.НаправлениеВыпуска = ЗНАЧЕНИЕ(Перечисление.ХозяйственныеОперации.СписаниеТоваровПоТребованию)
| ТОГДА ТаблицаТовары.Ссылка.Подразделение
| ИНАЧЕ ТаблицаТовары.АналитикаУчетаНоменклатуры.МестоХранения
| КОНЕЦ КАК ОтправительМестоХранения,
| ТаблицаТовары.АналитикаУчетаНоменклатуры.Назначение КАК ОтправительНазначение,
| ТаблицаТовары.АналитикаУчетаНоменклатуры.СтатьяКалькуляции КАК ОтправительСтатьяКалькуляции,
|
| ТаблицаТовары.АналитикаУчетаНоменклатуры.Номенклатура КАК ПолучательНоменклатура,
| ТаблицаТовары.АналитикаУчетаНоменклатуры.Характеристика КАК ПолучательХарактеристика,
| ТаблицаТовары.АналитикаУчетаНоменклатуры.Серия КАК ПолучательСерия,
| ТаблицаТовары.АналитикаУчетаНоменклатуры.МестоХранения КАК ПолучательМестоХранения,
| ТаблицаТовары.АналитикаУчетаНоменклатуры.Назначение КАК ПолучательНазначение,
| ТаблицаТовары.АналитикаУчетаНоменклатуры.СтатьяКалькуляции КАК ПолучательСтатьяКалькуляции,
|
| ТаблицаТовары.НаправлениеВыпуска КАК НаправлениеВыпуска,
| ЗНАЧЕНИЕ(Перечисление.ХозяйственныеОперации.ВыпускПродукцииФиксированнаяСтоимость) КАК ХозяйственнаяОперация,
| ТаблицаТовары.ВидЗапасов КАК ВидЗапасов,
| НЕОПРЕДЕЛЕНО КАК КорВидЗапасов,
| ВЫБОР
| КОГДА ТаблицаТовары.НаправлениеВыпуска = ЗНАЧЕНИЕ(Перечисление.ХозяйственныеОперации.СписаниеТоваровПоТребованию)
| ТОГДА ТаблицаТовары.Получатель
| ИНАЧЕ НЕОПРЕДЕЛЕНО
| КОНЕЦ КАК СтатьяРасходов,
| НЕОПРЕДЕЛЕНО КАК НомерГТД,
| НЕОПРЕДЕЛЕНО КАК Спецификация,
| ЗНАЧЕНИЕ(Справочник.СтатьиКалькуляции.ПустаяСсылка) КАК СтатьяКалькуляции,
| ТаблицаТовары.Количество КАК Количество,
| 0 КАК КоличествоПоРНПТ,
| ВЫБОР
| КОГДА ТаблицаТовары.ВидЗапасов.ТипЗапасов = ЗНАЧЕНИЕ(Перечисление.ТипыЗапасов.ПолуфабрикатДавальца)
| ТОГДА 0
| ИНАЧЕ ТаблицаТовары.Сумма
| КОНЕЦ КАК Сумма,
| ВЫБОР
| КОГДА ТаблицаТовары.ВидЗапасов.ТипЗапасов = ЗНАЧЕНИЕ(Перечисление.ТипыЗапасов.ПолуфабрикатДавальца)
| ТОГДА ТаблицаТовары.Сумма
| ИНАЧЕ 0
| КОНЕЦ КАК СуммаЗабалансовая,
|
| ТаблицаТовары.ИдентификаторСтроки КАК ИдентификаторСтроки,
| ТаблицаТовары.ИдентификаторФинЗаписи КАК ИдентификаторФинЗаписи,
| ЗНАЧЕНИЕ(Справочник.НастройкиХозяйственныхОпераций.ВыпускПродукцииФиксированнаяСтоимость) КАК НастройкаХозяйственнойОперации,
|
| ВЫБОР
| КОГДА ТаблицаТовары.ПодразделениеПолучатель = ЗНАЧЕНИЕ(Справочник.СтруктураПредприятия.ПустаяСсылка)
| ТОГДА ТаблицаТовары.Подразделение
| ИНАЧЕ ТаблицаТовары.ПодразделениеПолучатель
| КОНЕЦ КАК ПодразделениеПолучательРасходов,
| ТаблицаТовары.АналитикаРасходов КАК АналитикаРасходов,
| ТаблицаТовары.АналитикаАктивовПассивов КАК АналитикаАктивовПассивов,
| ТаблицаТовары.НастройкаСчетовУчета КАК НастройкаСчетовУчета,
| ВЫБОР
| КОГДА ТаблицаТовары.АналитикаУчетаНоменклатуры.Номенклатура.ТипНоменклатуры = ЗНАЧЕНИЕ(Перечисление.ТипыНоменклатуры.Работа)
| ТОГДА ИСТИНА
| ИНАЧЕ ЛОЖЬ
| КОНЕЦ КАК Работа,
| ТаблицаТовары.АналитикаУчетаНоменклатуры.Номенклатура.ПрослеживаемыйТовар КАК ПрослеживаемаяРабота,
| ЕСТЬNULL(ТаблицаТовары.АналитикаУчетаНоменклатуры.СкладскаяТерритория.ЦеховаяКладовая, ЛОЖЬ) КАК ЦеховаяКладовая
|ИЗ
| Документ.ПроизводствоБезЗаказа.ВидыЗапасовПобочныеИзделия КАК ТаблицаТовары
|
|ГДЕ
| ТаблицаТовары.Ссылка = &Ссылка
|
|ОБЪЕДИНИТЬ ВСЕ
|
|ВЫБРАТЬ
| ТаблицаТовары.Ссылка КАК Ссылка,
| ТаблицаТовары.НомерГруппыЗатрат КАК НомерГруппыЗатрат,
| ""ПобочныеИзделия"" КАК ИмяТабличнойЧасти,
| ТаблицаТовары.НомерСтроки КАК НомерСтроки,
| ""Номенклатура"" КАК ИсточникАналитикаФинансовогоУчета,
| НЕОПРЕДЕЛЕНО КАК ИсточникКорАналитикаФинансовогоУчета,
| ""НазначениеПолучателя"" КАК ИсточникВидДеятельностиНДС,
|
| ВЫБОР
| КОГДА ТаблицаТовары.НаправлениеВыпуска = ЗНАЧЕНИЕ(Перечисление.ХозяйственныеОперации.СписаниеТоваровПоТребованию)
| ТОГДА ТаблицаТовары.АналитикаУчетаНоменклатуры.Номенклатура
| ИНАЧЕ НЕОПРЕДЕЛЕНО
| КОНЕЦ КАК ОтправительНоменклатура,
| ВЫБОР
| КОГДА ТаблицаТовары.НаправлениеВыпуска = ЗНАЧЕНИЕ(Перечисление.ХозяйственныеОперации.СписаниеТоваровПоТребованию)
| ТОГДА ТаблицаТовары.АналитикаУчетаНоменклатуры.Характеристика
| ИНАЧЕ НЕОПРЕДЕЛЕНО
| КОНЕЦ КАК ОтправительХарактеристика,
| ВЫБОР
| КОГДА ТаблицаТовары.НаправлениеВыпуска = ЗНАЧЕНИЕ(Перечисление.ХозяйственныеОперации.СписаниеТоваровПоТребованию)
| ТОГДА ТаблицаТовары.АналитикаУчетаНоменклатуры.Серия
| ИНАЧЕ НЕОПРЕДЕЛЕНО
| КОНЕЦ КАК ОтправительСерия,
| ВЫБОР
| КОГДА ТаблицаТовары.НаправлениеВыпуска = ЗНАЧЕНИЕ(Перечисление.ХозяйственныеОперации.СписаниеТоваровПоТребованию)
| ТОГДА ТаблицаТовары.АналитикаУчетаНоменклатуры.МестоХранения
| ИНАЧЕ НЕОПРЕДЕЛЕНО
| КОНЕЦ КАК ОтправительМестоХранения,
| ВЫБОР
| КОГДА ТаблицаТовары.НаправлениеВыпуска = ЗНАЧЕНИЕ(Перечисление.ХозяйственныеОперации.СписаниеТоваровПоТребованию)
| ТОГДА ТаблицаТовары.АналитикаУчетаНоменклатуры.Назначение
| ИНАЧЕ НЕОПРЕДЕЛЕНО
| КОНЕЦ КАК ОтправительНазначение,
| ВЫБОР
| КОГДА ТаблицаТовары.НаправлениеВыпуска = ЗНАЧЕНИЕ(Перечисление.ХозяйственныеОперации.СписаниеТоваровПоТребованию)
| ТОГДА ТаблицаТовары.АналитикаУчетаНоменклатуры.СтатьяКалькуляции
| ИНАЧЕ НЕОПРЕДЕЛЕНО
| КОНЕЦ КАК ОтправительСтатьяКалькуляции,
|
| ТаблицаТовары.АналитикаУчетаНоменклатуры.Номенклатура КАК ПолучательНоменклатура,
| ТаблицаТовары.АналитикаУчетаНоменклатуры.Характеристика КАК ПолучательХарактеристика,
| ТаблицаТовары.АналитикаУчетаНоменклатуры.Серия КАК ПолучательСерия,
| ТаблицаТовары.АналитикаУчетаНоменклатуры.МестоХранения КАК ПолучательМестоХранения,
| ТаблицаТовары.АналитикаУчетаНоменклатуры.Назначение КАК ПолучательНазначение,
| ТаблицаТовары.АналитикаУчетаНоменклатуры.СтатьяКалькуляции КАК ПолучательСтатьяКалькуляции,
|
| ТаблицаТовары.НаправлениеВыпуска КАК НаправлениеВыпуска,
| ЗНАЧЕНИЕ(Перечисление.ХозяйственныеОперации.ВыпускПродукцииФиксированнаяСтоимость) КАК ХозяйственнаяОперация,
| НЕОПРЕДЕЛЕНО КАК ВидЗапасов,
| НЕОПРЕДЕЛЕНО КАК КорВидЗапасов,
| ВЫБОР
| КОГДА ТаблицаТовары.НаправлениеВыпуска = ЗНАЧЕНИЕ(Перечисление.ХозяйственныеОперации.СписаниеТоваровПоТребованию)
| ТОГДА ТаблицаТовары.Получатель
| ИНАЧЕ НЕОПРЕДЕЛЕНО
| КОНЕЦ КАК СтатьяРасходов,
| НЕОПРЕДЕЛЕНО КАК НомерГТД,
| НЕОПРЕДЕЛЕНО КАК Спецификация,
| ЗНАЧЕНИЕ(Справочник.СтатьиКалькуляции.ПустаяСсылка) КАК СтатьяКалькуляции,
| ТаблицаТовары.Количество КАК Количество,
| 0 КАК КоличествоПоРНПТ,
| ТаблицаТовары.Сумма КАК Сумма,
| 0 КАК СуммаЗабалансовая,
|
| ТаблицаТовары.ИдентификаторСтроки КАК ИдентификаторСтроки,
| ТаблицаТовары.ИдентификаторСтроки КАК ИдентификаторФинЗаписи,
| ЗНАЧЕНИЕ(Справочник.НастройкиХозяйственныхОпераций.ВыпускПродукцииФиксированнаяСтоимость) КАК НастройкаХозяйственнойОперации,
|
| ВЫБОР
| КОГДА ТаблицаТовары.ПодразделениеПолучатель = ЗНАЧЕНИЕ(Справочник.СтруктураПредприятия.ПустаяСсылка)
| ТОГДА ТаблицаТовары.Подразделение
| ИНАЧЕ ТаблицаТовары.ПодразделениеПолучатель
| КОНЕЦ КАК ПодразделениеПолучательРасходов,
| ТаблицаТовары.АналитикаРасходов КАК АналитикаРасходов,
| ТаблицаТовары.АналитикаАктивовПассивов КАК АналитикаАктивовПассивов,
| ТаблицаТовары.НастройкаСчетовУчета КАК НастройкаСчетовУчета,
| ИСТИНА КАК Работа,
| ЛОЖЬ КАК ПрослеживаемаяРабота,
| ЛОЖЬ КАК ЦеховаяКладовая
|ИЗ
| Документ.ПроизводствоБезЗаказа.ПобочныеИзделия КАК ТаблицаТовары
|
|ГДЕ
| ТаблицаТовары.Ссылка = &Ссылка
| И ТаблицаТовары.Номенклатура.ТипНоменклатуры = ЗНАЧЕНИЕ(Перечисление.ТипыНоменклатуры.Работа)
| И НЕ ТаблицаТовары.Номенклатура.ПрослеживаемыйТовар
|
|ОБЪЕДИНИТЬ ВСЕ
|
|ВЫБРАТЬ
| ТаблицаТовары.Ссылка КАК Ссылка,
| ТаблицаТовары.НомерГруппыЗатрат КАК НомерГруппыЗатрат,
| ""ВидыЗапасовПобочныеИзделия"" КАК ИмяТабличнойЧасти,
| ТаблицаТовары.НомерСтроки КАК НомерСтроки,
| ""ПартияПроизводства"" КАК ИсточникАналитикаФинансовогоУчета,
| ""Номенклатура"" КАК ИсточникКорАналитикаФинансовогоУчета,
| ""ПартияПроизводства"" КАК ИсточникВидДеятельностиНДС,
|
| ТаблицаТовары.АналитикаУчетаНоменклатуры.Номенклатура КАК ОтправительНоменклатура,
| ТаблицаТовары.АналитикаУчетаНоменклатуры.Характеристика КАК ОтправительХарактеристика,
| ТаблицаТовары.АналитикаУчетаНоменклатуры.Серия КАК ОтправительСерия,
| ТаблицаТовары.АналитикаУчетаНоменклатуры.МестоХранения КАК ОтправительМестоХранения,
| ТаблицаТовары.АналитикаУчетаНоменклатуры.Назначение КАК ОтправительНазначение,
| ТаблицаТовары.АналитикаУчетаНоменклатуры.СтатьяКалькуляции КАК ОтправительСтатьяКалькуляции,
|
| ТаблицаТовары.АналитикаУчетаНоменклатуры.Номенклатура КАК ПолучательНоменклатура,
| ТаблицаТовары.АналитикаУчетаНоменклатуры.Характеристика КАК ПолучательХарактеристика,
| ТаблицаТовары.АналитикаУчетаНоменклатуры.Серия КАК ПолучательСерия,
| ТаблицаТовары.Подразделение КАК ПолучательМестоХранения,
| ТаблицаТовары.АналитикаУчетаНоменклатуры.Назначение КАК ПолучательНазначение,
| ТаблицаТовары.СтатьяКалькуляции КАК ПолучательСтатьяКалькуляции,
|
| ЗНАЧЕНИЕ(Перечисление.ХозяйственныеОперации.СписаниеРасходовНаПартииПроизводства) КАК НаправлениеВыпуска,
| ЗНАЧЕНИЕ(Перечисление.ХозяйственныеОперации.ВыпускПродукцииФиксированнаяСтоимость) КАК ХозяйственнаяОперация,
| ТаблицаТовары.ВидЗапасов КАК ВидЗапасов,
| ТаблицаТовары.ВидЗапасов КАК КорВидЗапасов,
| НЕОПРЕДЕЛЕНО КАК СтатьяРасходов,
| НЕОПРЕДЕЛЕНО КАК НомерГТД,
| НЕОПРЕДЕЛЕНО КАК Спецификация,
| ТаблицаТовары.СтатьяКалькуляции КАК СтатьяКалькуляции,
| -1 * ТаблицаТовары.Количество КАК Количество,
| 0 КАК КоличествоПоРНПТ,
| ВЫБОР
| КОГДА ТаблицаТовары.ВидЗапасов.ТипЗапасов = ЗНАЧЕНИЕ(Перечисление.ТипыЗапасов.ПолуфабрикатДавальца)
| ТОГДА 0
| ИНАЧЕ -1 * ТаблицаТовары.Сумма
| КОНЕЦ КАК Сумма,
| ВЫБОР
| КОГДА ТаблицаТовары.ВидЗапасов.ТипЗапасов = ЗНАЧЕНИЕ(Перечисление.ТипыЗапасов.ПолуфабрикатДавальца)
| ТОГДА -1 * ТаблицаТовары.Сумма
| ИНАЧЕ 0
| КОНЕЦ КАК СуммаЗабалансовая,
|
| ТаблицаТовары.ИдентификаторСтроки КАК ИдентификаторСтроки,
| ТаблицаТовары.ИдентификаторФинЗаписи КАК ИдентификаторФинЗаписи,
| ЗНАЧЕНИЕ(Справочник.НастройкиХозяйственныхОпераций.ВыпускПродукцииФиксированнаяСтоимость) КАК НастройкаХозяйственнойОперации,
|
| ВЫБОР
| КОГДА ТаблицаТовары.ПодразделениеПолучатель = ЗНАЧЕНИЕ(Справочник.СтруктураПредприятия.ПустаяСсылка)
| ТОГДА ТаблицаТовары.Подразделение
| ИНАЧЕ ТаблицаТовары.ПодразделениеПолучатель
| КОНЕЦ КАК ПодразделениеПолучательРасходов,
| ТаблицаТовары.АналитикаРасходов КАК АналитикаРасходов,
| ТаблицаТовары.АналитикаАктивовПассивов КАК АналитикаАктивовПассивов,
| ТаблицаТовары.НастройкаСчетовУчета КАК НастройкаСчетовУчета,
| ВЫБОР
| КОГДА ТаблицаТовары.АналитикаУчетаНоменклатуры.Номенклатура.ТипНоменклатуры = ЗНАЧЕНИЕ(Перечисление.ТипыНоменклатуры.Работа)
| ТОГДА ИСТИНА
| ИНАЧЕ ЛОЖЬ
| КОНЕЦ КАК Работа,
| ТаблицаТовары.АналитикаУчетаНоменклатуры.Номенклатура.ПрослеживаемыйТовар КАК ПрослеживаемаяРабота,
| ЛОЖЬ КАК ЦеховаяКладовая
|ИЗ
| Документ.ПроизводствоБезЗаказа.ВидыЗапасовПобочныеИзделия КАК ТаблицаТовары
|
|ГДЕ
| ТаблицаТовары.Ссылка = &Ссылка
|
|ОБЪЕДИНИТЬ ВСЕ
|
|ВЫБРАТЬ
| ТаблицаТовары.Ссылка КАК Ссылка,
| ТаблицаТовары.НомерГруппыЗатрат КАК НомерГруппыЗатрат,
| ""ПобочныеИзделия"" КАК ИмяТабличнойЧасти,
| ТаблицаТовары.НомерСтроки КАК НомерСтроки,
| ""ПартияПроизводства"" КАК ИсточникАналитикаФинансовогоУчета,
| ""Номенклатура"" КАК ИсточникКорАналитикаФинансовогоУчета,
| ""ПартияПроизводства"" КАК ИсточникВидДеятельностиНДС,
|
| ТаблицаТовары.АналитикаУчетаНоменклатуры.Номенклатура КАК ОтправительНоменклатура,
| ТаблицаТовары.АналитикаУчетаНоменклатуры.Характеристика КАК ОтправительХарактеристика,
| ТаблицаТовары.АналитикаУчетаНоменклатуры.Серия КАК ОтправительСерия,
| ТаблицаТовары.АналитикаУчетаНоменклатуры.МестоХранения КАК ОтправительМестоХранения,
| ТаблицаТовары.АналитикаУчетаНоменклатуры.Назначение КАК ОтправительНазначение,
| ТаблицаТовары.АналитикаУчетаНоменклатуры.СтатьяКалькуляции КАК ОтправительСтатьяКалькуляции,
|
| ТаблицаТовары.Номенклатура КАК ПолучательНоменклатура,
| ТаблицаТовары.Характеристика КАК ПолучательХарактеристика,
| ТаблицаТовары.Серия КАК ПолучательСерия,
| ТаблицаТовары.Подразделение КАК ПолучательМестоХранения,
| ТаблицаТовары.Назначение КАК ПолучательНазначение,
| ТаблицаТовары.СтатьяКалькуляции КАК ПолучательСтатьяКалькуляции,
|
| ЗНАЧЕНИЕ(Перечисление.ХозяйственныеОперации.СписаниеРасходовНаПартииПроизводства) КАК НаправлениеВыпуска,
| ЗНАЧЕНИЕ(Перечисление.ХозяйственныеОперации.ВыпускПродукцииФиксированнаяСтоимость) КАК ХозяйственнаяОперация,
| НЕОПРЕДЕЛЕНО КАК ВидЗапасов,
| НЕОПРЕДЕЛЕНО КАК КорВидЗапасов,
| НЕОПРЕДЕЛЕНО КАК СтатьяРасходов,
| НЕОПРЕДЕЛЕНО КАК НомерГТД,
| НЕОПРЕДЕЛЕНО КАК Спецификация,
| ТаблицаТовары.СтатьяКалькуляции КАК СтатьяКалькуляции,
| -1 * ТаблицаТовары.Количество КАК Количество,
| 0 КАК КоличествоПоРНПТ,
| -1 * ТаблицаТовары.Сумма КАК Сумма,
| 0 КАК СуммаЗабалансовая,
|
| ТаблицаТовары.ИдентификаторСтроки КАК ИдентификаторСтроки,
| ТаблицаТовары.ИдентификаторСтроки КАК ИдентификаторФинЗаписи,
| ЗНАЧЕНИЕ(Справочник.НастройкиХозяйственныхОпераций.ВыпускПродукцииФиксированнаяСтоимость) КАК НастройкаХозяйственнойОперации,
|
| ВЫБОР
| КОГДА ТаблицаТовары.ПодразделениеПолучатель = ЗНАЧЕНИЕ(Справочник.СтруктураПредприятия.ПустаяСсылка)
| ТОГДА ТаблицаТовары.Подразделение
| ИНАЧЕ ТаблицаТовары.ПодразделениеПолучатель
| КОНЕЦ КАК ПодразделениеПолучательРасходов,
| ТаблицаТовары.АналитикаРасходов КАК АналитикаРасходов,
| ТаблицаТовары.АналитикаАктивовПассивов КАК АналитикаАктивовПассивов,
| ТаблицаТовары.НастройкаСчетовУчета КАК НастройкаСчетовУчета,
| ИСТИНА КАК Работа,
| ЛОЖЬ КАК ПрослеживаемаяРабота,
| ЛОЖЬ КАК ЦеховаяКладовая
|ИЗ
| Документ.ПроизводствоБезЗаказа.ПобочныеИзделия КАК ТаблицаТовары
|
|ГДЕ
| ТаблицаТовары.Ссылка = &Ссылка
| И ТаблицаТовары.Номенклатура.ТипНоменклатуры = ЗНАЧЕНИЕ(Перечисление.ТипыНоменклатуры.Работа)
| И НЕ ТаблицаТовары.Номенклатура.ПрослеживаемыйТовар
|
|ОБЪЕДИНИТЬ ВСЕ
|
|ВЫБРАТЬ
| ТаблицаТовары.Ссылка КАК Ссылка,
| ТаблицаТовары.НомерГруппыЗатрат КАК НомерГруппыЗатрат,
| """" КАК ИмяТабличнойЧасти,
| ТаблицаТовары.НомерСтроки КАК НомерСтроки,
| ""ПартияПроизводства"" КАК ИсточникАналитикаФинансовогоУчета,
| НЕОПРЕДЕЛЕНО КАК ИсточникКорАналитикаФинансовогоУчета,
| ""ПартияПроизводства"" КАК ИсточникВидДеятельностиНДС,
|
| ТаблицаТовары.АналитикаУчетаНоменклатуры.Номенклатура КАК ОтправительНоменклатура,
| ТаблицаТовары.АналитикаУчетаНоменклатуры.Характеристика КАК ОтправительХарактеристика,
| ТаблицаТовары.АналитикаУчетаНоменклатуры.Серия КАК ОтправительСерия,
| ТаблицаТовары.АналитикаУчетаНоменклатуры.МестоХранения КАК ОтправительМестоХранения,
| ТаблицаТовары.АналитикаУчетаНоменклатуры.Назначение КАК ОтправительНазначение,
| ТаблицаТовары.АналитикаУчетаНоменклатуры.СтатьяКалькуляции КАК ОтправительСтатьяКалькуляции,
|
| ТаблицаТовары.Номенклатура КАК ПолучательНоменклатура,
| ТаблицаТовары.Характеристика КАК ПолучательХарактеристика,
| ТаблицаТовары.Серия КАК ПолучательСерия,
| ТаблицаТовары.Подразделение КАК ПолучательМестоХранения,
| ТаблицаТовары.Назначение КАК ПолучательНазначение,
| ТаблицаТовары.СтатьяКалькуляции КАК ПолучательСтатьяКалькуляции,
|
| ЗНАЧЕНИЕ(Перечисление.ХозяйственныеОперации.СписаниеРасходовНаПартииПроизводства) КАК НаправлениеВыпуска,
| ЗНАЧЕНИЕ(Перечисление.ХозяйственныеОперации.СписаниеРасходовНаПартииПроизводства) КАК ХозяйственнаяОперация,
| НЕОПРЕДЕЛЕНО КАК ВидЗапасов,
| НЕОПРЕДЕЛЕНО КАК КорВидЗапасов,
| НЕОПРЕДЕЛЕНО КАК СтатьяРасходов,
| НЕОПРЕДЕЛЕНО КАК НомерГТД,
| НЕОПРЕДЕЛЕНО КАК Спецификация,
| ТаблицаТовары.СтатьяКалькуляции КАК СтатьяКалькуляции,
| ТаблицаТовары.Количество КАК Количество,
| 0 КАК КоличествоПоРНПТ,
| 0 КАК Сумма,
| 0 КАК СуммаЗабалансовая,
|
| НЕОПРЕДЕЛЕНО КАК ИдентификаторСтроки,
| ТаблицаТовары.ИдентификаторСтроки КАК ИдентификаторФинЗаписи,
| ЗНАЧЕНИЕ(Справочник.НастройкиХозяйственныхОпераций.СписаниеРасходовНаПартииПроизводства) КАК НастройкаХозяйственнойОперации,
|
| НЕОПРЕДЕЛЕНО КАК ПодразделениеПолучательРасходов,
| НЕОПРЕДЕЛЕНО КАК АналитикаРасходов,
| НЕОПРЕДЕЛЕНО КАК АналитикаАктивовПассивов,
| НЕОПРЕДЕЛЕНО КАК НастройкаСчетовУчета,
| ИСТИНА КАК Работа,
| ЛОЖЬ КАК ПрослеживаемаяРабота,
| ЛОЖЬ КАК ЦеховаяКладовая
|ИЗ
| Документ.ПроизводствоБезЗаказа.МатериалыИРаботы КАК ТаблицаТовары
|
|ГДЕ
| ТаблицаТовары.Ссылка = &Ссылка
| И ТаблицаТовары.Номенклатура.ТипНоменклатуры = ЗНАЧЕНИЕ(Перечисление.ТипыНоменклатуры.Работа)
| И НЕ ТаблицаТовары.Номенклатура.ПрослеживаемыйТовар
|
|ОБЪЕДИНИТЬ ВСЕ
|
|ВЫБРАТЬ
| ТаблицаТовары.Ссылка КАК Ссылка,
| ТаблицаТовары.НомерГруппыЗатрат КАК НомерГруппыЗатрат,
| """" КАК ИмяТабличнойЧасти,
| ТаблицаТовары.НомерСтроки КАК НомерСтроки,
| ""ПартияПроизводства"" КАК ИсточникАналитикаФинансовогоУчета,
| НЕОПРЕДЕЛЕНО КАК ИсточникКорАналитикаФинансовогоУчета,
| ""ПартияПроизводства"" КАК ИсточникВидДеятельностиНДС,
|
| ТаблицаТовары.АналитикаУчетаНоменклатуры.Номенклатура КАК ОтправительНоменклатура,
| ТаблицаТовары.АналитикаУчетаНоменклатуры.Характеристика КАК ОтправительХарактеристика,
| ТаблицаТовары.АналитикаУчетаНоменклатуры.Серия КАК ОтправительСерия,
| ТаблицаТовары.АналитикаУчетаНоменклатуры.МестоХранения КАК ОтправительМестоХранения,
| ТаблицаТовары.АналитикаУчетаНоменклатуры.Назначение КАК ОтправительНазначение,
| ТаблицаТовары.АналитикаУчетаНоменклатуры.СтатьяКалькуляции КАК ОтправительСтатьяКалькуляции,
|
| ТаблицаТовары.АналитикаУчетаНоменклатуры.Номенклатура КАК ПолучательНоменклатура,
| ТаблицаТовары.АналитикаУчетаНоменклатуры.Характеристика КАК ПолучательХарактеристика,
| ТаблицаТовары.АналитикаУчетаНоменклатуры.Серия КАК ПолучательСерия,
| ТаблицаТовары.Подразделение КАК ПолучательМестоХранения,
| ТаблицаТовары.АналитикаУчетаНоменклатуры.Назначение КАК ПолучательНазначение,
| ТаблицаТовары.СтатьяКалькуляции КАК ПолучательСтатьяКалькуляции,
|
| ЗНАЧЕНИЕ(Перечисление.ХозяйственныеОперации.СписаниеРасходовНаПартииПроизводства) КАК НаправлениеВыпуска,
| ЗНАЧЕНИЕ(Перечисление.ХозяйственныеОперации.СписаниеРасходовНаПартииПроизводства) КАК ХозяйственнаяОперация,
| ТаблицаТовары.ВидЗапасов КАК ВидЗапасов,
| ТаблицаТовары.ВидЗапасовПолучателя КАК КорВидЗапасов,
| НЕОПРЕДЕЛЕНО КАК СтатьяРасходов,
| ТаблицаТовары.НомерГТД КАК НомерГТД,
| НЕОПРЕДЕЛЕНО КАК Спецификация,
| ТаблицаТовары.СтатьяКалькуляции КАК СтатьяКалькуляции,
| ТаблицаТовары.Количество КАК Количество,
| ТаблицаТовары.КоличествоПоРНПТ КАК КоличествоПоРНПТ,
| 0 КАК Сумма,
| 0 КАК СуммаЗабалансовая,
|
| НЕОПРЕДЕЛЕНО КАК ИдентификаторСтроки,
| ТаблицаТовары.ИдентификаторСтроки КАК ИдентификаторФинЗаписи,
| ЗНАЧЕНИЕ(Справочник.НастройкиХозяйственныхОпераций.СписаниеРасходовНаПартииПроизводства) КАК НастройкаХозяйственнойОперации,
|
| НЕОПРЕДЕЛЕНО КАК ПодразделениеПолучательРасходов,
| НЕОПРЕДЕЛЕНО КАК АналитикаРасходов,
| НЕОПРЕДЕЛЕНО КАК АналитикаАктивовПассивов,
| НЕОПРЕДЕЛЕНО КАК НастройкаСчетовУчета,
| ВЫБОР
| КОГДА ТаблицаТовары.АналитикаУчетаНоменклатуры.Номенклатура.ТипНоменклатуры = ЗНАЧЕНИЕ(Перечисление.ТипыНоменклатуры.Работа)
| ТОГДА ИСТИНА
| ИНАЧЕ ЛОЖЬ
| КОНЕЦ КАК Работа,
| ТаблицаТовары.АналитикаУчетаНоменклатуры.Номенклатура.ПрослеживаемыйТовар КАК ПрослеживаемаяРабота,
| ЕСТЬNULL(ТаблицаТовары.АналитикаУчетаНоменклатуры.СкладскаяТерритория.ЦеховаяКладовая, ЛОЖЬ) КАК ЦеховаяКладовая
|ИЗ
| Документ.ПроизводствоБезЗаказа.ВидыЗапасовМатериалыИРаботы КАК ТаблицаТовары
|
|ГДЕ
| ТаблицаТовары.Ссылка = &Ссылка
|";
ТекстыЗапроса.Добавить(ТекстЗапроса, ИмяРегистра);
Возврат ТекстЗапроса;
КонецФункции
Функция ТекстЗапросаВтВидыЗапасов(Запрос, ТекстыЗапроса)
ИмяРегистра = "ВтВидыЗапасов";
УстановитьПараметрыЗапросаКоэффициентыВалют(Запрос);
ИнициализироватьКлючиАналитикиНоменклатуры(Запрос);
Если НЕ ПроведениеДокументов.ЕстьТаблицаЗапроса("ВтТовары", ТекстыЗапроса) Тогда
ТекстЗапросаВтТовары(Запрос, ТекстыЗапроса);
КонецЕсли;
ТекстЗапроса =
"ВЫБРАТЬ
| втТовары.Ссылка КАК Ссылка,
| втТовары.НаправлениеВыпуска КАК НаправлениеВыпуска,
| втТовары.ХозяйственнаяОперация КАК ХозяйственнаяОперация,
| ВЫБОР
| КОГДА НЕ втТовары.ВидЗапасов = НЕОПРЕДЕЛЕНО
| ТОГДА втТовары.ВидЗапасов.Организация
| КОГДА ИСТИНА
| ТОГДА &Организация
| КОНЕЦ КАК Организация,
| ВЫБОР
| КОГДА НЕ втТовары.ОтправительНоменклатура = НЕОПРЕДЕЛЕНО
| ТОГДА КлючиНоменклатурыПоОтправителю.КлючАналитики
| ИНАЧЕ НЕОПРЕДЕЛЕНО
| КОНЕЦ КАК АналитикаУчетаНоменклатурыПоОтправителю,
| ВЫБОР
| КОГДА НЕ втТовары.ОтправительНоменклатура = НЕОПРЕДЕЛЕНО
| ТОГДА КлючиНоменклатурыПоОтправителюБезНазначения.КлючАналитики
| ИНАЧЕ НЕОПРЕДЕЛЕНО
| КОНЕЦ КАК АналитикаУчетаНоменклатурыПоОтправителюБезНазначения,
| ВЫБОР
| КОГДА НЕ втТовары.ПолучательНоменклатура = НЕОПРЕДЕЛЕНО
| ТОГДА КлючиНоменклатурыПоПолучателю.КлючАналитики
| ИНАЧЕ НЕОПРЕДЕЛЕНО
| КОНЕЦ КАК АналитикаУчетаНоменклатурыПоПолучателю,
| ВЫБОР
| КОГДА НЕ втТовары.ПолучательНоменклатура = НЕОПРЕДЕЛЕНО
| ТОГДА КлючиНоменклатурыПоПолучателюБезНазначения.КлючАналитики
| ИНАЧЕ НЕОПРЕДЕЛЕНО
| КОНЕЦ КАК АналитикаУчетаНоменклатурыПоПолучателюБезНазначения,
| втТовары.ВидЗапасов КАК ВидЗапасов,
| СпрВидыЗапасов.ВидЗапасовВладельца КАК ВидЗапасовВладельца,
| СпрВидыЗапасов.РеализацияЗапасовДругойОрганизации КАК РеализацияЗапасовДругойОрганизации,
| втТовары.КорВидЗапасов КАК КорВидЗапасов,
| втТовары.ОтправительМестоХранения КАК Склад,
| втТовары.ПолучательМестоХранения КАК Получатель,
| втТовары.ПолучательНоменклатура КАК Номенклатура,
| втТовары.ПолучательХарактеристика КАК Характеристика,
| втТовары.СтатьяРасходов КАК СтатьяРасходов,
| ТаблицаАналитикУчетаПартий.АналитикаУчетаПартий КАК АналитикаУчетаПартий,
| СпрПартииПроизводства.Ссылка КАК ПартияПроизводства,
| ВЫБОР
| КОГДА втТовары.ИсточникАналитикаФинансовогоУчета = ""Номенклатура""
| И &АналитическийУчетПоГруппамПродукции
| И НЕ втТовары.ОтправительНоменклатура = НЕОПРЕДЕЛЕНО
| И НЕ втТовары.ОтправительНоменклатура.ГруппаАналитическогоУчета = ЗНАЧЕНИЕ(Справочник.ГруппыАналитическогоУчетаНоменклатуры.ПустаяСсылка)
| ТОГДА втТовары.ОтправительНоменклатура.ГруппаАналитическогоУчета
| КОГДА втТовары.ИсточникАналитикаФинансовогоУчета = ""Номенклатура""
| И &АналитическийУчетПоГруппамПродукции
| И НЕ втТовары.ПолучательНоменклатура = НЕОПРЕДЕЛЕНО
| И НЕ втТовары.ПолучательНоменклатура.ГруппаАналитическогоУчета = ЗНАЧЕНИЕ(Справочник.ГруппыАналитическогоУчетаНоменклатуры.ПустаяСсылка)
| ТОГДА втТовары.ПолучательНоменклатура.ГруппаАналитическогоУчета
| КОГДА втТовары.ИсточникАналитикаФинансовогоУчета = ""ПартияПроизводства""
| ТОГДА СпрПартииПроизводства.ГруппаПродукции
| ИНАЧЕ НЕОПРЕДЕЛЕНО
| КОНЕЦ КАК АналитикаФинансовогоУчета,
| ВЫБОР
| КОГДА втТовары.ИсточникКорАналитикаФинансовогоУчета = ""Номенклатура""
| И &АналитическийУчетПоГруппамПродукции
| И НЕ втТовары.ОтправительНоменклатура = НЕОПРЕДЕЛЕНО
| И НЕ втТовары.ОтправительНоменклатура.ГруппаАналитическогоУчета = ЗНАЧЕНИЕ(Справочник.ГруппыАналитическогоУчетаНоменклатуры.ПустаяСсылка)
| ТОГДА втТовары.ОтправительНоменклатура.ГруппаАналитическогоУчета
| КОГДА втТовары.ИсточникКорАналитикаФинансовогоУчета = ""Номенклатура""
| И &АналитическийУчетПоГруппамПродукции
| И НЕ втТовары.ПолучательНоменклатура = НЕОПРЕДЕЛЕНО
| И НЕ втТовары.ПолучательНоменклатура.ГруппаАналитическогоУчета = ЗНАЧЕНИЕ(Справочник.ГруппыАналитическогоУчетаНоменклатуры.ПустаяСсылка)
| ТОГДА втТовары.ПолучательНоменклатура.ГруппаАналитическогоУчета
| КОГДА втТовары.ИсточникКорАналитикаФинансовогоУчета = ""ПартияПроизводства""
| ТОГДА СпрПартииПроизводства.ГруппаПродукции
| ИНАЧЕ НЕОПРЕДЕЛЕНО
| КОНЕЦ КАК КорАналитикаФинансовогоУчета,
| ВЫБОР
| КОГДА втТовары.ИсточникВидДеятельностиНДС = ""НазначениеПолучателя""
| И ЕСТЬNULL(втТовары.ПолучательНазначение.ВидДеятельностиНДС, ЗНАЧЕНИЕ(Перечисление.ТипыНалогообложенияНДС.ПустаяСсылка)) <>
| ЗНАЧЕНИЕ(Перечисление.ТипыНалогообложенияНДС.ПустаяСсылка)
| ТОГДА втТовары.ПолучательНазначение.ВидДеятельностиНДС
| КОГДА втТовары.ИсточникВидДеятельностиНДС = ""НазначениеОтправителя""
| И ЕСТЬNULL(втТовары.ОтправительНазначение.ВидДеятельностиНДС, ЗНАЧЕНИЕ(Перечисление.ТипыНалогообложенияНДС.ПустаяСсылка)) <>
| ЗНАЧЕНИЕ(Перечисление.ТипыНалогообложенияНДС.ПустаяСсылка)
| ТОГДА втТовары.ОтправительНазначение.ВидДеятельностиНДС
| КОГДА втТовары.ИсточникВидДеятельностиНДС = ""НазначениеПолучателя""
| ИЛИ втТовары.ИсточникВидДеятельностиНДС = ""НазначениеОтправителя""
| ТОГДА &ВыпускПодДеятельность
| КОГДА втТовары.ИсточникВидДеятельностиНДС = ""ПартияПроизводства""
| ТОГДА СпрПартииПроизводства.ВидДеятельностиНДС
| ИНАЧЕ НЕОПРЕДЕЛЕНО
| КОНЕЦ КАК ВидДеятельностиНДС,
| втТовары.НомерГТД КАК НомерГТД,
| втТовары.СтатьяКалькуляции КАК СтатьяКалькуляции,
| втТовары.Спецификация КАК Спецификация,
| втТовары.Количество КАК Количество,
| втТовары.КоличествоПоРНПТ КАК КоличествоПоРНПТ,
| втТовары.Сумма КАК Сумма,
| ВЫРАЗИТЬ(втТовары.Сумма * &КоэффициентПересчетаВВалютуУпр КАК ЧИСЛО(31,2)) КАК СуммаУпр,
| ВЫРАЗИТЬ(втТовары.Сумма * &КоэффициентПересчетаВВалютуРегл КАК ЧИСЛО(31,2)) КАК СуммаРегл,
| ВЫРАЗИТЬ(втТовары.СуммаЗабалансовая * &КоэффициентПересчетаВВалютуУпр КАК ЧИСЛО(31,2)) КАК СуммаЗабалансоваяУпр,
| ВЫРАЗИТЬ(втТовары.СуммаЗабалансовая * &КоэффициентПересчетаВВалютуРегл КАК ЧИСЛО(31,2)) КАК СуммаЗабалансоваяРегл,
| втТовары.ИдентификаторСтроки КАК ИдентификаторСтроки,
| втТовары.ИдентификаторФинЗаписи КАК ИдентификаторФинЗаписи,
| втТовары.НастройкаХозяйственнойОперации КАК НастройкаХозяйственнойОперации,
| втТовары.ПодразделениеПолучательРасходов КАК ПодразделениеПолучательРасходов,
| втТовары.АналитикаРасходов КАК АналитикаРасходов,
| втТовары.АналитикаАктивовПассивов КАК АналитикаАктивовПассивов,
| втТовары.НастройкаСчетовУчета КАК НастройкаСчетовУчета,
| АналитикаКомитента.КлючАналитики КАК АналитикаКомитента,
| ВЫБОР
| КОГДА СпрВидыЗапасов.ВладелецТовара ССЫЛКА Справочник.Организации
| ТОГДА АналитикаРасчетовИнтеркампани.КлючАналитики
| ИНАЧЕ АналитикаРасчетовСКомитентом.КлючАналитики
| КОНЕЦ КАК АналитикаУчетаПоПартнерам,
| втТовары.Работа КАК Работа,
| втТовары.ПрослеживаемаяРабота КАК ПрослеживаемаяРабота,
| втТовары.ЦеховаяКладовая КАК ЦеховаяКладовая
|ПОМЕСТИТЬ втВидыЗапасов
|ИЗ
| втТовары КАК втТовары
|
| ЛЕВОЕ СОЕДИНЕНИЕ Справочник.ПартииПроизводства КАК СпрПартииПроизводства
| ПО СпрПартииПроизводства.Документ = &ДокументПартии
| И СпрПартииПроизводства.Код = втТовары.НомерГруппыЗатрат
| И НЕ СпрПартииПроизводства.ПометкаУдаления
|
| ЛЕВОЕ СОЕДИНЕНИЕ ВтТаблицаАналитикУчетаПартий КАК ТаблицаАналитикУчетаПартий
| ПО ТаблицаАналитикУчетаПартий.НомерСтроки = втТовары.НомерСтроки
| И ТаблицаАналитикУчетаПартий.ИмяТабличнойЧасти = втТовары.ИмяТабличнойЧасти
|
| ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.АналитикаУчетаНоменклатуры КАК КлючиНоменклатурыПоОтправителю
| ПО КлючиНоменклатурыПоОтправителю.Номенклатура = втТовары.ОтправительНоменклатура
| И КлючиНоменклатурыПоОтправителю.Характеристика = втТовары.ОтправительХарактеристика
| И КлючиНоменклатурыПоОтправителю.Серия = втТовары.ОтправительСерия
| И КлючиНоменклатурыПоОтправителю.МестоХранения = втТовары.ОтправительМестоХранения
| И КлючиНоменклатурыПоОтправителю.Назначение = втТовары.ОтправительНазначение
| И КлючиНоменклатурыПоОтправителю.СтатьяКалькуляции = втТовары.ОтправительСтатьяКалькуляции
|
| ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.АналитикаУчетаНоменклатуры КАК КлючиНоменклатурыПоОтправителюБезНазначения
| ПО КлючиНоменклатурыПоОтправителюБезНазначения.Номенклатура = КлючиНоменклатурыПоОтправителю.Номенклатура
| И КлючиНоменклатурыПоОтправителюБезНазначения.Характеристика = КлючиНоменклатурыПоОтправителю.Характеристика
| И КлючиНоменклатурыПоОтправителюБезНазначения.Серия = КлючиНоменклатурыПоОтправителю.Серия
| И КлючиНоменклатурыПоОтправителюБезНазначения.МестоХранения = КлючиНоменклатурыПоОтправителю.МестоХранения
| И КлючиНоменклатурыПоОтправителюБезНазначения.Назначение = ЗНАЧЕНИЕ(Справочник.Назначения.ПустаяСсылка)
| И КлючиНоменклатурыПоОтправителюБезНазначения.СтатьяКалькуляции = КлючиНоменклатурыПоОтправителю.СтатьяКалькуляции
|
| ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.АналитикаУчетаНоменклатуры КАК КлючиНоменклатурыПоПолучателю
| ПО КлючиНоменклатурыПоПолучателю.Номенклатура = втТовары.ПолучательНоменклатура
| И КлючиНоменклатурыПоПолучателю.Характеристика = втТовары.ПолучательХарактеристика
| И КлючиНоменклатурыПоПолучателю.Серия = втТовары.ПолучательСерия
| И КлючиНоменклатурыПоПолучателю.МестоХранения = втТовары.ПолучательМестоХранения
| И КлючиНоменклатурыПоПолучателю.Назначение = втТовары.ПолучательНазначение
| И КлючиНоменклатурыПоПолучателю.СтатьяКалькуляции = втТовары.ПолучательСтатьяКалькуляции
|
| ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.АналитикаУчетаНоменклатуры КАК КлючиНоменклатурыПоПолучателюБезНазначения
| ПО КлючиНоменклатурыПоПолучателюБезНазначения.Номенклатура = КлючиНоменклатурыПоПолучателю.Номенклатура
| И КлючиНоменклатурыПоПолучателюБезНазначения.Характеристика = КлючиНоменклатурыПоПолучателю.Характеристика
| И КлючиНоменклатурыПоПолучателюБезНазначения.Серия = КлючиНоменклатурыПоПолучателю.Серия
| И КлючиНоменклатурыПоПолучателюБезНазначения.МестоХранения = КлючиНоменклатурыПоПолучателю.МестоХранения
| И КлючиНоменклатурыПоПолучателюБезНазначения.Назначение = ЗНАЧЕНИЕ(Справочник.Назначения.ПустаяСсылка)
| И КлючиНоменклатурыПоПолучателюБезНазначения.СтатьяКалькуляции = КлючиНоменклатурыПоПолучателю.СтатьяКалькуляции
|
| ЛЕВОЕ СОЕДИНЕНИЕ Справочник.ВидыЗапасов КАК СпрВидыЗапасов
| ПО СпрВидыЗапасов.Ссылка = втТовары.ВидЗапасов
|
| ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.АналитикаУчетаНоменклатуры КАК АналитикаКомитента
| ПО КлючиНоменклатурыПоПолучателю.Номенклатура = АналитикаКомитента.Номенклатура
| И КлючиНоменклатурыПоПолучателю.Характеристика = АналитикаКомитента.Характеристика
| И ЗНАЧЕНИЕ(Справочник.Назначения.ПустаяСсылка) = АналитикаКомитента.Назначение
| И ЗНАЧЕНИЕ(Справочник.СерииНоменклатуры.ПустаяСсылка) = АналитикаКомитента.Серия
| И СпрВидыЗапасов.ВладелецТовара = АналитикаКомитента.МестоХранения
| И ЗНАЧЕНИЕ(Справочник.СтатьиКалькуляции.ПустаяСсылка) = АналитикаКомитента.СтатьяКалькуляции
| И СпрВидыЗапасов.ТипЗапасов = ЗНАЧЕНИЕ(Перечисление.ТипыЗапасов.КомиссионныйТовар)
|
| ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.АналитикаУчетаПоПартнерам КАК АналитикаРасчетовСКомитентом
| ПО АналитикаРасчетовСКомитентом.Организация = &Организация
| И АналитикаРасчетовСКомитентом.Партнер = СпрВидыЗапасов.ВладелецТовара
| И АналитикаРасчетовСКомитентом.Контрагент = СпрВидыЗапасов.Контрагент
| И АналитикаРасчетовСКомитентом.Договор = СпрВидыЗапасов.Договор
| И АналитикаРасчетовСКомитентом.НаправлениеДеятельности = ЗНАЧЕНИЕ(Справочник.НаправленияДеятельности.ПустаяСсылка)
| И СпрВидыЗапасов.ТипЗапасов = ЗНАЧЕНИЕ(Перечисление.ТипыЗапасов.КомиссионныйТовар)
|
| ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.АналитикаУчетаПоПартнерам КАК АналитикаРасчетовИнтеркампани
| ПО АналитикаРасчетовИнтеркампани.Организация = &Организация
| И АналитикаРасчетовИнтеркампани.Партнер = ЗНАЧЕНИЕ(Справочник.Партнеры.НашеПредприятие)
| И АналитикаРасчетовИнтеркампани.Контрагент = СпрВидыЗапасов.Контрагент
| И АналитикаРасчетовИнтеркампани.Договор = СпрВидыЗапасов.Договор
| И АналитикаРасчетовИнтеркампани.НаправлениеДеятельности = ЗНАЧЕНИЕ(Справочник.НаправленияДеятельности.ПустаяСсылка)
| И СпрВидыЗапасов.ТипЗапасов = ЗНАЧЕНИЕ(Перечисление.ТипыЗапасов.КомиссионныйТовар)
|";
ТекстыЗапроса.Добавить(ТекстЗапроса, ИмяРегистра);
Возврат ТекстЗапроса;
КонецФункции
Функция ТекстЗапросаТаблицаВтИсходныеПрочиеРасходы(Запрос, ТекстыЗапроса)
ИмяРегистра = "ВтИсходныеПрочиеРасходы";
Если НЕ ПроведениеДокументов.ЕстьТаблицаЗапроса("ВтВидыЗапасов", ТекстыЗапроса) Тогда
ТекстЗапросаВтВидыЗапасов(Запрос, ТекстыЗапроса);
КонецЕсли;
ТекстЗапроса =
"ВЫБРАТЬ
| &Дата КАК Период,
| ЗНАЧЕНИЕ(ВидДвиженияНакопления.Приход) КАК ВидДвижения,
| ВтВидыЗапасов.Организация КАК Организация,
| ВтВидыЗапасов.ПодразделениеПолучательРасходов КАК Подразделение,
| ВтВидыЗапасов.СтатьяРасходов КАК СтатьяРасходов,
| ВтВидыЗапасов.АналитикаРасходов КАК АналитикаРасходов,
| &НаправлениеДеятельности КАК НаправлениеДеятельности,
| НЕОПРЕДЕЛЕНО КАК ВидДеятельностиНДС,
| ВтВидыЗапасов.Сумма КАК СуммаСНДС,
| ВтВидыЗапасов.Сумма КАК СуммаБезНДС,
| ВтВидыЗапасов.СуммаУпр КАК СуммаБезНДСУпр,
| ВтВидыЗапасов.СуммаРегл КАК СуммаСНДСРегл,
| ВтВидыЗапасов.СуммаРегл КАК СуммаБезНДСРегл,
| 0 КАК ПостояннаяРазница,
| 0 КАК ВременнаяРазница,
| ВЫБОР
| КОГДА ВтВидыЗапасов.ХозяйственнаяОперация = ЗНАЧЕНИЕ(Перечисление.ХозяйственныеОперации.ВыпускПродукцииФиксированнаяСтоимость)
| ТОГДА ЗНАЧЕНИЕ(Перечисление.ХозяйственныеОперации.СписаниеНаРасходыФиксированнаяСтоимость)
| ИНАЧЕ ЗНАЧЕНИЕ(Перечисление.ХозяйственныеОперации.СписаниеТоваровПоТребованию)
| КОНЕЦ КАК ХозяйственнаяОперация,
| ВтВидыЗапасов.АналитикаУчетаНоменклатурыПоПолучателю КАК АналитикаУчетаНоменклатуры,
|
| ВтВидыЗапасов.ИдентификаторФинЗаписи КАК ИдентификаторФинЗаписи,
| ЗНАЧЕНИЕ(Справочник.НастройкиХозяйственныхОпераций.СписаниеТоваровПоТребованию) КАК НастройкаХозяйственнойОперации
|
|ПОМЕСТИТЬ ВтИсходныеПрочиеРасходы
|ИЗ
| ВтВидыЗапасов КАК ВтВидыЗапасов
|ГДЕ
| втВидыЗапасов.НаправлениеВыпуска = ЗНАЧЕНИЕ(Перечисление.ХозяйственныеОперации.СписаниеТоваровПоТребованию)
| И ВтВидыЗапасов.СтатьяРасходов ССЫЛКА ПланВидовХарактеристик.СтатьиРасходов
| И НЕ ВтВидыЗапасов.Сумма = 0
|";
ТекстыЗапроса.Добавить(ТекстЗапроса, ИмяРегистра);
Возврат ТекстЗапроса;
КонецФункции
Функция ТекстЗапросаТаблицаВтПрочиеРасходы(Запрос, ТекстыЗапроса) Экспорт
ИмяРегистра = "ВтПрочиеРасходы";
Если Не ПроведениеДокументов.ЕстьТаблицаЗапроса("ВтИсходныеПрочиеРасходы", ТекстыЗапроса) Тогда
ТекстЗапросаТаблицаВтИсходныеПрочиеРасходы(Запрос, ТекстыЗапроса);
КонецЕсли;
ТекстЗапроса = РегистрыНакопления.ПрочиеРасходы.ТекстЗапросаТаблицаВтПрочиеРасходы();
ТекстыЗапроса.Добавить(ТекстЗапроса, ИмяРегистра);
Возврат ТекстЗапроса;
КонецФункции
Функция ТекстЗапросаТаблицаВтИсходныеПартииПрочихРасходов(Запрос, ТекстыЗапроса)
ИмяРегистра = "ВтИсходныеПартииПрочихРасходов";
Если НЕ ПроведениеДокументов.ЕстьТаблицаЗапроса("ВтВидыЗапасов", ТекстыЗапроса) Тогда
ТекстЗапросаВтВидыЗапасов(Запрос, ТекстыЗапроса);
КонецЕсли;
ТекстЗапроса = "
|ВЫБРАТЬ
| &Дата КАК Период,
| ЗНАЧЕНИЕ(ВидДвиженияНакопления.Приход) КАК ВидДвижения,
| ВтВидыЗапасов.Организация КАК Организация,
| ВтВидыЗапасов.ПодразделениеПолучательРасходов КАК Подразделение,
| &Ссылка КАК ДокументПоступленияРасходов,
| ВтВидыЗапасов.СтатьяРасходов КАК СтатьяРасходов,
| ВтВидыЗапасов.АналитикаРасходов КАК АналитикаРасходов,
| НЕОПРЕДЕЛЕНО КАК АналитикаАктивовПассивов,
| ВтВидыЗапасов.АналитикаУчетаПартий КАК АналитикаУчетаПартий,
| &НаправлениеДеятельности КАК НаправлениеДеятельности,
| НЕОПРЕДЕЛЕНО КАК АналитикаУчетаНоменклатуры,
| ВтВидыЗапасов.ВидДеятельностиНДС КАК ВидДеятельностиНДС,
|
| ВтВидыЗапасов.Сумма КАК Стоимость,
| ВтВидыЗапасов.Сумма КАК СтоимостьБезНДС,
| ВтВидыЗапасов.СуммаРегл КАК СтоимостьРегл,
| 0 КАК ПостояннаяРазница,
| 0 КАК ВременнаяРазница,
| 0 КАК НДСРегл,
| 0 КАК НДСУпр,
|
| ЗНАЧЕНИЕ(Перечисление.ХозяйственныеОперации.ВыпускПродукцииФиксированнаяСтоимость) КАК ХозяйственнаяОперация,
| ВтВидыЗапасов.ИдентификаторСтроки КАК ИдентификаторСтроки,
| ВтВидыЗапасов.ИдентификаторФинЗаписи КАК ИдентификаторФинЗаписи,
| ЗНАЧЕНИЕ(Справочник.НастройкиХозяйственныхОпераций.СписаниеТоваровПоТребованию) КАК НастройкаХозяйственнойОперации
|
|ПОМЕСТИТЬ ВтИсходныеПартииПрочихРасходов
|ИЗ
| ВтВидыЗапасов КАК ВтВидыЗапасов
|ГДЕ
| втВидыЗапасов.НаправлениеВыпуска = ЗНАЧЕНИЕ(Перечисление.ХозяйственныеОперации.СписаниеТоваровПоТребованию)
| И ВтВидыЗапасов.СтатьяРасходов ССЫЛКА ПланВидовХарактеристик.СтатьиРасходов
| И НЕ ВтВидыЗапасов.Сумма = 0
|";
ТекстыЗапроса.Добавить(ТекстЗапроса, ИмяРегистра);
Возврат ТекстЗапроса;
КонецФункции
Функция ТекстЗапросаТаблицаВтПартииПрочихРасходов(Запрос, ТекстыЗапроса)
ИмяРегистра = "ВтПартииПрочихРасходов";
Если Не ПроведениеДокументов.ЕстьТаблицаЗапроса("ВтИсходныеПартииПрочихРасходов", ТекстыЗапроса) Тогда
ТекстЗапросаТаблицаВтИсходныеПартииПрочихРасходов(Запрос, ТекстыЗапроса);
КонецЕсли;
ТекстЗапроса = РегистрыНакопления.ПартииПрочихРасходов.ТекстЗапросаТаблицаВтПартииПрочихРасходов();
ТекстыЗапроса.Добавить(ТекстЗапроса, ИмяРегистра);
Возврат ТекстЗапроса;
КонецФункции
#Область ИсправлениеДокументов
Функция ТекстЗапросаТаблицаТрудозатратыСИсправлением(Запрос, ТекстыЗапроса) Экспорт
ИмяРегистра = "ТрудозатратыСИсправлением";
ТекстЗапроса =
"ВЫБРАТЬ
| СпрПартииПроизводства.Ссылка КАК ПартияПроизводства,
| ТаблицаТрудозатраты.Ссылка КАК Распоряжение,
| ТаблицаТрудозатраты.ВидРабот КАК ВидРабот,
| ТаблицаТрудозатраты.Исполнитель КАК Исполнитель,
| ТаблицаТрудозатраты.Подразделение КАК Подразделение,
| ТаблицаТрудозатраты.КодСтроки КАК КодСтрокиРаспоряжения,
| ТаблицаТрудозатраты.Количество КАК Количество,
| ЛОЖЬ КАК Сторно
|ПОМЕСТИТЬ ТрудозатратыСИсправлением
|ИЗ
| Документ.ПроизводствоБезЗаказа.Трудозатраты КАК ТаблицаТрудозатраты
|
| ЛЕВОЕ СОЕДИНЕНИЕ Справочник.ПартииПроизводства КАК СпрПартииПроизводства
| ПО СпрПартииПроизводства.Документ = &ДокументПартии
| И СпрПартииПроизводства.Код = ТаблицаТрудозатраты.НомерГруппыЗатрат
| И НЕ СпрПартииПроизводства.ПометкаУдаления
|
|ГДЕ
| ТаблицаТрудозатраты.Ссылка = &Ссылка
| И &РаспоряжениеДляТрудозатрат
|
|ОБЪЕДИНИТЬ ВСЕ
|
|ВЫБРАТЬ
| СпрПартииПроизводства.Ссылка КАК ПартияПроизводства,
| ТаблицаТрудозатраты.Ссылка КАК Распоряжение,
| ТаблицаТрудозатраты.ВидРабот КАК ВидРабот,
| ТаблицаТрудозатраты.Исполнитель КАК Исполнитель,
| ТаблицаТрудозатраты.Подразделение КАК Подразделение,
| ТаблицаТрудозатраты.КодСтроки КАК КодСтрокиРаспоряжения,
| -ТаблицаТрудозатраты.Количество КАК Количество,
| ИСТИНА КАК Сторно
|ИЗ
| Документ.ПроизводствоБезЗаказа КАК РеквизитыДокумента
|
| ВНУТРЕННЕЕ СОЕДИНЕНИЕ Документ.ПроизводствоБезЗаказа.Трудозатраты КАК ТаблицаТрудозатраты
| ПО ТаблицаТрудозатраты.Ссылка = РеквизитыДокумента.СторнируемыйДокумент
|
| ЛЕВОЕ СОЕДИНЕНИЕ Справочник.ПартииПроизводства КАК СпрПартииПроизводства
| ПО СпрПартииПроизводства.Документ = &ДокументПартии
| И СпрПартииПроизводства.Код = ТаблицаТрудозатраты.НомерГруппыЗатрат
| И НЕ СпрПартииПроизводства.ПометкаУдаления
|
|ГДЕ
| &ИспользоватьИсправлениеДокументов
| И РеквизитыДокумента.Ссылка = &Ссылка
| И &РаспоряжениеДляТрудозатрат
| И &Исправление
| И &ИсправлениеСохраняетПартииПроизводства
|
|ИНДЕКСИРОВАТЬ ПО
| ПартияПроизводства,
| ВидРабот,
| Исполнитель,
| Подразделение
|";
ТекстыЗапроса.Добавить(ТекстЗапроса, ИмяРегистра);
Возврат ТекстЗапроса;
КонецФункции
Функция ТекстЗапросаТаблицаТрудозатратыИзменения(Запрос, ТекстыЗапроса) Экспорт
ИмяРегистра = "ТрудозатратыИзменения";
Если НЕ ПроведениеДокументов.ЕстьТаблицаЗапроса("ТрудозатратыСИсправлением", ТекстыЗапроса) Тогда
ТекстЗапросаТаблицаТрудозатратыСИсправлением(Запрос, ТекстыЗапроса)
КонецЕсли;
ТекстЗапроса =
"ВЫБРАТЬ
| ТаблицаТрудозатраты.ПартияПроизводства КАК ПартияПроизводства,
| ТаблицаТрудозатраты.ВидРабот КАК ВидРабот,
| ТаблицаТрудозатраты.Исполнитель КАК Исполнитель,
| ТаблицаТрудозатраты.Подразделение КАК Подразделение,
| СУММА(ТаблицаТрудозатраты.Количество) КАК Количество
|ПОМЕСТИТЬ ТрудозатратыИзменения
|ИЗ
| ТрудозатратыСИсправлением КАК ТаблицаТрудозатраты
|
|СГРУППИРОВАТЬ ПО
| ТаблицаТрудозатраты.ПартияПроизводства,
| ТаблицаТрудозатраты.ВидРабот,
| ТаблицаТрудозатраты.Исполнитель,
| ТаблицаТрудозатраты.Подразделение
|
|ИМЕЮЩИЕ
| НЕ СУММА(ТаблицаТрудозатраты.Количество) = 0
|
|ИНДЕКСИРОВАТЬ ПО
| ПартияПроизводства,
| ВидРабот,
| Исполнитель,
| Подразделение
|";
ТекстыЗапроса.Добавить(ТекстЗапроса, ИмяРегистра);
Возврат ТекстЗапроса;
КонецФункции
#КонецОбласти
#КонецОбласти
Функция ТекстЗапросаТаблицаТоварыОрганизаций(Запрос, ТекстыЗапроса, Регистры)
ИмяРегистра = "ТоварыОрганизаций";
Если НЕ ПроведениеДокументов.ТребуетсяТаблицаДляДвижений(ИмяРегистра, Регистры) Тогда
Возврат "";
КонецЕсли;
Если НЕ ПроведениеДокументов.ЕстьТаблицаЗапроса("ВтВидыЗапасов", ТекстыЗапроса) Тогда
ТекстЗапросаВтВидыЗапасов(Запрос, ТекстыЗапроса);
КонецЕсли;
ТекстЗапроса = "
|ВЫБРАТЬ
| &Дата КАК Период,
| ЗНАЧЕНИЕ(ВидДвиженияНакопления.Приход) КАК ВидДвижения,
| втВидыЗапасов.АналитикаУчетаНоменклатурыПоПолучателю КАК АналитикаУчетаНоменклатуры,
| втВидыЗапасов.Организация КАК Организация,
| втВидыЗапасов.ВидЗапасов КАК ВидЗапасов,
| ЗНАЧЕНИЕ(Справочник.НомераГТД.ПустаяСсылка) КАК НомерГТД,
| втВидыЗапасов.Количество КАК Количество,
| втВидыЗапасов.КоличествоПоРНПТ КАК КоличествоПоРНПТ,
| 0 КАК КОформлениюСписания,
| 0 КАК КОформлениюСписанияПоРНПТ,
| втВидыЗапасов.ХозяйственнаяОперация КАК ХозяйственнаяОперация,
| втВидыЗапасов.ВидДеятельностиНДС КАК НалогообложениеНДС,
| втВидыЗапасов.Номенклатура КАК Номенклатура,
| втВидыЗапасов.Характеристика КАК Характеристика,
| ИСТИНА КАК Первичное
|ИЗ
| втВидыЗапасов КАК втВидыЗапасов
|
|ГДЕ
| втВидыЗапасов.НаправлениеВыпуска = ЗНАЧЕНИЕ(Перечисление.ХозяйственныеОперации.ВыпускПродукцииНаСклад)
| ИЛИ втВидыЗапасов.НаправлениеВыпуска = ЗНАЧЕНИЕ(Перечисление.ХозяйственныеОперации.ВыпускПродукцииВПодразделение)
| И втВидыЗапасов.ПрослеживаемаяРабота
|
|ОБЪЕДИНИТЬ ВСЕ
|
|ВЫБРАТЬ
| &Дата КАК Период,
| ЗНАЧЕНИЕ(ВидДвиженияНакопления.Расход) КАК ВидДвижения,
| втВидыЗапасов.АналитикаУчетаНоменклатурыПоОтправителю КАК АналитикаУчетаНоменклатуры,
| ВЫБОР
| КОГДА втВидыЗапасов.РеализацияЗапасовДругойОрганизации
| ТОГДА втВидыЗапасов.ВидЗапасовВладельца.Организация
| ИНАЧЕ втВидыЗапасов.Организация
| КОНЕЦ КАК Организация,
| ВЫБОР
| КОГДА втВидыЗапасов.РеализацияЗапасовДругойОрганизации
| ТОГДА втВидыЗапасов.ВидЗапасовВладельца
| ИНАЧЕ втВидыЗапасов.ВидЗапасов
| КОНЕЦ КАК ВидЗапасов,
| втВидыЗапасов.НомерГТД КАК НомерГТД,
| втВидыЗапасов.Количество КАК Количество,
| втВидыЗапасов.КоличествоПоРНПТ КАК КоличествоПоРНПТ,
| 0 КАК КОформлениюСписания,
| 0 КАК КОформлениюСписанияПоРНПТ,
| втВидыЗапасов.ХозяйственнаяОперация КАК ХозяйственнаяОперация,
| втВидыЗапасов.ВидДеятельностиНДС КАК НалогообложениеНДС,
| втВидыЗапасов.Номенклатура КАК Номенклатура,
| втВидыЗапасов.Характеристика КАК Характеристика,
| ИСТИНА КАК Первичное
|ИЗ
| втВидыЗапасов КАК втВидыЗапасов
|
|ГДЕ
| втВидыЗапасов.НаправлениеВыпуска = ЗНАЧЕНИЕ(Перечисление.ХозяйственныеОперации.СписаниеРасходовНаПартииПроизводства)
| И НЕ втВидыЗапасов.ХозяйственнаяОперация = ЗНАЧЕНИЕ(Перечисление.ХозяйственныеОперации.ВыпускПродукцииФиксированнаяСтоимость)
| И (НЕ втВидыЗапасов.Работа
| ИЛИ втВидыЗапасов.ПрослеживаемаяРабота)
|";
ТекстыЗапроса.Добавить(ТекстЗапроса, ИмяРегистра);
Возврат ТекстЗапроса;
КонецФункции
Функция ТекстЗапросаТаблицаТоварыОрганизацийКПередаче(Запрос, ТекстыЗапроса, Регистры)
ИмяРегистра = "ТоварыОрганизацийКПередаче";
Если НЕ ПроведениеДокументов.ТребуетсяТаблицаДляДвижений(ИмяРегистра, Регистры) Тогда
Возврат "";
КонецЕсли;
Если НЕ ПроведениеДокументов.ЕстьТаблицаЗапроса("ВтВидыЗапасов", ТекстыЗапроса) Тогда
ТекстЗапросаВтВидыЗапасов(Запрос, ТекстыЗапроса);
КонецЕсли;
ТекстЗапроса =
"ВЫБРАТЬ
| ЗНАЧЕНИЕ(ВидДвиженияНакопления.Приход) КАК ВидДвижения,
| &Дата КАК Период,
| ВтВидыЗапасов.Склад КАК Склад,
| ВтВидыЗапасов.ВидЗапасовВладельца.Организация КАК ОрганизацияВладелец,
| ВтВидыЗапасов.АналитикаУчетаНоменклатурыПоОтправителю КАК АналитикаУчетаНоменклатуры,
| ВтВидыЗапасов.ВидЗапасов КАК ВидЗапасовПродавца,
| втВидыЗапасов.НомерГТД КАК НомерГТД,
| ВтВидыЗапасов.Номенклатура КАК Номенклатура,
| ВтВидыЗапасов.Характеристика КАК Характеристика,
| ВтВидыЗапасов.Количество КАК Количество,
| ВтВидыЗапасов.ХозяйственнаяОперация КАК ХозяйственнаяОперация,
| втВидыЗапасов.ВидДеятельностиНДС КАК НалогообложениеНДС
|ИЗ
| втВидыЗапасов КАК втВидыЗапасов
|ГДЕ
| втВидыЗапасов.РеализацияЗапасовДругойОрганизации
| И втВидыЗапасов.НаправлениеВыпуска =
| ЗНАЧЕНИЕ(Перечисление.ХозяйственныеОперации.СписаниеРасходовНаПартииПроизводства)
| И НЕ втВидыЗапасов.ХозяйственнаяОперация =
| ЗНАЧЕНИЕ(Перечисление.ХозяйственныеОперации.ВыпускПродукцииФиксированнаяСтоимость)
| И НЕ втВидыЗапасов.Работа";
ТекстыЗапроса.Добавить(ТекстЗапроса, ИмяРегистра);
Возврат ТекстЗапроса;
КонецФункции
Процедура ОформитьПоступлениеТоваровПоОдноходовке(Запрос, ТекстыЗапроса, Регистры)
ОформитьПоступлениеТоваровПоОдноходовкеТовары(Запрос, ТекстыЗапроса, Регистры);
ОформитьПоступлениеТоваровПоОдноходовкеВозвратныеОтходы(Запрос, ТекстыЗапроса, Регистры);
КонецПроцедуры
Процедура ОформитьПоступлениеТоваровПоОдноходовкеТовары(Запрос, ТекстыЗапроса, Регистры)
ТекстЗапросаДокумента =
"ВЫБРАТЬ
| ИсточникДанных.Ссылка КАК Ссылка,
| НЕОПРЕДЕЛЕНО КАК Заказ,
| ИсточникДанных.Ссылка КАК Накладная,
| ИсточникДанных.Ссылка.Исправление КАК Исправление,
| ИсточникДанных.Ссылка.ИсправляемыйДокумент КАК ИсправляемыйДокумент,
| НЕОПРЕДЕЛЕНО КАК Договор,
| НЕОПРЕДЕЛЕНО КАК Соглашение,
| ЗНАЧЕНИЕ(Перечисление.ВариантыПриемкиТоваров.РазделенаТолькоПоНакладным) КАК ВариантПриемкиТоваров,
| ИсточникДанных.Ссылка.Дата КАК Дата,
| ИсточникДанных.Номенклатура КАК Номенклатура,
| ИсточникДанных.Характеристика КАК Характеристика,
| ИсточникДанных.Назначение КАК Назначение,
| ИсточникДанных.Серия КАК Серия,
| ИсточникДанных.СтатусУказанияСерий КАК СтатусУказанияСерий,
| ЛОЖЬ КАК СверхЗаказа,
| ИсточникДанных.Получатель КАК Склад,
| ИсточникДанных.Ссылка.Подразделение КАК Отправитель,
| ЗНАЧЕНИЕ(Перечисление.ХозяйственныеОперации.ВыпускПродукции) КАК ХозяйственнаяОперация,
| ИсточникДанных.Количество КАК Количество,
| ИСТИНА КАК ЭтоНакладная,
| ЛОЖЬ КАК ПоступлениеПоЗаказам,
| ЛОЖЬ КАК ЭтоКорректировкаВнутриНакладной
|ИЗ
| Документ.ПроизводствоБезЗаказа.ВыходныеИзделия КАК ИсточникДанных
|ГДЕ
| ИсточникДанных.Ссылка В (&Ссылка)
| И ТИПЗНАЧЕНИЯ(ИсточникДанных.Получатель) = ТИП(Справочник.Склады)
|";
ТекущийОбъектМетаданных = Метаданные.Документы.ПроизводствоБезЗаказа;
ДополнительныеПоляСоединенияССериями = Новый Массив();
ДополнительныеПоляСоединенияССериями.Добавить("Получатель");
ПараметрыМодульногоПроведения = СкладыСервер.ПараметрыМодульногоПроведения();
ПараметрыМодульногоПроведения.ИмяТЧСерии = "ВыходныеИзделияСерии";
ПараметрыМодульногоПроведения.ДополнительныеПоляСоединенияССериями = ДополнительныеПоляСоединенияССериями;
СкладыСервер.ОформитьПоступлениеТоваровПоОдноходовкеСНастройкойСоединенияСерий(Запрос,
ТекстыЗапроса,
Регистры,
ТекстЗапросаДокумента,
ТекущийОбъектМетаданных,
ПараметрыМодульногоПроведения);
КонецПроцедуры
Процедура ОформитьПоступлениеТоваровПоОдноходовкеВозвратныеОтходы(Запрос, ТекстыЗапроса, Регистры)
ТекстЗапросаДокумента =
"ВЫБРАТЬ
| ИсточникДанных.Ссылка КАК Ссылка,
| НЕОПРЕДЕЛЕНО КАК Заказ,
| ИсточникДанных.Ссылка КАК Накладная,
| ИсточникДанных.Ссылка.Исправление КАК Исправление,
| ИсточникДанных.Ссылка.ИсправляемыйДокумент КАК ИсправляемыйДокумент,
| НЕОПРЕДЕЛЕНО КАК Договор,
| НЕОПРЕДЕЛЕНО КАК Соглашение,
| ЗНАЧЕНИЕ(Перечисление.ВариантыПриемкиТоваров.РазделенаТолькоПоНакладным) КАК ВариантПриемкиТоваров,
| ИсточникДанных.Ссылка.Дата КАК Дата,
| ИсточникДанных.Номенклатура КАК Номенклатура,
| ИсточникДанных.Характеристика КАК Характеристика,
| ИсточникДанных.Назначение КАК Назначение,
| ИсточникДанных.Серия КАК Серия,
| ИсточникДанных.СтатусУказанияСерий КАК СтатусУказанияСерий,
| ЛОЖЬ КАК СверхЗаказа,
| ИсточникДанных.Получатель КАК Склад,
| ИсточникДанных.Ссылка.Подразделение КАК Отправитель,
| ЗНАЧЕНИЕ(Перечисление.ХозяйственныеОперации.ВыпускПродукции) КАК ХозяйственнаяОперация,
| ИсточникДанных.Количество КАК Количество,
| ИСТИНА КАК ЭтоНакладная,
| ЛОЖЬ КАК ПоступлениеПоЗаказам,
| ЛОЖЬ КАК ЭтоКорректировкаВнутриНакладной
|ИЗ
| Документ.ПроизводствоБезЗаказа.ПобочныеИзделия КАК ИсточникДанных
|ГДЕ
| ИсточникДанных.Ссылка В (&Ссылка)
| И ТИПЗНАЧЕНИЯ(ИсточникДанных.Получатель) = ТИП(Справочник.Склады)
|";
ТекущийОбъектМетаданных = Метаданные.Документы.ПроизводствоБезЗаказа;
ДополнительныеПоляСоединенияССериями = Новый Массив();
ДополнительныеПоляСоединенияССериями.Добавить("Получатель");
ПараметрыМодульногоПроведения = СкладыСервер.ПараметрыМодульногоПроведения();
ПараметрыМодульногоПроведения.ИмяТЧСерии = "ПобочныеИзделияСерии";
ПараметрыМодульногоПроведения.ДополнительныеПоляСоединенияССериями = ДополнительныеПоляСоединенияССериями;
СкладыСервер.ОформитьПоступлениеТоваровПоОдноходовкеСНастройкойСоединенияСерий(Запрос,
ТекстыЗапроса,
Регистры,
ТекстЗапросаДокумента,
ТекущийОбъектМетаданных,
ПараметрыМодульногоПроведения);
КонецПроцедуры
Функция ТекстЗапросаТаблицаМатериалыИРаботыВПроизводстве(Запрос, ТекстыЗапроса, Регистры)
ИмяРегистра = "МатериалыИРаботыВПроизводстве";
Если НЕ ПроведениеДокументов.ТребуетсяТаблицаДляДвижений(ИмяРегистра, Регистры) Тогда
Возврат "";
КонецЕсли;
ТекстЗапроса =
"ВЫБРАТЬ
| &Дата КАК Период,
| ЗНАЧЕНИЕ(ВидДвиженияНакопления.Приход) КАК ВидДвижения,
| ВЫБОР
| КОГДА ИСТИНА
| ТОГДА &Организация
| КОНЕЦ КАК Организация,
| ВыходныеИзделия.Получатель КАК Подразделение,
| ВыходныеИзделия.Номенклатура КАК Номенклатура,
| ВыходныеИзделия.Характеристика КАК Характеристика,
| ВыходныеИзделия.Назначение КАК Назначение,
| ВыходныеИзделия.Количество КАК Количество
|ИЗ
| Документ.ПроизводствоБезЗаказа.ВыходныеИзделия КАК ВыходныеИзделия
|ГДЕ
| ВыходныеИзделия.Ссылка = &Ссылка
| И ВыходныеИзделия.НаправлениеВыпуска = ЗНАЧЕНИЕ(Перечисление.ХозяйственныеОперации.ВыпускПродукцииВПодразделение)
| И НЕ ВыходныеИзделия.Номенклатура.ПрослеживаемыйТовар
|
|ОБЪЕДИНИТЬ ВСЕ
|ВЫБРАТЬ
| &Дата КАК Период,
| ЗНАЧЕНИЕ(ВидДвиженияНакопления.Приход) КАК ВидДвижения,
| ВЫБОР
| КОГДА ИСТИНА
| ТОГДА &Организация
| КОНЕЦ КАК Организация,
| ПобочныеРаботы.Получатель КАК Подразделение,
| ПобочныеРаботы.Номенклатура КАК Номенклатура,
| ПобочныеРаботы.Характеристика КАК Характеристика,
| ПобочныеРаботы.Назначение КАК Назначение,
| ПобочныеРаботы.Количество КАК Количество
|ИЗ
| Документ.ПроизводствоБезЗаказа.ПобочныеИзделия КАК ПобочныеРаботы
|
|ГДЕ
| ПобочныеРаботы.Ссылка = &Ссылка
| И ПобочныеРаботы.НаправлениеВыпуска = ЗНАЧЕНИЕ(Перечисление.ХозяйственныеОперации.ВыпускПродукцииВПодразделение)
| И НЕ ПобочныеРаботы.Номенклатура.ПрослеживаемыйТовар
|
|ОБЪЕДИНИТЬ ВСЕ
|
|ВЫБРАТЬ
| &Дата КАК Период,
| ЗНАЧЕНИЕ(ВидДвиженияНакопления.Расход) КАК ВидДвижения,
| &Организация КАК Организация,
| РасходРабот.Подразделение КАК Подразделение,
| РасходРабот.Номенклатура КАК Номенклатура,
| РасходРабот.Характеристика КАК Характеристика,
| РасходРабот.Назначение КАК Назначение,
| РасходРабот.Количество КАК Количество
|ИЗ
| Документ.ПроизводствоБезЗаказа.МатериалыИРаботы КАК РасходРабот
| ВНУТРЕННЕЕ СОЕДИНЕНИЕ Справочник.Номенклатура КАК СпрНоменклатура
| ПО РасходРабот.Номенклатура = СпрНоменклатура.Ссылка
| И СпрНоменклатура.ТипНоменклатуры = ЗНАЧЕНИЕ(Перечисление.ТипыНоменклатуры.Работа)
| И НЕ СпрНоменклатура.ПрослеживаемыйТовар
|ГДЕ
| РасходРабот.Ссылка = &Ссылка
|";
ТекстыЗапроса.Добавить(ТекстЗапроса, ИмяРегистра);
Возврат ТекстЗапроса;
КонецФункции
Функция ТекстЗапросаТаблицаВыпускПродукции(Запрос, ТекстыЗапроса, Регистры)
ИмяРегистра = "ВыпускПродукции";
Если НЕ ПроведениеДокументов.ТребуетсяТаблицаДляДвижений(ИмяРегистра, Регистры) Тогда
Возврат "";
КонецЕсли;
ИнициализироватьКлючиАналитикиНоменклатуры(Запрос);
ТекстЗапроса =
"ВЫБРАТЬ
| ВЫБОР
| КОГДА ИСТИНА
| ТОГДА &Организация
| КОНЕЦ КАК Организация,
| &Подразделение КАК Подразделение,
| &Дата КАК Период,
| ВЫБОР
| КОГДА &УчитыватьСебестоимостьТоваровПоНазначениям
| И ТИПЗНАЧЕНИЯ(ТабличнаяЧасть.Получатель) = ТИП(Справочник.Склады)
| И НЕ ВЫРАЗИТЬ(ТабличнаяЧасть.Получатель КАК Справочник.Склады).ЦеховаяКладовая
| ТОГДА КлючиАналитикиОтправителя.КлючАналитики
| КОГДА &УчитыватьСебестоимостьТоваровПоНазначениям
| ТОГДА ТабличнаяЧасть.АналитикаУчетаНоменклатуры
| КОГДА НЕ &УчитыватьСебестоимостьТоваровПоНазначениям
| И ТИПЗНАЧЕНИЯ(ТабличнаяЧасть.Получатель) = ТИП(Справочник.Склады)
| И НЕ ВЫРАЗИТЬ(ТабличнаяЧасть.Получатель КАК Справочник.Склады).ЦеховаяКладовая
| ТОГДА КлючиАналитикиОтправителяБезНазначения.КлючАналитики
| ИНАЧЕ КлючиАналитикиПолучателяБезНазначения.КлючАналитики
| КОНЕЦ КАК АналитикаУчетаНоменклатуры,
| ТабличнаяЧасть.Количество КАК Количество,
| ВЫБОР
| КОГДА ТабличнаяЧасть.Получатель ССЫЛКА ПланВидовХарактеристик.СтатьиРасходов
| ИЛИ ТабличнаяЧасть.Получатель ССЫЛКА ПланВидовХарактеристик.СтатьиАктивовПассивов
| ТОГДА ТабличнаяЧасть.Получатель
| ИНАЧЕ НЕОПРЕДЕЛЕНО
| КОНЕЦ КАК СтатьяРасходов,
| ТабличнаяЧасть.АналитикаРасходов КАК АналитикаРасходов,
| ТабличнаяЧасть.АналитикаАктивовПассивов КАК АналитикаАктивовПассивов
|ИЗ
| Документ.ПроизводствоБезЗаказа.ВыходныеИзделия КАК ТабличнаяЧасть
| ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.АналитикаУчетаНоменклатуры КАК КлючиАналитикиПолучателяБезНазначения
| ПО ТабличнаяЧасть.АналитикаУчетаНоменклатуры.Номенклатура = КлючиАналитикиПолучателяБезНазначения.Номенклатура
| И ТабличнаяЧасть.АналитикаУчетаНоменклатуры.Характеристика = КлючиАналитикиПолучателяБезНазначения.Характеристика
| И ЗНАЧЕНИЕ(Справочник.Назначения.ПустаяСсылка) = КлючиАналитикиПолучателяБезНазначения.Назначение
| И ТабличнаяЧасть.АналитикаУчетаНоменклатуры.Серия = КлючиАналитикиПолучателяБезНазначения.Серия
| И ТабличнаяЧасть.АналитикаУчетаНоменклатуры.МестоХранения = КлючиАналитикиПолучателяБезНазначения.МестоХранения
| И ТабличнаяЧасть.АналитикаУчетаНоменклатуры.СтатьяКалькуляции = КлючиАналитикиПолучателяБезНазначения.СтатьяКалькуляции
|
| ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.АналитикаУчетаНоменклатуры КАК КлючиАналитикиОтправителя
| ПО ТабличнаяЧасть.АналитикаУчетаНоменклатуры.Номенклатура = КлючиАналитикиОтправителя.Номенклатура
| И ТабличнаяЧасть.АналитикаУчетаНоменклатуры.Характеристика = КлючиАналитикиОтправителя.Характеристика
| И ТабличнаяЧасть.АналитикаУчетаНоменклатуры.Серия = КлючиАналитикиОтправителя.Серия
| И &Подразделение = КлючиАналитикиОтправителя.МестоХранения
| И ТабличнаяЧасть.АналитикаУчетаНоменклатуры.Назначение = КлючиАналитикиОтправителя.Назначение
| И ТабличнаяЧасть.АналитикаУчетаНоменклатуры.СтатьяКалькуляции = КлючиАналитикиОтправителя.СтатьяКалькуляции
|
| ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.АналитикаУчетаНоменклатуры КАК КлючиАналитикиОтправителяБезНазначения
| ПО КлючиАналитикиОтправителя.Номенклатура = КлючиАналитикиОтправителяБезНазначения.Номенклатура
| И КлючиАналитикиОтправителя.Характеристика = КлючиАналитикиОтправителяБезНазначения.Характеристика
| И ЗНАЧЕНИЕ(Справочник.Назначения.ПустаяСсылка) = КлючиАналитикиОтправителяБезНазначения.Назначение
| И КлючиАналитикиОтправителя.Серия = КлючиАналитикиОтправителяБезНазначения.Серия
| И КлючиАналитикиОтправителя.МестоХранения = КлючиАналитикиОтправителяБезНазначения.МестоХранения
| И КлючиАналитикиОтправителя.СтатьяКалькуляции = КлючиАналитикиОтправителяБезНазначения.СтатьяКалькуляции
|
|ГДЕ
| ТабличнаяЧасть.Ссылка = &Ссылка
|
|ОБЪЕДИНИТЬ ВСЕ
|
|ВЫБРАТЬ
| ВЫБОР
| КОГДА ИСТИНА
| ТОГДА &Организация
| КОНЕЦ КАК Организация,
| &Подразделение КАК Подразделение,
| &Дата КАК Период,
| ВЫБОР
| КОГДА &УчитыватьСебестоимостьТоваровПоНазначениям
| И ТИПЗНАЧЕНИЯ(ТабличнаяЧасть.Получатель) = ТИП(Справочник.Склады)
| И НЕ ВЫРАЗИТЬ(ТабличнаяЧасть.Получатель КАК Справочник.Склады).ЦеховаяКладовая
| ТОГДА КлючиАналитикиОтправителя.КлючАналитики
| КОГДА &УчитыватьСебестоимостьТоваровПоНазначениям
| ТОГДА ТабличнаяЧасть.АналитикаУчетаНоменклатуры
| КОГДА НЕ &УчитыватьСебестоимостьТоваровПоНазначениям
| И ТИПЗНАЧЕНИЯ(ТабличнаяЧасть.Получатель) = ТИП(Справочник.Склады)
| И НЕ ВЫРАЗИТЬ(ТабличнаяЧасть.Получатель КАК Справочник.Склады).ЦеховаяКладовая
| ТОГДА КлючиАналитикиОтправителяБезНазначения.КлючАналитики
| ИНАЧЕ КлючиАналитикиПолучателяБезНазначения.КлючАналитики
| КОНЕЦ КАК АналитикаУчетаНоменклатуры,
| ТабличнаяЧасть.Количество КАК Количество,
| ВЫБОР
| КОГДА ТабличнаяЧасть.Получатель ССЫЛКА ПланВидовХарактеристик.СтатьиРасходов
| ИЛИ ТабличнаяЧасть.Получатель ССЫЛКА ПланВидовХарактеристик.СтатьиАктивовПассивов
| ТОГДА ТабличнаяЧасть.Получатель
| ИНАЧЕ НЕОПРЕДЕЛЕНО
| КОНЕЦ КАК СтатьяРасходов,
| ТабличнаяЧасть.АналитикаРасходов КАК АналитикаРасходов,
| ТабличнаяЧасть.АналитикаАктивовПассивов КАК АналитикаАктивовПассивов
|ИЗ
| Документ.ПроизводствоБезЗаказа.ПобочныеИзделия КАК ТабличнаяЧасть
| ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.АналитикаУчетаНоменклатуры КАК КлючиАналитикиПолучателяБезНазначения
| ПО ТабличнаяЧасть.АналитикаУчетаНоменклатуры.Номенклатура = КлючиАналитикиПолучателяБезНазначения.Номенклатура
| И ТабличнаяЧасть.АналитикаУчетаНоменклатуры.Характеристика = КлючиАналитикиПолучателяБезНазначения.Характеристика
| И ЗНАЧЕНИЕ(Справочник.Назначения.ПустаяСсылка) = КлючиАналитикиПолучателяБезНазначения.Назначение
| И ТабличнаяЧасть.АналитикаУчетаНоменклатуры.Серия = КлючиАналитикиПолучателяБезНазначения.Серия
| И ТабличнаяЧасть.АналитикаУчетаНоменклатуры.МестоХранения = КлючиАналитикиПолучателяБезНазначения.МестоХранения
| И ТабличнаяЧасть.АналитикаУчетаНоменклатуры.СтатьяКалькуляции = КлючиАналитикиПолучателяБезНазначения.СтатьяКалькуляции
|
| ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.АналитикаУчетаНоменклатуры КАК КлючиАналитикиОтправителя
| ПО ТабличнаяЧасть.АналитикаУчетаНоменклатуры.Номенклатура = КлючиАналитикиОтправителя.Номенклатура
| И ТабличнаяЧасть.АналитикаУчетаНоменклатуры.Характеристика = КлючиАналитикиОтправителя.Характеристика
| И ТабличнаяЧасть.АналитикаУчетаНоменклатуры.Серия = КлючиАналитикиОтправителя.Серия
| И &Подразделение = КлючиАналитикиОтправителя.МестоХранения
| И ТабличнаяЧасть.АналитикаУчетаНоменклатуры.Назначение = КлючиАналитикиОтправителя.Назначение
| И ТабличнаяЧасть.АналитикаУчетаНоменклатуры.СтатьяКалькуляции = КлючиАналитикиОтправителя.СтатьяКалькуляции
|
| ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.АналитикаУчетаНоменклатуры КАК КлючиАналитикиОтправителяБезНазначения
| ПО КлючиАналитикиОтправителя.Номенклатура = КлючиАналитикиОтправителяБезНазначения.Номенклатура
| И КлючиАналитикиОтправителя.Характеристика = КлючиАналитикиОтправителяБезНазначения.Характеристика
| И ЗНАЧЕНИЕ(Справочник.Назначения.ПустаяСсылка) = КлючиАналитикиОтправителяБезНазначения.Назначение
| И КлючиАналитикиОтправителя.Серия = КлючиАналитикиОтправителяБезНазначения.Серия
| И ТабличнаяЧасть.АналитикаУчетаНоменклатуры.МестоХранения = КлючиАналитикиОтправителяБезНазначения.МестоХранения
| И КлючиАналитикиОтправителя.СтатьяКалькуляции = КлючиАналитикиОтправителяБезНазначения.СтатьяКалькуляции
|
|ГДЕ
| ТабличнаяЧасть.Ссылка = &Ссылка
|";
ТекстыЗапроса.Добавить(ТекстЗапроса, ИмяРегистра);
Возврат ТекстЗапроса;
КонецФункции
Функция ТекстЗапросаТаблицаДвиженияСерийТоваров(Запрос, ТекстыЗапроса, Регистры)
ИмяРегистра = "ДвиженияСерийТоваров";
Если НЕ ПроведениеДокументов.ТребуетсяТаблицаДляДвижений(ИмяРегистра, Регистры) Тогда
Возврат "";
КонецЕсли;
ТекстЗапроса = "
|ВЫБРАТЬ
| &Дата КАК Период,
| ТаблицаТовары.Номенклатура КАК Номенклатура,
| ТаблицаТовары.Характеристика КАК Характеристика,
| ВЫБОР
| КОГДА ЕСТЬNULL(ТаблицаТовары.Назначение.ДвиженияПоСкладскимРегистрам, ЛОЖЬ)
| ТОГДА ТаблицаТовары.Назначение
| ИНАЧЕ ЗНАЧЕНИЕ(Справочник.Назначения.ПустаяСсылка)
| КОНЕЦ КАК Назначение,
| ТаблицаТовары.Серия КАК Серия,
| ТаблицаТовары.Количество КАК Количество,
| ТаблицаТовары.Склад КАК Отправитель,
| СпрСклады.Подразделение КАК Получатель,
| ЗНАЧЕНИЕ(Перечисление.СкладскиеОперации.ПотреблениеМатериаловПриПроизводстве) КАК СкладскаяОперация,
| &Ссылка КАК Документ,
| НЕ СпрСклады.ИспользоватьОрдернуюСхемуПриОтгрузке
| ИЛИ &Дата < СпрСклады.ДатаНачалаОрдернойСхемыПриОтгрузке КАК ЭтоСкладскоеДвижение
|ИЗ
| Документ.ПроизводствоБезЗаказа.МатериалыИРаботы КАК ТаблицаТовары
| ВНУТРЕННЕЕ СОЕДИНЕНИЕ Справочник.Склады КАК СпрСклады
| ПО СпрСклады.Ссылка = ТаблицаТовары.Склад
|ГДЕ
| ТаблицаТовары.Ссылка = &Ссылка
| И НЕ ТаблицаТовары.Серия = ЗНАЧЕНИЕ(Справочник.СерииНоменклатуры.ПустаяСсылка)
|
|ОБЪЕДИНИТЬ ВСЕ
|ВЫБРАТЬ
| &Дата КАК Период,
| ТаблицаТовары.Номенклатура КАК Номенклатура,
| ТаблицаТовары.Характеристика КАК Характеристика,
| ВЫБОР
| КОГДА ЕСТЬNULL(ТаблицаТовары.Назначение.ДвиженияПоСкладскимРегистрам, ЛОЖЬ)
| ТОГДА ТаблицаТовары.Назначение
| ИНАЧЕ ЗНАЧЕНИЕ(Справочник.Назначения.ПустаяСсылка)
| КОНЕЦ КАК Назначение,
| ТаблицаТовары.Серия КАК Серия,
| ТаблицаТовары.Количество КАК Количество,
| ТаблицаТовары.Получатель КАК Отправитель,
| ТаблицаТовары.Получатель КАК Получатель,
| ЗНАЧЕНИЕ(Перечисление.СкладскиеОперации.ПроизводствоПродукции) КАК СкладскаяОперация,
| &Ссылка КАК Документ,
| НЕ СпрСклады.ИспользоватьОрдернуюСхемуПриПоступлении
| ИЛИ &Дата < СпрСклады.ДатаНачалаОрдернойСхемыПриПоступлении КАК ЭтоСкладскоеДвижение
|ИЗ
| Документ.ПроизводствоБезЗаказа.ВыходныеИзделия КАК ТаблицаТовары
| ВНУТРЕННЕЕ СОЕДИНЕНИЕ Справочник.Склады КАК СпрСклады
| ПО СпрСклады.Ссылка = ТаблицаТовары.Получатель
|ГДЕ
| ТаблицаТовары.Ссылка = &Ссылка
| И НЕ ТаблицаТовары.Серия = ЗНАЧЕНИЕ(Справочник.СерииНоменклатуры.ПустаяСсылка)
|
|ОБЪЕДИНИТЬ ВСЕ
|ВЫБРАТЬ
| &Дата КАК Период,
| ТаблицаТовары.Номенклатура КАК Номенклатура,
| ТаблицаТовары.Характеристика КАК Характеристика,
| ВЫБОР
| КОГДА ЕСТЬNULL(ТаблицаТовары.Назначение.ДвиженияПоСкладскимРегистрам, ЛОЖЬ)
| ТОГДА ТаблицаТовары.Назначение
| ИНАЧЕ ЗНАЧЕНИЕ(Справочник.Назначения.ПустаяСсылка)
| КОНЕЦ КАК Назначение,
| ТаблицаТовары.Серия КАК Серия,
| ТаблицаТовары.Количество КАК Количество,
| ТаблицаТовары.Получатель КАК Отправитель,
| ТаблицаТовары.Получатель КАК Получатель,
| ЗНАЧЕНИЕ(Перечисление.СкладскиеОперации.ПроизводствоПродукции) КАК СкладскаяОперация,
| &Ссылка КАК Документ,
| НЕ СпрСклады.ИспользоватьОрдернуюСхемуПриПоступлении
| ИЛИ &Дата < СпрСклады.ДатаНачалаОрдернойСхемыПриПоступлении КАК ЭтоСкладскоеДвижение
|ИЗ
| Документ.ПроизводствоБезЗаказа.ВыходныеИзделияСерии КАК ТаблицаТовары
| ВНУТРЕННЕЕ СОЕДИНЕНИЕ Справочник.Склады КАК СпрСклады
| ПО СпрСклады.Ссылка = ТаблицаТовары.Получатель
|ГДЕ
| ТаблицаТовары.Ссылка = &Ссылка
|
|ОБЪЕДИНИТЬ ВСЕ
|ВЫБРАТЬ
| &Дата КАК Период,
| ТаблицаТовары.Номенклатура КАК Номенклатура,
| ТаблицаТовары.Характеристика КАК Характеристика,
| ВЫБОР
| КОГДА ЕСТЬNULL(ТаблицаТовары.Назначение.ДвиженияПоСкладскимРегистрам, ЛОЖЬ)
| ТОГДА ТаблицаТовары.Назначение
| ИНАЧЕ ЗНАЧЕНИЕ(Справочник.Назначения.ПустаяСсылка)
| КОНЕЦ КАК Назначение,
| ТаблицаТовары.Серия КАК Серия,
| ТаблицаТовары.Количество КАК Количество,
| ТаблицаТовары.Получатель КАК Отправитель,
| ТаблицаТовары.Получатель КАК Получатель,
| ЗНАЧЕНИЕ(Перечисление.СкладскиеОперации.ПроизводствоПродукции) КАК СкладскаяОперация,
| &Ссылка КАК Документ,
| НЕ СпрСклады.ИспользоватьОрдернуюСхемуПриПоступлении
| ИЛИ &Дата < СпрСклады.ДатаНачалаОрдернойСхемыПриПоступлении КАК ЭтоСкладскоеДвижение
|ИЗ
| Документ.ПроизводствоБезЗаказа.ПобочныеИзделия КАК ТаблицаТовары
| ВНУТРЕННЕЕ СОЕДИНЕНИЕ Справочник.Склады КАК СпрСклады
| ПО СпрСклады.Ссылка = ТаблицаТовары.Получатель
|ГДЕ
| ТаблицаТовары.Ссылка = &Ссылка
| И НЕ ТаблицаТовары.Серия = ЗНАЧЕНИЕ(Справочник.СерииНоменклатуры.ПустаяСсылка)
|
|ОБЪЕДИНИТЬ ВСЕ
|ВЫБРАТЬ
| &Дата КАК Период,
| ТаблицаТовары.Номенклатура КАК Номенклатура,
| ТаблицаТовары.Характеристика КАК Характеристика,
| ВЫБОР
| КОГДА ЕСТЬNULL(ТаблицаТовары.Назначение.ДвиженияПоСкладскимРегистрам, ЛОЖЬ)
| ТОГДА ТаблицаТовары.Назначение
| ИНАЧЕ ЗНАЧЕНИЕ(Справочник.Назначения.ПустаяСсылка)
| КОНЕЦ КАК Назначение,
| ТаблицаТовары.Серия КАК Серия,
| ТаблицаТовары.Количество КАК Количество,
| ТаблицаТовары.Получатель КАК Отправитель,
| ТаблицаТовары.Получатель КАК Получатель,
| ЗНАЧЕНИЕ(Перечисление.СкладскиеОперации.ПроизводствоПродукции) КАК СкладскаяОперация,
| &Ссылка КАК Документ,
| НЕ СпрСклады.ИспользоватьОрдернуюСхемуПриПоступлении
| ИЛИ &Дата < СпрСклады.ДатаНачалаОрдернойСхемыПриПоступлении КАК ЭтоСкладскоеДвижение
|ИЗ
| Документ.ПроизводствоБезЗаказа.ПобочныеИзделияСерии КАК ТаблицаТовары
| ВНУТРЕННЕЕ СОЕДИНЕНИЕ Справочник.Склады КАК СпрСклады
| ПО СпрСклады.Ссылка = ТаблицаТовары.Получатель
|ГДЕ
| ТаблицаТовары.Ссылка = &Ссылка
|";
ТекстыЗапроса.Добавить(ТекстЗапроса, ИмяРегистра);
Возврат ТекстЗапроса;
КонецФункции
Функция ТекстЗапросаТаблицаДатыПоступленияТоваровОрганизаций(Запрос, ТекстыЗапроса, Регистры)
ИмяРегистра = "ДатыПоступленияТоваровОрганизаций";
Если НЕ ПроведениеДокументов.ТребуетсяТаблицаДляДвижений(ИмяРегистра, Регистры) Тогда
Возврат "";
КонецЕсли;
ТекстЗапроса =
"ВЫБРАТЬ РАЗЛИЧНЫЕ
| ВыходныеИзделия.НомерСтроки КАК НомерСтроки,
| &Дата КАК ДатаПоступления,
| КлючиАналитики.Номенклатура КАК Номенклатура,
| КлючиАналитики.Характеристика КАК Характеристика,
| КлючиАналитики.Серия КАК Серия,
| КлючиАналитики.Назначение КАК Назначение,
| ВыходныеИзделия.ВидЗапасов КАК ВидЗапасов,
| ЗНАЧЕНИЕ(Справочник.НомераГТД.ПустаяСсылка) КАК НомерГТД
|ИЗ
| Документ.ПроизводствоБезЗаказа.ВидыЗапасовВыходныеИзделия КАК ВыходныеИзделия
| ЛЕВОЕ СОЕДИНЕНИЕ Справочник.КлючиАналитикиУчетаНоменклатуры КАК КлючиАналитики
| ПО ВыходныеИзделия.АналитикаУчетаНоменклатуры = КлючиАналитики.Ссылка
| ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ДатыПоступленияТоваровОрганизаций КАК ПоступленияТоваров
| ПО ВыходныеИзделия.ВидЗапасов = ПоступленияТоваров.ВидЗапасов
| И КлючиАналитики.Номенклатура = ПоступленияТоваров.Номенклатура
| И КлючиАналитики.Характеристика = ПоступленияТоваров.Характеристика
| И КлючиАналитики.Серия = ПоступленияТоваров.Серия
| И КлючиАналитики.Назначение = ПоступленияТоваров.Назначение
| И (ПоступленияТоваров.НомерГТД = ЗНАЧЕНИЕ(Справочник.НомераГТД.ПустаяСсылка))
|ГДЕ
| ВыходныеИзделия.Ссылка = &Ссылка
| И (ПоступленияТоваров.ВидЗапасов ЕСТЬ NULL
| ИЛИ ПоступленияТоваров.ДатаПоступления < &Дата)
| И ВыходныеИзделия.НаправлениеВыпуска = ЗНАЧЕНИЕ(Перечисление.ХозяйственныеОперации.ВыпускПродукцииНаСклад)
|
|ОБЪЕДИНИТЬ ВСЕ
|
|ВЫБРАТЬ РАЗЛИЧНЫЕ
| ПобочныеИзделия.НомерСтроки КАК НомерСтроки,
| &Дата КАК ДатаПоступления,
| КлючиАналитики.Номенклатура КАК Номенклатура,
| КлючиАналитики.Характеристика КАК Характеристика,
| КлючиАналитики.Серия КАК Серия,
| КлючиАналитики.Назначение КАК Назначение,
| ПобочныеИзделия.ВидЗапасов КАК ВидЗапасов,
| ЗНАЧЕНИЕ(Справочник.НомераГТД.ПустаяСсылка) КАК НомерГТД
|ИЗ
| Документ.ПроизводствоБезЗаказа.ВидыЗапасовПобочныеИзделия КАК ПобочныеИзделия
| ЛЕВОЕ СОЕДИНЕНИЕ Справочник.КлючиАналитикиУчетаНоменклатуры КАК КлючиАналитики
| ПО ПобочныеИзделия.АналитикаУчетаНоменклатуры = КлючиАналитики.Ссылка
| ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ДатыПоступленияТоваровОрганизаций КАК ПоступленияТоваров
| ПО ПобочныеИзделия.ВидЗапасов = ПоступленияТоваров.ВидЗапасов
| И КлючиАналитики.Номенклатура = ПоступленияТоваров.Номенклатура
| И КлючиАналитики.Характеристика = ПоступленияТоваров.Характеристика
| И КлючиАналитики.Серия = ПоступленияТоваров.Серия
| И КлючиАналитики.Назначение = ПоступленияТоваров.Назначение
| И (ПоступленияТоваров.НомерГТД = ЗНАЧЕНИЕ(Справочник.НомераГТД.ПустаяСсылка))
|ГДЕ
| ПобочныеИзделия.Ссылка = &Ссылка
| И (ПоступленияТоваров.ВидЗапасов ЕСТЬ NULL
| ИЛИ ПоступленияТоваров.ДатаПоступления < &Дата)
| И ПобочныеИзделия.НаправлениеВыпуска = ЗНАЧЕНИЕ(Перечисление.ХозяйственныеОперации.ВыпускПродукцииНаСклад)";
ТекстыЗапроса.Добавить(ТекстЗапроса, ИмяРегистра);
Возврат ТекстЗапроса;
КонецФункции
Функция ТекстЗапросаТаблицаПрочиеРасходы(Запрос, ТекстыЗапроса, Регистры)
ИмяРегистра = "ПрочиеРасходы";
Если НЕ ПроведениеДокументов.ТребуетсяТаблицаДляДвижений(ИмяРегистра, Регистры) Тогда
Возврат "";
КонецЕсли;
Если Не ПроведениеДокументов.ЕстьТаблицаЗапроса("ВтПрочиеРасходы", ТекстыЗапроса) Тогда
ТекстЗапросаТаблицаВтПрочиеРасходы(Запрос, ТекстыЗапроса);
КонецЕсли;
ТекстЗапроса = РегистрыНакопления.ПрочиеРасходы.ТекстЗапросаТаблицаПрочиеРасходы();
ТекстыЗапроса.Добавить(ТекстЗапроса, ИмяРегистра);
Возврат ТекстЗапроса;
КонецФункции
Функция ТекстЗапросаТаблицаПартииПрочихРасходов(Запрос, ТекстыЗапроса, Регистры)
ИмяРегистра = "ПартииПрочихРасходов";
Если НЕ ПроведениеДокументов.ТребуетсяТаблицаДляДвижений(ИмяРегистра, Регистры) Тогда
Возврат "";
КонецЕсли;
Если Не ПроведениеДокументов.ЕстьТаблицаЗапроса("ВтПартииПрочихРасходов", ТекстыЗапроса) Тогда
ТекстЗапросаТаблицаВтПартииПрочихРасходов(Запрос, ТекстыЗапроса);
КонецЕсли;
ТекстЗапроса = РегистрыНакопления.ПартииПрочихРасходов.ТекстЗапросаТаблицаПартииПрочихРасходов();
ТекстыЗапроса.Добавить(ТекстЗапроса, ИмяРегистра);
Возврат ТекстЗапроса;
КонецФункции
Функция ТекстЗапросаТаблицаПрочиеАктивыПассивы(Запрос, ТекстыЗапроса, Регистры)
ИмяРегистра = "ПрочиеАктивыПассивы";
Если НЕ ПроведениеДокументов.ТребуетсяТаблицаДляДвижений(ИмяРегистра, Регистры) Тогда
Возврат "";
КонецЕсли;
Если Не ПроведениеДокументов.ЕстьТаблицаЗапроса("ВтПрочиеРасходы", ТекстыЗапроса) Тогда
ТекстЗапросаТаблицаВтПрочиеРасходы(Запрос, ТекстыЗапроса);
КонецЕсли;
Если Не ПроведениеДокументов.ЕстьТаблицаЗапроса("ВтВидыЗапасов", ТекстыЗапроса) Тогда
ТекстЗапросаВтВидыЗапасов(Запрос, ТекстыЗапроса);
КонецЕсли;
ТекстЗапроса =
"ВЫБРАТЬ
| &Дата КАК Период,
| ЗНАЧЕНИЕ(ВидДвиженияНакопления.Приход) КАК ВидДвижения,
| ВтВидыЗапасов.Организация КАК Организация,
| ВтВидыЗапасов.Получатель КАК Подразделение,
| НЕОПРЕДЕЛЕНО КАК НаправлениеДеятельности,
| ВтВидыЗапасов.СтатьяРасходов КАК Статья,
| ВЫБОР
| КОГДА ВтВидыЗапасов.АналитикаАктивовПассивов = ЗНАЧЕНИЕ(Перечисление.СтатьиБезАналитики.ПустаяСсылка)
| ТОГДА НЕОПРЕДЕЛЕНО
| ИНАЧЕ ВтВидыЗапасов.АналитикаАктивовПассивов
| КОНЕЦ КАК Аналитика,
| ВтВидыЗапасов.СуммаУпр КАК Сумма
|ИЗ
| ВтВидыЗапасов КАК ВтВидыЗапасов
|ГДЕ
| втВидыЗапасов.НаправлениеВыпуска = ЗНАЧЕНИЕ(Перечисление.ХозяйственныеОперации.СписаниеТоваровПоТребованию)
| И ВтВидыЗапасов.СтатьяРасходов ССЫЛКА ПланВидовХарактеристик.СтатьиАктивовПассивов
| И НЕ ВтВидыЗапасов.Сумма = 0
|";
ТекстЗапроса = ТекстЗапроса + "ОБЪЕДИНИТЬ ВСЕ"
+ РегистрыНакопления.ПрочиеАктивыПассивы.ТекстЗапросаТаблицаПрочиеАктивыПассивы(Ложь);
ТекстыЗапроса.Добавить(ТекстЗапроса, ИмяРегистра);
Возврат ТекстЗапроса;
КонецФункции
Функция ТекстЗапросаТаблицаДвиженияПоПрочимАктивамПассивам(Запрос, ТекстыЗапроса, Регистры)
ИмяРегистра = "ДвиженияПоПрочимАктивамПассивам";
Если НЕ ПроведениеДокументов.ТребуетсяТаблицаДляДвижений(ИмяРегистра, Регистры) Тогда
Возврат "";
КонецЕсли;
Если Не ПроведениеДокументов.ЕстьТаблицаЗапроса("ВтВидыЗапасов", ТекстыЗапроса) Тогда
ТекстЗапросаВтВидыЗапасов(Запрос, ТекстыЗапроса);
КонецЕсли;
ТекстЗапроса =
"ВЫБРАТЬ
| &Дата КАК Период,
| ВтВидыЗапасов.Организация КАК Организация,
| ВтВидыЗапасов.Получатель КАК Подразделение,
| НЕОПРЕДЕЛЕНО КАК НаправлениеДеятельности,
| ВтВидыЗапасов.СтатьяРасходов КАК Статья,
| ВтВидыЗапасов.АналитикаАктивовПассивов КАК Аналитика,
| ВтВидыЗапасов.НастройкаСчетовУчета КАК НастройкаСчетовУчета,
| ЗНАЧЕНИЕ(Перечисление.ВидыДвиженийПрочихАктивовПассивов.Дебет) КАК ДебетКредит,
|
| ВтВидыЗапасов.СуммаРегл КАК СуммаРегл,
| ВтВидыЗапасов.СуммаУпр КАК СуммаУпр,
| ВтВидыЗапасов.СуммаУпр КАК СуммаСНДС,
| ВтВидыЗапасов.СуммаУпр КАК СуммаБезНДС,
|
| ВтВидыЗапасов.ИдентификаторФинЗаписи КАК ИдентификаторФинЗаписи,
| ЗНАЧЕНИЕ(Справочник.НастройкиХозяйственныхОпераций.СписаниеТоваровПоТребованию) КАК НастройкаХозяйственнойОперации
|ИЗ
| ВтВидыЗапасов КАК ВтВидыЗапасов
|ГДЕ
| втВидыЗапасов.НаправлениеВыпуска = ЗНАЧЕНИЕ(Перечисление.ХозяйственныеОперации.СписаниеТоваровПоТребованию)
| И ВтВидыЗапасов.СтатьяРасходов ССЫЛКА ПланВидовХарактеристик.СтатьиАктивовПассивов
| И НЕ ВтВидыЗапасов.Сумма = 0
|";
ТекстыЗапроса.Добавить(ТекстЗапроса, ИмяРегистра);
Возврат ТекстЗапроса;
КонецФункции
Функция ТекстЗапросаТаблицаДвиженияНоменклатураДоходыРасходы(Запрос, ТекстыЗапроса, Регистры)
ИмяРегистра = "ДвиженияНоменклатураДоходыРасходы";
Если НЕ ПроведениеДокументов.ТребуетсяТаблицаДляДвижений(ИмяРегистра, Регистры) Тогда
Возврат "";
КонецЕсли;
Если НЕ ПроведениеДокументов.ЕстьТаблицаЗапроса("ВтВидыЗапасов", ТекстыЗапроса) Тогда
ТекстЗапросаВтВидыЗапасов(Запрос, ТекстыЗапроса);
КонецЕсли;
ТекстЗапроса =
"ВЫБРАТЬ
| &Дата КАК Период,
| ВЫБОР
| КОГДА ВтВидыЗапасов.СтатьяРасходов.ВариантРаспределенияРасходовРегл =
| ЗНАЧЕНИЕ(Перечисление.ВариантыРаспределенияРасходов.НаВнеоборотныеАктивы)
| ТОГДА ВЫБОР
| КОГДА ВтВидыЗапасов.СтатьяРасходов.ВидЦенностиНДС В
| (ЗНАЧЕНИЕ(Перечисление.ВидыЦенностей.ОС),
| ЗНАЧЕНИЕ(Перечисление.ВидыЦенностей.ОбъектыНезавершенногоСтроительства))
| ТОГДА ЗНАЧЕНИЕ(Перечисление.ХозяйственныеОперации.ПередачаВСоставОС)
| КОГДА ВтВидыЗапасов.СтатьяРасходов.ВидЦенностиНДС = ЗНАЧЕНИЕ(Перечисление.ВидыЦенностей.НМА)
| ТОГДА ЗНАЧЕНИЕ(Перечисление.ХозяйственныеОперации.ПередачаВСоставНМА)
| КОНЕЦ
| ИНАЧЕ ЗНАЧЕНИЕ(Перечисление.ХозяйственныеОперации.СписаниеТоваровПоТребованию)
| КОНЕЦ КАК ХозяйственнаяОперация,
| ВтВидыЗапасов.Организация КАК Организация,
| ВтВидыЗапасов.ПодразделениеПолучательРасходов КАК Подразделение,
| ВтВидыЗапасов.АналитикаУчетаНоменклатурыПоПолучателю КАК АналитикаУчетаНоменклатуры,
| &Подразделение КАК Склад,
| ВтВидыЗапасов.ВидЗапасов КАК ВидЗапасов,
| ВтВидыЗапасов.ВидЗапасов.ТипЗапасов КАК ТипЗапасов,
| ВтВидыЗапасов.СтатьяРасходов КАК СтатьяДоходовРасходов,
| ВтВидыЗапасов.АналитикаРасходов КАК АналитикаРасходов,
| ВтВидыЗапасов.АналитикаАктивовПассивов КАК АналитикаАктивовПассивов,
| ВтВидыЗапасов.Количество КАК Количество,
| ВтВидыЗапасов.СуммаУпр КАК Стоимость,
| ВтВидыЗапасов.СуммаУпр КАК СтоимостьБезНДС,
| ВтВидыЗапасов.СуммаРегл КАК СтоимостьРегл,
| ВЫБОР
| КОГДА &ФормироватьВидыЗапасовПоГруппамФинансовогоУчета
| ТОГДА ВтВидыЗапасов.ВидЗапасов
| ИНАЧЕ ВтВидыЗапасов.Номенклатура
| КОНЕЦ КАК ИсточникГФУНоменклатуры
|ИЗ
| ВтВидыЗапасов КАК ВтВидыЗапасов
|ГДЕ
| ВтВидыЗапасов.НаправлениеВыпуска = ЗНАЧЕНИЕ(Перечисление.ХозяйственныеОперации.СписаниеТоваровПоТребованию)";
ТекстыЗапроса.Добавить(ТекстЗапроса, ИмяРегистра);
Возврат ТекстЗапроса;
КонецФункции
Функция ТекстЗапросаТаблицаДвиженияНоменклатураНоменклатура(Запрос, ТекстыЗапроса, Регистры)
ИмяРегистра = "ДвиженияНоменклатураНоменклатура";
Если НЕ ПроведениеДокументов.ТребуетсяТаблицаДляДвижений(ИмяРегистра, Регистры) Тогда
Возврат "";
КонецЕсли;
Если НЕ ПроведениеДокументов.ЕстьТаблицаЗапроса("ВтВидыЗапасов", ТекстыЗапроса) Тогда
ТекстЗапросаВтВидыЗапасов(Запрос, ТекстыЗапроса);
КонецЕсли;
ТекстЗапроса =
"ВЫБРАТЬ
| &Дата КАК Период,
| ВЫБОР
| КОГДА ВидыЗапасов.НаправлениеВыпуска В
| (ЗНАЧЕНИЕ(Перечисление.ХозяйственныеОперации.ВыпускПродукцииНаСклад),
| ЗНАЧЕНИЕ(Перечисление.ХозяйственныеОперации.ВыпускПродукцииФиксированнаяСтоимость))
| И НЕ ВидыЗапасов.ЦеховаяКладовая
| ТОГДА ЗНАЧЕНИЕ(Перечисление.ХозяйственныеОперации.ПередачаПродукцииИзПроизводства)
| ИНАЧЕ ВидыЗапасов.ХозяйственнаяОперация
| КОНЕЦ КАК ХозяйственнаяОперация,
| ВЫБОР
| КОГДА ВидыЗапасов.РеализацияЗапасовДругойОрганизации
| ТОГДА ВидыЗапасов.ВидЗапасовВладельца.Организация
| ИНАЧЕ ВидыЗапасов.Организация
| КОНЕЦ КАК Организация,
| &Подразделение КАК Подразделение,
| ВидыЗапасов.АналитикаУчетаНоменклатурыПоОтправителю.Назначение.НаправлениеДеятельности КАК НаправлениеДеятельности,
| ВЫБОР
| КОГДА &УчитыватьСебестоимостьТоваровПоНазначениям
| ТОГДА ВидыЗапасов.АналитикаУчетаНоменклатурыПоОтправителю
| ИНАЧЕ ВидыЗапасов.АналитикаУчетаНоменклатурыПоОтправителюБезНазначения
| КОНЕЦ КАК АналитикаУчетаНоменклатуры,
| ВидыЗапасов.Склад КАК Склад,
| ВЫБОР
| КОГДА ВидыЗапасов.РеализацияЗапасовДругойОрганизации
| ТОГДА ВидыЗапасов.ВидЗапасовВладельца.ТипЗапасов
| ИНАЧЕ ВидыЗапасов.ВидЗапасов.ТипЗапасов
| КОНЕЦ КАК ТипЗапасов,
| ВЫБОР
| КОГДА ВидыЗапасов.РеализацияЗапасовДругойОрганизации
| ТОГДА ВидыЗапасов.ВидЗапасовВладельца
| ИНАЧЕ ВидыЗапасов.ВидЗапасов
| КОНЕЦ КАК ВидЗапасов,
| ВидыЗапасов.АналитикаУчетаНоменклатурыПоПолучателю.Назначение.НаправлениеДеятельности КАК КорНаправлениеДеятельности,
| ВЫБОР
| КОГДА &УчитыватьСебестоимостьТоваровПоНазначениям
| ТОГДА ВидыЗапасов.АналитикаУчетаНоменклатурыПоПолучателю
| ИНАЧЕ ВидыЗапасов.АналитикаУчетаНоменклатурыПоПолучателюБезНазначения
| КОНЕЦ КАК КорАналитикаУчетаНоменклатуры,
| ВидыЗапасов.Получатель КАК КорСклад,
| ВЫБОР
| КОГДА ВидыЗапасов.КорВидЗапасов = НЕОПРЕДЕЛЕНО
| ТОГДА ВидыЗапасов.ВидЗапасов.ТипЗапасов
| ИНАЧЕ ВидыЗапасов.КорВидЗапасов.ТипЗапасов
| КОНЕЦ КАК КорТипЗапасов,
| ВЫБОР
| КОГДА ВидыЗапасов.КорВидЗапасов = НЕОПРЕДЕЛЕНО
| ТОГДА ВидыЗапасов.ВидЗапасов
| ИНАЧЕ ВидыЗапасов.КорВидЗапасов
| КОНЕЦ КАК КорВидЗапасов,
|
| ВидыЗапасов.Количество КАК Количество,
| ВидыЗапасов.Количество КАК КорКоличество,
|
| 0 КАК Стоимость,
| 0 КАК СтоимостьБезНДС,
| 0 КАК СтоимостьРегл,
|
| ВЫБОР
| КОГДА &ФормироватьВидыЗапасовПоГруппамФинансовогоУчета
| ТОГДА ВидыЗапасов.ВидЗапасов
| ИНАЧЕ ВидыЗапасов.Номенклатура
| КОНЕЦ КАК ИсточникГФУНоменклатуры,
| ВЫБОР
| КОГДА &ФормироватьВидыЗапасовПоГруппамФинансовогоУчета
| И ВидыЗапасов.КорВидЗапасов = НЕОПРЕДЕЛЕНО
| ТОГДА ВидыЗапасов.ВидЗапасов
| КОГДА &ФормироватьВидыЗапасовПоГруппамФинансовогоУчета
| ТОГДА ВидыЗапасов.КорВидЗапасов
| ИНАЧЕ ВидыЗапасов.Номенклатура
| КОНЕЦ КАК КорИсточникГФУНоменклатуры,
| НЕОПРЕДЕЛЕНО КАК ДокументДвижения,
| ВидыЗапасов.Организация КАК КорОрганизация
|ИЗ
| ВтВидыЗапасов КАК ВидыЗапасов
|ГДЕ
| НЕ ВидыЗапасов.АналитикаУчетаНоменклатурыПоОтправителю =
| НЕОПРЕДЕЛЕНО
| И НЕ ВидыЗапасов.АналитикаУчетаНоменклатурыПоОтправителю =
| ВидыЗапасов.АналитикаУчетаНоменклатурыПоПолучателю
| И НЕ ВидыЗапасов.НаправлениеВыпуска =
| ЗНАЧЕНИЕ(Перечисление.ХозяйственныеОперации.СписаниеТоваровПоТребованию)
|";
ТекстыЗапроса.Добавить(ТекстЗапроса, ИмяРегистра);
Возврат ТекстЗапроса;
КонецФункции
Функция ТекстЗапросаТаблицаТрудозатратыКОформлению(Запрос, ТекстыЗапроса, Регистры)
ИмяРегистра = "ТрудозатратыКОформлению";
Если НЕ ПроведениеДокументов.ТребуетсяТаблицаДляДвижений(ИмяРегистра, Регистры) Тогда
Возврат "";
КонецЕсли;
Если НЕ ПроведениеДокументов.ЕстьТаблицаЗапроса("ТрудозатратыИзменения", ТекстыЗапроса) Тогда
ТекстЗапросаТаблицаТрудозатратыИзменения(Запрос, ТекстыЗапроса)
КонецЕсли;
ТекстЗапроса =
"ВЫБРАТЬ
| ЗНАЧЕНИЕ(ВидДвиженияНакопления.Приход) КАК ВидДвижения,
| &Дата КАК Период,
| &Организация КАК Организация,
| ТаблицаТрудозатраты.ПартияПроизводства КАК ПартияПроизводства,
| ТаблицаТрудозатраты.Распоряжение КАК Распоряжение,
| ТаблицаТрудозатраты.ВидРабот КАК ВидРабот,
| ТаблицаТрудозатраты.Исполнитель КАК Исполнитель,
| ТаблицаТрудозатраты.Подразделение КАК Подразделение,
| ТаблицаТрудозатраты.КодСтрокиРаспоряжения КАК КодСтрокиРаспоряжения,
| ТаблицаТрудозатраты.Количество КАК Количество,
| ТаблицаТрудозатраты.Сторно КАК Сторно
|ИЗ
| ТрудозатратыСИсправлением КАК ТаблицаТрудозатраты
|ГДЕ
| ИСТИНА В(
| ВЫБРАТЬ ПЕРВЫЕ 1
| ИСТИНА
| ИЗ
| ТрудозатратыИзменения КАК ТрудозатратыИзменения
| ГДЕ
| ТрудозатратыИзменения.ПартияПроизводства = ТаблицаТрудозатраты.ПартияПроизводства
| И ТрудозатратыИзменения.ВидРабот = ТаблицаТрудозатраты.ВидРабот
| И ТрудозатратыИзменения.Исполнитель = ТаблицаТрудозатраты.Исполнитель
| И ТрудозатратыИзменения.Подразделение = ТаблицаТрудозатраты.Подразделение
| )
|";
ТекстыЗапроса.Добавить(ТекстЗапроса, ИмяРегистра);
Возврат ТекстЗапроса;
КонецФункции
Функция ТекстЗапросаТаблицаТоварыКОформлениюОтчетовКомитенту(Запрос, ТекстыЗапроса, Регистры)
ИмяРегистра = "ТоварыКОформлениюОтчетовКомитенту";
Если Не ПроведениеДокументов.ТребуетсяТаблицаДляДвижений(ИмяРегистра, Регистры) Тогда
Возврат "";
КонецЕсли;
Если Не ПроведениеДокументов.ЕстьТаблицаЗапроса("ВтВидыЗапасов", ТекстыЗапроса) Тогда
ТекстЗапросаВтВидыЗапасов(Запрос, ТекстыЗапроса);
КонецЕсли;
УстановитьПараметрЗапросаВидЗапасовПоУмолчанию(Запрос);
ТекстЗапроса = "
|ВЫБРАТЬ
| ЗНАЧЕНИЕ(ВидДвиженияНакопления.Приход) КАК ВидДвижения,
| &Дата КАК Период,
| ВидыЗапасов.Организация КАК Организация,
| ВидыЗапасов.ВидЗапасов КАК ВидЗапасов,
| ВидыЗапасов.АналитикаКомитента КАК АналитикаУчетаНоменклатуры,
| ВидыЗапасов.ВидЗапасов.Валюта КАК Валюта,
| ВидыЗапасов.НомерГТД КАК НомерГТД,
| 0 КАК Количество,
| 0 КАК СуммаВыручки,
| 0 КАК СуммаВыручкиРегл,
| 0 КАК СуммаВыручкиУпр,
| ВидыЗапасов.Количество КАК КоличествоСписано,
| 0 КАК КоличествоКОформлению,
| 0 КАК КоличествоКОформлениюПоРНПТ,
| 0 КАК СуммаВыручкиКОформлению,
| ВидыЗапасов.Количество КАК КоличествоСписаноКОформлению,
| ВидыЗапасов.КоличествоПоРНПТ КАК КоличествоСписаноКОформлениюПоРНПТ,
| Аналитика.Номенклатура КАК Номенклатура,
| Аналитика.Характеристика КАК Характеристика,
| ВидыЗапасов.ХозяйственнаяОперация КАК ХозяйственнаяОперация,
| ВЫБОР
| КОГДА ИСТИНА
| ТОГДА &ВидЗапасовПоУмолчанию
| КОНЕЦ КАК КорВидЗапасов,
| ВидыЗапасов.ВидДеятельностиНДС КАК НалогообложениеНДС,
| ВидыЗапасов.ИдентификаторФинЗаписи КАК ИдентификаторФинЗаписи,
| ЗНАЧЕНИЕ(Справочник.НастройкиХозяйственныхОпераций.СписаниеКомиссионныхТоваров) КАК НастройкаХозяйственнойОперации,
| ВидыЗапасов.ИдентификаторСтроки КАК ИдентификаторСтроки
|ИЗ
| ВтВидыЗапасов КАК ВидыЗапасов
|
| ВНУТРЕННЕЕ СОЕДИНЕНИЕ Справочник.КлючиАналитикиУчетаНоменклатуры КАК Аналитика
| ПО ВидыЗапасов.АналитикаУчетаНоменклатурыПоПолучателю = Аналитика.Ссылка
|ГДЕ
| ВидыЗапасов.ВидЗапасов.ТипЗапасов = ЗНАЧЕНИЕ(Перечисление.ТипыЗапасов.КомиссионныйТовар)
|
|УПОРЯДОЧИТЬ ПО
| Период";
ТекстыЗапроса.Добавить(ТекстЗапроса, ИмяРегистра);
Возврат ТекстЗапроса;
КонецФункции
Функция ТекстЗапросаТаблицаРеестрДокументов(Запрос, ТекстыЗапроса, Регистры)
ИмяРегистра = "РеестрДокументов";
Если НЕ ПроведениеДокументов.ТребуетсяТаблицаДляДвижений(ИмяРегистра, Регистры) Тогда
Возврат "";
КонецЕсли;
Если НЕ ПроведениеДокументов.ЕстьТаблицаЗапроса("ВтОснований", ТекстыЗапроса) Тогда
ТекстЗапросаВтОснований(Запрос, ТекстыЗапроса);
КонецЕсли;
ТекстЗапроса =
"ВЫБРАТЬ
| &Ссылка КАК Ссылка,
| НЕОПРЕДЕЛЕНО КАК РазделительЗаписи,
| &Дата КАК ДатаДокументаИБ,
| &Номер КАК НомерДокументаИБ,
| &ИдентификаторМетаданных КАК ТипСсылки,
| ДанныеДокумента.Организация КАК Организация,
| ДанныеДокумента.ХозяйственнаяОперация КАК ХозяйственнаяОперация,
| &НаправлениеДеятельности КАК НаправлениеДеятельности,
| ДанныеДокумента.Подразделение КАК Подразделение,
| &Ответственный КАК Ответственный,
| &Автор КАК Автор,
| ВЫРАЗИТЬ(&Комментарий КАК СТРОКА(100)) КАК Комментарий,
| &Валюта КАК Валюта,
| 0 КАК Сумма,
| &Проведен КАК Проведен,
| &ПометкаУдаления КАК ПометкаУдаления,
| ДанныеДокумента.ДополнительнаяЗапись КАК ДополнительнаяЗапись,
| """" КАК Дополнительно,
| &Дата КАК ДатаПервичногоДокумента,
| &НомерНаПечать КАК НомерПервичногоДокумента,
| ДанныеДокумента.Подразделение КАК МестоХранения,
| &Исправление КАК СторноИсправление,
| &СторнируемыйДокумент КАК СторнируемыйДокумент,
| &ИсправляемыйДокумент КАК ИсправляемыйДокумент,
| &Дата КАК ДатаОтраженияВУчете,
| НЕОПРЕДЕЛЕНО КАК Приоритет
|ИЗ
| ВтОснований КАК ДанныеДокумента";
ТекстыЗапроса.Добавить(ТекстЗапроса, ИмяРегистра);
Возврат ТекстЗапроса;
КонецФункции
Процедура ЗапланироватьОтгрузкуТоваров(Запрос, ТекстыЗапроса, Регистры)
ТекстЗапросаДанныхДокумента =
"ВЫБРАТЬ
| ДанныеИсточника.Ссылка КАК Ссылка,
| ДанныеИсточника.Ссылка.Дата КАК Период,
| НЕОПРЕДЕЛЕНО КАК Заказ,
| ДанныеИсточника.Ссылка КАК Накладная,
| ДанныеИсточника.Ссылка.Исправление КАК Исправление,
| ДанныеИсточника.Ссылка.ИсправляемыйДокумент КАК ИсправляемыйДокумент,
| ДанныеИсточника.Подразделение КАК Получатель,
| ДанныеИсточника.Склад КАК Склад,
| ДанныеИсточника.Номенклатура КАК Номенклатура,
| ДанныеИсточника.Характеристика КАК Характеристика,
| ДанныеИсточника.Назначение КАК Назначение,
| ДанныеИсточника.Серия КАК Серия,
| ДанныеИсточника.СтатусУказанияСерий КАК СтатусУказанияСерий,
| ДанныеИсточника.Количество КАК Количество,
| ЛОЖЬ КАК СверхЗаказа,
| ЛОЖЬ КАК Отменено,
| ИСТИНА КАК ЭтоНакладная,
| ЛОЖЬ КАК ОтгрузкаПоЗаказу
|ИЗ
| Документ.ПроизводствоБезЗаказа.МатериалыИРаботы КАК ДанныеИсточника
|
|ГДЕ
| ДанныеИсточника.Ссылка В(&Ссылка)
| И НЕ ДанныеИсточника.Склад = ЗНАЧЕНИЕ(Справочник.Склады.ПустаяСсылка)
|";
СкладыСервер.ЗапланироватьОтгрузкуТоваров(Запрос, ТекстыЗапроса, Регистры, ТекстЗапросаДанныхДокумента);
КонецПроцедуры
Процедура ОформитьОтгрузкуТоваров(Запрос, ТекстыЗапроса, Регистры)
ТекстЗапросаДанныхДокумента =
"ВЫБРАТЬ
| ДанныеИсточника.Ссылка КАК Ссылка,
| ДанныеИсточника.Ссылка.Дата КАК Период,
| НЕОПРЕДЕЛЕНО КАК Заказ,
| ДанныеИсточника.Ссылка КАК Накладная,
| ДанныеИсточника.Ссылка.Исправление КАК Исправление,
| ДанныеИсточника.Ссылка.ИсправляемыйДокумент КАК ИсправляемыйДокумент,
| ДанныеИсточника.Подразделение КАК Получатель,
| ДанныеИсточника.Склад КАК Склад,
| ДанныеИсточника.Номенклатура КАК Номенклатура,
| ДанныеИсточника.Характеристика КАК Характеристика,
| ДанныеИсточника.Назначение КАК Назначение,
| ДанныеИсточника.Серия КАК Серия,
| ДанныеИсточника.СтатусУказанияСерий КАК СтатусУказанияСерий,
| ДанныеИсточника.Количество КАК Количество,
| ЛОЖЬ КАК СверхЗаказа,
| ЛОЖЬ КАК ОтгрузкаПоЗаказу
|ИЗ
| Документ.ПроизводствоБезЗаказа.МатериалыИРаботы КАК ДанныеИсточника
|ГДЕ
| ДанныеИсточника.Ссылка В(&Ссылка)
| И НЕ ДанныеИсточника.Склад = ЗНАЧЕНИЕ(Справочник.Склады.ПустаяСсылка)
|";
СкладыСервер.ОформитьОтгрузкуТоваров(Запрос, ТекстыЗапроса, Регистры, ТекстЗапросаДанныхДокумента);
КонецПроцедуры
Процедура ЗапланироватьПоступлениеТоваров(Запрос, ТекстыЗапроса, Регистры)
ТекстЗапросаДокумента =
"ВЫБРАТЬ
| ИсточникДанных.Ссылка КАК Ссылка,
| НЕОПРЕДЕЛЕНО КАК Заказ,
| ИсточникДанных.Ссылка КАК Накладная,
| ИсточникДанных.Ссылка.Исправление КАК Исправление,
| ИсточникДанных.Ссылка.ИсправляемыйДокумент КАК ИсправляемыйДокумент,
| НЕОПРЕДЕЛЕНО КАК Договор,
| НЕОПРЕДЕЛЕНО КАК Соглашение,
| ЗНАЧЕНИЕ(Перечисление.ВариантыПриемкиТоваров.РазделенаТолькоПоНакладным) КАК ВариантПриемкиТоваров,
|
| ВЫБОР КОГДА ИсточникДанных.Ссылка.ДатаПоступления <> ДАТАВРЕМЯ(1, 1, 1) ТОГДА
| ИсточникДанных.Ссылка.ДатаПоступления
| ИНАЧЕ
| ИсточникДанных.Ссылка.Дата
| КОНЕЦ КАК Дата,
|
| ИсточникДанных.Номенклатура КАК Номенклатура,
| ИсточникДанных.Характеристика КАК Характеристика,
| ИсточникДанных.Назначение КАК Назначение,
| ИсточникДанных.Серия КАК Серия,
| ИсточникДанных.СтатусУказанияСерий КАК СтатусУказанияСерий,
| ЛОЖЬ КАК СверхЗаказа,
| ИсточникДанных.Получатель КАК Склад,
| ИсточникДанных.Ссылка.Подразделение КАК Отправитель,
| ЗНАЧЕНИЕ(Перечисление.ХозяйственныеОперации.ВыпускПродукции) КАК ХозяйственнаяОперация,
| ИсточникДанных.Количество КАК Количество,
| ИСТИНА КАК ЭтоНакладная,
| ЛОЖЬ КАК ПоступлениеПоЗаказам
|ИЗ
| Документ.ПроизводствоБезЗаказа.ВыходныеИзделия КАК ИсточникДанных
|ГДЕ
| ИсточникДанных.Ссылка В (&Ссылка)
| И ТИПЗНАЧЕНИЯ(ИсточникДанных.Получатель) = ТИП(Справочник.Склады)
|
|ОБЪЕДИНИТЬ ВСЕ
|
|ВЫБРАТЬ
| ИсточникДанных.Ссылка КАК Ссылка,
| НЕОПРЕДЕЛЕНО КАК Заказ,
| ИсточникДанных.Ссылка КАК Накладная,
| ЛОЖЬ КАК Исправление,
| НЕОПРЕДЕЛЕНО КАК ИсправляемыйДокумент,
| НЕОПРЕДЕЛЕНО КАК Договор,
| НЕОПРЕДЕЛЕНО КАК Соглашение,
| ЗНАЧЕНИЕ(Перечисление.ВариантыПриемкиТоваров.РазделенаТолькоПоНакладным) КАК ВариантПриемкиТоваров,
|
| ВЫБОР КОГДА ИсточникДанных.Ссылка.ДатаПоступления <> ДАТАВРЕМЯ(1, 1, 1) ТОГДА
| ИсточникДанных.Ссылка.ДатаПоступления
| ИНАЧЕ
| ИсточникДанных.Ссылка.Дата
| КОНЕЦ КАК Дата,
|
| ИсточникДанных.Номенклатура КАК Номенклатура,
| ИсточникДанных.Характеристика КАК Характеристика,
| ИсточникДанных.Назначение КАК Назначение,
| ИсточникДанных.Серия КАК Серия,
| ИсточникДанных.СтатусУказанияСерий КАК СтатусУказанияСерий,
| ЛОЖЬ КАК СверхЗаказа,
| ИсточникДанных.Получатель КАК Склад,
| ИсточникДанных.Ссылка.Подразделение КАК Отправитель,
| ЗНАЧЕНИЕ(Перечисление.ХозяйственныеОперации.ВыпускПродукции) КАК ХозяйственнаяОперация,
| ИсточникДанных.Количество КАК Количество,
| ИСТИНА КАК ЭтоНакладная,
| ЛОЖЬ КАК ПоступлениеПоЗаказам
|ИЗ
| Документ.ПроизводствоБезЗаказа.ПобочныеИзделия КАК ИсточникДанных
|ГДЕ
| ИсточникДанных.Ссылка В (&Ссылка)
| И ТИПЗНАЧЕНИЯ(ИсточникДанных.Получатель) = ТИП(Справочник.Склады)
|";
СкладыСервер.ЗапланироватьПоступлениеТоваров(Запрос, ТекстыЗапроса, Регистры, ТекстЗапросаДокумента);
КонецПроцедуры
Процедура ОтразитьРаспределениеЗапасовДвижения(Запрос, ТекстыЗапроса, Регистры)
ТекстЗапросаТабЧасть =
"ВЫБРАТЬ
| ТабЧасть.Ссылка КАК Ссылка,
| ТабЧасть.Ссылка.Дата КАК Период,
| ТабЧасть.Номенклатура КАК Номенклатура,
| ТабЧасть.Характеристика КАК Характеристика,
|
| ВЫБОР КОГДА ТабЧасть.Номенклатура.ТипНоменклатуры = ЗНАЧЕНИЕ(Перечисление.ТипыНоменклатуры.Работа) ТОГДА
| ТабЧасть.Подразделение
| ИНАЧЕ
| ТабЧасть.Склад
| КОНЕЦ КАК Склад,
|
| ТабЧасть.Назначение КАК Назначение,
| ТабЧасть.Количество КАК Количество,
| НЕОПРЕДЕЛЕНО КАК ЗапланированныйРасходРаспределенногоЗапаса,
| ИСТИНА КАК КонтрольСвободногоОстатка
|ИЗ
| Документ.ПроизводствоБезЗаказа.МатериалыИРаботы КАК ТабЧасть";
РаспределениеЗапасовДвижения.РасходЗапаса(Запрос, ТекстыЗапроса, Регистры, ТекстЗапросаТабЧасть);
ТекстЗапросаТабЧасть =
"ВЫБРАТЬ
| ТабЧасть.Ссылка КАК Ссылка,
| ТабЧасть.Ссылка.Дата КАК Период,
| ТабЧасть.Номенклатура КАК Номенклатура,
| ТабЧасть.Характеристика КАК Характеристика,
| ТабЧасть.Получатель КАК Склад,
| ТабЧасть.Назначение КАК Назначение,
| ТабЧасть.Количество КАК Количество,
| ЛОЖЬ КАК ПоГрафику,
| НЕОПРЕДЕЛЕНО КАК РаспоряжениеВГрафике
|ИЗ
| Документ.ПроизводствоБезЗаказа.ВыходныеИзделия КАК ТабЧасть
|ГДЕ
| ТабЧасть.НаправлениеВыпуска = ЗНАЧЕНИЕ(Перечисление.ХозяйственныеОперации.ВыпускПродукцииНаСклад)
| И (НЕ ТабЧасть.Получатель.ИспользоватьОрдернуюСхемуПриПоступлении
| ИЛИ ТабЧасть.Получатель.ДатаНачалаОрдернойСхемыПриПоступлении > ТабЧасть.Ссылка.Дата
| ИЛИ ТабЧасть.Назначение.ДвиженияПоСкладскимРегистрам = ЛОЖЬ)
| ИЛИ ТабЧасть.Номенклатура.ТипНоменклатуры = ЗНАЧЕНИЕ(Перечисление.ТипыНоменклатуры.Работа)
| И ТабЧасть.НаправлениеВыпуска = ЗНАЧЕНИЕ(Перечисление.ХозяйственныеОперации.ВыпускПродукцииВПодразделение)";
РаспределениеЗапасовДвижения.ПриходЗапаса(Запрос, ТекстыЗапроса, Регистры, ТекстЗапросаТабЧасть, Неопределено, Ложь);
ТекстЗапросаТабЧасть =
"ВЫБРАТЬ
| ТабЧасть.Ссылка КАК Ссылка,
| ТабЧасть.Ссылка.Дата КАК Период,
| ТабЧасть.Номенклатура КАК Номенклатура,
| ТабЧасть.Характеристика КАК Характеристика,
| ТабЧасть.Получатель КАК Склад,
| ЗНАЧЕНИЕ(Справочник.Назначения.ПустаяСсылка) КАК Назначение,
| -ТабЧасть.Количество КАК Количество,
| ЛОЖЬ КАК ПоГрафику,
| НЕОПРЕДЕЛЕНО КАК РаспоряжениеВГрафике
|ИЗ
| Документ.ПроизводствоБезЗаказа.ВыходныеИзделия КАК ТабЧасть
|ГДЕ
| ТабЧасть.Назначение.ДвиженияПоСкладскимРегистрам = ЛОЖЬ
| И ТабЧасть.Получатель.ИспользоватьОрдернуюСхемуПриПоступлении
| И ТабЧасть.Получатель.ДатаНачалаОрдернойСхемыПриПоступлении <= ТабЧасть.Ссылка.Дата";
РаспределениеЗапасовДвижения.ПриходЗапаса(Запрос, ТекстыЗапроса, Регистры, ТекстЗапросаТабЧасть, Неопределено, Ложь);
ТекстЗапросаТабЧасть =
"ВЫБРАТЬ
| ТабЧасть.Ссылка КАК Ссылка,
| ТабЧасть.Ссылка.Дата КАК Период,
| ТабЧасть.Номенклатура КАК Номенклатура,
| ТабЧасть.Характеристика КАК Характеристика,
| ТабЧасть.Получатель КАК Склад,
|
| ВЫБОР КОГДА ТабЧасть.Назначение.ДвиженияПоСкладскимРегистрам = ЛОЖЬ ТОГДА
| ЗНАЧЕНИЕ(Справочник.Назначения.ПустаяСсылка)
| ИНАЧЕ
| ТабЧасть.Назначение
| КОНЕЦ КАК Назначение,
|
| ТабЧасть.Количество КАК Количество,
|
| ВЫБОР
| КОГДА ТабЧасть.Ссылка.ИсправляемыйДокумент = ЗНАЧЕНИЕ(Документ.ПроизводствоБезЗаказа.ПустаяСсылка)
| ТОГДА ТабЧасть.Ссылка
| ИНАЧЕ ТабЧасть.Ссылка.ИсправляемыйДокумент
| КОНЕЦ КАК Заказ,
|
| ВЫБОР КОГДА ТабЧасть.Ссылка.ДатаПоступления <> ДАТАВРЕМЯ(1, 1, 1) ТОГДА
| ТабЧасть.Ссылка.ДатаПоступления
| ИНАЧЕ
| ТабЧасть.Ссылка.Дата
| КОНЕЦ КАК ДатаПоступления,
|
| ИСТИНА КАК ДоступенДляРасхода,
| ЛОЖЬ КАК ПоГрафику,
| НЕОПРЕДЕЛЕНО КАК РаспоряжениеВГрафике,
| 0 КАК КоличествоВГрафике
|ИЗ
| Документ.ПроизводствоБезЗаказа.ВыходныеИзделия КАК ТабЧасть
|ГДЕ
| ТабЧасть.Получатель.ИспользоватьОрдернуюСхемуПриПоступлении
| И ТабЧасть.Получатель.ДатаНачалаОрдернойСхемыПриПоступлении <= ТабЧасть.Ссылка.Дата";
РаспределениеЗапасовДвижения.ЗапланироватьПриходЗапаса(Запрос, ТекстыЗапроса, Регистры, ТекстЗапросаТабЧасть, Ложь);
ТекстЗапросаТабЧасть =
"ВЫБРАТЬ
| ТабЧасть.Ссылка КАК Ссылка,
| ТабЧасть.Ссылка.Дата КАК Период,
| ТабЧасть.Номенклатура КАК Номенклатура,
| ТабЧасть.Характеристика КАК Характеристика,
| ТабЧасть.Получатель КАК Склад,
| ТабЧасть.Назначение КАК Назначение,
| ТабЧасть.Количество КАК Количество,
| ЛОЖЬ КАК ПоГрафику,
| НЕОПРЕДЕЛЕНО КАК РаспоряжениеВГрафике
|ИЗ
| Документ.ПроизводствоБезЗаказа.ПобочныеИзделия КАК ТабЧасть
|ГДЕ
| ТабЧасть.НаправлениеВыпуска = ЗНАЧЕНИЕ(Перечисление.ХозяйственныеОперации.ВыпускПродукцииНаСклад)
| И (НЕ ТабЧасть.Получатель.ИспользоватьОрдернуюСхемуПриПоступлении
| ИЛИ ТабЧасть.Получатель.ДатаНачалаОрдернойСхемыПриПоступлении > ТабЧасть.Ссылка.Дата
| ИЛИ ТабЧасть.Назначение.ДвиженияПоСкладскимРегистрам = ЛОЖЬ)
| ИЛИ ТабЧасть.Номенклатура.ТипНоменклатуры = ЗНАЧЕНИЕ(Перечисление.ТипыНоменклатуры.Работа)
| И ТабЧасть.НаправлениеВыпуска = ЗНАЧЕНИЕ(Перечисление.ХозяйственныеОперации.ВыпускПродукцииВПодразделение)";
РаспределениеЗапасовДвижения.ПриходЗапаса(Запрос, ТекстыЗапроса, Регистры, ТекстЗапросаТабЧасть, Неопределено, Ложь);
ТекстЗапросаТабЧасть =
"ВЫБРАТЬ
| ТабЧасть.Ссылка КАК Ссылка,
| ТабЧасть.Ссылка.Дата КАК Период,
| ТабЧасть.Номенклатура КАК Номенклатура,
| ТабЧасть.Характеристика КАК Характеристика,
| ТабЧасть.Получатель КАК Склад,
| ЗНАЧЕНИЕ(Справочник.Назначения.ПустаяСсылка) КАК Назначение,
| -ТабЧасть.Количество КАК Количество,
| ЛОЖЬ КАК ПоГрафику,
| НЕОПРЕДЕЛЕНО КАК РаспоряжениеВГрафике
|ИЗ
| Документ.ПроизводствоБезЗаказа.ПобочныеИзделия КАК ТабЧасть
|ГДЕ
| ТабЧасть.Назначение.ДвиженияПоСкладскимРегистрам = ЛОЖЬ
| И ТабЧасть.Получатель.ИспользоватьОрдернуюСхемуПриПоступлении
| И ТабЧасть.Получатель.ДатаНачалаОрдернойСхемыПриПоступлении <= ТабЧасть.Ссылка.Дата";
РаспределениеЗапасовДвижения.ПриходЗапаса(Запрос, ТекстыЗапроса, Регистры, ТекстЗапросаТабЧасть, Неопределено, Ложь);
ТекстЗапросаТабЧасть =
"ВЫБРАТЬ
| ТабЧасть.Ссылка КАК Ссылка,
| ТабЧасть.Ссылка.Дата КАК Период,
| ТабЧасть.Номенклатура КАК Номенклатура,
| ТабЧасть.Характеристика КАК Характеристика,
| ТабЧасть.Получатель КАК Склад,
|
| ВЫБОР КОГДА ТабЧасть.Назначение.ДвиженияПоСкладскимРегистрам = ЛОЖЬ ТОГДА
| ЗНАЧЕНИЕ(Справочник.Назначения.ПустаяСсылка)
| ИНАЧЕ
| ТабЧасть.Назначение
| КОНЕЦ КАК Назначение,
|
| ТабЧасть.Количество КАК Количество,
|
| ВЫБОР
| КОГДА ТабЧасть.Ссылка.ИсправляемыйДокумент = ЗНАЧЕНИЕ(Документ.ПроизводствоБезЗаказа.ПустаяСсылка)
| ТОГДА ТабЧасть.Ссылка
| ИНАЧЕ ТабЧасть.Ссылка.ИсправляемыйДокумент
| КОНЕЦ КАК Заказ,
|
| ВЫБОР КОГДА ТабЧасть.Ссылка.ДатаПоступления <> ДАТАВРЕМЯ(1, 1, 1) ТОГДА
| ТабЧасть.Ссылка.ДатаПоступления
| ИНАЧЕ
| ТабЧасть.Ссылка.Дата
| КОНЕЦ КАК ДатаПоступления,
|
| ИСТИНА КАК ДоступенДляРасхода,
| ЛОЖЬ КАК ПоГрафику,
| НЕОПРЕДЕЛЕНО КАК РаспоряжениеВГрафике,
| 0 КАК КоличествоВГрафике
|ИЗ
| Документ.ПроизводствоБезЗаказа.ПобочныеИзделия КАК ТабЧасть
|ГДЕ
| ТабЧасть.Получатель.ИспользоватьОрдернуюСхемуПриПоступлении
| И ТабЧасть.Получатель.ДатаНачалаОрдернойСхемыПриПоступлении <= ТабЧасть.Ссылка.Дата";
РаспределениеЗапасовДвижения.ЗапланироватьПриходЗапаса(Запрос, ТекстыЗапроса, Регистры, ТекстЗапросаТабЧасть, Ложь);
КонецПроцедуры
#Область ПартионныйУчет
Функция ОписаниеРегистровУчетаЗатратИСебестоимости(Документ) Экспорт
ОписаниеРегистров = Новый Массив;
ОписаниеРегистров.Добавить(Метаданные.РегистрыНакопления.СебестоимостьТоваров);
Возврат ОписаниеРегистров;
КонецФункции
Функция УстановитьДополнительныеПараметрыОперацийУчетаЗатратИСебестоимости(Документ, Запрос = Неопределено) Экспорт
ДополнительныеПараметры = Новый Массив;
Если Запрос <> Неопределено Тогда
КонецЕсли;
Возврат ДополнительныеПараметры;
КонецФункции
Функция СформироватьДополнительныеТаблицыОперацийУчетаЗатратИСебестоимости(Документ, Запрос = Неопределено, ТекстыЗапроса = Неопределено) Экспорт
ДополнительныеТаблицы = Новый Массив;
ДополнительныеТаблицы.Добавить("ВтВидыЗапасов");
Если Запрос <> Неопределено Тогда
Если НЕ ПроведениеДокументов.ЕстьТаблицаЗапроса(ДополнительныеТаблицы[0], ТекстыЗапроса) Тогда
ТекстЗапросаВтВидыЗапасов(Запрос, ТекстыЗапроса);
КонецЕсли;
КонецЕсли;
Возврат ДополнительныеТаблицы;
КонецФункции
Функция ОписаниеОперацийУчетаСебестоимости(Документ) Экспорт
ОписаниеОпераций = Новый Массив;
#Область ВнутреннееПоступление_ПриходВыпущеннойПродукции
ТекстЗапроса =
"ВЫБРАТЬ
| ТаблицаДокумента.Дата КАК Период,
| ТаблицаДокумента.Ссылка КАК Ссылка,
| НЕОПРЕДЕЛЕНО КАК ДокументИсточник,
| НЕОПРЕДЕЛЕНО КАК ПериодДокументаИсточника,
| НЕОПРЕДЕЛЕНО КАК КорректируемыйДокумент,
|
| ВтВидыЗапасов.Организация КАК Организация,
| ВтВидыЗапасов.АналитикаУчетаНоменклатурыПоПолучателю КАК АналитикаУчетаНоменклатуры,
| ВтВидыЗапасов.ВидЗапасов КАК ВидЗапасов,
| ВтВидыЗапасов.ВидДеятельностиНДС КАК ВидДеятельностиНДС,
| ВтВидыЗапасов.ВидДеятельностиНДС КАК ВидДеятельностиНДСДокумента,
|
| ТаблицаДокумента.Ссылка КАК Партия,
| ВтВидыЗапасов.АналитикаУчетаПартий КАК АналитикаУчетаПартий,
| 0 КАК КодСтроки,
|
| ВтВидыЗапасов.АналитикаУчетаПартий КАК КорАналитикаУчетаПартий,
| ВЫБОР
| КОГДА ИСТИНА
| ТОГДА НЕОПРЕДЕЛЕНО
| КОНЕЦ КАК КорАналитикаУчетаНоменклатуры,
| ВЫБОР
| КОГДА ИСТИНА
| ТОГДА НЕОПРЕДЕЛЕНО
| КОНЕЦ КАК КорВидЗапасов,
| НЕОПРЕДЕЛЕНО КАК КорГруппаПродукции,
|
| НЕОПРЕДЕЛЕНО КАК Сделка,
| ТаблицаДокумента.Подразделение КАК Подразделение,
| ТаблицаДокумента.Ответственный КАК Менеджер,
| ВтВидыЗапасов.АналитикаФинансовогоУчета КАК ГруппаПродукции,
|
| ВтВидыЗапасов.Количество КАК Количество,
| ВтВидыЗапасов.СуммаУпр КАК Стоимость,
| ВтВидыЗапасов.СуммаУпр КАК СтоимостьБезНДС,
| ВтВидыЗапасов.СуммаРегл КАК СтоимостьРегл,
| ВтВидыЗапасов.СуммаУпр КАК СтоимостьУпр,
| 0 КАК НДСРегл,
| 0 КАК НДСУпр,
| ВтВидыЗапасов.СуммаЗабалансоваяУпр КАК СтоимостьЗабалансовая,
| ВтВидыЗапасов.СуммаЗабалансоваяРегл КАК СтоимостьЗабалансоваяРегл,
| 0 КАК ДопРасходы,
| 0 КАК ДопРасходыБезНДС,
| 0 КАК ДопРасходыРегл,
| 0 КАК ДопРасходыУпр,
| 0 КАК ПостояннаяРазница,
| 0 КАК ВременнаяРазница,
| 0 КАК КорСтоимость,
|
| ВтВидыЗапасов.ИдентификаторСтроки КАК ИдентификаторСтроки,
| (ВЫБОР
| КОГДА ИСТИНА
| ТОГДА ВтВидыЗапасов.ИдентификаторФинЗаписи КОНЕЦ) КАК ИдентификаторФинЗаписи,
|
| ВЫБОР
| КОГДА &УчетГотовойПродукцииПоПлановойСтоимости
| И втВидыЗапасов.ХозяйственнаяОперация <> ЗНАЧЕНИЕ(Перечисление.ХозяйственныеОперации.ВыпускПродукцииФиксированнаяСтоимость)
| ТОГДА ЗНАЧЕНИЕ(Перечисление.ХозяйственныеОперации.ПередачаПродукцииИзПроизводства)
| КОГДА ВтВидыЗапасов.ЦеховаяКладовая ИЛИ ВтВидыЗапасов.Работа
| ТОГДА ВтВидыЗапасов.ХозяйственнаяОперация
| КОГДА втВидыЗапасов.ХозяйственнаяОперация = ЗНАЧЕНИЕ(Перечисление.ХозяйственныеОперации.ВыпускПродукцииФиксированнаяСтоимость)
| ТОГДА ЗНАЧЕНИЕ(Перечисление.ХозяйственныеОперации.ПередачаПродукцииИзПроизводстваФиксированнаяСтоимость)
| ИНАЧЕ ЗНАЧЕНИЕ(Перечисление.ХозяйственныеОперации.ПередачаПродукцииИзПроизводства)
| КОНЕЦ КАК ХозяйственнаяОперация,
| ВЫБОР
| КОГДА &УчетГотовойПродукцииПоПлановойСтоимости
| И втВидыЗапасов.ХозяйственнаяОперация <> ЗНАЧЕНИЕ(Перечисление.ХозяйственныеОперации.ВыпускПродукцииФиксированнаяСтоимость)
| ТОГДА ЗНАЧЕНИЕ(Справочник.НастройкиХозяйственныхОпераций.ПередачаПродукцииИзПроизводства)
| КОГДА ВтВидыЗапасов.ЦеховаяКладовая ИЛИ ВтВидыЗапасов.Работа
| ТОГДА ВтВидыЗапасов.НастройкаХозяйственнойОперации
| ИНАЧЕ ЗНАЧЕНИЕ(Справочник.НастройкиХозяйственныхОпераций.ПередачаПродукцииИзПроизводства)
| КОНЕЦ КАК НастройкаХозяйственнойОперации
|ИЗ
| Документ.ПроизводствоБезЗаказа КАК ТаблицаДокумента
| ВНУТРЕННЕЕ СОЕДИНЕНИЕ ВтВидыЗапасов КАК ВтВидыЗапасов
| ПО ИСТИНА
|ГДЕ
| ТаблицаДокумента.Ссылка В (&Ссылка)
| И ВтВидыЗапасов.НаправлениеВыпуска В
| (ЗНАЧЕНИЕ(Перечисление.ХозяйственныеОперации.ВыпускПродукцииНаСклад),
| ЗНАЧЕНИЕ(Перечисление.ХозяйственныеОперации.ВыпускПродукцииВПодразделение))
|";
РасчетСебестоимостиПроведениеДокументов.ДобавитьОписаниеОперацииДляОтраженияВУчетеСебестоимости(
ОписаниеОпераций,
Перечисления.ОперацииУчетаСебестоимости.ВнутреннееПоступление,
ТекстЗапроса);
#КонецОбласти
#Область ВнутреннееПоступление_ПриходВыпущеннойПродукцииВПодразделение
ТекстЗапроса =
"ВЫБРАТЬ
| ТаблицаДокумента.Дата КАК Период,
| ТаблицаДокумента.Ссылка КАК Ссылка,
| НЕОПРЕДЕЛЕНО КАК ДокументИсточник,
| НЕОПРЕДЕЛЕНО КАК ПериодДокументаИсточника,
| НЕОПРЕДЕЛЕНО КАК КорректируемыйДокумент,
|
| ВтВидыЗапасов.Организация КАК Организация,
| (ВЫБОР
| КОГДА ВтВидыЗапасов.НаправлениеВыпуска = ЗНАЧЕНИЕ(Перечисление.ХозяйственныеОперации.ВыпускПродукцииВПодразделение)
| ИЛИ ВтВидыЗапасов.ЦеховаяКладовая
| ТОГДА ВтВидыЗапасов.АналитикаУчетаНоменклатурыПоПолучателю
| ИНАЧЕ ВтВидыЗапасов.АналитикаУчетаНоменклатурыПоОтправителю КОНЕЦ) КАК АналитикаУчетаНоменклатуры,
| ВтВидыЗапасов.ВидЗапасов КАК ВидЗапасов,
| ВтВидыЗапасов.ВидДеятельностиНДС КАК ВидДеятельностиНДС,
| ВтВидыЗапасов.ВидДеятельностиНДС КАК ВидДеятельностиНДСДокумента,
|
| ТаблицаДокумента.Ссылка КАК Партия,
| ВтВидыЗапасов.АналитикаУчетаПартий КАК АналитикаУчетаПартий,
| 0 КАК КодСтроки,
|
| ВтВидыЗапасов.АналитикаУчетаПартий КАК КорАналитикаУчетаПартий,
| НЕОПРЕДЕЛЕНО КАК КорАналитикаУчетаНоменклатуры,
| НЕОПРЕДЕЛЕНО КАК КорВидЗапасов,
| НЕОПРЕДЕЛЕНО КАК КорГруппаПродукции,
|
| НЕОПРЕДЕЛЕНО КАК Сделка,
| ТаблицаДокумента.Подразделение КАК Подразделение,
| ТаблицаДокумента.Ответственный КАК Менеджер,
| ВтВидыЗапасов.АналитикаФинансовогоУчета КАК ГруппаПродукции,
|
| ВтВидыЗапасов.Количество КАК Количество,
| ВтВидыЗапасов.СуммаУпр КАК Стоимость,
| ВтВидыЗапасов.СуммаУпр КАК СтоимостьБезНДС,
| ВтВидыЗапасов.СуммаРегл КАК СтоимостьРегл,
| ВтВидыЗапасов.СуммаУпр КАК СтоимостьУпр,
| 0 КАК НДСРегл,
| 0 КАК НДСУпр,
| 0 КАК СтоимостьЗабалансовая,
| 0 КАК СтоимостьЗабалансоваяРегл,
| 0 КАК ДопРасходы,
| 0 КАК ДопРасходыБезНДС,
| 0 КАК ДопРасходыРегл,
| 0 КАК ДопРасходыУпр,
| 0 КАК ПостояннаяРазница,
| 0 КАК ВременнаяРазница,
| 0 КАК КорСтоимость,
|
| ВЫБОР КОГДА &УчетГотовойПродукцииПоПлановойСтоимости
| И ВтВидыЗапасов.ХозяйственнаяОперация <> ЗНАЧЕНИЕ(Перечисление.ХозяйственныеОперации.ВыпускПродукцииФиксированнаяСтоимость)
| ТОГДА ЗНАЧЕНИЕ(Перечисление.РазделыУчетаСебестоимостиТоваров.ВыпускПродукции)
| ИНАЧЕ НЕОПРЕДЕЛЕНО
| КОНЕЦ КАК РазделУчета,
|
| ВтВидыЗапасов.ИдентификаторСтроки КАК ИдентификаторСтроки,
| ВтВидыЗапасов.ИдентификаторФинЗаписи КАК ИдентификаторФинЗаписи,
| ВтВидыЗапасов.ХозяйственнаяОперация КАК ХозяйственнаяОперация,
| ВтВидыЗапасов.НастройкаХозяйственнойОперации КАК НастройкаХозяйственнойОперации,
| ЗНАЧЕНИЕ(Перечисление.ТипыЗаписейПартий.Дополнение) КАК ТипЗаписи
|
|ИЗ
| Документ.ПроизводствоБезЗаказа КАК ТаблицаДокумента
| ВНУТРЕННЕЕ СОЕДИНЕНИЕ ВтВидыЗапасов КАК ВтВидыЗапасов
| ПО ИСТИНА
|ГДЕ
| ТаблицаДокумента.Ссылка В (&Ссылка)
| И (
| ВтВидыЗапасов.НаправлениеВыпуска = ЗНАЧЕНИЕ(Перечисление.ХозяйственныеОперации.СписаниеТоваровПоТребованию)
| ИЛИ
| ВтВидыЗапасов.НаправлениеВыпуска = ЗНАЧЕНИЕ(Перечисление.ХозяйственныеОперации.ВыпускПродукцииНаСклад)
| И НЕ ВтВидыЗапасов.ЦеховаяКладовая
| ИЛИ
| &УчетГотовойПродукцииПоПлановойСтоимости
| И ВтВидыЗапасов.НаправлениеВыпуска В (
| ЗНАЧЕНИЕ(Перечисление.ХозяйственныеОперации.ВыпускПродукцииНаСклад),
| ЗНАЧЕНИЕ(Перечисление.ХозяйственныеОперации.ВыпускПродукцииВПодразделение))
| И ВтВидыЗапасов.ХозяйственнаяОперация <> ЗНАЧЕНИЕ(Перечисление.ХозяйственныеОперации.ВыпускПродукцииФиксированнаяСтоимость)
| )
|";
РасчетСебестоимостиПроведениеДокументов.ДобавитьОписаниеОперацииДляОтраженияВУчетеСебестоимости(
ОписаниеОпераций,
Перечисления.ОперацииУчетаСебестоимости.ВнутреннееПоступление,
ТекстЗапроса);
#КонецОбласти
#Область СписаниеНаДругиеПартии_ПередачаВыпущеннойПродукцииНаСклад
ТекстЗапроса =
"ВЫБРАТЬ
| ТаблицаДокумента.Дата КАК Период,
| ТаблицаДокумента.Ссылка КАК Ссылка,
| НЕОПРЕДЕЛЕНО КАК КорректируемыйДокумент,
|
| ВтВидыЗапасов.Организация КАК Организация,
| (ВЫБОР
| КОГДА ВтВидыЗапасов.НаправлениеВыпуска = ЗНАЧЕНИЕ(Перечисление.ХозяйственныеОперации.ВыпускПродукцииВПодразделение)
| ИЛИ ВтВидыЗапасов.ЦеховаяКладовая
| ТОГДА ВтВидыЗапасов.АналитикаУчетаНоменклатурыПоПолучателю
| ИНАЧЕ ВтВидыЗапасов.АналитикаУчетаНоменклатурыПоОтправителю КОНЕЦ) КАК АналитикаУчетаНоменклатуры,
| ВтВидыЗапасов.ВидЗапасов КАК ВидЗапасов,
| ВтВидыЗапасов.ВидДеятельностиНДС КАК ВидДеятельностиНДС,
| ВтВидыЗапасов.ВидДеятельностиНДС КАК ВидДеятельностиНДСДокумента,
|
| ТаблицаДокумента.Ссылка КАК Партия,
| ВтВидыЗапасов.АналитикаУчетаПартий КАК АналитикаУчетаПартий,
|
| ВтВидыЗапасов.АналитикаУчетаПартий КАК КорАналитикаУчетаПартий,
| ВтВидыЗапасов.АналитикаУчетаНоменклатурыПоПолучателю КАК КорАналитикаУчетаНоменклатуры,
| ВтВидыЗапасов.ВидЗапасов КАК КорВидЗапасов,
| НЕОПРЕДЕЛЕНО КАК КорОрганизация,
| ТаблицаДокумента.Ссылка КАК КорПартия,
|
| НЕОПРЕДЕЛЕНО КАК Сделка,
| ТаблицаДокумента.Подразделение КАК Подразделение,
| ТаблицаДокумента.Ответственный КАК Менеджер,
| ВтВидыЗапасов.АналитикаФинансовогоУчета КАК ГруппаПродукции,
|
| ВтВидыЗапасов.Количество КАК Количество,
| ВтВидыЗапасов.СуммаУпр КАК Стоимость,
| ВтВидыЗапасов.СуммаУпр КАК СтоимостьБезНДС,
| ВтВидыЗапасов.СуммаРегл КАК СтоимостьРегл,
| ВтВидыЗапасов.СуммаУпр КАК СтоимостьУпр,
|
| ВЫБОР КОГДА &УчетГотовойПродукцииПоПлановойСтоимости
| И ВтВидыЗапасов.ХозяйственнаяОперация <> ЗНАЧЕНИЕ(Перечисление.ХозяйственныеОперации.ВыпускПродукцииФиксированнаяСтоимость)
| ТОГДА ЗНАЧЕНИЕ(Перечисление.РазделыУчетаСебестоимостиТоваров.ВыпускПродукции)
| ИНАЧЕ НЕОПРЕДЕЛЕНО
| КОНЕЦ КАК РазделУчета,
|
| ВтВидыЗапасов.ИдентификаторСтроки КАК ИдентификаторСтроки,
| (ВЫБОР
| КОГДА ИСТИНА
| ТОГДА ВтВидыЗапасов.ИдентификаторФинЗаписи КОНЕЦ) КАК ИдентификаторФинЗаписи,
| ВЫБОР
| КОГДА втВидыЗапасов.ХозяйственнаяОперация = ЗНАЧЕНИЕ(Перечисление.ХозяйственныеОперации.ВыпускПродукцииФиксированнаяСтоимость)
| ТОГДА ЗНАЧЕНИЕ(Перечисление.ХозяйственныеОперации.ПередачаПродукцииИзПроизводстваФиксированнаяСтоимость)
| ИНАЧЕ ЗНАЧЕНИЕ(Перечисление.ХозяйственныеОперации.ПередачаПродукцииИзПроизводства)
| КОНЕЦ КАК ХозяйственнаяОперация,
| ЗНАЧЕНИЕ(Справочник.НастройкиХозяйственныхОпераций.ПередачаПродукцииИзПроизводства) КАК НастройкаХозяйственнойОперации,
| ЗНАЧЕНИЕ(Перечисление.ТипыЗаписейПартий.Дополнение) КАК ТипЗаписи,
| ТаблицаДокумента.Ссылка КАК ДокументДвижения
|
|ИЗ
| Документ.ПроизводствоБезЗаказа КАК ТаблицаДокумента
| ВНУТРЕННЕЕ СОЕДИНЕНИЕ ВтВидыЗапасов КАК ВтВидыЗапасов
| ПО ИСТИНА
|ГДЕ
| ТаблицаДокумента.Ссылка В (&Ссылка)
| И (
| ВтВидыЗапасов.НаправлениеВыпуска = ЗНАЧЕНИЕ(Перечисление.ХозяйственныеОперации.ВыпускПродукцииНаСклад)
| И НЕ ВтВидыЗапасов.ЦеховаяКладовая
| ИЛИ
| &УчетГотовойПродукцииПоПлановойСтоимости
| И ВтВидыЗапасов.НаправлениеВыпуска В (
| ЗНАЧЕНИЕ(Перечисление.ХозяйственныеОперации.ВыпускПродукцииНаСклад),
| ЗНАЧЕНИЕ(Перечисление.ХозяйственныеОперации.ВыпускПродукцииВПодразделение))
| И ВтВидыЗапасов.ХозяйственнаяОперация <> ЗНАЧЕНИЕ(Перечисление.ХозяйственныеОперации.ВыпускПродукцииФиксированнаяСтоимость)
| )
|";
РасчетСебестоимостиПроведениеДокументов.ДобавитьОписаниеОперацииДляОтраженияВУчетеСебестоимости(
ОписаниеОпераций,
Перечисления.ОперацииУчетаСебестоимости.СписаниеНаДругиеПартии,
ТекстЗапроса);
#КонецОбласти
#Область СписаниеНаРасходыАктивы_СписаниеВыпущеннойПродукцииИРаботНаРасходы
ТекстЗапроса =
"ВЫБРАТЬ
| ТаблицаДокумента.Дата КАК Период,
| ТаблицаДокумента.Ссылка КАК Ссылка,
| &Ссылка КАК ДокументДвижения,
| НЕОПРЕДЕЛЕНО КАК ДокументИсточник,
| НЕОПРЕДЕЛЕНО КАК ПериодДокументаИсточника,
| НЕОПРЕДЕЛЕНО КАК КорректируемыйДокумент,
|
| ВтВидыЗапасов.Организация КАК Организация,
| ВтВидыЗапасов.АналитикаУчетаНоменклатурыПоПолучателю КАК АналитикаУчетаНоменклатуры,
| ВтВидыЗапасов.ВидЗапасов КАК ВидЗапасов,
| ВтВидыЗапасов.ВидДеятельностиНДС КАК ВидДеятельностиНДС,
| ВтВидыЗапасов.ВидДеятельностиНДС КАК ВидДеятельностиНДСДокумента,
|
| ТаблицаДокумента.Ссылка КАК Партия,
| ВтВидыЗапасов.АналитикаУчетаПартий КАК АналитикаУчетаПартий,
|
| НЕОПРЕДЕЛЕНО КАК КорОрганизация,
| НЕОПРЕДЕЛЕНО КАК КорАналитикаУчетаНоменклатуры,
| НЕОПРЕДЕЛЕНО КАК КорВидЗапасов,
| ВтВидыЗапасов.СтатьяРасходов КАК СтатьяРасходовАктивов,
| ВЫБОР КОГДА ВтВидыЗапасов.СтатьяРасходов ССЫЛКА ПланВидовХарактеристик.СтатьиРасходов
| ТОГДА ВтВидыЗапасов.АналитикаРасходов
| ИНАЧЕ ВтВидыЗапасов.АналитикаАктивовПассивов
| КОНЕЦ КАК АналитикаРасходовАктивов,
| ТаблицаДокумента.НаправлениеДеятельности КАК КорНаправлениеДеятельности,
|
| НЕОПРЕДЕЛЕНО КАК Сделка,
| ВтВидыЗапасов.ПодразделениеПолучательРасходов КАК Подразделение,
| ТаблицаДокумента.Ответственный КАК Менеджер,
| ВтВидыЗапасов.АналитикаФинансовогоУчета КАК ГруппаПродукции,
|
| ВтВидыЗапасов.Количество КАК Количество,
| ВтВидыЗапасов.СуммаУпр КАК Стоимость,
| ВтВидыЗапасов.СуммаУпр КАК СтоимостьБезНДС,
| ВтВидыЗапасов.СуммаРегл КАК СтоимостьРегл,
| ВтВидыЗапасов.СуммаУпр КАК СтоимостьУпр,
|
| ВЫБОР КОГДА &УчетГотовойПродукцииПоПлановойСтоимости
| И ВтВидыЗапасов.ХозяйственнаяОперация <> ЗНАЧЕНИЕ(Перечисление.ХозяйственныеОперации.ВыпускПродукцииФиксированнаяСтоимость)
| ТОГДА ЗНАЧЕНИЕ(Перечисление.РазделыУчетаСебестоимостиТоваров.ВыпускПродукции)
| ИНАЧЕ НЕОПРЕДЕЛЕНО
| КОНЕЦ КАК РазделУчета,
|
| ЗНАЧЕНИЕ(Перечисление.ТипыЗаписейПартий.Дополнение) КАК ТипЗаписи,
| ВтВидыЗапасов.НастройкаСчетовУчета КАК НастройкаСчетовУчета,
| ВтВидыЗапасов.ИдентификаторСтроки КАК ИдентификаторСтроки,
| ВтВидыЗапасов.ИдентификаторФинЗаписи КАК ИдентификаторФинЗаписи,
| ВЫБОР КОГДА ВтВидыЗапасов.ХозяйственнаяОперация = ЗНАЧЕНИЕ(Перечисление.ХозяйственныеОперации.ВыпускПродукцииФиксированнаяСтоимость)
| ТОГДА ЗНАЧЕНИЕ(Перечисление.ХозяйственныеОперации.СписаниеНаРасходыФиксированнаяСтоимость)
| ИНАЧЕ ЗНАЧЕНИЕ(Перечисление.ХозяйственныеОперации.СписаниеТоваровПоТребованию)
| КОНЕЦ КАК ХозяйственнаяОперация,
| ЗНАЧЕНИЕ(Справочник.НастройкиХозяйственныхОпераций.СписаниеТоваровПоТребованию) КАК НастройкаХозяйственнойОперации
|ИЗ
| Документ.ПроизводствоБезЗаказа КАК ТаблицаДокумента
| ВНУТРЕННЕЕ СОЕДИНЕНИЕ ВтВидыЗапасов КАК ВтВидыЗапасов
| ПО ИСТИНА
|ГДЕ
| ТаблицаДокумента.Ссылка В (&Ссылка)
| И ВтВидыЗапасов.НаправлениеВыпуска = ЗНАЧЕНИЕ(Перечисление.ХозяйственныеОперации.СписаниеТоваровПоТребованию)
|";
РасчетСебестоимостиПроведениеДокументов.ДобавитьОписаниеОперацииДляОтраженияВУчетеСебестоимости(
ОписаниеОпераций,
Перечисления.ОперацииУчетаСебестоимости.СписаниеНаРасходыАктивы,
ТекстЗапроса);
#КонецОбласти
#Область СписаниеНаДругиеПартии_РасходМатериаловСоСкладаИПриходНаПартиюПроизводства
ТекстЗапроса =
"ВЫБРАТЬ
| ТаблицаДокумента.Дата КАК Период,
| ТаблицаДокумента.Ссылка КАК Ссылка,
| НЕОПРЕДЕЛЕНО КАК КорректируемыйДокумент,
|
| ВтВидыЗапасов.Организация КАК Организация,
| ВтВидыЗапасов.АналитикаУчетаНоменклатурыПоОтправителю КАК АналитикаУчетаНоменклатуры,
| ВтВидыЗапасов.ВидЗапасов КАК ВидЗапасов,
| ВтВидыЗапасов.ВидДеятельностиНДС КАК ВидДеятельностиНДС,
| ВтВидыЗапасов.ВидДеятельностиНДС КАК ВидДеятельностиНДСДокумента,
|
| НЕОПРЕДЕЛЕНО КАК КорОрганизация,
| ВтВидыЗапасов.ПартияПроизводства КАК КорПартия,
| ВтВидыЗапасов.АналитикаУчетаНоменклатурыПоПолучателю КАК КорАналитикаУчетаНоменклатуры,
| ВтВидыЗапасов.КорВидЗапасов КАК КорВидЗапасов,
|
| НЕОПРЕДЕЛЕНО КАК Сделка,
| ТаблицаДокумента.Подразделение КАК Подразделение,
| ТаблицаДокумента.Ответственный КАК Менеджер,
| ВтВидыЗапасов.АналитикаФинансовогоУчета КАК ГруппаПродукции,
|
| ВтВидыЗапасов.Количество КАК Количество,
|
| ВтВидыЗапасов.ИдентификаторСтроки КАК ИдентификаторСтроки,
| ВтВидыЗапасов.ИдентификаторФинЗаписи КАК ИдентификаторФинЗаписи,
| ЗНАЧЕНИЕ(Перечисление.ХозяйственныеОперации.СписаниеРасходовНаПартииПроизводства) КАК ХозяйственнаяОперация,
| ЗНАЧЕНИЕ(Справочник.НастройкиХозяйственныхОпераций.СписаниеРасходовНаПартииПроизводства) КАК НастройкаХозяйственнойОперации
|ИЗ
| Документ.ПроизводствоБезЗаказа КАК ТаблицаДокумента
| ВНУТРЕННЕЕ СОЕДИНЕНИЕ ВтВидыЗапасов КАК ВтВидыЗапасов
| ПО ИСТИНА
|ГДЕ
| ТаблицаДокумента.Ссылка В (&Ссылка)
| И ВтВидыЗапасов.НаправлениеВыпуска =
| ЗНАЧЕНИЕ(Перечисление.ХозяйственныеОперации.СписаниеРасходовНаПартииПроизводства)
| И ВтВидыЗапасов.ХозяйственнаяОперация <>
| ЗНАЧЕНИЕ(Перечисление.ХозяйственныеОперации.ВыпускПродукцииФиксированнаяСтоимость)
|";
РасчетСебестоимостиПроведениеДокументов.ДобавитьОписаниеОперацииДляОтраженияВУчетеСебестоимости(
ОписаниеОпераций,
Перечисления.ОперацииУчетаСебестоимости.СписаниеНаДругиеПартии,
ТекстЗапроса);
#КонецОбласти
#Область ВнутреннееПоступление_ПриходВозвратныхОтходовНаПартиюПроизводства
ТекстЗапроса =
"ВЫБРАТЬ
| ТаблицаДокумента.Дата КАК Период,
| ТаблицаДокумента.Ссылка КАК Ссылка,
| НЕОПРЕДЕЛЕНО КАК КорректируемыйДокумент,
| НЕОПРЕДЕЛЕНО КАК ДокументИсточник,
| НЕОПРЕДЕЛЕНО КАК ПериодДокументаИсточника,
|
| ВтВидыЗапасов.Организация КАК Организация,
| ВтВидыЗапасов.АналитикаУчетаНоменклатурыПоПолучателю КАК АналитикаУчетаНоменклатуры,
| ВтВидыЗапасов.КорВидЗапасов КАК ВидЗапасов,
| ВтВидыЗапасов.ВидДеятельностиНДС КАК ВидДеятельностиНДС,
| ВтВидыЗапасов.ВидДеятельностиНДС КАК ВидДеятельностиНДСДокумента,
|
| ВтВидыЗапасов.ПартияПроизводства КАК Партия,
| НЕОПРЕДЕЛЕНО КАК АналитикаУчетаПартий,
| 0 КАК КодСтроки,
|
| ВтВидыЗапасов.АналитикаУчетаНоменклатурыПоОтправителю КАК КорАналитикаУчетаНоменклатуры,
| ВтВидыЗапасов.КорАналитикаФинансовогоУчета КАК КорГруппаПродукции,
| НЕОПРЕДЕЛЕНО КАК КорАналитикаУчетаПартий,
| НЕОПРЕДЕЛЕНО КАК КорВидЗапасов,
|
| НЕОПРЕДЕЛЕНО КАК Сделка,
| НЕОПРЕДЕЛЕНО КАК Подразделение,
| НЕОПРЕДЕЛЕНО КАК Менеджер,
| ВтВидыЗапасов.АналитикаФинансовогоУчета КАК ГруппаПродукции,
|
| ВтВидыЗапасов.Количество КАК Количество,
| ВтВидыЗапасов.СуммаУпр КАК Стоимость,
| ВтВидыЗапасов.СуммаУпр КАК СтоимостьБезНДС,
| ВтВидыЗапасов.СуммаРегл КАК СтоимостьРегл,
| ВтВидыЗапасов.СуммаУпр КАК СтоимостьУпр,
| 0 КАК НДСРегл,
| 0 КАК НДСУпр,
| ВтВидыЗапасов.СуммаЗабалансоваяУпр КАК СтоимостьЗабалансовая,
| ВтВидыЗапасов.СуммаЗабалансоваяРегл КАК СтоимостьЗабалансоваяРегл,
| 0 КАК ДопРасходы,
| 0 КАК ДопРасходыБезНДС,
| 0 КАК ДопРасходыРегл,
| 0 КАК ДопРасходыУпр,
| 0 КАК ПостояннаяРазница,
| 0 КАК ВременнаяРазница,
| 0 КАК КорСтоимость,
|
| ВтВидыЗапасов.ИдентификаторСтроки КАК ИдентификаторСтроки,
| ВтВидыЗапасов.ИдентификаторФинЗаписи КАК ИдентификаторФинЗаписи,
| ВтВидыЗапасов.ХозяйственнаяОперация КАК ХозяйственнаяОперация,
| ВтВидыЗапасов.НастройкаХозяйственнойОперации КАК НастройкаХозяйственнойОперации
|ИЗ
| Документ.ПроизводствоБезЗаказа КАК ТаблицаДокумента
| ВНУТРЕННЕЕ СОЕДИНЕНИЕ ВтВидыЗапасов КАК ВтВидыЗапасов
| ПО ИСТИНА
|ГДЕ
| ТаблицаДокумента.Ссылка В (&Ссылка)
| И ВтВидыЗапасов.НаправлениеВыпуска =
| ЗНАЧЕНИЕ(Перечисление.ХозяйственныеОперации.СписаниеРасходовНаПартииПроизводства)
| И ВтВидыЗапасов.ХозяйственнаяОперация =
| ЗНАЧЕНИЕ(Перечисление.ХозяйственныеОперации.ВыпускПродукцииФиксированнаяСтоимость)
|";
РасчетСебестоимостиПроведениеДокументов.ДобавитьОписаниеОперацииДляОтраженияВУчетеСебестоимости(
ОписаниеОпераций,
Перечисления.ОперацииУчетаСебестоимости.ВнутреннееПоступление,
ТекстЗапроса);
#КонецОбласти
Возврат ОписаниеОпераций;
КонецФункции
#КонецОбласти
#КонецОбласти
#КонецОбласти
#Область ПартииПроизводства
Процедура СформироватьПартииПроизводства(Объект) Экспорт
Запрос = Новый Запрос;
Запрос.МенеджерВременныхТаблиц = Новый МенеджерВременныхТаблиц;
Запрос.УстановитьПараметр("Ссылка", Объект.Ссылка);
ТекстыЗапроса = Новый Массив;
ТекстыЗапроса.Добавить(ТекстЗапросаТаблицаПродукции());
ТекстыЗапроса.Добавить(ТекстЗапросаПоляГруппЗатрат());
Запрос.Текст = СтрСоединить(ТекстыЗапроса, ОбщегоНазначения.РазделительПакетаЗапросов());
УстановитьПривилегированныйРежим(Истина);
Запрос.Выполнить();
УстановитьПривилегированныйРежим(Ложь);
ТекстВыборкаПолейПартий = ТекстЗапросаВыборкаПолейПартий();
Справочники.ПартииПроизводства.СформироватьПартииПроизводства(
Запрос,
ТекстВыборкаПолейПартий,
Истина,
Истина);
КонецПроцедуры
Функция ТекстЗапросаТаблицаПродукции()
Возврат
"ВЫБРАТЬ РАЗРЕШЕННЫЕ
| ВЫБОР
| КОГДА ТаблицаТовары.Ссылка.Исправление
| И ТаблицаТовары.Ссылка.ИсправлениеСохраняетПартииПроизводства
| ТОГДА ТаблицаТовары.Ссылка.ИсправляемыйДокумент
| ИНАЧЕ ТаблицаТовары.Ссылка
| КОНЕЦ КАК Ссылка,
| ТаблицаТовары.Ссылка.Дата КАК Дата,
| ТаблицаТовары.Ссылка.ГруппировкаЗатрат КАК ГруппировкаЗатрат,
| ТаблицаТовары.Ссылка.Организация КАК Организация,
| ТаблицаТовары.Ссылка.НаправлениеДеятельности КАК НаправлениеДеятельности,
| ТаблицаТовары.Ссылка.ВыпускПодДеятельность КАК ВыпускПодДеятельность,
| ТаблицаТовары.НомерСтроки КАК НомерСтроки,
| ТаблицаТовары.НомерГруппыЗатрат КАК НомерГруппыЗатрат,
| ТаблицаТовары.Номенклатура КАК Номенклатура,
| ТаблицаТовары.Характеристика КАК Характеристика,
| ТаблицаТовары.Спецификация КАК Спецификация,
| ТаблицаТовары.Серия КАК Серия,
| ТаблицаТовары.Назначение КАК Назначение
|ПОМЕСТИТЬ ТаблицаПродукция
|ИЗ
| Документ.ПроизводствоБезЗаказа.ВыходныеИзделия КАК ТаблицаТовары
|ГДЕ
| ТаблицаТовары.Ссылка В (&Ссылка)
| И ТаблицаТовары.Ссылка.Проведен
|
|ИНДЕКСИРОВАТЬ ПО
| Ссылка,
| НомерСтроки
|";
КонецФункции
Функция ТекстЗапросаПоляГруппЗатрат()
Возврат
"ВЫБРАТЬ РАЗРЕШЕННЫЕ
| ТаблицаПродукция.Ссылка КАК Ссылка,
| ТаблицаПродукция.НомерГруппыЗатрат КАК НомерГруппыЗатрат,
| ТаблицаПродукция.ГруппировкаЗатрат КАК ГруппировкаЗатрат,
| ВЫБОР
| КОГДА ИСТИНА
| ТОГДА ТаблицаПродукция.Организация
| КОНЕЦ КАК Организация,
| ТаблицаПродукция.ВыпускПодДеятельность КАК ВыпускПодДеятельность,
| МИНИМУМ(ВЫБОР
| КОГДА ТаблицаПродукция.ГруппировкаЗатрат В
| (ЗНАЧЕНИЕ(Перечисление.ГруппировкиЗатратВПроизводствеБезЗаказа.ЗатратыНеУказываются),
| ЗНАЧЕНИЕ(Перечисление.ГруппировкиЗатратВПроизводствеБезЗаказа.ПоДокументу),
| ЗНАЧЕНИЕ(Перечисление.ГруппировкиЗатратВПроизводствеБезЗаказа.ПоПродукции),
| ЗНАЧЕНИЕ(Перечисление.ГруппировкиЗатратВПроизводствеБезЗаказа.ПоПродукцииБезСерий),
| ЗНАЧЕНИЕ(Перечисление.ГруппировкиЗатратВПроизводствеБезЗаказа.ПоСпецификациям))
| ТОГДА ТаблицаПродукция.НаправлениеДеятельности
| ИНАЧЕ ЕСТЬNULL(СпрНазначения.НаправлениеДеятельности, НЕОПРЕДЕЛЕНО)
| КОНЕЦ) КАК НаправлениеДеятельности,
| МИНИМУМ(ВЫБОР
| КОГДА ТаблицаПродукция.ГруппировкаЗатрат В
| (ЗНАЧЕНИЕ(Перечисление.ГруппировкиЗатратВПроизводствеБезЗаказа.ПоПродукции),
| ЗНАЧЕНИЕ(Перечисление.ГруппировкиЗатратВПроизводствеБезЗаказа.ПоПродукцииИНазначениям),
| ЗНАЧЕНИЕ(Перечисление.ГруппировкиЗатратВПроизводствеБезЗаказа.ПоПродукцииБезСерий),
| ЗНАЧЕНИЕ(Перечисление.ГруппировкиЗатратВПроизводствеБезЗаказа.ПоПродукцииИНазначениямБезСерий))
| ТОГДА ТаблицаПродукция.Номенклатура
| ИНАЧЕ НЕОПРЕДЕЛЕНО
| КОНЕЦ) КАК Номенклатура,
| МИНИМУМ(ВЫБОР
| КОГДА ТаблицаПродукция.ГруппировкаЗатрат В
| (ЗНАЧЕНИЕ(Перечисление.ГруппировкиЗатратВПроизводствеБезЗаказа.ПоПродукции),
| ЗНАЧЕНИЕ(Перечисление.ГруппировкиЗатратВПроизводствеБезЗаказа.ПоПродукцииИНазначениям),
| ЗНАЧЕНИЕ(Перечисление.ГруппировкиЗатратВПроизводствеБезЗаказа.ПоПродукцииБезСерий),
| ЗНАЧЕНИЕ(Перечисление.ГруппировкиЗатратВПроизводствеБезЗаказа.ПоПродукцииИНазначениямБезСерий))
| ТОГДА ТаблицаПродукция.Характеристика
| ИНАЧЕ НЕОПРЕДЕЛЕНО
| КОНЕЦ) КАК Характеристика,
| МИНИМУМ(ВЫБОР
| КОГДА ТаблицаПродукция.ГруппировкаЗатрат В
| (ЗНАЧЕНИЕ(Перечисление.ГруппировкиЗатратВПроизводствеБезЗаказа.ПоСпецификациям),
| ЗНАЧЕНИЕ(Перечисление.ГруппировкиЗатратВПроизводствеБезЗаказа.ПоСпецификациямИНазначениям))
| ТОГДА ТаблицаПродукция.Спецификация
| ИНАЧЕ НЕОПРЕДЕЛЕНО
| КОНЕЦ) КАК Спецификация,
| МИНИМУМ(ВЫБОР
| КОГДА ТаблицаПродукция.ГруппировкаЗатрат В
| (ЗНАЧЕНИЕ(Перечисление.ГруппировкиЗатратВПроизводствеБезЗаказа.ПоСпецификациямИНазначениям),
| ЗНАЧЕНИЕ(Перечисление.ГруппировкиЗатратВПроизводствеБезЗаказа.ПоПродукцииИНазначениям),
| ЗНАЧЕНИЕ(Перечисление.ГруппировкиЗатратВПроизводствеБезЗаказа.ПоПродукцииИНазначениямБезСерий))
| ТОГДА ТаблицаПродукция.Назначение
| ИНАЧЕ НЕОПРЕДЕЛЕНО
| КОНЕЦ) КАК Назначение,
| МИНИМУМ(ВЫБОР
| КОГДА ТаблицаПродукция.ГруппировкаЗатрат В(
| ЗНАЧЕНИЕ(Перечисление.ГруппировкиЗатратВПроизводствеБезЗаказа.ПоПродукции),
| ЗНАЧЕНИЕ(Перечисление.ГруппировкиЗатратВПроизводствеБезЗаказа.ПоПродукцииИНазначениям))
| ТОГДА ТаблицаПродукция.Серия
| ИНАЧЕ НЕОПРЕДЕЛЕНО
| КОНЕЦ) КАК Серия
|ПОМЕСТИТЬ ПоляГруппЗатрат
|ИЗ
| ТаблицаПродукция КАК ТаблицаПродукция
|
| ЛЕВОЕ СОЕДИНЕНИЕ Справочник.Назначения КАК СпрНазначения
| ПО СпрНазначения.Ссылка = ТаблицаПродукция.Назначение
|
|СГРУППИРОВАТЬ ПО
| ТаблицаПродукция.Ссылка,
| ТаблицаПродукция.НомерГруппыЗатрат,
| ТаблицаПродукция.ГруппировкаЗатрат,
| ВЫБОР
| КОГДА ИСТИНА
| ТОГДА ТаблицаПродукция.Организация
| КОНЕЦ,
| ТаблицаПродукция.ВыпускПодДеятельность
|
|ИНДЕКСИРОВАТЬ ПО
| Организация,
| ВыпускПодДеятельность,
| НаправлениеДеятельности,
| Номенклатура,
| Характеристика,
| Спецификация,
| Назначение,
| Серия
|";
КонецФункции
Функция ТекстЗапросаВыборкаПолейПартий()
Возврат
"ВЫБРАТЬ РАЗРЕШЕННЫЕ
| ПоляГруппЗатрат.Ссылка КАК Документ,
| ПоляГруппЗатрат.НомерГруппыЗатрат КАК НомерГруппыЗатрат,
| ПоляГруппЗатрат.ГруппировкаЗатрат КАК ГруппировкаЗатрат,
| ПоляГруппЗатрат.Организация КАК Организация,
| ПоляГруппЗатрат.ВыпускПодДеятельность КАК ВидДеятельностиНДС,
| ОсновныеИзделия.Номенклатура КАК ОсновноеИзделиеНоменклатура,
| ОсновныеИзделия.Характеристика КАК ОсновноеИзделиеХарактеристика,
| СпрОсновныхИзделий.ГруппаАналитическогоУчета КАК ГруппаПродукции,
| НЕОПРЕДЕЛЕНО КАК ТипПроцесса,
| ПоляГруппЗатрат.НаправлениеДеятельности КАК НаправлениеДеятельности,
| ПоляГруппЗатрат.Номенклатура КАК Номенклатура,
| ПоляГруппЗатрат.Характеристика КАК Характеристика,
| ПоляГруппЗатрат.Спецификация КАК Спецификация,
| ПоляГруппЗатрат.Назначение КАК Назначение,
| ПоляГруппЗатрат.Серия КАК Серия
|ПОМЕСТИТЬ ВТПоляПартийПроизводства
|ИЗ
| ПоляГруппЗатрат КАК ПоляГруппЗатрат
|
| ВНУТРЕННЕЕ СОЕДИНЕНИЕ НомераСтрокОсновныхИзделий КАК НомераСтрокОсновныхИзделий
| ПО НомераСтрокОсновныхИзделий.Ссылка = ПоляГруппЗатрат.Ссылка
| И НомераСтрокОсновныхИзделий.НомерГруппыЗатрат = ПоляГруппЗатрат.НомерГруппыЗатрат
|
| ВНУТРЕННЕЕ СОЕДИНЕНИЕ ТаблицаПродукция КАК ОсновныеИзделия
| ПО ОсновныеИзделия.Ссылка = ПоляГруппЗатрат.Ссылка
| И ОсновныеИзделия.НомерСтроки = НомераСтрокОсновныхИзделий.НомерСтроки
|
| ЛЕВОЕ СОЕДИНЕНИЕ Справочник.Номенклатура КАК СпрОсновныхИзделий
| ПО СпрОсновныхИзделий.Ссылка = ОсновныеИзделия.Номенклатура
|";
КонецФункции
#КонецОбласти
#Область Серии
Функция ТекстЗапросаЗаполненияСтатусовУказанияСерийВыходныеИзделия()
ТекстЗапроса =
"ВЫБРАТЬ
| Товары.Номенклатура КАК Номенклатура,
| Товары.Характеристика КАК Характеристика,
| Товары.Назначение КАК Назначение,
| Товары.Серия КАК Серия,
| Товары.Получатель КАК Получатель,
| Товары.НомерГруппыЗатрат КАК НомерГруппыЗатрат,
| Товары.Количество КАК Количество,
| Товары.СтатусУказанияСерий КАК СтатусУказанияСерий,
| Товары.НомерСтроки КАК НомерСтроки
|ПОМЕСТИТЬ Товары
|ИЗ
| &Товары КАК Товары
|;
|
|
|ВЫБРАТЬ
| Товары.Номенклатура,
| Товары.Характеристика,
| Товары.Назначение,
| Товары.Серия,
| Товары.Получатель,
| Товары.НомерГруппыЗатрат,
| ВЫРАЗИТЬ(Товары.Номенклатура КАК Справочник.Номенклатура).ВидНоменклатуры КАК ВидНоменклатуры,
| СУММА(Товары.Количество) КАК Количество
|ПОМЕСТИТЬ ТоварыДляЗапроса
|ИЗ
| Товары КАК Товары
|
|СГРУППИРОВАТЬ ПО
| Товары.Номенклатура,
| Товары.Характеристика,
| Товары.Назначение,
| Товары.Серия,
| Товары.Получатель,
| Товары.НомерГруппыЗатрат
|;
|
|
|ВЫБРАТЬ
| Серии.Номенклатура,
| Серии.Характеристика,
| Серии.Назначение,
| Серии.Получатель,
| Серии.НомерГруппыЗатрат,
| Серии.Количество КАК Количество
|ПОМЕСТИТЬ Серии
|ИЗ
| &Серии КАК Серии
|;
|
|
|ВЫБРАТЬ
| Серии.Номенклатура,
| Серии.Характеристика,
| Серии.Назначение,
| Серии.Получатель,
| Серии.НомерГруппыЗатрат,
| СУММА(Серии.Количество) КАК Количество
|ПОМЕСТИТЬ СерииДляЗапроса
|ИЗ
| Серии КАК Серии
|
|СГРУППИРОВАТЬ ПО
| Серии.Номенклатура,
| Серии.Характеристика,
| Серии.Назначение,
| Серии.Получатель,
| Серии.НомерГруппыЗатрат
|;
|
|
|ВЫБРАТЬ
| Товары.НомерСтроки КАК НомерСтроки,
| Товары.СтатусУказанияСерий КАК СтарыйСтатусУказанияСерий,
| ВЫБОР
| КОГДА ПолитикиУчетаСерийСклад.ПолитикаУчетаСерий ЕСТЬ NULL
| ТОГДА 0
| КОГДА ПолитикиУчетаСерийСклад.ПолитикаУчетаСерий.УчитыватьСебестоимостьПоСериям
| ТОГДА ВЫБОР
| КОГДА Товары.Серия <> ЗНАЧЕНИЕ(Справочник.СерииНоменклатуры.ПустаяСсылка)
| ТОГДА 14
| ИНАЧЕ 13
| КОНЕЦ
| КОГДА ПолитикиУчетаСерийСклад.ПолитикаУчетаСерий.УказыватьПриПланированииОтгрузки
| ТОГДА ВЫБОР
| КОГДА НЕ Склады.ИспользоватьОрдернуюСхемуПриПоступлении
| ИЛИ &Дата < Склады.ДатаНачалаОрдернойСхемыПриПоступлении
| ТОГДА ВЫБОР
| КОГДА ТоварыДляЗапроса.Количество = ЕСТЬNULL(СерииДляЗапроса.Количество, 0)
| И ТоварыДляЗапроса.Количество > 0
| ТОГДА 10
| ИНАЧЕ 9
| КОНЕЦ
| ИНАЧЕ 0
| КОНЕЦ
| КОГДА ПолитикиУчетаСерийСклад.ПолитикаУчетаСерий.УказыватьПриПланированииОтбора
| ТОГДА ВЫБОР
| КОГДА НЕ Склады.ИспользоватьОрдернуюСхемуПриПоступлении
| ИЛИ &Дата < Склады.ДатаНачалаОрдернойСхемыПриПоступлении
| ТОГДА ВЫБОР
| КОГДА ТоварыДляЗапроса.Количество = ЕСТЬNULL(СерииДляЗапроса.Количество, 0)
| И ТоварыДляЗапроса.Количество > 0
| ТОГДА 8
| ИНАЧЕ 7
| КОНЕЦ
| ИНАЧЕ 0
| КОНЕЦ
| КОГДА ПолитикиУчетаСерийСклад.ПолитикаУчетаСерий.УказыватьПриПриемке
| И (НЕ Склады.ИспользоватьОрдернуюСхемуПриПоступлении
| ИЛИ &Дата < Склады.ДатаНачалаОрдернойСхемыПриПоступлении)
| И ПолитикиУчетаСерийСклад.ПолитикаУчетаСерий.УказыватьПриПриемкеПродукцииИзПроизводства
| ТОГДА ВЫБОР
| КОГДА ПолитикиУчетаСерийСклад.ПолитикаУчетаСерий.УчитыватьОстаткиСерий
| ТОГДА ВЫБОР
| КОГДА ТоварыДляЗапроса.Количество = ЕСТЬNULL(СерииДляЗапроса.Количество, 0)
| И ТоварыДляЗапроса.Количество > 0
| ТОГДА 4
| ИНАЧЕ 3
| КОНЕЦ
| ИНАЧЕ ВЫБОР
| КОГДА ТоварыДляЗапроса.Количество = ЕСТЬNULL(СерииДляЗапроса.Количество, 0)
| И ТоварыДляЗапроса.Количество > 0
| ТОГДА 2
| ИНАЧЕ 1
| КОНЕЦ
| КОНЕЦ
| КОГДА ПолитикиУчетаСерийОбщие.ПолитикаУчетаСерий.УказыватьПриПроизводствеПродукции
| ТОГДА ВЫБОР
| КОГДА ТоварыДляЗапроса.Количество = ЕСТЬNULL(СерииДляЗапроса.Количество, 0)
| И ТоварыДляЗапроса.Количество > 0
| ТОГДА 2
| ИНАЧЕ 1
| КОНЕЦ
| ИНАЧЕ 0
| КОНЕЦ КАК СтатусУказанияСерий
|ПОМЕСТИТЬ Статусы
|ИЗ
| Товары КАК Товары
|
| ЛЕВОЕ СОЕДИНЕНИЕ ТоварыДляЗапроса КАК ТоварыДляЗапроса
| ПО Товары.Номенклатура = ТоварыДляЗапроса.Номенклатура
| И Товары.Характеристика = ТоварыДляЗапроса.Характеристика
| И Товары.Назначение = ТоварыДляЗапроса.Назначение
| И Товары.Серия = ТоварыДляЗапроса.Серия
| И Товары.Получатель = ТоварыДляЗапроса.Получатель
| И Товары.НомерГруппыЗатрат = ТоварыДляЗапроса.НомерГруппыЗатрат
|
| ЛЕВОЕ СОЕДИНЕНИЕ СерииДляЗапроса КАК СерииДляЗапроса
| ПО ТоварыДляЗапроса.Номенклатура = СерииДляЗапроса.Номенклатура
| И ТоварыДляЗапроса.Характеристика = СерииДляЗапроса.Характеристика
| И ТоварыДляЗапроса.Назначение = СерииДляЗапроса.Назначение
| И ТоварыДляЗапроса.Получатель = СерииДляЗапроса.Получатель
| И ТоварыДляЗапроса.НомерГруппыЗатрат = СерииДляЗапроса.НомерГруппыЗатрат
|
| ЛЕВОЕ СОЕДИНЕНИЕ Справочник.ВидыНоменклатуры.ПолитикиУчетаСерий КАК ПолитикиУчетаСерийСклад
| ПО ПолитикиУчетаСерийСклад.Склад = ТоварыДляЗапроса.Получатель
| И ТоварыДляЗапроса.ВидНоменклатуры = ПолитикиУчетаСерийСклад.Ссылка
|
| ЛЕВОЕ СОЕДИНЕНИЕ Справочник.Склады КАК Склады
| ПО ПолитикиУчетаСерийСклад.Склад = Склады.Ссылка
|
| ЛЕВОЕ СОЕДИНЕНИЕ Справочник.ВидыНоменклатуры КАК ПолитикиУчетаСерийОбщие
| ПО ПолитикиУчетаСерийОбщие.Ссылка = ТоварыДляЗапроса.ВидНоменклатуры
|;
|
|
|ВЫБРАТЬ
| Статусы.НомерСтроки КАК НомерСтроки,
| Статусы.СтатусУказанияСерий КАК СтатусУказанияСерий
|ИЗ
| Статусы КАК Статусы
|ГДЕ
| Статусы.СтатусУказанияСерий <> Статусы.СтарыйСтатусУказанияСерий
|
|УПОРЯДОЧИТЬ ПО
| НомерСтроки";
Возврат ТекстЗапроса;
КонецФункции
Функция ТекстЗапросаЗаполненияСтатусовУказанияСерийМатериалыИРаботы()
ТекстЗапроса =
"ВЫБРАТЬ
| Товары.Склад,
| Товары.Номенклатура,
| Товары.Серия,
| Товары.СтатусУказанияСерий,
| Товары.НомерСтроки
|ПОМЕСТИТЬ Товары
|ИЗ
| &Товары КАК Товары
|;
|
|
|ВЫБРАТЬ
| Товары.НомерСтроки КАК НомерСтроки,
| Товары.СтатусУказанияСерий КАК СтарыйСтатусУказанияСерий,
| ВЫБОР
| КОГДА ПолитикиУчетаСерийСклад.ПолитикаУчетаСерий ЕСТЬ NULL
| ТОГДА 0
| КОГДА ПолитикиУчетаСерийСклад.ПолитикаУчетаСерий.УчитыватьСебестоимостьПоСериям
| ТОГДА ВЫБОР
| КОГДА Товары.Серия <> ЗНАЧЕНИЕ(Справочник.СерииНоменклатуры.ПустаяСсылка)
| ТОГДА 14
| ИНАЧЕ 13
| КОНЕЦ
| КОГДА ПолитикиУчетаСерийСклад.ПолитикаУчетаСерий.УказыватьПриПланированииОтгрузки
| ТОГДА ВЫБОР
| КОГДА Товары.Серия <> ЗНАЧЕНИЕ(Справочник.СерииНоменклатуры.ПустаяСсылка)
| ТОГДА 10
| ИНАЧЕ 9
| КОНЕЦ
| КОГДА ПолитикиУчетаСерийСклад.ПолитикаУчетаСерий.УказыватьПриПланированииОтбора
| ТОГДА ВЫБОР
| КОГДА ПолитикиУчетаСерийСклад.ПолитикаУчетаСерий.УчетСерийПоFEFO
| ТОГДА ВЫБОР
| КОГДА Товары.Серия <> ЗНАЧЕНИЕ(Справочник.СерииНоменклатуры.ПустаяСсылка)
| ТОГДА 6
| ИНАЧЕ 5
| КОНЕЦ
| ИНАЧЕ ВЫБОР
| КОГДА Товары.Серия <> ЗНАЧЕНИЕ(Справочник.СерииНоменклатуры.ПустаяСсылка)
| ТОГДА 8
| ИНАЧЕ 7
| КОНЕЦ
| КОНЕЦ
| КОГДА ПолитикиУчетаСерийСклад.ПолитикаУчетаСерий.УказыватьПоФактуОтбора
| И ПолитикиУчетаСерийСклад.ПолитикаУчетаСерий.УказыватьПриОтгрузкеНаВнутренниеНужды
| ТОГДА ВЫБОР
| КОГДА ПолитикиУчетаСерийСклад.ПолитикаУчетаСерий.УчитыватьОстаткиСерий
| ТОГДА ВЫБОР
| КОГДА Товары.Серия <> ЗНАЧЕНИЕ(Справочник.СерииНоменклатуры.ПустаяСсылка)
| ТОГДА 4
| ИНАЧЕ 3
| КОНЕЦ
| ИНАЧЕ ВЫБОР
| КОГДА Товары.Серия <> ЗНАЧЕНИЕ(Справочник.СерииНоменклатуры.ПустаяСсылка)
| ТОГДА 2
| ИНАЧЕ 1
| КОНЕЦ
| КОНЕЦ
| КОГДА ПолитикиУчетаСерийОбщие.ПолитикаУчетаСерий.УказыватьПриРасходеМатериалов
| ТОГДА ВЫБОР
| КОГДА Товары.Серия <> ЗНАЧЕНИЕ(Справочник.СерииНоменклатуры.ПустаяСсылка)
| ТОГДА 2
| ИНАЧЕ 1
| КОНЕЦ
| ИНАЧЕ 0
| КОНЕЦ КАК СтатусУказанияСерий
|ПОМЕСТИТЬ Статусы
|ИЗ
| Товары КАК Товары
|
| ЛЕВОЕ СОЕДИНЕНИЕ Справочник.Номенклатура КАК СпрНоменклатура
| ПО СпрНоменклатура.Ссылка = Товары.Номенклатура
|
| ЛЕВОЕ СОЕДИНЕНИЕ Справочник.ВидыНоменклатуры.ПолитикиУчетаСерий КАК ПолитикиУчетаСерийСклад
| ПО ПолитикиУчетаСерийСклад.Склад = Товары.Склад
| И ПолитикиУчетаСерийСклад.Ссылка = СпрНоменклатура.ВидНоменклатуры
|
| ЛЕВОЕ СОЕДИНЕНИЕ Справочник.ВидыНоменклатуры КАК ПолитикиУчетаСерийОбщие
| ПО ПолитикиУчетаСерийОбщие.Ссылка = СпрНоменклатура.ВидНоменклатуры
|;
|
|
|ВЫБРАТЬ
| Статусы.НомерСтроки,
| Статусы.СтатусУказанияСерий
|ИЗ
| Статусы КАК Статусы
|ГДЕ
| Статусы.СтатусУказанияСерий <> Статусы.СтарыйСтатусУказанияСерий
|
|УПОРЯДОЧИТЬ ПО
| Статусы.НомерСтроки";
Возврат ТекстЗапроса;
КонецФункции
#КонецОбласти
#Область Печать
Процедура Печать(МассивОбъектов, ПараметрыПечати, КоллекцияПечатныхФорм, ОбъектыПечати, ПараметрыВывода) Экспорт
Если УправлениеПечатью.НужноПечататьМакет(КоллекцияПечатныхФорм, "Накладная") Тогда
УправлениеПечатью.ВывестиТабличныйДокументВКоллекцию(
КоллекцияПечатныхФорм,
"Накладная",
НСтр("ru = 'Выпуск продукции'"),
СформироватьПечатнуюФормуНакладной(МассивОбъектов, ОбъектыПечати));
КонецЕсли;
Если УправлениеПечатью.НужноПечататьМакет(КоллекцияПечатныхФорм, "ПередачаМатериаловВПроизводство") Тогда
УправлениеПечатью.ВывестиТабличныйДокументВКоллекцию(
КоллекцияПечатныхФорм,
"ПередачаМатериаловВПроизводство",
НСтр("ru = 'Передача материалов в производство'"),
ПечатьПередачаМатериаловВПроизводство(МассивОбъектов, ОбъектыПечати));
КонецЕсли;
ПроизводствоБезЗаказаЛокализация.Печать(МассивОбъектов, ПараметрыПечати, КоллекцияПечатныхФорм, ОбъектыПечати, ПараметрыВывода);
КонецПроцедуры
Функция СформироватьПечатнуюФормуНакладной(МассивОбъектов, ОбъектыПечати)
УстановитьПривилегированныйРежим(Истина);
КолонкаКодов = ФормированиеПечатныхФорм.ДополнительнаяКолонкаПечатныхФормДокументов();
ИмяКолонкиКодов = КолонкаКодов.ИмяКолонки;
ПредставлениеКолонкиКодов = КолонкаКодов.ПредставлениеКолонки;
Макет = УправлениеПечатью.МакетПечатнойФормы("Документ.ДвижениеПродукцииИМатериалов.ПФ_MXL_Накладная");
Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ
| ДанныеДокумента.Ссылка КАК Ссылка,
| ДанныеДокумента.Номер КАК Номер,
| ДанныеДокумента.Дата КАК Дата,
| ДанныеДокумента.ИсправляемыйДокумент.Номер КАК НомерИсправляемогоДокумента,
| ДанныеДокумента.ИсправляемыйДокумент.Дата КАК ДатаИсправляемогоДокумента
|ИЗ
| Документ.ПроизводствоБезЗаказа КАК ДанныеДокумента
|ГДЕ
| ДанныеДокумента.Ссылка В(&МассивДокументов)
|
|УПОРЯДОЧИТЬ ПО
| ДанныеДокумента.Ссылка
|;
|
|
|ВЫБРАТЬ
| ТаблицаТовары.Ссылка КАК Ссылка,
| ВЫБОР
| КОГДА ИСТИНА
| ТОГДА ТаблицаТовары.Ссылка.Организация
| КОНЕЦ КАК Организация,
| ТаблицаТовары.НомерСтроки КАК НомерСтроки,
| ТаблицаТовары.Номенклатура КАК Номенклатура,
| ТаблицаТовары.Характеристика КАК Характеристика,
| ВЫБОР
| КОГДА ЕСТЬNULL(ТаблицаТовары.Назначение.ДвиженияПоСкладскимРегистрам, ЛОЖЬ)
| ТОГДА ТаблицаТовары.Назначение
| ИНАЧЕ ЗНАЧЕНИЕ(Справочник.Назначения.ПустаяСсылка)
| КОНЕЦ КАК Назначение,
| ТаблицаТовары.Получатель КАК Склад,
| ТаблицаТовары.Ссылка.Подразделение КАК Подразделение,
| ТаблицаТовары.Упаковка КАК Упаковка,
| ТаблицаТовары.КоличествоУпаковок КАК Количество,
| ТаблицаТовары.Серия КАК Серия
|ПОМЕСТИТЬ ВтТовары
|ИЗ
| Документ.ПроизводствоБезЗаказа.ВыходныеИзделия КАК ТаблицаТовары
|
|ГДЕ
| ТаблицаТовары.Ссылка В(&МассивДокументов)
| И НЕ ТаблицаТовары.СтатусУказанияСерий В (4, 6, 8, 10)
| И ТаблицаТовары.Номенклатура.ТипНоменклатуры В (
| ЗНАЧЕНИЕ(Перечисление.ТипыНоменклатуры.Товар),
| ЗНАЧЕНИЕ(Перечисление.ТипыНоменклатуры.МногооборотнаяТара))
| И ТИПЗНАЧЕНИЯ(ТаблицаТовары.Получатель) = ТИП(Справочник.Склады)
| И НЕ ТаблицаТовары.Получатель.ЦеховаяКладовая
|
|ОБЪЕДИНИТЬ ВСЕ
|
|ВЫБРАТЬ
| ТаблицаСерии.Ссылка,
| ВЫБОР
| КОГДА ИСТИНА
| ТОГДА ТаблицаСерии.Ссылка.Организация
| КОНЕЦ,
| МАКСИМУМ(ТаблицаТовары.НомерСтроки),
| ТаблицаСерии.Номенклатура,
| ТаблицаСерии.Характеристика,
| ТаблицаСерии.Назначение,
| ТаблицаСерии.Получатель,
| ТаблицаСерии.Ссылка.Подразделение,
| ЗНАЧЕНИЕ(Справочник.УпаковкиЕдиницыИзмерения.ПустаяСсылка),
| ТаблицаСерии.Количество,
| ТаблицаСерии.Серия
|ИЗ
| Документ.ПроизводствоБезЗаказа.ВыходныеИзделияСерии КАК ТаблицаСерии
| ВНУТРЕННЕЕ СОЕДИНЕНИЕ Документ.ПроизводствоБезЗаказа.ВыходныеИзделия КАК ТаблицаТовары
| ПО ТаблицаСерии.Ссылка = ТаблицаТовары.Ссылка
| И ТаблицаСерии.Номенклатура = ТаблицаТовары.Номенклатура
| И ТаблицаСерии.Характеристика = ТаблицаТовары.Характеристика
| И ТаблицаСерии.Назначение = ТаблицаТовары.Назначение
| И ТаблицаСерии.Получатель = ТаблицаТовары.Получатель
| И ТаблицаСерии.НомерГруппыЗатрат = ТаблицаТовары.НомерГруппыЗатрат
|ГДЕ
| ТаблицаСерии.Ссылка В(&МассивДокументов)
| И ТаблицаСерии.Количество <> 0
| И ТаблицаТовары.Номенклатура.ТипНоменклатуры В (
| ЗНАЧЕНИЕ(Перечисление.ТипыНоменклатуры.Товар),
| ЗНАЧЕНИЕ(Перечисление.ТипыНоменклатуры.МногооборотнаяТара))
| И ТИПЗНАЧЕНИЯ(ТаблицаТовары.Получатель) = ТИП(Справочник.Склады)
| И НЕ ТаблицаТовары.Получатель.ЦеховаяКладовая
|
|СГРУППИРОВАТЬ ПО
| ТаблицаСерии.Ссылка,
| ВЫБОР
| КОГДА ИСТИНА
| ТОГДА ТаблицаСерии.Ссылка.Организация
| КОНЕЦ,
| ТаблицаСерии.Получатель,
| ТаблицаСерии.Номенклатура,
| ТаблицаСерии.Характеристика,
| ТаблицаСерии.Назначение,
| ТаблицаСерии.Серия,
| ТаблицаСерии.Количество
|
|ИМЕЮЩИЕ
| МАКСИМУМ(ТаблицаТовары.СтатусУказанияСерий) В (4, 6, 8, 10)
|
|ОБЪЕДИНИТЬ ВСЕ
|
|ВЫБРАТЬ
| ТаблицаТовары.Ссылка КАК Ссылка,
| ВЫБОР
| КОГДА ИСТИНА
| ТОГДА ТаблицаТовары.Ссылка.Организация
| КОНЕЦ КАК Организация,
| ТаблицаТовары.НомерСтроки КАК НомерСтроки,
| ТаблицаТовары.Номенклатура КАК Номенклатура,
| ТаблицаТовары.Характеристика КАК Характеристика,
| ВЫБОР
| КОГДА ЕСТЬNULL(ТаблицаТовары.Назначение.ДвиженияПоСкладскимРегистрам, ЛОЖЬ)
| ТОГДА ТаблицаТовары.Назначение
| ИНАЧЕ ЗНАЧЕНИЕ(Справочник.Назначения.ПустаяСсылка)
| КОНЕЦ КАК Назначение,
| ТаблицаТовары.Получатель КАК Склад,
| ТаблицаТовары.Подразделение КАК Подразделение,
| ТаблицаТовары.Упаковка КАК Упаковка,
| ТаблицаТовары.КоличествоУпаковок КАК Количество,
| ТаблицаТовары.Серия КАК Серия
|ИЗ
| Документ.ПроизводствоБезЗаказа.ПобочныеИзделия КАК ТаблицаТовары
|
|ГДЕ
| ТаблицаТовары.Ссылка В(&МассивДокументов)
| И НЕ ТаблицаТовары.СтатусУказанияСерий В (4, 6, 8, 10)
| И ТаблицаТовары.Номенклатура.ТипНоменклатуры В (
| ЗНАЧЕНИЕ(Перечисление.ТипыНоменклатуры.Товар),
| ЗНАЧЕНИЕ(Перечисление.ТипыНоменклатуры.МногооборотнаяТара))
| И ТИПЗНАЧЕНИЯ(ТаблицаТовары.Получатель) = ТИП(Справочник.Склады)
| И НЕ ТаблицаТовары.Получатель.ЦеховаяКладовая
|
|ОБЪЕДИНИТЬ ВСЕ
|
|ВЫБРАТЬ
| ТаблицаСерии.Ссылка,
| ВЫБОР
| КОГДА ИСТИНА
| ТОГДА ТаблицаТовары.Ссылка.Организация
| КОНЕЦ,
| МАКСИМУМ(ТаблицаТовары.НомерСтроки),
| ТаблицаСерии.Номенклатура,
| ТаблицаСерии.Характеристика,
| ТаблицаСерии.Назначение,
| ТаблицаСерии.Получатель,
| ТаблицаТовары.Подразделение,
| ЗНАЧЕНИЕ(Справочник.УпаковкиЕдиницыИзмерения.ПустаяСсылка),
| ТаблицаСерии.Количество,
| ТаблицаСерии.Серия
|ИЗ
| Документ.ПроизводствоБезЗаказа.ПобочныеИзделияСерии КАК ТаблицаСерии
|
| ВНУТРЕННЕЕ СОЕДИНЕНИЕ Документ.ПроизводствоБезЗаказа.ПобочныеИзделия КАК ТаблицаТовары
| ПО ТаблицаСерии.Ссылка = ТаблицаТовары.Ссылка
| И ТаблицаСерии.Номенклатура = ТаблицаТовары.Номенклатура
| И ТаблицаСерии.Характеристика = ТаблицаТовары.Характеристика
| И ТаблицаСерии.Назначение = ТаблицаТовары.Назначение
| И ТаблицаСерии.Получатель = ТаблицаТовары.Получатель
| И ТаблицаСерии.НомерГруппыЗатрат = ТаблицаТовары.НомерГруппыЗатрат
|
|ГДЕ
| ТаблицаСерии.Ссылка В(&МассивДокументов)
| И ТаблицаСерии.Количество <> 0
| И ТаблицаТовары.Номенклатура.ТипНоменклатуры В (
| ЗНАЧЕНИЕ(Перечисление.ТипыНоменклатуры.Товар),
| ЗНАЧЕНИЕ(Перечисление.ТипыНоменклатуры.МногооборотнаяТара))
| И ТИПЗНАЧЕНИЯ(ТаблицаТовары.Получатель) = ТИП(Справочник.Склады)
| И НЕ ТаблицаТовары.Получатель.ЦеховаяКладовая
|
|СГРУППИРОВАТЬ ПО
| ТаблицаСерии.Ссылка,
| ВЫБОР
| КОГДА ИСТИНА
| ТОГДА ТаблицаТовары.Ссылка.Организация
| КОНЕЦ,
| ТаблицаСерии.Получатель,
| ТаблицаТовары.Подразделение,
| ТаблицаСерии.Номенклатура,
| ТаблицаСерии.Характеристика,
| ТаблицаСерии.Назначение,
| ТаблицаСерии.Серия,
| ТаблицаСерии.Количество
|
|ИМЕЮЩИЕ
| МАКСИМУМ(ТаблицаТовары.СтатусУказанияСерий) В (4, 6, 8, 10)
|;
|
|
|ВЫБРАТЬ
| ТаблицаТовары.Ссылка КАК Ссылка,
| ТаблицаТовары.Организация КАК Организация,
| ТаблицаТовары.Организация.Префикс КАК Префикс,
| МИНИМУМ(ТаблицаТовары.НомерСтроки) КАК НомерСтроки,
| ТаблицаТовары.Номенклатура КАК Номенклатура,
| &КодАртикул КАК КодАртикул,
| ТаблицаТовары.Номенклатура.НаименованиеПолное КАК ТоварНаименование,
| ТаблицаТовары.Характеристика КАК Характеристика,
| ТаблицаТовары.Характеристика.Наименование КАК ХарактеристикаНаименование,
| ТаблицаТовары.Серия.Наименование КАК СерияНаименование,
| ВЫБОР
| КОГДА ТаблицаТовары.Упаковка = ЗНАЧЕНИЕ(Справочник.УпаковкиЕдиницыИзмерения.ПустаяСсылка)
| ТОГДА ТаблицаТовары.Номенклатура.ЕдиницаИзмерения.Наименование
| ИНАЧЕ ТаблицаТовары.Упаковка.Наименование
| КОНЕЦ КАК ЕдиницаИзмерения,
| СУММА(ТаблицаТовары.Количество) КАК Количество,
| ЗНАЧЕНИЕ(Перечисление.ХозяйственныеОперации.ПередачаПродукцииИзПроизводства) КАК НаправлениеВыпуска,
| ТаблицаТовары.Склад.Представление КАК ПредставлениеПолучателя,
| ТаблицаТовары.Подразделение.Представление КАК ПредставлениеПодразделения,
| &ТипПолучателяСклад КАК ТипПолучателя
|ИЗ
| ВтТовары КАК ТаблицаТовары
|
|СГРУППИРОВАТЬ ПО
| ТаблицаТовары.Ссылка,
| ТаблицаТовары.Организация,
| ТаблицаТовары.Номенклатура,
| ТаблицаТовары.Характеристика,
| ВЫБОР
| КОГДА ТаблицаТовары.Упаковка = ЗНАЧЕНИЕ(Справочник.УпаковкиЕдиницыИзмерения.ПустаяСсылка)
| ТОГДА ТаблицаТовары.Номенклатура.ЕдиницаИзмерения.Наименование
| ИНАЧЕ ТаблицаТовары.Упаковка.Наименование
| КОНЕЦ,
| ТаблицаТовары.Серия,
| ТаблицаТовары.Склад,
| ТаблицаТовары.Подразделение
|
|УПОРЯДОЧИТЬ ПО
| Ссылка,
| Организация,
| НомерСтроки
|
|ИТОГИ
| МАКСИМУМ(ТипПолучателя)
|ПО
| Ссылка,
| Организация,
| ПредставлениеПодразделения,
| ПредставлениеПолучателя";
Запрос.Текст = СтрЗаменить(Запрос.Текст,
"&КодАртикул",
?(ИмяКолонкиКодов = "", """""", "ТаблицаТовары.Номенклатура." + ИмяКолонкиКодов));
Запрос.УстановитьПараметр("МассивДокументов", МассивОбъектов);
Запрос.УстановитьПараметр("ТипПолучателяСклад", НСтр("ru = 'Склад'", ОбщегоНазначения.КодОсновногоЯзыка()));
ТабличныйДокумент = Новый ТабличныйДокумент;
ТабличныйДокумент.ПолеСлева = 5;
ТабличныйДокумент.ПолеСправа = 5;
ТабличныйДокумент.РазмерКолонтитулаСверху = 0;
ТабличныйДокумент.РазмерКолонтитулаСнизу = 0;
ТабличныйДокумент.АвтоМасштаб = Истина;
ТабличныйДокумент.ОриентацияСтраницы = ОриентацияСтраницы.Ландшафт;
ТабличныйДокумент.ИмяПараметровПечати = "ПАРАМЕТРЫ_ПЕЧАТИ_ВыпускПродукции_Накладная";
МассивРезультатов = Запрос.ВыполнитьПакет();
ДанныеПечати = МассивРезультатов[0].Выбрать();
ВыборкаПоДокументам = МассивРезультатов[МассивРезультатов.ВГраница()].Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам);
ПервыйДокумент = Истина;
Пока ДанныеПечати.Следующий() Цикл
СтруктураПоиска = Новый Структура("Ссылка", ДанныеПечати.Ссылка);
ВыборкаПоДокументам.НайтиСледующий(СтруктураПоиска);
ВыборкаПоОрганизациям = ВыборкаПоДокументам.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам);
Пока ВыборкаПоОрганизациям.Следующий() Цикл
ВыборкаПоПодразделениям = ВыборкаПоОрганизациям.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам);
Пока ВыборкаПоПодразделениям.Следующий() Цикл
ВыборкаПоПолучателям = ВыборкаПоПодразделениям.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам);
Пока ВыборкаПоПолучателям.Следующий() Цикл
Если Не ПервыйДокумент Тогда
ТабличныйДокумент.ВывестиГоризонтальныйРазделительСтраниц();
КонецЕсли;
НомерСтраницы = 1;
ПервыйДокумент = Ложь;
НомерСтрокиНачало = ТабличныйДокумент.ВысотаТаблицы + 1;
ОбластьМакета = Макет.ПолучитьОбласть("Шапка");
ОбластьМакета.Параметры.Заполнить(ДанныеПечати);
ОбластьМакета.Параметры.ПредставлениеПодразделения = ВыборкаПоПолучателям.ПредставлениеПодразделения;
ОбластьМакета.Параметры.ПредставлениеПолучателя = ВыборкаПоПолучателям.ПредставлениеПолучателя;
ОбластьМакета.Параметры.ТипПолучателя = ВыборкаПоПолучателям.ТипПолучателя;
ПараметрыОбласти = Новый Структура;
ПараметрыОбласти.Вставить(
"ТекстЗаголовка",
ОбщегоНазначенияУТКлиентСервер.СформироватьЗаголовокДокумента(
ДанныеПечати,
НСтр("ru = 'Выпуск продукции'", ОбщегоНазначения.КодОсновногоЯзыка())));
ПараметрыОбласти.Вставить(
"ПредставлениеОрганизации",
ФормированиеПечатныхФорм.ОписаниеОрганизации(
ФормированиеПечатныхФорм.СведенияОЮрФизЛице(
ВыборкаПоОрганизациям.Организация,
ДанныеПечати.Дата),
"ПолноеНаименование,ИНН,ЮридическийАдрес,Телефоны"));
ОбластьМакета.Параметры.Заполнить(ПараметрыОбласти);
ТабличныйДокумент.Вывести(ОбластьМакета);
МассивВыводимыхОбластей = Новый Массив;
ОбластьЗаголовокТаблицы = Макет.ПолучитьОбласть(?(ИмяКолонкиКодов = "", "ЗаголовокТаб", "ЗаголовокТабСКодом"));
ОбластьМакета = Макет.ПолучитьОбласть(?(ИмяКолонкиКодов = "", "Строка", "СтрокаСКодом"));
ОбластьПодвала = Макет.ПолучитьОбласть("Подвал");
Если ИмяКолонкиКодов <> "" Тогда
ОбластьЗаголовокТаблицы.Параметры.Колонка = ПредставлениеКолонкиКодов;
КонецЕсли;
СтрокаТовары = ВыборкаПоПолучателям.Выбрать();
КоличествоСтрок = СтрокаТовары.Количество();
НомерСтроки = 0;
ПараметрыСтрокиТовары = Новый Структура("НомерСтроки,ТоварНаименование");
Пока СтрокаТовары.Следующий() Цикл
ДопПараметрыПредставлениеНоменклатуры = НоменклатураКлиентСервер.ДополнительныеПараметрыПредставлениеНоменклатурыДляПечати();
ДопПараметрыПредставлениеНоменклатуры.КодОсновногоЯзыка = ОбщегоНазначения.КодОсновногоЯзыка();
НомерСтроки = НомерСтроки + 1;
ПараметрыСтрокиТовары.НомерСтроки = НомерСтроки;
ПараметрыСтрокиТовары.ТоварНаименование =
НоменклатураКлиентСервер.ПредставлениеНоменклатурыДляПечати(
СтрокаТовары.ТоварНаименование,
СтрокаТовары.ХарактеристикаНаименование,,
СтрокаТовары.СерияНаименование,
ДопПараметрыПредставлениеНоменклатуры);
ОбластьМакета.Параметры.Заполнить(СтрокаТовары);
ОбластьМакета.Параметры.Заполнить(ПараметрыСтрокиТовары);
Если НомерСтроки = 1 Тогда
ОбластьЗаголовокТаблицы.Параметры.НомерСтраницы =
СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
НСтр("ru = 'Страница %1'", ОбщегоНазначения.КодОсновногоЯзыка()), НомерСтраницы);
ТабличныйДокумент.Вывести(ОбластьЗаголовокТаблицы);
Иначе
МассивВыводимыхОбластей.Очистить();
МассивВыводимыхОбластей.Добавить(ОбластьМакета);
Если НомерСтроки = КоличествоСтрок Тогда
МассивВыводимыхОбластей.Добавить(ОбластьПодвала);
КонецЕсли;
Если НомерСтроки <> 1 И Не ТабличныйДокумент.ПроверитьВывод(МассивВыводимыхОбластей) Тогда
НомерСтраницы = НомерСтраницы + 1;
ТабличныйДокумент.ВывестиГоризонтальныйРазделительСтраниц();
ОбластьЗаголовокТаблицы.Параметры.НомерСтраницы =
СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
НСтр("ru = 'Страница %1'", ОбщегоНазначения.КодОсновногоЯзыка()), НомерСтраницы);
ТабличныйДокумент.Вывести(ОбластьЗаголовокТаблицы);
КонецЕсли;
КонецЕсли;
ТабличныйДокумент.Вывести(ОбластьМакета);
КонецЦикла;
ОбластьПодвала.Параметры.ИтоговаяСтрока =
СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
НСтр("ru = 'Всего наименований %1'", ОбщегоНазначения.КодОсновногоЯзыка()), СтрокаТовары.Количество());
ТабличныйДокумент.Вывести(ОбластьПодвала);
УправлениеПечатью.ЗадатьОбластьПечатиДокумента(
ТабличныйДокумент,
НомерСтрокиНачало,
ОбъектыПечати,
ДанныеПечати.Ссылка);
КонецЦикла;
КонецЦикла;
КонецЦикла;
КонецЦикла;
ТабличныйДокумент.АвтоМасштаб = Истина;
Возврат ТабличныйДокумент;
КонецФункции
Функция ПечатьПередачаМатериаловВПроизводство(МассивОбъектов, ОбъектыПечати)
КолонкаКодов = ФормированиеПечатныхФорм.ДополнительнаяКолонкаПечатныхФормДокументов();
ДопКолонка = КолонкаКодов.ИмяКолонки;
ПредставлениеКолонкиКодов = КолонкаКодов.ПредставлениеКолонки;
ВыводитьДопКолонку = ЗначениеЗаполнено(ДопКолонка);
Запрос= Новый Запрос;
Запрос.УстановитьПараметр("МассивОбъектов", МассивОбъектов);
Запрос.Текст =
"ВЫБРАТЬ
| Реквизиты.Ссылка КАК Ссылка,
| Реквизиты.Номер КАК Номер,
| Реквизиты.Дата КАК Дата,
| Реквизиты.ИсправляемыйДокумент.Номер КАК НомерИсправляемогоДокумента,
| Реквизиты.ИсправляемыйДокумент.Дата КАК ДатаИсправляемогоДокумента
|ИЗ
| Документ.ПроизводствоБезЗаказа.МатериалыИРаботы КАК ТаблицаТовары
|
| ВНУТРЕННЕЕ СОЕДИНЕНИЕ Документ.ПроизводствоБезЗаказа КАК Реквизиты
| ПО Реквизиты.Ссылка = ТаблицаТовары.Ссылка
|ГДЕ
| ТаблицаТовары.Ссылка В(&МассивОбъектов)
| И ТаблицаТовары.Номенклатура.ТипНоменклатуры В (
| ЗНАЧЕНИЕ(Перечисление.ТипыНоменклатуры.Товар),
| ЗНАЧЕНИЕ(Перечисление.ТипыНоменклатуры.МногооборотнаяТара))
| И НЕ ЕСТЬNULL(ТаблицаТовары.Склад.ЦеховаяКладовая, ИСТИНА)
|
|СГРУППИРОВАТЬ ПО
| Реквизиты.Ссылка,
| Реквизиты.Номер,
| Реквизиты.Дата,
| Реквизиты.ИсправляемыйДокумент
|
|УПОРЯДОЧИТЬ ПО
| Реквизиты.Ссылка
|;
|
|
|ВЫБРАТЬ
| ТаблицаТовары.Ссылка КАК Ссылка,
| ПРЕДСТАВЛЕНИЕССЫЛКИ(ТаблицаТовары.ВидЗапасов.Организация) КАК Организация,
| ТаблицаТовары.ВидЗапасов.Организация.Префикс КАК Префикс,
| ПРЕДСТАВЛЕНИЕССЫЛКИ(ТаблицаТовары.АналитикаУчетаНоменклатуры.МестоХранения) КАК Склад,
| ПРЕДСТАВЛЕНИЕССЫЛКИ(ТаблицаТовары.Подразделение) КАК Подразделение,
| ТаблицаТовары.НомерСтроки КАК НомерСтроки,
| &ДопКолонкаКлюч,
| ТаблицаТовары.АналитикаУчетаНоменклатуры.Номенклатура.НаименованиеПолное КАК Номенклатура,
| ТаблицаТовары.АналитикаУчетаНоменклатуры.Характеристика.НаименованиеПолное КАК Характеристика,
| ВЫБОР
| КОГДА ТаблицаТовары.Упаковка = ЗНАЧЕНИЕ(Справочник.УпаковкиЕдиницыИзмерения.ПустаяСсылка) ТОГДА
| ПРЕДСТАВЛЕНИЕССЫЛКИ(ТаблицаТовары.АналитикаУчетаНоменклатуры.Номенклатура.ЕдиницаИзмерения)
| ИНАЧЕ
| ПРЕДСТАВЛЕНИЕССЫЛКИ(ТаблицаТовары.Упаковка)
| КОНЕЦ КАК Упаковка,
| ТаблицаТовары.КоличествоУпаковок КАК Количество
|ИЗ
| Документ.ПроизводствоБезЗаказа.ВидыЗапасовМатериалыИРаботы КАК ТаблицаТовары
|ГДЕ
| ТаблицаТовары.Ссылка В(&МассивОбъектов)
| И ТаблицаТовары.АналитикаУчетаНоменклатуры.Номенклатура.ТипНоменклатуры В (
| ЗНАЧЕНИЕ(Перечисление.ТипыНоменклатуры.Товар),
| ЗНАЧЕНИЕ(Перечисление.ТипыНоменклатуры.МногооборотнаяТара))
| И НЕ ЕСТЬNULL(ТаблицаТовары.АналитикаУчетаНоменклатуры.МестоХранения.ЦеховаяКладовая, ИСТИНА)
| И ТаблицаТовары.Ссылка.УпаковкиВВидахЗапасов
|
|ОБЪЕДИНИТЬ ВСЕ
|
|ВЫБРАТЬ
| ТаблицаТовары.Ссылка КАК Ссылка,
| ПРЕДСТАВЛЕНИЕССЫЛКИ(ТаблицаТовары.Ссылка.Организация) КАК Организация,
| ТаблицаТовары.Ссылка.Организация.Префикс КАК Префикс,
| ПРЕДСТАВЛЕНИЕССЫЛКИ(ТаблицаТовары.Склад) КАК Склад,
| ПРЕДСТАВЛЕНИЕССЫЛКИ(ТаблицаТовары.Подразделение) КАК Подразделение,
| ТаблицаТовары.НомерСтроки КАК НомерСтроки,
| &ДопКолонкаНоменклатура,
| ТаблицаТовары.Номенклатура.НаименованиеПолное КАК Номенклатура,
| ТаблицаТовары.Характеристика.НаименованиеПолное КАК Характеристика,
| ВЫБОР
| КОГДА ТаблицаТовары.Упаковка = ЗНАЧЕНИЕ(Справочник.УпаковкиЕдиницыИзмерения.ПустаяСсылка) ТОГДА
| ПРЕДСТАВЛЕНИЕССЫЛКИ(ТаблицаТовары.Номенклатура.ЕдиницаИзмерения)
| ИНАЧЕ
| ПРЕДСТАВЛЕНИЕССЫЛКИ(ТаблицаТовары.Упаковка)
| КОНЕЦ КАК Упаковка,
| ТаблицаТовары.КоличествоУпаковок КАК Количество
|ИЗ
| Документ.ПроизводствоБезЗаказа.МатериалыИРаботы КАК ТаблицаТовары
|ГДЕ
| ТаблицаТовары.Ссылка В(&МассивОбъектов)
| И ТаблицаТовары.Номенклатура.ТипНоменклатуры В (
| ЗНАЧЕНИЕ(Перечисление.ТипыНоменклатуры.Товар),
| ЗНАЧЕНИЕ(Перечисление.ТипыНоменклатуры.МногооборотнаяТара))
| И НЕ ЕСТЬNULL(ТаблицаТовары.Склад.ЦеховаяКладовая, ИСТИНА)
| И НЕ ТаблицаТовары.Ссылка.УпаковкиВВидахЗапасов
|
|УПОРЯДОЧИТЬ ПО
| Ссылка,
| НомерСтроки
|
|ИТОГИ
| МАКСИМУМ(Префикс)
|ПО
| Ссылка,
| Организация,
| Подразделение,
| Склад
|";
Если ВыводитьДопКолонку Тогда
Запрос.Текст = СтрЗаменить(Запрос.Текст, "&ДопКолонкаКлюч,", "ТаблицаТовары.АналитикаУчетаНоменклатуры.Номенклатура." + ДопКолонка +" КАК ДопКолонка,");
Запрос.Текст = СтрЗаменить(Запрос.Текст, "&ДопКолонкаНоменклатура,", "ТаблицаТовары.Номенклатура." + ДопКолонка +" КАК ДопКолонка,");
Иначе
Запрос.Текст = СтрЗаменить(Запрос.Текст, "&ДопКолонкаКлюч,", "");
Запрос.Текст = СтрЗаменить(Запрос.Текст, "&ДопКолонкаНоменклатура,", "");
КонецЕсли;
ТабДокумент = Новый ТабличныйДокумент;
ТабДокумент.ИмяПараметровПечати = "ПАРАМЕТРЫ_ПЕЧАТИ_ПередачаМатериаловВПроизводство";
РеквизитыДокумента = Новый Структура("Номер, Дата, Префикс, ДатаИсправляемогоДокумента, НомерИсправляемогоДокумента");
СинонимДокумента = Строка(Перечисления.ХозяйственныеОперации.ПередачаМатериаловВПроизводство);
Макет =
УправлениеПечатью.МакетПечатнойФормы("Документ.ДвижениеПродукцииИМатериалов.ПФ_MXL_ПередачаМатериаловВПроизводство");
ОбластьЗаголовок = Макет.ПолучитьОбласть("Заголовок");
ОбластьПодписи = Макет.ПолучитьОбласть("Подписи");
Если ВыводитьДопКолонку Тогда
ОбластьСтрока = Макет.ПолучитьОбласть("СтрокаДопКолонка");
ОбластьШапкаТаблицы = Макет.ПолучитьОбласть("ШапкаТаблицыДопКолонка");
Иначе
ОбластьСтрока = Макет.ПолучитьОбласть("Строка");
ОбластьШапкаТаблицы = Макет.ПолучитьОбласть("ШапкаТаблицы");
КонецЕсли;
МассивРезультатов = Запрос.ВыполнитьПакет();
ДанныеПечати = МассивРезультатов[0].Выбрать();
ВыборкаПоДокументам = МассивРезультатов[1].Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам);
ПервыйДокумент = Истина;
Пока ДанныеПечати.Следующий() Цикл
СтруктураПоиска = Новый Структура("Ссылка", ДанныеПечати.Ссылка);
ВыборкаПоДокументам.НайтиСледующий(СтруктураПоиска);
ВыборкаПоОрганизациям = ВыборкаПоДокументам.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам);
Пока ВыборкаПоОрганизациям.Следующий() Цикл
ВыборкаПоПодразделениям = ВыборкаПоОрганизациям.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам);
Пока ВыборкаПоПодразделениям.Следующий() Цикл
ВыборкаПоСкладам = ВыборкаПоПодразделениям.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам);
Пока ВыборкаПоСкладам.Следующий() Цикл
НомерСтрокиНачало = ТабДокумент.ВысотаТаблицы + 1;
Если Не ПервыйДокумент Тогда
ТабДокумент.ВывестиГоризонтальныйРазделительСтраниц();
КонецЕсли;
ПервыйДокумент = Ложь;
ЗаполнитьЗначенияСвойств(РеквизитыДокумента, ДанныеПечати);
ОбластьЗаголовок.Параметры.Заполнить(ВыборкаПоСкладам);
ПараметрыОбласти = Новый Структура;
ПараметрыОбласти.Вставить(
"ТекстЗаголовка",
ОбщегоНазначенияУТКлиентСервер.СформироватьЗаголовокДокумента(
РеквизитыДокумента,
СинонимДокумента));
ПараметрыОбласти.Вставить("Организация", ВыборкаПоСкладам.Организация);
ОбластьЗаголовок.Параметры.Заполнить(ПараметрыОбласти);
ШтрихкодированиеПечатныхФорм.ВывестиШтрихкодВТабличныйДокумент(
ТабДокумент,
Макет,
ОбластьЗаголовок,
ВыборкаПоДокументам.Ссылка);
ТабДокумент.Вывести(ОбластьЗаголовок);
Если ВыводитьДопКолонку Тогда
ОбластьШапкаТаблицы.Параметры.ДопКолонка = ПредставлениеКолонкиКодов;
КонецЕсли;
ТабДокумент.Вывести(ОбластьШапкаТаблицы);
ИндексСтроки = 1;
ВыборкаСтроки = ВыборкаПоСкладам.Выбрать();
Пока ВыборкаСтроки.Следующий() Цикл
ДопПараметрыПредставлениеНоменклатуры = НоменклатураКлиентСервер.ДополнительныеПараметрыПредставлениеНоменклатурыДляПечати();
ДопПараметрыПредставлениеНоменклатуры.КодОсновногоЯзыка = ОбщегоНазначения.КодОсновногоЯзыка();
ОбластьСтрока.Параметры.Заполнить(ВыборкаСтроки);
ОбластьСтрока.Параметры.Номенклатура = НоменклатураКлиентСервер.ПредставлениеНоменклатурыДляПечати(
ВыборкаСтроки.Номенклатура,
ВыборкаСтроки.Характеристика,
,
,
ДопПараметрыПредставлениеНоменклатуры);
ОбластьСтрока.Параметры.НомерСтроки = ИндексСтроки;
ТабДокумент.Вывести(ОбластьСтрока);
ИндексСтроки = ИндексСтроки + 1;
КонецЦикла;
ТабДокумент.Вывести(ОбластьПодписи);
УправлениеПечатью.ЗадатьОбластьПечатиДокумента(
ТабДокумент,
НомерСтрокиНачало,
ОбъектыПечати,
ВыборкаПоДокументам.Ссылка);
КонецЦикла;
КонецЦикла;
КонецЦикла;
КонецЦикла;
Возврат ТабДокумент;
КонецФункции
#КонецОбласти
Функция ПорядокОбработкиДокументаПриИзмененииНаправленияДеятельности(Форма) Экспорт
ПорядокОбработкиДокумента = НаправленияДеятельностиСервер.ПорядокОбработкиДокументаПриИзмененииНаправленияДеятельности();
ПорядокОбработкиДокумента.ИменаТабличныхЧастейДляОчисткиНекорректныхНазначений = "ВыходныеИзделия,ПобочныеИзделия,МатериалыИРаботы";
ТаблицаУсловий = НаправленияДеятельностиСервер.УсловияОбработкиНазначенийВСтроках("ТипНоменклатуры");
ПорядокОбработкиДокумента.УсловияОбработкиСтрок.Вставить("ВыходныеИзделия", ТаблицаУсловий);
ПорядокОбработкиДокумента.УсловияОбработкиСтрок.Вставить("ПобочныеИзделия", ТаблицаУсловий);
ПорядокОбработкиДокумента.УсловияОбработкиСтрок.Вставить("МатериалыИРаботы", ТаблицаУсловий);
Возврат ПорядокОбработкиДокумента;
КонецФункции
#Область ОбновлениеИнформационнойБазы
Процедура ПриДобавленииОбработчиковОбновления(Обработчики) Экспорт
Обработчик = Обработчики.Добавить();
Обработчик.Процедура = "Документы.ПроизводствоБезЗаказа.ОбработатьДанныеДляПереходаНаНовуюВерсию";
Обработчик.Версия = "2.5.25.26";
Обработчик.РежимВыполнения = "Отложенно";
Обработчик.Идентификатор = Новый УникальныйИдентификатор("22e5af9c-ec3d-4253-83a1-3a0812b5dd49");
Обработчик.Многопоточный = Истина;
Обработчик.ПроцедураЗаполненияДанныхОбновления = "Документы.ПроизводствоБезЗаказа.ЗарегистрироватьДанныеКОбработкеДляПереходаНаНовуюВерсию";
Обработчик.ПроцедураПроверки = "ОбновлениеИнформационнойБазы.ДанныеОбновленыНаНовуюВерсиюПрограммы";
Обработчик.Порядок = Перечисления.ПорядокОбработчиковОбновления.Некритичный;
СписокОписаний = Новый Массив;
СписокОписаний.Добавить(НСтр("ru = 'Обновление документов ""Производство без заказа"":'"));
СписокОписаний.Добавить(НСтр("ru = '- заполняет служебный реквизит ""Исправление не сохраняет партии производства"".'"));
Обработчик.Комментарий = СтрСоединить(СписокОписаний, Символы.ПС);
Читаемые = Новый Массив;
Читаемые.Добавить(Метаданные.Документы.ПроизводствоБезЗаказа.ПолноеИмя());
Читаемые.Добавить(Метаданные.РегистрыСведений.РеестрДокументов.ПолноеИмя());
Обработчик.ЧитаемыеОбъекты = СтрСоединить(Читаемые, ",");
Изменяемые = Новый Массив;
Изменяемые.Добавить(Метаданные.Документы.ПроизводствоБезЗаказа.ПолноеИмя());
Обработчик.ИзменяемыеОбъекты = СтрСоединить(Изменяемые, ",");
Блокируемые = Новый Массив;
Блокируемые.Добавить(Метаданные.Документы.ПроизводствоБезЗаказа.ПолноеИмя());
Обработчик.БлокируемыеОбъекты = СтрСоединить(Блокируемые, ",");
Обработчик.ПриоритетыВыполнения = ОбновлениеИнформационнойБазы.ПриоритетыВыполненияОбработчика();
НоваяСтрока = Обработчик.ПриоритетыВыполнения.Добавить();
НоваяСтрока.Процедура = "РегистрыСведений.РеестрДокументов.ОбработатьДанныеДляПереходаНаНовуюВерсию";
НоваяСтрока.Порядок = "После";
КонецПроцедуры
Процедура ЗарегистрироватьДанныеКОбработкеДляПереходаНаНовуюВерсию(Параметры) Экспорт
ПараметрыВыборки = Параметры.ПараметрыВыборки;
ПараметрыВыборки.ПолныеИменаОбъектов = "Документ.ПроизводствоБезЗаказа";
ПараметрыВыборки.ПоляУпорядочиванияПриРаботеПользователей.Добавить("Дата УБЫВ");
ПараметрыВыборки.ПоляУпорядочиванияПриОбработкеДанных.Добавить("Дата УБЫВ");
ПараметрыВыборки.СпособВыборки = ОбновлениеИнформационнойБазы.СпособВыборкиСсылки();
Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ РАЗЛИЧНЫЕ
| РеквизитыДокумента.Ссылка КАК Ссылка
|ИЗ
| Документ.ПроизводствоБезЗаказа КАК РеквизитыДокумента
|ГДЕ
| НЕ РеквизитыДокумента.Исправление
| И НЕ РеквизитыДокумента.ИсправлениеСохраняетПартииПроизводства
| И НЕ ИСТИНА В(
| ВЫБРАТЬ ПЕРВЫЕ 1
| ИСТИНА
| ИЗ
| РегистрСведений.РеестрДокументов КАК СторнирующиеДокументы
|
| ЛЕВОЕ СОЕДИНЕНИЕ Документ.ПроизводствоБезЗаказа КАК РеквизитыИсправления
| ПО РеквизитыИсправления.Ссылка = СторнирующиеДокументы.Ссылка
|
| ГДЕ
| СторнирующиеДокументы.СторнируемыйДокумент = РеквизитыДокумента.Ссылка
| И СторнирующиеДокументы.Проведен
| И НЕ СторнирующиеДокументы.ДополнительнаяЗапись
| И НЕ ЕСТЬNULL(РеквизитыИсправления.ИсправлениеСохраняетПартииПроизводства, ЛОЖЬ)
| )
|";
ОбновлениеИнформационнойБазы.ОтметитьКОбработке(Параметры, Запрос.Выполнить().Выгрузить().ВыгрузитьКолонку("Ссылка"));
КонецПроцедуры
Процедура ОбработатьДанныеДляПереходаНаНовуюВерсию(Параметры) Экспорт
ПолноеИмяОбъекта = "Документ.ПроизводствоБезЗаказа";
ОбновляемыеДанные = ОбновлениеИнформационнойБазы.ДанныеДляОбновленияВМногопоточномОбработчике(Параметры);
Если ОбновляемыеДанные.Количество() = 0 Тогда
Параметры.ОбработкаЗавершена =
ОбновлениеИнформационнойБазы.ОбработкаДанныхЗавершена(Параметры.Очередь, ПолноеИмяОбъекта);
Возврат;
КонецЕсли;
Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ
| ОбновляемыеДанные.Ссылка КАК Ссылка
|ПОМЕСТИТЬ ОбновляемыеДанные
|ИЗ
| &ОбновляемыеДанные КАК ОбновляемыеДанные
|
|ИНДЕКСИРОВАТЬ ПО
| Ссылка
|;
|
|
|ВЫБРАТЬ
| ОбновляемыеДанные.Ссылка КАК Ссылка,
| РеквизитыДокумента.ВерсияДанных КАК ВерсияДанных
|ИЗ
| ОбновляемыеДанные КАК ОбновляемыеДанные
|
| ЛЕВОЕ СОЕДИНЕНИЕ Документ.ПроизводствоБезЗаказа КАК РеквизитыДокумента
| ПО ОбновляемыеДанные.Ссылка = РеквизитыДокумента.Ссылка
|";
Запрос.УстановитьПараметр("ОбновляемыеДанные", ОбновляемыеДанные);
Выборка = Запрос.Выполнить().Выбрать();
Пока Выборка.Следующий() Цикл
ПричинаИсключения = 0;
НачатьТранзакцию();
Попытка
ПричинаИсключения = 1;
Блокировка = Новый БлокировкаДанных;
Блокировка.Добавить(ПолноеИмяОбъекта).УстановитьЗначение("Ссылка", Выборка.Ссылка);
Блокировка.Заблокировать();
ДокументОбъект = ОбновлениеИнформационнойБазыУТ.ПроверитьПолучитьОбъект(Выборка.Ссылка, Выборка.ВерсияДанных, Параметры.Очередь);
ОбъектИзменен = Ложь;
Если ДокументОбъект <> Неопределено Тогда
ДокументОбъект.ИсправлениеСохраняетПартииПроизводства = Истина;
ОбъектИзменен = Истина;
КонецЕсли;
ПричинаИсключения = 2;
Если ОбъектИзменен Тогда
ОбновлениеИнформационнойБазы.ЗаписатьДанные(ДокументОбъект);
Иначе
ОбновлениеИнформационнойБазы.ОтметитьВыполнениеОбработки(Выборка.Ссылка);
КонецЕсли;
ЗафиксироватьТранзакцию();
Исключение
ОтменитьТранзакцию();
ОбновлениеИнформационнойБазыУТ.СообщитьОНеудачнойОбработке(ИнформацияОбОшибке(), Выборка.Ссылка);
Если ПричинаИсключения = 2 Тогда
ВызватьИсключение НСтр("ru = 'Не удалось обработать обновление документов ""Производство без заказа"".'");
КонецЕсли;
КонецПопытки;
КонецЦикла;
Параметры.ОбработкаЗавершена = ОбновлениеИнформационнойБазы.ОбработкаДанныхЗавершена(Параметры.Очередь, ПолноеИмяОбъекта);
КонецПроцедуры
#КонецОбласти
#КонецОбласти
#КонецЕсли