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