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