#Если Сервер Или ТолстыйКлиентОбычноеПриложение Или ВнешнееСоединение Тогда
#Область ПрограммныйИнтерфейс
Процедура ЗадатьОписаниеЗаполняемыхРеквизитовПоСтатистике(ОписаниеРеквизитов) Экспорт
ЗаполнениеОбъектовПоСтатистике.ДобавитьОписаниеЗаполняемыхРеквизитов(ОписаниеРеквизитов, "Организация, Подразделение, Склад");
Параметры = ЗаполнениеОбъектовПоСтатистике.ПараметрыЗаполняемыхРеквизитов();
Параметры.РазрезыСбораСтатистики.ИспользоватьВсегда = "Ответственный";
ЗаполнениеОбъектовПоСтатистике.ДобавитьОписаниеЗаполняемыхРеквизитов(ОписаниеРеквизитов, "ПриходоватьТоварыПоСебестоимостиСписания", Параметры);
Параметры = ЗаполнениеОбъектовПоСтатистике.ПараметрыЗаполняемыхРеквизитов();
Параметры.РазрезыСбораСтатистики.ИспользоватьВсегда = "Ответственный";
Параметры.ЗаполнятьПриУсловии.ПоляОбъектаПусты = "ПриходоватьТоварыПоСебестоимостиСписания";
ЗаполнениеОбъектовПоСтатистике.ДобавитьОписаниеЗаполняемыхРеквизитов(ОписаниеРеквизитов, "СтатьяРасходов", Параметры);
Параметры = ЗаполнениеОбъектовПоСтатистике.ПараметрыЗаполняемыхРеквизитов();
Параметры.РазрезыСбораСтатистики.ИспользоватьВсегда = "СтатьяРасходов";
Параметры.ЗаполнятьПриУсловии.ПоляОбъектаЗаполнены = "СтатьяРасходов";
ЗаполнениеОбъектовПоСтатистике.ДобавитьОписаниеЗаполняемыхРеквизитов(ОписаниеРеквизитов, "АналитикаРасходов", Параметры);
КонецПроцедуры
#Область Проведение
Процедура ЗарегистрироватьУчетныеМеханизмы(МеханизмыДокумента) Экспорт
МеханизмыДокумента.Добавить("Обеспечение");
МеханизмыДокумента.Добавить("ОборотныеРегистрыУправленческогоУчета");
МеханизмыДокумента.Добавить("ОперативныйУчетТоваровОрганизаций");
МеханизмыДокумента.Добавить("ПриемНаОтветхранение");
МеханизмыДокумента.Добавить("РеестрДокументов");
МеханизмыДокумента.Добавить("СебестоимостьИПартионныйУчет");
МеханизмыДокумента.Добавить("СерийныйУчет");
МеханизмыДокумента.Добавить("СуммыДокументовВВалютахУчета");
МеханизмыДокумента.Добавить("АдресныйСклад");
МеханизмыДокумента.Добавить("УчетПрочихАктивовПассивов");
МеханизмыДокумента.Добавить("УчетДоходовРасходов");
МеханизмыДокумента.Добавить("УчетНДС");
МеханизмыДокумента.Добавить("ИсправлениеДокументов");
ПорчаТоваровЛокализация.ЗарегистрироватьУчетныеМеханизмы(МеханизмыДокумента);
КонецПроцедуры
Функция ДанныеДокументаДляПроведения(Документ, Регистры, ДопПараметры = Неопределено) Экспорт
Если ДопПараметры = Неопределено Тогда
ДопПараметры = ПроведениеДокументов.ДопПараметрыИнициализироватьДанныеДокументаДляПроведения();
КонецЕсли;
Если ТипЗнч(Документ) = Тип("ДокументОбъект.ПорчаТоваров") Тогда
ДокументСсылка = Документ.Ссылка;
Иначе
ДокументСсылка = Документ;
КонецЕсли;
Запрос = Новый Запрос;
ТекстыЗапроса = Новый СписокЗначений;
Если Не ДопПараметры.ПолучитьТекстыЗапроса Тогда
ЗаполнитьПараметрыИнициализации(Запрос, ДокументСсылка);
ТекстЗапросаТаблицаДвиженияСерийТоваров(Запрос, ТекстыЗапроса, Регистры);
ТекстЗапросаТаблицаТоварыОрганизаций(Запрос, ТекстыЗапроса, Регистры);
ТекстЗапросаТаблицаТоварыОрганизацийКПередаче(Запрос, ТекстыЗапроса, Регистры);
ТекстЗапросаТаблицаТоварыКОформлениюОтчетовКомитенту(Запрос, ТекстыЗапроса, Регистры);
ТекстЗапросаТаблицаПартииТоваровОрганизаций(Запрос, ТекстыЗапроса, Регистры);
ТекстЗапросаДвиженияНоменклатураНоменклатура(Запрос, ТекстыЗапроса, Регистры);
ТекстЗапросаТаблицаРеестрДокументов(Запрос, ТекстыЗапроса, Регистры);
ПорчаТоваровЛокализация.ДополнитьТекстыЗапросовПроведения(Запрос, ТекстыЗапроса, Регистры);
КонецЕсли;
ОтразитьРаспределениеЗапасовДвижения(Запрос, ТекстыЗапроса, Регистры);
ОформитьИзлишкиНедостачиНаСкладе(Запрос, ТекстыЗапроса, Регистры);
ПроведениеДокументов.ДобавитьЗапросыСторноДвижений(
Запрос, ТекстыЗапроса, Регистры, Метаданные.Документы.ПорчаТоваров);
РасчетСебестоимостиПроведениеДокументов.ОтразитьВМеханизмеУчетаЗатратИСебестоимости(
ДокументСсылка, Запрос, ТекстыЗапроса, Регистры);
Возврат ПроведениеДокументов.ИнициализироватьДанныеДокументаДляПроведения(Запрос, ТекстыЗапроса, ДопПараметры);
КонецФункции
#КонецОбласти
Процедура ПриОпределенииНастроекВерсионированияОбъектов(Настройки) Экспорт
КонецПроцедуры
Процедура ДобавитьКомандыСозданияНаОсновании(КомандыСозданияНаОсновании, Параметры) Экспорт
Документы.УстановкаЦенНоменклатуры.ДобавитьКомандуСоздатьНаОсновании(КомандыСозданияНаОсновании);
БизнесПроцессы.Задание.ДобавитьКомандуСоздатьНаОсновании(КомандыСозданияНаОсновании);
ИсправлениеДокументов.ДобавитьКомандуИсправление(КомандыСозданияНаОсновании, ПустаяСсылка().Метаданные());
ИсправлениеДокументов.ДобавитьКомандуСторно(КомандыСозданияНаОсновании, ПустаяСсылка().Метаданные());
ПорчаТоваровЛокализация.ДобавитьКомандыСозданияНаОсновании(КомандыСозданияНаОсновании, Параметры);
КонецПроцедуры
Функция ДобавитьКомандуСоздатьНаОсновании(КомандыСозданияНаОсновании) Экспорт
Если ПравоДоступа("Добавление", Метаданные.Документы.ПорчаТоваров) Тогда
КомандаСоздатьНаОсновании = КомандыСозданияНаОсновании.Добавить();
КомандаСоздатьНаОсновании.Менеджер = Метаданные.Документы.ПорчаТоваров.ПолноеИмя();
КомандаСоздатьНаОсновании.Представление = ОбщегоНазначенияУТ.ПредставлениеОбъекта(Метаданные.Документы.ПорчаТоваров);
КомандаСоздатьНаОсновании.РежимЗаписи = "Проводить";
КомандаСоздатьНаОсновании.ФункциональныеОпции = "ИспользоватьКачествоТоваров";
Возврат КомандаСоздатьНаОсновании;
КонецЕсли;
Возврат Неопределено;
КонецФункции
Процедура ДобавитьКомандыОтчетов(КомандыОтчетов, Параметры) Экспорт
Отчеты.ОстаткиТоваровОрганизаций.ДобавитьКомандуОтчета(КомандыОтчетов);
ПорчаТоваровЛокализация.ДобавитьКомандыОтчетов(КомандыОтчетов, Параметры);
КонецПроцедуры
#Область Серии
Функция ИменаРеквизитовДляЗаполненияПараметровУказанияСерий() Экспорт
ИменаРеквизитов = "Склад,Дата";
Возврат ИменаРеквизитов;
КонецФункции
Функция ПараметрыУказанияСерий(Объект) Экспорт
ПараметрыУказанияСерий = НоменклатураКлиентСервер.ПараметрыУказанияСерий();
ПараметрыУказанияСерий.ПолноеИмяОбъекта = "Документ.ПорчаТоваров";
ПараметрыСерийСклада = СкладыСервер.ИспользованиеСерийНаСкладе(Объект.Склад, Ложь);
ПараметрыУказанияСерий.ИмяТЧСерии = "Товары";
ПараметрыУказанияСерий.УчитыватьСебестоимостьПоСериям = ПараметрыСерийСклада.УчитыватьСебестоимостьПоСериям;
ПараметрыУказанияСерий.ИспользоватьСерииНоменклатуры = ПараметрыСерийСклада.УчитыватьСебестоимостьПоСериям;
ПараметрыУказанияСерий.СкладскиеОперации.Добавить(Перечисления.СкладскиеОперации.ПустаяСсылка());
ПараметрыУказанияСерий.ЭтоНакладная = Истина;
ПараметрыУказанияСерий.ПоляСвязи.Добавить("НоменклатураОприходование");
ПараметрыУказанияСерий.ПоляСвязи.Добавить("ХарактеристикаОприходование");
ПараметрыУказанияСерий.ПоляСвязи.Добавить("Назначение");
ПараметрыУказанияСерий.ТолькоСерииДляСебестоимости = Истина;
ПараметрыУказанияСерий.Дата = Объект.Дата;
Возврат ПараметрыУказанияСерий;
КонецФункции
Функция ТекстЗапросаЗаполненияСтатусовУказанияСерий(ПараметрыУказанияСерий) Экспорт
ТекстЗапроса =
"ВЫБРАТЬ
| Товары.Номенклатура,
| Товары.Характеристика,
| Товары.Серия,
| Товары.Количество,
| Товары.СтатусУказанияСерий,
| Товары.НомерСтроки
|ПОМЕСТИТЬ Товары
|ИЗ
| &Товары КАК Товары
|;
|
|
|ВЫБРАТЬ
| Товары.НомерСтроки КАК НомерСтроки,
| Товары.СтатусУказанияСерий КАК СтарыйСтатусУказанияСерий,
| ВЫБОР
| КОГДА ПолитикиУчетаСерий.ПолитикаУчетаСерий ЕСТЬ NULL
| ТОГДА 0
| ИНАЧЕ ВЫБОР
| КОГДА ПолитикиУчетаСерий.ПолитикаУчетаСерий.УчитыватьСебестоимостьПоСериям
| ТОГДА ВЫБОР
| КОГДА Товары.Серия <> ЗНАЧЕНИЕ(Справочник.СерииНоменклатуры.ПустаяСсылка)
| ТОГДА 14
| ИНАЧЕ 13
| КОНЕЦ
| ИНАЧЕ 0
| КОНЕЦ
| КОНЕЦ КАК СтатусУказанияСерий
|ПОМЕСТИТЬ Статусы
|ИЗ
| Товары КАК Товары
| ЛЕВОЕ СОЕДИНЕНИЕ Справочник.ВидыНоменклатуры.ПолитикиУчетаСерий КАК ПолитикиУчетаСерий
| ВНУТРЕННЕЕ СОЕДИНЕНИЕ Справочник.Склады КАК Склады
| ПО ПолитикиУчетаСерий.Склад = Склады.Ссылка
| ПО (ПолитикиУчетаСерий.Склад = &Склад)
| И (ВЫРАЗИТЬ(Товары.Номенклатура КАК Справочник.Номенклатура).ВидНоменклатуры = ПолитикиУчетаСерий.Ссылка)
|;
|
|
|ВЫБРАТЬ
| Статусы.НомерСтроки КАК НомерСтроки,
| Статусы.СтатусУказанияСерий КАК СтатусУказанияСерий
|ИЗ
| Статусы КАК Статусы
|ГДЕ
| Статусы.СтатусУказанияСерий <> Статусы.СтарыйСтатусУказанияСерий
|
|УПОРЯДОЧИТЬ ПО
| НомерСтроки";
Возврат ТекстЗапроса;
КонецФункции
#КонецОбласти
#Область ПроводкиРеглУчета
Функция ТекстОтраженияВРеглУчете() Экспорт
Возврат ПорчаТоваровЛокализация.ТекстОтраженияВРеглУчете();
КонецФункции
Функция ТекстЗапросаВТОтраженияВРеглУчете() Экспорт
Возврат ПорчаТоваровЛокализация.ТекстЗапросаВТОтраженияВРеглУчете();
КонецФункции
#КонецОбласти
Функция МакетФормыВыбораНазначений() Экспорт
МакетФормы = Справочники.Назначения.МакетФормыВыбораНазначений();
ШаблонНазначения = Справочники.Назначения.ДобавитьШаблонНазначений(МакетФормы);
ШаблонНазначения.ДвиженияПоСкладскимРегистрам = "ИСТИНА";
ОписаниеКолонок = Справочники.Назначения.ДобавитьОписаниеКолонок(МакетФормы, "ОбеспечениеЗаказов", Истина, "Объект.Товары.Назначение");
ОписаниеКолонок.Колонки.НайтиПоЗначению("ВНаличии").Пометка = Истина;
ОписаниеКолонок.ПутиКДанным.Номенклатура = "Объект.Товары.Номенклатура";
ОписаниеКолонок.ПутиКДанным.Характеристика = "Объект.Товары.Характеристика";
ОписаниеКолонок.ПутиКДанным.Склад = "Объект.Склад";
Возврат МакетФормы;
КонецФункции
#Область ДляВызоваИзДругихПодсистем
Процедура ПриЗаполненииОграниченияДоступа(Ограничение) Экспорт
Ограничение.Текст =
"РазрешитьЧтениеИзменение
|ГДЕ
| ЗначениеРазрешено(Организация)
| И ЗначениеРазрешено(Склад)
| И ЗначениеРазрешено(Подразделение)";
КонецПроцедуры
#КонецОбласти
Функция ПараметрыЗаполненияВидаДеятельностиНДС(Документ) Экспорт
РеквизитыДокумента = Новый Структура("Дата, Организация, Склад");
Если ТипЗнч(Документ) = Тип("ДокументСсылка.ПорчаТоваров") Тогда
РеквизитыДокумента = ОбщегоНазначения.ЗначенияРеквизитовОбъекта(Документ, РеквизитыДокумента);
Иначе
ЗаполнитьЗначенияСвойств(РеквизитыДокумента, Документ);
КонецЕсли;
ПараметрыЗаполнения = УчетНДСУПКлиентСервер.ПараметрыЗаполненияВидаДеятельностиНДС();
ЗаполнитьЗначенияСвойств(ПараметрыЗаполнения, РеквизитыДокумента);
ПараметрыЗаполнения.ДвижениеТоваровНаСкладах = Истина;
Возврат ПараметрыЗаполнения;
КонецФункции
Функция ПараметрыВыбораСтатейИАналитик(ХозяйственнаяОперация, ПриходоватьТоварыПоСебестоимости) Экспорт
ДоступностьПоОперации = Не ПриходоватьТоварыПоСебестоимости;
ПараметрыВыбора = ДоходыИРасходыСервер.ПараметрыВыбораСтатьиИАналитики();
ПараметрыВыбора.ПутьКДанным = "Объект";
ПараметрыВыбора.Статья = "СтатьяРасходов";
ПараметрыВыбора.ДоступностьПоОперации = ДоступностьПоОперации;
ПараметрыВыбора.СкрыватьСтатьюНедоступнуюПоОперации = Ложь;
ПараметрыВыбора.ВыборСтатьиРасходов = Истина;
ПараметрыВыбора.АналитикаРасходов = "АналитикаРасходов";
ПараметрыВыбора.ЭлементыФормы.Статья.Добавить("СтатьяРасходов");
ПараметрыВыбора.ЭлементыФормы.АналитикаРасходов.Добавить("АналитикаРасходов");
Возврат ПараметрыВыбора;
КонецФункции
Функция КоллекцияТабличныхЧастейТоваров() Экспорт
ТаблицыДокумента = Новый Структура("Товары");
Возврат ТаблицыДокумента;
КонецФункции
#КонецОбласти
#Область СлужебныеПроцедурыИФункции
#Область Проведение
Функция ДополнительныеИсточникиДанныхДляДвижений(ИмяРегистра) Экспорт
ИсточникиДанных = Новый Соответствие;
Возврат ИсточникиДанных;
КонецФункции
Процедура ЗаполнитьПараметрыИнициализации(Запрос, ДокументСсылка)
Запрос.МенеджерВременныхТаблиц = Новый МенеджерВременныхТаблиц;
Запрос.УстановитьПараметр("Ссылка", ДокументСсылка);
Запрос.Текст =
"ВЫБРАТЬ
| ДанныеДокумента.Ссылка КАК Ссылка,
| ДанныеДокумента.Дата КАК Период,
| ДанныеДокумента.Номер КАК Номер,
| ДанныеДокумента.Склад КАК Склад,
| ДанныеДокумента.Валюта КАК Валюта,
| ДанныеДокумента.Организация КАК Организация,
| ДанныеДокумента.Организация.ВалютаРегламентированногоУчета КАК ВалютаРегламентированногоУчета,
| ДанныеДокумента.Подразделение КАК Подразделение,
| ДанныеДокумента.ХозяйственнаяОперация КАК ХозяйственнаяОперация,
| ЕСТЬNULL(ДанныеДокумента.Подразделение.ВариантОбособленногоУчетаТоваров, ЗНАЧЕНИЕ(Перечисление.ВариантыОбособленногоУчетаТоваров.ПустаяСсылка))КАК ВариантОбособленногоУчетаТоваров,
| ДанныеДокумента.СтатьяРасходов КАК СтатьяРасходов,
| ДанныеДокумента.АналитикаРасходов КАК АналитикаРасходов,
| ВЫБОР
| КОГДА ДанныеДокумента.Склад.ИспользоватьОрдернуюСхемуПриОтраженииИзлишковНедостач
| И ДанныеДокумента.Дата >= ДанныеДокумента.Склад.ДатаНачалаОрдернойСхемыПриОтраженииИзлишковНедостач
| ТОГДА ИСТИНА
| ИНАЧЕ ЛОЖЬ
| КОНЕЦ КАК ИспользоватьОрдернуюСхемуПриОтраженииИзлишковНедостач,
| ДанныеДокумента.ПриходоватьТоварыПоСебестоимостиСписания КАК ПриходПоСебестоимости,
| ДанныеДокумента.ВидДеятельностиНДС КАК ВидДеятельностиНДС,
| ДанныеДокумента.Ответственный КАК Ответственный,
| ДанныеДокумента.Автор КАК Автор,
| ДанныеДокумента.Комментарий КАК Комментарий,
| ДанныеДокумента.ПометкаУдаления КАК ПометкаУдаления,
| ДанныеДокумента.Исправление КАК Исправление,
| ДанныеДокумента.СторнируемыйДокумент КАК СторнируемыйДокумент,
| ДанныеДокумента.ИсправляемыйДокумент КАК ИсправляемыйДокумент,
| ДанныеДокумента.Проведен КАК Проведен,
| ДанныеДокумента.ИдентификаторДокумента КАК ИдентификаторДокумента,
| НастройкиХозяйственныхОпераций.Ссылка КАК НастройкаХозяйственнойОперации
|ИЗ
| Документ.ПорчаТоваров КАК ДанныеДокумента
| ЛЕВОЕ СОЕДИНЕНИЕ Справочник.НастройкиХозяйственныхОпераций КАК НастройкиХозяйственныхОпераций
| ПО ДанныеДокумента.ХозяйственнаяОперация = НастройкиХозяйственныхОпераций.ХозяйственнаяОперация
|ГДЕ
| ДанныеДокумента.Ссылка = &Ссылка";
Результат = Запрос.Выполнить();
Реквизиты = Результат.Выбрать();
Реквизиты.Следующий();
Для Каждого Колонка Из Результат.Колонки Цикл
Запрос.УстановитьПараметр(Колонка.Имя, Реквизиты[Колонка.Имя]);
КонецЦикла;
Запрос.УстановитьПараметр("Исправление", Реквизиты.Исправление);
Запрос.УстановитьПараметр("СторнируемыйДокумент", Реквизиты.СторнируемыйДокумент);
Запрос.УстановитьПараметр("ИсправляемыйДокумент", Реквизиты.ИсправляемыйДокумент);
Запрос.УстановитьПараметр("ФормироватьВидыЗапасовПоГруппамФинансовогоУчета",
ПолучитьФункциональнуюОпцию("ФормироватьВидыЗапасовПоГруппамФинансовогоУчета"));
РасчетСебестоимостиПрикладныеАлгоритмы.ЗаполнитьПараметрыИнициализации(Запрос, Реквизиты);
Запрос.УстановитьПараметр("НомерНаПечать", ПрефиксацияОбъектовКлиентСервер.НомерНаПечать(
Реквизиты.Номер));
Запрос.УстановитьПараметр("ИдентификаторМетаданных", ОбщегоНазначения.ИдентификаторОбъектаМетаданных(
"Документ.ПорчаТоваров"));
КонецПроцедуры
Процедура ОформитьИзлишкиНедостачиНаСкладе(Запрос, ТекстыЗапроса, Регистры)
ТекстЗапросаДокумента =
"ВЫБРАТЬ
| ТаблицаТовары.Ссылка КАК Ссылка,
| ТаблицаТовары.Ссылка.Дата КАК Дата,
| ТаблицаТовары.Ссылка.Склад КАК Склад,
| ТаблицаТовары.Номенклатура КАК Номенклатура,
| ТаблицаТовары.Характеристика КАК Характеристика,
| ТаблицаТовары.Назначение КАК Назначение,
| ТаблицаТовары.Серия КАК Серия,
| -ТаблицаТовары.Количество КАК Количество,
| ТаблицаТовары.СтатусУказанияСерий КАК СтатусУказанияСерий
|ИЗ
| Документ.ПорчаТоваров.Товары КАК ТаблицаТовары
|ГДЕ
| ТаблицаТовары.Ссылка В(&Ссылка)
|
|ОБЪЕДИНИТЬ ВСЕ
|
|ВЫБРАТЬ
| ТаблицаТовары.Ссылка КАК Ссылка,
| ТаблицаТовары.Ссылка.Дата КАК Дата,
| ТаблицаТовары.Ссылка.Склад КАК Склад,
| ТаблицаТовары.НоменклатураОприходование КАК Номенклатура,
| ТаблицаТовары.ХарактеристикаОприходование КАК Характеристика,
| ВЫБОР
| КОГДА ТаблицаТовары.ПодНазначение
| ТОГДА ТаблицаТовары.Назначение
| ИНАЧЕ ЗНАЧЕНИЕ(Справочник.Назначения.ПустаяСсылка)
| КОНЕЦ КАК Назначение,
| ТаблицаТовары.Серия КАК Серия,
| ТаблицаТовары.Количество КАК Количество,
| ТаблицаТовары.СтатусУказанияСерий КАК СтатусУказанияСерий
|ИЗ
| Документ.ПорчаТоваров.Товары КАК ТаблицаТовары
|ГДЕ
| ТаблицаТовары.Ссылка В(&Ссылка)
|";
СкладыСервер.ОформитьИзлишкиНедостачиНаСкладе(Запрос, ТекстыЗапроса, Регистры, ТекстЗапросаДокумента);
КонецПроцедуры
Функция ТекстЗапросаТаблицаДвиженияСерийТоваров(Запрос, ТекстыЗапроса, Регистры)
ИмяРегистра = "ДвиженияСерийТоваров";
Если Не ПроведениеДокументов.ТребуетсяТаблицаДляДвижений(ИмяРегистра, Регистры) Тогда
Возврат "";
КонецЕсли;
ТекстЗапроса =
"ВЫБРАТЬ
| ТаблицаТовары.Номенклатура КАК Номенклатура,
| ТаблицаТовары.Характеристика КАК Характеристика,
| ВЫБОР
| КОГДА ЕСТЬNULL(ТаблицаТовары.Назначение.ДвиженияПоСкладскимРегистрам, ЛОЖЬ)
| ТОГДА ТаблицаТовары.Назначение
| ИНАЧЕ ЗНАЧЕНИЕ(Справочник.Назначения.ПустаяСсылка)
| КОНЕЦ КАК Назначение,
| ТаблицаТовары.Серия КАК Серия,
| ТаблицаТовары.Количество КАК Количество,
| &Склад КАК Отправитель,
| НЕОПРЕДЕЛЕНО КАК Получатель,
| ЗНАЧЕНИЕ(Перечисление.СкладскиеОперации.ОтражениеПорчи) КАК СкладскаяОперация,
| &Ссылка КАК Документ,
| &Период КАК Период,
| НЕ &ИспользоватьОрдернуюСхемуПриОтраженииИзлишковНедостач КАК ЭтоСкладскоеДвижение
|ИЗ
| Документ.ПорчаТоваров.Товары КАК ТаблицаТовары
|ГДЕ
| ТаблицаТовары.Ссылка = &Ссылка
| И ТаблицаТовары.Количество <> 0
| И ТаблицаТовары.Серия <> ЗНАЧЕНИЕ(Справочник.СерииНоменклатуры.ПустаяСсылка)
|
|ОБЪЕДИНИТЬ ВСЕ
|
|ВЫБРАТЬ
| ТаблицаТовары.НоменклатураОприходование КАК Номенклатура,
| ТаблицаТовары.ХарактеристикаОприходование КАК Характеристика,
| ВЫБОР
| КОГДА ТаблицаТовары.ПодНазначение
| ТОГДА ВЫБОР
| КОГДА ЕСТЬNULL(ТаблицаТовары.Назначение.ДвиженияПоСкладскимРегистрам, ЛОЖЬ)
| ТОГДА ТаблицаТовары.Назначение
| ИНАЧЕ ЗНАЧЕНИЕ(Справочник.Назначения.ПустаяСсылка)
| КОНЕЦ
| ИНАЧЕ ЗНАЧЕНИЕ(Справочник.Назначения.ПустаяСсылка)
| КОНЕЦ КАК Назначение,
| ТаблицаТовары.Серия КАК Серия,
| ТаблицаТовары.Количество КАК Количество,
| НЕОПРЕДЕЛЕНО КАК Отправитель,
| &Склад КАК Получатель,
| ЗНАЧЕНИЕ(Перечисление.СкладскиеОперации.ОтражениеПорчи) КАК СкладскаяОперация,
| &Ссылка КАК Документ,
| &Период КАК Период,
| НЕ &ИспользоватьОрдернуюСхемуПриОтраженииИзлишковНедостач КАК ЭтоСкладскоеДвижение
|ИЗ
| Документ.ПорчаТоваров.Товары КАК ТаблицаТовары
|ГДЕ
| ТаблицаТовары.Ссылка = &Ссылка
| И ТаблицаТовары.Количество <> 0
| И ТаблицаТовары.Серия <> ЗНАЧЕНИЕ(Справочник.СерииНоменклатуры.ПустаяСсылка)";
ТекстыЗапроса.Добавить(ТекстЗапроса, ИмяРегистра);
Возврат ТекстЗапроса;
КонецФункции
Процедура ИнициализироватьКлючиАналитикиНоменклатуры(Запрос)
Если Запрос.Параметры.Свойство("КлючиАналитикиУчетаНоменклатурыИнициализированы") Тогда
Возврат;
КонецЕсли;
ЗапросАналитик = Новый Запрос;
ЗапросАналитик.УстановитьПараметр("Ссылка", Запрос.Параметры.Ссылка);
ЗапросАналитик.УстановитьПараметр("Склад", Запрос.Параметры.Склад);
ЗапросАналитик.УстановитьПараметр("УчитыватьСебестоимостьТоваровПоНазначениям", Запрос.Параметры.УчитыватьСебестоимостьТоваровПоНазначениям);
ЗапросАналитик.Текст =
"ВЫБРАТЬ РАЗЛИЧНЫЕ
| Товары.Склад КАК Склад,
| Товары.Номенклатура КАК Номенклатура,
| Товары.Характеристика КАК Характеристика,
| Товары.Назначение КАК Назначение,
| Товары.Серия КАК Серия
|ИЗ
| (
| ВЫБРАТЬ
| &Склад КАК Склад,
| ТаблицаТовары.АналитикаУчетаНоменклатурыОприходование.Номенклатура КАК Номенклатура,
| ТаблицаТовары.АналитикаУчетаНоменклатурыОприходование.Характеристика КАК Характеристика,
| ЗНАЧЕНИЕ(Справочник.Назначения.ПустаяСсылка) КАК Назначение,
| ТаблицаТовары.АналитикаУчетаНоменклатурыОприходование.Серия КАК Серия
| ИЗ
| Документ.ПорчаТоваров.ВидыЗапасов КАК ТаблицаТовары
| ЛЕВОЕ СОЕДИНЕНИЕ
| РегистрСведений.АналитикаУчетаНоменклатуры КАК Аналитика
| ПО
| ТаблицаТовары.АналитикаУчетаНоменклатурыОприходование.Номенклатура = Аналитика.Номенклатура
| И ТаблицаТовары.АналитикаУчетаНоменклатурыОприходование.Характеристика = Аналитика.Характеристика
| И ЗНАЧЕНИЕ(Справочник.Назначения.ПустаяСсылка) = Аналитика.Назначение
| И ТаблицаТовары.АналитикаУчетаНоменклатурыОприходование.Серия = Аналитика.Серия
| И ТаблицаТовары.АналитикаУчетаНоменклатурыОприходование.МестоХранения = Аналитика.МестоХранения
| И ЗНАЧЕНИЕ(Справочник.СтатьиКалькуляции.ПустаяСсылка) = Аналитика.СтатьяКалькуляции
| ГДЕ
| ТаблицаТовары.Ссылка = &Ссылка
| И Аналитика.Номенклатура ЕСТЬ NULL
| И НЕ &УчитыватьСебестоимостьТоваровПоНазначениям
|
| ОБЪЕДИНИТЬ ВСЕ
|
| ВЫБРАТЬ
| ТаблицаТовары.АналитикаУчетаНоменклатурыОприходование.МестоХранения КАК Склад,
| ТаблицаТовары.АналитикаУчетаНоменклатурыОприходование.Номенклатура КАК Номенклатура,
| ТаблицаТовары.АналитикаУчетаНоменклатурыОприходование.Характеристика КАК Характеристика,
| ЗНАЧЕНИЕ(Справочник.Назначения.ПустаяСсылка) КАК Назначение,
| ТаблицаТовары.АналитикаУчетаНоменклатурыОприходование.Серия КАК Серия
| ИЗ
| Документ.ПорчаТоваров.ВидыЗапасов КАК ТаблицаТовары
| ЛЕВОЕ СОЕДИНЕНИЕ
| РегистрСведений.АналитикаУчетаНоменклатуры КАК Аналитика
| ПО
| ТаблицаТовары.АналитикаУчетаНоменклатурыОприходование.Номенклатура = Аналитика.Номенклатура
| И ТаблицаТовары.АналитикаУчетаНоменклатурыОприходование.Характеристика = Аналитика.Характеристика
| И ЗНАЧЕНИЕ(Справочник.Назначения.ПустаяСсылка) = Аналитика.Назначение
| И ТаблицаТовары.АналитикаУчетаНоменклатурыОприходование.Серия = Аналитика.Серия
| И ТаблицаТовары.АналитикаУчетаНоменклатурыОприходование.МестоХранения = Аналитика.МестоХранения
| И ЗНАЧЕНИЕ(Справочник.СтатьиКалькуляции.ПустаяСсылка) = Аналитика.СтатьяКалькуляции
| ГДЕ
| ТаблицаТовары.Ссылка = &Ссылка
| И Аналитика.Номенклатура ЕСТЬ NULL
| И НЕ &УчитыватьСебестоимостьТоваровПоНазначениям
|
| ОБЪЕДИНИТЬ ВСЕ
|
| ВЫБРАТЬ
| ТаблицаТовары.ВидЗапасов.ВладелецТовара КАК Склад,
| ТаблицаТовары.АналитикаУчетаНоменклатурыОприходование.Номенклатура КАК Номенклатура,
| ТаблицаТовары.АналитикаУчетаНоменклатурыОприходование.Характеристика КАК Характеристика,
| ЗНАЧЕНИЕ(Справочник.Назначения.ПустаяСсылка) КАК Назначение,
| ЗНАЧЕНИЕ(Справочник.СерииНоменклатуры.ПустаяСсылка) КАК Серия
| ИЗ
| Документ.ПорчаТоваров.ВидыЗапасов КАК ТаблицаТовары
| ЛЕВОЕ СОЕДИНЕНИЕ
| РегистрСведений.АналитикаУчетаНоменклатуры КАК Аналитика
| ПО
| ТаблицаТовары.АналитикаУчетаНоменклатурыОприходование.Номенклатура = Аналитика.Номенклатура
| И ТаблицаТовары.АналитикаУчетаНоменклатурыОприходование.Характеристика = Аналитика.Характеристика
| И ЗНАЧЕНИЕ(Справочник.СерииНоменклатуры.ПустаяСсылка) = Аналитика.Серия
| И ЗНАЧЕНИЕ(Справочник.Назначения.ПустаяСсылка) = Аналитика.Назначение
| И ТаблицаТовары.ВидЗапасов.ВладелецТовара = Аналитика.МестоХранения
| И ЗНАЧЕНИЕ(Справочник.СтатьиКалькуляции.ПустаяСсылка) = Аналитика.СтатьяКалькуляции
| ГДЕ
| ТаблицаТовары.Ссылка = &Ссылка
| И ТаблицаТовары.ВидЗапасов.ТипЗапасов = ЗНАЧЕНИЕ(Перечисление.ТипыЗапасов.КомиссионныйТовар)
| И Аналитика.Номенклатура ЕСТЬ NULL
|
| ОБЪЕДИНИТЬ ВСЕ
|
| ВЫБРАТЬ
| ТаблицаТовары.ВидЗапасов.ВладелецТовара КАК Склад,
| ТаблицаТовары.АналитикаУчетаНоменклатуры.Номенклатура КАК Номенклатура,
| ТаблицаТовары.АналитикаУчетаНоменклатуры.Характеристика КАК Характеристика,
| ЗНАЧЕНИЕ(Справочник.Назначения.ПустаяСсылка) КАК Назначение,
| ЗНАЧЕНИЕ(Справочник.СерииНоменклатуры.ПустаяСсылка) КАК Серия
| ИЗ
| Документ.ПорчаТоваров.ВидыЗапасов КАК ТаблицаТовары
| ЛЕВОЕ СОЕДИНЕНИЕ
| РегистрСведений.АналитикаУчетаНоменклатуры КАК Аналитика
| ПО
| ТаблицаТовары.АналитикаУчетаНоменклатуры.Номенклатура = Аналитика.Номенклатура
| И ТаблицаТовары.АналитикаУчетаНоменклатуры.Характеристика = Аналитика.Характеристика
| И ЗНАЧЕНИЕ(Справочник.Назначения.ПустаяСсылка) = Аналитика.Назначение
| И ЗНАЧЕНИЕ(Справочник.СерииНоменклатуры.ПустаяСсылка) = Аналитика.Серия
| И ТаблицаТовары.ВидЗапасов.ВладелецТовара = Аналитика.МестоХранения
| И ЗНАЧЕНИЕ(Справочник.СтатьиКалькуляции.ПустаяСсылка) = Аналитика.СтатьяКалькуляции
| ГДЕ
| ТаблицаТовары.Ссылка = &Ссылка
| И ТаблицаТовары.ВидЗапасов.ТипЗапасов = ЗНАЧЕНИЕ(Перечисление.ТипыЗапасов.КомиссионныйТовар)
| И Аналитика.Номенклатура ЕСТЬ NULL
|
| ОБЪЕДИНИТЬ ВСЕ
|
| ВЫБРАТЬ
| ТаблицаТовары.ВидЗапасов.ВидЗапасовВладельца.ВладелецТовара КАК Склад,
| ТаблицаТовары.АналитикаУчетаНоменклатуры.Номенклатура КАК Номенклатура,
| ТаблицаТовары.АналитикаУчетаНоменклатуры.Характеристика КАК Характеристика,
| ЗНАЧЕНИЕ(Справочник.Назначения.ПустаяСсылка) КАК Назначение,
| ЗНАЧЕНИЕ(Справочник.СерииНоменклатуры.ПустаяСсылка) КАК Серия
| ИЗ
| Документ.ПорчаТоваров.ВидыЗапасов КАК ТаблицаТовары
| ЛЕВОЕ СОЕДИНЕНИЕ
| РегистрСведений.АналитикаУчетаНоменклатуры КАК Аналитика
| ПО
| ТаблицаТовары.АналитикаУчетаНоменклатуры.Номенклатура = Аналитика.Номенклатура
| И ТаблицаТовары.АналитикаУчетаНоменклатуры.Характеристика = Аналитика.Характеристика
| И ЗНАЧЕНИЕ(Справочник.Назначения.ПустаяСсылка) = Аналитика.Назначение
| И ЗНАЧЕНИЕ(Справочник.СерииНоменклатуры.ПустаяСсылка) = Аналитика.Серия
| И ТаблицаТовары.ВидЗапасов.ВидЗапасовВладельца.ВладелецТовара = Аналитика.МестоХранения
| И ЗНАЧЕНИЕ(Справочник.СтатьиКалькуляции.ПустаяСсылка) = Аналитика.СтатьяКалькуляции
| ГДЕ
| ТаблицаТовары.Ссылка = &Ссылка
| И ТаблицаТовары.ВидЗапасов.ТипЗапасов = ЗНАЧЕНИЕ(Перечисление.ТипыЗапасов.КомиссионныйТовар)
| И ТаблицаТовары.ВидЗапасов.ВидЗапасовВладельца.ТипЗапасов = ЗНАЧЕНИЕ(Перечисление.ТипыЗапасов.КомиссионныйТовар)
| И Аналитика.Номенклатура ЕСТЬ NULL
| ) КАК Товары";
Выборка = ЗапросАналитик.Выполнить().Выбрать();
Пока Выборка.Следующий() Цикл
РегистрыСведений.АналитикаУчетаНоменклатуры.СоздатьКлючАналитики(Выборка)
КонецЦикла;
Запрос.УстановитьПараметр("КлючиАналитикиУчетаНоменклатурыИнициализированы", Истина);
КонецПроцедуры
Функция ТекстЗапросаВтВидыЗапасов(Запрос, ТекстыЗапроса)
ИмяРегистра = "ВтВидыЗапасов";
УстановитьПараметрыЗапросаКоэффициентыВалют(Запрос);
ИнициализироватьКлючиАналитикиНоменклатуры(Запрос);
Если НЕ ПроведениеДокументов.ЕстьТаблицаЗапроса("ВтТаблицаАналитикУчетаПартий", ТекстыЗапроса) Тогда
ТекстЗапросаВтТаблицаАналитикУчетаПартий(Запрос, ТекстыЗапроса);
КонецЕсли;
ТекстЗапроса =
"ВЫБРАТЬ
| ТаблицаВидыЗапасов.НомерСтроки КАК НомерСтроки,
| ТаблицаВидыЗапасов.АналитикаУчетаНоменклатуры КАК АналитикаУчетаНоменклатуры,
| ТаблицаВидыЗапасов.АналитикаУчетаНоменклатуры.Назначение.НаправлениеДеятельности КАК НаправлениеДеятельности,
| ТаблицаВидыЗапасов.АналитикаУчетаНоменклатуры.СкладскаяТерритория.ЦеховаяКладовая КАК ЦеховаяКладовая,
| АналитикаБезНазначения.КлючАналитики КАК АналитикаУчетаНоменклатурыБезНазначения,
| ТаблицаВидыЗапасов.АналитикаУчетаНоменклатурыОприходование.Номенклатура КАК НоменклатураОприходование,
| ТаблицаВидыЗапасов.АналитикаУчетаНоменклатурыОприходование.Характеристика КАК ХарактеристикаОприходование,
| ТаблицаВидыЗапасов.АналитикаУчетаНоменклатурыОприходование КАК АналитикаОприходование,
| ТаблицаВидыЗапасов.АналитикаУчетаНоменклатурыОприходование.Назначение.НаправлениеДеятельности КАК НаправлениеДеятельностиОприходование,
| КлючиБезНазначения.КлючАналитики КАК АналитикаОприходованиеБезНазначения,
| ТаблицаВидыЗапасов.АналитикаУчетаНоменклатуры КАК АналитикаСписание,
| АналитикаБезНазначения.КлючАналитики КАК АналитикаСписаниеБезНазначения,
| ТаблицаВидыЗапасов.ВидЗапасов КАК ВидЗапасов,
| ТаблицаВидыЗапасов.ВидЗапасов.ВладелецТовара КАК ВладелецТовара,
| ТаблицаВидыЗапасов.ВидЗапасов.РеализацияЗапасовДругойОрганизации КАК РеализацияЗапасовДругойОрганизации,
| ТаблицаВидыЗапасов.ВидЗапасов.ВидЗапасовВладельца КАК ВидЗапасовВладельца,
| ТаблицаВидыЗапасов.ВидЗапасов.ТипЗапасов КАК ТипЗапасов,
| ТаблицаВидыЗапасов.ВидЗапасов.Валюта КАК Валюта,
| ТаблицаВидыЗапасов.ВидЗапасов.Договор КАК Договор,
| ТаблицаВидыЗапасов.ВидЗапасовОприходование КАК ВидЗапасовОприходование,
| ТаблицаВидыЗапасов.ВидЗапасовОприходование.ТипЗапасов КАК ТипЗапасовОприходование,
| ТаблицаВидыЗапасов.НомерГТД КАК НомерГТД,
| ТаблицаВидыЗапасов.Количество КАК Количество,
| ТаблицаВидыЗапасов.КоличествоПоРНПТ КАК КоличествоПоРНПТ,
| ТаблицаАналитикУчетаПартий.ВидЦенности КАК ВидЦенности,
| ТаблицаАналитикУчетаПартий.НалогообложениеНДС КАК ВидДеятельностиНДС,
| ТаблицаАналитикУчетаПартий.АналитикаУчетаПартий КАК АналитикаУчетаПартий,
| ТаблицаВидыЗапасов.Сумма КАК Сумма,
| ВЫРАЗИТЬ(ТаблицаВидыЗапасов.Сумма * &КоэффициентПересчетаВВалютуУпр КАК ЧИСЛО(31,2)) КАК СуммаУпр,
| ВЫРАЗИТЬ(ТаблицаВидыЗапасов.Сумма * &КоэффициентПересчетаВВалютуРегл КАК ЧИСЛО(31,2)) КАК СуммаРегл,
| ВЫРАЗИТЬ(ТаблицаВидыЗапасов.СуммаЗабаланс * &КоэффициентПересчетаВВалютуУпр КАК ЧИСЛО(31,2)) КАК СуммаЗабалансУпр,
| ВЫРАЗИТЬ(ТаблицаВидыЗапасов.СуммаЗабаланс * &КоэффициентПересчетаВВалютуРегл КАК ЧИСЛО(31,2)) КАК СуммаЗабалансРегл,
| ТаблицаВидыЗапасов.ИдентификаторСтроки КАК ИдентификаторСтроки,
| ТаблицаВидыЗапасов.АналитикаУчетаНоменклатуры.Номенклатура КАК Номенклатура,
| ТаблицаВидыЗапасов.АналитикаУчетаНоменклатуры.Характеристика КАК Характеристика,
| ТаблицаВидыЗапасов.АналитикаУчетаНоменклатуры.Назначение КАК Назначение,
| ТаблицаВидыЗапасов.АналитикаУчетаНоменклатуры.Серия КАК Серия,
| ВЫБОР КОГДА ТаблицаВидыЗапасов.ВидЗапасов.ВладелецТовара ССЫЛКА Справочник.Организации
| ТОГДА АналитикаРасчетовИнтеркампани.КлючАналитики
| ИНАЧЕ АналитикаРасчетов.КлючАналитики
| КОНЕЦ КАК АналитикаРасчетовСКомитентом
|
|ПОМЕСТИТЬ ВтВидыЗапасов
|ИЗ
| Документ.ПорчаТоваров.ВидыЗапасов КАК ТаблицаВидыЗапасов
| ЛЕВОЕ СОЕДИНЕНИЕ
| РегистрСведений.АналитикаУчетаНоменклатуры КАК АналитикаБезНазначения
| ПО
| ТаблицаВидыЗапасов.АналитикаУчетаНоменклатуры.Номенклатура = АналитикаБезНазначения.Номенклатура
| И ТаблицаВидыЗапасов.АналитикаУчетаНоменклатуры.Характеристика = АналитикаБезНазначения.Характеристика
| И ТаблицаВидыЗапасов.АналитикаУчетаНоменклатуры.Серия = АналитикаБезНазначения.Серия
| И ЗНАЧЕНИЕ(Справочник.Назначения.ПустаяСсылка) = АналитикаБезНазначения.Назначение
| И ТаблицаВидыЗапасов.АналитикаУчетаНоменклатуры.МестоХранения = АналитикаБезНазначения.МестоХранения
| И ЗНАЧЕНИЕ(Справочник.СтатьиКалькуляции.ПустаяСсылка) = АналитикаБезНазначения.СтатьяКалькуляции
| ЛЕВОЕ СОЕДИНЕНИЕ
| РегистрСведений.АналитикаУчетаНоменклатуры КАК КлючиБезНазначения
| ПО
| ТаблицаВидыЗапасов.АналитикаУчетаНоменклатурыОприходование.Номенклатура = КлючиБезНазначения.Номенклатура
| И ТаблицаВидыЗапасов.АналитикаУчетаНоменклатурыОприходование.Характеристика = КлючиБезНазначения.Характеристика
| И ТаблицаВидыЗапасов.АналитикаУчетаНоменклатурыОприходование.Серия = КлючиБезНазначения.Серия
| И ЗНАЧЕНИЕ(Справочник.Назначения.ПустаяСсылка) = КлючиБезНазначения.Назначение
| И ТаблицаВидыЗапасов.АналитикаУчетаНоменклатурыОприходование.МестоХранения = КлючиБезНазначения.МестоХранения
| И ЗНАЧЕНИЕ(Справочник.СтатьиКалькуляции.ПустаяСсылка) = КлючиБезНазначения.СтатьяКалькуляции
|
| ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.АналитикаУчетаПоПартнерам КАК АналитикаРасчетов
| ПО АналитикаРасчетов.Организация = &Организация
| И АналитикаРасчетов.Партнер = ТаблицаВидыЗапасов.ВидЗапасов.ВладелецТовара
| И АналитикаРасчетов.Контрагент = ТаблицаВидыЗапасов.ВидЗапасов.Контрагент
| И АналитикаРасчетов.Договор = ТаблицаВидыЗапасов.ВидЗапасов.Договор
| И АналитикаРасчетов.НаправлениеДеятельности = ЗНАЧЕНИЕ(Справочник.НаправленияДеятельности.ПустаяСсылка)
|
| ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.АналитикаУчетаПоПартнерам КАК АналитикаРасчетовИнтеркампани
| ПО АналитикаРасчетовИнтеркампани.Организация = &Организация
| И АналитикаРасчетовИнтеркампани.Партнер = ЗНАЧЕНИЕ(Справочник.Партнеры.НашеПредприятие)
| И АналитикаРасчетовИнтеркампани.Контрагент = ТаблицаВидыЗапасов.ВидЗапасов.Контрагент
| И АналитикаРасчетовИнтеркампани.Договор = ТаблицаВидыЗапасов.ВидЗапасов.Договор
| И АналитикаРасчетовИнтеркампани.НаправлениеДеятельности = ЗНАЧЕНИЕ(Справочник.НаправленияДеятельности.ПустаяСсылка)
|
| ЛЕВОЕ СОЕДИНЕНИЕ ВтТаблицаАналитикУчетаПартий КАК ТаблицаАналитикУчетаПартий
| ПО ТаблицаАналитикУчетаПартий.НомерСтроки = ТаблицаВидыЗапасов.НомерСтроки
| И ТаблицаАналитикУчетаПартий.ИмяТабличнойЧасти = ""ВидыЗапасов""
|
|ГДЕ
| ТаблицаВидыЗапасов.Ссылка = &Ссылка
| И ТаблицаВидыЗапасов.ВидЗапасов.ТипЗапасов <> ЗНАЧЕНИЕ(Перечисление.ТипыЗапасов.КомиссионныйТовар)
|
|ОБЪЕДИНИТЬ ВСЕ
|
|ВЫБРАТЬ
| ТаблицаВидыЗапасов.НомерСтроки КАК НомерСтроки,
| ТаблицаВидыЗапасов.АналитикаУчетаНоменклатуры КАК АналитикаУчетаНоменклатуры,
| ТаблицаВидыЗапасов.АналитикаУчетаНоменклатуры.Назначение.НаправлениеДеятельности КАК НаправлениеДеятельности,
| ТаблицаВидыЗапасов.АналитикаУчетаНоменклатуры.СкладскаяТерритория.ЦеховаяКладовая КАК ЦеховаяКладовая,
| АналитикаБезНазначения.КлючАналитики КАК АналитикаУчетаНоменклатурыБезНазначения,
| ТаблицаВидыЗапасов.АналитикаУчетаНоменклатурыОприходование.Номенклатура КАК НоменклатураОприходование,
| ТаблицаВидыЗапасов.АналитикаУчетаНоменклатурыОприходование.Характеристика КАК ХарактеристикаОприходование,
| ТаблицаВидыЗапасов.АналитикаУчетаНоменклатурыОприходование КАК АналитикаОприходование,
| ТаблицаВидыЗапасов.АналитикаУчетаНоменклатурыОприходование.Назначение.НаправлениеДеятельности КАК НаправлениеДеятельностиОприходование,
| КлючиОприходованиеБезНазначения.КлючАналитики КАК АналитикаОприходованиеБезНазначения,
| Аналитика.КлючАналитики КАК АналитикаСписание,
| Аналитика.КлючАналитики КАК АналитикаСписаниеБезНазначения,
| ТаблицаВидыЗапасов.ВидЗапасов КАК ВидЗапасов,
| ТаблицаВидыЗапасов.ВидЗапасов.ВладелецТовара КАК ВладелецТовара,
| ТаблицаВидыЗапасов.ВидЗапасов.РеализацияЗапасовДругойОрганизации КАК РеализацияЗапасовДругойОрганизации,
| ТаблицаВидыЗапасов.ВидЗапасов.ВидЗапасовВладельца КАК ВидЗапасовВладельца,
| ТаблицаВидыЗапасов.ВидЗапасов.ТипЗапасов КАК ТипЗапасов,
| ТаблицаВидыЗапасов.ВидЗапасов.Валюта КАК Валюта,
| ТаблицаВидыЗапасов.ВидЗапасов.Договор КАК Договор,
| ТаблицаВидыЗапасов.ВидЗапасовОприходование КАК ВидЗапасовОприходование,
| ТаблицаВидыЗапасов.ВидЗапасовОприходование.ТипЗапасов КАК ТипЗапасовОприходование,
| ТаблицаВидыЗапасов.НомерГТД КАК НомерГТД,
| ТаблицаВидыЗапасов.Количество КАК Количество,
| ТаблицаВидыЗапасов.КоличествоПоРНПТ КАК КоличествоПоРНПТ,
| ТаблицаАналитикУчетаПартий.ВидЦенности КАК ВидЦенности,
| ТаблицаАналитикУчетаПартий.НалогообложениеНДС КАК ВидДеятельностиНДС,
| ТаблицаАналитикУчетаПартий.АналитикаУчетаПартий КАК АналитикаУчетаПартий,
| ТаблицаВидыЗапасов.Сумма КАК Сумма,
| ВЫРАЗИТЬ(ТаблицаВидыЗапасов.Сумма * &КоэффициентПересчетаВВалютуУпр КАК ЧИСЛО(31,2)) КАК СуммаУпр,
| ВЫРАЗИТЬ(ТаблицаВидыЗапасов.Сумма * &КоэффициентПересчетаВВалютуРегл КАК ЧИСЛО(31,2)) КАК СуммаРегл,
| ВЫРАЗИТЬ(ТаблицаВидыЗапасов.СуммаЗабаланс * &КоэффициентПересчетаВВалютуУпр КАК ЧИСЛО(31,2)) КАК СуммаЗабалансУпр,
| ВЫРАЗИТЬ(ТаблицаВидыЗапасов.СуммаЗабаланс * &КоэффициентПересчетаВВалютуРегл КАК ЧИСЛО(31,2)) КАК СуммаЗабалансРегл,
| ТаблицаВидыЗапасов.ИдентификаторСтроки КАК ИдентификаторСтроки,
| ТаблицаВидыЗапасов.АналитикаУчетаНоменклатуры.Номенклатура КАК Номенклатура,
| ТаблицаВидыЗапасов.АналитикаУчетаНоменклатуры.Характеристика КАК Характеристика,
| ТаблицаВидыЗапасов.АналитикаУчетаНоменклатуры.Назначение КАК Назначение,
| ТаблицаВидыЗапасов.АналитикаУчетаНоменклатуры.Серия КАК Серия,
| ВЫБОР КОГДА ТаблицаВидыЗапасов.ВидЗапасов.ВладелецТовара ССЫЛКА Справочник.Организации
| ТОГДА АналитикаРасчетовИнтеркампани.КлючАналитики
| ИНАЧЕ АналитикаРасчетов.КлючАналитики
| КОНЕЦ КАК АналитикаРасчетовСКомитентом
|
|ИЗ
| Документ.ПорчаТоваров.ВидыЗапасов КАК ТаблицаВидыЗапасов
| ЛЕВОЕ СОЕДИНЕНИЕ
| РегистрСведений.АналитикаУчетаНоменклатуры КАК АналитикаБезНазначения
| ПО
| ТаблицаВидыЗапасов.АналитикаУчетаНоменклатуры.Номенклатура = АналитикаБезНазначения.Номенклатура
| И ТаблицаВидыЗапасов.АналитикаУчетаНоменклатуры.Характеристика = АналитикаБезНазначения.Характеристика
| И ТаблицаВидыЗапасов.АналитикаУчетаНоменклатуры.Серия = АналитикаБезНазначения.Серия
| И ЗНАЧЕНИЕ(Справочник.Назначения.ПустаяСсылка) = АналитикаБезНазначения.Назначение
| И ТаблицаВидыЗапасов.АналитикаУчетаНоменклатуры.МестоХранения = АналитикаБезНазначения.МестоХранения
| И ЗНАЧЕНИЕ(Справочник.СтатьиКалькуляции.ПустаяСсылка) = АналитикаБезНазначения.СтатьяКалькуляции
| ЛЕВОЕ СОЕДИНЕНИЕ
| РегистрСведений.АналитикаУчетаНоменклатуры КАК КлючиОприходованиеБезНазначения
| ПО
| ТаблицаВидыЗапасов.АналитикаУчетаНоменклатурыОприходование.Номенклатура = КлючиОприходованиеБезНазначения.Номенклатура
| И ТаблицаВидыЗапасов.АналитикаУчетаНоменклатурыОприходование.Характеристика = КлючиОприходованиеБезНазначения.Характеристика
| И ТаблицаВидыЗапасов.АналитикаУчетаНоменклатурыОприходование.Серия = КлючиОприходованиеБезНазначения.Серия
| И ЗНАЧЕНИЕ(Справочник.Назначения.ПустаяСсылка) = КлючиОприходованиеБезНазначения.Назначение
| И ТаблицаВидыЗапасов.АналитикаУчетаНоменклатурыОприходование.МестоХранения = КлючиОприходованиеБезНазначения.МестоХранения
| И ЗНАЧЕНИЕ(Справочник.СтатьиКалькуляции.ПустаяСсылка) = КлючиОприходованиеБезНазначения.СтатьяКалькуляции
| ЛЕВОЕ СОЕДИНЕНИЕ
| РегистрСведений.АналитикаУчетаНоменклатуры КАК Аналитика
| ПО
| ТаблицаВидыЗапасов.АналитикаУчетаНоменклатуры.Номенклатура = Аналитика.Номенклатура
| И ТаблицаВидыЗапасов.АналитикаУчетаНоменклатуры.Характеристика = Аналитика.Характеристика
| И ЗНАЧЕНИЕ(Справочник.Назначения.ПустаяСсылка) = Аналитика.Назначение
| И ЗНАЧЕНИЕ(Справочник.СерииНоменклатуры.ПустаяСсылка) = Аналитика.Серия
| И ТаблицаВидыЗапасов.ВидЗапасов.ВладелецТовара = Аналитика.МестоХранения
| И ЗНАЧЕНИЕ(Справочник.СтатьиКалькуляции.ПустаяСсылка) = Аналитика.СтатьяКалькуляции
|
| ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.АналитикаУчетаПоПартнерам КАК АналитикаРасчетов
| ПО АналитикаРасчетов.Организация = &Организация
| И АналитикаРасчетов.Партнер = ТаблицаВидыЗапасов.ВидЗапасов.ВладелецТовара
| И АналитикаРасчетов.Контрагент = ТаблицаВидыЗапасов.ВидЗапасов.Контрагент
| И АналитикаРасчетов.Договор = ТаблицаВидыЗапасов.ВидЗапасов.Договор
| И АналитикаРасчетов.НаправлениеДеятельности = ЗНАЧЕНИЕ(Справочник.НаправленияДеятельности.ПустаяСсылка)
|
| ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.АналитикаУчетаПоПартнерам КАК АналитикаРасчетовИнтеркампани
| ПО АналитикаРасчетовИнтеркампани.Организация = &Организация
| И АналитикаРасчетовИнтеркампани.Партнер = ЗНАЧЕНИЕ(Справочник.Партнеры.НашеПредприятие)
| И АналитикаРасчетовИнтеркампани.Контрагент = ТаблицаВидыЗапасов.ВидЗапасов.Контрагент
| И АналитикаРасчетовИнтеркампани.Договор = ТаблицаВидыЗапасов.ВидЗапасов.Договор
| И АналитикаРасчетовИнтеркампани.НаправлениеДеятельности = ЗНАЧЕНИЕ(Справочник.НаправленияДеятельности.ПустаяСсылка)
|
| ЛЕВОЕ СОЕДИНЕНИЕ ВтТаблицаАналитикУчетаПартий КАК ТаблицаАналитикУчетаПартий
| ПО ТаблицаАналитикУчетаПартий.НомерСтроки = ТаблицаВидыЗапасов.НомерСтроки
| И ТаблицаАналитикУчетаПартий.ИмяТабличнойЧасти = ""ВидыЗапасов""
|
|ГДЕ
| ТаблицаВидыЗапасов.Ссылка = &Ссылка
| И ТаблицаВидыЗапасов.ВидЗапасов.ТипЗапасов = ЗНАЧЕНИЕ(Перечисление.ТипыЗапасов.КомиссионныйТовар)";
ТекстыЗапроса.Добавить(ТекстЗапроса, ИмяРегистра);
Возврат ТекстЗапроса;
КонецФункции
Функция ТекстЗапросаВтТаблицаАналитикУчетаПартий(Запрос, ТекстыЗапроса)
ТекстНомераСтрок = РасчетСебестоимостиПроведениеДокументов.ТекстЗапросаКодыСтрокДляАналитикиУчетаПартий(
Метаданные.Документы.ПорчаТоваров.Имя,
"ВидыЗапасов",
"АналитикаУчетаНоменклатурыОприходование");
ТекстВыборкаПоляАналитик = ТекстНомераСтрок + "
|ВЫБРАТЬ
| ""ВидыЗапасов"" КАК ИмяТабличнойЧасти,
| ТаблицаДокумента.НомерСтроки КАК НомерСтроки,
| НЕОПРЕДЕЛЕНО КАК Поставщик,
| НЕОПРЕДЕЛЕНО КАК Контрагент,
| НЕОПРЕДЕЛЕНО КАК СтавкаНДС,
| ДанныеДокумента.ВидДеятельностиНДС КАК НалогообложениеНДС,
| ЗНАЧЕНИЕ(Перечисление.ВидыЦенностей.Товары) КАК ВидЦенности,
| КодыСтрок.КодСтроки КАК КодСтроки
|ПОМЕСТИТЬ ВТПоляАналитикУчетаПартий
|ИЗ
| Документ.ПорчаТоваров.ВидыЗапасов КАК ТаблицаДокумента
| ВНУТРЕННЕЕ СОЕДИНЕНИЕ Документ.ПорчаТоваров КАК ДанныеДокумента
| ПО ДанныеДокумента.Ссылка = ТаблицаДокумента.Ссылка
| ВНУТРЕННЕЕ СОЕДИНЕНИЕ ВТКодыСтрокДляАналитикиУчетаПартий КАК КодыСтрок
| ПО ТаблицаДокумента.НомерСтроки = КодыСтрок.НомерСтроки
| И КодыСтрок.ИмяТабличнойЧасти = ""ВидыЗапасов""
|ГДЕ
| ТаблицаДокумента.Ссылка = &Ссылка
|";
ТекстЗапроса = Справочники.КлючиАналитикиУчетаПартий.ТекстЗапросаВтТаблицаАналитикУчетаПартий(ТекстВыборкаПоляАналитик, Запрос, ТекстыЗапроса);
Возврат ТекстЗапроса;
КонецФункции
Функция ТекстЗапросаТаблицаТоварыОрганизаций(Запрос, ТекстыЗапроса, Регистры)
ИмяРегистра = "ТоварыОрганизаций";
Если Не ПроведениеДокументов.ТребуетсяТаблицаДляДвижений(ИмяРегистра, Регистры) Тогда
Возврат "";
КонецЕсли;
Если Не ПроведениеДокументов.ЕстьТаблицаЗапроса("ВтВидыЗапасов", ТекстыЗапроса) Тогда
ТекстЗапросаВтВидыЗапасов(Запрос, ТекстыЗапроса);
КонецЕсли;
ТекстЗапроса =
"ВЫБРАТЬ
| ЗНАЧЕНИЕ(ВидДвиженияНакопления.Расход) КАК ВидДвижения,
| &Период КАК Период,
| &Склад КАК Склад,
| &Организация КАК ОрганизацияОтгрузки,
|
| ВЫБОР КОГДА ТаблицаВидыЗапасов.РеализацияЗапасовДругойОрганизации ТОГДА
| ТаблицаВидыЗапасов.ВидЗапасовВладельца.Организация
| ИНАЧЕ
| &Организация
| КОНЕЦ КАК Организация,
|
| ВЫБОР КОГДА ТаблицаВидыЗапасов.РеализацияЗапасовДругойОрганизации ТОГДА
| ТаблицаВидыЗапасов.ВидЗапасовВладельца
| ИНАЧЕ
| ТаблицаВидыЗапасов.ВидЗапасов
| КОНЕЦ КАК ВидЗапасов,
|
| ТаблицаВидыЗапасов.АналитикаУчетаНоменклатуры КАК АналитикаУчетаНоменклатуры,
| ТаблицаВидыЗапасов.Номенклатура КАК Номенклатура,
| ТаблицаВидыЗапасов.Характеристика КАК Характеристика,
| ТаблицаВидыЗапасов.НомерГТД КАК НомерГТД,
| ТаблицаВидыЗапасов.ВидДеятельностиНДС КАК НалогообложениеНДС,
| ТаблицаВидыЗапасов.ВидЗапасовОприходование КАК КорВидЗапасов,
| ВЫБОР КОГДА ТаблицаВидыЗапасов.ТипЗапасов = ЗНАЧЕНИЕ(Перечисление.ТипыЗапасов.КомиссионныйТовар) ТОГДА
| ТаблицаВидыЗапасов.АналитикаСписание
| ИНАЧЕ
| ТаблицаВидыЗапасов.АналитикаОприходование
| КОНЕЦ КАК КорАналитикаУчетаНоменклатуры,
| &ХозяйственнаяОперация КАК ХозяйственнаяОперация,
| &СтатьяРасходов КАК СтатьяРасходов,
| &АналитикаРасходов КАК АналитикаРасходов,
| ЛОЖЬ КАК Первичное,
| ТаблицаВидыЗапасов.Количество КАК Количество,
| 0 КАК КОформлениюСписания,
| ТаблицаВидыЗапасов.КоличествоПоРНПТ КАК КоличествоПоРНПТ,
| 0 КАК КОформлениюСписанияПоРНПТ
|ИЗ
| ВтВидыЗапасов КАК ТаблицаВидыЗапасов
|
|ОБЪЕДИНИТЬ ВСЕ
|
|ВЫБРАТЬ
| ЗНАЧЕНИЕ(ВидДвиженияНакопления.Приход) КАК ВидДвижения,
| &Период КАК Период,
| &Склад КАК Склад,
| &Организация КАК ОрганизацияОтгрузки,
| &Организация КАК Организация,
| ТаблицаВидыЗапасов.ВидЗапасовОприходование КАК ВидЗапасов,
| ТаблицаВидыЗапасов.АналитикаОприходование КАК АналитикаУчетаНоменклатуры,
| ТаблицаВидыЗапасов.НоменклатураОприходование КАК Номенклатура,
| ТаблицаВидыЗапасов.ХарактеристикаОприходование КАК Характеристика,
| ТаблицаВидыЗапасов.НомерГТД КАК НомерГТД,
| НЕОПРЕДЕЛЕНО КАК НалогообложениеНДС,
| ТаблицаВидыЗапасов.ВидЗапасов КАК КорВидЗапасов,
| ВЫБОР КОГДА ТаблицаВидыЗапасов.ТипЗапасов = ЗНАЧЕНИЕ(Перечисление.ТипыЗапасов.КомиссионныйТовар) ТОГДА
| ТаблицаВидыЗапасов.АналитикаСписание
| ИНАЧЕ
| ТаблицаВидыЗапасов.АналитикаУчетаНоменклатуры
| КОНЕЦ КАК КорАналитикаУчетаНоменклатуры,
| &ХозяйственнаяОперация КАК ХозяйственнаяОперация,
| НЕОПРЕДЕЛЕНО КАК СтатьяРасходов,
| НЕОПРЕДЕЛЕНО КАК АналитикаРасходов,
| НЕ &ПриходПоСебестоимости КАК Первичное,
| ТаблицаВидыЗапасов.Количество КАК Количество,
| 0 КАК КОформлениюСписания,
| ТаблицаВидыЗапасов.КоличествоПоРНПТ КАК КоличествоПоРНПТ,
| 0 КАК КОформлениюСписанияПоРНПТ
|ИЗ
| ВтВидыЗапасов КАК ТаблицаВидыЗапасов
|";
ТекстыЗапроса.Добавить(ТекстЗапроса, ИмяРегистра);
Возврат ТекстЗапроса;
КонецФункции
Функция ТекстЗапросаТаблицаТоварыКОформлениюОтчетовКомитенту(Запрос, ТекстыЗапроса, Регистры)
ИмяРегистра = "ТоварыКОформлениюОтчетовКомитенту";
Если Не ПроведениеДокументов.ТребуетсяТаблицаДляДвижений(ИмяРегистра, Регистры) Тогда
Возврат "";
КонецЕсли;
Если Не ПроведениеДокументов.ЕстьТаблицаЗапроса("ВтВидыЗапасов", ТекстыЗапроса) Тогда
ТекстЗапросаВтВидыЗапасов(Запрос, ТекстыЗапроса);
КонецЕсли;
ТекстЗапроса =
"ВЫБРАТЬ
| ТаблицаВидыЗапасов.НомерСтроки КАК НомерСтроки,
| ЗНАЧЕНИЕ(ВидДвиженияНакопления.Приход) КАК ВидДвижения,
| &Период КАК Период,
| &Организация КАК Организация,
| ТаблицаВидыЗапасов.Валюта КАК Валюта,
| ТаблицаВидыЗапасов.ВидЗапасов КАК ВидЗапасов,
| ТаблицаВидыЗапасов.Номенклатура КАК Номенклатура,
| ТаблицаВидыЗапасов.Характеристика КАК Характеристика,
| ТаблицаВидыЗапасов.АналитикаСписание КАК АналитикаУчетаНоменклатуры,
| ТаблицаВидыЗапасов.ВидЗапасовОприходование КАК КорВидЗапасов,
| ТаблицаВидыЗапасов.АналитикаОприходование КАК КорАналитикаУчетаНоменклатуры,
| ТаблицаВидыЗапасов.НомерГТД КАК НомерГТД,
| &ХозяйственнаяОперация КАК ХозяйственнаяОперация,
| 0 КАК Количество,
| ТаблицаВидыЗапасов.Количество КАК КоличествоСписано,
| 0 КАК СуммаВыручки,
| 0 КАК СуммаВыручкиРегл,
| 0 КАК СуммаВыручкиУпр,
| 0 КАК КоличествоКОформлению,
| 0 КАК КоличествоКОформлениюПоРНПТ,
| ТаблицаВидыЗапасов.Количество КАК КоличествоСписаноКОформлению,
| ТаблицаВидыЗапасов.КоличествоПоРНПТ КАК КоличествоСписаноКОформлениюПоРНПТ,
| 0 КАК СуммаВыручкиКОформлению,
| ТаблицаВидыЗапасов.ИдентификаторСтроки КАК ИдентификаторФинЗаписи,
| ВЫБОР
| КОГДА &ПриходПоСебестоимости
| ТОГДА ЗНАЧЕНИЕ(Справочник.НастройкиХозяйственныхОпераций.ПорчаТоваров)
| ИНАЧЕ ЗНАЧЕНИЕ(Справочник.НастройкиХозяйственныхОпераций.ПорчаТоваровСПереоценкой)
| КОНЕЦ КАК НастройкаХозяйственнойОперации,
| ТаблицаВидыЗапасов.ИдентификаторСтроки КАК ИдентификаторСтроки
|ИЗ
| ВтВидыЗапасов КАК ТаблицаВидыЗапасов
|
|ГДЕ
| ТаблицаВидыЗапасов.ТипЗапасов = ЗНАЧЕНИЕ(Перечисление.ТипыЗапасов.КомиссионныйТовар)
|
|УПОРЯДОЧИТЬ ПО
| НомерСтроки";
ТекстыЗапроса.Добавить(ТекстЗапроса, ИмяРегистра);
Возврат ТекстЗапроса;
КонецФункции
Процедура УстановитьПараметрыЗапросаКоэффициентыВалют(Запрос)
Если Запрос.Параметры.Свойство("КоэффициентПересчетаВВалютуУпр")
И Запрос.Параметры.Свойство("КоэффициентПересчетаВВалютуРегл") Тогда
Возврат;
КонецЕсли;
Коэффициенты = РаботаСКурсамивалютУТ.ПолучитьКоэффициентыПересчетаВалюты(
Запрос.Параметры.Валюта,
Неопределено,
Запрос.Параметры.Период,
Запрос.Параметры.Организация);
Запрос.УстановитьПараметр("КоэффициентПересчетаВВалютуРегл", Коэффициенты.КоэффициентПересчетаВВалютуРегл);
Запрос.УстановитьПараметр("КоэффициентПересчетаВВалютуУпр", Коэффициенты.КоэффициентПересчетаВВалютуУпр);
КонецПроцедуры
Процедура УстановитьПараметрЗапросаНалогообложениеОрганизации(Запрос)
Если Запрос.Параметры.Свойство("НалогообложениеОрганизации") Тогда
Возврат;
КонецЕсли;
ПараметрыУчетаПоОрганизации = УчетНДСУП.ПараметрыУчетаПоОрганизации(Запрос.Параметры.Организация, Запрос.Параметры.Период).ОсновноеНалогообложениеНДСПродажи;
Запрос.УстановитьПараметр("НалогообложениеОрганизации", ПараметрыУчетаПоОрганизации);
КонецПроцедуры
Функция ТекстЗапросаТаблицаПартииТоваровОрганизаций(Запрос, ТекстыЗапроса, Регистры)
ИмяРегистра = "ПартииТоваровОрганизаций";
Если Не ПроведениеДокументов.ТребуетсяТаблицаДляДвижений(ИмяРегистра, Регистры) Тогда
Возврат "";
КонецЕсли;
Если Не ПроведениеДокументов.ЕстьТаблицаЗапроса("ВтВидыЗапасов", ТекстыЗапроса) Тогда
ТекстЗапросаВтВидыЗапасов(Запрос, ТекстыЗапроса);
КонецЕсли;
ТекстЗапроса =
"ВЫБРАТЬ
| (ВЫБОР КОГДА &ПриходПоСебестоимости ТОГДА НЕОПРЕДЕЛЕНО ИНАЧЕ &Ссылка КОНЕЦ) КАК ДокументПоступления,
| ЗНАЧЕНИЕ(ВидДвиженияНакопления.Приход) КАК ВидДвижения,
| &Период КАК Период,
| &Организация КАК Организация,
| ТаблицаВидыЗапасов.АналитикаОприходование КАК АналитикаУчетаНоменклатуры,
| ТаблицаВидыЗапасов.ВидЗапасовОприходование КАК ВидЗапасов,
| (ВЫБОР КОГДА &ПриходПоСебестоимости ТОГДА НЕОПРЕДЕЛЕНО
| ИНАЧЕ ТаблицаВидыЗапасов.АналитикаУчетаПартий КОНЕЦ) КАК АналитикаУчетаПартий,
| ТаблицаВидыЗапасов.Количество КАК Количество,
| (ВЫБОР КОГДА &ПриходПоСебестоимости ТОГДА 0. ИНАЧЕ ТаблицаВидыЗапасов.СуммаУпр КОНЕЦ) КАК Стоимость,
| (ВЫБОР КОГДА &ПриходПоСебестоимости ТОГДА 0. ИНАЧЕ ТаблицаВидыЗапасов.СуммаУпр КОНЕЦ) КАК СтоимостьБезНДС,
| (ВЫБОР КОГДА &ПриходПоСебестоимости ТОГДА 0. ИНАЧЕ ТаблицаВидыЗапасов.СуммаРегл КОНЕЦ) КАК СтоимостьРегл,
| 0. КАК НДСРегл,
| ТаблицаВидыЗапасов.Номенклатура КАК Номенклатура,
| ТаблицаВидыЗапасов.Характеристика КАК Характеристика,
| &ХозяйственнаяОперация КАК ХозяйственнаяОперация,
| (НЕ &ПриходПоСебестоимости) КАК Первичное,
| (ВЫБОР КОГДА &ПриходПоСебестоимости ТОГДА &Ссылка ИНАЧЕ НЕОПРЕДЕЛЕНО КОНЕЦ) КАК ДокументИсточник
|ИЗ
| ВтВидыЗапасов КАК ТаблицаВидыЗапасов
|ГДЕ
| &ПартионныйУчетВерсии21";
ТекстыЗапроса.Добавить(ТекстЗапроса, ИмяРегистра);
Возврат ТекстЗапроса;
КонецФункции
Функция ТекстЗапросаДвиженияНоменклатураНоменклатура(Запрос, ТекстыЗапроса, Регистры)
ИмяРегистра = "ДвиженияНоменклатураНоменклатура";
Если Не ПроведениеДокументов.ТребуетсяТаблицаДляДвижений(ИмяРегистра, Регистры) Тогда
Возврат "";
КонецЕсли;
Если Не ПроведениеДокументов.ЕстьТаблицаЗапроса("ВтВидыЗапасов", ТекстыЗапроса) Тогда
ТекстЗапросаВтВидыЗапасов(Запрос, ТекстыЗапроса);
КонецЕсли;
ТекстЗапроса =
"ВЫБРАТЬ
| &Период КАК Период,
| &ХозяйственнаяОперация КАК ХозяйственнаяОперация,
| &Организация КАК Организация,
| &Подразделение КАК Подразделение,
|
| ВЫБОР КОГДА &УчитыватьСебестоимостьТоваровПоНазначениям
| ТОГДА ВидыЗапасов.АналитикаУчетаНоменклатуры
| ИНАЧЕ ВидыЗапасов.АналитикаУчетаНоменклатурыБезНазначения
| КОНЕЦ КАК АналитикаУчетаНоменклатуры,
| ВидыЗапасов.НаправлениеДеятельности КАК НаправлениеДеятельности,
| &Склад КАК Склад,
| ВидыЗапасов.ТипЗапасов КАК ТипЗапасов,
| ВидыЗапасов.ВидЗапасов КАК ВидЗапасов,
|
| ВЫБОР КОГДА &УчитыватьСебестоимостьТоваровПоНазначениям
| ТОГДА ВидыЗапасов.АналитикаОприходование
| ИНАЧЕ ВидыЗапасов.АналитикаОприходованиеБезНазначения
| КОНЕЦ КАК КорАналитикаУчетаНоменклатуры,
| ВидыЗапасов.НаправлениеДеятельностиОприходование КАК КорНаправлениеДеятельности,
| &Склад КАК КорСклад,
| ВидыЗапасов.ВидЗапасовОприходование.ТипЗапасов КАК КорТипЗапасов,
| ВидыЗапасов.ВидЗапасовОприходование КАК КорВидЗапасов,
|
| ВидыЗапасов.Количество КАК Количество,
| ВидыЗапасов.Количество КАК КорКоличество,
|
| ВЫБОР КОГДА &ПриходПоСебестоимости
| ТОГДА 0
| ИНАЧЕ ВидыЗапасов.СуммаУпр
| КОНЕЦ КАК Стоимость,
| ВЫБОР КОГДА &ПриходПоСебестоимости
| ТОГДА 0
| ИНАЧЕ ВидыЗапасов.СуммаУпр
| КОНЕЦ КАК СтоимостьБезНДС,
| ВЫБОР КОГДА &ПриходПоСебестоимости
| ТОГДА 0
| ИНАЧЕ ВидыЗапасов.СуммаРегл
| КОНЕЦ КАК СтоимостьРегл,
|
| ВЫБОР КОГДА &ФормироватьВидыЗапасовПоГруппамФинансовогоУчета ТОГДА
| ВидыЗапасов.ВидЗапасов
| ИНАЧЕ
| ВидыЗапасов.Номенклатура
| КОНЕЦ КАК ИсточникГФУНоменклатуры,
| ВЫБОР КОГДА &ФормироватьВидыЗапасовПоГруппамФинансовогоУчета ТОГДА
| ВидыЗапасов.ВидЗапасовОприходование
| ИНАЧЕ
| ВидыЗапасов.НоменклатураОприходование
| КОНЕЦ КАК КорИсточникГФУНоменклатуры
|
|ИЗ
| ВтВидыЗапасов КАК ВидыЗапасов";
ТекстыЗапроса.Добавить(ТекстЗапроса, ИмяРегистра);
Возврат ТекстЗапроса;
КонецФункции
Функция ТекстЗапросаТаблицаТоварыОрганизацийКПередаче(Запрос, ТекстыЗапроса, Регистры)
ИмяРегистра = "ТоварыОрганизацийКПередаче";
Если Не ПроведениеДокументов.ТребуетсяТаблицаДляДвижений(ИмяРегистра, Регистры) Тогда
Возврат "";
КонецЕсли;
Если Не ПроведениеДокументов.ЕстьТаблицаЗапроса("ВтВидыЗапасов", ТекстыЗапроса) Тогда
ТекстЗапросаВтВидыЗапасов(Запрос, ТекстыЗапроса);
КонецЕсли;
ТекстЗапроса =
"ВЫБРАТЬ
| ТаблицаВидыЗапасов.НомерСтроки КАК НомерСтроки,
| ЗНАЧЕНИЕ(ВидДвиженияНакопления.Приход) КАК ВидДвижения,
| &Период КАК Период,
| &Склад КАК Склад,
| ТаблицаВидыЗапасов.ВидЗапасовВладельца.Организация КАК ОрганизацияВладелец,
| ТаблицаВидыЗапасов.АналитикаУчетаНоменклатуры КАК АналитикаУчетаНоменклатуры,
| ТаблицаВидыЗапасов.ВидЗапасов КАК ВидЗапасовПродавца,
| ТаблицаВидыЗапасов.НомерГТД КАК НомерГТД,
| ТаблицаВидыЗапасов.Номенклатура КАК Номенклатура,
| ТаблицаВидыЗапасов.Характеристика КАК Характеристика,
| ТаблицаВидыЗапасов.Количество КАК Количество,
| &ХозяйственнаяОперация КАК ХозяйственнаяОперация,
| &ВидДеятельностиНДС КАК НалогообложениеНДС
|ИЗ
| ВтВидыЗапасов КАК ТаблицаВидыЗапасов
|ГДЕ
| ТаблицаВидыЗапасов.РеализацияЗапасовДругойОрганизации
|УПОРЯДОЧИТЬ ПО
| НомерСтроки";
ТекстыЗапроса.Добавить(ТекстЗапроса, ИмяРегистра);
Возврат ТекстЗапроса;
КонецФункции
Функция ТекстЗапросаТаблицаРеестрДокументов(Запрос, ТекстыЗапроса, Регистры)
ИмяРегистра = "РеестрДокументов";
Если НЕ ПроведениеДокументов.ТребуетсяТаблицаДляДвижений(ИмяРегистра, Регистры) Тогда
Возврат "";
КонецЕсли;
Если Не ПроведениеДокументов.ЕстьТаблицаЗапроса("ВтОснований", ТекстыЗапроса) Тогда
ТекстЗапросаВтОснований(Запрос, ТекстыЗапроса);
КонецЕсли;
ТекстЗапроса =
"ВЫБРАТЬ
| &Ссылка КАК Ссылка,
| &Период КАК ДатаДокументаИБ,
| &Номер КАК НомерДокументаИБ,
| &ИдентификаторМетаданных КАК ТипСсылки,
| &Организация КАК Организация,
| &ХозяйственнаяОперация КАК ХозяйственнаяОперация,
| НЕОПРЕДЕЛЕНО КАК Партнер,
| НЕОПРЕДЕЛЕНО КАК Контрагент,
| ВЫБОР
| КОГДА ДанныеДокумента.КоличествоНаправленийДеятельности = 1
| ТОГДА ДанныеДокумента.НаправлениеДеятельности
| ИНАЧЕ НЕОПРЕДЕЛЕНО
| КОНЕЦ КАК НаправлениеДеятельности,
| &Склад КАК МестоХранения,
| &Подразделение КАК Подразделение,
| &Ответственный КАК Ответственный,
| &Автор КАК Автор,
| ВЫРАЗИТЬ(&Комментарий КАК СТРОКА(100)) КАК Комментарий,
| &Валюта КАК Валюта,
| 0 КАК Сумма,
| НЕОПРЕДЕЛЕНО КАК Статус,
| &Проведен КАК Проведен,
| &ПометкаУдаления КАК ПометкаУдаления,
| ЛОЖЬ КАК ДополнительнаяЗапись,
| НЕОПРЕДЕЛЕНО КАК Дополнительно,
| &Период КАК ДатаПервичногоДокумента,
| &НомерНаПечать КАК НомерПервичногоДокумента,
| &Исправление КАК СторноИсправление,
| &СторнируемыйДокумент КАК СторнируемыйДокумент,
| &ИсправляемыйДокумент КАК ИсправляемыйДокумент,
| &Период КАК ДатаОтраженияВУчете,
| НЕОПРЕДЕЛЕНО КАК Приоритет
|ИЗ
| ВтОснований КАК ДанныеДокумента";
ТекстыЗапроса.Добавить(ТекстЗапроса, ИмяРегистра);
Возврат ТекстЗапроса;
КонецФункции
Функция ТекстЗапросаВтОснований(Запрос, ТекстыЗапроса)
ИмяРегистра = "ВтОснований";
ТекстЗапроса =
"ВЫБРАТЬ
| &Ссылка КАК Ссылка,
| МАКСИМУМ(
| ЕСТЬNULL(ТаблицаТовары.Назначение.НаправлениеДеятельности,
| ЗНАЧЕНИЕ(Справочник.НаправленияДеятельности.ПустаяСсылка))) КАК НаправлениеДеятельности,
| КОЛИЧЕСТВО(
| РАЗЛИЧНЫЕ ЕСТЬNULL(ТаблицаТовары.Назначение.НаправлениеДеятельности,
| ЗНАЧЕНИЕ(Справочник.НаправленияДеятельности.ПустаяСсылка))) КАК КоличествоНаправленийДеятельности
|ПОМЕСТИТЬ ВтОснований
|ИЗ
| Документ.ПорчаТоваров КАК ДанныеДокумента
| ЛЕВОЕ СОЕДИНЕНИЕ Документ.ПорчаТоваров.Товары КАК ТаблицаТовары
| ПО ДанныеДокумента.Ссылка = ТаблицаТовары.Ссылка
|ГДЕ
| ДанныеДокумента.Ссылка = &Ссылка
|
|СГРУППИРОВАТЬ ПО
| &Ссылка";
ТекстыЗапроса.Добавить(ТекстЗапроса, ИмяРегистра);
Возврат ТекстЗапроса;
КонецФункции
Функция АдаптированныйТекстЗапросаДвиженийПоРегистру(ИмяРегистра) Экспорт
Запрос = Новый Запрос;
ТекстыЗапроса = Новый СписокЗначений;
ПолноеИмяДокумента = "Документ.ПорчаТоваров";
СинонимТаблицыДокумента = "";
ВЗапросеЕстьИсточник = Истина;
ТекстыЗапросаВременныхТаблиц = Новый Соответствие();
ПереопределениеРасчетаПараметров = Новый Структура;
ПереопределениеРасчетаПараметров.Вставить("НомерНаПечать", """""");
ПереопределениеРасчетаПараметров.Вставить("ИспользоватьОрдернуюСхемуПриОтраженииИзлишковНедостач",
"ВЫБОР
| КОГДА ТаблицаТовары.Ссылка.Склад.ИспользоватьОрдернуюСхемуПриОтраженииИзлишковНедостач
| И ТаблицаТовары.Ссылка.Дата >= ТаблицаТовары.Ссылка.Склад.ДатаНачалаОрдернойСхемыПриОтраженииИзлишковНедостач
| ТОГДА ИСТИНА
| ИНАЧЕ ЛОЖЬ
| КОНЕЦ");
ЗначенияПараметров = Новый Структура;
ЗначенияПараметров.Вставить("ИдентификаторМетаданных",
ОбщегоНазначения.ИдентификаторОбъектаМетаданных(ПолноеИмяДокумента));
Если ИмяРегистра = "РеестрДокументов" Тогда
ТекстЗапроса = ТекстЗапросаТаблицаРеестрДокументов(Запрос, ТекстыЗапроса, ИмяРегистра);
ТекстыЗапросаВременныхТаблиц.Вставить("ВтОснований", ТекстЗапросаВтОснований(Запрос, ТекстыЗапроса));
СинонимТаблицыДокумента = "ДанныеДокумента";
Иначе
ТекстИсключения = НСтр("ru = 'В документе %ПолноеИмяДокумента% не реализована адаптация текста запроса формирования движений по регистру %ИмяРегистра%.'");
ТекстИсключения = СтрЗаменить(ТекстИсключения, "%ПолноеИмяДокумента%", ПолноеИмяДокумента);
ТекстИсключения = СтрЗаменить(ТекстИсключения, "%ИмяРегистра%", ИмяРегистра);
ВызватьИсключение ТекстИсключения;
КонецЕсли;
Если СинонимТаблицыДокумента <> "ТаблицаТовары" Тогда
Для Каждого ПараметрРасчета Из ПереопределениеРасчетаПараметров Цикл
ПереопределениеРасчетаПараметров[ПараметрРасчета.Ключ] = СтрЗаменить(
ПараметрРасчета.Значение, "ТаблицаТовары", СинонимТаблицыДокумента);
КонецЦикла;
КонецЕсли;
ТекстЗапроса = ОбновлениеИнформационнойБазыУТ.АдаптироватьЗапросПроведенияПоНезависимомуРегистру(
ТекстЗапроса,
ПолноеИмяДокумента,
СинонимТаблицыДокумента,
ВЗапросеЕстьИсточник,
ПереопределениеРасчетаПараметров,
ТекстыЗапросаВременныхТаблиц);
Результат = ОбновлениеИнформационнойБазыУТ.РезультатАдаптацииЗапроса();
Результат.ЗначенияПараметров = ЗначенияПараметров;
Результат.ТекстЗапроса = ТекстЗапроса;
Возврат Результат;
КонецФункции
Функция ТекстЗапросаТаблицаВтИсходныеПрочиеРасходы(Запрос, ТекстыЗапроса)
ИмяРегистра = "ВтИсходныеПрочиеРасходы";
ТекстЗапроса = РегистрыНакопления.ПрочиеРасходы.ТекстОписаниеВтИсходныеПрочиеРасходы();
ТекстЗапроса = ТекстЗапроса + "ОБЪЕДИНИТЬ ВСЕ" + "
|ВЫБРАТЬ
| &Период КАК Период,
| ЗНАЧЕНИЕ(ВидДвиженияНакопления.Приход) КАК ВидДвижения,
| &Организация КАК Организация,
| &Подразделение КАК Подразделение,
| &СтатьяРасходов КАК СтатьяРасходов,
| &АналитикаРасходов КАК АналитикаРасходов,
| НЕОПРЕДЕЛЕНО КАК НаправлениеДеятельности,
| НЕОПРЕДЕЛЕНО КАК ВидДеятельностиНДС,
|
| 0 КАК СуммаСНДС,
| 0 КАК СуммаБезНДС,
| 0 КАК СуммаБезНДСУпр,
| 0 КАК СуммаСНДСРегл,
| 0 КАК СуммаБезНДСРегл,
| 0 КАК ПостояннаяРазница,
| 0 КАК ВременнаяРазница,
| &ХозяйственнаяОперация КАК ХозяйственнаяОперация,
| НЕОПРЕДЕЛЕНО КАК АналитикаУчетаНоменклатуры,
|
| &ИдентификаторДокумента КАК ИдентификаторФинЗаписи,
| ВЫБОР
| КОГДА &ПриходПоСебестоимости
| ТОГДА ЗНАЧЕНИЕ(Справочник.НастройкиХозяйственныхОпераций.ПорчаТоваров)
| ИНАЧЕ ЗНАЧЕНИЕ(Справочник.НастройкиХозяйственныхОпераций.ПорчаТоваровСПереоценкой)
| КОНЕЦ КАК НастройкаХозяйственнойОперации
|";
ТекстыЗапроса.Добавить(ТекстЗапроса, ИмяРегистра);
Возврат ТекстЗапроса;
КонецФункции
Функция ТекстЗапросаТаблицаВтПрочиеРасходы(Запрос, ТекстыЗапроса) Экспорт
ИмяРегистра = "ВтПрочиеРасходы";
Если Не ПроведениеДокументов.ЕстьТаблицаЗапроса("ВтИсходныеПрочиеРасходы", ТекстыЗапроса) Тогда
ТекстЗапросаТаблицаВтИсходныеПрочиеРасходы(Запрос, ТекстыЗапроса);
КонецЕсли;
ТекстЗапроса = РегистрыНакопления.ПрочиеРасходы.ТекстЗапросаТаблицаВтПрочиеРасходы();
ТекстыЗапроса.Добавить(ТекстЗапроса, ИмяРегистра);
Возврат ТекстЗапроса;
КонецФункции
Процедура ОтразитьРаспределениеЗапасовДвижения(Запрос, ТекстыЗапроса, Регистры)
ТекстЗапросаТабЧасть =
"ВЫБРАТЬ
| ТабЧасть.Ссылка КАК Ссылка,
| ТабЧасть.Ссылка.Дата КАК Период,
| ТабЧасть.Номенклатура КАК Номенклатура,
| ТабЧасть.Характеристика КАК Характеристика,
| ТабЧасть.Ссылка.Склад КАК Склад,
| ТабЧасть.Назначение КАК Назначение,
| ТабЧасть.Количество КАК Количество,
| НЕОПРЕДЕЛЕНО КАК ЗапланированныйРасходРаспределенногоЗапаса,
| ЛОЖЬ КАК КонтрольСвободногоОстатка
|ИЗ
| Документ.ПорчаТоваров.Товары КАК ТабЧасть
|ГДЕ
| НЕ ТабЧасть.Ссылка.Склад.ИспользоватьОрдернуюСхемуПриОтраженииИзлишковНедостач
| ИЛИ ТабЧасть.Ссылка.Склад.ДатаНачалаОрдернойСхемыПриОтраженииИзлишковНедостач > ТабЧасть.Ссылка.Дата";
РаспределениеЗапасовДвижения.РасходЗапаса(Запрос, ТекстыЗапроса, Регистры, ТекстЗапросаТабЧасть);
ТекстЗапросаТабЧасть =
"ВЫБРАТЬ
| ТабЧасть.Ссылка КАК Ссылка,
| ТабЧасть.Ссылка.Дата КАК Период,
| ТабЧасть.НоменклатураОприходование КАК Номенклатура,
| ТабЧасть.ХарактеристикаОприходование КАК Характеристика,
| ТабЧасть.Ссылка.Склад КАК Склад,
|
| ВЫБОР КОГДА ТабЧасть.ПодНазначение ТОГДА
| ТабЧасть.Назначение
| ИНАЧЕ
| ЗНАЧЕНИЕ(Справочник.Назначения.ПустаяСсылка)
| КОНЕЦ КАК Назначение,
|
| ТабЧасть.Количество КАК Количество,
| ЛОЖЬ КАК ПоГрафику,
| НЕОПРЕДЕЛЕНО КАК РаспоряжениеВГрафике
|ИЗ
| Документ.ПорчаТоваров.Товары КАК ТабЧасть
|ГДЕ
| НЕ ТабЧасть.Ссылка.Склад.ИспользоватьОрдернуюСхемуПриОтраженииИзлишковНедостач
| ИЛИ ТабЧасть.Ссылка.Склад.ДатаНачалаОрдернойСхемыПриОтраженииИзлишковНедостач > ТабЧасть.Ссылка.Дата";
РаспределениеЗапасовДвижения.ПриходЗапаса(Запрос, ТекстыЗапроса, Регистры, ТекстЗапросаТабЧасть, Неопределено, Ложь);
КонецПроцедуры
#Область ПартионныйУчет
Функция ОписаниеРегистровУчетаЗатратИСебестоимости(Документ) Экспорт
ОписаниеРегистров = Новый Массив;
ОписаниеРегистров.Добавить(Метаданные.РегистрыНакопления.СебестоимостьТоваров);
Возврат ОписаниеРегистров;
КонецФункции
Функция УстановитьДополнительныеПараметрыОперацийУчетаЗатратИСебестоимости(Документ, Запрос = Неопределено) Экспорт
ДополнительныеПараметры = Новый Массив;
ДополнительныеПараметры.Добавить("НалогообложениеОрганизации");
Если Запрос <> Неопределено Тогда
УстановитьПараметрЗапросаНалогообложениеОрганизации(Запрос);
КонецЕсли;
Возврат ДополнительныеПараметры;
КонецФункции
Функция СформироватьДополнительныеТаблицыОперацийУчетаЗатратИСебестоимости(Документ, Запрос = Неопределено, ТекстыЗапроса = Неопределено) Экспорт
ДополнительныеТаблицы = Новый Массив;
ДополнительныеТаблицы.Добавить("ВтВидыЗапасов");
ДополнительныеТаблицы.Добавить("ВтПрочиеРасходы");
Если Запрос <> Неопределено Тогда
Если НЕ ПроведениеДокументов.ЕстьТаблицаЗапроса(ДополнительныеТаблицы[0], ТекстыЗапроса) Тогда
ТекстЗапросаВтВидыЗапасов(Запрос, ТекстыЗапроса);
КонецЕсли;
Если НЕ ПроведениеДокументов.ЕстьТаблицаЗапроса(ДополнительныеТаблицы[1], ТекстыЗапроса) Тогда
ТекстЗапросаТаблицаВтПрочиеРасходы(Запрос, ТекстыЗапроса);
КонецЕсли;
КонецЕсли;
Возврат ДополнительныеТаблицы;
КонецФункции
Функция ОписаниеОперацийУчетаСебестоимости(Документ) Экспорт
ОписаниеОпераций = Новый Массив;
#Область ВыбытиеПоФиксированнойСтоимости_Товар
ТекстЗапроса =
"ВЫБРАТЬ
| ТаблицаДокумента.Дата КАК Период,
| ТаблицаДокумента.Ссылка КАК Ссылка,
| НЕОПРЕДЕЛЕНО КАК ДокументИсточник,
| НЕОПРЕДЕЛЕНО КАК ПериодДокументаИсточника,
| НЕОПРЕДЕЛЕНО КАК КорректируемыйДокумент,
|
| ТаблицаДокумента.Организация КАК Организация,
| ТаблицаВидыЗапасов.АналитикаСписание КАК АналитикаУчетаНоменклатуры,
| ТаблицаВидыЗапасов.ВидЗапасов КАК ВидЗапасов,
| ТаблицаВидыЗапасов.ВидДеятельностиНДС КАК ВидДеятельностиНДС,
| ТаблицаДокумента.ВидДеятельностиНДС КАК ВидДеятельностиНДСДокумента,
|
| ТаблицаВидыЗапасов.АналитикаОприходование КАК КорАналитикаУчетаНоменклатуры,
| ТаблицаВидыЗапасов.ВидЗапасовОприходование КАК КорВидЗапасов,
| &СтатьяРасходов КАК СтатьяРасходовАктивов,
| &АналитикаРасходов КАК АналитикаРасходовАктивов,
| ЗНАЧЕНИЕ(ПланВидовХарактеристик.СтатьиДоходов.ОтклонениеВСтоимостиТоваров) КАК СтатьяДоходов,
| ТаблицаВидыЗапасов.АналитикаСписание.Номенклатура КАК АналитикаДоходов,
|
| НЕОПРЕДЕЛЕНО КАК Сделка,
| ТаблицаДокумента.Подразделение КАК Подразделение,
| НЕОПРЕДЕЛЕНО КАК Менеджер,
| НЕОПРЕДЕЛЕНО КАК ГруппаПродукции,
|
| ТаблицаВидыЗапасов.Количество КАК Количество,
| ТаблицаВидыЗапасов.ИдентификаторСтроки КАК ИдентификаторСтроки,
| ТаблицаВидыЗапасов.СуммаУпр КАК Стоимость,
| ТаблицаВидыЗапасов.СуммаУпр КАК СтоимостьБезНДС,
| ТаблицаВидыЗапасов.СуммаРегл КАК СтоимостьРегл,
| ТаблицаВидыЗапасов.СуммаУпр КАК СтоимостьУпр,
| 0 КАК КорСтоимость,
|
| ЗНАЧЕНИЕ(Перечисление.ХозяйственныеОперации.ПорчаТоваровСПереоценкой) КАК ХозяйственнаяОперация,
| ТаблицаВидыЗапасов.ИдентификаторСтроки КАК ИдентификаторФинЗаписи,
| ЗНАЧЕНИЕ(Справочник.НастройкиХозяйственныхОпераций.ПорчаТоваровСПереоценкой) КАК НастройкаХозяйственнойОперации
|
|ИЗ
| Документ.ПорчаТоваров КАК ТаблицаДокумента
| ВНУТРЕННЕЕ СОЕДИНЕНИЕ ВтВидыЗапасов КАК ТаблицаВидыЗапасов
| ПО ИСТИНА
|ГДЕ
| ТаблицаДокумента.Ссылка В (&Ссылка)
| И НЕ ТаблицаДокумента.ПриходоватьТоварыПоСебестоимостиСписания
| И НЕ (ТаблицаВидыЗапасов.ТипЗапасов = ЗНАЧЕНИЕ(Перечисление.ТипыЗапасов.ТоварНаХраненииСПравомПродажи)
| И ТаблицаВидыЗапасов.ТипЗапасовОприходование = ЗНАЧЕНИЕ(Перечисление.ТипыЗапасов.Товар))
|";
РасчетСебестоимостиПроведениеДокументов.ДобавитьОписаниеОперацииДляОтраженияВУчетеСебестоимости(
ОписаниеОпераций,
Перечисления.ОперацииУчетаСебестоимости.ВыбытиеПоФиксированнойСтоимости,
ТекстЗапроса);
#КонецОбласти
#Область ВнутреннееПоступление_Товар
ТекстЗапроса =
"ВЫБРАТЬ
| ТаблицаДокумента.Дата КАК Период,
| ТаблицаДокумента.Ссылка КАК Ссылка,
| НЕОПРЕДЕЛЕНО КАК ДокументИсточник,
| НЕОПРЕДЕЛЕНО КАК ПериодДокументаИсточника,
| НЕОПРЕДЕЛЕНО КАК КорректируемыйДокумент,
|
| ТаблицаДокумента.Организация КАК Организация,
| ТаблицаВидыЗапасов.АналитикаОприходование КАК АналитикаУчетаНоменклатуры,
| ТаблицаВидыЗапасов.ВидЗапасовОприходование КАК ВидЗапасов,
| ВЫБОР КОГДА НЕ &Исправление
| ТОГДА ТаблицаДокумента.Ссылка
| ИНАЧЕ ТаблицаДокумента.ИсправляемыйДокумент
| КОНЕЦ КАК Партия,
| ВЫБОР КОГДА ТаблицаВидыЗапасов.ВидДеятельностиНДС = ЗНАЧЕНИЕ(Перечисление.ТипыНалогообложенияНДС.ПустаяСсылка)
| ТОГДА &НалогообложениеОрганизации
| ИНАЧЕ ТаблицаВидыЗапасов.ВидДеятельностиНДС
| КОНЕЦ КАК ВидДеятельностиНДС,
| ТаблицаДокумента.ВидДеятельностиНДС КАК ВидДеятельностиНДСДокумента,
|
| ТаблицаВидыЗапасов.АналитикаУчетаПартий КАК АналитикаУчетаПартий,
| ВЫБОР КОГДА НЕ &ФИФОСкользящаяОценка
| ТОГДА ТаблицаВидыЗапасов.АналитикаУчетаПартий
| ИНАЧЕ НЕОПРЕДЕЛЕНО
| КОНЕЦ КАК КорАналитикаУчетаПартий,
| 0 КАК КодСтроки,
|
| НЕОПРЕДЕЛЕНО КАК КорАналитикаУчетаНоменклатуры,
| НЕОПРЕДЕЛЕНО КАК КорВидЗапасов,
| НЕОПРЕДЕЛЕНО КАК КорГруппаПродукции,
|
| НЕОПРЕДЕЛЕНО КАК Сделка,
| ТаблицаДокумента.Подразделение КАК Подразделение,
| НЕОПРЕДЕЛЕНО КАК Менеджер,
| НЕОПРЕДЕЛЕНО КАК ГруппаПродукции,
|
| ТаблицаВидыЗапасов.Количество КАК Количество,
| ТаблицаВидыЗапасов.ИдентификаторСтроки КАК ИдентификаторСтроки,
| ТаблицаВидыЗапасов.СуммаУпр КАК Стоимость,
| ТаблицаВидыЗапасов.СуммаУпр КАК СтоимостьБезНДС,
| ТаблицаВидыЗапасов.СуммаРегл КАК СтоимостьРегл,
| 0 КАК НДСРегл,
| ТаблицаВидыЗапасов.СуммаУпр КАК СтоимостьУпр,
| 0 КАК НДСУпр,
| ТаблицаВидыЗапасов.СуммаЗабалансУпр КАК СтоимостьЗабалансовая,
| ТаблицаВидыЗапасов.СуммаЗабалансРегл КАК СтоимостьЗабалансоваяРегл,
| 0 КАК ДопРасходы,
| 0 КАК ДопРасходыБезНДС,
| 0 КАК ДопРасходыРегл,
| 0 КАК ДопРасходыУпр,
| 0 КАК ПостояннаяРазница,
| 0 КАК ВременнаяРазница,
| 0 КАК КорСтоимость,
|
| ЗНАЧЕНИЕ(Перечисление.ХозяйственныеОперации.ПорчаТоваровСПереоценкой) КАК ХозяйственнаяОперация,
| ТаблицаВидыЗапасов.ИдентификаторСтроки КАК ИдентификаторФинЗаписи,
| ЗНАЧЕНИЕ(Справочник.НастройкиХозяйственныхОпераций.ПорчаТоваровСПереоценкой) КАК НастройкаХозяйственнойОперации
|
|ИЗ
| Документ.ПорчаТоваров КАК ТаблицаДокумента
| ВНУТРЕННЕЕ СОЕДИНЕНИЕ ВтВидыЗапасов КАК ТаблицаВидыЗапасов
| ПО ИСТИНА
|ГДЕ
| ТаблицаДокумента.Ссылка В (&Ссылка)
| И НЕ ТаблицаДокумента.ПриходоватьТоварыПоСебестоимостиСписания
|";
РасчетСебестоимостиПроведениеДокументов.ДобавитьОписаниеОперацииДляОтраженияВУчетеСебестоимости(
ОписаниеОпераций,
Перечисления.ОперацииУчетаСебестоимости.ВнутреннееПоступление,
ТекстЗапроса);
#КонецОбласти
#Область Перемещение_Товар
ТекстЗапроса =
"ВЫБРАТЬ
| ТаблицаДокумента.Дата КАК Период,
| ТаблицаДокумента.Ссылка КАК Ссылка,
| НЕОПРЕДЕЛЕНО КАК КорректируемыйДокумент,
|
| ТаблицаДокумента.Организация КАК Организация,
| ТаблицаВидыЗапасов.АналитикаСписание КАК АналитикаУчетаНоменклатуры,
| ТаблицаВидыЗапасов.ВидЗапасов КАК ВидЗапасов,
| ТаблицаВидыЗапасов.ВидДеятельностиНДС КАК ВидДеятельностиНДС,
| ТаблицаДокумента.ВидДеятельностиНДС КАК ВидДеятельностиНДСДокумента,
|
| НЕОПРЕДЕЛЕНО КАК КорОрганизация,
| НЕОПРЕДЕЛЕНО КАК КорПартия,
| ТаблицаВидыЗапасов.АналитикаОприходование КАК КорАналитикаУчетаНоменклатуры,
| ТаблицаВидыЗапасов.ВидЗапасовОприходование КАК КорВидЗапасов,
|
| НЕОПРЕДЕЛЕНО КАК Сделка,
| ТаблицаДокумента.Подразделение КАК Подразделение,
| НЕОПРЕДЕЛЕНО КАК Менеджер,
| НЕОПРЕДЕЛЕНО КАК ГруппаПродукции,
|
| ТаблицаВидыЗапасов.Количество КАК Количество,
| ТаблицаВидыЗапасов.ИдентификаторСтроки КАК ИдентификаторСтроки,
|
| ТаблицаВидыЗапасов.АналитикаРасчетовСКомитентом КАК АналитикаУчетаПоПартнерам,
| ЗНАЧЕНИЕ(Перечисление.ХозяйственныеОперации.ПорчаТоваров) КАК ХозяйственнаяОперация,
| ТаблицаВидыЗапасов.ИдентификаторСтроки КАК ИдентификаторФинЗаписи,
| ЗНАЧЕНИЕ(Справочник.НастройкиХозяйственныхОпераций.ПорчаТоваров) КАК НастройкаХозяйственнойОперации
|
|ИЗ
| Документ.ПорчаТоваров КАК ТаблицаДокумента
| ВНУТРЕННЕЕ СОЕДИНЕНИЕ ВтВидыЗапасов КАК ТаблицаВидыЗапасов
| ПО ИСТИНА
|ГДЕ
| ТаблицаДокумента.Ссылка В (&Ссылка)
| И ТаблицаДокумента.ПриходоватьТоварыПоСебестоимостиСписания
| И ТаблицаВидыЗапасов.ТипЗапасов <> ЗНАЧЕНИЕ(Перечисление.ТипыЗапасов.ТоварНаХраненииСПравомПродажи)
|";
РасчетСебестоимостиПроведениеДокументов.ДобавитьОписаниеОперацииДляОтраженияВУчетеСебестоимости(
ОписаниеОпераций,
Перечисления.ОперацииУчетаСебестоимости.Перемещение,
ТекстЗапроса);
#КонецОбласти
#Область Перемещение_ТоварНаХранении
ТекстЗапроса =
"ВЫБРАТЬ
| ТаблицаДокумента.Дата КАК Период,
| ТаблицаДокумента.Ссылка КАК Ссылка,
| НЕОПРЕДЕЛЕНО КАК КорректируемыйДокумент,
|
| ТаблицаДокумента.Организация КАК Организация,
| ТаблицаВидыЗапасов.АналитикаСписание КАК АналитикаУчетаНоменклатуры,
| ТаблицаВидыЗапасов.ВидЗапасов КАК ВидЗапасов,
| ТаблицаВидыЗапасов.ВидДеятельностиНДС КАК ВидДеятельностиНДС,
| ТаблицаДокумента.ВидДеятельностиНДС КАК ВидДеятельностиНДСДокумента,
|
| НЕОПРЕДЕЛЕНО КАК КорОрганизация,
| НЕОПРЕДЕЛЕНО КАК КорПартия,
| (ВЫБОР
| КОГДА ТаблицаВидыЗапасов.ТипЗапасовОприходование = ЗНАЧЕНИЕ(Перечисление.ТипыЗапасов.Товар)
| ТОГДА ТаблицаВидыЗапасов.АналитикаСписание
| ИНАЧЕ ТаблицаВидыЗапасов.АналитикаОприходование КОНЕЦ) КАК КорАналитикаУчетаНоменклатуры,
| ТаблицаВидыЗапасов.ВидЗапасовОприходование КАК КорВидЗапасов,
|
| НЕОПРЕДЕЛЕНО КАК Сделка,
| ТаблицаДокумента.Подразделение КАК Подразделение,
| НЕОПРЕДЕЛЕНО КАК Менеджер,
| НЕОПРЕДЕЛЕНО КАК ГруппаПродукции,
|
| ТаблицаВидыЗапасов.Количество КАК Количество,
| ТаблицаВидыЗапасов.ИдентификаторСтроки КАК ИдентификаторСтроки,
|
| ВЫБОР КОГДА ТаблицаДокумента.ПриходоватьТоварыПоСебестоимостиСписания
| ТОГДА ЗНАЧЕНИЕ(Перечисление.ХозяйственныеОперации.ПорчаТоваров)
| ИНАЧЕ ЗНАЧЕНИЕ(Перечисление.ХозяйственныеОперации.ПорчаТоваровСПереоценкой)
| КОНЕЦ КАК ХозяйственнаяОперация,
| ТаблицаВидыЗапасов.ИдентификаторСтроки КАК ИдентификаторФинЗаписи,
| ВЫБОР КОГДА ТаблицаДокумента.ПриходоватьТоварыПоСебестоимостиСписания
| ТОГДА ЗНАЧЕНИЕ(Справочник.НастройкиХозяйственныхОпераций.ПорчаТоваров)
| ИНАЧЕ ЗНАЧЕНИЕ(Справочник.НастройкиХозяйственныхОпераций.ПорчаТоваров)
| КОНЕЦ КАК НастройкаХозяйственнойОперации
|
|ИЗ
| Документ.ПорчаТоваров КАК ТаблицаДокумента
| ВНУТРЕННЕЕ СОЕДИНЕНИЕ ВтВидыЗапасов КАК ТаблицаВидыЗапасов
| ПО ИСТИНА
|ГДЕ
| ТаблицаДокумента.Ссылка В (&Ссылка)
| И ТаблицаВидыЗапасов.ТипЗапасов = ЗНАЧЕНИЕ(Перечисление.ТипыЗапасов.ТоварНаХраненииСПравомПродажи)
| И (ТаблицаДокумента.ПриходоватьТоварыПоСебестоимостиСписания
| ИЛИ ТаблицаВидыЗапасов.ТипЗапасовОприходование = ЗНАЧЕНИЕ(Перечисление.ТипыЗапасов.Товар))
|";
РасчетСебестоимостиПроведениеДокументов.ДобавитьОписаниеОперацииДляОтраженияВУчетеСебестоимости(
ОписаниеОпераций,
Перечисления.ОперацииУчетаСебестоимости.Перемещение,
ТекстЗапроса);
#КонецОбласти
Возврат ОписаниеОпераций;
КонецФункции
#КонецОбласти
#КонецОбласти
#Область Печать
Процедура ДобавитьКомандыПечати(КомандыПечати) Экспорт
КомандаПечати = КомандыПечати.Добавить();
КомандаПечати.Идентификатор = "АктПорчиТоваров";
КомандаПечати.Представление = НСтр("ru = 'Акт о порче товаров'");
КомандаПечати.ПроверкаПроведенияПередПечатью = Истина;
КомандаПечати.ФункциональныеОпции = "ИспользоватьКачествоТоваров";
ПорчаТоваровЛокализация.ДобавитьКомандыПечати(КомандыПечати);
КонецПроцедуры
Процедура Печать(МассивОбъектов, ПараметрыПечати, КоллекцияПечатныхФорм, ОбъектыПечати, ПараметрыВывода) Экспорт
Если УправлениеПечатью.НужноПечататьМакет(КоллекцияПечатныхФорм, "АктПорчиТоваров") Тогда
УправлениеПечатью.ВывестиТабличныйДокументВКоллекцию(
КоллекцияПечатныхФорм,
"АктПорчиТоваров",
НСтр("ru = 'Акт о порче товаров'"),
ПечатьАктаПорчиТоваров(МассивОбъектов, ОбъектыПечати));
КонецЕсли;
ПорчаТоваровЛокализация.Печать(МассивОбъектов, ПараметрыПечати, КоллекцияПечатныхФорм, ОбъектыПечати, ПараметрыВывода);
КонецПроцедуры
Функция ПечатьАктаПорчиТоваров(МассивОбъектов, ОбъектыПечати)
УстановитьПривилегированныйРежим(Истина);
ДопКолонка = ФормированиеПечатныхФорм.ДополнительнаяКолонкаПечатныхФормДокументов().ИмяКолонки;
ВыводитьДопКолонку = ЗначениеЗаполнено(ДопКолонка);
Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ
| Документ.Ссылка КАК Ссылка,
| Документ.Номер КАК Номер,
| Документ.Дата КАК Дата,
| Документ.ИсправляемыйДокумент.Номер КАК НомерИсправляемогоДокумента,
| Документ.ИсправляемыйДокумент.Дата КАК ДатаИсправляемогоДокумента,
| Документ.Исправление КАК Исправление,
| Документ.Склад КАК Склад,
| Документ.Подразделение КАК Подразделение,
| Документ.Организация КАК Организация,
| ПРЕДСТАВЛЕНИЕ(Документ.Склад) КАК СкладПредставление,
| ПРЕДСТАВЛЕНИЕ(Документ.Подразделение) КАК ПодразделениеПредставление,
| Документ.Организация.НаименованиеСокращенное КАК ОрганизацияПредставление,
| Документ.Организация.Префикс КАК Префикс,
| Документ.Склад.ТекущийОтветственный КАК Кладовщик,
| Документ.Склад.ТекущаяДолжностьОтветственного КАК КладовщикДолжность,
| Документ.Ответственный.ФизическоеЛицо КАК Ответственный,
| Документ.ПричинаПорчи КАК ПричинаПорчи
|ИЗ
| Документ.ПорчаТоваров КАК Документ
|ГДЕ
| Документ.Ссылка В(&МассивОбъектов)
|
|УПОРЯДОЧИТЬ ПО
| Ссылка
|;
|
|
|ВЫБРАТЬ
| ТаблицаТовары.НомерСтроки КАК НомерСтроки,
| ТаблицаТовары.Номенклатура КАК НоменклатураИсходная,
| ТаблицаТовары.Номенклатура.НаименованиеПолное КАК НоменклатураИсходнаяПредставление,
| ТаблицаТовары.Характеристика.НаименованиеПолное КАК ХарактеристикаИсходнаяПредставление,
| &ДопКолонкаСписание,
| ТаблицаТовары.НоменклатураОприходование КАК НоменклатураИспорченная,
| &ДопКолонкаОприходование,
| ТаблицаТовары.НоменклатураОприходование.НаименованиеПолное КАК НоменклатураИспорченнаяПредставление,
| ТаблицаТовары.ХарактеристикаОприходование.НаименованиеПолное КАК ХарактеристикаИспорченнаяПредставление,
| ПРЕДСТАВЛЕНИЕ(ТаблицаТовары.Серия) КАК СерияПредставление,
| ПРЕДСТАВЛЕНИЕ(ТаблицаТовары.Номенклатура.ЕдиницаИзмерения) КАК ЕдиницаИзмеренияИсходнаяПредставление,
| ПРЕДСТАВЛЕНИЕ(ТаблицаТовары.НоменклатураОприходование.ЕдиницаИзмерения) КАК ЕдиницаИзмеренияИспорченнаяПредставление,
| ТаблицаТовары.Количество КАК Количество,
| ТаблицаТовары.Ссылка КАК Ссылка
|ИЗ
| Документ.ПорчаТоваров.Товары КАК ТаблицаТовары
|ГДЕ
| ТаблицаТовары.Ссылка В(&МассивОбъектов)
|
|УПОРЯДОЧИТЬ ПО
| Ссылка,
| НомерСтроки
|ИТОГИ ПО
| Ссылка";
Если ВыводитьДопКолонку Тогда
Запрос.Текст = СтрЗаменить(Запрос.Текст, "&ДопКолонкаСписание", "ТаблицаТовары.Номенклатура." + ДопКолонка + " КАК ДопКолонкаСписание");
Запрос.Текст = СтрЗаменить(Запрос.Текст, "&ДопКолонкаОприходование", "НоменклатураОприходование." + ДопКолонка + " КАК ДопКолонкаОприходование");
Иначе
Запрос.Текст = СтрЗаменить(Запрос.Текст, "&ДопКолонкаСписание,", "");
Запрос.Текст = СтрЗаменить(Запрос.Текст, "&ДопКолонкаОприходование,", "");
КонецЕсли;
РеквизитыДокумента = Новый Структура("Номер, Дата, Префикс, Представление, НомерИсправляемогоДокумента, ДатаИсправляемогоДокумента");
СинонимДокумента = НСтр("ru='Акт о порче товаров'", ОбщегоНазначения.КодОсновногоЯзыка());
ТабДокумент = Новый ТабличныйДокумент;
ТабДокумент.ИмяПараметровПечати = "ПАРАМЕТРЫ_ПЕЧАТИ_ПорчаТоваров_АктОПорчеТоваров";
Макет = УправлениеПечатью.МакетПечатнойФормы("Документ.ПорчаТоваров.ПФ_MXL_АктОПорчеТоваров");
Если ПолучитьФункциональнуюОпцию("ИспользоватьПодразделения") Тогда
ОбластьЗаголовок = Макет.ПолучитьОбласть("Заголовок");
Иначе
ОбластьЗаголовок = Макет.ПолучитьОбласть("ЗаголовокБезПодразделения");
КонецЕсли;
ОбластьОснование = Макет.ПолучитьОбласть("Основание");
ОбластьНомераШапка = Макет.ПолучитьОбласть("ШапкаТаблицы|НомерСтроки");
ОбластьКодовИсходнаяШапка = Макет.ПолучитьОбласть("ШапкаТаблицы|КолонкаКодовИсходная");
ОбластьКодовИспорченнаяШапка = Макет.ПолучитьОбласть("ШапкаТаблицы|КолонкаКодовИспорченная");
ОбластьТоварИсходныйШапка = Макет.ПолучитьОбласть("ШапкаТаблицы|ТоварИсходный");
ОбластьТоварИспорченныйШапка = Макет.ПолучитьОбласть("ШапкаТаблицы|ТоварИспорченный");
ОбластьЕдИзмИсходнаяШапка = Макет.ПолучитьОбласть("ШапкаТаблицы|ЕдиницаИзмеренияИсходная");
ОбластьЕдИзмИспорченнаяШапка = Макет.ПолучитьОбласть("ШапкаТаблицы|ЕдиницаИзмеренияИспорченная");
ОбластьДанныеШапка = Макет.ПолучитьОбласть("ШапкаТаблицы|Данные");
Если Не ВыводитьДопКолонку Тогда
Макет.Область("ТоварИсходный").ШиринаКолонки = Макет.Область("ТоварИсходный").ШиринаКолонки
+ Макет.Область("КолонкаКодовИсходная").ШиринаКолонки;
Макет.Область("ТоварИспорченный").ШиринаКолонки = Макет.Область("ТоварИспорченный").ШиринаКолонки
+ Макет.Область("КолонкаКодовИспорченная").ШиринаКолонки;
КонецЕсли;
ОбластьНомераСтрока = Макет.ПолучитьОбласть("Строка|НомерСтроки");
ОбластьКодовИсходнаяСтрока = Макет.ПолучитьОбласть("Строка|КолонкаКодовИсходная");
ОбластьКодовИспорченнаяСтрока = Макет.ПолучитьОбласть("Строка|КолонкаКодовИспорченная");
ОбластьТоварИсходныйСтрока = Макет.ПолучитьОбласть("Строка|ТоварИсходный");
ОбластьТоварИспорченныйСтрока = Макет.ПолучитьОбласть("Строка|ТоварИспорченный");
ОбластьЕдИзмИсходнаяСтрока = Макет.ПолучитьОбласть("Строка|ЕдиницаИзмеренияИсходная");
ОбластьЕдИзмИспорченнаяСтрока = Макет.ПолучитьОбласть("Строка|ЕдиницаИзмеренияИспорченная");
ОбластьДанныхСтрока = Макет.ПолучитьОбласть("Строка|Данные");
ОбластьПодвалТаблицы = Макет.ПолучитьОбласть("ПодвалТаблицы");
ОбластьПодписи = Макет.ПолучитьОбласть("Подписи");
ОбластьСуммаПрописью = Макет.ПолучитьОбласть("СуммаПрописью");
Запрос.УстановитьПараметр("МассивОбъектов", МассивОбъектов);
РезультатыЗапроса = Запрос.ВыполнитьПакет();
ВыборкаДокументы = РезультатыЗапроса[0].Выбрать();
ВыборкаПоТабличнымЧастям = РезультатыЗапроса[1].Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам);
ПервыйДокумент = Истина;
Пока ВыборкаДокументы.Следующий() Цикл
Если Не ПервыйДокумент Тогда
ТабДокумент.ВывестиГоризонтальныйРазделительСтраниц();
КонецЕсли;
ПервыйДокумент = Ложь;
НомерСтрокиНачало = ТабДокумент.ВысотаТаблицы + 1;
ЗаполнитьЗначенияСвойств(РеквизитыДокумента, ВыборкаДокументы);
ОбластьЗаголовок.Параметры.Заполнить(ВыборкаДокументы);
ДанныеОбласти = Новый Структура;
НаименованияНаДату = ОрганизацииПовтИсп.НаименованияНаДату(ВыборкаДокументы.Организация, ВыборкаДокументы.Дата);
ДанныеОбласти.Вставить("ОрганизацияПредставление", НаименованияНаДату.НаименованиеСокращенное);
ДанныеОбласти.Вставить("ТекстЗаголовка",
ОбщегоНазначенияУТКлиентСервер.СформироватьЗаголовокДокумента(РеквизитыДокумента, СинонимДокумента));
ДанныеОбласти.Вставить("СкладПредставление", СкладыСервер.ПолучитьПредставлениеСклада(ВыборкаДокументы.СкладПредставление));
ОбластьЗаголовок.Параметры.Заполнить(ДанныеОбласти);
ШтрихкодированиеПечатныхФорм.ВывестиШтрихкодВТабличныйДокумент(ТабДокумент, Макет, ОбластьЗаголовок, ВыборкаДокументы.Ссылка);
ТабДокумент.Вывести(ОбластьЗаголовок);
ТабДокумент.Вывести(ОбластьНомераШапка);
Если ВыводитьДопКолонку Тогда
ТабДокумент.Присоединить(ОбластьКодовИсходнаяШапка);
КонецЕсли;
ТабДокумент.Присоединить(ОбластьТоварИсходныйШапка);
ТабДокумент.Присоединить(ОбластьЕдИзмИсходнаяШапка);
Если ВыводитьДопКолонку Тогда
ТабДокумент.Присоединить(ОбластьКодовИспорченнаяШапка);
КонецЕсли;
ТабДокумент.Присоединить(ОбластьТоварИспорченныйШапка);
ТабДокумент.Присоединить(ОбластьЕдИзмИспорченнаяШапка);
ТабДокумент.Присоединить(ОбластьДанныеШапка);
СуммаВсего = 0;
ВсегоНаименований = 0;
ВыборкаПоТабличнымЧастям.НайтиСледующий(Новый Структура("Ссылка",ВыборкаДокументы.Ссылка));
ВыборкаПоСтрокам = ВыборкаПоТабличнымЧастям.Выбрать();
Пока ВыборкаПоСтрокам.Следующий() Цикл
ОбластьНомераСтрока.Параметры.Заполнить(ВыборкаПоСтрокам);
ТабДокумент.Вывести(ОбластьНомераСтрока);
Если ВыводитьДопКолонку Тогда
ОбластьКодовИсходнаяСтрока.Параметры.Заполнить(ВыборкаПоСтрокам);
ТабДокумент.Присоединить(ОбластьКодовИсходнаяСтрока);
КонецЕсли;
ДопПараметрыПредставлениеНоменклатуры = НоменклатураКлиентСервер.ДополнительныеПараметрыПредставлениеНоменклатурыДляПечати();
ДопПараметрыПредставлениеНоменклатуры.КодОсновногоЯзыка = ОбщегоНазначения.КодОсновногоЯзыка();
ОбластьТоварИсходныйСтрока.Параметры.НоменклатураИсходная = ВыборкаПоСтрокам.НоменклатураИсходная;
ОбластьТоварИсходныйСтрока.Параметры.НоменклатураИсходнаяПредставление = НоменклатураКлиентСервер.ПредставлениеНоменклатурыДляПечати(
ВыборкаПоСтрокам.НоменклатураИсходнаяПредставление,
ВыборкаПоСтрокам.ХарактеристикаИсходнаяПредставление,
,
ВыборкаПоСтрокам.СерияПредставление,
ДопПараметрыПредставлениеНоменклатуры);
ТабДокумент.Присоединить(ОбластьТоварИсходныйСтрока);
ОбластьЕдИзмИсходнаяСтрока.Параметры.Заполнить(ВыборкаПоСтрокам);
ТабДокумент.Присоединить(ОбластьЕдИзмИсходнаяСтрока);
Если ВыводитьДопКолонку Тогда
ОбластьКодовИспорченнаяСтрока.Параметры.Заполнить(ВыборкаПоСтрокам);
ТабДокумент.Присоединить(ОбластьКодовИспорченнаяСтрока);
КонецЕсли;
ОбластьТоварИспорченныйСтрока.Параметры.НоменклатураИспорченная = ВыборкаПоСтрокам.НоменклатураИспорченная;
ОбластьТоварИспорченныйСтрока.Параметры.НоменклатураИспорченнаяПредставление = НоменклатураКлиентСервер.ПредставлениеНоменклатурыДляПечати(
ВыборкаПоСтрокам.НоменклатураИспорченнаяПредставление,
ВыборкаПоСтрокам.ХарактеристикаИспорченнаяПредставление,
ВыборкаПоСтрокам.СерияПредставление,
,
ДопПараметрыПредставлениеНоменклатуры);
ТабДокумент.Присоединить(ОбластьТоварИспорченныйСтрока);
ОбластьЕдИзмИспорченнаяСтрока.Параметры.Заполнить(ВыборкаПоСтрокам);
ТабДокумент.Присоединить(ОбластьЕдИзмИспорченнаяСтрока);
ОбластьДанныхСтрока.Параметры.Заполнить(ВыборкаПоСтрокам);
ТабДокумент.Присоединить(ОбластьДанныхСтрока);
ВсегоНаименований = ВсегоНаименований + 1;
КонецЦикла;
ТабДокумент.Вывести(ОбластьПодвалТаблицы);
ТекстИтоговойСтроки = НСтр("ru = 'Всего наименований %ВсегоНаименований%'", ОбщегоНазначения.КодОсновногоЯзыка());
ТекстИтоговойСтроки = СтрЗаменить(ТекстИтоговойСтроки,"%ВсегоНаименований%", ВсегоНаименований);
ОбластьСуммаПрописью.Параметры.ИтоговаяСтрока = ТекстИтоговойСтроки;
ТабДокумент.Вывести(ОбластьСуммаПрописью);
ОбластьПодписи.Параметры.Ответственный = ФизическиеЛицаУТ.ФамилияИнициалыФизЛица(ВыборкаДокументы.Ответственный,
?(ВыборкаДокументы.Исправление, ВыборкаДокументы.ДатаИсправляемогоДокумента, ВыборкаДокументы.Дата));
ОбластьПодписи.Параметры.Кладовщик = ФизическиеЛицаУТ.ФамилияИнициалыФизЛица(ВыборкаДокументы.Кладовщик,
?(ВыборкаДокументы.Исправление, ВыборкаДокументы.ДатаИсправляемогоДокумента, ВыборкаДокументы.Дата));
ОбластьПодписи.Параметры.КладовщикДолжность = СкладыСервер.ДолжностьОтветственногоЛицаСклада(ВыборкаДокументы.КладовщикДолжность);
ТабДокумент.Вывести(ОбластьПодписи);
УправлениеПечатью.ЗадатьОбластьПечатиДокумента(ТабДокумент, НомерСтрокиНачало, ОбъектыПечати, ВыборкаДокументы.Ссылка);
КонецЦикла;
ТабДокумент.АвтоМасштаб = Истина;
Если ПривилегированныйРежим() Тогда
УстановитьПривилегированныйРежим(Ложь);
КонецЕсли;
Возврат ТабДокумент;
КонецФункции
#КонецОбласти
#КонецОбласти
#КонецЕсли