#Если Сервер Или ТолстыйКлиентОбычноеПриложение Или ВнешнееСоединение Тогда
#Область ПрограммныйИнтерфейс
#Область Проведение
Процедура ЗарегистрироватьУчетныеМеханизмы(МеханизмыДокумента) Экспорт
МеханизмыДокумента.Добавить("Обеспечение");
МеханизмыДокумента.Добавить("ОборотныеРегистрыУправленческогоУчета");
МеханизмыДокумента.Добавить("ОперативныйУчетТоваровОрганизаций");
МеханизмыДокумента.Добавить("ПриемНаОтветхранение");
МеханизмыДокумента.Добавить("РеестрДокументов");
МеханизмыДокумента.Добавить("СебестоимостьИПартионныйУчет");
МеханизмыДокумента.Добавить("СерийныйУчет");
МеханизмыДокумента.Добавить("СуммыДокументовВВалютахУчета");
МеханизмыДокумента.Добавить("АдресныйСклад");
МеханизмыДокумента.Добавить("УчетДоходовРасходов");
МеханизмыДокумента.Добавить("УчетПрочихАктивовПассивов");
МеханизмыДокумента.Добавить("ТМЦВЭксплуатации");
МеханизмыДокумента.Добавить("УчетНДС");
МеханизмыДокумента.Добавить("ИсправлениеДокументов");
ПрочееОприходованиеТоваровЛокализация.ЗарегистрироватьУчетныеМеханизмы(МеханизмыДокумента);
КонецПроцедуры
Функция ДанныеДокументаДляПроведения(Документ, Регистры, ДопПараметры = Неопределено) Экспорт
Если ДопПараметры = Неопределено Тогда
ДопПараметры = ПроведениеДокументов.ДопПараметрыИнициализироватьДанныеДокументаДляПроведения();
КонецЕсли;
Если ТипЗнч(Документ) = Тип("ДокументОбъект.ПрочееОприходованиеТоваров") Тогда
ДокументСсылка = Документ.Ссылка;
Иначе
ДокументСсылка = Документ;
КонецЕсли;
Запрос = Новый Запрос;
ТекстыЗапроса = Новый СписокЗначений;
Если Не ДопПараметры.ПолучитьТекстыЗапроса Тогда
ЗаполнитьПараметрыИнициализации(Запрос, ДокументСсылка, ДопПараметры);
СформироватьСуммыДокументаВВалютахУчета(Запрос, ТекстыЗапроса, Регистры);
ТекстЗапросаТаблицаДвиженияСерийТоваров(Запрос, ТекстыЗапроса, Регистры);
ТекстЗапросаТаблицаДатыПоступленияТоваровОрганизаций(Запрос, ТекстыЗапроса, Регистры);
ТекстЗапросаТаблицаТоварыОрганизаций(Запрос, ТекстыЗапроса, Регистры);
ТекстЗапросаТаблицаТоварыКОформлениюОтчетовКомитенту(Запрос, ТекстыЗапроса, Регистры);
ТекстЗапросаТаблицаПартииТоваровОрганизаций(Запрос, ТекстыЗапроса, Регистры);
ТекстЗапросаТаблицаДвиженияНоменклатураДоходыРасходы(Запрос, ТекстыЗапроса, Регистры);
ТекстЗапросаТаблицаДвиженияПоПрочимАктивамПассивам(Запрос, ТекстыЗапроса, Регистры);
ТекстЗапросаТаблицаПрочиеДоходы(Запрос, ТекстыЗапроса, Регистры);
ТекстЗапросаТаблицаПрочиеРасходы(Запрос, ТекстыЗапроса, Регистры);
ТекстЗапросаТаблицаПартииПрочихРасходов(Запрос, ТекстыЗапроса, Регистры);
ТекстЗапросаТаблицаПрочиеАктивыПассивы(Запрос, ТекстыЗапроса, Регистры);
ТекстЗапросаТаблицаРеестрДокументов(Запрос, ТекстыЗапроса, Регистры);
ПрочееОприходованиеТоваровЛокализация.ДополнитьТекстыЗапросовПроведения(Запрос, ТекстыЗапроса, Регистры);
КонецЕсли;
ОтразитьРаспределениеЗапасовДвижения(Запрос, ТекстыЗапроса, Регистры);
ЗапланироватьПоступлениеТоваров(Запрос, ТекстыЗапроса, Регистры);
ОформитьПоступлениеТоваровПоОдноходовке(Запрос, ТекстыЗапроса, Регистры);
ПроведениеДокументов.ДобавитьЗапросыСторноДвижений(
Запрос, ТекстыЗапроса, Регистры, Метаданные.Документы.ПрочееОприходованиеТоваров);
РасчетСебестоимостиПроведениеДокументов.ОтразитьВМеханизмеУчетаЗатратИСебестоимости(
ДокументСсылка, Запрос, ТекстыЗапроса, Регистры);
Возврат ПроведениеДокументов.ИнициализироватьДанныеДокументаДляПроведения(Запрос, ТекстыЗапроса, ДопПараметры);
КонецФункции
#КонецОбласти
Процедура ПриОпределенииНастроекВерсионированияОбъектов(Настройки) Экспорт
КонецПроцедуры
Процедура ДобавитьКомандыСозданияНаОсновании(КомандыСозданияНаОсновании, Параметры) Экспорт
Документы.УстановкаЦенНоменклатуры.ДобавитьКомандуСоздатьНаОсновании(КомандыСозданияНаОсновании);
БизнесПроцессы.Задание.ДобавитьКомандуСоздатьНаОсновании(КомандыСозданияНаОсновании);
Обработки.СправочноеРазмещениеНоменклатуры.ДобавитьКомандуСоздатьНаОсновании(КомандыСозданияНаОсновании);
Документы.ПоручениеЭкспедитору.ДобавитьКомандуСоздатьНаОсновании(КомандыСозданияНаОсновании);
СписокОпераций = Новый Массив;
СписокОпераций.Добавить(Перечисления.ХозяйственныеОперации.ПоступлениеИзПроизводства);
СписокОпераций.Добавить(Перечисления.ХозяйственныеОперации.СторноСписанияНаРасходы);
СписокОпераций.Добавить(Перечисления.ХозяйственныеОперации.ОприходованиеЗаСчетДоходов);
СписокОпераций.Добавить(Перечисления.ХозяйственныеОперации.ОприходованиеЗаСчетРасходов);
КомандаИсправление = ИсправлениеДокументов.ДобавитьКомандуИсправление(КомандыСозданияНаОсновании, ПустаяСсылка().Метаданные());
Если КомандаИсправление <> Неопределено Тогда
ПодключаемыеКоманды.ДобавитьУсловиеВидимостиКоманды(
КомандаИсправление,
"ХозяйственнаяОперация",
СписокОпераций,
ВидСравненияКомпоновкиДанных.ВСписке);
КонецЕсли;
КомандаСторно = ИсправлениеДокументов.ДобавитьКомандуСторно(
КомандыСозданияНаОсновании,
ПустаяСсылка().Метаданные());
Если КомандаСторно <> Неопределено Тогда
ПодключаемыеКоманды.ДобавитьУсловиеВидимостиКоманды(
КомандаСторно,
"ХозяйственнаяОперация",
СписокОпераций,
ВидСравненияКомпоновкиДанных.ВСписке);
КонецЕсли;
ПрочееОприходованиеТоваровЛокализация.ДобавитьКомандыСозданияНаОсновании(КомандыСозданияНаОсновании, Параметры);
КонецПроцедуры
Функция ДобавитьКомандуСоздатьНаОсновании(КомандыСозданияНаОсновании) Экспорт
Если ПравоДоступа("Добавление", Метаданные.Документы.ПрочееОприходованиеТоваров) Тогда
КомандаСоздатьНаОсновании = КомандыСозданияНаОсновании.Добавить();
КомандаСоздатьНаОсновании.Менеджер = Метаданные.Документы.ПрочееОприходованиеТоваров.ПолноеИмя();
КомандаСоздатьНаОсновании.Представление = ОбщегоНазначенияУТ.ПредставлениеОбъекта(Метаданные.Документы.ПрочееОприходованиеТоваров);
КомандаСоздатьНаОсновании.РежимЗаписи = "Проводить";
КомандаСоздатьНаОсновании.ФункциональныеОпции = "ИспользоватьПрочееОприходованиеТоваров";
Возврат КомандаСоздатьНаОсновании;
КонецЕсли;
Возврат Неопределено;
КонецФункции
Процедура ДобавитьКомандыОтчетов(КомандыОтчетов, Параметры) Экспорт
ПрочееОприходованиеТоваровЛокализация.ДобавитьКомандыОтчетов(КомандыОтчетов, Параметры);
КонецПроцедуры
Процедура ЗаполнитьИменаРеквизитовПоХозяйственнойОперации(ХозяйственнаяОперация, МассивВсехРеквизитов, МассивРеквизитовОперации) Экспорт
МассивВсехРеквизитов = Новый Массив;
МассивВсехРеквизитов.Добавить("ВидЦены");
МассивВсехРеквизитов.Добавить("Валюта");
МассивВсехРеквизитов.Добавить("СтатьяРасходовВыбытие");
МассивВсехРеквизитов.Добавить("Товары.Цена");
МассивВсехРеквизитов.Добавить("Товары.Сумма");
МассивВсехРеквизитов.Добавить("Товары.СписаниеНаРасходы");
МассивВсехРеквизитов.Добавить("Товары.НомерГТД");
МассивВсехРеквизитов.Добавить("Товары.ОсновноеСредство");
МассивВсехРеквизитов.Добавить("Товары.ИнвентарныйНомер");
МассивВсехРеквизитов.Добавить("Товары.ФизическоеЛицо");
МассивВсехРеквизитов.Добавить("Товары.Партия");
МассивВсехРеквизитов.Добавить("Товары.ДатаЗавершенияЭксплуатации");
МассивВсехРеквизитов.Добавить("Товары.НаправлениеДеятельности");
МассивРеквизитовОперации = Новый Массив;
Если ХозяйственнаяОперация = Перечисления.ХозяйственныеОперации.ПоступлениеИзПроизводства Тогда
МассивРеквизитовОперации.Добавить("ВидЦены");
МассивРеквизитовОперации.Добавить("Валюта");
МассивРеквизитовОперации.Добавить("Товары.Цена");
МассивРеквизитовОперации.Добавить("Товары.Сумма");
МассивРеквизитовОперации.Добавить("Товары.НомерГТД");
ИначеЕсли ХозяйственнаяОперация = Перечисления.ХозяйственныеОперации.СторноСписанияНаРасходы Тогда
МассивРеквизитовОперации.Добавить("Товары.СписаниеНаРасходы");
ИначеЕсли ХозяйственнаяОперация = Перечисления.ХозяйственныеОперации.ОприходованиеЗаСчетДоходов Тогда
МассивРеквизитовОперации.Добавить("Валюта");
МассивРеквизитовОперации.Добавить("Товары.Цена");
МассивРеквизитовОперации.Добавить("Товары.Сумма");
МассивРеквизитовОперации.Добавить("Товары.НомерГТД");
ИначеЕсли ХозяйственнаяОперация = Перечисления.ХозяйственныеОперации.ОприходованиеЗаСчетРасходов Тогда
МассивРеквизитовОперации.Добавить("Валюта");
МассивРеквизитовОперации.Добавить("Товары.Цена");
МассивРеквизитовОперации.Добавить("Товары.Сумма");
МассивРеквизитовОперации.Добавить("Товары.НомерГТД");
ИначеЕсли ХозяйственнаяОперация = Перечисления.ХозяйственныеОперации.ВозвратИзЭксплуатации Тогда
МассивРеквизитовОперации.Добавить("ВидЦены");
МассивРеквизитовОперации.Добавить("Валюта");
МассивРеквизитовОперации.Добавить("Товары.КоличествоПоРНПТ");
МассивРеквизитовОперации.Добавить("Товары.Цена");
МассивРеквизитовОперации.Добавить("Товары.Сумма");
МассивРеквизитовОперации.Добавить("Товары.ФизическоеЛицо");
МассивРеквизитовОперации.Добавить("Товары.НомерГТД");
МассивРеквизитовОперации.Добавить("Товары.НаправлениеДеятельности");
Если ПолучитьФункциональнуюОпцию("УправлениеТорговлей") Тогда
МассивРеквизитовОперации.Добавить("Товары.ДатаЗавершенияЭксплуатации");
КонецЕсли;
КонецЕсли;
ПрочееОприходованиеТоваровЛокализация.ЗаполнитьИменаРеквизитовПоХозяйственнойОперации(
ХозяйственнаяОперация, МассивВсехРеквизитов, МассивРеквизитовОперации);
КонецПроцедуры
Процедура ЗаполнитьИменаЭлементовПоХозяйственнойОперации(ХозяйственнаяОперация, МассивВсехЭлементов, МассивЭлементовОперации) Экспорт
МассивВсехЭлементов = Новый Массив;
МассивВсехЭлементов.Добавить("ТоварыПерезаполнитьПоПриемке");
МассивВсехЭлементов.Добавить("ТоварыЗаполнитьЦеныПоВидуЦен");
МассивВсехЭлементов.Добавить("ТоварыИзменитьКачество");
МассивВсехЭлементов.Добавить("ТоварыПодобратьПоОстаткамВПодразделении");
МассивВсехЭлементов.Добавить("ТоварыДобавитьТоварыИзДокументовСписания");
МассивВсехЭлементов.Добавить("ТоварыСтранаПроисхождения");
МассивВсехЭлементов.Добавить("ТоварыПодобратьТМЦВЭксплуатации");
МассивЭлементовОперации = Новый Массив;
Если ХозяйственнаяОперация = Перечисления.ХозяйственныеОперации.ПоступлениеИзПроизводства Тогда
МассивЭлементовОперации.Добавить("ТоварыПерезаполнитьПоПриемке");
МассивЭлементовОперации.Добавить("ТоварыЗаполнитьЦеныПоВидуЦен");
МассивЭлементовОперации.Добавить("ТоварыИзменитьКачество");
МассивЭлементовОперации.Добавить("ТоварыСтранаПроисхождения");
ИначеЕсли ХозяйственнаяОперация = Перечисления.ХозяйственныеОперации.СторноСписанияНаРасходы Тогда
МассивЭлементовОперации.Добавить("ТоварыДобавитьТоварыИзДокументовСписания");
ИначеЕсли ХозяйственнаяОперация = Перечисления.ХозяйственныеОперации.ОприходованиеЗаСчетРасходов Тогда
МассивЭлементовОперации.Добавить("ТоварыПерезаполнитьПоПриемке");
МассивЭлементовОперации.Добавить("ТоварыИзменитьКачество");
МассивЭлементовОперации.Добавить("ТоварыСтранаПроисхождения");
ИначеЕсли ХозяйственнаяОперация = Перечисления.ХозяйственныеОперации.ОприходованиеЗаСчетДоходов Тогда
МассивЭлементовОперации.Добавить("ТоварыПерезаполнитьПоПриемке");
МассивЭлементовОперации.Добавить("ТоварыИзменитьКачество");
МассивЭлементовОперации.Добавить("ТоварыСтранаПроисхождения");
ИначеЕсли ХозяйственнаяОперация = Перечисления.ХозяйственныеОперации.ОприходованиеПриВыбытииОС Тогда
МассивЭлементовОперации.Добавить("ТоварыПерезаполнитьПоПриемке");
МассивЭлементовОперации.Добавить("ТоварыЗаполнитьЦеныПоВидуЦен");
МассивЭлементовОперации.Добавить("ТоварыИзменитьКачество");
МассивЭлементовОперации.Добавить("ТоварыСтранаПроисхождения");
ИначеЕсли ХозяйственнаяОперация = Перечисления.ХозяйственныеОперации.ВозвратИзЭксплуатации Тогда
МассивЭлементовОперации.Добавить("ТоварыПерезаполнитьПоПриемке");
МассивЭлементовОперации.Добавить("ТоварыЗаполнитьЦеныПоВидуЦен");
МассивЭлементовОперации.Добавить("ТоварыСтранаПроисхождения");
МассивЭлементовОперации.Добавить("ТоварыПодобратьТМЦВЭксплуатации");
КонецЕсли;
КонецПроцедуры
#Область Серии
Функция ИменаРеквизитовДляЗаполненияПараметровУказанияСерий() Экспорт
ИменаРеквизитов = "Склад,Подразделение,Статус,Дата,ХозяйственнаяОперация";
Возврат ИменаРеквизитов;
КонецФункции
Функция ПараметрыУказанияСерий(Объект) Экспорт
ПараметрыУказанияСерий = НоменклатураКлиентСервер.ПараметрыУказанияСерий();
ПараметрыУказанияСерий.ПолноеИмяОбъекта = "Документ.ПрочееОприходованиеТоваров";
ПараметрыСерийПолучатель = СкладыСервер.ИспользованиеСерийНаСкладе(Объект.Склад, Ложь);
Если Объект.ХозяйственнаяОперация = Перечисления.ХозяйственныеОперации.ВозвратИзЭксплуатации Тогда
ВозможенУчетСерийВЭксплуатации = ТМЦВЭксплуатацииПовтИсп.ВозможенУчетСерийВЭксплуатации();
ПараметрыУказанияСерий.ИспользоватьСерииНоменклатуры =
ВозможенУчетСерийВЭксплуатации
ИЛИ (ПараметрыСерийПолучатель.ИспользоватьСерииНоменклатуры
И (Не СкладыСервер.ИспользоватьОрдернуюСхемуПриПоступлении(Объект.Склад, Объект.Дата))
ИЛИ ПараметрыСерийПолучатель.УчитыватьСебестоимостьПоСериям);
ПараметрыУказанияСерий.УчитыватьСебестоимостьПоСериям =
ВозможенУчетСерийВЭксплуатации
ИЛИ ПараметрыСерийПолучатель.УчитыватьСебестоимостьПоСериям;
Иначе
ПараметрыУказанияСерий.ИспользоватьСерииНоменклатуры =
ПараметрыСерийПолучатель.ИспользоватьСерииНоменклатуры
И (Не СкладыСервер.ИспользоватьОрдернуюСхемуПриПоступлении(Объект.Склад, Объект.Дата))
ИЛИ ПараметрыСерийПолучатель.УчитыватьСебестоимостьПоСериям;
ПараметрыУказанияСерий.УчитыватьСебестоимостьПоСериям = ПараметрыСерийПолучатель.УчитыватьСебестоимостьПоСериям;
КонецЕсли;
ПараметрыУказанияСерий.СкладскиеОперации.Добавить(Перечисления.СкладскиеОперации.ПриемкаПоПрочемуОприходованию);
Если Объект.ХозяйственнаяОперация = Перечисления.ХозяйственныеОперации.ВозвратИзЭксплуатации Тогда
ПараметрыУказанияСерий.СкладскиеОперации.Добавить(Перечисления.СкладскиеОперации.ВыбытиеТМЦИзЭксплуатации);
КонецЕсли;
ПараметрыУказанияСерий.СерииПриПланированииОтгрузкиУказываютсяВТЧСерии = Истина;
ПараметрыУказанияСерий.ИменаПолейСтатусУказанияСерий.Добавить("СтатусУказанияСерий");
ПараметрыУказанияСерий.ИменаПолейСтатусУказанияСерий.Добавить("СтатусУказанияСерийОтправитель");
ПараметрыУказанияСерий.ИменаПолейСтатусУказанияСерий.Добавить("СтатусУказанияСерийПолучатель");
ПараметрыУказанияСерий.ИменаПолейДляОпределенияРаспоряжения.Добавить("Ссылка");
ПараметрыУказанияСерий.ПоляСвязи.Добавить("Назначение");
ПараметрыУказанияСерий.ЭтоНакладная = Истина;
ПараметрыУказанияСерий.Дата = Объект.Дата;
Возврат ПараметрыУказанияСерий;
КонецФункции
Функция РаспоряжениеНаВыполнениеСкладскойОперации(ЗначенияПолейДляОпределенияРаспоряжения) Экспорт
Возврат ЗначенияПолейДляОпределенияРаспоряжения.Ссылка;
КонецФункции
Функция ТекстЗапросаЗаполненияСтатусовУказанияСерий(ПараметрыУказанияСерий) Экспорт
ТекстЗапроса =
"ВЫБРАТЬ
| Товары.Номенклатура,
| Товары.Характеристика,
| Товары.Назначение,
| Товары.Серия,
| Товары.Количество,
| Товары.СтатусУказанияСерий,
| Товары.СтатусУказанияСерийОтправитель,
| Товары.СтатусУказанияСерийПолучатель,
| Товары.НомерСтроки
|ПОМЕСТИТЬ Товары
|ИЗ
| &Товары КАК Товары
|;
|
|
|ВЫБРАТЬ
| Товары.Номенклатура,
| Товары.Характеристика,
| Товары.Назначение,
| СУММА(Товары.Количество) КАК Количество,
| ВЫРАЗИТЬ(Товары.Номенклатура КАК Справочник.Номенклатура).ВидНоменклатуры КАК ВидНоменклатуры
|ПОМЕСТИТЬ ТоварыДляЗапроса
|ИЗ
| Товары КАК Товары
|
|СГРУППИРОВАТЬ ПО
| Товары.Номенклатура,
| Товары.Характеристика,
| Товары.Назначение,
| ВЫРАЗИТЬ(Товары.Номенклатура КАК Справочник.Номенклатура).ВидНоменклатуры
|;
|
|
|ВЫБРАТЬ
| Серии.Номенклатура,
| Серии.Характеристика,
| Серии.Назначение,
| Серии.Количество
|ПОМЕСТИТЬ Серии
|ИЗ
| &Серии КАК Серии
|;
|
|
|ВЫБРАТЬ
| Серии.Номенклатура,
| Серии.Характеристика,
| Серии.Назначение,
| СУММА(Серии.Количество) КАК Количество
|ПОМЕСТИТЬ СерииДляЗапроса
|ИЗ
| Серии КАК Серии
|
|СГРУППИРОВАТЬ ПО
| Серии.Номенклатура,
| Серии.Характеристика,
| Серии.Назначение
|;
|
|
|ВЫБРАТЬ
| Товары.НомерСтроки КАК НомерСтроки,
| Товары.СтатусУказанияСерий КАК СтарыйСтатусУказанияСерий,
| Товары.СтатусУказанияСерийОтправитель КАК СтарыйСтатусУказанияСерийОтправитель,
| Товары.СтатусУказанияСерийПолучатель КАК СтарыйСтатусУказанияСерийПолучатель,
|
| ВЫБОР
| КОГДА ПолитикиУчетаСерий.ПолитикаУчетаСерий ЕСТЬ NULL
| ТОГДА 0
| ИНАЧЕ ВЫБОР
| КОГДА ПолитикиУчетаСерий.ПолитикаУчетаСерий.УчитыватьСебестоимостьПоСериям
| ТОГДА ВЫБОР
| КОГДА Товары.Серия <> ЗНАЧЕНИЕ(Справочник.СерииНоменклатуры.ПустаяСсылка)
| ТОГДА 14
| ИНАЧЕ 13
| КОНЕЦ
| КОГДА ПолитикиУчетаСерий.ПолитикаУчетаСерий.УказыватьПриПланированииОтгрузки
| ТОГДА ВЫБОР
| КОГДА НЕ Склады.ИспользоватьОрдернуюСхемуПриПоступлении
| ИЛИ &Дата < Склады.ДатаНачалаОрдернойСхемыПриПоступлении
| ТОГДА ВЫБОР
| КОГДА ТоварыДляЗапроса.Количество = ЕСТЬNULL(СерииДляЗапроса.Количество, 0)
| И ТоварыДляЗапроса.Количество > 0
| ТОГДА 10
| ИНАЧЕ 9
| КОНЕЦ
| ИНАЧЕ 0
| КОНЕЦ
| КОГДА ПолитикиУчетаСерий.ПолитикаУчетаСерий.УказыватьПриПланированииОтбора
| ТОГДА ВЫБОР
| КОГДА НЕ Склады.ИспользоватьОрдернуюСхемуПриПоступлении
| ИЛИ &Дата < Склады.ДатаНачалаОрдернойСхемыПриПоступлении
| ТОГДА ВЫБОР
| КОГДА ТоварыДляЗапроса.Количество = ЕСТЬNULL(СерииДляЗапроса.Количество, 0)
| И ТоварыДляЗапроса.Количество > 0
| ТОГДА 8
| ИНАЧЕ 7
| КОНЕЦ
| ИНАЧЕ 0
| КОНЕЦ
| КОГДА ПолитикиУчетаСерий.ПолитикаУчетаСерий.УказыватьПриПриемке
| И (НЕ Склады.ИспользоватьОрдернуюСхемуПриПоступлении
| ИЛИ &Дата < Склады.ДатаНачалаОрдернойСхемыПриПоступлении)
| И ПолитикиУчетаСерий.ПолитикаУчетаСерий.УказыватьПриПриемкеПоПрочемуОприходованию
| ТОГДА ВЫБОР
| КОГДА ПолитикиУчетаСерий.ПолитикаУчетаСерий.УчитыватьОстаткиСерий
| ТОГДА ВЫБОР
| КОГДА ТоварыДляЗапроса.Количество = ЕСТЬNULL(СерииДляЗапроса.Количество, 0)
| И ТоварыДляЗапроса.Количество > 0
| ТОГДА 4
| ИНАЧЕ 3
| КОНЕЦ
| ИНАЧЕ ВЫБОР
| КОГДА ТоварыДляЗапроса.Количество = ЕСТЬNULL(СерииДляЗапроса.Количество, 0)
| И ТоварыДляЗапроса.Количество > 0
| ТОГДА 2
| ИНАЧЕ 1
| КОНЕЦ
| КОНЕЦ
| ИНАЧЕ 0
| КОНЕЦ
| КОНЕЦ КАК СтатусУказанияСерийПолучатель,
|
| ВЫБОР
| КОГДА ТоварыДляЗапроса.ВидНоменклатуры.ПолитикаУчетаСерий ЕСТЬ NULL
| ИЛИ НЕ &ВыбытиеТМЦИзЭксплуатации
| ТОГДА 0
| КОГДА ТоварыДляЗапроса.ВидНоменклатуры.ПолитикаУчетаСерий.УчитыватьСерииТМЦВЭксплуатации
| ТОГДА
| ВЫБОР
| КОГДА Товары.Серия <> ЗНАЧЕНИЕ(Справочник.СерииНоменклатуры.ПустаяСсылка)
| ТОГДА 20
| ИНАЧЕ 19
| КОНЕЦ
| ИНАЧЕ 0
| КОНЕЦ КАК СтатусУказанияСерийОтправитель
|
|ПОМЕСТИТЬ Статусы
|ИЗ
| Товары КАК Товары
|
| ЛЕВОЕ СОЕДИНЕНИЕ ТоварыДляЗапроса КАК ТоварыДляЗапроса
|
| ЛЕВОЕ СОЕДИНЕНИЕ СерииДляЗапроса КАК СерииДляЗапроса
| ПО ТоварыДляЗапроса.Номенклатура = СерииДляЗапроса.Номенклатура
| И ТоварыДляЗапроса.Характеристика = СерииДляЗапроса.Характеристика
| И ТоварыДляЗапроса.Назначение = СерииДляЗапроса.Назначение
|
| ЛЕВОЕ СОЕДИНЕНИЕ Справочник.ВидыНоменклатуры.ПолитикиУчетаСерий КАК ПолитикиУчетаСерий
| ВНУТРЕННЕЕ СОЕДИНЕНИЕ Справочник.Склады КАК Склады
| ПО ПолитикиУчетаСерий.Склад = Склады.Ссылка
| ПО (ПолитикиУчетаСерий.Склад = &Склад)
| И ТоварыДляЗапроса.ВидНоменклатуры = ПолитикиУчетаСерий.Ссылка
|
| ПО Товары.Номенклатура = ТоварыДляЗапроса.Номенклатура
| И Товары.Характеристика = ТоварыДляЗапроса.Характеристика
| И Товары.Назначение = ТоварыДляЗапроса.Назначение
|;
|
|
|ВЫБРАТЬ
| Статусы.НомерСтроки КАК НомерСтроки,
| Статусы.СтатусУказанияСерийОтправитель КАК СтатусУказанияСерийОтправитель,
| Статусы.СтатусУказанияСерийПолучатель КАК СтатусУказанияСерийПолучатель,
| ВЫБОР
| КОГДА Статусы.СтатусУказанияСерийОтправитель > 0
| ТОГДА Статусы.СтатусУказанияСерийОтправитель
| ИНАЧЕ Статусы.СтатусУказанияСерийПолучатель
| КОНЕЦ КАК СтатусУказанияСерий
|ИЗ
| Статусы КАК Статусы
|ГДЕ
| (Статусы.СтатусУказанияСерийОтправитель <> Статусы.СтарыйСтатусУказанияСерийОтправитель
| ИЛИ Статусы.СтатусУказанияСерийПолучатель <> Статусы.СтарыйСтатусУказанияСерийПолучатель
| ИЛИ ВЫБОР
| КОГДА Статусы.СтатусУказанияСерийОтправитель > 0
| ТОГДА Статусы.СтатусУказанияСерийОтправитель
| ИНАЧЕ Статусы.СтатусУказанияСерийПолучатель
| КОНЕЦ <> Статусы.СтарыйСтатусУказанияСерий)
|
|УПОРЯДОЧИТЬ ПО
| НомерСтроки";
Возврат ТекстЗапроса;
КонецФункции
#КонецОбласти
#Область Прочее
Процедура УстановитьУсловноеОформлениеСписка(Список) Экспорт
ОформляемоеПоле = "Тип";
Элемент = Список.КомпоновщикНастроек.ФиксированныеНастройки.УсловноеОформление.Элементы.Добавить();
Элемент.РежимОтображения = РежимОтображенияЭлементаНастройкиКомпоновкиДанных.Недоступный;
ПолеЭлемента = Элемент.Поля.Элементы.Добавить();
ПолеЭлемента.Поле = Новый ПолеКомпоновкиДанных(ОформляемоеПоле);
ОтборЭлемента = Элемент.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
ОтборЭлемента.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("ХозяйственнаяОперация");
ОтборЭлемента.ВидСравнения = ВидСравненияКомпоновкиДанных.Равно;
ОтборЭлемента.ПравоеЗначение = Перечисления.ХозяйственныеОперации.ОприходованиеЗаСчетДоходов;
ОтборЭлемента = Элемент.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
ОтборЭлемента.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("Тип");
ОтборЭлемента.ВидСравнения = ВидСравненияКомпоновкиДанных.Равно;
ОтборЭлемента.ПравоеЗначение = Тип("ДокументСсылка.ПрочееОприходованиеТоваров");
Элемент.Оформление.УстановитьЗначениеПараметра("Текст", НСтр("ru='Оприходование за счет доходов'"));
Элемент = Список.КомпоновщикНастроек.ФиксированныеНастройки.УсловноеОформление.Элементы.Добавить();
Элемент.РежимОтображения = РежимОтображенияЭлементаНастройкиКомпоновкиДанных.Недоступный;
ПолеЭлемента = Элемент.Поля.Элементы.Добавить();
ПолеЭлемента.Поле = Новый ПолеКомпоновкиДанных(ОформляемоеПоле);
ОтборЭлемента = Элемент.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
ОтборЭлемента.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("ХозяйственнаяОперация");
ОтборЭлемента.ВидСравнения = ВидСравненияКомпоновкиДанных.Равно;
ОтборЭлемента.ПравоеЗначение = Перечисления.ХозяйственныеОперации.ОприходованиеЗаСчетРасходов;
ОтборЭлемента = Элемент.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
ОтборЭлемента.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("Тип");
ОтборЭлемента.ВидСравнения = ВидСравненияКомпоновкиДанных.Равно;
ОтборЭлемента.ПравоеЗначение = Тип("ДокументСсылка.ПрочееОприходованиеТоваров");
Элемент.Оформление.УстановитьЗначениеПараметра("Текст", НСтр("ru='Оприходование за счет расходов'"));
Элемент = Список.КомпоновщикНастроек.ФиксированныеНастройки.УсловноеОформление.Элементы.Добавить();
Элемент.РежимОтображения = РежимОтображенияЭлементаНастройкиКомпоновкиДанных.Недоступный;
ПолеЭлемента = Элемент.Поля.Элементы.Добавить();
ПолеЭлемента.Поле = Новый ПолеКомпоновкиДанных(ОформляемоеПоле);
ОтборЭлемента = Элемент.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
ОтборЭлемента.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("ХозяйственнаяОперация");
ОтборЭлемента.ВидСравнения = ВидСравненияКомпоновкиДанных.Равно;
ОтборЭлемента.ПравоеЗначение = Перечисления.ХозяйственныеОперации.СторноСписанияНаРасходы;
ОтборЭлемента = Элемент.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
ОтборЭлемента.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("Тип");
ОтборЭлемента.ВидСравнения = ВидСравненияКомпоновкиДанных.Равно;
ОтборЭлемента.ПравоеЗначение = Тип("ДокументСсылка.ПрочееОприходованиеТоваров");
Элемент.Оформление.УстановитьЗначениеПараметра("Текст", НСтр("ru='Сторно списания на расходы'"));
Элемент = Список.КомпоновщикНастроек.ФиксированныеНастройки.УсловноеОформление.Элементы.Добавить();
Элемент.РежимОтображения = РежимОтображенияЭлементаНастройкиКомпоновкиДанных.Недоступный;
ПолеЭлемента = Элемент.Поля.Элементы.Добавить();
ПолеЭлемента.Поле = Новый ПолеКомпоновкиДанных("Тип");
ОтборЭлемента = Элемент.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
ОтборЭлемента.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("ХозяйственнаяОперация");
ОтборЭлемента.ВидСравнения = ВидСравненияКомпоновкиДанных.Равно;
ОтборЭлемента.ПравоеЗначение = Перечисления.ХозяйственныеОперации.ВозвратИзЭксплуатации;
ОтборЭлемента = Элемент.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
ОтборЭлемента.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("Тип");
ОтборЭлемента.ВидСравнения = ВидСравненияКомпоновкиДанных.Равно;
ОтборЭлемента.ПравоеЗначение = Тип("ДокументСсылка.ПрочееОприходованиеТоваров");
Элемент.Оформление.УстановитьЗначениеПараметра("Текст", НСтр("ru='Возврат из эксплуатации'"));
КонецПроцедуры
Функция МакетФормыВыбораНазначений() Экспорт
МакетФормы = Справочники.Назначения.МакетФормыВыбораНазначений();
ШаблонНазначения = Справочники.Назначения.ДобавитьШаблонНазначений(МакетФормы);
ШаблонНазначения.НаправлениеДеятельности = "Объект.НаправлениеДеятельности";
ОписаниеКолонок = Справочники.Назначения.ДобавитьОписаниеКолонок(МакетФормы, "ОбеспечениеЗаказов", Истина, "Объект.Товары.Назначение");
ОписаниеКолонок.Колонки.НайтиПоЗначению("Потребность").Пометка = Истина;
ОписаниеКолонок.ПутиКДанным.Номенклатура = "Объект.Товары.Номенклатура";
ОписаниеКолонок.ПутиКДанным.Характеристика = "Объект.Товары.Характеристика";
ОписаниеКолонок.ПутиКДанным.Склад = "Объект.Склад";
Возврат МакетФормы;
КонецФункции
Функция ХозяйственныеОперацииДокумента(Объект = Неопределено) Экспорт
Исправление = Ложь;
Если Объект <> Неопределено Тогда
Исправление = Объект.Исправление;
КонецЕсли;
СписокОпераций = Новый Массив;
СписокОпераций.Добавить(Перечисления.ХозяйственныеОперации.ПоступлениеИзПроизводства);
СписокОпераций.Добавить(Перечисления.ХозяйственныеОперации.СторноСписанияНаРасходы);
Если ПолучитьФункциональнуюОпцию("ИспользоватьУчетПрочихДоходовРасходов") Тогда
СписокОпераций.Добавить(Перечисления.ХозяйственныеОперации.ОприходованиеЗаСчетДоходов);
СписокОпераций.Добавить(Перечисления.ХозяйственныеОперации.ОприходованиеЗаСчетРасходов);
КонецЕсли;
Если НЕ Исправление Тогда
СписокОпераций.Добавить(Перечисления.ХозяйственныеОперации.ВозвратИзЭксплуатации);
КонецЕсли;
Возврат СписокОпераций;
КонецФункции
Функция КоллекцияТабличныхЧастейТоваров() Экспорт
ТаблицыДокумента = Новый Структура("Товары");
Возврат ТаблицыДокумента;
КонецФункции
#КонецОбласти
#Область ДляВызоваИзДругихПодсистем
Процедура ПриЗаполненииОграниченияДоступа(Ограничение) Экспорт
Ограничение.Текст =
"РазрешитьЧтениеИзменение
|ГДЕ
| ЗначениеРазрешено(Организация)
| И ЗначениеРазрешено(Склад)
| И ЗначениеРазрешено(Подразделение)";
КонецПроцедуры
#КонецОбласти
#Область Печать
Функция ПравилаПечатиЗаданияНаОтборРазмещение() Экспорт
ПравилаПечатиЗадания = Обработки.ПечатьЗаданияНаОтборРазмещениеТоваров.ПравилаПечатиЗаданияНаОтборРазмещение();
ПравилаПечатиЗадания.ОперацияПоступления = Истина;
Возврат ПравилаПечатиЗадания;
КонецФункции
#КонецОбласти
#КонецОбласти
#КонецЕсли
#Если Сервер Или ТолстыйКлиентОбычноеПриложение Или ВнешнееСоединение Тогда
#Область СлужебныйПрограммныйИнтерфейс
Функция ОперацииПриКоторыхМожноНеЗаполнятьПодразделение() Экспорт
МассивОпераций = Новый Массив;
МассивОпераций.Добавить(Перечисления.ХозяйственныеОперации.ОприходованиеЗаСчетРасходов);
МассивОпераций.Добавить(Перечисления.ХозяйственныеОперации.ВозвратИзЭксплуатации);
Возврат МассивОпераций;
КонецФункции
Функция ПараметрыВыбораСтатейИАналитик(ХозяйственнаяОперация) Экспорт
ПараметрыВыбора = ДоходыИРасходыСервер.ПараметрыВыбораСтатьиИАналитики();
ПараметрыВыбора.ПутьКДанным = "Объект.Товары";
ПараметрыВыбора.Статья = "СтатьяРасходовДоходов";
ПараметрыВыбора.ТипСтатьи = "ТипСтатьи";
Если ХозяйственнаяОперация = Перечисления.ХозяйственныеОперации.ОприходованиеЗаСчетРасходов Тогда
ПараметрыВыбора.ВыборСтатьиРасходов = Истина;
ПараметрыВыбора.ВыборСтатьиАктивовПассивов = Истина;
ИначеЕсли ХозяйственнаяОперация = Перечисления.ХозяйственныеОперации.СторноСписанияНаРасходы Тогда
ПараметрыВыбора.ВыборСтатьиРасходов = Истина;
ИначеЕсли ХозяйственнаяОперация = Перечисления.ХозяйственныеОперации.ПоступлениеИзПроизводства Тогда
ПараметрыВыбора.ВыборСтатьиРасходов = Истина;
ИначеЕсли ХозяйственнаяОперация = Перечисления.ХозяйственныеОперации.ОприходованиеЗаСчетДоходов Тогда
ПараметрыВыбора.ВыборСтатьиАктивовПассивов = Истина;
ПараметрыВыбора.ВыборСтатьиДоходов = Истина;
ИначеЕсли ХозяйственнаяОперация = Перечисления.ХозяйственныеОперации.ОприходованиеПриВыбытииОС Тогда
ПараметрыВыбора.ВыборСтатьиДоходов = Истина;
ИначеЕсли ХозяйственнаяОперация = Перечисления.ХозяйственныеОперации.ВозвратИзЭксплуатации Тогда
ПараметрыВыбора.ВыборСтатьиДоходов = Истина;
КонецЕсли;
ПараметрыВыбора.АналитикаРасходов = "АналитикаРасходов";
ПараметрыВыбора.АналитикаАктивовПассивов = "АналитикаАктивовПассивов";
ПараметрыВыбора.АналитикаДоходов = "АналитикаДоходов";
ПараметрыВыбора.ЭлементыФормы.Статья.Добавить("ТоварыСтатьяРасходовДоходов");
ПараметрыВыбора.ЭлементыФормы.АналитикаРасходов.Добавить("ТоварыАналитикаРасходов");
ПараметрыВыбора.ЭлементыФормы.АналитикаАктивовПассивов.Добавить("ТоварыАналитикаАктивовПассивов");
ПараметрыВыбора.ЭлементыФормы.АналитикаДоходов.Добавить("ТоварыАналитикаДоходов");
Возврат ПараметрыВыбора;
КонецФункции
#КонецОбласти
#Область СлужебныеПроцедурыИФункции
#Область Проведение
Процедура ЗаполнитьПараметрыИнициализации(Запрос, ДокументСсылка, ДопПараметры)
ПроведениеДокументов.ЗаполнитьПараметрыИнициализации(Запрос, ДокументСсылка, ДопПараметры);
СформироватьТаблицуВтСписокДокументов(Запрос);
ПолучитьДанныеДокумента(Запрос);
Запрос.Текст =
"ВЫБРАТЬ
| ДанныеДокумента.Ссылка КАК Ссылка,
| ДанныеДокумента.Дата КАК Период,
| ДанныеДокумента.Организация КАК Организация,
| ДанныеДокумента.Организация.ВалютаРегламентированногоУчета КАК ВалютаРегламентированногоУчета,
| ДанныеДокумента.Валюта КАК Валюта,
| ДанныеДокумента.Подразделение КАК Подразделение,
| ЕСТЬNULL(ДанныеДокумента.Подразделение.ВариантОбособленногоУчетаТоваров, ЗНАЧЕНИЕ(Перечисление.ВариантыОбособленногоУчетаТоваров.ПустаяСсылка)) КАК ВариантОбособленногоУчетаТоваров,
| ДанныеДокумента.НаправлениеДеятельности КАК НаправлениеДеятельности,
| ДанныеДокумента.ХозяйственнаяОперация КАК ХозяйственнаяОперация,
| ДанныеДокумента.Склад КАК Склад,
| ДанныеДокумента.СтатьяРасходовВыбытие КАК СтатьяРасходовВыбытие,
| ВЫБОР
| КОГДА ДанныеДокумента.Склад.ИспользоватьОрдернуюСхемуПриПоступлении
| И ДанныеДокумента.Дата >= ДанныеДокумента.Склад.ДатаНачалаОрдернойСхемыПриПоступлении
| ТОГДА ИСТИНА
| ИНАЧЕ ЛОЖЬ
| КОНЕЦ КАК ОрдернаяСхемаПриПоступлении,
| ДанныеДокумента.Номер КАК Номер,
| ДанныеДокумента.Ответственный КАК Ответственный,
| ДанныеДокумента.Комментарий КАК Комментарий,
| ДанныеДокумента.ПометкаУдаления КАК ПометкаУдаления,
| ДанныеДокумента.Исправление КАК Исправление,
| ДанныеДокумента.СторнируемыйДокумент КАК СторнируемыйДокумент,
| ДанныеДокумента.ИсправляемыйДокумент КАК ИсправляемыйДокумент,
| ДанныеДокумента.Проведен КАК Проведен,
|
| ВЫБОР
| КОГДА ДанныеДокумента.ХозяйственнаяОперация = ЗНАЧЕНИЕ(Перечисление.ХозяйственныеОперации.ПоступлениеИзПроизводства)
| ТОГДА ЗНАЧЕНИЕ(Справочник.НастройкиХозяйственныхОпераций.ПоступлениеИзПроизводства)
| КОГДА ДанныеДокумента.ХозяйственнаяОперация = ЗНАЧЕНИЕ(Перечисление.ХозяйственныеОперации.СторноСписанияНаРасходы)
| ТОГДА ЗНАЧЕНИЕ(Справочник.НастройкиХозяйственныхОпераций.СторноСписанияНаРасходы)
| КОГДА ДанныеДокумента.ХозяйственнаяОперация = ЗНАЧЕНИЕ(Перечисление.ХозяйственныеОперации.ОприходованиеПриВыбытииОС)
| ТОГДА ЗНАЧЕНИЕ(Справочник.НастройкиХозяйственныхОпераций.ОприходованиеПриВыбытииОС)
| ИНАЧЕ ЗНАЧЕНИЕ(Справочник.НастройкиХозяйственныхОпераций.ОприходованиеТоваров)
| КОНЕЦ КАК НастройкаХозяйственнойОперации
|ИЗ
| Документ.ПрочееОприходованиеТоваров КАК ДанныеДокумента
| ЛЕВОЕ СОЕДИНЕНИЕ Справочник.НастройкиХозяйственныхОпераций КАК НастройкиХозяйственныхОпераций
| ПО ДанныеДокумента.ХозяйственнаяОперация = НастройкиХозяйственныхОпераций.ХозяйственнаяОперация
|ГДЕ
| ДанныеДокумента.Ссылка = &Ссылка";
Результат = Запрос.Выполнить();
Реквизиты = Результат.Выбрать();
Реквизиты.Следующий();
Для Каждого Колонка Из Результат.Колонки Цикл
Запрос.УстановитьПараметр(Колонка.Имя, Реквизиты[Колонка.Имя]);
КонецЦикла;
ЗначенияПараметровПроведения = ЗначенияПараметровПроведения(Реквизиты);
Для каждого КлючИЗначение Из ЗначенияПараметровПроведения Цикл
Запрос.УстановитьПараметр(КлючИЗначение.Ключ, КлючИЗначение.Значение);
КонецЦикла;
РасчетСебестоимостиПрикладныеАлгоритмы.ЗаполнитьПараметрыИнициализации(Запрос, Реквизиты);
УчетПрослеживаемыхТоваровЛокализация.УстановитьПараметрыИспользованияУчетаПрослеживаемыхТоваров(Запрос);
КонецПроцедуры
Процедура СформироватьТаблицуВтСписокДокументов(Запрос)
Запрос.Текст =
"ВЫБРАТЬ
| СписокДокументов.Ссылка КАК Ссылка,
| СписокДокументов.Организация КАК Организация,
| СписокДокументов.Дата КАК Период
|
|ПОМЕСТИТЬ ВтСписокДокументов
|
|ИЗ
| Документ.ПрочееОприходованиеТоваров КАК СписокДокументов
|
|ГДЕ
| СписокДокументов.Ссылка = &Ссылка
|
|ИНДЕКСИРОВАТЬ ПО
| Ссылка
|";
Запрос.Выполнить();
КонецПроцедуры
Процедура ПолучитьДанныеДокумента(Запрос)
СписокЗапросов = Новый Массив;
#Область ДанныеДокументаРеквизиты
ТекстЗапроса =
"ВЫБРАТЬ
| ДанныеДокумента.Ссылка КАК Ссылка,
| ДанныеДокумента.Дата КАК Период,
| ДанныеДокумента.Номер КАК Номер,
| ДанныеДокумента.Организация КАК Организация,
| ДанныеДокумента.Организация.ГоловнаяОрганизация КАК ГоловнаяОрганизация,
| ДанныеДокумента.ХозяйственнаяОперация КАК ХозяйственнаяОперация,
| НастройкиХозяйственныхОпераций.Ссылка КАК НастройкаХозяйственнойОперации
|
|ПОМЕСТИТЬ ДанныеДокументаРеквизиты
|
|ИЗ
| Документ.ПрочееОприходованиеТоваров КАК ДанныеДокумента
|
| ЛЕВОЕ СОЕДИНЕНИЕ Справочник.НастройкиХозяйственныхОпераций КАК НастройкиХозяйственныхОпераций
| ПО ДанныеДокумента.ХозяйственнаяОперация = НастройкиХозяйственныхОпераций.ХозяйственнаяОперация
|
|ГДЕ
| ДанныеДокумента.Ссылка В (
| ВЫБРАТЬ
| ВтСписокДокументов.Ссылка
| ИЗ
| ВтСписокДокументов КАК ВтСписокДокументов)
|
|ИНДЕКСИРОВАТЬ ПО
| Ссылка
|";
СписокЗапросов.Добавить(ТекстЗапроса);
#КонецОбласти
#Область ДанныеДокументаТаблицаТовары
ТекстЗапроса =
"ВЫБРАТЬ
| ТаблицаДокумента.Ссылка КАК Ссылка,
| ТаблицаДокумента.ОсновноеСредство КАК ОсновноеСредство,
| ТаблицаДокумента.ОсновноеСредство КАК ОбъектУчета
|
|ПОМЕСТИТЬ ДанныеДокументаТаблицаТовары
|
|ИЗ
| Документ.ПрочееОприходованиеТоваров.Товары КАК ТаблицаДокумента
|
|ГДЕ
| ТаблицаДокумента.Ссылка В (
| ВЫБРАТЬ
| ВтСписокДокументов.Ссылка
| ИЗ
| ВтСписокДокументов КАК ВтСписокДокументов)
|
|ИНДЕКСИРОВАТЬ ПО
| Ссылка
|";
СписокЗапросов.Добавить(ТекстЗапроса);
#КонецОбласти
Запрос.Текст = СтрСоединить(СписокЗапросов, ОбщегоНазначения.РазделительПакетаЗапросов());
Запрос.Выполнить();
КонецПроцедуры
Функция ЗначенияПараметровПроведения(Реквизиты = Неопределено)
ЗначенияПараметровПроведения = Новый Структура;
ЗначенияПараметровПроведения.Вставить("ИспользоватьУчетПрочихДоходовРасходов", ПолучитьФункциональнуюОпцию("ИспользоватьУчетПрочихДоходовРасходов"));
ЗначенияПараметровПроведения.Вставить("ФормироватьВидыЗапасовПоГруппамФинансовогоУчета", ПолучитьФункциональнуюОпцию("ФормироватьВидыЗапасовПоГруппамФинансовогоУчета"));
ЗначенияПараметровПроведения.Вставить("ПустаяСерия", Справочники.СерииНоменклатуры.ПустаяСсылка());
ЗначенияПараметровПроведения.Вставить("ИдентификаторМетаданных", ОбщегоНазначения.ИдентификаторОбъектаМетаданных("Документ.ПрочееОприходованиеТоваров"));
ЗначенияПараметровПроведения.Вставить("ДатаНачалаДействияФСБУ5", '000101010000');
ЗначенияПараметровПроведения.Вставить(
"ХО_КорректировкаРасходовОтВыбытияОС",
Перечисления.ХозяйственныеОперации.КорректировкаРасходовОтВыбытияОС);
ЗначенияПараметровПроведения.Вставить(
"НастройкаХО_КорректировкаРасходовОтВыбытияОС",
Справочники.НастройкиХозяйственныхОпераций.КорректировкаРасходовОтВыбытияОС);
Если Реквизиты <> Неопределено Тогда
ЗначенияПараметровПроведения.Вставить("НомерНаПечать", ПрефиксацияОбъектовКлиентСервер.НомерНаПечать(Реквизиты.Номер));
КонецЕсли;
ПрочееОприходованиеТоваровЛокализация.ДополнитьЗначенияПараметровПроведения(ЗначенияПараметровПроведения, Реквизиты);
Возврат ЗначенияПараметровПроведения;
КонецФункции
Процедура УстановитьПараметрыЗапросаКоэффициентыВалют(Запрос)
Если Запрос.Параметры.Свойство("КоэффициентПересчетаВВалютуУпр")
И Запрос.Параметры.Свойство("КоэффициентПересчетаВВалютуРегл") Тогда
Возврат;
КонецЕсли;
Коэффициенты = РаботаСКурсамивалютУТ.ПолучитьКоэффициентыПересчетаВалюты(
Запрос.Параметры.Валюта,
Неопределено,
Запрос.Параметры.Период,
Запрос.Параметры.Организация);
Запрос.УстановитьПараметр("КоэффициентПересчетаВВалютуРегл", Коэффициенты.КоэффициентПересчетаВВалютуРегл);
Запрос.УстановитьПараметр("КоэффициентПересчетаВВалютуУпр", Коэффициенты.КоэффициентПересчетаВВалютуУпр);
КонецПроцедуры
Функция ДополнительныеИсточникиДанныхДляДвижений(ИмяРегистра) Экспорт
ИсточникиДанных = Новый Соответствие;
Возврат ИсточникиДанных;
КонецФункции
Процедура ИнициализироватьКлючиАналитикиНоменклатуры(Запрос)
Если Запрос.Параметры.Свойство("КлючиАналитикиУчетаНоменклатурыИнициализированы") Тогда
Возврат;
КонецЕсли;
ЗапросАналитик = Новый Запрос;
ЗапросАналитик.УстановитьПараметр("Ссылка", Запрос.Параметры.Ссылка);
ЗапросАналитик.УстановитьПараметр("Подразделение", Запрос.Параметры.Подразделение);
ЗапросАналитик.УстановитьПараметр("ПустаяСерия", Справочники.СерииНоменклатуры.ПустаяСсылка());
ЗапросАналитик.УстановитьПараметр("ПустоеНазначение", Справочники.Назначения.ПустаяСсылка());
ЗапросАналитик.УстановитьПараметр("УчитыватьСебестоимостьТоваровПоНазначениям", Запрос.Параметры.УчитыватьСебестоимостьТоваровПоНазначениям);
ЗапросАналитик.Текст =
"ВЫБРАТЬ РАЗЛИЧНЫЕ
| Таб.Серия,
| Таб.Склад,
| Таб.Номенклатура,
| Таб.Характеристика,
| Таб.Назначение
|ИЗ (
|
| ВЫБРАТЬ РАЗЛИЧНЫЕ
| ТаблицаТовары.АналитикаУчетаНоменклатуры.Серия КАК Серия,
| ТаблицаТовары.АналитикаУчетаНоменклатуры.МестоХранения КАК Склад,
| ТаблицаТовары.АналитикаУчетаНоменклатуры.Номенклатура КАК Номенклатура,
| ТаблицаТовары.АналитикаУчетаНоменклатуры.Характеристика КАК Характеристика,
| &ПустоеНазначение КАК Назначение
| ИЗ
| Документ.ПрочееОприходованиеТоваров.Товары КАК ТаблицаТовары
| ЛЕВОЕ СОЕДИНЕНИЕ
| РегистрСведений.АналитикаУчетаНоменклатуры КАК Аналитика
| ПО
| ТаблицаТовары.АналитикаУчетаНоменклатуры.Номенклатура = Аналитика.Номенклатура
| И ТаблицаТовары.АналитикаУчетаНоменклатуры.Характеристика = Аналитика.Характеристика
| И &ПустоеНазначение = Аналитика.Назначение
| И ТаблицаТовары.АналитикаУчетаНоменклатуры.Серия = Аналитика.Серия
| И ТаблицаТовары.АналитикаУчетаНоменклатуры.МестоХранения = Аналитика.МестоХранения
|
| ГДЕ
| ТаблицаТовары.Ссылка = &Ссылка
| И Аналитика.Номенклатура ЕСТЬ NULL
| И НЕ &УчитыватьСебестоимостьТоваровПоНазначениям
|
| ОБЪЕДИНИТЬ ВСЕ
|
| ВЫБРАТЬ РАЗЛИЧНЫЕ
| ТаблицаТовары.АналитикаУчетаНоменклатуры.Серия КАК Серия,
| ТаблицаТовары.АналитикаУчетаНоменклатуры.МестоХранения КАК Склад,
| ТаблицаТовары.АналитикаУчетаНоменклатуры.Номенклатура КАК Номенклатура,
| ТаблицаТовары.АналитикаУчетаНоменклатуры.Характеристика КАК Характеристика,
| &ПустоеНазначение КАК Назначение
| ИЗ
| Документ.ПрочееОприходованиеТоваров.ВидыЗапасов КАК ТаблицаТовары
| ЛЕВОЕ СОЕДИНЕНИЕ
| РегистрСведений.АналитикаУчетаНоменклатуры КАК Аналитика
| ПО
| ТаблицаТовары.АналитикаУчетаНоменклатуры.Номенклатура = Аналитика.Номенклатура
| И ТаблицаТовары.АналитикаУчетаНоменклатуры.Характеристика = Аналитика.Характеристика
| И &ПустоеНазначение = Аналитика.Назначение
| И ТаблицаТовары.АналитикаУчетаНоменклатуры.Серия = Аналитика.Серия
| И ТаблицаТовары.АналитикаУчетаНоменклатуры.МестоХранения = Аналитика.МестоХранения
| ГДЕ
| ТаблицаТовары.Ссылка = &Ссылка
| И Аналитика.Номенклатура ЕСТЬ NULL
| И НЕ &УчитыватьСебестоимостьТоваровПоНазначениям
| ) КАК Таб";
Выборка = ЗапросАналитик.Выполнить().Выбрать();
Пока Выборка.Следующий() Цикл
РегистрыСведений.АналитикаУчетаНоменклатуры.СоздатьКлючАналитики(Выборка);
КонецЦикла;
Запрос.УстановитьПараметр("КлючиАналитикиУчетаНоменклатурыИнициализированы", Истина);
КонецПроцедуры
Процедура УстановитьПараметрЗапросаНалогообложениеОрганизации(Запрос)
Если Запрос.Параметры.Свойство("НалогообложениеОрганизации") Тогда
Возврат;
КонецЕсли;
ПараметрыУчетаПоОрганизации = УчетНДСУП.ПараметрыУчетаПоОрганизации(Запрос.Параметры.Организация, Запрос.Параметры.Период);
Запрос.УстановитьПараметр("НалогообложениеОрганизации", ПараметрыУчетаПоОрганизации.ОсновноеНалогообложениеНДСПродажи);
КонецПроцедуры
Функция ТекстЗапросаВтТаблицаАналитикУчетаПартий(Запрос, ТекстыЗапроса)
ТекстНомераСтрок = РасчетСебестоимостиПроведениеДокументов.ТекстЗапросаКодыСтрокДляАналитикиУчетаПартий(
Метаданные.Документы.ПрочееОприходованиеТоваров.Имя,
"Товары");
ТекстВыборкаПоляАналитик = ТекстНомераСтрок + "
|ВЫБРАТЬ
| ""Товары"" КАК ИмяТабличнойЧасти,
| ТаблицаДокумента.НомерСтроки КАК НомерСтроки,
| НЕОПРЕДЕЛЕНО КАК Поставщик,
| НЕОПРЕДЕЛЕНО КАК Контрагент,
| НЕОПРЕДЕЛЕНО КАК СтавкаНДС,
| ЗНАЧЕНИЕ(Перечисление.ТипыНалогообложенияНДС.ПродажаНеОблагаетсяНДС) КАК НалогообложениеНДС,
| ЗНАЧЕНИЕ(Перечисление.ВидыЦенностей.Товары) КАК ВидЦенности,
| КодыСтрок.КодСтроки КАК КодСтроки
|ПОМЕСТИТЬ ВТПоляАналитикУчетаПартий
|ИЗ
| Документ.ПрочееОприходованиеТоваров.Товары КАК ТаблицаДокумента
| ВНУТРЕННЕЕ СОЕДИНЕНИЕ Документ.ПрочееОприходованиеТоваров КАК ДанныеДокумента
| ПО ДанныеДокумента.Ссылка = ТаблицаДокумента.Ссылка
| ВНУТРЕННЕЕ СОЕДИНЕНИЕ ВТКодыСтрокДляАналитикиУчетаПартий КАК КодыСтрок
| ПО ТаблицаДокумента.НомерСтроки = КодыСтрок.НомерСтроки
| И КодыСтрок.ИмяТабличнойЧасти = ""Товары""
|ГДЕ
| ТаблицаДокумента.Ссылка = &Ссылка
|";
ТекстЗапроса = Справочники.КлючиАналитикиУчетаПартий.ТекстЗапросаВтТаблицаАналитикУчетаПартий(ТекстВыборкаПоляАналитик, Запрос, ТекстыЗапроса);
Возврат ТекстЗапроса;
КонецФункции
Функция ТекстЗапросаВтТовары(Запрос, ТекстыЗапроса)
ИмяРегистра = "ВтТовары";
Если НЕ ПроведениеДокументов.ЕстьТаблицаЗапроса("ВтТаблицаАналитикУчетаПартий", ТекстыЗапроса) Тогда
ТекстЗапросаВтТаблицаАналитикУчетаПартий(Запрос, ТекстыЗапроса);
КонецЕсли;
ТекстЗапроса =
"ВЫБРАТЬ
| ТаблицаТовары.Ссылка КАК Ссылка,
| ТаблицаТовары.НомерСтроки КАК НомерСтроки,
| ТаблицаТовары.Номенклатура КАК Номенклатура,
| ТаблицаТовары.Характеристика КАК Характеристика,
| ТаблицаТовары.Назначение КАК Назначение,
| ТаблицаТовары.Серия КАК Серия,
| ТаблицаТовары.ВидЗапасов КАК ВидЗапасов,
| ТаблицаТовары.НомерГТД КАК НомерГТД,
| ТаблицаАналитикУчетаПартий.ВидЦенности КАК ВидЦенности,
| ТаблицаАналитикУчетаПартий.НалогообложениеНДС КАК ВидДеятельностиНДС,
| ТаблицаАналитикУчетаПартий.АналитикаУчетаПартий КАК АналитикаУчетаПартий,
| ТаблицаТовары.СтатьяРасходовДоходов КАК СтатьяРасходовДоходов,
| ТаблицаТовары.АналитикаРасходов КАК АналитикаРасходов,
| ТаблицаТовары.АналитикаДоходов КАК АналитикаДоходов,
| ТаблицаТовары.АналитикаАктивовПассивов КАК АналитикаАктивовПассивов,
| ТаблицаТовары.Количество КАК Количество,
| ВЫБОР
| КОГДА НЕ &ИспользоватьУчетПрослеживаемыхИмпортныхТоваров
| ИЛИ НАЧАЛОПЕРИОДА(&Период, МЕСЯЦ) < &ДатаНачалаУчетаПрослеживаемыхИмпортныхТоваров
| ТОГДА 0
| ИНАЧЕ ТаблицаТовары.КоличествоПоРНПТ
| КОНЕЦ КАК КоличествоПоРНПТ,
| ТаблицаТовары.Сумма КАК Сумма,
| ТаблицаТовары.АналитикаУчетаНоменклатуры КАК АналитикаУчетаНоменклатуры,
| ТаблицаТовары.СписаниеНаРасходы КАК СписаниеНаРасходы,
| &Склад КАК Склад,
| ТаблицаТовары.ИдентификаторСтроки КАК ИдентификаторСтроки
|ПОМЕСТИТЬ ВтТовары
|ИЗ
| Документ.ПрочееОприходованиеТоваров.Товары КАК ТаблицаТовары
|
| ЛЕВОЕ СОЕДИНЕНИЕ ВтТаблицаАналитикУчетаПартий КАК ТаблицаАналитикУчетаПартий
| ПО ТаблицаАналитикУчетаПартий.НомерСтроки = ТаблицаТовары.НомерСтроки
| И ТаблицаАналитикУчетаПартий.ИмяТабличнойЧасти = ""Товары""
|
|ГДЕ
| ТаблицаТовары.Ссылка = &Ссылка";
ТекстыЗапроса.Добавить(ТекстЗапроса, ИмяРегистра);
Возврат ТекстЗапроса;
КонецФункции
Функция ТекстЗапросаВтТаблицаТовары(Запрос, ТекстыЗапроса) Экспорт
ИмяРегистра = "ВтТаблицаТовары";
Если НЕ ПроведениеДокументов.ЕстьТаблицаЗапроса("ВтТовары", ТекстыЗапроса) Тогда
ТекстЗапросаВтТовары(Запрос, ТекстыЗапроса);
КонецЕсли;
УстановитьПараметрыЗапросаКоэффициентыВалют(Запрос);
ИнициализироватьКлючиАналитикиНоменклатуры(Запрос);
ТекстЗапроса =
"ВЫБРАТЬ
| ТаблицаТовары.Ссылка КАК Ссылка,
| ТаблицаТовары.НомерСтроки КАК НомерСтроки,
| ТаблицаТовары.Номенклатура КАК Номенклатура,
| ТаблицаТовары.Характеристика КАК Характеристика,
| ТаблицаТовары.Назначение КАК Назначение,
| ТаблицаТовары.АналитикаУчетаНоменклатуры КАК АналитикаУчетаНоменклатуры,
| АналитикаБезНазначения.КлючАналитики КАК АналитикаУчетаНоменклатурыБезНазначения,
| КорАналитика.КлючАналитики КАК КорАналитикаУчетаНоменклатуры,
| ТаблицаТовары.Серия КАК Серия,
| ТаблицаТовары.НомерГТД КАК НомерГТД,
| ТаблицаТовары.ВидЗапасов КАК ВидЗапасов,
| ТаблицаТовары.ВидЦенности КАК ВидЦенности,
| ТаблицаТовары.ВидДеятельностиНДС КАК ВидДеятельностиНДС,
| ТаблицаТовары.АналитикаУчетаПартий КАК АналитикаУчетаПартий,
| ВЫБОР
| КОГДА ТИПЗНАЧЕНИЯ(ТаблицаТовары.СтатьяРасходовДоходов) = ТИП(ПланВидовХарактеристик.СтатьиРасходов)
| ТОГДА ТаблицаТовары.СтатьяРасходовДоходов
| ИНАЧЕ НЕОПРЕДЕЛЕНО
| КОНЕЦ КАК СтатьяРасходов,
| ВЫБОР
| КОГДА ТИПЗНАЧЕНИЯ(ТаблицаТовары.СтатьяРасходовДоходов) = ТИП(ПланВидовХарактеристик.СтатьиДоходов)
| ТОГДА ТаблицаТовары.СтатьяРасходовДоходов
| ИНАЧЕ НЕОПРЕДЕЛЕНО
| КОНЕЦ КАК СтатьяДоходов,
| ВЫБОР
| КОГДА ТИПЗНАЧЕНИЯ(ТаблицаТовары.СтатьяРасходовДоходов) = ТИП(ПланВидовХарактеристик.СтатьиАктивовПассивов)
| ТОГДА ТаблицаТовары.СтатьяРасходовДоходов
| ИНАЧЕ НЕОПРЕДЕЛЕНО
| КОНЕЦ КАК СтатьяАктивовПассивов,
| ТаблицаТовары.АналитикаРасходов КАК АналитикаРасходов,
| ТаблицаТовары.АналитикаДоходов КАК АналитикаДоходов,
| ТаблицаТовары.АналитикаАктивовПассивов КАК АналитикаАктивовПассивов,
| ТаблицаТовары.Количество КАК Количество,
| ТаблицаТовары.КоличествоПоРНПТ КАК КоличествоПоРНПТ,
| ТаблицаТовары.Сумма КАК Сумма,
| ВЫРАЗИТЬ(ТаблицаТовары.Сумма * &КоэффициентПересчетаВВалютуУпр КАК ЧИСЛО(31,2)) КАК СуммаУпр,
| ВЫРАЗИТЬ(ТаблицаТовары.Сумма * &КоэффициентПересчетаВВалютуРегл КАК ЧИСЛО(31,2)) КАК СуммаРегл,
| ТаблицаТовары.Склад КАК Склад,
| ВЫРАЗИТЬ(ТаблицаТовары.Склад КАК Справочник.Склады).ЦеховаяКладовая КАК ЦеховаяКладовая,
| ТаблицаТовары.СписаниеНаРасходы КАК СписаниеНаРасходы,
| ТаблицаТовары.ИдентификаторСтроки КАК ИдентификаторСтроки
|ПОМЕСТИТЬ ВтТаблицаТовары
|ИЗ
| ВтТовары КАК ТаблицаТовары
| ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.АналитикаУчетаНоменклатуры КАК АналитикаБезНазначения
| ПО ТаблицаТовары.АналитикаУчетаНоменклатуры.Номенклатура = АналитикаБезНазначения.Номенклатура
| И ТаблицаТовары.АналитикаУчетаНоменклатуры.Характеристика = АналитикаБезНазначения.Характеристика
| И ТаблицаТовары.АналитикаУчетаНоменклатуры.Серия = АналитикаБезНазначения.Серия
| И ТаблицаТовары.АналитикаУчетаНоменклатуры.МестоХранения = АналитикаБезНазначения.МестоХранения
| И ЗНАЧЕНИЕ(Справочник.Назначения.ПустаяСсылка) = АналитикаБезНазначения.Назначение
|
| ЛЕВОЕ СОЕДИНЕНИЕ
| РегистрСведений.АналитикаУчетаНоменклатуры КАК КорАналитика
| ПО
| ТаблицаТовары.Номенклатура = КорАналитика.Номенклатура
| И ТаблицаТовары.Характеристика = КорАналитика.Характеристика
| И ТаблицаТовары.Серия = КорАналитика.Серия
| И ТаблицаТовары.Назначение = КорАналитика.Назначение
| И (&Подразделение = КорАналитика.МестоХранения)
|
|";
ТекстыЗапроса.Добавить(ТекстЗапроса, ИмяРегистра);
Возврат ТекстЗапроса;
КонецФункции
Функция ТекстЗапросаВТВидыЗапасов(Запрос, ТекстыЗапроса) Экспорт
ИмяРегистра = "ВТВидыЗапасов";
ИнициализироватьКлючиАналитикиНоменклатуры(Запрос);
ТекстЗапроса =
"ВЫБРАТЬ
| ВидыЗапасов.Ссылка КАК Ссылка,
| ВидыЗапасов.НомерСтроки КАК НомерСтроки,
| ВидыЗапасов.ВидЗапасов КАК ВидЗапасов,
| ВидыЗапасов.ВидЗапасов.ТипЗапасов КАК ТипЗапасов,
| ВидыЗапасов.НомерГТД КАК НомерГТД,
| ВидыЗапасов.СкладОтгрузки КАК СкладОтгрузки,
| ВидыЗапасов.ВидЗапасовОтгрузки КАК ВидЗапасовОтгрузки,
| ВидыЗапасов.ДокументРеализации КАК ДокументРеализации,
| ВидыЗапасов.АналитикаУчетаНоменклатуры КАК АналитикаУчетаНоменклатуры,
| АналитикаБезНазначения.КлючАналитики КАК АналитикаУчетаНоменклатурыБезНазначения,
| ВидыЗапасов.АналитикаУчетаНоменклатурыОтгрузки КАК АналитикаУчетаНоменклатурыОтгрузки,
| ВидыЗапасов.СтатьяРасходов КАК СтатьяРасходов,
| ВидыЗапасов.АналитикаРасходов КАК АналитикаРасходов,
| ВидыЗапасов.Серия КАК Серия,
| ВидыЗапасов.Количество КАК Количество,
| ВидыЗапасов.КоличествоПоРНПТ КАК КоличествоПоРНПТ,
| ВидыЗапасов.АналитикаУчетаНоменклатуры.Номенклатура КАК Номенклатура,
| ВидыЗапасов.АналитикаУчетаНоменклатуры.Характеристика КАК Характеристика,
| ВидыЗапасов.АналитикаУчетаНоменклатуры.СкладскаяТерритория.ЦеховаяКладовая КАК ЦеховаяКладовая,
| КлючиКомитента.КлючАналитики КАК АналитикаКомитента,
| ВидыЗапасов.ИдентификаторСтроки КАК ИдентификаторСтроки
|ПОМЕСТИТЬ ВТВидыЗапасов
|ИЗ
| Документ.ПрочееОприходованиеТоваров.ВидыЗапасов КАК ВидыЗапасов
| ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.АналитикаУчетаНоменклатуры КАК АналитикаБезНазначения
| ПО ВидыЗапасов.АналитикаУчетаНоменклатуры.Номенклатура = АналитикаБезНазначения.Номенклатура
| И ВидыЗапасов.АналитикаУчетаНоменклатуры.Характеристика = АналитикаБезНазначения.Характеристика
| И ВидыЗапасов.АналитикаУчетаНоменклатуры.Серия = АналитикаБезНазначения.Серия
| И ВидыЗапасов.АналитикаУчетаНоменклатуры.МестоХранения = АналитикаБезНазначения.МестоХранения
| И ЗНАЧЕНИЕ(Справочник.Назначения.ПустаяСсылка) = АналитикаБезНазначения.Назначение
| ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.АналитикаУчетаНоменклатуры КАК КлючиКомитента
| ПО КлючиКомитента.Номенклатура = ВидыЗапасов.АналитикаУчетаНоменклатуры.Номенклатура
| И КлючиКомитента.Характеристика = ВидыЗапасов.АналитикаУчетаНоменклатуры.Характеристика
| И КлючиКомитента.Серия = ЗНАЧЕНИЕ(Справочник.СерииНоменклатуры.ПустаяСсылка)
| И КлючиКомитента.Назначение = ЗНАЧЕНИЕ(Справочник.Назначения.ПустаяСсылка)
| И КлючиКомитента.МестоХранения = ВидыЗапасов.ВидЗапасов.ВладелецТовара
|ГДЕ
| ВидыЗапасов.Ссылка = &Ссылка";
ТекстыЗапроса.Добавить(ТекстЗапроса, ИмяРегистра);
Возврат ТекстЗапроса;
КонецФункции
Процедура ОформитьПоступлениеТоваровПоОдноходовке(Запрос, ТекстыЗапроса, Регистры)
ТекстЗапросаДокумента =
"ВЫБРАТЬ
| ТаблицаТовары.Ссылка КАК Ссылка,
| НЕОПРЕДЕЛЕНО КАК Заказ,
| ТаблицаТовары.Ссылка КАК Накладная,
| ТаблицаТовары.Ссылка.Исправление КАК Исправление,
| ТаблицаТовары.Ссылка.ИсправляемыйДокумент КАК ИсправляемыйДокумент,
| ТаблицаТовары.Ссылка.Дата КАК Дата,
| НЕОПРЕДЕЛЕНО КАК Договор,
| НЕОПРЕДЕЛЕНО КАК Соглашение,
| ТаблицаТовары.Ссылка.ВариантПриемкиТоваров КАК ВариантПриемкиТоваров,
| ТаблицаТовары.Ссылка.Склад КАК Склад,
| ТаблицаТовары.Ссылка.Подразделение КАК Отправитель,
| ТаблицаТовары.Ссылка.ХозяйственнаяОперация КАК ХозяйственнаяОперация,
| ТаблицаТовары.Номенклатура КАК Номенклатура,
| ТаблицаТовары.Характеристика КАК Характеристика,
| ТаблицаТовары.Назначение КАК Назначение,
| ТаблицаТовары.СтатусУказанияСерийПолучатель КАК СтатусУказанияСерий,
| ЛОЖЬ КАК СверхЗаказа,
| ТаблицаТовары.Серия КАК Серия,
| ТаблицаТовары.Количество КАК Количество,
| ЛОЖЬ КАК ПоступлениеПоЗаказам,
| ИСТИНА КАК ЭтоНакладная,
| ЛОЖЬ КАК ЭтоКорректировкаВнутриНакладной
|ИЗ
| Документ.ПрочееОприходованиеТоваров.Товары КАК ТаблицаТовары
|ГДЕ
| ТаблицаТовары.Ссылка В (&Ссылка)";
ТекущийОбъектМетаданных = Метаданные.Документы.ПрочееОприходованиеТоваров;
СкладыСервер.ОформитьПоступлениеТоваровПоОдноходовке(
Запрос,
ТекстыЗапроса,
Регистры,
ТекстЗапросаДокумента,
ТекущийОбъектМетаданных,
"Серии",
"ТаблицаТовары");
КонецПроцедуры
Процедура ЗапланироватьПоступлениеТоваров(Запрос, ТекстыЗапроса, Регистры)
ТекстЗапросаДокумента =
"ВЫБРАТЬ
| ТаблицаТовары.Ссылка КАК Ссылка,
| НЕОПРЕДЕЛЕНО КАК Заказ,
| ТаблицаТовары.Ссылка КАК Накладная,
| ТаблицаТовары.Ссылка.Исправление КАК Исправление,
| ТаблицаТовары.Ссылка.ИсправляемыйДокумент КАК ИсправляемыйДокумент,
|
| ВЫБОР КОГДА ТаблицаТовары.Ссылка.ДатаПоступления <> ДАТАВРЕМЯ(1, 1, 1) ТОГДА
| ТаблицаТовары.Ссылка.ДатаПоступления
| ИНАЧЕ
| ТаблицаТовары.Ссылка.Дата
| КОНЕЦ КАК Дата,
|
| НЕОПРЕДЕЛЕНО КАК Договор,
| НЕОПРЕДЕЛЕНО КАК Соглашение,
| ТаблицаТовары.Ссылка.ВариантПриемкиТоваров КАК ВариантПриемкиТоваров,
| ТаблицаТовары.Ссылка.Склад КАК Склад,
| ТаблицаТовары.Ссылка.Подразделение КАК Отправитель,
| ТаблицаТовары.Ссылка.ХозяйственнаяОперация КАК ХозяйственнаяОперация,
| ТаблицаТовары.Номенклатура КАК Номенклатура,
| ТаблицаТовары.Характеристика КАК Характеристика,
| ТаблицаТовары.Назначение КАК Назначение,
| ТаблицаТовары.СтатусУказанияСерийПолучатель КАК СтатусУказанияСерий,
| ЛОЖЬ КАК СверхЗаказа,
| ТаблицаТовары.Серия КАК Серия,
| ТаблицаТовары.Количество КАК Количество,
| ЛОЖЬ КАК ПоступлениеПоЗаказам,
| ИСТИНА КАК ЭтоНакладная
|ИЗ
| Документ.ПрочееОприходованиеТоваров.Товары КАК ТаблицаТовары
|ГДЕ
| ТаблицаТовары.Ссылка В (&Ссылка)";
СкладыСервер.ЗапланироватьПоступлениеТоваров(
Запрос,
ТекстыЗапроса,
Регистры,
ТекстЗапросаДокумента,
"ТаблицаТовары");
КонецПроцедуры
Функция ТекстЗапросаТаблицаДвиженияСерийТоваров(Запрос, ТекстыЗапроса, Регистры)
ИмяРегистра = "ДвиженияСерийТоваров";
Если НЕ ПроведениеДокументов.ТребуетсяТаблицаДляДвижений(ИмяРегистра, Регистры) Тогда
Возврат "";
КонецЕсли;
ТекстЗапроса =
"ВЫБРАТЬ
| ТаблицаСерии.Номенклатура КАК Номенклатура,
| ТаблицаСерии.Характеристика КАК Характеристика,
| ВЫБОР
| КОГДА ЕСТЬNULL(ТаблицаСерии.Назначение.ДвиженияПоСкладскимРегистрам, ЛОЖЬ)
| ТОГДА ТаблицаСерии.Назначение
| ИНАЧЕ ЗНАЧЕНИЕ(Справочник.Назначения.ПустаяСсылка)
| КОНЕЦ КАК Назначение,
| ТаблицаСерии.Серия КАК Серия,
| ТаблицаСерии.Количество КАК Количество,
| &Склад КАК Получатель,
| ЗНАЧЕНИЕ(Справочник.СкладскиеПомещения.ПустаяСсылка) КАК Помещение,
| ЗНАЧЕНИЕ(Перечисление.СкладскиеОперации.ПриемкаПоПрочемуОприходованию) КАК СкладскаяОперация,
| &Ссылка КАК Документ,
| &Период КАК Период,
| &Ссылка КАК Регистратор,
| НЕ &ОрдернаяСхемаПриПоступлении КАК ЭтоСкладскоеДвижение
|ИЗ
| Документ.ПрочееОприходованиеТоваров.Серии КАК ТаблицаСерии
|ГДЕ
| ТаблицаСерии.Ссылка = &Ссылка
| И ТаблицаСерии.Количество <> 0
|
|ОБЪЕДИНИТЬ ВСЕ
|
|ВЫБРАТЬ
| ТаблицаСерии.Номенклатура,
| ТаблицаСерии.Характеристика,
| ВЫБОР
| КОГДА ЕСТЬNULL(ТаблицаСерии.Назначение.ДвиженияПоСкладскимРегистрам, ЛОЖЬ)
| ТОГДА ТаблицаСерии.Назначение
| ИНАЧЕ ЗНАЧЕНИЕ(Справочник.Назначения.ПустаяСсылка)
| КОНЕЦ,
| ТаблицаСерии.Серия,
| ТаблицаСерии.Количество,
| &Склад,
| ЗНАЧЕНИЕ(Справочник.СкладскиеПомещения.ПустаяСсылка),
| ЗНАЧЕНИЕ(Перечисление.СкладскиеОперации.ПриемкаПоПрочемуОприходованию),
| &Ссылка,
| &Период,
| &Ссылка,
| НЕ &ОрдернаяСхемаПриПоступлении
|ИЗ
| Документ.ПрочееОприходованиеТоваров.Товары КАК ТаблицаСерии
|ГДЕ
| ТаблицаСерии.Ссылка = &Ссылка
| И ТаблицаСерии.Серия <> ЗНАЧЕНИЕ(Справочник.СерииНоменклатуры.ПустаяСсылка)";
ТекстыЗапроса.Добавить(ТекстЗапроса, ИмяРегистра);
Возврат ТекстЗапроса;
КонецФункции
Функция ТекстЗапросаТаблицаДатыПоступленияТоваровОрганизаций(Запрос, ТекстыЗапроса, Регистры)
ИмяРегистра = "ДатыПоступленияТоваровОрганизаций";
Если НЕ ПроведениеДокументов.ТребуетсяТаблицаДляДвижений(ИмяРегистра, Регистры) Тогда
Возврат "";
КонецЕсли;
Если НЕ ПроведениеДокументов.ЕстьТаблицаЗапроса("ВтТаблицаТовары", ТекстыЗапроса) Тогда
ТекстЗапросаВтТаблицаТовары(Запрос, ТекстыЗапроса);
КонецЕсли;
ТекстЗапроса =
"ВЫБРАТЬ РАЗЛИЧНЫЕ
| &Период КАК ДатаПоступления,
| ТаблицаТовары.Номенклатура КАК Номенклатура,
| ТаблицаТовары.Характеристика КАК Характеристика,
| ТаблицаТовары.Серия КАК Серия,
| ТаблицаТовары.Назначение КАК Назначение,
| ТаблицаТовары.ВидЗапасов КАК ВидЗапасов,
| ТаблицаТовары.НомерГТД КАК НомерГТД
|ИЗ
| ВтТаблицаТовары КАК ТаблицаТовары
|
| ЛЕВОЕ СОЕДИНЕНИЕ
| РегистрСведений.ДатыПоступленияТоваровОрганизаций КАК ПоступленияТоваров
| ПО
| ТаблицаТовары.ВидЗапасов = ПоступленияТоваров.ВидЗапасов
| И ТаблицаТовары.Номенклатура = ПоступленияТоваров.Номенклатура
| И ТаблицаТовары.Характеристика = ПоступленияТоваров.Характеристика
| И ТаблицаТовары.Серия = ПоступленияТоваров.Серия
| И ТаблицаТовары.Назначение = ПоступленияТоваров.Назначение
| И ТаблицаТовары.НомерГТД = ПоступленияТоваров.НомерГТД
|
|ГДЕ
| &ХозяйственнаяОперация <> ЗНАЧЕНИЕ(Перечисление.ХозяйственныеОперации.СторноСписанияНаРасходы)
| И (ПоступленияТоваров.ДатаПоступления ЕСТЬ NULL
| ИЛИ ПоступленияТоваров.ДатаПоступления < &Период)
|
|УПОРЯДОЧИТЬ ПО
| ТаблицаТовары.ВидЗапасов,
| ТаблицаТовары.Номенклатура,
| ТаблицаТовары.Характеристика,
| ТаблицаТовары.Серия,
| ТаблицаТовары.Назначение,
| ТаблицаТовары.НомерГТД";
ТекстыЗапроса.Добавить(ТекстЗапроса, ИмяРегистра);
Возврат ТекстЗапроса;
КонецФункции
Функция ТекстЗапросаТаблицаТоварыОрганизаций(Запрос, ТекстыЗапроса, Регистры)
ИмяРегистра = "ТоварыОрганизаций";
Если НЕ ПроведениеДокументов.ТребуетсяТаблицаДляДвижений(ИмяРегистра, Регистры) Тогда
Возврат "";
КонецЕсли;
Если НЕ ПроведениеДокументов.ЕстьТаблицаЗапроса("ВтТаблицаТовары", ТекстыЗапроса) Тогда
ТекстЗапросаВтТаблицаТовары(Запрос, ТекстыЗапроса);
КонецЕсли;
Если НЕ ПроведениеДокументов.ЕстьТаблицаЗапроса("ВтВидыЗапасов", ТекстыЗапроса) Тогда
ТекстЗапросаВТВидыЗапасов(Запрос, ТекстыЗапроса);
КонецЕсли;
ИнициализироватьКлючиАналитикиНоменклатуры(Запрос);
ТекстЗапроса =
"ВЫБРАТЬ
| ТаблицаТовары.НомерСтроки КАК НомерСтроки,
| ЗНАЧЕНИЕ(ВидДвиженияНакопления.Приход) КАК ВидДвижения,
| &Период КАК Период,
| &Организация КАК Организация,
| ТаблицаТовары.АналитикаУчетаНоменклатуры КАК АналитикаУчетаНоменклатуры,
| НЕОПРЕДЕЛЕНО КАК КорАналитикаУчетаНоменклатуры,
| ТаблицаТовары.Номенклатура КАК Номенклатура,
| ТаблицаТовары.Характеристика КАК Характеристика,
| ТаблицаТовары.ВидЗапасов КАК ВидЗапасов,
| ТаблицаТовары.НомерГТД КАК НомерГТД,
| ТаблицаТовары.ВидЗапасов КАК КорВидЗапасов,
| ТаблицаТовары.Количество КАК Количество,
| ТаблицаТовары.КоличествоПоРНПТ КАК КоличествоПоРНПТ,
| &ХозяйственнаяОперация КАК ХозяйственнаяОперация,
| НЕОПРЕДЕЛЕНО КАК СтатьяРасходов,
| НЕОПРЕДЕЛЕНО КАК АналитикаРасходов,
| НЕОПРЕДЕЛЕНО КАК ДокументРеализации,
| НЕОПРЕДЕЛЕНО КАК ОрганизацияОтгрузки,
| НЕОПРЕДЕЛЕНО КАК НалогообложениеНДС,
| ИСТИНА КАК Первичное
|ИЗ
| ВтТаблицаТовары КАК ТаблицаТовары
|ГДЕ
| &ХозяйственнаяОперация <> ЗНАЧЕНИЕ(Перечисление.ХозяйственныеОперации.СторноСписанияНаРасходы)
|
|ОБЪЕДИНИТЬ ВСЕ
|
| ВЫБРАТЬ
| ТаблицаВидыЗапасов.НомерСтроки КАК НомерСтроки,
| ЗНАЧЕНИЕ(ВидДвиженияНакопления.Расход) КАК ВидДвижения,
| &Период КАК Период,
| &Организация КАК Организация,
| ТаблицаВидыЗапасов.АналитикаУчетаНоменклатуры КАК АналитикаУчетаНоменклатуры,
| ВЫБОР
| КОГДА ТаблицаВидыЗапасов.ТипЗапасов = ЗНАЧЕНИЕ(Перечисление.ТипыЗапасов.КомиссионныйТовар)
| ТОГДА ТаблицаВидыЗапасов.АналитикаКомитента
| КОГДА ТаблицаВидыЗапасов.АналитикаУчетаНоменклатурыОтгрузки <> ЗНАЧЕНИЕ(Справочник.КлючиАналитикиУчетаНоменклатуры.ПустаяСсылка)
| ТОГДА ТаблицаВидыЗапасов.АналитикаУчетаНоменклатурыОтгрузки
| ИНАЧЕ ТаблицаВидыЗапасов.АналитикаУчетаНоменклатуры
| КОНЕЦ КАК КорАналитикаУчетаНоменклатуры,
| Аналитика.Номенклатура КАК Номенклатура,
| Аналитика.Характеристика КАК Характеристика,
| ТаблицаВидыЗапасов.ВидЗапасовОтгрузки КАК ВидЗапасов,
| ТаблицаВидыЗапасов.НомерГТД КАК НомерГТД,
| ТаблицаВидыЗапасов.ВидЗапасовОтгрузки КАК КорВидЗапасов,
| -ТаблицаВидыЗапасов.Количество КАК Количество,
| -ТаблицаВидыЗапасов.КоличествоПоРНПТ КАК КоличествоПоРНПТ,
| &ХозяйственнаяОперация КАК ХозяйственнаяОперация,
| ТаблицаВидыЗапасов.СтатьяРасходов КАК СтатьяРасходов,
| ТаблицаВидыЗапасов.АналитикаРасходов КАК АналитикаРасходов,
| ТаблицаВидыЗапасов.ДокументРеализации КАК ДокументРеализации,
| &Организация КАК ОрганизацияОтгрузки,
| (ВЫБОР КОГДА ТаблицаВидыЗапасов.СтатьяРасходов.ВариантРаспределенияРасходовРегл
| = ЗНАЧЕНИЕ(Перечисление.ВариантыРаспределенияРасходов.НаВнеоборотныеАктивы)
| ТОГДА
| ЗНАЧЕНИЕ(Перечисление.ТипыНалогообложенияНДС.ПоФактическомуИспользованию)
| КОГДА ТаблицаВидыЗапасов.СтатьяРасходов.ВариантРаздельногоУчетаНДС = ЗНАЧЕНИЕ(Перечисление.ВариантыРаздельногоУчетаНДС.Распределение) ТОГДА
| НЕОПРЕДЕЛЕНО
| ИНАЧЕ
| Списание.ПотреблениеДляДеятельности
| КОНЕЦ) КАК НалогообложениеНДС,
| ЛОЖЬ КАК Первичное
|ИЗ
| ВтВидыЗапасов КАК ТаблицаВидыЗапасов
| ВНУТРЕННЕЕ СОЕДИНЕНИЕ Справочник.КлючиАналитикиУчетаНоменклатуры КАК Аналитика
| ПО ТаблицаВидыЗапасов.АналитикаУчетаНоменклатуры = Аналитика.Ссылка
| ВНУТРЕННЕЕ СОЕДИНЕНИЕ Документ.ВнутреннееПотребление КАК Списание
| ПО ТаблицаВидыЗапасов.ДокументРеализации = Списание.Ссылка
|ГДЕ
| &ХозяйственнаяОперация = ЗНАЧЕНИЕ(Перечисление.ХозяйственныеОперации.СторноСписанияНаРасходы)
|
|УПОРЯДОЧИТЬ ПО
| НомерСтроки";
ТекстыЗапроса.Добавить(ТекстЗапроса, ИмяРегистра);
Возврат ТекстЗапроса;
КонецФункции
Функция ТекстЗапросаТаблицаТоварыКОформлениюОтчетовКомитенту(Запрос, ТекстыЗапроса, Регистры)
ИмяРегистра = "ТоварыКОформлениюОтчетовКомитенту";
Если Не ПроведениеДокументов.ТребуетсяТаблицаДляДвижений(ИмяРегистра, Регистры) Тогда
Возврат "";
КонецЕсли;
Если Не ПроведениеДокументов.ЕстьТаблицаЗапроса("ВтВидыЗапасов", ТекстыЗапроса) Тогда
ТекстЗапросаВТВидыЗапасов(Запрос, ТекстыЗапроса);
КонецЕсли;
ТекстЗапроса = "
|ВЫБРАТЬ
| ТаблицаВидыЗапасов.НомерСтроки КАК НомерСтроки,
| ЗНАЧЕНИЕ(ВидДвиженияНакопления.Приход) КАК ВидДвижения,
| &Период КАК Период,
| &Организация КАК Организация,
| ТаблицаВидыЗапасов.ВидЗапасов КАК ВидЗапасов,
| ТаблицаВидыЗапасов.АналитикаКомитента КАК АналитикаУчетаНоменклатуры,
| ТаблицаВидыЗапасов.ВидЗапасов.Валюта КАК Валюта,
| ТаблицаВидыЗапасов.НомерГТД КАК НомерГТД,
| 0 КАК Количество,
| 0 КАК СуммаВыручки,
| 0 КАК СуммаВыручкиРегл,
| 0 КАК СуммаВыручкиУпр,
| -ТаблицаВидыЗапасов.Количество КАК КоличествоСписано,
| 0 КАК КоличествоКОформлению,
| 0 КАК КоличествоКОформлениюПоРНПТ,
| 0 КАК СуммаВыручкиКОформлению,
| -ТаблицаВидыЗапасов.Количество КАК КоличествоСписаноКОформлению,
| -ТаблицаВидыЗапасов.КоличествоПоРНПТ КАК КоличествоСписаноКОформлениюПоРНПТ,
| ТаблицаВидыЗапасов.Номенклатура КАК Номенклатура,
| ТаблицаВидыЗапасов.Характеристика КАК Характеристика,
| &ХозяйственнаяОперация КАК ХозяйственнаяОперация,
| НЕОПРЕДЕЛЕНО КАК КорВидЗапасов,
| ТаблицаВидыЗапасов.ДокументРеализации КАК ДокументРеализации,
| ТаблицаВидыЗапасов.ИдентификаторСтроки КАК ИдентификаторФинЗаписи,
| &НастройкаХозяйственнойОперации КАК НастройкаХозяйственнойОперации,
| ТаблицаВидыЗапасов.ИдентификаторСтроки КАК ИдентификаторСтроки
|ИЗ
| ВтВидыЗапасов КАК ТаблицаВидыЗапасов
|
|ГДЕ
| ТаблицаВидыЗапасов.ТипЗапасов = ЗНАЧЕНИЕ(Перечисление.ТипыЗапасов.КомиссионныйТовар)
|
|УПОРЯДОЧИТЬ ПО
| НомерСтроки";
ТекстыЗапроса.Добавить(ТекстЗапроса, ИмяРегистра);
Возврат ТекстЗапроса;
КонецФункции
Процедура СформироватьСуммыДокументаВВалютахУчета(Запрос, ТекстыЗапроса, Регистры = Неопределено) Экспорт
ТекстЗапросаДанных =
"ВЫБРАТЬ
| ""Товары"" КАК ИсточникДанных,
| ЛОЖЬ КАК РаспределятьОбщуюСумму,
| ТаблицаДокумента.Ссылка КАК Ссылка,
| ТаблицаДокумента.Ссылка.Дата КАК Дата,
| ТаблицаДокумента.Ссылка.Организация КАК Организация,
| ТаблицаДокумента.Ссылка.Валюта КАК ВалютаДокумента,
| НЕОПРЕДЕЛЕНО КАК ВалютаВзаиморасчетов,
| НЕОПРЕДЕЛЕНО КАК ПериодБазыНДС,
| ТаблицаДокумента.Ссылка.Дата КАК ДатаКурса,
|
| ТаблицаДокумента.НомерСтроки КАК НомерСтроки,
| ТаблицаДокумента.ИдентификаторСтроки КАК ИдентификаторСтроки,
| ТаблицаДокумента.Сумма КАК СуммаБезНДС,
| НЕОПРЕДЕЛЕНО КАК СтавкаНДС,
| 0 КАК СуммаНДС,
| 0 КАК СуммаВзаиморасчетов,
| 0 КАК СуммаНДСВзаиморасчетов,
| 0 КАК СуммаБезНДСРегл,
| 0 КАК СуммаБезНДСУпр,
|
| ЛОЖЬ КАК ОтражаетсяВРасчетах,
| НЕОПРЕДЕЛЕНО КАК ОбъектРасчетов,
| ЛОЖЬ КАК ПересчитыватьПоДаннымРасчетов
|ИЗ
| Документ.ПрочееОприходованиеТоваров.Товары КАК ТаблицаДокумента
|
|ГДЕ
| ТаблицаДокумента.Ссылка В (&Ссылка)
| И НЕ ТаблицаДокумента.Ссылка.ХозяйственнаяОперация = ЗНАЧЕНИЕ(Перечисление.ХозяйственныеОперации.СторноСписанияНаРасходы)
|";
РегистрыСведений.СуммыДокументовВВалютахУчета.СформироватьПоДаннымДокумента(
Запрос, ТекстыЗапроса, Регистры, ТекстЗапросаДанных);
КонецПроцедуры
Функция ТекстЗапросаТаблицаПартииТоваровОрганизаций(Запрос, ТекстыЗапроса, Регистры)
ИмяРегистра = "ПартииТоваровОрганизаций";
Если НЕ ПроведениеДокументов.ТребуетсяТаблицаДляДвижений(ИмяРегистра, Регистры) Тогда
Возврат "";
КонецЕсли;
Если НЕ ПроведениеДокументов.ЕстьТаблицаЗапроса("ВтТаблицаТовары", ТекстыЗапроса) Тогда
ТекстЗапросаВтТаблицаТовары(Запрос, ТекстыЗапроса);
КонецЕсли;
ТекстЗапроса =
"ВЫБРАТЬ
| ЗНАЧЕНИЕ(ВидДвиженияНакопления.Приход) КАК ВидДвижения,
| &Период КАК Период,
| ТаблицаТовары.НомерСтроки КАК НомерСтроки,
| &Организация КАК Организация,
| ТаблицаТовары.АналитикаУчетаНоменклатуры КАК АналитикаУчетаНоменклатуры,
| ТаблицаТовары.ВидЗапасов КАК ВидЗапасов,
| ТаблицаТовары.АналитикаУчетаПартий КАК АналитикаУчетаПартий,
| &Ссылка КАК ДокументПоступления,
| ТаблицаТовары.Количество КАК Количество,
| ТаблицаТовары.СуммаУпр КАК Стоимость,
| ТаблицаТовары.СуммаУпр КАК СтоимостьБезНДС,
| ТаблицаТовары.СуммаРегл КАК СтоимостьРегл,
| ВЫБОР КОГДА ТаблицаТовары.СтатьяРасходов.ПринятиеКналоговомуУчету = ЛОЖЬ ТОГДА
| ТаблицаТовары.СуммаРегл
| ИНАЧЕ
| 0
| КОНЕЦ КАК ПостояннаяРазница,
| 0 КАК ВременнаяРазница,
| ТаблицаТовары.Номенклатура КАК Номенклатура,
| ТаблицаТовары.Характеристика КАК Характеристика,
| ЗНАЧЕНИЕ(Перечисление.ХозяйственныеОперации.ОприходованиеТоваров) КАК ХозяйственнаяОперация,
| ИСТИНА КАК Первичное,
| НЕОПРЕДЕЛЕНО КАК ДокументИсточник
|ИЗ
| ВтТаблицаТовары КАК ТаблицаТовары
|ГДЕ
| &ХозяйственнаяОперация В (
| ЗНАЧЕНИЕ(Перечисление.ХозяйственныеОперации.ОприходованиеЗаСчетДоходов),
| ЗНАЧЕНИЕ(Перечисление.ХозяйственныеОперации.ОприходованиеЗаСчетРасходов),
| ЗНАЧЕНИЕ(Перечисление.ХозяйственныеОперации.ОприходованиеПриВыбытииОС),
| ЗНАЧЕНИЕ(Перечисление.ХозяйственныеОперации.ПоступлениеИзпроизводства))
| И &ПартионныйУчетВерсии21
|
|ОБЪЕДИНИТЬ ВСЕ
|
|ВЫБРАТЬ
| ЗНАЧЕНИЕ(ВидДвиженияНакопления.Приход) КАК ВидДвижения,
| &Период КАК Период,
| ТаблицаТовары.НомерСтроки КАК НомерСтроки,
| &Организация КАК Организация,
| ТаблицаТовары.АналитикаУчетаНоменклатуры КАК АналитикаУчетаНоменклатуры,
| ТаблицаТовары.ВидЗапасов КАК ВидЗапасов,
| ТаблицаТовары.АналитикаУчетаПартий КАК АналитикаУчетаПартий,
| &Ссылка КАК ДокументПоступления,
| ТаблицаТовары.Количество КАК Количество,
| ТаблицаТовары.СуммаУпр КАК Стоимость,
| ТаблицаТовары.СуммаУпр КАК СтоимостьБезНДС,
| ТаблицаТовары.СуммаРегл КАК СтоимостьРегл,
| ВЫБОР КОГДА ТаблицаТовары.СтатьяРасходов.ПринятиеКналоговомуУчету = ЛОЖЬ ТОГДА
| ТаблицаТовары.СуммаРегл
| ИНАЧЕ
| 0
| КОНЕЦ КАК ПостояннаяРазница,
| 0
| КАК ВременнаяРазница,
| ТаблицаТовары.Номенклатура КАК Номенклатура,
| ТаблицаТовары.Характеристика КАК Характеристика,
| ЗНАЧЕНИЕ(Перечисление.ХозяйственныеОперации.ОприходованиеТоваров) КАК ХозяйственнаяОперация,
| ИСТИНА КАК Первичное,
| НЕОПРЕДЕЛЕНО КАК ДокументИсточник
|ИЗ
| ВтТаблицаТовары КАК ТаблицаТовары
|ГДЕ
| &ХозяйственнаяОперация = ЗНАЧЕНИЕ(Перечисление.ХозяйственныеОперации.ВозвратИзЭксплуатации)
| И &ПартионныйУчетВерсии21
|";
ТекстыЗапроса.Добавить(ТекстЗапроса, ИмяРегистра);
Возврат ТекстЗапроса;
КонецФункции
Функция ТекстЗапросаТаблицаДвиженияНоменклатураДоходыРасходы(Запрос, ТекстыЗапроса, Регистры)
ИмяРегистра = "ДвиженияНоменклатураДоходыРасходы";
Если НЕ ПроведениеДокументов.ТребуетсяТаблицаДляДвижений(ИмяРегистра, Регистры) Тогда
Возврат "";
КонецЕсли;
Если НЕ ПроведениеДокументов.ЕстьТаблицаЗапроса("ВтТаблицаТовары", ТекстыЗапроса) Тогда
ТекстЗапросаВтТаблицаТовары(Запрос, ТекстыЗапроса);
КонецЕсли;
Если НЕ ПроведениеДокументов.ЕстьТаблицаЗапроса("ВтВидыЗапасов", ТекстыЗапроса) Тогда
ТекстЗапросаВТВидыЗапасов(Запрос, ТекстыЗапроса);
КонецЕсли;
ТекстЗапроса =
"ВЫБРАТЬ
| &Период КАК Период,
| &ХозяйственнаяОперация КАК ХозяйственнаяОперация,
| &Организация КАК Организация,
| &Подразделение КАК Подразделение,
|
| ВЫБОР КОГДА &УчитыватьСебестоимостьТоваровПоНазначениям
| ТОГДА ТаблицаТовары.АналитикаУчетаНоменклатуры
| ИНАЧЕ ТаблицаТовары.АналитикаУчетаНоменклатурыБезНазначения
| КОНЕЦ КАК АналитикаУчетаНоменклатуры,
| &Склад КАК Склад,
| ТаблицаТовары.ВидЗапасов.ТипЗапасов КАК ТипЗапасов,
| ТаблицаТовары.ВидЗапасов КАК ВидЗапасов,
|
| ТаблицаТовары.СтатьяРасходов КАК СтатьяДоходовРасходов,
| ТаблицаТовары.АналитикаРасходов КАК АналитикаРасходов,
| НЕОПРЕДЕЛЕНО КАК АналитикаДоходов,
| ТаблицаТовары.АналитикаАктивовПассивов КАК АналитикаАктивовПассивов,
|
| ТаблицаТовары.Количество КАК Количество,
| ТаблицаТовары.СуммаУпр КАК Стоимость,
| ТаблицаТовары.СуммаУпр КАК СтоимостьБезНДС,
| ТаблицаТовары.СуммаРегл КАК СтоимостьРегл,
|
| ВЫБОР КОГДА &ФормироватьВидыЗапасовПоГруппамФинансовогоУчета ТОГДА
| ТаблицаТовары.ВидЗапасов
| ИНАЧЕ
| ТаблицаТовары.Номенклатура
| КОНЕЦ КАК ИсточникГФУНоменклатуры,
| &НаправлениеДеятельности КАК НаправлениеДеятельностиСтатьи,
| ТаблицаТовары.Назначение.НаправлениеДеятельности КАК НаправлениеДеятельностиНоменклатуры
|ИЗ
| ВтТаблицаТовары КАК ТаблицаТовары
|ГДЕ
| &ХозяйственнаяОперация В (ЗНАЧЕНИЕ(Перечисление.ХозяйственныеОперации.ПоступлениеИзПроизводства))
|
|ОБЪЕДИНИТЬ ВСЕ
|
|ВЫБРАТЬ
| &Период КАК Период,
| &ХозяйственнаяОперация КАК ХозяйственнаяОперация,
| &Организация КАК Организация,
| &Подразделение КАК Подразделение,
|
| ВЫБОР КОГДА &УчитыватьСебестоимостьТоваровПоНазначениям
| ТОГДА ТаблицаТовары.АналитикаУчетаНоменклатуры
| ИНАЧЕ ТаблицаТовары.АналитикаУчетаНоменклатурыБезНазначения
| КОНЕЦ КАК АналитикаУчетаНоменклатуры,
| &Склад КАК Склад,
| ТаблицаТовары.ВидЗапасов.ТипЗапасов КАК ТипЗапасов,
| ТаблицаТовары.ВидЗапасов КАК ВидЗапасов,
|
| ВЫБОР
| КОГДА ТаблицаТовары.СтатьяДоходов <> НЕОПРЕДЕЛЕНО
| ТОГДА ТаблицаТовары.СтатьяДоходов
| ИНАЧЕ ТаблицаТовары.СтатьяАктивовПассивов
| КОНЕЦ КАК СтатьяДоходовРасходов,
| НЕОПРЕДЕЛЕНО КАК АналитикаРасходов,
| ТаблицаТовары.АналитикаДоходов КАК АналитикаДоходов,
| ТаблицаТовары.АналитикаАктивовПассивов КАК АналитикаАктивовПассивов,
|
| ТаблицаТовары.Количество КАК Количество,
| ТаблицаТовары.СуммаУпр КАК Стоимость,
| ТаблицаТовары.СуммаУпр КАК СтоимостьБезНДС,
| ТаблицаТовары.СуммаРегл КАК СтоимостьРегл,
|
| ВЫБОР КОГДА &ФормироватьВидыЗапасовПоГруппамФинансовогоУчета ТОГДА
| ТаблицаТовары.ВидЗапасов
| ИНАЧЕ
| ТаблицаТовары.Номенклатура
| КОНЕЦ КАК ИсточникГФУНоменклатуры,
| &НаправлениеДеятельности КАК НаправлениеДеятельностиСтатьи,
| ТаблицаТовары.Назначение.НаправлениеДеятельности КАК НаправлениеДеятельностиНоменклатуры
|
|ИЗ
| ВтТаблицаТовары КАК ТаблицаТовары
|ГДЕ
| &ХозяйственнаяОперация = ЗНАЧЕНИЕ(Перечисление.ХозяйственныеОперации.ОприходованиеЗаСчетДоходов)
|
|ОБЪЕДИНИТЬ ВСЕ
|
|ВЫБРАТЬ
| &Период КАК Период,
| &ХозяйственнаяОперация КАК ХозяйственнаяОперация,
| &Организация КАК Организация,
| &Подразделение КАК Подразделение,
|
| ВЫБОР КОГДА &УчитыватьСебестоимостьТоваровПоНазначениям
| ТОГДА ТаблицаТовары.АналитикаУчетаНоменклатуры
| ИНАЧЕ ТаблицаТовары.АналитикаУчетаНоменклатурыБезНазначения
| КОНЕЦ КАК АналитикаУчетаНоменклатуры,
| &Склад КАК Склад,
| ТаблицаТовары.ВидЗапасов.ТипЗапасов КАК ТипЗапасов,
| ТаблицаТовары.ВидЗапасов КАК ВидЗапасов,
|
| ВЫБОР
| КОГДА ТаблицаТовары.СтатьяРасходов <> НЕОПРЕДЕЛЕНО
| ТОГДА ТаблицаТовары.СтатьяРасходов
| ИНАЧЕ ТаблицаТовары.СтатьяАктивовПассивов
| КОНЕЦ КАК СтатьяДоходовРасходов,
| ТаблицаТовары.АналитикаРасходов КАК АналитикаРасходов,
| НЕОПРЕДЕЛЕНО КАК АналитикаДоходов,
| ТаблицаТовары.АналитикаАктивовПассивов КАК АналитикаАктивовПассивов,
|
| ТаблицаТовары.Количество КАК Количество,
| ТаблицаТовары.СуммаУпр КАК Стоимость,
| ТаблицаТовары.СуммаУпр КАК СтоимостьБезНДС,
| ТаблицаТовары.СуммаРегл КАК СтоимостьРегл,
|
| ВЫБОР КОГДА &ФормироватьВидыЗапасовПоГруппамФинансовогоУчета ТОГДА
| ТаблицаТовары.ВидЗапасов
| ИНАЧЕ
| ТаблицаТовары.Номенклатура
| КОНЕЦ КАК ИсточникГФУНоменклатуры,
| &НаправлениеДеятельности КАК НаправлениеДеятельностиСтатьи,
| ТаблицаТовары.Назначение.НаправлениеДеятельности КАК НаправлениеДеятельностиНоменклатуры
|
|ИЗ
| ВтТаблицаТовары КАК ТаблицаТовары
|ГДЕ
| &ХозяйственнаяОперация = ЗНАЧЕНИЕ(Перечисление.ХозяйственныеОперации.ОприходованиеЗаСчетРасходов)
|
|ОБЪЕДИНИТЬ ВСЕ
|
|ВЫБРАТЬ
| &Период КАК Период,
| &ХозяйственнаяОперация КАК ХозяйственнаяОперация,
| &Организация КАК Организация,
| &Подразделение КАК Подразделение,
|
| ВЫБОР
| КОГДА ТаблицаТовары.ТипЗапасов = ЗНАЧЕНИЕ(Перечисление.ТипыЗапасов.КомиссионныйТовар) ТОГДА
| ТаблицаТовары.АналитикаКомитента
| ИНАЧЕ
| ВЫБОР КОГДА &УчитыватьСебестоимостьТоваровПоНазначениям
| ТОГДА ТаблицаТовары.АналитикаУчетаНоменклатуры
| ИНАЧЕ ТаблицаТовары.АналитикаУчетаНоменклатурыБезНазначения
| КОНЕЦ
| КОНЕЦ КАК АналитикаУчетаНоменклатуры,
| &Склад КАК Склад,
| ВЫБОР
| КОГДА ТаблицаТовары.ТипЗапасов = ЗНАЧЕНИЕ(Перечисление.ТипыЗапасов.КомиссионныйТовар) ТОГДА
| ТаблицаТовары.ВидЗапасовОтгрузки.ТипЗапасов
| ИНАЧЕ ТаблицаТовары.ТипЗапасов
| КОНЕЦ КАК ТипЗапасов,
| ВЫБОР
| КОГДА ТаблицаТовары.ТипЗапасов = ЗНАЧЕНИЕ(Перечисление.ТипыЗапасов.КомиссионныйТовар) ТОГДА
| НЕОПРЕДЕЛЕНО
| ИНАЧЕ ТаблицаТовары.ВидЗапасов
| КОНЕЦ КАК ВидЗапасов,
|
| ТаблицаТовары.СтатьяРасходов КАК СтатьяДоходовРасходов,
| ТаблицаТовары.АналитикаРасходов КАК АналитикаРасходов,
| НЕОПРЕДЕЛЕНО КАК АналитикаДоходов,
| НЕОПРЕДЕЛЕНО КАК АналитикаАктивовПассивов,
| - ТаблицаТовары.Количество КАК Количество,
| 0 КАК Стоимость,
| 0 КАК СтоимостьБезНДС,
| 0 КАК СтоимостьРегл,
|
| ВЫБОР
| КОГДА &ФормироватьВидыЗапасовПоГруппамФинансовогоУчета
| ТОГДА
| ВЫБОР КОГДА ТаблицаТовары.ТипЗапасов = ЗНАЧЕНИЕ(Перечисление.ТипыЗапасов.КомиссионныйТовар) ТОГДА
| НЕОПРЕДЕЛЕНО
| ИНАЧЕ
| ТаблицаТовары.ВидЗапасов
| КОНЕЦ
| ИНАЧЕ ТаблицаТовары.Номенклатура
| КОНЕЦ КАК ИсточникГФУНоменклатуры,
| &НаправлениеДеятельности КАК НаправлениеДеятельностиСтатьи,
| ТаблицаТовары.АналитикаУчетаНоменклатуры.Назначение.НаправлениеДеятельности КАК НаправлениеДеятельностиНоменклатуры
|
|ИЗ
| ВтВидыЗапасов КАК ТаблицаТовары
|
| ВНУТРЕННЕЕ СОЕДИНЕНИЕ Документ.ВнутреннееПотребление КАК Списание
| ПО ТаблицаТовары.ДокументРеализации = Списание.Ссылка
|ГДЕ
| &ХозяйственнаяОперация = ЗНАЧЕНИЕ(Перечисление.ХозяйственныеОперации.СторноСписанияНаРасходы)
|
|ОБЪЕДИНИТЬ ВСЕ
|
|ВЫБРАТЬ
| &Период КАК Период,
| &ХозяйственнаяОперация КАК ХозяйственнаяОперация,
| &Организация КАК Организация,
| &Подразделение КАК Подразделение,
|
| ВЫБОР КОГДА &УчитыватьСебестоимостьТоваровПоНазначениям
| ТОГДА ТаблицаТовары.АналитикаУчетаНоменклатуры
| ИНАЧЕ ТаблицаТовары.АналитикаУчетаНоменклатурыБезНазначения
| КОНЕЦ КАК АналитикаУчетаНоменклатуры,
| &Склад КАК Склад,
| ТаблицаТовары.ВидЗапасов.ТипЗапасов КАК ТипЗапасов,
| ТаблицаТовары.ВидЗапасов КАК ВидЗапасов,
|
| ТаблицаТовары.СтатьяДоходов КАК СтатьяДоходовРасходов,
| НЕОПРЕДЕЛЕНО КАК АналитикаРасходов,
| ТаблицаТовары.АналитикаДоходов КАК АналитикаДоходов,
| ТаблицаТовары.АналитикаАктивовПассивов КАК АналитикаАктивовПассивов,
|
| ТаблицаТовары.Количество КАК Количество,
| ТаблицаТовары.СуммаУпр КАК Стоимость,
| ТаблицаТовары.СуммаУпр КАК СтоимостьБезНДС,
| ТаблицаТовары.СуммаРегл КАК СтоимостьРегл,
|
| ВЫБОР КОГДА &ФормироватьВидыЗапасовПоГруппамФинансовогоУчета ТОГДА
| ТаблицаТовары.ВидЗапасов
| ИНАЧЕ
| ТаблицаТовары.Номенклатура
| КОНЕЦ КАК ИсточникГФУНоменклатуры,
| &НаправлениеДеятельности КАК НаправлениеДеятельностиСтатьи,
| ТаблицаТовары.Назначение.НаправлениеДеятельности КАК НаправлениеДеятельностиНоменклатуры
|
|ИЗ
| ВтТаблицаТовары КАК ТаблицаТовары
|ГДЕ
| &ХозяйственнаяОперация В (ЗНАЧЕНИЕ(Перечисление.ХозяйственныеОперации.ВозвратИзЭксплуатации))
|";
ТекстыЗапроса.Добавить(ТекстЗапроса, ИмяРегистра);
Возврат ТекстЗапроса;
КонецФункции
Функция ТекстЗапросаТаблицаПрочиеДоходы(Запрос, ТекстыЗапроса, Регистры)
ИмяРегистра = "ПрочиеДоходы";
Если НЕ ПроведениеДокументов.ТребуетсяТаблицаДляДвижений(ИмяРегистра, Регистры) Тогда
Возврат "";
КонецЕсли;
Если НЕ ПроведениеДокументов.ЕстьТаблицаЗапроса("ВтТаблицаТовары", ТекстыЗапроса) Тогда
ТекстЗапросаВтТаблицаТовары(Запрос, ТекстыЗапроса);
КонецЕсли;
ТекстЗапроса =
"ВЫБРАТЬ
| ЗНАЧЕНИЕ(ВидДвиженияНакопления.Приход) КАК ВидДвижения,
| &Период КАК Период,
|
| &Организация КАК Организация,
| &Подразделение КАК Подразделение,
| ТаблицаТовары.СтатьяДоходов,
| ТаблицаТовары.АналитикаДоходов,
|
| ТаблицаТовары.СуммаУпр КАК Сумма,
| (ВЫБОР
| КОГДА &УправленческийУчетОрганизаций
| ТОГДА ТаблицаТовары.СуммаУпр
| ИНАЧЕ 0 КОНЕЦ) КАК СуммаУпр,
| (ВЫБОР
| КОГДА &ИспользоватьУчетПрочихДоходовРасходовРегл
| ТОГДА ТаблицаТовары.СуммаРегл
| ИНАЧЕ 0 КОНЕЦ) КАК СуммаРегл,
|
| &ХозяйственнаяОперация КАК ХозяйственнаяОперация,
| &НаправлениеДеятельности КАК НаправлениеДеятельности,
|
| ТаблицаТовары.ИдентификаторСтроки КАК ИдентификаторФинЗаписи,
| &НастройкаХозяйственнойОперации КАК НастройкаХозяйственнойОперации
|
|ИЗ
| ВтТаблицаТовары КАК ТаблицаТовары
|ГДЕ
| ТаблицаТовары.СтатьяДоходов <> НЕОПРЕДЕЛЕНО
| И &ХозяйственнаяОперация = ЗНАЧЕНИЕ(Перечисление.ХозяйственныеОперации.ОприходованиеЗаСчетДоходов)
|
|ОБЪЕДИНИТЬ ВСЕ
|
|ВЫБРАТЬ
| ЗНАЧЕНИЕ(ВидДвиженияНакопления.Приход) КАК ВидДвижения,
| &Период КАК Период,
|
| &Организация КАК Организация,
| &Подразделение КАК Подразделение,
| ТаблицаТовары.СтатьяДоходов,
| ТаблицаТовары.АналитикаДоходов,
|
| ТаблицаТовары.СуммаУпр КАК Сумма,
| (ВЫБОР
| КОГДА &УправленческийУчетОрганизаций
| ТОГДА ТаблицаТовары.СуммаУпр
| ИНАЧЕ 0 КОНЕЦ) КАК СуммаУпр,
| (ВЫБОР
| КОГДА &ИспользоватьУчетПрочихДоходовРасходовРегл
| ТОГДА ТаблицаТовары.СуммаРегл
| ИНАЧЕ 0 КОНЕЦ) КАК СуммаРегл,
|
| &ХозяйственнаяОперация КАК ХозяйственнаяОперация,
| &НаправлениеДеятельности КАК НаправлениеДеятельности,
|
| ТаблицаТовары.ИдентификаторСтроки КАК ИдентификаторФинЗаписи,
| &НастройкаХозяйственнойОперации КАК НастройкаХозяйственнойОперации
|
|ИЗ
| ВтТаблицаТовары КАК ТаблицаТовары
|ГДЕ
| ТаблицаТовары.СтатьяДоходов <> НЕОПРЕДЕЛЕНО
| И &ХозяйственнаяОперация = ЗНАЧЕНИЕ(Перечисление.ХозяйственныеОперации.ВозвратИзЭксплуатации)
|
|";
ТекстыЗапроса.Добавить(ТекстЗапроса, ИмяРегистра);
Возврат ТекстЗапроса;
КонецФункции
Функция ТекстЗапросаТаблицаПрочиеРасходы(Запрос, ТекстыЗапроса, Регистры)
ИмяРегистра = "ПрочиеРасходы";
Если НЕ ПроведениеДокументов.ТребуетсяТаблицаДляДвижений(ИмяРегистра, Регистры) Тогда
Возврат "";
КонецЕсли;
Если Не ПроведениеДокументов.ЕстьТаблицаЗапроса("ВтПрочиеРасходы", ТекстыЗапроса) Тогда
ТекстЗапросаТаблицаВтПрочиеРасходы(Запрос, ТекстыЗапроса);
КонецЕсли;
ТекстЗапроса = РегистрыНакопления.ПрочиеРасходы.ТекстЗапросаТаблицаПрочиеРасходы();
ТекстыЗапроса.Добавить(ТекстЗапроса, ИмяРегистра);
Возврат ТекстЗапроса;
КонецФункции
Функция ТекстЗапросаТаблицаПрочиеАктивыПассивы(Запрос, ТекстыЗапроса, Регистры)
ИмяРегистра = "ПрочиеАктивыПассивы";
Если НЕ ПроведениеДокументов.ТребуетсяТаблицаДляДвижений(ИмяРегистра, Регистры) Тогда
Возврат "";
КонецЕсли;
Если НЕ ПроведениеДокументов.ЕстьТаблицаЗапроса("ВтТаблицаТовары", ТекстыЗапроса) Тогда
ТекстЗапросаВтТаблицаТовары(Запрос, ТекстыЗапроса);
КонецЕсли;
Если Не ПроведениеДокументов.ЕстьТаблицаЗапроса("ВтПрочиеРасходы", ТекстыЗапроса) Тогда
ТекстЗапросаТаблицаВтПрочиеРасходы(Запрос, ТекстыЗапроса);
КонецЕсли;
ТекстЗапроса =
"ВЫБРАТЬ
| &Период КАК Период,
| ЗНАЧЕНИЕ(ВидДвиженияНакопления.Расход) КАК ВидДвижения,
|
| &Организация КАК Организация,
| &Подразделение КАК Подразделение,
| &НаправлениеДеятельности КАК НаправлениеДеятельности,
| ТаблицаТовары.СтатьяАктивовПассивов КАК Статья,
| ВЫБОР
| КОГДА ТаблицаТовары.АналитикаАктивовПассивов = ЗНАЧЕНИЕ(Перечисление.СтатьиБезАналитики.ПустаяСсылка)
| ТОГДА НЕОПРЕДЕЛЕНО
| ИНАЧЕ ТаблицаТовары.АналитикаАктивовПассивов
| КОНЕЦ КАК Аналитика,
| ТаблицаТовары.СуммаУпр КАК Сумма
|ИЗ
| ВтТаблицаТовары КАК ТаблицаТовары
|ГДЕ
| ТаблицаТовары.СтатьяАктивовПассивов <> НЕОПРЕДЕЛЕНО
| И &ХозяйственнаяОперация В (ЗНАЧЕНИЕ(Перечисление.ХозяйственныеОперации.ОприходованиеЗаСчетДоходов),
| ЗНАЧЕНИЕ(Перечисление.ХозяйственныеОперации.ОприходованиеЗаСчетРасходов))
|";
ТекстЗапроса = ТекстЗапроса + "ОБЪЕДИНИТЬ ВСЕ"
+ РегистрыНакопления.ПрочиеАктивыПассивы.ТекстЗапросаТаблицаПрочиеАктивыПассивы(Ложь);
ТекстыЗапроса.Добавить(ТекстЗапроса, ИмяРегистра);
Возврат ТекстЗапроса;
КонецФункции
Функция ТекстЗапросаТаблицаДвиженияПоПрочимАктивамПассивам(Запрос, ТекстыЗапроса, Регистры)
ИмяРегистра = "ДвиженияПоПрочимАктивамПассивам";
Если НЕ ПроведениеДокументов.ТребуетсяТаблицаДляДвижений(ИмяРегистра, Регистры) Тогда
Возврат "";
КонецЕсли;
Если НЕ ПроведениеДокументов.ЕстьТаблицаЗапроса("ВтТаблицаТовары", ТекстыЗапроса) Тогда
ТекстЗапросаВтТаблицаТовары(Запрос, ТекстыЗапроса);
КонецЕсли;
ТекстЗапроса =
"ВЫБРАТЬ
| &Период КАК Период,
| &Организация КАК Организация,
| &Подразделение КАК Подразделение,
| &НаправлениеДеятельности КАК НаправлениеДеятельности,
| ТаблицаТовары.СтатьяАктивовПассивов КАК Статья,
| ТаблицаТовары.АналитикаАктивовПассивов КАК Аналитика,
| ЗНАЧЕНИЕ(Перечисление.ВидыДвиженийПрочихАктивовПассивов.Кредит) КАК ДебетКредит,
|
| ТаблицаТовары.СуммаРегл КАК СуммаРегл,
| ТаблицаТовары.СуммаУпр КАК СуммаУпр,
| ТаблицаТовары.СуммаУпр КАК СуммаСНДС,
| ТаблицаТовары.СуммаУпр КАК СуммаБезНДС,
|
| ТаблицаТовары.ИдентификаторСтроки КАК ИдентификаторФинЗаписи,
| &НастройкаХозяйственнойОперации КАК НастройкаХозяйственнойОперации
|ИЗ
| ВтТаблицаТовары КАК ТаблицаТовары
|ГДЕ
| ТаблицаТовары.СтатьяАктивовПассивов <> НЕОПРЕДЕЛЕНО
| И &ХозяйственнаяОперация В (ЗНАЧЕНИЕ(Перечисление.ХозяйственныеОперации.ОприходованиеЗаСчетДоходов),
| ЗНАЧЕНИЕ(Перечисление.ХозяйственныеОперации.ОприходованиеЗаСчетРасходов))
|";
ТекстыЗапроса.Добавить(ТекстЗапроса, ИмяРегистра);
Возврат ТекстЗапроса;
КонецФункции
Функция ТекстЗапросаТаблицаРеестрДокументов(Запрос, ТекстыЗапроса, Регистры)
ИмяРегистра = "РеестрДокументов";
Если НЕ ПроведениеДокументов.ТребуетсяТаблицаДляДвижений(ИмяРегистра, Регистры) Тогда
Возврат "";
КонецЕсли;
Если Не ПроведениеДокументов.ЕстьТаблицаЗапроса("ВтОснований", ТекстыЗапроса) Тогда
ТекстЗапросаВтОснований(Запрос, ТекстыЗапроса);
КонецЕсли;
ТекстЗапроса =
"ВЫБРАТЬ
| &Ссылка КАК Ссылка,
| &Период КАК ДатаДокументаИБ,
| &Номер КАК НомерДокументаИБ,
| &ИдентификаторМетаданных КАК ТипСсылки,
| &Организация КАК Организация,
| &ХозяйственнаяОперация КАК ХозяйственнаяОперация,
| НЕОПРЕДЕЛЕНО КАК Партнер,
| НЕОПРЕДЕЛЕНО КАК Контрагент,
| ВЫБОР
| КОГДА ДанныеДокумента.КоличествоНаправленийДеятельности = 1
| ТОГДА ДанныеДокумента.НаправлениеДеятельности
| ИНАЧЕ НЕОПРЕДЕЛЕНО
| КОНЕЦ КАК НаправлениеДеятельности,
| &Склад КАК МестоХранения,
| &Подразделение КАК Подразделение,
| &Ответственный КАК Ответственный,
| &Комментарий КАК Комментарий,
| &Валюта КАК Валюта,
| 0 КАК Сумма,
| НЕОПРЕДЕЛЕНО КАК Статус,
| &Проведен КАК Проведен,
| &ПометкаУдаления КАК ПометкаУдаления,
| ЛОЖЬ КАК ДополнительнаяЗапись,
| """" КАК Дополнительно,
| &Период КАК ДатаПервичногоДокумента,
| &НомерНаПечать КАК НомерПервичногоДокумента,
| &Исправление КАК СторноИсправление,
| &СторнируемыйДокумент КАК СторнируемыйДокумент,
| &ИсправляемыйДокумент КАК ИсправляемыйДокумент,
| &Период КАК ДатаОтраженияВУчете,
| НЕОПРЕДЕЛЕНО КАК Приоритет
|ИЗ
| ВтОснований КАК ДанныеДокумента";
ТекстыЗапроса.Добавить(ТекстЗапроса, ИмяРегистра);
Возврат ТекстЗапроса;
КонецФункции
Функция ТекстЗапросаВтОснований(Запрос, ТекстыЗапроса)
ИмяРегистра = "ВтОснований";
ТекстЗапроса =
"ВЫБРАТЬ
| &Ссылка КАК Ссылка,
| МАКСИМУМ(
| ЕСТЬNULL(ТаблицаТовары.Назначение.НаправлениеДеятельности,
| ЗНАЧЕНИЕ(Справочник.НаправленияДеятельности.ПустаяСсылка))) КАК НаправлениеДеятельности,
| КОЛИЧЕСТВО(
| РАЗЛИЧНЫЕ ЕСТЬNULL(ТаблицаТовары.Назначение.НаправлениеДеятельности,
| ЗНАЧЕНИЕ(Справочник.НаправленияДеятельности.ПустаяСсылка))) КАК КоличествоНаправленийДеятельности
|ПОМЕСТИТЬ ВтОснований
|ИЗ
| Документ.ПрочееОприходованиеТоваров КАК ДанныеДокумента
| ЛЕВОЕ СОЕДИНЕНИЕ Документ.ПрочееОприходованиеТоваров.Товары КАК ТаблицаТовары
| ПО ДанныеДокумента.Ссылка = ТаблицаТовары.Ссылка
|ГДЕ
| ДанныеДокумента.Ссылка = &Ссылка
|
|СГРУППИРОВАТЬ ПО
| &Ссылка";
ТекстыЗапроса.Добавить(ТекстЗапроса, ИмяРегистра);
Возврат ТекстЗапроса;
КонецФункции
Функция ТекстЗапросаТаблицаВтИсходныеПрочиеРасходы(Запрос, ТекстыЗапроса)
ИмяРегистра = "ВтИсходныеПрочиеРасходы";
Если НЕ ПроведениеДокументов.ЕстьТаблицаЗапроса("ВтТаблицаТовары", ТекстыЗапроса) Тогда
ТекстЗапросаВтТаблицаТовары(Запрос, ТекстыЗапроса);
КонецЕсли;
ТекстЗапроса = "
|ВЫБРАТЬ
| &Период КАК Период,
| ЗНАЧЕНИЕ(ВидДвиженияНакопления.Приход) КАК ВидДвижения,
| &Организация КАК Организация,
| &Подразделение КАК Подразделение,
| ТаблицаТовары.СтатьяРасходов КАК СтатьяРасходов,
| ТаблицаТовары.АналитикаРасходов КАК АналитикаРасходов,
| &НаправлениеДеятельности КАК НаправлениеДеятельности,
| НЕОПРЕДЕЛЕНО КАК ВидДеятельностиНДС,
|
| -ТаблицаТовары.СуммаУпр КАК СуммаСНДС,
| -ТаблицаТовары.СуммаУпр КАК СуммаБезНДС,
| -ТаблицаТовары.СуммаУпр КАК СуммаБезНДСУпр,
| -ТаблицаТовары.СуммаРегл КАК СуммаСНДСРегл,
| -ТаблицаТовары.СуммаРегл КАК СуммаБезНДСРегл,
| 0 КАК ПостояннаяРазница,
| 0 КАК ВременнаяРазница,
| &ХозяйственнаяОперация КАК ХозяйственнаяОперация,
| ТаблицаТовары.АналитикаУчетаНоменклатуры КАК АналитикаУчетаНоменклатуры,
|
| ТаблицаТовары.ИдентификаторСтроки КАК ИдентификаторФинЗаписи,
| ЗНАЧЕНИЕ(Справочник.НастройкиХозяйственныхОпераций.ПоступлениеИзПроизводства) КАК НастройкаХозяйственнойОперации
|
|ПОМЕСТИТЬ ВтИсходныеПрочиеРасходы
|ИЗ
| ВтТаблицаТовары КАК ТаблицаТовары
|ГДЕ
| &ХозяйственнаяОперация = ЗНАЧЕНИЕ(Перечисление.ХозяйственныеОперации.ПоступлениеИзПроизводства)
|
|ОБЪЕДИНИТЬ ВСЕ
|
|ВЫБРАТЬ РАЗЛИЧНЫЕ
| &Период КАК Период,
| ЗНАЧЕНИЕ(ВидДвиженияНакопления.Приход) КАК ВидДвижения,
| &Организация КАК Организация,
| &Подразделение КАК Подразделение,
| ТаблицаТовары.СтатьяРасходов КАК СтатьяРасходов,
| ТаблицаТовары.АналитикаРасходов КАК АналитикаРасходов,
| &НаправлениеДеятельности КАК НаправлениеДеятельности,
| НЕОПРЕДЕЛЕНО КАК ВидДеятельностиНДС,
|
| 0 КАК СуммаСНДС,
| 0 КАК СуммаБезНДС,
| 0 КАК СуммаБезНДСУпр,
| 0 КАК СуммаСНДСРегл,
| 0 КАК СуммаБезНДСРегл,
| 0 КАК ПостояннаяРазница,
| 0 КАК ВременнаяРазница,
| &ХозяйственнаяОперация КАК ХозяйственнаяОперация,
| НЕОПРЕДЕЛЕНО КАК АналитикаУчетаНоменклатуры,
|
| ТаблицаТовары.ИдентификаторСтроки КАК ИдентификаторФинЗаписи,
| ЗНАЧЕНИЕ(Справочник.НастройкиХозяйственныхОпераций.СторноСписанияНаРасходы) КАК НастройкаХозяйственнойОперации
|ИЗ
| ВтТаблицаТовары КАК ТаблицаТовары
|ГДЕ
| &ХозяйственнаяОперация = ЗНАЧЕНИЕ(Перечисление.ХозяйственныеОперации.СторноСписанияНаРасходы)
|
|ОБЪЕДИНИТЬ ВСЕ
|
|ВЫБРАТЬ
| &Период КАК Период,
| ЗНАЧЕНИЕ(ВидДвиженияНакопления.Приход) КАК ВидДвижения,
| &Организация КАК Организация,
| &Подразделение КАК Подразделение,
| ТаблицаТовары.СтатьяРасходов КАК СтатьяРасходов,
| ТаблицаТовары.АналитикаРасходов КАК АналитикаРасходов,
| &НаправлениеДеятельности КАК НаправлениеДеятельности,
| НЕОПРЕДЕЛЕНО КАК ВидДеятельностиНДС,
|
| -ТаблицаТовары.СуммаУпр КАК СуммаСНДС,
| -ТаблицаТовары.СуммаУпр КАК СуммаБезНДС,
| -ТаблицаТовары.СуммаУпр КАК СуммаБезНДСУпр,
| -ТаблицаТовары.СуммаРегл КАК СуммаСНДСРегл,
| -ТаблицаТовары.СуммаРегл КАК СуммаБезНДСРегл,
| ВЫБОР
| КОГДА НЕ ТаблицаТовары.СтатьяРасходов.ПринятиеКналоговомуУчету
| ТОГДА -ТаблицаТовары.СуммаРегл
| ИНАЧЕ 0
| КОНЕЦ КАК ПостояннаяРазница,
| 0 КАК ВременнаяРазница,
| &ХозяйственнаяОперация КАК ХозяйственнаяОперация,
| ТаблицаТовары.АналитикаУчетаНоменклатуры КАК АналитикаУчетаНоменклатуры,
|
| ТаблицаТовары.ИдентификаторСтроки КАК ИдентификаторФинЗаписи,
| ЗНАЧЕНИЕ(Справочник.НастройкиХозяйственныхОпераций.ОприходованиеТоваров) КАК НастройкаХозяйственнойОперации
|ИЗ
| ВтТаблицаТовары КАК ТаблицаТовары
|ГДЕ
| &ХозяйственнаяОперация = ЗНАЧЕНИЕ(Перечисление.ХозяйственныеОперации.ОприходованиеЗаСчетРасходов)
|
|";
ТекстыЗапроса.Добавить(ТекстЗапроса, ИмяРегистра);
Возврат ТекстЗапроса;
КонецФункции
Функция ТекстЗапросаТаблицаВтПрочиеРасходы(Запрос, ТекстыЗапроса) Экспорт
ИмяРегистра = "ВтПрочиеРасходы";
Если Не ПроведениеДокументов.ЕстьТаблицаЗапроса("ВтИсходныеПрочиеРасходы", ТекстыЗапроса) Тогда
ТекстЗапросаТаблицаВтИсходныеПрочиеРасходы(Запрос, ТекстыЗапроса);
КонецЕсли;
ТекстЗапроса = РегистрыНакопления.ПрочиеРасходы.ТекстЗапросаТаблицаВтПрочиеРасходы();
ТекстыЗапроса.Добавить(ТекстЗапроса, ИмяРегистра);
Возврат ТекстЗапроса;
КонецФункции
Функция ТекстЗапросаТаблицаВтАналитикиПрочихРасходов(Запрос, ТекстыЗапроса)
ИмяРегистра = "ВтАналитикиПрочихРасходов";
Если Не ПроведениеДокументов.ЕстьТаблицаЗапроса("ВтПрочиеРасходы", ТекстыЗапроса) Тогда
ТекстЗапросаТаблицаВтПрочиеРасходы(Запрос, ТекстыЗапроса);
КонецЕсли;
ТекстЗапроса = "
|ВЫБРАТЬ РАЗЛИЧНЫЕ
| Расходы.СтатьяРасходов,
| Расходы.АналитикаРасходов,
| Расходы.ОрганизацияПолучатель
|
|ПОМЕСТИТЬ ВтАналитикиПрочихРасходов
|ИЗ
| ВтПрочиеРасходы КАК Расходы
|ГДЕ
| Расходы.ОрганизацияПолучатель <> &Организация
|";
ТекстыЗапроса.Добавить(ТекстЗапроса, ИмяРегистра);
Возврат ТекстЗапроса;
КонецФункции
Функция ТекстЗапросаТаблицаВтИсходныеПартииПрочихРасходов(Запрос, ТекстыЗапроса)
ИмяРегистра = "ВтИсходныеПартииПрочихРасходов";
Если НЕ ПроведениеДокументов.ЕстьТаблицаЗапроса("ВтТаблицаТовары", ТекстыЗапроса) Тогда
ТекстЗапросаВтТаблицаТовары(Запрос, ТекстыЗапроса);
КонецЕсли;
ТекстЗапроса = "
|ВЫБРАТЬ
| &Период КАК Период,
| ЗНАЧЕНИЕ(ВидДвиженияНакопления.Приход) КАК ВидДвижения,
| &Организация КАК Организация,
| &Подразделение КАК Подразделение,
| &Ссылка КАК ДокументПоступленияРасходов,
| ТаблицаТовары.СтатьяРасходов КАК СтатьяРасходов,
| ТаблицаТовары.АналитикаРасходов КАК АналитикаРасходов,
| НЕОПРЕДЕЛЕНО КАК АналитикаАктивовПассивов,
| ТаблицаТовары.АналитикаУчетаПартий КАК АналитикаУчетаПартий,
| &НаправлениеДеятельности КАК НаправлениеДеятельности,
| ТаблицаТовары.АналитикаУчетаНоменклатуры КАК АналитикаУчетаНоменклатуры,
| ТаблицаТовары.ВидДеятельностиНДС КАК ВидДеятельностиНДС,
|
| -ТаблицаТовары.СуммаУпр КАК Стоимость,
| -ТаблицаТовары.СуммаУпр КАК СтоимостьБезНДС,
| 0 КАК НДСУпр,
| -ТаблицаТовары.СуммаРегл КАК СтоимостьРегл,
| 0 КАК ПостояннаяРазница,
| 0 КАК ВременнаяРазница,
| 0 КАК НДСРегл,
|
| &ХозяйственнаяОперация КАК ХозяйственнаяОперация,
| ТаблицаТовары.ИдентификаторСтроки КАК ИдентификаторФинЗаписи,
| ЗНАЧЕНИЕ(Справочник.НастройкиХозяйственныхОпераций.ПоступлениеИзПроизводства) КАК НастройкаХозяйственнойОперации
|
|ПОМЕСТИТЬ ВтИсходныеПартииПрочихРасходов
|ИЗ
| ВтТаблицаТовары КАК ТаблицаТовары
|ГДЕ
| &ХозяйственнаяОперация В (
| ЗНАЧЕНИЕ(Перечисление.ХозяйственныеОперации.ПоступлениеИзПроизводства),
| ЗНАЧЕНИЕ(Перечисление.ХозяйственныеОперации.ОприходованиеЗаСчетРасходов))
|";
ТекстыЗапроса.Добавить(ТекстЗапроса, ИмяРегистра);
Возврат ТекстЗапроса;
КонецФункции
Функция ТекстЗапросаТаблицаВтПартииПрочихРасходов(Запрос, ТекстыЗапроса) Экспорт
ИмяРегистра = "ВтПартииПрочихРасходов";
Если Не ПроведениеДокументов.ЕстьТаблицаЗапроса("ВтИсходныеПартииПрочихРасходов", ТекстыЗапроса) Тогда
ТекстЗапросаТаблицаВтИсходныеПартииПрочихРасходов(Запрос, ТекстыЗапроса);
КонецЕсли;
ТекстЗапроса = РегистрыНакопления.ПартииПрочихРасходов.ТекстЗапросаТаблицаВтПартииПрочихРасходов();
ТекстыЗапроса.Добавить(ТекстЗапроса, ИмяРегистра);
Возврат ТекстЗапроса;
КонецФункции
Функция ТекстЗапросаТаблицаПартииПрочихРасходов(Запрос, ТекстыЗапроса, Регистры)
ИмяРегистра = "ПартииПрочихРасходов";
Если НЕ ПроведениеДокументов.ТребуетсяТаблицаДляДвижений(ИмяРегистра, Регистры) Тогда
Возврат "";
КонецЕсли;
Если Не ПроведениеДокументов.ЕстьТаблицаЗапроса("ВтПартииПрочихРасходов", ТекстыЗапроса) Тогда
ТекстЗапросаТаблицаВтПартииПрочихРасходов(Запрос, ТекстыЗапроса);
КонецЕсли;
ТекстЗапроса = РегистрыНакопления.ПартииПрочихРасходов.ТекстЗапросаТаблицаПартииПрочихРасходов();
ТекстыЗапроса.Добавить(ТекстЗапроса, ИмяРегистра);
Возврат ТекстЗапроса;
КонецФункции
Процедура ОтразитьРаспределениеЗапасовДвижения(Запрос, ТекстыЗапроса, Регистры)
ТекстЗапросаТабЧасть =
"ВЫБРАТЬ
| ТабЧасть.Ссылка КАК Ссылка,
| ТабЧасть.Ссылка.Дата КАК Период,
| ТабЧасть.Номенклатура КАК Номенклатура,
| ТабЧасть.Характеристика КАК Характеристика,
| ТабЧасть.Ссылка.Склад КАК Склад,
| ТабЧасть.Назначение КАК Назначение,
| ТабЧасть.Количество КАК Количество,
| ЛОЖЬ КАК ПоГрафику,
| НЕОПРЕДЕЛЕНО КАК РаспоряжениеВГрафике
|ИЗ
| Документ.ПрочееОприходованиеТоваров.Товары КАК ТабЧасть
|ГДЕ
| НЕ ТабЧасть.Ссылка.Склад.ИспользоватьОрдернуюСхемуПриПоступлении
| ИЛИ ТабЧасть.Ссылка.Склад.ДатаНачалаОрдернойСхемыПриПоступлении > ТабЧасть.Ссылка.Дата
| ИЛИ ТабЧасть.Назначение.ДвиженияПоСкладскимРегистрам = ЛОЖЬ";
РаспределениеЗапасовДвижения.ПриходЗапаса(Запрос, ТекстыЗапроса, Регистры, ТекстЗапросаТабЧасть, Неопределено, Ложь);
ТекстЗапросаТабЧасть =
"ВЫБРАТЬ
| ТабЧасть.Ссылка КАК Ссылка,
| ТабЧасть.Ссылка.Дата КАК Период,
| ТабЧасть.Номенклатура КАК Номенклатура,
| ТабЧасть.Характеристика КАК Характеристика,
| ТабЧасть.Ссылка.Склад КАК Склад,
| ЗНАЧЕНИЕ(Справочник.Назначения.ПустаяСсылка) КАК Назначение,
| -ТабЧасть.Количество КАК Количество,
| ЛОЖЬ КАК ПоГрафику,
| НЕОПРЕДЕЛЕНО КАК РаспоряжениеВГрафике
|ИЗ
| Документ.ПрочееОприходованиеТоваров.Товары КАК ТабЧасть
|ГДЕ
| ТабЧасть.Назначение.ДвиженияПоСкладскимРегистрам = ЛОЖЬ
| И ТабЧасть.Ссылка.Склад.ИспользоватьОрдернуюСхемуПриПоступлении
| И ТабЧасть.Ссылка.Склад.ДатаНачалаОрдернойСхемыПриПоступлении <= ТабЧасть.Ссылка.Дата";
РаспределениеЗапасовДвижения.ПриходЗапаса(Запрос, ТекстыЗапроса, Регистры, ТекстЗапросаТабЧасть, Неопределено, Ложь);
ТекстЗапросаТабЧасть =
"ВЫБРАТЬ
| ТабЧасть.Ссылка КАК Ссылка,
| ТабЧасть.Ссылка.Дата КАК Период,
| ТабЧасть.Номенклатура КАК Номенклатура,
| ТабЧасть.Характеристика КАК Характеристика,
| ТабЧасть.Ссылка.Склад КАК Склад,
|
| ВЫБОР КОГДА ТабЧасть.Назначение.ДвиженияПоСкладскимРегистрам = ЛОЖЬ ТОГДА
| ЗНАЧЕНИЕ(Справочник.Назначения.ПустаяСсылка)
| ИНАЧЕ
| ТабЧасть.Назначение
| КОНЕЦ КАК Назначение,
|
| ТабЧасть.Количество КАК Количество,
|
| ВЫБОР
| КОГДА ТабЧасть.Ссылка.ИсправляемыйДокумент = ЗНАЧЕНИЕ(Документ.ПрочееОприходованиеТоваров.ПустаяСсылка)
| ТОГДА ТабЧасть.Ссылка
| ИНАЧЕ ТабЧасть.Ссылка.ИсправляемыйДокумент
| КОНЕЦ КАК Заказ,
|
| ВЫБОР КОГДА ТабЧасть.Ссылка.ДатаПоступления <> ДАТАВРЕМЯ(1, 1, 1) ТОГДА
| ТабЧасть.Ссылка.ДатаПоступления
| ИНАЧЕ
| ТабЧасть.Ссылка.Дата
| КОНЕЦ КАК ДатаПоступления,
|
| ИСТИНА КАК ДоступенДляРасхода,
| ЛОЖЬ КАК ПоГрафику,
| НЕОПРЕДЕЛЕНО КАК РаспоряжениеВГрафике,
| 0 КАК КоличествоВГрафике
|ИЗ
| Документ.ПрочееОприходованиеТоваров.Товары КАК ТабЧасть
|ГДЕ
| ТабЧасть.Ссылка.Склад.ИспользоватьОрдернуюСхемуПриПоступлении
| И ТабЧасть.Ссылка.Склад.ДатаНачалаОрдернойСхемыПриПоступлении <= ТабЧасть.Ссылка.Дата";
РаспределениеЗапасовДвижения.ЗапланироватьПриходЗапаса(Запрос, ТекстыЗапроса, Регистры, ТекстЗапросаТабЧасть, Ложь);
КонецПроцедуры
#Область ПартионныйУчет
Функция ОписаниеРегистровУчетаЗатратИСебестоимости(Документ) Экспорт
ОписаниеРегистров = Новый Массив;
ОписаниеРегистров.Добавить(Метаданные.РегистрыНакопления.СебестоимостьТоваров);
Возврат ОписаниеРегистров;
КонецФункции
Функция УстановитьДополнительныеПараметрыОперацийУчетаЗатратИСебестоимости(Документ, Запрос = Неопределено) Экспорт
ДополнительныеПараметры = Новый Массив;
ДополнительныеПараметры.Добавить("НалогообложениеОрганизации");
Если Запрос <> Неопределено Тогда
УстановитьПараметрЗапросаНалогообложениеОрганизации(Запрос);
КонецЕсли;
Возврат ДополнительныеПараметры;
КонецФункции
Функция СформироватьДополнительныеТаблицыОперацийУчетаЗатратИСебестоимости(Документ, Запрос = Неопределено, ТекстыЗапроса = Неопределено) Экспорт
ДополнительныеТаблицы = Новый Массив;
ДополнительныеТаблицы.Добавить("ВтТаблицаТовары");
ДополнительныеТаблицы.Добавить("ВтВидыЗапасов");
ДополнительныеТаблицы.Добавить("ВтАналитикиПрочихРасходов");
Если Запрос <> Неопределено Тогда
Если НЕ ПроведениеДокументов.ЕстьТаблицаЗапроса(ДополнительныеТаблицы[0], ТекстыЗапроса) Тогда
ТекстЗапросаВтТаблицаТовары(Запрос, ТекстыЗапроса);
КонецЕсли;
Если НЕ ПроведениеДокументов.ЕстьТаблицаЗапроса(ДополнительныеТаблицы[1], ТекстыЗапроса) Тогда
ТекстЗапросаВТВидыЗапасов(Запрос, ТекстыЗапроса);
КонецЕсли;
Если НЕ ПроведениеДокументов.ЕстьТаблицаЗапроса(ДополнительныеТаблицы[2], ТекстыЗапроса) Тогда
ТекстЗапросаТаблицаВтАналитикиПрочихРасходов(Запрос, ТекстыЗапроса);
КонецЕсли;
КонецЕсли;
Возврат ДополнительныеТаблицы;
КонецФункции
Функция ОписаниеОперацийУчетаСебестоимости(Документ) Экспорт
ОписаниеОпераций = Новый Массив;
#Область ВнутреннееПоступление_Товар
ТекстЗапроса =
"ВЫБРАТЬ
| ТаблицаДокумента.Дата КАК Период,
| ТаблицаДокумента.Ссылка КАК Ссылка,
| НЕОПРЕДЕЛЕНО КАК ДокументИсточник,
| НЕОПРЕДЕЛЕНО КАК ПериодДокументаИсточника,
| НЕОПРЕДЕЛЕНО КАК КорректируемыйДокумент,
|
| ТаблицаДокумента.Организация КАК Организация,
| ТаблицаВидыЗапасов.АналитикаУчетаНоменклатуры КАК АналитикаУчетаНоменклатуры,
| ТаблицаВидыЗапасов.ВидЗапасов КАК ВидЗапасов,
| ВЫБОР КОГДА НЕ &Исправление
| ТОГДА ТаблицаДокумента.Ссылка
| ИНАЧЕ ТаблицаДокумента.ИсправляемыйДокумент
| КОНЕЦ КАК Партия,
| &НалогообложениеОрганизации КАК ВидДеятельностиНДС,
| НЕОПРЕДЕЛЕНО КАК ВидДеятельностиНДСДокумента,
|
| ТаблицаВидыЗапасов.АналитикаУчетаПартий КАК АналитикаУчетаПартий,
| ВЫБОР КОГДА НЕ &ФИФОСкользящаяОценка
| ТОГДА ТаблицаВидыЗапасов.АналитикаУчетаПартий
| ИНАЧЕ НЕОПРЕДЕЛЕНО
| КОНЕЦ КАК КорАналитикаУчетаПартий,
| 0 КАК КодСтроки,
|
| НЕОПРЕДЕЛЕНО КАК КорАналитикаУчетаНоменклатуры,
| НЕОПРЕДЕЛЕНО КАК КорВидЗапасов,
| НЕОПРЕДЕЛЕНО КАК КорГруппаПродукции,
|
| НЕОПРЕДЕЛЕНО КАК Сделка,
| ТаблицаДокумента.Подразделение КАК Подразделение,
| НЕОПРЕДЕЛЕНО КАК Менеджер,
| НЕОПРЕДЕЛЕНО КАК ГруппаПродукции,
|
| ТаблицаВидыЗапасов.Количество КАК Количество,
| ТаблицаВидыЗапасов.ИдентификаторСтроки КАК ИдентификаторСтроки,
| ТаблицаВидыЗапасов.СуммаУпр КАК Стоимость,
| ТаблицаВидыЗапасов.СуммаУпр КАК СтоимостьБезНДС,
| ТаблицаВидыЗапасов.СуммаРегл КАК СтоимостьРегл,
| 0 КАК НДСРегл,
| ТаблицаВидыЗапасов.СуммаУпр КАК СтоимостьУпр,
| 0 КАК НДСУпр,
| 0 КАК СтоимостьЗабалансовая,
| 0 КАК СтоимостьЗабалансоваяРегл,
| 0 КАК ДопРасходы,
| 0 КАК ДопРасходыБезНДС,
| 0 КАК ДопРасходыРегл,
| 0 КАК ДопРасходыУпр,
| ВЫБОР КОГДА ТаблицаВидыЗапасов.СтатьяРасходов.ПринятиеКналоговомуУчету = ЛОЖЬ
| ТОГДА ТаблицаВидыЗапасов.СуммаРегл
| ИНАЧЕ 0
| КОНЕЦ КАК ПостояннаяРазница,
| 0
| КАК ВременнаяРазница,
| 0 КАК КорСтоимость,
|
| ЗНАЧЕНИЕ(Перечисление.ХозяйственныеОперации.ОприходованиеТоваров) КАК ХозяйственнаяОперация,
| ТаблицаВидыЗапасов.ИдентификаторСтроки КАК ИдентификаторФинЗаписи,
| &НастройкаХозяйственнойОперации КАК НастройкаХозяйственнойОперации
|
|ИЗ
| Документ.ПрочееОприходованиеТоваров КАК ТаблицаДокумента
| ВНУТРЕННЕЕ СОЕДИНЕНИЕ ВтТаблицаТовары КАК ТаблицаВидыЗапасов
| ПО ИСТИНА
|ГДЕ
| ТаблицаДокумента.Ссылка В (&Ссылка)
| И ТаблицаДокумента.ХозяйственнаяОперация В (
| ЗНАЧЕНИЕ(Перечисление.ХозяйственныеОперации.ВозвратИзЭксплуатации),
| ЗНАЧЕНИЕ(Перечисление.ХозяйственныеОперации.ОприходованиеЗаСчетДоходов),
| ЗНАЧЕНИЕ(Перечисление.ХозяйственныеОперации.ОприходованиеЗаСчетРасходов),
| ЗНАЧЕНИЕ(Перечисление.ХозяйственныеОперации.ОприходованиеПриВыбытииОС),
| ЗНАЧЕНИЕ(Перечисление.ХозяйственныеОперации.ПоступлениеИзпроизводства))";
РасчетСебестоимостиПроведениеДокументов.ДобавитьОписаниеОперацииДляОтраженияВУчетеСебестоимости(
ОписаниеОпераций,
Перечисления.ОперацииУчетаСебестоимости.ВнутреннееПоступление,
ТекстЗапроса);
#КонецОбласти
#Область СписаниеНаРасходыАктивы_Товар
ТекстЗапроса =
"ВЫБРАТЬ
| ТаблицаДокумента.Дата КАК Период,
| ТаблицаДокумента.Ссылка КАК Ссылка,
| ТаблицаВидыЗапасов.ДокументРеализации КАК ДокументИсточник,
| Списание.Дата КАК ПериодДокументаИсточника,
| НЕОПРЕДЕЛЕНО КАК КорректируемыйДокумент,
|
| ТаблицаДокумента.Организация КАК Организация,
| ТаблицаВидыЗапасов.АналитикаУчетаНоменклатуры КАК АналитикаУчетаНоменклатуры,
| ТаблицаВидыЗапасов.ВидЗапасов КАК ВидЗапасов,
| НЕОПРЕДЕЛЕНО КАК ВидДеятельностиНДС,
| НЕОПРЕДЕЛЕНО КАК ВидДеятельностиНДСДокумента,
|
| ЕСТЬNULL(ПрочиеРасходы.ОрганизацияПолучатель, НЕОПРЕДЕЛЕНО) КАК КорОрганизация,
| ВЫБОР
| КОГДА ТаблицаВидыЗапасов.ТипЗапасов = ЗНАЧЕНИЕ(Перечисление.ТипыЗапасов.КомиссионныйТовар)
| ТОГДА ТаблицаВидыЗапасов.АналитикаКомитента
| КОГДА ТаблицаВидыЗапасов.АналитикаУчетаНоменклатурыОтгрузки <> ЗНАЧЕНИЕ(Справочник.КлючиАналитикиУчетаНоменклатуры.ПустаяСсылка)
| ТОГДА ТаблицаВидыЗапасов.АналитикаУчетаНоменклатурыОтгрузки
| ИНАЧЕ ТаблицаВидыЗапасов.АналитикаУчетаНоменклатуры
| КОНЕЦ КАК КорАналитикаУчетаНоменклатуры,
| ТаблицаВидыЗапасов.ВидЗапасовОтгрузки КАК КорВидЗапасов,
| ТаблицаВидыЗапасов.СтатьяРасходов КАК СтатьяРасходовАктивов,
| ТаблицаВидыЗапасов.АналитикаРасходов КАК АналитикаРасходовАктивов,
| ТаблицаДокумента.НаправлениеДеятельности КАК КорНаправлениеДеятельности,
|
| НЕОПРЕДЕЛЕНО КАК Сделка,
| ТаблицаДокумента.Подразделение КАК Подразделение,
| НЕОПРЕДЕЛЕНО КАК Менеджер,
| НЕОПРЕДЕЛЕНО КАК ГруппаПродукции,
|
| ТаблицаВидыЗапасов.Количество КАК Количество,
|
| ЗНАЧЕНИЕ(Перечисление.ХозяйственныеОперации.СторноСписанияНаРасходы) КАК ХозяйственнаяОперация,
| ТаблицаВидыЗапасов.ИдентификаторСтроки КАК ИдентификаторСтроки,
| ТаблицаВидыЗапасов.ИдентификаторСтроки КАК ИдентификаторФинЗаписи,
| ЗНАЧЕНИЕ(Справочник.НастройкиХозяйственныхОпераций.СторноСписанияНаРасходы) КАК НастройкаХозяйственнойОперации
|
|ИЗ
| Документ.ПрочееОприходованиеТоваров КАК ТаблицаДокумента
| ВНУТРЕННЕЕ СОЕДИНЕНИЕ ВтВидыЗапасов КАК ТаблицаВидыЗапасов
| ПО ИСТИНА
| ВНУТРЕННЕЕ СОЕДИНЕНИЕ Документ.ВнутреннееПотребление КАК Списание
| ПО ТаблицаВидыЗапасов.ДокументРеализации = Списание.Ссылка
| ЛЕВОЕ СОЕДИНЕНИЕ ВтАналитикиПрочихРасходов КАК ПрочиеРасходы
| ПО ПрочиеРасходы.СтатьяРасходов = ТаблицаВидыЗапасов.СтатьяРасходов
| И ПрочиеРасходы.АналитикаРасходов = ТаблицаВидыЗапасов.АналитикаРасходов
|ГДЕ
| ТаблицаДокумента.Ссылка В (&Ссылка)
| И ТаблицаДокумента.ХозяйственнаяОперация = ЗНАЧЕНИЕ(Перечисление.ХозяйственныеОперации.СторноСписанияНаРасходы)
| И ТаблицаВидыЗапасов.ВидЗапасов.ТипЗапасов В (
| ЗНАЧЕНИЕ(Перечисление.ТипыЗапасов.Товар),
| ЗНАЧЕНИЕ(Перечисление.ТипыЗапасов.КомиссионныйТовар))";
РасчетСебестоимостиПроведениеДокументов.ДобавитьОписаниеОперацииДляОтраженияВУчетеСебестоимости(
ОписаниеОпераций,
Перечисления.ОперацииУчетаСебестоимости.СписаниеНаРасходыАктивы,
ТекстЗапроса);
#КонецОбласти
Возврат ОписаниеОпераций;
КонецФункции
#КонецОбласти
#КонецОбласти
#Область Печать
Процедура ДобавитьКомандыПечати(КомандыПечати) Экспорт
КомандаПечати = КомандыПечати.Добавить();
КомандаПечати.Идентификатор = "Накладная";
КомандаПечати.Представление = НСтр("ru = 'Оприходование товаров'");
КомандаПечати.ПроверкаПроведенияПередПечатью = Истина;
Обработки.ПечатьЗаданияНаОтборРазмещениеТоваров.ДобавитьКомандуПечати(КомандыПечати, "ЗаданиеНаРазмещение");
ПрочееОприходованиеТоваровЛокализация.ДобавитьКомандыПечати(КомандыПечати);
КонецПроцедуры
Процедура Печать(МассивОбъектов, ПараметрыПечати, КоллекцияПечатныхФорм, ОбъектыПечати, ПараметрыВывода) Экспорт
Если УправлениеПечатью.НужноПечататьМакет(КоллекцияПечатныхФорм, "Накладная") Тогда
УправлениеПечатью.ВывестиТабличныйДокументВКоллекцию(КоллекцияПечатныхФорм, "Накладная",
НСтр("ru = 'Оприходование товаров'"), СформироватьПечатнуюФормуНакладная(МассивОбъектов, ОбъектыПечати));
КонецЕсли;
ПрочееОприходованиеТоваровЛокализация.Печать(МассивОбъектов, ПараметрыПечати, КоллекцияПечатныхФорм, ОбъектыПечати, ПараметрыВывода);
КонецПроцедуры
Функция СформироватьПечатнуюФормуНакладная(МассивОбъектов, ОбъектыПечати)
УстановитьПривилегированныйРежим(Истина);
КолонкаКодов = ФормированиеПечатныхФорм.ДополнительнаяКолонкаПечатныхФормДокументов();
ДопКолонка = КолонкаКодов.ИмяКолонки;
ПредставлениеКолонкиКодов = КолонкаКодов.ПредставлениеКолонки;
Если ЗначениеЗаполнено(ДопКолонка) Тогда
ВыводитьДопКолонку = Истина;
Иначе
ВыводитьДопКолонку = Ложь;
ДопКолонка = "Код";
КонецЕсли;
Запрос = Новый Запрос;
ТекстЗапроса =
"ВЫБРАТЬ
| Документ.Ссылка КАК Ссылка,
| Документ.Номер КАК Номер,
| Документ.Дата КАК Дата,
| Документ.ИсправляемыйДокумент.Номер КАК НомерИсправляемогоДокумента,
| Документ.ИсправляемыйДокумент.Дата КАК ДатаИсправляемогоДокумента,
| Документ.Склад КАК Склад,
| Документ.Валюта КАК Валюта,
| Документ.Подразделение КАК Подразделение,
| Документ.Организация КАК Организация,
| ПРЕДСТАВЛЕНИЕ(Документ.Склад) КАК СкладПредставление,
| ПРЕДСТАВЛЕНИЕ(Документ.Подразделение) КАК ПодразделениеПредставление
|ИЗ
| Документ.ПрочееОприходованиеТоваров КАК Документ
|ГДЕ
| Документ.Ссылка В(&МассивОбъектов)
|
|УПОРЯДОЧИТЬ ПО
| Ссылка
|;
|
|
|ВЫБРАТЬ
| ТаблицаТовары.Номенклатура КАК Номенклатура,
| ТаблицаТовары.Номенклатура.Код КАК ДопКолонка,
| ТаблицаТовары.Номенклатура.НаименованиеПолное КАК НоменклатураПредставление,
| ТаблицаТовары.Характеристика.НаименованиеПолное КАК ХарактеристикаПредставление,
| &ТекстЗапросаНаименованиеЕдиницыИзмерения КАК ЕдиницаИзмеренияПредставление,
| ТаблицаТовары.КоличествоУпаковок КАК КоличествоУпаковок,
| ТаблицаТовары.НомерСтроки Как НомерСтроки,
| ТаблицаТовары.Цена КАК Цена,
| ТаблицаТовары.Сумма КАК Сумма,
| ТаблицаТовары.Ссылка КАК Ссылка,
| ТаблицаТовары.Количество КАК Количество,
| ВЫБОР
| КОГДА ТаблицаТовары.СтатусУказанияСерий = 14
| ТОГДА ТаблицаТовары.Серия
| ИНАЧЕ ЗНАЧЕНИЕ(Справочник.СерииНоменклатуры.ПустаяСсылка)
| КОНЕЦ КАК Серия,
| ТаблицаТовары.Серия.Представление
|ИЗ
| Документ.ПрочееОприходованиеТоваров.Товары КАК ТаблицаТовары
|ГДЕ
| НЕ ТаблицаТовары.СтатусУказанияСерий В (4, 6, 8, 10)
| И ТаблицаТовары.Ссылка В(&МассивОбъектов)
| И ТаблицаТовары.Номенклатура.ТипНоменклатуры В (ЗНАЧЕНИЕ(Перечисление.ТипыНоменклатуры.Товар), ЗНАЧЕНИЕ(Перечисление.ТипыНоменклатуры.МногооборотнаяТара))
|
|ОБЪЕДИНИТЬ ВСЕ
|
|ВЫБРАТЬ
| ТаблицаТовары.Номенклатура,
| ТаблицаТовары.Номенклатура.Код,
| ТаблицаТовары.Номенклатура.НаименованиеПолное,
| ТаблицаТовары.Характеристика.НаименованиеПолное,
| ПРЕДСТАВЛЕНИЕ(ТаблицаТовары.Номенклатура.ЕдиницаИзмерения),
| МАКСИМУМ(ТаблицаСерии.Количество),
| ТаблицаТовары.НомерСтроки Как НомерСтроки,
| ТаблицаТовары.Цена,
| ТаблицаТовары.Сумма,
| ТаблицаТовары.Ссылка,
| МАКСИМУМ(ТаблицаСерии.Количество),
| ТаблицаСерии.Серия,
| ТаблицаСерии.Серия.Представление
|ИЗ
| Документ.ПрочееОприходованиеТоваров.Товары КАК ТаблицаТовары
| ВНУТРЕННЕЕ СОЕДИНЕНИЕ Документ.ПрочееОприходованиеТоваров.Серии КАК ТаблицаСерии
| ПО ТаблицаТовары.Номенклатура = ТаблицаСерии.Номенклатура
| И ТаблицаТовары.Характеристика = ТаблицаСерии.Характеристика
| И ТаблицаТовары.Назначение = ТаблицаСерии.Назначение
| И ТаблицаТовары.Ссылка = ТаблицаСерии.Ссылка
|ГДЕ
| ТаблицаТовары.Ссылка В(&МассивОбъектов)
| И ТаблицаТовары.Номенклатура.ТипНоменклатуры В (ЗНАЧЕНИЕ(Перечисление.ТипыНоменклатуры.Товар), ЗНАЧЕНИЕ(Перечисление.ТипыНоменклатуры.МногооборотнаяТара))
|
|СГРУППИРОВАТЬ ПО
| ТаблицаТовары.Номенклатура,
| ТаблицаТовары.Номенклатура.Код,
| ТаблицаТовары.Номенклатура.НаименованиеПолное,
| ТаблицаТовары.Характеристика.НаименованиеПолное,
| ТаблицаТовары.НомерСтроки,
| ТаблицаТовары.Цена,
| ТаблицаТовары.Ссылка,
| ТаблицаСерии.НомерСтроки,
| ТаблицаТовары.Сумма,
| ТаблицаСерии.Серия,
| ТаблицаСерии.Серия.Представление,
| ПРЕДСТАВЛЕНИЕ(ТаблицаТовары.Номенклатура.ЕдиницаИзмерения)
|
|ИМЕЮЩИЕ
| МАКСИМУМ(ТаблицаТовары.СтатусУказанияСерий) В (4, 6, 8, 10)
|
|УПОРЯДОЧИТЬ ПО
| Ссылка,
| НомерСтроки
|ИТОГИ ПО
| Ссылка";
ТекстЗапроса = СтрЗаменить(ТекстЗапроса, "&ТекстЗапросаНаименованиеЕдиницыИзмерения",
Справочники.УпаковкиЕдиницыИзмерения.ТекстЗапросаЗначениеРеквизитаЕдиницыИзмерения(
"Наименование",
"ТаблицаТовары.Упаковка",
"ТаблицаТовары.Номенклатура"));
Если ВыводитьДопКолонку И ДопКолонка <> "Код" Тогда
ТекстЗапроса = СтрЗаменить(ТекстЗапроса, "Номенклатура.Код", "Номенклатура." + ДопКолонка);
КонецЕсли;
Запрос.Текст = ТекстЗапроса;
РеквизитыДокумента = Новый Структура("Номер, Дата, НомерИсправляемогоДокумента, ДатаИсправляемогоДокумента");
СинонимДокумента = НСтр("ru='Оприходование товаров'", ОбщегоНазначения.КодОсновногоЯзыка());
ТабДокумент = Новый ТабличныйДокумент;
ТабДокумент.ИмяПараметровПечати = "ПАРАМЕТРЫ_ПЕЧАТИ_ПрочееОприходованиеТоваров_ОприходованиеТоваров";
Макет = УправлениеПечатью.МакетПечатнойФормы("Документ.ПрочееОприходованиеТоваров.ПФ_MXL_ОприходованиеТоваров");
Если ПолучитьФункциональнуюОпцию("ИспользоватьПодразделения") Тогда
ОбластьЗаголовок = Макет.ПолучитьОбласть("Заголовок");
Иначе
ОбластьЗаголовок = Макет.ПолучитьОбласть("ЗаголовокБезПодразделения");
КонецЕсли;
ОбластьЗаголовок = Макет.ПолучитьОбласть("Заголовок");
Если ВыводитьДопКолонку Тогда
ОбластьШапкаТаблицы = Макет.ПолучитьОбласть("ШапкаТаблицы");
ОбластьСтрока = Макет.ПолучитьОбласть("Строка");
ОбластьПодвалТаблицы = Макет.ПолучитьОбласть("ПодвалТаблицы");
ОбластьШапкаТаблицы.Параметры.ДопКолонка = ПредставлениеКолонкиКодов;
Иначе
ОбластьШапкаТаблицы = Макет.ПолучитьОбласть("ШапкаТаблицыБезДопКолонки");
ОбластьСтрока = Макет.ПолучитьОбласть("СтрокаБезДопКолонки");
ОбластьПодвалТаблицы = Макет.ПолучитьОбласть("ПодвалТаблицыБезДопКолонки");
КонецЕсли;
ОбластьПодписи = Макет.ПолучитьОбласть("Подписи");
ОбластьСуммаПрописью = Макет.ПолучитьОбласть("СуммаПрописью");
Запрос.УстановитьПараметр("МассивОбъектов", МассивОбъектов);
РезультатыЗапроса = Запрос.ВыполнитьПакет();
ВыборкаДокументы = РезультатыЗапроса[0].Выбрать();
ВыборкаПоТабличнымЧастям = РезультатыЗапроса[1].Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам);
ПервыйДокумент = Истина;
Пока ВыборкаДокументы.Следующий() Цикл
Если Не ПервыйДокумент Тогда
ТабДокумент.ВывестиГоризонтальныйРазделительСтраниц();
КонецЕсли;
ПервыйДокумент = Ложь;
НомерСтрокиНачало = ТабДокумент.ВысотаТаблицы + 1;
ЗаполнитьЗначенияСвойств(РеквизитыДокумента, ВыборкаДокументы);
ОбластьЗаголовок.Параметры.Заполнить(ВыборкаДокументы);
ДанныеОбласти = Новый Структура;
НаименованияНаДату = ОрганизацииПовтИсп.НаименованияНаДату(ВыборкаДокументы.Организация, ВыборкаДокументы.Дата);
ДанныеОбласти.Вставить("ОрганизацияПредставление", НаименованияНаДату.НаименованиеСокращенное);
ДанныеОбласти.Вставить("ТекстЗаголовка",
ОбщегоНазначенияУТКлиентСервер.СформироватьЗаголовокДокумента(РеквизитыДокумента, СинонимДокумента));
ДанныеОбласти.Вставить("СкладПредставление", СкладыСервер.ПолучитьПредставлениеСклада(ВыборкаДокументы.СкладПредставление));
ОбластьЗаголовок.Параметры.Заполнить(ДанныеОбласти);
ШтрихкодированиеПечатныхФорм.ВывестиШтрихкодВТабличныйДокумент(ТабДокумент, Макет, ОбластьЗаголовок, ВыборкаДокументы.Ссылка);
ТабДокумент.Вывести(ОбластьЗаголовок);
ТабДокумент.Вывести(ОбластьШапкаТаблицы);
СуммаВсего = 0;
ВсегоНаименований = 0;
ВыборкаПоТабличнымЧастям.НайтиСледующий(Новый Структура("Ссылка",ВыборкаДокументы.Ссылка));
ВыборкаПоСтрокам = ВыборкаПоТабличнымЧастям.Выбрать();
Пока ВыборкаПоСтрокам.Следующий() Цикл
ДопПараметрыПредставлениеНоменклатуры = НоменклатураКлиентСервер.ДополнительныеПараметрыПредставлениеНоменклатурыДляПечати();
ДопПараметрыПредставлениеНоменклатуры.КодОсновногоЯзыка = ОбщегоНазначения.КодОсновногоЯзыка();
ОбластьСтрока.Параметры.ТоварПредставление = НоменклатураКлиентСервер.ПредставлениеНоменклатурыДляПечати(
ВыборкаПоСтрокам.НоменклатураПредставление,
ВыборкаПоСтрокам.ХарактеристикаПредставление,
,
ВыборкаПоСтрокам.СерияПредставление,
ДопПараметрыПредставлениеНоменклатуры);
ОбластьСтрока.Параметры.Заполнить(ВыборкаПоСтрокам);
СуммаВсего = СуммаВсего + ВыборкаПоСтрокам.Сумма;
ВсегоНаименований = ВсегоНаименований + 1;
ОбластьСтрока.Параметры.НомерСтроки = ВсегоНаименований;
ТабДокумент.Вывести(ОбластьСтрока);
КонецЦикла;
ТабДокумент.Вывести(ОбластьПодвалТаблицы);
ОбластьСуммаПрописью.Параметры.СуммаПрописью = РаботаСКурсамиВалютУТ.СформироватьСуммуПрописью(СуммаВсего,
ВыборкаДокументы.Валюта);
ТекстИтоговойСтроки = НСтр("ru = 'Всего наименований %ВсегоНаименований%, на сумму %СуммаВсего% %Валюта%'", ОбщегоНазначения.КодОсновногоЯзыка());
ТекстИтоговойСтроки = СтрЗаменить(ТекстИтоговойСтроки,"%ВсегоНаименований%", ВсегоНаименований);
ТекстИтоговойСтроки = СтрЗаменить(ТекстИтоговойСтроки,"%СуммаВсего%", Формат(СуммаВсего, "ЧДЦ=2"));
ТекстИтоговойСтроки = СтрЗаменить(ТекстИтоговойСтроки,"%Валюта%", Строка(ВыборкаДокументы.Валюта));
ОбластьСуммаПрописью.Параметры.ИтоговаяСтрока = ТекстИтоговойСтроки;
ТабДокумент.Вывести(ОбластьСуммаПрописью);
ТабДокумент.Вывести(ОбластьПодписи);
УправлениеПечатью.ЗадатьОбластьПечатиДокумента(ТабДокумент, НомерСтрокиНачало, ОбъектыПечати, ВыборкаДокументы.Ссылка);
КонецЦикла;
Если ПривилегированныйРежим() Тогда
УстановитьПривилегированныйРежим(Ложь);
КонецЕсли;
Возврат ТабДокумент;
КонецФункции
#КонецОбласти
#Область НаправленияДеятельности
Функция ПорядокОбработкиДокументаПриИзмененииНаправленияДеятельности(Форма) Экспорт
ПорядокОбработкиДокумента = НаправленияДеятельностиСервер.ПорядокОбработкиДокументаПриИзмененииНаправленияДеятельности();
Если Форма.Объект.ХозяйственнаяОперация = Перечисления.ХозяйственныеОперации.ПоступлениеИзПроизводства Тогда
ПорядокОбработкиДокумента.ИменаТабличныхЧастейДляОчисткиНекорректныхНазначений = "Товары";
Иначе
ПорядокОбработкиДокумента.ИменаТабличныхЧастейДляЗаполненияНазначения = "Товары";
КонецЕсли;
ТаблицаУсловий = НаправленияДеятельностиСервер.УсловияОбработкиНазначенийВСтроках("ТипНоменклатуры");
ПорядокОбработкиДокумента.УсловияОбработкиСтрок.Вставить("Товары", ТаблицаУсловий);
Возврат ПорядокОбработкиДокумента;
КонецФункции
#КонецОбласти
#Область ОбновлениеИнформационнойБазы
Функция АдаптированныйТекстЗапросаДвиженийПоРегистру(ИмяРегистра) Экспорт
Запрос = Новый Запрос;
ТекстыЗапроса = Новый СписокЗначений;
ПолноеИмяДокумента = "Документ.ПрочееОприходованиеТоваров";
СинонимТаблицыДокумента = "";
ВЗапросеЕстьИсточник = Истина;
ТекстыЗапросаВременныхТаблиц = Новый Соответствие();
ПереопределениеРасчетаПараметров = Новый Структура;
ПереопределениеРасчетаПараметров.Вставить("НомерНаПечать", """""");
ПереопределениеРасчетаПараметров.Вставить("ОрдернаяСхемаПриПоступлении",
" ВЫБОР
| КОГДА ТаблицаТовары.Ссылка.Склад.ИспользоватьОрдернуюСхемуПриПоступлении
| И ТаблицаТовары.Ссылка.Дата >= ТаблицаТовары.Ссылка.Склад.ДатаНачалаОрдернойСхемыПриПоступлении
| ТОГДА ИСТИНА
| ИНАЧЕ ЛОЖЬ
| КОНЕЦ");
ЗначенияПараметров = Новый Структура;
ЗначенияПараметров.Вставить("ИдентификаторМетаданных",
ОбщегоНазначения.ИдентификаторОбъектаМетаданных(ПолноеИмяДокумента));
Если ИмяРегистра = "РеестрДокументов" Тогда
ТекстЗапроса = ТекстЗапросаТаблицаРеестрДокументов(Запрос, ТекстыЗапроса, ИмяРегистра);
ТекстыЗапросаВременныхТаблиц.Вставить("ВтОснований", ТекстЗапросаВтОснований(Запрос, ТекстыЗапроса));
СинонимТаблицыДокумента = "ДанныеДокумента";
Иначе
ТекстИсключения = НСтр("ru = 'В документе %ПолноеИмяДокумента% не реализована адаптация текста запроса формирования движений по регистру %ИмяРегистра%.'");
ТекстИсключения = СтрЗаменить(ТекстИсключения, "%ПолноеИмяДокумента%", ПолноеИмяДокумента);
ТекстИсключения = СтрЗаменить(ТекстИсключения, "%ИмяРегистра%", ИмяРегистра);
ВызватьИсключение ТекстИсключения;
КонецЕсли;
Если ИмяРегистра = "РеестрДокументов" Тогда
ТекстЗапроса = ОбновлениеИнформационнойБазыУТ.АдаптироватьЗапросПроведенияПоНезависимомуРегистру(
ТекстЗапроса,
ПолноеИмяДокумента,
СинонимТаблицыДокумента,
ВЗапросеЕстьИсточник,
ПереопределениеРасчетаПараметров,
ТекстыЗапросаВременныхТаблиц);
Иначе
ТекстЗапроса = ОбновлениеИнформационнойБазыУТ.АдаптироватьЗапросМеханизмаПроведения(
ТекстЗапроса,
ПолноеИмяДокумента,
СинонимТаблицыДокумента,
ПереопределениеРасчетаПараметров,
ТекстыЗапросаВременныхТаблиц);
КонецЕсли;
Результат = ОбновлениеИнформационнойБазыУТ.РезультатАдаптацииЗапроса();
Результат.ЗначенияПараметров = ЗначенияПараметров;
Результат.ТекстЗапроса = ТекстЗапроса;
Возврат Результат;
КонецФункции
#КонецОбласти
#КонецОбласти
#КонецЕсли