#Если Сервер Или ТолстыйКлиентОбычноеПриложение Или ВнешнееСоединение Тогда
#Область ПрограммныйИнтерфейс
#Область Проведение
Процедура ЗарегистрироватьУчетныеМеханизмы(МеханизмыДокумента) Экспорт
МеханизмыДокумента.Добавить("Взаиморасчеты");
МеханизмыДокумента.Добавить("Закупки");
МеханизмыДокумента.Добавить("Обеспечение");
МеханизмыДокумента.Добавить("ОборотныеРегистрыУправленческогоУчета");
МеханизмыДокумента.Добавить("ОперативныйУчетТоваровОрганизаций");
МеханизмыДокумента.Добавить("ПередачаНаОтветхранение");
МеханизмыДокумента.Добавить("ПодакцизныеТовары");
МеханизмыДокумента.Добавить("ПриемНаОтветхранение");
МеханизмыДокумента.Добавить("Продажи");
МеханизмыДокумента.Добавить("РеестрДокументов");
МеханизмыДокумента.Добавить("СебестоимостьИПартионныйУчет");
МеханизмыДокумента.Добавить("СерийныйУчет");
МеханизмыДокумента.Добавить("СуммыДокументовВВалютахУчета");
МеханизмыДокумента.Добавить("АдресныйСклад");
МеханизмыДокумента.Добавить("УчетДоходовРасходов");
МеханизмыДокумента.Добавить("УчетНДС");
МеханизмыДокумента.Добавить("УчетПрочихАктивовПассивов");
МеханизмыДокумента.Добавить("УчетРабот");
МеханизмыДокумента.Добавить("ЦеныИСкидки");
МеханизмыДокумента.Добавить("ИсправлениеДокументов");
РеализацияТоваровУслугЛокализация.ЗарегистрироватьУчетныеМеханизмы(МеханизмыДокумента);
КонецПроцедуры
Функция ДанныеДокументаДляПроведения(Документ, Регистры, ДопПараметры = Неопределено) Экспорт
Если ДопПараметры = Неопределено Тогда
ДопПараметры = ПроведениеДокументов.ДопПараметрыИнициализироватьДанныеДокументаДляПроведения();
КонецЕсли;
Если ТипЗнч(Документ) = Тип("ДокументОбъект.РеализацияТоваровУслуг") Тогда
ДокументОбъект = Документ;
ДокументСсылка = Документ.Ссылка;
Иначе
ДокументОбъект = Документ.ПолучитьОбъект();
ДокументСсылка = Документ;
КонецЕсли;
Запрос = Новый Запрос;
ТекстыЗапроса = Новый СписокЗначений;
ПолучитьДанныеДокумента(Запрос, ДокументСсылка);
Если Не ДопПараметры.ПолучитьТекстыЗапроса Тогда
ЗаполнитьПараметрыИнициализации(Запрос, ДокументСсылка);
СформироватьСуммыДокументаВВалютахУчета(Запрос, ТекстыЗапроса, Регистры, ДокументОбъект);
ТекстЗапросаТаблицаРаспоряженияНаОтгрузку(Запрос, ТекстыЗапроса, Регистры, ДокументОбъект);
ТекстЗапросаТаблицаДвиженияСерийТоваров(Запрос, ТекстыЗапроса, Регистры, ДокументОбъект);
ТекстЗапросаТаблицаПереданнаяВозвратнаяТара(Запрос, ТекстыЗапроса, Регистры, ДокументОбъект);
ТекстЗапросаТаблицаТоварыОрганизаций(Запрос, ТекстыЗапроса, Регистры, ДокументОбъект);
ТекстЗапросаТаблицаТоварыПереданныеНаКомиссию(Запрос, ТекстыЗапроса, Регистры, ДокументОбъект);
ТекстЗапросаТаблицаДатыПередачиТоваровНаКомиссию(Запрос, ТекстыЗапроса, Регистры, ДокументОбъект);
ТекстЗапросаТаблицаТоварыОрганизацийКПередаче(Запрос, ТекстыЗапроса, Регистры, ДокументОбъект);
ТекстЗапросаТаблицаТоварыКОформлениюОтчетовКомитенту(Запрос, ТекстыЗапроса, Регистры, ДокументОбъект);
ТекстЗапросаТаблицаВыручкаИСебестоимостьПродаж(Запрос, ТекстыЗапроса, Регистры, ДокументОбъект);
ТекстЗапросаТаблицаМатериалыИРаботыВПроизводстве(Запрос, ТекстыЗапроса, Регистры, ДокументОбъект);
ТекстЗапросаТаблицаДвиженияНоменклатураНоменклатура(Запрос, ТекстыЗапроса, Регистры, ДокументОбъект);
ТекстЗапросаТаблицаДвиженияКонтрагентКонтрагент(Запрос, ТекстыЗапроса, Регистры);
ТекстЗапросаТаблицаДвиженияПоПрочимАктивамПассивам(Запрос, ТекстыЗапроса, Регистры, ДокументОбъект);
ТекстЗапросаТаблицаУслугиКОформлениюОтчетовПринципалу(Запрос, ТекстыЗапроса, Регистры, ДокументОбъект);
ТекстЗапросаТаблицаРеестрДокументов(Запрос, ТекстыЗапроса, Регистры, ДокументОбъект);
ТекстЗапросаБонусныеБаллы(Запрос, ТекстыЗапроса, Регистры, ДокументОбъект);
РасчетСебестоимостиПроведениеДокументов.ОтразитьВМеханизмеУчетаЗатратИСебестоимости(ДокументСсылка, Запрос, ТекстыЗапроса, Регистры, ДокументОбъект);
ОтразитьВУчетеНДС(Запрос, ТекстыЗапроса, Регистры, ДокументОбъект);
РеализацияТоваровУслугЛокализация.ДополнитьТекстыЗапросовПроведения(Запрос, ТекстыЗапроса, Регистры, ДокументОбъект);
КонецЕсли;
ОтразитьРаспределениеЗапасовДвижения(Запрос, ТекстыЗапроса, Регистры);
ДобавитьТекстыОтраженияВзаиморасчетов(Запрос, ТекстыЗапроса, Регистры, ДокументОбъект);
ОтразитьРезерв(Запрос, ТекстыЗапроса, Регистры, ДокументОбъект);
ЗапланироватьОтгрузкуТоваров(Запрос, ТекстыЗапроса, Регистры, ДокументОбъект);
ОформитьОтгрузкуТоваров(Запрос, ТекстыЗапроса, Регистры, ДокументОбъект);
Возврат ПроведениеДокументов.ИнициализироватьДанныеДокументаДляПроведения(Запрос, ТекстыЗапроса, ДопПараметры);
КонецФункции
#КонецОбласти
Процедура ПриОпределенииНастроекВерсионированияОбъектов(Настройки) Экспорт
КонецПроцедуры
Функция ТекстЗапросаРеквизитыДоставки() Экспорт
ТекстЗапроса =
"ВЫБРАТЬ
| Шапка.Номер КАК Номер,
| Шапка.Проведен КАК Проведен,
| Шапка.Ссылка КАК Ссылка,
| Шапка.Дата КАК Дата,
| Шапка.Партнер КАК ПолучательОтправитель,
| Шапка.ПеревозчикПартнер КАК Перевозчик,
| ВЫБОР КОГДА (Шапка.СпособДоставки = ЗНАЧЕНИЕ(Перечисление.СпособыДоставки.СиламиПеревозчика)
| И НЕ &ИспользоватьЗаданияНаПеревозкуДляУчетаДоставкиПеревозчиками)
| ИЛИ Шапка.СпособДоставки = ЗНАЧЕНИЕ(Перечисление.СпособыДоставки.ДоКлиентаКурьером)
| ТОГДА ЗНАЧЕНИЕ(Перечисление.СпособыДоставки.Самовывоз)
| ИНАЧЕ Шапка.СпособДоставки
| КОНЕЦ КАК СпособДоставки,
| Шапка.ЗонаДоставки КАК Зона,
| ВЫБОР
| КОГДА Шапка.СпособДоставки = ЗНАЧЕНИЕ(Перечисление.СпособыДоставки.СиламиПеревозчикаПоАдресу)
| ТОГДА Шапка.АдресДоставкиПеревозчика
| ИНАЧЕ Шапка.АдресДоставки
| КОНЕЦ КАК Адрес,
| ВЫБОР
| КОГДА Шапка.СпособДоставки = ЗНАЧЕНИЕ(Перечисление.СпособыДоставки.СиламиПеревозчикаПоАдресу)
| ТОГДА Шапка.АдресДоставкиПеревозчикаЗначенияПолей
| ИНАЧЕ Шапка.АдресДоставкиЗначенияПолей
| КОНЕЦ КАК АдресЗначенияПолей,
| Шапка.ВремяДоставкиС КАК ВремяС,
| Шапка.ВремяДоставкиПо КАК ВремяПо,
| Шапка.ДополнительнаяИнформацияПоДоставке КАК ДополнительнаяИнформация,
| ВложенныйЗапросПоТоварам.Склад КАК Склад,
| ИСТИНА КАК ДоставитьПолностью,
| Шапка.ОсобыеУсловияПеревозки КАК ОсобыеУсловияПеревозки,
| Шапка.ОсобыеУсловияПеревозкиОписание КАК ОсобыеУсловияПеревозкиОписание,
| Шапка.Соглашение.РазбиватьРасходныеОрдераПоРаспоряжениям КАК РазбиватьРасходныеОрдераПоРаспоряжениям
|ИЗ
| (ВЫБРАТЬ РАЗЛИЧНЫЕ
| Товары.Ссылка КАК Ссылка,
| Товары.Склад КАК Склад
| ИЗ
| Документ.РеализацияТоваровУслуг.Товары КАК Товары
| ГДЕ
| Товары.Ссылка В(&Ссылки)
| И Товары.Номенклатура.ТипНоменклатуры В (ЗНАЧЕНИЕ(Перечисление.ТипыНоменклатуры.Товар), ЗНАЧЕНИЕ(Перечисление.ТипыНоменклатуры.МногооборотнаяТара))) КАК ВложенныйЗапросПоТоварам
| ВНУТРЕННЕЕ СОЕДИНЕНИЕ Документ.РеализацияТоваровУслуг КАК Шапка
| ПО (Шапка.Ссылка = ВложенныйЗапросПоТоварам.Ссылка)
|ГДЕ
| (НЕ Шапка.РеализацияПоЗаказам
| ИЛИ НЕ &ИспользоватьРасширенныеВозможностиЗаказаКлиента
| ИЛИ Шапка.СпособДоставки = ЗНАЧЕНИЕ(Перечисление.СпособыДоставки.СиламиПеревозчика)
| И НЕ &ИспользоватьЗаданияНаПеревозкуДляУчетаДоставкиПеревозчиками)";
Возврат ТекстЗапроса;
КонецФункции
Функция ДопустимыеОперацииДокументовОснований(ХозяйственнаяОперацияРеализации) Экспорт
СписокОпераций = Новый СписокЗначений;
Если ХозяйственнаяОперацияРеализации = Перечисления.ХозяйственныеОперации.РеализацияКлиенту Или
ХозяйственнаяОперацияРеализации = Перечисления.ХозяйственныеОперации.РеализацияКлиентуРеглУчет Тогда
СписокОпераций.Добавить(Перечисления.ХозяйственныеОперации.РеализацияКлиенту);
СписокОпераций.Добавить(Перечисления.ХозяйственныеОперации.ВозвратОтРозничногоПокупателя);
СписокОпераций.Добавить(Перечисления.ХозяйственныеОперации.ВозвратТоваровОтКлиента);
Иначе
СписокОпераций.Добавить(Перечисления.ХозяйственныеОперации.ПередачаНаКомиссию);
СписокОпераций.Добавить(Перечисления.ХозяйственныеОперации.ВозвратОтКомиссионера);
КонецЕсли;
Возврат СписокОпераций;
КонецФункции
Процедура ЗаполнитьИменаРеквизитовПоХозяйственнойОперации(ХозяйственнаяОперация, МассивВсехРеквизитов, МассивРеквизитовОперации) Экспорт
МассивВсехРеквизитов = Новый Массив;
МассивВсехРеквизитов.Добавить("НалогообложениеНДС");
МассивВсехРеквизитов.Добавить("ФормаОплаты");
МассивВсехРеквизитов.Добавить("Касса");
МассивВсехРеквизитов.Добавить("Статус");
МассивВсехРеквизитов.Добавить("ГруппаФинансовогоУчета");
МассивВсехРеквизитов.Добавить("ВернутьМногооборотнуюТару");
МассивВсехРеквизитов.Добавить("ДатаВозвратаМногооборотнойТары");
МассивВсехРеквизитов.Добавить("ТребуетсяЗалогЗаТару");
МассивВсехРеквизитов.Добавить("ДатаПереходаПраваСобственности");
МассивВсехРеквизитов.Добавить("КлиентКонтрагент");
МассивВсехРеквизитов.Добавить("КлиентПартнер");
МассивВсехРеквизитов.Добавить("КлиентДоговор");
МассивВсехРеквизитов.Добавить("Склад");
МассивВсехРеквизитов.Добавить("Товары.ПроцентРучнойСкидки");
МассивВсехРеквизитов.Добавить("Товары.СуммаРучнойСкидки");
МассивВсехРеквизитов.Добавить("Товары.ПроцентАвтоматическойСкидки");
МассивВсехРеквизитов.Добавить("Товары.СуммаАвтоматическойСкидки");
МассивВсехРеквизитов.Добавить("Товары.Склад");
МассивВсехРеквизитов.Добавить("НомерКомиссионера");
МассивВсехРеквизитов.Добавить("ДатаКомиссионера");
МассивВсехРеквизитов.Добавить("НаименованиеДокументаКомиссионера");
МассивРеквизитовОперации = Новый Массив;
Если ХозяйственнаяОперация = Перечисления.ХозяйственныеОперации.РеализацияКлиенту
Или Не ЗначениеЗаполнено(ХозяйственнаяОперация) Тогда
МассивРеквизитовОперации.Добавить("НалогообложениеНДС");
МассивРеквизитовОперации.Добавить("ФормаОплаты");
МассивРеквизитовОперации.Добавить("Касса");
МассивРеквизитовОперации.Добавить("Статус");
МассивРеквизитовОперации.Добавить("ГруппаФинансовогоУчета");
МассивРеквизитовОперации.Добавить("ВернутьМногооборотнуюТару");
МассивРеквизитовОперации.Добавить("ДатаВозвратаМногооборотнойТары");
МассивРеквизитовОперации.Добавить("ТребуетсяЗалогЗаТару");
МассивРеквизитовОперации.Добавить("Склад");
МассивРеквизитовОперации.Добавить("Товары.ПроцентРучнойСкидки");
МассивРеквизитовОперации.Добавить("Товары.СуммаРучнойСкидки");
МассивРеквизитовОперации.Добавить("Товары.ПроцентАвтоматическойСкидки");
МассивРеквизитовОперации.Добавить("Товары.СуммаАвтоматическойСкидки");
МассивРеквизитовОперации.Добавить("Товары.Склад");
ИначеЕсли ХозяйственнаяОперация = Перечисления.ХозяйственныеОперации.РеализацияКлиентуРеглУчет Тогда
МассивРеквизитовОперации.Добавить("НалогообложениеНДС");
МассивРеквизитовОперации.Добавить("ФормаОплаты");
МассивРеквизитовОперации.Добавить("Касса");
МассивРеквизитовОперации.Добавить("ГруппаФинансовогоУчета");
МассивРеквизитовОперации.Добавить("ТребуетсяЗалогЗаТару");
МассивРеквизитовОперации.Добавить("ВернутьМногооборотнуюТару");
МассивРеквизитовОперации.Добавить("ДатаВозвратаМногооборотнойТары");
МассивРеквизитовОперации.Добавить("Склад");
МассивРеквизитовОперации.Добавить("Товары.ПроцентРучнойСкидки");
МассивРеквизитовОперации.Добавить("Товары.СуммаРучнойСкидки");
МассивРеквизитовОперации.Добавить("Товары.ПроцентАвтоматическойСкидки");
МассивРеквизитовОперации.Добавить("Товары.СуммаАвтоматическойСкидки");
МассивРеквизитовОперации.Добавить("Товары.Склад");
ИначеЕсли ХозяйственнаяОперация = Перечисления.ХозяйственныеОперации.ПередачаНаКомиссию Тогда
МассивРеквизитовОперации.Добавить("Статус");
МассивРеквизитовОперации.Добавить("ВернутьМногооборотнуюТару");
МассивРеквизитовОперации.Добавить("ДатаВозвратаМногооборотнойТары");
МассивРеквизитовОперации.Добавить("Склад");
МассивРеквизитовОперации.Добавить("Товары.Склад");
ИначеЕсли ХозяйственнаяОперация = Перечисления.ХозяйственныеОперации.РеализацияБезПереходаПраваСобственности Тогда
МассивРеквизитовОперации.Добавить("НалогообложениеНДС");
МассивРеквизитовОперации.Добавить("ФормаОплаты");
МассивРеквизитовОперации.Добавить("Касса");
МассивРеквизитовОперации.Добавить("Статус");
МассивРеквизитовОперации.Добавить("ГруппаФинансовогоУчета");
МассивРеквизитовОперации.Добавить("ВернутьМногооборотнуюТару");
МассивРеквизитовОперации.Добавить("ДатаВозвратаМногооборотнойТары");
МассивРеквизитовОперации.Добавить("ТребуетсяЗалогЗаТару");
МассивРеквизитовОперации.Добавить("ДатаПереходаПраваСобственности");
МассивРеквизитовОперации.Добавить("Склад");
МассивРеквизитовОперации.Добавить("Товары.ПроцентРучнойСкидки");
МассивРеквизитовОперации.Добавить("Товары.СуммаРучнойСкидки");
МассивРеквизитовОперации.Добавить("Товары.ПроцентАвтоматическойСкидки");
МассивРеквизитовОперации.Добавить("Товары.СуммаАвтоматическойСкидки");
МассивРеквизитовОперации.Добавить("Товары.Склад");
ИначеЕсли ХозяйственнаяОперация = Перечисления.ХозяйственныеОперации.РеализацияЧерезКомиссионера Тогда
МассивРеквизитовОперации.Добавить("НалогообложениеНДС");
МассивРеквизитовОперации.Добавить("Статус");
МассивРеквизитовОперации.Добавить("ВернутьМногооборотнуюТару");
МассивРеквизитовОперации.Добавить("ДатаВозвратаМногооборотнойТары");
МассивРеквизитовОперации.Добавить("ТребуетсяЗалогЗаТару");
МассивРеквизитовОперации.Добавить("ГруппаФинансовогоУчета");
МассивРеквизитовОперации.Добавить("КлиентКонтрагент");
МассивРеквизитовОперации.Добавить("КлиентПартнер");
МассивРеквизитовОперации.Добавить("КлиентДоговор");
МассивРеквизитовОперации.Добавить("Склад");
МассивРеквизитовОперации.Добавить("Товары.Склад");
МассивРеквизитовОперации.Добавить("НомерКомиссионера");
МассивРеквизитовОперации.Добавить("ДатаКомиссионера");
МассивРеквизитовОперации.Добавить("НаименованиеДокументаКомиссионера");
ИначеЕсли ХозяйственнаяОперация = Перечисления.ХозяйственныеОперации.РеализацияЧерезКомиссионераБезПереходаПраваСобственности Тогда
МассивРеквизитовОперации.Добавить("НалогообложениеНДС");
МассивРеквизитовОперации.Добавить("Статус");
МассивРеквизитовОперации.Добавить("ВернутьМногооборотнуюТару");
МассивРеквизитовОперации.Добавить("ДатаВозвратаМногооборотнойТары");
МассивРеквизитовОперации.Добавить("ТребуетсяЗалогЗаТару");
МассивРеквизитовОперации.Добавить("ДатаПереходаПраваСобственности");
МассивРеквизитовОперации.Добавить("ГруппаФинансовогоУчета");
МассивРеквизитовОперации.Добавить("КлиентКонтрагент");
МассивРеквизитовОперации.Добавить("КлиентПартнер");
МассивРеквизитовОперации.Добавить("КлиентДоговор");
МассивРеквизитовОперации.Добавить("Склад");
МассивРеквизитовОперации.Добавить("Товары.Склад");
МассивРеквизитовОперации.Добавить("НомерКомиссионера");
МассивРеквизитовОперации.Добавить("ДатаКомиссионера");
МассивРеквизитовОперации.Добавить("НаименованиеДокументаКомиссионера");
ИначеЕсли ХозяйственнаяОперация = Перечисления.ХозяйственныеОперации.ПереходПраваСобственности Тогда
МассивРеквизитовОперации.Добавить("НалогообложениеНДС");
МассивРеквизитовОперации.Добавить("ФормаОплаты");
МассивРеквизитовОперации.Добавить("Касса");
МассивРеквизитовОперации.Добавить("Статус");
МассивРеквизитовОперации.Добавить("ГруппаФинансовогоУчета");
МассивРеквизитовОперации.Добавить("Товары.ПроцентРучнойСкидки");
МассивРеквизитовОперации.Добавить("Товары.СуммаРучнойСкидки");
МассивРеквизитовОперации.Добавить("Товары.ПроцентАвтоматическойСкидки");
МассивРеквизитовОперации.Добавить("Товары.СуммаАвтоматическойСкидки");
КонецЕсли;
КонецПроцедуры
Процедура ЗаполнитьПоОстаткамЗаказов(ДанныеОтбора,
Товары,
СкидкиНаценки,
НачислениеБонусныхБаллов,
СкладРеализации,
МассивЗаказов,
ПараметрыЗаполнения,
ШтрихкодыУпаковок) Экспорт
ВариантОформления = Неопределено;
ОтображатьСообщение = Истина;
ПодборПоЗаказамОрдерам = Ложь;
ПараметрыОформления = Неопределено;
ОрдернаяСхемаПриОтгрузке = Ложь;
ИспользоватьРасширенныеВозможностиЗаказаКлиента = Неопределено;
Если Товары.Количество() > 0 Тогда
Колонки = Товары[0];
Иначе
Колонки = Товары.Выгрузить().Колонки;
КонецЕсли;
ЕстьРеквизитНоменклатураНабора = ОбщегоНазначенияУТКлиентСервер.ЕстьРеквизитОбъекта(Колонки, "НоменклатураНабора");
ЕстьРеквизитИндексНабора = ОбщегоНазначенияУТКлиентСервер.ЕстьРеквизитОбъекта(Колонки, "ИндексНабора");
ПараметрыЗаполнения.Свойство("ВариантОформления", ВариантОформления);
Если ПараметрыЗаполнения.Свойство("ОтображатьСообщение") Тогда
ОтображатьСообщение = ПараметрыЗаполнения.ОтображатьСообщение;
КонецЕсли;
Если ПараметрыЗаполнения.Свойство("ПодборПоЗаказамОрдерам") Тогда
ПодборПоЗаказамОрдерам = ПараметрыЗаполнения.ПодборПоЗаказамОрдерам;
КонецЕсли;
Если ПараметрыЗаполнения.Свойство("ПараметрыОформления", ПараметрыОформления) Тогда
Если ПараметрыОформления <> Неопределено Тогда
ЗаполнениеПоЗаказам = ПараметрыОформления.ПоЗаказам;
ЗаполнениеПоОрдерам = ПараметрыОформления.ПоОрдерам;
КонецЕсли;
КонецЕсли;
Если ПараметрыЗаполнения.Свойство("ОрдернаяСхемаПриОтгрузке") Тогда
ОрдернаяСхемаПриОтгрузке = ПараметрыЗаполнения.ОрдернаяСхемаПриОтгрузке;
ИначеЕсли ЗначениеЗаполнено(СкладРеализации) Тогда
ОрдернаяСхемаПриОтгрузке = СкладыСервер.ЕстьОрдерныйНаОтгрузкуСклад(, , СкладРеализации);
КонецЕсли;
Если Не ПараметрыЗаполнения.Свойство("ИспользоватьРасширенныеВозможностиЗаказаКлиента",
ИспользоватьРасширенныеВозможностиЗаказаКлиента) Тогда
ИспользоватьРасширенныеВозможностиЗаказаКлиента = ПолучитьФункциональнуюОпцию("ИспользоватьРасширенныеВозможностиЗаказаКлиента");
КонецЕсли;
ПроверятьПорядокРасчетов = Истина;
Если ПараметрыЗаполнения.Свойство("ПроверятьПорядокРасчетов") Тогда
ПроверятьПорядокРасчетов = ПараметрыЗаполнения.ПроверятьПорядокРасчетов;
КонецЕсли;
РезультатЗапросаПоОстаткамЗаказов = ПолучитьРезультатЗапросаПоОстаткамЗаказов(
ДанныеОтбора,
ПараметрыЗаполнения,
СкладРеализации,
МассивЗаказов);
Если РезультатЗапросаПоОстаткамЗаказов[10].Пустой()
И РезультатЗапросаПоОстаткамЗаказов[11].Пустой()
И ПолучитьФункциональнуюОпцию("ИспользоватьПострочнуюОтгрузкуВЗаказеКлиента")
И ОтображатьСообщение Тогда
ТекстОшибки = ПродажиСервер.ТекстОшибкиНетТоваровДоступныхДляОтгрузки(ВариантОформления);
ВызватьИсключение ТекстОшибки;
КонецЕсли;
МассивЗаказовКлиентов = Новый Массив();
МассивПорядковРасчетов = Новый Массив();
ВыборкаТовары = РезультатЗапросаПоОстаткамЗаказов[10].Выбрать();
Пока ВыборкаТовары.Следующий() Цикл
Если МассивЗаказовКлиентов.Найти(ВыборкаТовары.ЗаказКлиента) = Неопределено Тогда
МассивЗаказовКлиентов.Добавить(ВыборкаТовары.ЗаказКлиента);
КонецЕсли;
Если ПроверятьПорядокРасчетов
И ЗначениеЗаполнено(ВыборкаТовары.ПорядокРасчетов)
И МассивПорядковРасчетов.Найти(ВыборкаТовары.ПорядокРасчетов) = Неопределено Тогда
МассивПорядковРасчетов.Добавить(ВыборкаТовары.ПорядокРасчетов);
КонецЕсли;
КонецЦикла;
Если МассивЗаказов = Неопределено
И ПроверятьПорядокРасчетов
И МассивПорядковРасчетов.Количество() > 1 Тогда
Если ДанныеОтбора.ХозяйственнаяОперация = Перечисления.ХозяйственныеОперации.ПереходПраваСобственности Тогда
ОбщегоНазначения.СообщитьПользователю(НСтр("ru='У найденных распоряжений отличается поле ""Порядок расчетов""'"));
Иначе
ОбщегоНазначения.СообщитьПользователю(НСтр("ru='У найденных заказов отличается поле ""Порядок расчетов""'"));
КонецЕсли;
Возврат;
КонецЕсли;
ТекстЗапроса =
"ВЫБРАТЬ
| СкидкиНаценки.Ссылка КАК ЗаказКлиента,
| СкидкиНаценки.КлючСвязи КАК КлючСвязи,
| СкидкиНаценки.СкидкаНаценка КАК СкидкаНаценка,
| СкидкиНаценки.Сумма КАК Сумма
|ИЗ
| Документ.ЗаказКлиента.СкидкиНаценки КАК СкидкиНаценки
|ГДЕ
| СкидкиНаценки.Ссылка В (&МассивЗаказовКлиентов)
|ОБЪЕДИНИТЬ ВСЕ
|ВЫБРАТЬ
| СкидкиНаценки.Ссылка КАК ЗаказКлиента,
| СкидкиНаценки.КлючСвязи КАК КлючСвязи,
| СкидкиНаценки.СкидкаНаценка КАК СкидкаНаценка,
| СкидкиНаценки.Сумма КАК Сумма
|ИЗ
| Документ.ЗаявкаНаВозвратТоваровОтКлиента.СкидкиНаценки КАК СкидкиНаценки
|ГДЕ
| СкидкиНаценки.Ссылка В (&МассивЗаказовКлиентов)
|";
Запрос = Новый Запрос(ТекстЗапроса);
Запрос.УстановитьПараметр("МассивЗаказовКлиентов", МассивЗаказовКлиентов);
СкидкиНаценкиЗаказа = Запрос.Выполнить().Выгрузить();
СкидкиНаценки.Очистить();
ИспользоватьБонусныеПрограммыЛояльности = ПолучитьФункциональнуюОпцию("ИспользоватьБонусныеПрограммыЛояльности");
Если ИспользоватьБонусныеПрограммыЛояльности Тогда
ТекстЗапроса =
"ВЫБРАТЬ
| ТабличнаяЧасть.Ссылка КАК ЗаказКлиента,
| ТабличнаяЧасть.КлючСвязи КАК КлючСвязи,
| ТабличнаяЧасть.БонуснаяПрограммаЛояльности КАК БонуснаяПрограммаЛояльности,
| ТабличнаяЧасть.БонуснаяПрограммаЛояльности.ВалютаКонвертацииБонусов КАК ВалютаКонвертацииБонусов,
| ТабличнаяЧасть.БонуснаяПрограммаЛояльности.КурсКонвертацииБонусовВВалюту КАК КурсКонвертацииБонусовВВалюту,
| ДОБАВИТЬКДАТЕ(ТабличнаяЧасть.ДатаНачисления, ДЕНЬ,
| РАЗНОСТЬДАТ(
| НАЧАЛОПЕРИОДА(ТабличнаяЧасть.Ссылка.Дата, ДЕНЬ),
| НАЧАЛОПЕРИОДА(&ТекущаяДата, ДЕНЬ),
| ДЕНЬ)
| ) КАК ДатаНачисления,
| ВЫБОР
| КОГДА ТабличнаяЧасть.ДатаСписания = ДАТАВРЕМЯ(1, 1, 1)
| ТОГДА ТабличнаяЧасть.ДатаСписания
| ИНАЧЕ
| ДОБАВИТЬКДАТЕ(
| ТабличнаяЧасть.ДатаСписания,
| ДЕНЬ,
| РАЗНОСТЬДАТ(
| НАЧАЛОПЕРИОДА(ТабличнаяЧасть.Ссылка.Дата, ДЕНЬ),
| НАЧАЛОПЕРИОДА(&ТекущаяДата, ДЕНЬ),
| ДЕНЬ))
| КОНЕЦ КАК ДатаСписания,
| ТабличнаяЧасть.СуммаБонусныхБаллов КАК СуммаБонусныхБаллов
|ИЗ
| Документ.ЗаказКлиента.НачислениеБонусныхБаллов КАК ТабличнаяЧасть
|ГДЕ
| ТабличнаяЧасть.Ссылка В (&МассивЗаказовКлиентов)
|ОБЪЕДИНИТЬ ВСЕ
|ВЫБРАТЬ
| ТабличнаяЧасть.Ссылка,
| ТабличнаяЧасть.КлючСвязи,
| ТабличнаяЧасть.БонуснаяПрограммаЛояльности,
| ТабличнаяЧасть.БонуснаяПрограммаЛояльности.ВалютаКонвертацииБонусов,
| ТабличнаяЧасть.БонуснаяПрограммаЛояльности.КурсКонвертацииБонусовВВалюту,
| ТабличнаяЧасть.ДатаНачисления,
| ТабличнаяЧасть.ДатаСписания,
| ТабличнаяЧасть.СуммаБонусныхБаллов
|ИЗ
| Документ.ЗаявкаНаВозвратТоваровОтКлиента.НачислениеБонусныхБаллов КАК ТабличнаяЧасть
|ГДЕ
| ТабличнаяЧасть.Ссылка В (&МассивЗаказовКлиентов)
|";
Запрос = Новый Запрос(ТекстЗапроса);
Запрос.УстановитьПараметр("МассивЗаказовКлиентов", МассивЗаказовКлиентов);
Запрос.УстановитьПараметр("ТекущаяДата", ТекущаяДатаСеанса());
НачислениеБонусныхБалловЗаказа = Запрос.Выполнить().Выгрузить();
БонуснаяПрограммаЛояльности = Новый Структура("БонуснаяПрограммаЛояльности,
|ВалютаКонвертацииБонусов,
|КурсКонвертацииБонусовВВалюту,
|СтруктураКурсовВалютыКонвертации");
БонусныеПрограммыЛояльности = НачислениеБонусныхБалловЗаказа.Скопировать();
БонусныеПрограммыЛояльности.Свернуть("БонуснаяПрограммаЛояльности,
|ВалютаКонвертацииБонусов,
|КурсКонвертацииБонусовВВалюту");
Если БонусныеПрограммыЛояльности.Количество() > 1
И ОтображатьСообщение Тогда
Если ДанныеОтбора.ХозяйственнаяОперация = Перечисления.ХозяйственныеОперации.ПереходПраваСобственности Тогда
ТекстОшибки = НСтр("ru='Обнаружены разные программы лояльности для начисления бонусных баллов. Распоряжения
|с разными бонусными программами лояльности не могут быть отгружены в одном документе.'");
Иначе
ТекстОшибки = НСтр("ru='Обнаружены разные программы лояльности для начисления бонусных баллов. Заказы
|с разными бонусными программами лояльности не могут быть отгружены в одном документе.'");
КонецЕсли;
ВызватьИсключение ТекстОшибки;
ИначеЕсли БонусныеПрограммыЛояльности.Количество() = 1 Тогда
ЗаполнитьЗначенияСвойств(БонуснаяПрограммаЛояльности, БонусныеПрограммыЛояльности[0]);
БонуснаяПрограммаЛояльности.СтруктураКурсовВалютыКонвертации = РаботаСКурсамиВалютУТ.ПолучитьКурсВалюты(БонуснаяПрограммаЛояльности.ВалютаКонвертацииБонусов,
ТекущаяДатаСеанса(),
ЗначениеНастроекПовтИсп.ВалютаРегламентированногоУчетаОрганизации(ДанныеОтбора.Организация));
КонецЕсли;
КонецЕсли;
НачислениеБонусныхБаллов.Очистить();
Запрос = Новый Запрос;
Запрос.УстановитьПараметр("МассивЗаказовКлиентов", МассивЗаказовКлиентов);
Запрос.УстановитьПараметр("ВалютаДокумента", ДанныеОтбора.Валюта);
Запрос.Текст =
"ВЫБРАТЬ РАЗРЕШЕННЫЕ
| НАЧАЛОПЕРИОДА(ТаблицаЗаказов.Дата, ДЕНЬ) КАК Дата,
| ТаблицаЗаказов.Ссылка КАК ЗаказКлиента,
| ТаблицаЗаказов.Валюта КАК Валюта,
| ТаблицаЗаказов.ЦенаВключаетНДС КАК ЦенаВключаетНДС,
| ВЫБОР
| КОГДА ТаблицаЗаказов.Валюта <> &ВалютаДокумента
| ТОГДА ИСТИНА
| ИНАЧЕ ЛОЖЬ
| КОНЕЦ КАК ПересчитатьВВалютуДокумента,
| ТаблицаЗаказов.ЭтоЗаказКакСчет КАК ЭтоЗаказКакСчет
|ИЗ
| Документ.ЗаказКлиента КАК ТаблицаЗаказов
|ГДЕ
| ТаблицаЗаказов.Ссылка В(&МассивЗаказовКлиентов)
|
|ОБЪЕДИНИТЬ ВСЕ
|
|ВЫБРАТЬ
| НАЧАЛОПЕРИОДА(ТаблицаЗаказов.Дата, ДЕНЬ) КАК Дата,
| ТаблицаЗаказов.Ссылка КАК ЗаказКлиента,
| ТаблицаЗаказов.Валюта КАК Валюта,
| ТаблицаЗаказов.ЦенаВключаетНДС КАК ЦенаВключаетНДС,
| ВЫБОР
| КОГДА ТаблицаЗаказов.Валюта <> &ВалютаДокумента
| ТОГДА ИСТИНА
| ИНАЧЕ ЛОЖЬ
| КОНЕЦ КАК ПересчитатьВВалютуДокумента,
| ТаблицаЗаказов.ЭтоЗаказКакСчет КАК ЭтоЗаказКакСчет
|ИЗ
| Документ.ЗаявкаНаВозвратТоваровОтКлиента КАК ТаблицаЗаказов
|ГДЕ
| ТаблицаЗаказов.Ссылка В(&МассивЗаказовКлиентов)
|
|ОБЪЕДИНИТЬ ВСЕ
|
|ВЫБРАТЬ
| НАЧАЛОПЕРИОДА(ТаблицаОтгрузки.Дата, ДЕНЬ) КАК Дата,
| ТаблицаОтгрузки.Ссылка КАК ЗаказКлиента,
| ТаблицаОтгрузки.Валюта КАК Валюта,
| ИСТИНА КАК ЦенаВключаетНДС,
| ВЫБОР
| КОГДА ТаблицаОтгрузки.Валюта <> &ВалютаДокумента
| ТОГДА ИСТИНА
| ИНАЧЕ ЛОЖЬ
| КОНЕЦ КАК ПересчитатьВВалютуДокумента,
| ЛОЖЬ КАК ЭтоЗаказКакСчет
|ИЗ
| Документ.ОтгрузкаТоваровКлиенту КАК ТаблицаОтгрузки
|ГДЕ
| ТаблицаОтгрузки.Ссылка В(&МассивЗаказовКлиентов)
|
|ОБЪЕДИНИТЬ ВСЕ
|
|ВЫБРАТЬ
| НАЧАЛОПЕРИОДА(ТаблицаВводОстатков.Партия.Дата, ДЕНЬ) КАК Дата,
| ТаблицаВводОстатков.Партия КАК ЗаказКлиента,
| ТаблицаВводОстатков.Партия.Валюта КАК Валюта,
| ТаблицаВводОстатков.ЦенаВключаетНДС КАК ЦенаВключаетНДС,
| ВЫБОР
| КОГДА ТаблицаВводОстатков.Партия.Валюта <> &ВалютаДокумента
| ТОГДА ИСТИНА
| ИНАЧЕ ЛОЖЬ
| КОНЕЦ КАК ПересчитатьВВалютуДокумента,
| ЛОЖЬ КАК ЭтоЗаказКакСчет
|ИЗ
| Документ.ВводОстатковТоваров КАК ТаблицаВводОстатков
| ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.РеестрДокументов КАК РеестрДокументов
| ПО ТаблицаВводОстатков.Ссылка = РеестрДокументов.СторнируемыйДокумент
| И РеестрДокументов.Проведен
| И НЕ РеестрДокументов.ДополнительнаяЗапись
|ГДЕ
| ТаблицаВводОстатков.Проведен
| И ТаблицаВводОстатков.Партия В(&МассивЗаказовКлиентов)
| И РеестрДокументов.Ссылка ЕСТЬ NULL
|;
|
|
|ВЫБРАТЬ РАЗРЕШЕННЫЕ РАЗЛИЧНЫЕ
| НАЧАЛОПЕРИОДА(ОбъединеннаяТаблицаЗаказов.Дата, ДЕНЬ) КАК Дата,
| ОбъединеннаяТаблицаЗаказов.Валюта КАК Валюта,
| ОбъединеннаяТаблицаЗаказов.ВалютаРегламентированногоУчета КАК ВалютаРегламентированногоУчета
|ИЗ
| (ВЫБРАТЬ
| НАЧАЛОПЕРИОДА(ТаблицаЗаказов.Дата, ДЕНЬ) КАК Дата,
| ТаблицаЗаказов.Валюта КАК Валюта,
| ТаблицаЗаказов.Организация.ВалютаРегламентированногоУчета КАК ВалютаРегламентированногоУчета
| ИЗ
| Документ.ЗаказКлиента КАК ТаблицаЗаказов
| ГДЕ
| ТаблицаЗаказов.Ссылка В(&МассивЗаказовКлиентов)
| И ТаблицаЗаказов.Валюта <> &ВалютаДокумента
|
| ОБЪЕДИНИТЬ ВСЕ
|
| ВЫБРАТЬ
| НАЧАЛОПЕРИОДА(ТаблицаЗаказов.Дата, ДЕНЬ),
| ТаблицаЗаказов.Валюта,
| ТаблицаЗаказов.Организация.ВалютаРегламентированногоУчета
| ИЗ
| Документ.ЗаявкаНаВозвратТоваровОтКлиента КАК ТаблицаЗаказов
| ГДЕ
| ТаблицаЗаказов.Ссылка В(&МассивЗаказовКлиентов)
| И ТаблицаЗаказов.Валюта <> &ВалютаДокумента) КАК ОбъединеннаяТаблицаЗаказов";
МассивРезультатов = Запрос.ВыполнитьПакет();
РезультатРеквизитыЗаказов = МассивРезультатов[0];
РезультатВыборка = МассивРезультатов[1];
РеквизитыЗаказов = РезультатРеквизитыЗаказов.Выбрать();
ТаблицаКурсовВалют = Новый ТаблицаЗначений;
ТаблицаКурсовВалют.Колонки.Добавить("Валюта", Новый ОписаниеТипов("СправочникСсылка.Валюты"));
ТаблицаКурсовВалют.Колонки.Добавить("Дата", Новый ОписаниеТипов("Дата"));
ТаблицаКурсовВалют.Колонки.Добавить("КурсЧислитель", Новый ОписаниеТипов("Число"));
ТаблицаКурсовВалют.Колонки.Добавить("КурсЗнаменатель", Новый ОписаниеТипов("Число"));
Выборка = РезультатВыборка.Выбрать();
Пока Выборка.Следующий() Цикл
НоваяСтрока = ТаблицаКурсовВалют.Добавить();
ЗаполнитьЗначенияСвойств(НоваяСтрока, Выборка);
Если Не ПараметрыЗаполнения.Свойство("КурсЧислитель")
Или ПараметрыЗаполнения.Свойство("КурсЧислитель")
И НЕ ЗначениеЗаполнено(ПараметрыЗаполнения.КурсЧислитель) Тогда
КурсыВалюты = РаботаСКурсамиВалютУТ.ПолучитьКурсВалюты(Выборка.Валюта, Выборка.Дата, Выборка.ВалютаРегламентированногоУчета);
НоваяСтрока.КурсЧислитель = КурсыВалюты.КурсЧислитель;
НоваяСтрока.КурсЗнаменатель = КурсыВалюты.КурсЗнаменатель;
Иначе
НоваяСтрока.КурсЧислитель = ПараметрыЗаполнения.КурсЧислитель;
НоваяСтрока.КурсЗнаменатель = ПараметрыЗаполнения.КурсЗнаменатель;
КонецЕсли;
КонецЦикла;
Если ТаблицаКурсовВалют.Количество() > 0 Тогда
СтруктураКурсовНовойВалюты = РаботаСКурсамиВалютУТ.ПолучитьКурсВалюты(ДанныеОтбора.Валюта, ТекущаяДатаСеанса(),
ЗначениеНастроекПовтИсп.ВалютаРегламентированногоУчетаОрганизации(ДанныеОтбора.Организация));
КонецЕсли;
ПорядокОформления = Константы.ПорядокОформленияНакладныхРасходныхОрдеров.Получить();
ЗаполнятьПоОрдеру =
(ПорядокОформления = Перечисления.ПорядокОформленияНакладныхРасходныхОрдеров.СначалаОрдера
И Не ПодборПоЗаказамОрдерам
И ИспользоватьРасширенныеВозможностиЗаказаКлиента
И ЗначениеЗаполнено(СкладРеализации));
Если ПараметрыОформления <> Неопределено Тогда
ЗаполнятьПоОрдеру = ЗаполнениеПоОрдерам И НЕ ЗаполнениеПоЗаказам;
КонецЕсли;
ОтгруженныеМарки = Неопределено;
ДобавленныеМарки = Новый Соответствие;
ОтгруженныеТовары = РезультатЗапросаПоОстаткамЗаказов[РезультатЗапросаПоОстаткамЗаказов.ВГраница()].Выгрузить();
Если ОрдернаяСхемаПриОтгрузке
Или (ОбщегоНазначенияКлиентСервер.ЕстьРеквизитИлиСвойствоОбъекта(ДанныеОтбора,"ХозяйственнаяОперация")
И ДанныеОтбора.ХозяйственнаяОперация = Перечисления.ХозяйственныеОперации.ПереходПраваСобственности) Тогда
РеализацияТоваровУслугЛокализация.СформироватьОтгруженныеМарки(МассивЗаказовКлиентов, ОтгруженныеМарки);
РеализацияТоваровУслугЛокализация.ИсключитьРеализованныеМарки(МассивЗаказовКлиентов, ОтгруженныеМарки);
КонецЕсли;
ПроверитьСклады = Неопределено;
ПараметрыЗаполнения.Свойство("ПроверитьСклады", ПроверитьСклады);
ВыборкаТовары.Сбросить();
Пока ВыборкаТовары.Следующий() Цикл
НайденныеОтгруженныеМарки = Неопределено;
Если ЗначениеЗаполнено(ПроверитьСклады) Тогда
СкладыПоСсылке = ПроверитьСклады.Получить(ВыборкаТовары.ЗаказКлиента);
Если СкладыПоСсылке <> Неопределено
И СкладыПоСсылке.Найти(ВыборкаТовары.Склад) = Неопределено Тогда
Продолжить;
КонецЕсли;
КонецЕсли;
ПараметрыПоиска = Новый Структура;
ПараметрыПоиска.Вставить("ЗаказКлиента", ВыборкаТовары.ЗаказКлиента);
ПараметрыПоиска.Вставить("Номенклатура", ВыборкаТовары.Номенклатура);
ПараметрыПоиска.Вставить("Характеристика", ВыборкаТовары.Характеристика);
ПараметрыПоиска.Вставить("Склад", ВыборкаТовары.Склад);
ПараметрыПоиска.Вставить("Серия", ВыборкаТовары.Серия);
ПараметрыПоиска.Вставить("Назначение", ВыборкаТовары.Назначение);
КоличествоКОтгрузке = ВыборкаТовары.Количество;
ЗаполнениеПоОрдеру = ЗаполнятьПоОрдеру И ВыборкаТовары.ПроверятьОтгрузку;
Если ЗаполнениеПоОрдеру Тогда
НайденныеСтроки = ОтгруженныеТовары.НайтиСтроки(ПараметрыПоиска);
Если НайденныеСтроки.Количество() = 0 Тогда
Продолжить;
КонецЕсли;
ОтгруженнаяСтрока = НайденныеСтроки[0];
Если ОтгруженнаяСтрока.Количество > 0 Тогда
Если ОтгруженнаяСтрока.Количество < ВыборкаТовары.Количество Тогда
КоличествоКОтгрузке = ОтгруженнаяСтрока.Количество;
ОтгруженнаяСтрока.Количество = 0;
Иначе
КоличествоКОтгрузке = ВыборкаТовары.Количество;
ОтгруженнаяСтрока.Количество = ОтгруженнаяСтрока.Количество - ВыборкаТовары.Количество;
КонецЕсли;
Иначе
Продолжить;
КонецЕсли;
КонецЕсли;
Если НЕ ОтгруженныеМарки = Неопределено Тогда
ПараметрыПоискаМарок = Новый Структура();
ПараметрыПоискаМарок.Вставить("ЗаказКлиента", ПараметрыПоиска.ЗаказКлиента);
ПараметрыПоискаМарок.Вставить("Номенклатура", ПараметрыПоиска.Номенклатура);
ПараметрыПоискаМарок.Вставить("Характеристика", ПараметрыПоиска.Характеристика);
ПараметрыПоискаМарок.Вставить("Склад", ПараметрыПоиска.Склад);
ПараметрыПоискаМарок.Вставить("Серия", ПараметрыПоиска.Серия);
НайденныеОтгруженныеМарки = ОтгруженныеМарки.НайтиСтроки(ПараметрыПоискаМарок);
КонецЕсли;
СтавкаНДСТовара = ВыборкаТовары.СтавкаНДС;
ПересчитатьСуммы = (КоличествоКОтгрузке <> ВыборкаТовары.КоличествоВЗаказе);
ПересчитатьСтавкуНДС = ДанныеОтбора.ХозяйственнаяОперация =
ПредопределенноеЗначение("Перечисление.ХозяйственныеОперации.ПереходПраваСобственности")
И ВыборкаТовары.КодСтроки = 0
И Не ЗначениеЗаполнено(ВыборкаТовары.СтавкаНДС);
ПересчитатьСуммуНДС = ДанныеОтбора.ХозяйственнаяОперация =
ПредопределенноеЗначение("Перечисление.ХозяйственныеОперации.ПереходПраваСобственности")
И (ВыборкаТовары.КодСтроки = 0
Или ТипЗнч(ВыборкаТовары.ЗаказКлиента) = Тип("ДокументСсылка.ОтгрузкаТоваровКлиенту"));
ПересчитатьСуммуБезНДС = ДанныеОтбора.ХозяйственнаяОперация =
ПредопределенноеЗначение("Перечисление.ХозяйственныеОперации.ПереходПраваСобственности")
И ВыборкаТовары.КодСтроки = 0
И Не ДанныеОтбора.ЦенаВключаетНДС;
ИсключитьСвойства = "Количество";
Если ПересчитатьСуммы Тогда
ИсключитьСвойства = ИсключитьСвойства + ", Сумма, СуммаНДС, СуммаАвтоматическойСкидки, СуммаРучнойСкидки";
КонецЕсли;
СтрокаТаб = Товары.Добавить();
ЗаполнитьЗначенияСвойств(СтрокаТаб, ВыборкаТовары, , ИсключитьСвойства);
СтрокаТаб.СтавкаНДС = СтавкаНДСТовара;
СтрокаТаб.Количество = КоличествоКОтгрузке;
СтрокаТаб.КоличествоУпаковок = СтрокаТаб.Количество / ВыборкаТовары.Коэффициент;
Если ПодборПоЗаказамОрдерам Тогда
Если ДанныеОтбора.ХозяйственнаяОперация =
ПредопределенноеЗначение("Перечисление.ХозяйственныеОперации.ПереходПраваСобственности")
Тогда
СтрокаТаб.КоличествоВЗаказе = ВыборкаТовары.КоличествоВЗаказе;
СтрокаТаб.КоличествоУпаковокВЗаказе = ВыборкаТовары.КоличествоВЗаказе / ВыборкаТовары.Коэффициент;
СтрокаТаб.КоличествоВПути = КоличествоКОтгрузке;
СтрокаТаб.КоличествоУпаковокВПути = КоличествоКОтгрузке / ВыборкаТовары.Коэффициент;
Иначе
СтрокаТаб.КоличествоВЗаказе = ?(ВыборкаТовары.КодСтроки <> 0, КоличествоКОтгрузке, 0);
СтрокаТаб.КоличествоУпаковокВЗаказе = ?(ВыборкаТовары.КодСтроки<> 0, КоличествоКОтгрузке, 0) / ВыборкаТовары.Коэффициент;
СтрокаТаб.КоличествоВПути = 0;
СтрокаТаб.КоличествоУпаковокВПути = 0;
КонецЕсли;
ПараметрыПоиска = Новый Структура;
ПараметрыПоиска.Вставить("ЗаказКлиента", ВыборкаТовары.ЗаказКлиента);
ПараметрыПоиска.Вставить("Номенклатура", ВыборкаТовары.Номенклатура);
ПараметрыПоиска.Вставить("Характеристика", ВыборкаТовары.Характеристика);
ПараметрыПоиска.Вставить("Склад", ВыборкаТовары.Склад);
ПараметрыПоиска.Вставить("Серия", ВыборкаТовары.Серия);
ПараметрыПоиска.Вставить("Назначение", ВыборкаТовары.Назначение);
НайденныеСтроки = ОтгруженныеТовары.НайтиСтроки(ПараметрыПоиска);
Если НайденныеСтроки.Количество() > 0 Тогда
ОтгруженнаяСтрока = НайденныеСтроки[0];
Если ОтгруженнаяСтрока.КоличествоСобирается > 0 Тогда
СтрокаТаб.КоличествоСобирается = ОтгруженнаяСтрока.КоличествоСобирается / ВыборкаТовары.Коэффициент;
ОтгруженнаяСтрока.КоличествоСобирается = 0;
КонецЕсли;
Если ОтгруженнаяСтрока.Количество > 0 Тогда
Если ОтгруженнаяСтрока.Количество <= ВыборкаТовары.Количество Тогда
СтрокаТаб.КоличествоВОрдере = ОтгруженнаяСтрока.Количество;
СтрокаТаб.КоличествоУпаковокВОрдере = ОтгруженнаяСтрока.Количество / ВыборкаТовары.Коэффициент;
ОтгруженнаяСтрока.Количество = 0;
ОтгруженныеТовары.Удалить(ОтгруженнаяСтрока);
Иначе
СтрокаТаб.КоличествоВОрдере = ВыборкаТовары.Количество;
СтрокаТаб.КоличествоУпаковокВОрдере =ВыборкаТовары.Количество / ВыборкаТовары.Коэффициент;
ОтгруженнаяСтрока.Количество = ОтгруженнаяСтрока.Количество - ВыборкаТовары.Количество;
КонецЕсли;
Если НЕ ОтгруженныеМарки = Неопределено И СтрокаТаб.ОрдернаяСхемаПриОтгрузке Тогда
ПараметрыПоискаМарок = Новый Структура();
ПараметрыПоискаМарок.Вставить("ЗаказКлиента", ПараметрыПоиска.ЗаказКлиента);
ПараметрыПоискаМарок.Вставить("Номенклатура", ПараметрыПоиска.Номенклатура);
ПараметрыПоискаМарок.Вставить("Характеристика", ПараметрыПоиска.Характеристика);
ПараметрыПоискаМарок.Вставить("Склад", ПараметрыПоиска.Склад);
ПараметрыПоискаМарок.Вставить("Серия", ПараметрыПоиска.Серия);
НайденныеОтгруженныеМарки = ОтгруженныеМарки.НайтиСтроки(ПараметрыПоискаМарок);
КонецЕсли;
Если СтрокаТаб.КоличествоУпаковокВОрдере > 0 И Не НайденныеОтгруженныеМарки = Неопределено Тогда
Для каждого Марка Из НайденныеОтгруженныеМарки Цикл
Если ДобавленныеМарки.Получить(Марка.ШтрихкодУпаковки) = Неопределено Тогда
ДобавленныеМарки.Вставить(Марка.ШтрихкодУпаковки, Истина);
Иначе
Продолжить;
КонецЕсли;
СтрокаТабМарки = ШтрихкодыУпаковок.Добавить();
ЗаполнитьЗначенияСвойств(СтрокаТабМарки, СтрокаТаб);
СтрокаТабМарки.ШтрихкодУпаковки = Марка.ШтрихкодУпаковки;
СтрокаТабМарки.ИзОрдера = Истина;
КонецЦикла;
КонецЕсли;
КонецЕсли;
КонецЕсли;
Иначе
Если СтрокаТаб.КоличествоУпаковок > 0 И Не НайденныеОтгруженныеМарки = Неопределено Тогда
Для каждого Марка Из НайденныеОтгруженныеМарки Цикл
Если ДобавленныеМарки.Получить(Марка.ШтрихкодУпаковки) = Неопределено Тогда
ДобавленныеМарки.Вставить(Марка.ШтрихкодУпаковки, Истина);
Иначе
Продолжить;
КонецЕсли;
СтрокаТабМарки = ШтрихкодыУпаковок.Добавить();
СтрокаТабМарки.ШтрихкодУпаковки = Марка.ШтрихкодУпаковки;
КонецЦикла;
КонецЕсли;
КонецЕсли;
Если ПересчитатьСуммы Тогда
Если ЗаполнениеПоОрдеру Тогда
СтрокаТаб.СуммаВзаиморасчетов = СтрокаТаб.СуммаВзаиморасчетов * КоличествоКОтгрузке / ВыборкаТовары.Количество;
КонецЕсли;
СтрокаТаб.СуммаСНДС = СтрокаТаб.СуммаВзаиморасчетов;
КонецЕсли;
Если ПересчитатьСтавкуНДС Тогда
СтрокаТаб.СтавкаНДС = УчетНДСУП.СтавкаНДСПоНоменклатуреИНалогообложению(
ВыборкаТовары.Номенклатура,
ДанныеОтбора.НалогообложениеНДС,
ДанныеОтбора.Организация,
ДанныеОтбора.Дата);
КонецЕсли;
Если ПересчитатьСуммуБезНДС Тогда
СтрокаТаб.СуммаНДС = УчетНДСУПКлиентСервер.РассчитатьСуммуНДС(
ВыборкаТовары.СуммаВзаиморасчетов,
СтрокаТаб.СтавкаНДС,
Истина,
ДанныеОтбора.НалогообложениеНДС);
СтрокаТаб.Сумма = СтрокаТаб.СуммаВзаиморасчетов - СтрокаТаб.СуммаНДС;
Если СтрокаТаб.КоличествоУпаковок <> 0 Тогда
СтрокаТаб.Цена = СтрокаТаб.Сумма / СтрокаТаб.КоличествоУпаковок;
КонецЕсли;
ИначеЕсли ПересчитатьСуммуНДС Тогда
СтрокаТаб.СуммаНДС = УчетНДСУПКлиентСервер.РассчитатьСуммуНДС(
ВыборкаТовары.СуммаВзаиморасчетов,
СтрокаТаб.СтавкаНДС,
Истина,
ДанныеОтбора.НалогообложениеНДС);
КонецЕсли;
РеквизитыЗаказов.Сбросить();
ЗаказНайден = РеквизитыЗаказов.НайтиСледующий(СтрокаТаб.ЗаказКлиента, "ЗаказКлиента");
ПараметрыОтбора = Новый Структура("Валюта,Дата", РеквизитыЗаказов.Валюта, РеквизитыЗаказов.Дата);
КурсВалюты = ТаблицаКурсовВалют.НайтиСтроки(ПараметрыОтбора);
Если ЗаказНайден И РеквизитыЗаказов.ПересчитатьВВалютуДокумента Тогда
Если КурсВалюты.Количество() = 1 Тогда
СтрокаТаб.Цена = РаботаСКурсамиВалютУТ.ПересчитатьПоКурсу(
СтрокаТаб.Цена,
КурсВалюты[0],
СтруктураКурсовНовойВалюты);
СтрокаТаб.СуммаСНДС = РаботаСКурсамиВалютУТ.ПересчитатьПоКурсу(
СтрокаТаб.СуммаСНДС,
КурсВалюты[0],
СтруктураКурсовНовойВалюты);
ПересчитатьСуммы = Истина;
КонецЕсли;
КонецЕсли;
КоэффициентПересчетаСкидки = ?(ПересчитатьСуммы, СтрокаТаб.Количество / ?(ВыборкаТовары.КоличествоВЗаказе<>0,ВыборкаТовары.КоличествоВЗаказе,1), 1);
Если КоэффициентПересчетаСкидки <> 1 Тогда
СтрокаТаб.СуммаАвтоматическойСкидки = ОКР(ВыборкаТовары.СуммаАвтоматическойСкидки * КоэффициентПересчетаСкидки,2);
СтрокаТаб.СуммаРучнойСкидки = ОКР(ВыборкаТовары.СуммаРучнойСкидки * КоэффициентПересчетаСкидки,2);
СтрокаТаб.СуммаБонусныхБалловКСписанию = ОКР(ВыборкаТовары.СуммаБонусныхБалловКСписанию * КоэффициентПересчетаСкидки,2);
СтрокаТаб.СуммаБонусныхБалловКСписаниюВВалюте = ОКР(ВыборкаТовары.СуммаБонусныхБалловКСписаниюВВалюте * КоэффициентПересчетаСкидки,2);
СтрокаТаб.СуммаНачисленныхБонусныхБалловВВалюте = ОКР(ВыборкаТовары.СуммаНачисленныхБонусныхБалловВВалюте * КоэффициентПересчетаСкидки,2);
КонецЕсли;
Если ЗаказНайден И ПересчитатьСуммы Тогда
Ценообразование.ПересчитатьСуммыВСтрокеПоСуммеСНДС(
СтрокаТаб,
РеквизитыЗаказов.ЦенаВключаетНДС,
СтрокаТаб.ПроцентАвтоматическойСкидки<>0,
СтрокаТаб.ПроцентРучнойСкидки<>0,
РеквизитыЗаказов.ПересчитатьВВалютуДокумента);
Если ЗаказНайден И РеквизитыЗаказов.ПересчитатьВВалютуДокумента И КурсВалюты.Количество() = 1 Тогда
СтрокаТаб.СуммаАвтоматическойСкидки = РаботаСКурсамиВалютУТ.ПересчитатьПоКурсу(
СтрокаТаб.СуммаАвтоматическойСкидки,
КурсВалюты[0],
СтруктураКурсовНовойВалюты);
СтрокаТаб.СуммаРучнойСкидки = РаботаСКурсамиВалютУТ.ПересчитатьПоКурсу(
СтрокаТаб.СуммаРучнойСкидки,
КурсВалюты[0],
СтруктураКурсовНовойВалюты);
СтрокаТаб.СуммаБонусныхБалловКСписаниюВВалюте = РаботаСКурсамиВалютУТ.ПересчитатьПоКурсу(
СтрокаТаб.СуммаБонусныхБалловКСписаниюВВалюте,
КурсВалюты[0],
СтруктураКурсовНовойВалюты);
СтрокаТаб.СуммаНачисленныхБонусныхБалловВВалюте = РаботаСКурсамиВалютУТ.ПересчитатьПоКурсу(
СтрокаТаб.СуммаНачисленныхБонусныхБалловВВалюте,
КурсВалюты[0],
СтруктураКурсовНовойВалюты);
КонецЕсли;
КонецЕсли;
СуммаКРаспределению = СтрокаТаб.СуммаАвтоматическойСкидки;
Если СтрокаТаб.КлючСвязи <> 0 Тогда
Для Каждого СтрокаСкидкиЗаказа Из СкидкиНаценкиЗаказа.НайтиСтроки(Новый Структура("ЗаказКлиента,КлючСвязи", СтрокаТаб.ЗаказКлиента, СтрокаТаб.КлючСвязи)) Цикл
СтрокаСкидки = СкидкиНаценки.Добавить();
ЗаполнитьЗначенияСвойств(СтрокаСкидки, СтрокаСкидкиЗаказа);
СтрокаСкидки.Сумма = КоэффициентПересчетаСкидки * СтрокаСкидки.Сумма;
Если ЗаказНайден И РеквизитыЗаказов.ПересчитатьВВалютуДокумента И КурсВалюты.Количество() > 0 Тогда
СтрокаСкидки.Сумма = РаботаСКурсамиВалютУТ.ПересчитатьПоКурсу(
СтрокаСкидки.Сумма,
КурсВалюты[0],
СтруктураКурсовНовойВалюты);
СуммаКРаспределению = СуммаКРаспределению - СтрокаСкидки.Сумма;
КонецЕсли;
КонецЦикла;
КонецЕсли;
Если ЗаказНайден И РеквизитыЗаказов.ПересчитатьВВалютуДокумента И СуммаКРаспределению <> 0 Тогда
СтрокаСкидки.Сумма = СтрокаСкидки.Сумма + СуммаКРаспределению;
КонецЕсли;
Если ИспользоватьБонусныеПрограммыЛояльности Тогда
СуммаКРаспределению = СтрокаТаб.СуммаНачисленныхБонусныхБалловВВалюте;
Если ЗаказНайден
И ЗначениеЗаполнено(БонуснаяПрограммаЛояльности.ВалютаКонвертацииБонусов)
И ДанныеОтбора.Валюта <> БонуснаяПрограммаЛояльности.ВалютаКонвертацииБонусов Тогда
СуммаКРаспределению = РаботаСКурсамиВалютУТ.ПересчитатьПоКурсу(
СуммаКРаспределению,
СтруктураКурсовНовойВалюты,
БонуснаяПрограммаЛояльности.СтруктураКурсовВалютыКонвертации);
КонецЕсли;
Если СуммаКРаспределению <> 0
И ЗначениеЗаполнено(БонуснаяПрограммаЛояльности.КурсКонвертацииБонусовВВалюту) Тогда
СуммаКРаспределению = СуммаКРаспределению / БонуснаяПрограммаЛояльности.КурсКонвертацииБонусовВВалюту;
КонецЕсли;
Если СтрокаТаб.КлючСвязи <> 0 Тогда
Для Каждого СтрокаБонусныеБаллыЗаказа Из НачислениеБонусныхБалловЗаказа.НайтиСтроки(Новый Структура("ЗаказКлиента,КлючСвязи", СтрокаТаб.ЗаказКлиента, СтрокаТаб.КлючСвязи)) Цикл
СтрокаБонусныеБаллы = НачислениеБонусныхБаллов.Добавить();
ЗаполнитьЗначенияСвойств(СтрокаБонусныеБаллы, СтрокаБонусныеБаллыЗаказа);
СтрокаБонусныеБаллы.СуммаБонусныхБаллов = КоэффициентПересчетаСкидки * СтрокаБонусныеБаллы.СуммаБонусныхБаллов;
СуммаКРаспределению = СуммаКРаспределению - СтрокаБонусныеБаллы.СуммаБонусныхБаллов;
КонецЦикла;
КонецЕсли;
Если ЗаказНайден И СуммаКРаспределению <> 0 Тогда
СтрокаБонусныеБаллы.СуммаБонусныхБаллов = СтрокаБонусныеБаллы.СуммаБонусныхБаллов + СуммаКРаспределению;
КонецЕсли;
КонецЕсли;
Если ЕстьРеквизитНоменклатураНабора
И ЕстьРеквизитИндексНабора
И ЗначениеЗаполнено(СтрокаТаб.НоменклатураНабора) Тогда
СтрокаТаб.ИндексНабора = 1;
КонецЕсли;
КонецЦикла;
Если (ПодборПоЗаказамОрдерам ИЛИ ЗаполнятьПоОрдеру) И ОтгруженныеТовары.Количество()>0 Тогда
КэшированныеЗначения = ПакетнаяОбработкаТабличнойЧастиКлиентСервер.ПолучитьСтруктуруКэшируемыеЗначения();
СтруктураДействий = Новый Структура;
СтруктураДействий.Вставить("ОчиститьСуммуВзаиморасчетов");
ОбрабатываемыеСтроки = Новый Массив;
Для каждого ОтгруженнаяСтрока Из ОтгруженныеТовары Цикл
Если ЗначениеЗаполнено(ПроверитьСклады) Тогда
СкладыПоСсылке = ПроверитьСклады.Получить(ОтгруженнаяСтрока.ЗаказКлиента);
Если СкладыПоСсылке <> Неопределено
И СкладыПоСсылке.Найти(ОтгруженнаяСтрока.Склад) = Неопределено Тогда
Продолжить;
КонецЕсли;
КонецЕсли;
Если ОтгруженнаяСтрока.Количество > 0 Тогда
ПараметрыПоиска = Новый Структура;
ПараметрыПоиска.Вставить("Номенклатура", ОтгруженнаяСтрока.Номенклатура);
ПараметрыПоиска.Вставить("Характеристика", ОтгруженнаяСтрока.Характеристика);
ПараметрыПоиска.Вставить("Склад", ОтгруженнаяСтрока.Склад);
ПараметрыПоиска.Вставить("Серия", ОтгруженнаяСтрока.Серия);
ПараметрыПоиска.Вставить("Назначение", ОтгруженнаяСтрока.Назначение);
Если ТипЗнч(ОтгруженнаяСтрока.ЗаказКлиента) = Тип("ДокументСсылка.ЗаказКлиента") Тогда
ПараметрыПоиска.Вставить("ЗаказКлиента",ОтгруженнаяСтрока.ЗаказКлиента)
КонецЕсли;
НайденныеСтроки = Товары.НайтиСтроки(ПараметрыПоиска);
Если ПодборПоЗаказамОрдерам Тогда
Если НайденныеСтроки.Количество() > 0 Тогда
СтрокаТаб = НайденныеСтроки[0];
СтрокаТаб.КоличествоУпаковокВОрдере = СтрокаТаб.КоличествоУпаковокВОрдере + ОтгруженнаяСтрока.Количество
* (СтрокаТаб.КоличествоУпаковокВОрдере / СтрокаТаб.Количество);
СтрокаТаб.КоличествоВОрдере = СтрокаТаб.КоличествоВОрдере + ОтгруженнаяСтрока.Количество;
Иначе
СтрокаТаб = Товары.Добавить();
ЗаполнитьЗначенияСвойств(СтрокаТаб, ОтгруженнаяСтрока);
СтрокаТаб.КоличествоВОрдере = ОтгруженнаяСтрока.Количество;
СтрокаТаб.КоличествоУпаковокВОрдере = ОтгруженнаяСтрока.Количество;
КонецЕсли;
ИначеЕсли ОтгруженнаяСтрока.ОрдернаяСхемаПриОтгрузке Тогда
Если НайденныеСтроки.Количество() > 0 Тогда
СтрокаТаб = НайденныеСтроки[0];
СтрокаТаб.КоличествоУпаковок = СтрокаТаб.КоличествоУпаковок + ОтгруженнаяСтрока.Количество
* (СтрокаТаб.КоличествоУпаковок / СтрокаТаб.Количество);
СтрокаТаб.Количество = СтрокаТаб.Количество + ОтгруженнаяСтрока.Количество;
Ценообразование.ПересчитатьСуммыВСтроке(
СтрокаТаб,
Истина,
Ложь,
Истина,
ДанныеОтбора.ЦенаВключаетНДС);
ОбрабатываемыеСтроки.Добавить(СтрокаТаб);
Иначе
СтрокаТаб = Товары.Добавить();
ЗаполнитьЗначенияСвойств(СтрокаТаб, ОтгруженнаяСтрока);
СтрокаТаб.Количество = ОтгруженнаяСтрока.Количество;
СтрокаТаб.КоличествоУпаковок = ОтгруженнаяСтрока.Количество;
КонецЕсли;
КонецЕсли;
КонецЕсли;
КонецЦикла;
ПакетнаяОбработкаТабличнойЧастиСервер.ОбработатьСтрокиТЧ(
ОбрабатываемыеСтроки,
СтруктураДействий,
Товары,
КэшированныеЗначения);
КонецЕсли;
КонецПроцедуры
Функция ИменаРеквизитовДляЗаполненияПараметровУказанияСерий() Экспорт
ИменаРеквизитов = "Склад,Статус,ХозяйственнаяОперация,Дата";
Возврат ИменаРеквизитов;
КонецФункции
Функция ПараметрыУказанияСерий(Объект) Экспорт
ПараметрыУказанияСерий = НоменклатураКлиентСервер.ПараметрыУказанияСерий();
ПараметрыУказанияСерий.ПолноеИмяОбъекта = "Документ.РеализацияТоваровУслуг";
ПараметрыСерийСклада = СкладыСервер.ИспользованиеСерийНаСкладе(Объект.Склад, Истина);
РеализацияПоРеглУчету = Объект.ХозяйственнаяОперация = Перечисления.ХозяйственныеОперации.РеализацияКлиентуРеглУчет;
РеализацияЧерезКомиссионера = КомиссионнаяТорговляСервер.РеализацияЧерезКомиссионера(Объект.ХозяйственнаяОперация);
РеализацияПоПереходуПраваСобственности = Объект.ХозяйственнаяОперация = Перечисления.ХозяйственныеОперации.ПереходПраваСобственности;
Если РеализацияЧерезКомиссионера
Или РеализацияПоПереходуПраваСобственности Тогда
ПараметрыУказанияСерий.УчитыватьСебестоимостьПоСериям = ПолучитьФункциональнуюОпцию("УчитыватьСебестоимостьПоСериямСклад",
Новый Структура());
ПараметрыУказанияСерий.ИспользоватьСерииНоменклатуры = ПолучитьФункциональнуюОпцию("ИспользоватьСерииНоменклатурыСклад",
Новый Структура());
Иначе
ПараметрыУказанияСерий.УчитыватьСебестоимостьПоСериям = ПараметрыСерийСклада.УчитыватьСебестоимостьПоСериям;
ПараметрыУказанияСерий.ИспользоватьСерииНоменклатуры = ПараметрыСерийСклада.ИспользоватьСерииНоменклатуры;
КонецЕсли;
Если РеализацияПоРеглУчету Тогда
ПараметрыУказанияСерий.ИспользоватьСерииНоменклатуры = ПараметрыСерийСклада.УчитыватьСебестоимостьПоСериям;
КонецЕсли;
ПараметрыУказанияСерий.СкладскиеОперации.Добавить(Перечисления.СкладскиеОперации.ОтгрузкаКлиенту);
ПараметрыУказанияСерий.ПоляСвязи.Добавить("Склад");
ПараметрыУказанияСерий.ПоляСвязи.Добавить("Назначение");
ПараметрыУказанияСерий.ЭтоНакладная = Истина;
ПараметрыУказанияСерий.ТолькоСерииДляСебестоимости = РеализацияПоРеглУчету
Или РеализацияПоПереходуПраваСобственности;
ПараметрыУказанияСерий.ПланированиеОтгрузки = Объект.Статус = Перечисления.СтатусыРеализацийТоваровУслуг.КПредоплате;
ПараметрыУказанияСерий.ПланированиеОтбора = Объект.Статус = Перечисления.СтатусыРеализацийТоваровУслуг.Отгружено
Или Объект.Статус = Перечисления.СтатусыРеализацийТоваровУслуг.ВПути;
ПараметрыУказанияСерий.ФактОтбора = Объект.Статус = Перечисления.СтатусыРеализацийТоваровУслуг.Отгружено
Или Объект.Статус = Перечисления.СтатусыРеализацийТоваровУслуг.ВПути;
ПараметрыУказанияСерий.РегистрироватьСерии = НоменклатураКлиентСервер.НеобходимоРегистрироватьСерии(ПараметрыУказанияСерий);
ПараметрыУказанияСерий.Дата = Объект.Дата;
ПараметрыУказанияСерий.ИменаПолейДляОпределенияРаспоряжения.Добавить("Товары_ЗаказКлиента");
ПараметрыУказанияСерий.ИменаПолейДляОпределенияРаспоряжения.Добавить("Товары_КодСтроки");
ПараметрыУказанияСерий.ОперацияДокумента = Объект.ХозяйственнаяОперация;
Возврат ПараметрыУказанияСерий;
КонецФункции
Функция РаспоряжениеНаВыполнениеСкладскойОперации(ЗначенияПолейДляОпределенияРаспоряжения) Экспорт
Если ЗначенияПолейДляОпределенияРаспоряжения.Товары_КодСтроки <> 0 Тогда
Возврат ЗначенияПолейДляОпределенияРаспоряжения.Товары_ЗаказКлиента;
Иначе
Возврат Неопределено;
КонецЕсли;
КонецФункции
Функция НаименованияВходящихДокументов() Экспорт
МассивНаименований = Новый Массив();
МассивНаименований.Добавить(НСтр("ru='Отчет комиссионера'"));
РеализацияТоваровУслугЛокализация.ДополнитьНаименованияВходящихДокументов(МассивНаименований);
Возврат МассивНаименований;
КонецФункции
Функция ПараметрыЗаполненияНалогообложенияНДСПродажи(Объект) Экспорт
ПараметрыЗаполнения = УчетНДСУПКлиентСервер.ПараметрыЗаполненияНалогообложенияНДСПродажи();
Если ТипЗнч(Объект) = Тип("ДокументОбъект.РеализацияТоваровУслуг")
Или ТипЗнч(Объект) = Тип("ДанныеФормыСтруктура") Тогда
ДанныеОбъекта = Объект;
ИначеЕсли ТипЗнч(Объект) = Тип("ДокументСсылка.РеализацияТоваровУслуг") Тогда
ДанныеОбъекта = ОбщегоНазначения.ЗначенияРеквизитовОбъекта(Объект, "Организация,Договор,Склад,Дата,НаправлениеДеятельности,ХозяйственнаяОперация, Подразделение");
КонецЕсли;
ПараметрыЗаполнения.Организация = ДанныеОбъекта.Организация;
ПараметрыЗаполнения.Дата = ДанныеОбъекта.Дата;
ПараметрыЗаполнения.Склад = ДанныеОбъекта.Склад;
ПараметрыЗаполнения.Договор = ДанныеОбъекта.Договор;
ПараметрыЗаполнения.НаправлениеДеятельности = ДанныеОбъекта.НаправлениеДеятельности;
ПараметрыЗаполнения.Подразделение = ДанныеОбъекта.Подразделение;
Если ДанныеОбъекта.ХозяйственнаяОперация = Перечисления.ХозяйственныеОперации.РеализацияКлиенту
Или ДанныеОбъекта.ХозяйственнаяОперация = Перечисления.ХозяйственныеОперации.РеализацияКлиентуРеглУчет
Или ДанныеОбъекта.ХозяйственнаяОперация = Перечисления.ХозяйственныеОперации.РеализацияБезПереходаПраваСобственности
Или ДанныеОбъекта.ХозяйственнаяОперация = Перечисления.ХозяйственныеОперации.РеализацияЧерезКомиссионера
Или ДанныеОбъекта.ХозяйственнаяОперация = Перечисления.ХозяйственныеОперации.РеализацияЧерезКомиссионераБезПереходаПраваСобственности Тогда
ПараметрыЗаполнения.РеализацияТоваров = Истина;
ПараметрыЗаполнения.РеализацияРаботУслуг = Истина;
ИначеЕсли ДанныеОбъекта.ХозяйственнаяОперация = Перечисления.ХозяйственныеОперации.ПереходПраваСобственности Тогда
ПараметрыЗаполнения.РеализацияТоваров = Истина;
ИначеЕсли ДанныеОбъекта.ХозяйственнаяОперация = Перечисления.ХозяйственныеОперации.ПередачаНаКомиссию Тогда
ПараметрыЗаполнения.ПередачаНаКомиссию = Истина;
КонецЕсли;
Возврат ПараметрыЗаполнения;
КонецФункции
Функция ПараметрыВзаиморасчеты(ДанныеЗаполнения = Неопределено) Экспорт
Если ОбщегоНазначения.ЗначениеСсылочногоТипа(ДанныеЗаполнения) Тогда
СтруктураДанныеЗаполнения = ОбщегоНазначения.ЗначенияРеквизитовОбъекта(
ДанныеЗаполнения,
"ХозяйственнаяОперация,
|РеализацияПоЗаказам,
|Ссылка,
|Договор,
|ЗаказКлиента,
|Товары");
ХозяйственнаяОперация = СтруктураДанныеЗаполнения.ХозяйственнаяОперация;
РеализацияПоЗаказам = СтруктураДанныеЗаполнения.РеализацияПоЗаказам;
Договор = СтруктураДанныеЗаполнения.Договор;
ЕстьКорректировки = Ложь;
ПродажиСервер.ПроверитьНаличиеКорректировок(СтруктураДанныеЗаполнения.Ссылка, СтруктураДанныеЗаполнения.Ссылка, ЕстьКорректировки);
ЗаказКлиента = СтруктураДанныеЗаполнения.ЗаказКлиента;
Товары = СтруктураДанныеЗаполнения.Товары;
ИначеЕсли ДанныеЗаполнения = Неопределено Тогда
ХозяйственнаяОперация = Неопределено;
РеализацияПоЗаказам = Ложь;
ЕстьКорректировки = Ложь;
Договор = Неопределено;
ЗаказКлиента = Неопределено;
Товары = Неопределено;
Иначе
ХозяйственнаяОперация = ДанныеЗаполнения.ХозяйственнаяОперация;
РеализацияПоЗаказам = ДанныеЗаполнения.РеализацияПоЗаказам;
Договор = ДанныеЗаполнения.Договор;
ЕстьКорректировки = Ложь;
ПродажиСервер.ПроверитьНаличиеКорректировок(ДанныеЗаполнения.Ссылка, ДанныеЗаполнения.Ссылка, ЕстьКорректировки);
ЗаказКлиента = ДанныеЗаполнения.ЗаказКлиента;
Товары = ДанныеЗаполнения.Товары;
КонецЕсли;
ПараметрыВзаиморасчетов = Новый Массив;
СтруктураПараметров = ВзаиморасчетыСервер.ПараметрыМеханизма();
СтруктураПараметров.ЭтоПродажаЗакупка = Истина;
СтруктураПараметров.ТипРасчетов = Перечисления.ТипыРасчетовСПартнерами.РасчетыСКлиентом;
СтруктураПараметров.ИзменяетПланОплаты = ХозяйственнаяОперация = ПредопределенноеЗначение("Перечисление.ХозяйственныеОперации.РеализацияКлиенту")
Или ХозяйственнаяОперация = ПредопределенноеЗначение("Перечисление.ХозяйственныеОперации.ПереходПраваСобственности")
Или ХозяйственнаяОперация = ПредопределенноеЗначение("Перечисление.ХозяйственныеОперации.РеализацияКлиентуРеглУчет")
Или ХозяйственнаяОперация = ПредопределенноеЗначение("Перечисление.ХозяйственныеОперации.РеализацияБезПереходаПраваСобственности")
Или ХозяйственнаяОперация = ПредопределенноеЗначение("Перечисление.ХозяйственныеОперации.РеализацияЧерезКомиссионера")
Или ХозяйственнаяОперация = ПредопределенноеЗначение("Перечисление.ХозяйственныеОперации.РеализацияЧерезКомиссионераБезПереходаПраваСобственности");
СтруктураПараметров.ИзменяетПланОтгрузкиПоставки = Истина;
СтруктураПараметров.ВалютаВзаиморасчетов = "Объект.ВалютаВзаиморасчетов";
СтруктураПараметров.СуммаВзаиморасчетов = "Объект.СуммаВзаиморасчетов";
СтруктураПараметров.СуммаВзаиморасчетовПоТаре = "Объект.СуммаВзаиморасчетовПоТаре";
СтруктураПараметров.КурсЧислитель = "Объект.КурсЧислитель";
СтруктураПараметров.КурсЗнаменатель = "Объект.КурсЗнаменатель";
СтруктураПараметров.ПутьКДаннымТЧ = "Объект.Товары";
СтруктураПараметров.ИмяРеквизитаТЧЗаказ = "ЗаказКлиента";
СтруктураПараметров.ПутьКДаннымТЧРасшифровкаПлатежа = "Объект.РасшифровкаПлатежа";
СтруктураПараметров.Менеджер = "Объект.Менеджер";
СтруктураПараметров.ЗаказОснование = "Объект.ЗаказКлиента";
СтруктураПараметров.ГрафикОплаты = "Объект.ГрафикОплаты";
РазрешитьРучноеРедактированиеГрафика = Ложь;
Если РеализацияПоЗаказам Тогда
ДокументыОснования = Новый Массив;
Если ЗначениеЗаполнено(ЗаказКлиента) Тогда
ДокументыОснования.Добавить(ЗаказКлиента);
Иначе
ОбщегоНазначенияКлиентСервер.ДополнитьМассив(ДокументыОснования,
Товары.Выгрузить().ВыгрузитьКолонку("ЗаказКлиента"),
Истина);
КонецЕсли;
ДокументыПоВидам = ПродажиСервер.ДокументыПоПризнакуНаличияОбъектовРасчетов(ДокументыОснования);
РазрешитьРучноеРедактированиеГрафика = ДокументыПоВидам.ДокументыБезОбъектовРасчетов.Количество() > 0;
КонецЕсли;
Если РазрешитьРучноеРедактированиеГрафика Тогда
СтруктураПараметров.НакладнаяПоЗаказам = "";
Иначе
СтруктураПараметров.НакладнаяПоЗаказам = "Объект.РеализацияПоЗаказам";
КонецЕсли;
РеализацияЧерезКомиссионера = КомиссионнаяТорговляСервер.РеализацияЧерезКомиссионера(ХозяйственнаяОперация);
ВестиРасчетыЧерезКонечныхПокупателей = Ложь;
Если РеализацияЧерезКомиссионера Тогда
СтруктураПараметров.Договор = "Объект.КлиентДоговор";
Если ЗначениеЗаполнено(Договор) Тогда
ВестиРасчетыЧерезКонечныхПокупателей = ОбщегоНазначения.ЗначениеРеквизитаОбъекта(Договор, "ВестиРасчетыЧерезКонечныхПокупателей");
КонецЕсли;
Если ВестиРасчетыЧерезКонечныхПокупателей Тогда
СтруктураПараметров.Партнер = "Объект.КлиентПартнер";
СтруктураПараметров.Контрагент = "Объект.КлиентКонтрагент";
КонецЕсли;
СтруктураПараметров.ДоговорКомиссионера = "Объект.Договор";
СтруктураПараметров.НомерВходящегоДокумента = "Объект.НомерКомиссионера";
СтруктураПараметров.ДатаВходящегоДокумента = "Объект.ДатаКомиссионера";
СтруктураПараметров.НаименованиеПервичногоДокумента = "Объект.НаименованиеДокументаКомиссионера";
КонецЕсли;
СтруктураПараметров.ЭлементыФормы.НадписьВалюты = "ДекорацияВалюты";
СтруктураПараметров.ЭлементыФормы.НадписьЭтапы = "ДекорацияЭтапыОплаты";
СтруктураПараметров.ЭлементыФормы.НадписьРасчеты = "ДекорацияСостояниеРасчетов";
СтруктураПараметров.ЭлементыФормы.ЗачетОплаты = "ЗачетОплаты";
СтруктураПараметров.ЭлементыФормы.СуммаВзаиморасчетовТЧ = "ТоварыСуммаВзаиморасчетов";
СтруктураПараметров.ЭлементыФормы.ОграничениеЗадолженностиТекст = "ДекорацияОграничениеЗадолженности";
СтруктураПараметров.ЭлементыФормы.ОграничениеЗадолженностиКартинка = "КартинкаОтгрузкаЗапрещена";
СтруктураПараметров.ЭлементыФормы.ГруппаФинансовогоУчета = "ГруппаФинансовогоУчета";
СтруктураПараметров.ЭлементыФормы.НаправлениеДеятельности = "НаправлениеДеятельности";
СтруктураПараметров.ВалютыИКурсДокументаТолькоПросмотр = ЕстьКорректировки;
СтруктураПараметров.ВалютаДокументаТолькоПросмотр = НЕ ПраваПользователяПовтИсп.ОтклонениеОтУсловийПродаж() И РеализацияПоЗаказам;
СтруктураПараметров.ВалютаВзаиморасчетовТолькоПросмотр = НЕ ПраваПользователяПовтИсп.ОтклонениеОтУсловийПродаж() И РеализацияПоЗаказам;
СтруктураПараметров.НеПоказыватьРасчеты = ХозяйственнаяОперация = ПредопределенноеЗначение("Перечисление.ХозяйственныеОперации.ПередачаНаКомиссию");
СтруктураПараметров.ПутьКДаннымТЧЭтапыОплаты = "Объект.ЭтапыГрафикаОплаты";
СтруктураПараметров.ДатаПереходаПраваСобственности = "Объект.ДатаПереходаПраваСобственности";
СтруктураПараметров.НадписьЭтапыОплаты = "Форма.НадписьЭтапыОплаты";
СтруктураПараметров.ИсточникСуммТабличнаяЧасть = Истина;
СтруктураПараметров.СуммаДокументаФорма = "Форма.СуммаВсего";
СтруктураПараметров.СуммаЗалогаЗаТаруФорма = "Форма.СуммаЗалогаЗаТару";
СтруктураПараметров.ЭтапыОплатыТолькоПросмотр = Не (ПраваПользователяПовтИсп.ОтклонениеОтУсловийПродаж() ИЛИ НЕ РеализацияПоЗаказам);
СтруктураПараметров.ВозможнаНакладнаяПоНесколькимЗаказам = ПолучитьФункциональнуюОпцию("ИспользоватьРеализациюПоНесколькимЗаказам");
СтруктураПараметров.ЕстьДатаПереходаПраваСобственности =
ПолучитьФункциональнуюОпцию("ИспользоватьОтгрузкуБезПереходаПраваСобственности2_0")
И (ХозяйственнаяОперация = Перечисления.ХозяйственныеОперации.РеализацияБезПереходаПраваСобственности
Или ХозяйственнаяОперация = Перечисления.ХозяйственныеОперации.РеализацияЧерезКомиссионераБезПереходаПраваСобственности)
Или ПолучитьФункциональнуюОпцию("ИспользоватьОтгрузкуБезПереходаПраваСобственности2_5")
И ХозяйственнаяОперация = Перечисления.ХозяйственныеОперации.ПереходПраваСобственности;
СтруктураПараметров.ВестиРасчетыЧерезКонечныхПокупателей = ВестиРасчетыЧерезКонечныхПокупателей;
СтруктураПараметров.ОбъектРасчетов = "Объект.Товары.ОбъектРасчетов";
СтруктураПараметров.ВернутьМногооборотнуюТару = "Объект.ВернутьМногооборотнуюТару";
СтруктураПараметров.ТребуетсяЗалогЗаТару = "Объект.ТребуетсяЗалогЗаТару";
ПараметрыВзаиморасчетов.Добавить(СтруктураПараметров);
Если ХозяйственнаяОперация = Перечисления.ХозяйственныеОперации.РеализацияКлиентуРеглУчет Тогда
СтруктураПараметров = ВзаиморасчетыСервер.ПараметрыМеханизма();
СтруктураПараметров.ТипРасчетов = Перечисления.ТипыРасчетовСПартнерами.РасчетыСКлиентом;
СтруктураПараметров.Организация = Справочники.Организации.УправленческаяОрганизация;
СтруктураПараметров.ИсточникСуммТабличнаяЧасть = Истина;
СтруктураПараметров.ЭтоПродажаЗакупка = Истина;
СтруктураПараметров.ВалютаВзаиморасчетов = "Объект.ВалютаВзаиморасчетов";
СтруктураПараметров.СуммаВзаиморасчетов = "Объект.СуммаВзаиморасчетов";
СтруктураПараметров.КурсЧислитель = "Объект.КурсЧислитель";
СтруктураПараметров.КурсЗнаменатель = "Объект.КурсЗнаменатель";
СтруктураПараметров.ПутьКДаннымТЧ = "Объект.Товары";
СтруктураПараметров.ОбъектРасчетов = "Объект.ОбъектРасчетовУпр";
СтруктураПараметров.Договор = "";
СтруктураПараметров.Менеджер = "Объект.Менеджер";
ПараметрыВзаиморасчетов.Добавить(СтруктураПараметров);
КонецЕсли;
Возврат ПараметрыВзаиморасчетов;
КонецФункции
Функция ТекстЗапросаВтТаблицаВидыЗапасовДекоратор(Запрос, ТекстыЗапроса, ДокументОбъект) Экспорт
Возврат ТекстЗапросаВтТаблицаВидыЗапасов(Запрос, ТекстыЗапроса, ДокументОбъект);
КонецФункции
Функция ТекстЗапросаВтКурсыВалютДекоратор(Запрос, ТекстыЗапроса, ДокументОбъект) Экспорт
Возврат ТекстЗапросаВтКурсыВалют(Запрос, ТекстыЗапроса, ДокументОбъект);
КонецФункции
Функция СформироватьГиперссылкуСмТакжеВРаботе(Параметры) Экспорт
Если Не ПравоДоступа("Изменение", Метаданные.Документы.РеализацияТоваровУслуг) Тогда
Возврат Неопределено;
КонецЕсли;
ТекстГиперссылки = НСтр("ru = 'Реализации товаров и услуг'");
Возврат Новый ФорматированнаяСтрока(ТекстГиперссылки,,,,"Документ.РеализацияТоваровУслуг.Форма.ФормаСписка");
КонецФункции
#Область ОснованиеДляПечати
Функция СтруктураОснованияДляПечати(Объект) Экспорт
СтруктураОснования = СтруктураОснования(Объект, Объект.ПорядокРасчетов);
Если Объект.ХозяйственнаяОперация = Перечисления.ХозяйственныеОперации.ПередачаНаКомиссию Тогда
Если ЗначениеЗаполнено(СтруктураОснования.Основание) Тогда
СтруктураОснования.Основание = СтруктураОснования.Основание + ", " + НСтр("ru='передача на комиссию'", ОбщегоНазначения.КодОсновногоЯзыка());
Иначе
СтруктураОснования.Основание = НСтр("ru='Передача на комиссию'", ОбщегоНазначения.КодОсновногоЯзыка());
КонецЕсли;
КонецЕсли;
Возврат СтруктураОснования;
КонецФункции
Функция ТаблицаОснованийДляПечати(Объект) Экспорт
ЭтоПередачаНаКомиссию = (Объект.ХозяйственнаяОперация = Перечисления.ХозяйственныеОперации.ПередачаНаКомиссию);
РеализацияЧерезКомиссионера = КомиссионнаяТорговляСервер.РеализацияЧерезКомиссионера(Объект.ХозяйственнаяОперация);
ТаблицаОснований = Новый ТаблицаЗначений;
ТаблицаОснований.Колонки.Добавить("Основание", Новый ОписаниеТипов("Строка",,,,Новый КвалификаторыСтроки(300)));
ТаблицаОснований.Колонки.Добавить("ОснованиеДата", Новый ОписаниеТипов("Дата",,,,,Новый КвалификаторыДаты(ЧастиДаты.Дата)));
ТаблицаОснований.Колонки.Добавить("ОснованиеНомер", Новый ОписаниеТипов("Строка",,,,Новый КвалификаторыСтроки(128)));
Если РеализацияЧерезКомиссионера Тогда
ДобавленнаяСтрока = ТаблицаОснований.Добавить();
ДобавленнаяСтрока.Основание = НСтр("ru='Реализация'");
Возврат ТаблицаОснований;
КонецЕсли;
СтруктураОснования = СтруктураОснования(Объект, Перечисления.ПорядокРасчетов.ПоДоговорамКонтрагентов);
Если ЗначениеЗаполнено(СтруктураОснования.Основание) Тогда
ДобавленнаяСтрока = ТаблицаОснований.Добавить();
ЗаполнитьЗначенияСвойств(ДобавленнаяСтрока, СтруктураОснования);
ДобавленнаяСтрока.Основание = СтруктураОснования.Основание + ?(ЭтоПередачаНаКомиссию, ", " + НСтр("ru='передача на комиссию'"), "");
Если ЗначениеЗаполнено(СтруктураОснования.ОснованиеДата) И ЗначениеЗаполнено(СтруктураОснования.ОснованиеНомер) Тогда
ТекстРасширенный = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
НСтр("ru = '%1 № %2 от %3'"),
СтруктураОснования.Основание, СтруктураОснования.ОснованиеНомер, Формат(СтруктураОснования.ОснованиеДата, "ДЛФ=DD"));
ТекстРасширенный = ТекстРасширенный + ?(ЭтоПередачаНаКомиссию, ", " + НСтр("ru='передача на комиссию'"), "");
ДобавленнаяСтрока = ТаблицаОснований.Добавить();
ЗаполнитьЗначенияСвойств(ДобавленнаяСтрока, СтруктураОснования);
ДобавленнаяСтрока.Основание = ТекстРасширенный;
КонецЕсли;
КонецЕсли;
СтруктураОснования = СтруктураОснования(Объект, Перечисления.ПорядокРасчетов.ПоЗаказам);
Если ЗначениеЗаполнено(СтруктураОснования.Основание) Тогда
ДобавленнаяСтрока = ТаблицаОснований.Добавить();
ЗаполнитьЗначенияСвойств(ДобавленнаяСтрока, СтруктураОснования);
ДобавленнаяСтрока.Основание = СтруктураОснования.Основание + ?(ЭтоПередачаНаКомиссию, ", " + НСтр("ru='передача на комиссию'"), "");
КонецЕсли;
Если ЭтоПередачаНаКомиссию И ТаблицаОснований.Количество()=0 Тогда
ДобавленнаяСтрока = ТаблицаОснований.Добавить();
ДобавленнаяСтрока.Основание = НСтр("ru='Передача на комиссию'");
КонецЕсли;
Возврат ТаблицаОснований;
КонецФункции
#КонецОбласти
Функция ТекстОтраженияВРеглУчете() Экспорт
Возврат РеализацияТоваровУслугЛокализация.ТекстОтраженияВРеглУчете();
КонецФункции
Функция ТекстЗапросаВТОтраженияВРеглУчете() Экспорт
Возврат РеализацияТоваровУслугЛокализация.ТекстЗапросаВТОтраженияВРеглУчете();
КонецФункции
Функция ТекстЗапросаЗаполненияСтатусовУказанияСерий(ПараметрыУказанияСерий) Экспорт
ТекстЗапроса =
"ВЫБРАТЬ
| Товары.Склад КАК Склад,
| Товары.Номенклатура КАК Номенклатура,
| Товары.Характеристика КАК Характеристика,
| Товары.Назначение КАК Назначение,
| Товары.Серия КАК Серия,
| Товары.Количество КАК Количество,
| Товары.СтатусУказанияСерий КАК СтатусУказанияСерий,
| Товары.НомерСтроки КАК НомерСтроки
|ПОМЕСТИТЬ Товары
|ИЗ
| &Товары КАК Товары
|;
|
|
|ВЫБРАТЬ
| Товары.Склад КАК Склад,
| Товары.Номенклатура КАК Номенклатура,
| Товары.Характеристика КАК Характеристика,
| Товары.Назначение КАК Назначение,
| СУММА(Товары.Количество) КАК Количество,
| ВЫРАЗИТЬ(Товары.Номенклатура КАК Справочник.Номенклатура).ВидНоменклатуры КАК ВидНоменклатуры
|ПОМЕСТИТЬ ТоварыДляЗапроса
|ИЗ
| Товары КАК Товары
|СГРУППИРОВАТЬ ПО
| Товары.Склад,
| Товары.Номенклатура,
| Товары.Характеристика,
| Товары.Назначение,
| ВЫРАЗИТЬ(Товары.Номенклатура КАК Справочник.Номенклатура).ВидНоменклатуры
|;
|
|
|ВЫБРАТЬ
| Серии.Склад КАК Склад,
| Серии.Номенклатура КАК Номенклатура,
| Серии.Характеристика КАК Характеристика,
| Серии.Назначение КАК Назначение,
| Серии.Количество КАК Количество
|ПОМЕСТИТЬ Серии
|ИЗ
| &Серии КАК Серии
|;
|
|
|ВЫБРАТЬ
| Серии.Склад КАК Склад,
| Серии.Номенклатура КАК Номенклатура,
| Серии.Характеристика КАК Характеристика,
| Серии.Назначение КАК Назначение,
| СУММА(Серии.Количество) КАК Количество
|ПОМЕСТИТЬ СерииДляЗапроса
|ИЗ
| Серии КАК Серии
|СГРУППИРОВАТЬ ПО
| Серии.Склад,
| Серии.Номенклатура,
| Серии.Характеристика,
| Серии.Назначение
|;
|
|
|ВЫБРАТЬ
| Товары.НомерСтроки КАК НомерСтроки,
| Товары.СтатусУказанияСерий КАК СтарыйСтатусУказанияСерий,
| ВЫБОР
| КОГДА ПолитикиУчетаСерий.ПолитикаУчетаСерий ЕСТЬ NULL
| ТОГДА 0
| КОГДА ПолитикиУчетаСерий.ПолитикаУчетаСерий.УчитыватьСебестоимостьПоСериям
| ТОГДА ВЫБОР
| КОГДА Товары.Серия <> ЗНАЧЕНИЕ(Справочник.СерииНоменклатуры.ПустаяСсылка)
| ТОГДА 14
| ИНАЧЕ 13
| КОНЕЦ
| КОГДА &ТолькоСерииДляСебестоимости
| ТОГДА 0
| КОГДА ПолитикиУчетаСерий.ПолитикаУчетаСерий.УказыватьПриПланированииОтгрузки
| ТОГДА ВЫБОР
| КОГДА Товары.Серия <> ЗНАЧЕНИЕ(Справочник.СерииНоменклатуры.ПустаяСсылка)
| ТОГДА 10
| ИНАЧЕ 9
| КОНЕЦ
| КОГДА Склады.ИспользоватьОрдернуюСхемуПриОтгрузке
| И &Дата >= Склады.ДатаНачалаОрдернойСхемыПриОтгрузке
| ТОГДА 0
| КОГДА ПолитикиУчетаСерий.ПолитикаУчетаСерий.УказыватьПриПланированииОтбора
| И &ПланированиеОтбора
| ТОГДА ВЫБОР
| КОГДА ПолитикиУчетаСерий.ПолитикаУчетаСерий.УчетСерийПоFEFO
| ТОГДА ВЫБОР
| КОГДА ТоварыДляЗапроса.Количество = ЕСТЬNULL(СерииДляЗапроса.Количество, 0)
| И ТоварыДляЗапроса.Количество > 0
| ТОГДА 6
| ИНАЧЕ 5
| КОНЕЦ
| ИНАЧЕ ВЫБОР
| КОГДА ТоварыДляЗапроса.Количество = ЕСТЬNULL(СерииДляЗапроса.Количество, 0)
| И ТоварыДляЗапроса.Количество > 0
| ТОГДА 8
| ИНАЧЕ 7
| КОНЕЦ
| КОНЕЦ
| КОГДА ПолитикиУчетаСерий.ПолитикаУчетаСерий.УказыватьПоФактуОтбора
| И НЕ (Склады.ИспользоватьОрдернуюСхемуПриОтгрузке
| И &Дата >= Склады.ДатаНачалаОрдернойСхемыПриОтгрузке)
| И &ФактОтбора
| И ПолитикиУчетаСерий.ПолитикаУчетаСерий.УказыватьПриОтгрузкеКлиенту
| ТОГДА ВЫБОР
| КОГДА ПолитикиУчетаСерий.ПолитикаУчетаСерий.УчитыватьОстаткиСерий
| ТОГДА ВЫБОР
| КОГДА ТоварыДляЗапроса.Количество = ЕСТЬNULL(СерииДляЗапроса.Количество, 0)
| И ТоварыДляЗапроса.Количество > 0
| ТОГДА 4
| ИНАЧЕ 3
| КОНЕЦ
| ИНАЧЕ ВЫБОР
| КОГДА ТоварыДляЗапроса.Количество = ЕСТЬNULL(СерииДляЗапроса.Количество, 0)
| И ТоварыДляЗапроса.Количество > 0
| ТОГДА 2
| ИНАЧЕ 1
| КОНЕЦ
| КОНЕЦ
| ИНАЧЕ 0
| КОНЕЦ КАК СтатусУказанияСерий,
| ВЫБОР
| КОГДА ТоварыДляЗапроса.ВидНоменклатуры.ПолитикаУчетаСерий ЕСТЬ NULL
| ТОГДА 0
| ИНАЧЕ ВЫБОР
| КОГДА ТоварыДляЗапроса.ВидНоменклатуры.ПолитикаУчетаСерий.УчитыватьСебестоимостьПоСериям
| ТОГДА ВЫБОР
| КОГДА &ОперацияДокумента В (ЗНАЧЕНИЕ(Перечисление.ХозяйственныеОперации.РеализацияЧерезКомиссионера),
| ЗНАЧЕНИЕ(Перечисление.ХозяйственныеОперации.РеализацияЧерезКомиссионераБезПереходаПраваСобственности))
| И ТоварыДляЗапроса.ВидНоменклатуры.ПолитикаУчетаСерий.УчетСерийВПереданныхНаКомиссиюТоваров
| ИЛИ &ОперацияДокумента = ЗНАЧЕНИЕ(Перечисление.ХозяйственныеОперации.ПереходПраваСобственности)
| И ТоварыДляЗапроса.ВидНоменклатуры.ПолитикаУчетаСерий.УчетСерийТоваровОтгруженныхКлиенту
| ТОГДА ВЫБОР
| КОГДА Товары.Серия <> ЗНАЧЕНИЕ(Справочник.СерииНоменклатуры.ПустаяСсылка)
| ТОГДА 18
| ИНАЧЕ 17
| КОНЕЦ
| ИНАЧЕ 0
| КОНЕЦ
| ИНАЧЕ 0
| КОНЕЦ
| КОНЕЦ КАК СтатусУказанияСерийПереданныхТоваров
|ПОМЕСТИТЬ Статусы
|ИЗ
| Товары КАК Товары
| ЛЕВОЕ СОЕДИНЕНИЕ ТоварыДляЗапроса КАК ТоварыДляЗапроса
| ЛЕВОЕ СОЕДИНЕНИЕ СерииДляЗапроса КАК СерииДляЗапроса
| ПО ТоварыДляЗапроса.Номенклатура = СерииДляЗапроса.Номенклатура
| И ТоварыДляЗапроса.Характеристика = СерииДляЗапроса.Характеристика
| И ТоварыДляЗапроса.Назначение = СерииДляЗапроса.Назначение
| И ТоварыДляЗапроса.Склад = СерииДляЗапроса.Склад
| ЛЕВОЕ СОЕДИНЕНИЕ Справочник.ВидыНоменклатуры.ПолитикиУчетаСерий КАК ПолитикиУчетаСерий
| ВНУТРЕННЕЕ СОЕДИНЕНИЕ Справочник.Склады КАК Склады
| ПО ПолитикиУчетаСерий.Склад = Склады.Ссылка
| ПО (ПолитикиУчетаСерий.Склад = ТоварыДляЗапроса.Склад)
| И ТоварыДляЗапроса.ВидНоменклатуры = ПолитикиУчетаСерий.Ссылка
| ПО Товары.Номенклатура = ТоварыДляЗапроса.Номенклатура
| И Товары.Характеристика = ТоварыДляЗапроса.Характеристика
| И Товары.Назначение = ТоварыДляЗапроса.Назначение
| И Товары.Склад = ТоварыДляЗапроса.Склад
|;
|
|
|ВЫБРАТЬ
| Статусы.НомерСтроки КАК НомерСтроки,
| ВЫБОР
| КОГДА Статусы.СтатусУказанияСерий = 0
| ТОГДА Статусы.СтатусУказанияСерийПереданныхТоваров
| ИНАЧЕ Статусы.СтатусУказанияСерий
| КОНЕЦ КАК СтатусУказанияСерий
|ИЗ
| Статусы КАК Статусы
|ГДЕ
| ВЫБОР
| КОГДА Статусы.СтатусУказанияСерий = 0
| ТОГДА Статусы.СтатусУказанияСерийПереданныхТоваров
| ИНАЧЕ Статусы.СтатусУказанияСерий
| КОНЕЦ <> Статусы.СтарыйСтатусУказанияСерий
|
|УПОРЯДОЧИТЬ ПО
| НомерСтроки";
Возврат ТекстЗапроса;
КонецФункции
#Область ПроверкиПриСменеСтатуса
Функция СформироватьЗапросПроверкиПриСменеСтатуса(МассивДокументов, НовыйСтатус, ДополнительныеПараметры) Экспорт
ЗначениеНовогоСтатуса = Перечисления.СтатусыРеализацийТоваровУслуг[НовыйСтатус];
ТекстЗапроса =
"ВЫБРАТЬ
| ТаблицаДокументов.Ссылка КАК Ссылка,
| ПРЕДСТАВЛЕНИЕ(ТаблицаДокументов.Ссылка) КАК Представление,
| ПРЕДСТАВЛЕНИЕ(ТаблицаДокументов.Статус) КАК ПредставлениеТекущегоСтатуса,
| ПРЕДСТАВЛЕНИЕ(&Статус) КАК ПредставлениеНовогоСтатуса,
| ВЫБОР
| КОГДА ТаблицаДокументов.Статус = &Статус ТОГДА
| ИСТИНА
| ИНАЧЕ
| ЛОЖЬ
| КОНЕЦ КАК СтатусСовпадает,
| ТаблицаДокументов.Проведен КАК Проведен,
| ТаблицаДокументов.ПометкаУдаления КАК ПометкаУдаления,
| ИСТИНА КАК ЗаписьПроведением,
| ТаблицаДокументов.РеализацияПоЗаказам КАК РеализацияПоЗаказам,
| ВЫБОР
| КОГДА ТаблицаДокументов.ХозяйственнаяОперация = ЗНАЧЕНИЕ(Перечисление.ХозяйственныеОперации.РеализацияКлиентуРеглУчет) ТОГДА
| ИСТИНА
| ИНАЧЕ
| ЛОЖЬ
| КОНЕЦ КАК ЭтоРеализацияКлиентуРеглУчет,
| ВЫБОР
| КОГДА ТаблицаДокументов.ХозяйственнаяОперация = ЗНАЧЕНИЕ(Перечисление.ХозяйственныеОперации.ПередачаНаКомиссию) ТОГДА
| ИСТИНА
| ИНАЧЕ
| ЛОЖЬ
| КОНЕЦ КАК ЭтоПередачаНаКомиссию,
| ВЫБОР
| КОГДА ТаблицаДокументов.ХозяйственнаяОперация В
| (ЗНАЧЕНИЕ(Перечисление.ХозяйственныеОперации.РеализацияБезПереходаПраваСобственности),
| ЗНАЧЕНИЕ(Перечисление.ХозяйственныеОперации.РеализацияЧерезКомиссионераБезПереходаПраваСобственности)) ТОГДА
| ИСТИНА
| ИНАЧЕ
| ЛОЖЬ
| КОНЕЦ КАК ЭтоРеализацияБезПереходаПраваСобственности,
| ТаблицаДокументов.Дата КАК Дата,
| ВЫБОР
| КОГДА НаличиеКорректировок.ДокументОснование ЕСТЬ NULL
| ТОГДА ЛОЖЬ
| ИНАЧЕ ИСТИНА
| КОНЕЦ КАК ЕстьКорректировки,
| &ИспользоватьКорректировкиРеализаций КАК ИспользоватьКорректировкиРеализаций,
| ТаблицаДокументов.ДатаПереходаПраваСобственности КАК ДатаПереходаПраваСобственности,
| ТаблицаДокументов.ХозяйственнаяОперация КАК ХозяйственнаяОперация
|
|ИЗ
| Документ.РеализацияТоваровУслуг КАК ТаблицаДокументов
| ЛЕВОЕ СОЕДИНЕНИЕ (ВЫБРАТЬ РАЗЛИЧНЫЕ
| ДанныеДокумента.ДокументОснование КАК ДокументОснование
| ИЗ
| Документ.КорректировкаРеализации КАК ДанныеДокумента
| ГДЕ
| ДанныеДокумента.ДокументОснование В(&МассивДокументов)
| И ДанныеДокумента.Проведен) КАК НаличиеКорректировок
| ПО ТаблицаДокументов.Ссылка = НаличиеКорректировок.ДокументОснование
|ГДЕ
| ТаблицаДокументов.Ссылка В(&МассивДокументов)
|";
Запрос = Новый Запрос(ТекстЗапроса);
Запрос.УстановитьПараметр("Статус", ЗначениеНовогоСтатуса);
Запрос.УстановитьПараметр("МассивДокументов", МассивДокументов);
Запрос.УстановитьПараметр("ИспользоватьКорректировкиРеализаций", ПолучитьФункциональнуюОпцию("ИспользоватьКорректировкиРеализаций"));
Возврат Запрос;
КонецФункции
Функция ПроверкаПередСменойСтатуса(ВыборкаПроверки, НовыйСтатус, ДополнительныеПараметры) Экспорт
Перем ДатаПереходаПраваСобственности;
Отказ = Ложь;
ЗначениеНовогоСтатуса = Перечисления.СтатусыРеализацийТоваровУслуг[НовыйСтатус];
Если ДополнительныеПараметры <> Неопределено Тогда
ДополнительныеПараметры.Свойство("НоваяДата", ДатаПереходаПраваСобственности);
КонецЕсли;
Если ВыборкаПроверки.ЭтоРеализацияКлиентуРеглУчет Тогда
ТекстОшибки = НСтр("ru='У документа %Документ% статус ""%Статус%"" не установлен, т.к. для реализаций с операцией ""Реализация по регл. учету"" статусы не применимы'");
ТекстОшибки = СтрЗаменить(ТекстОшибки, "%Документ%", ВыборкаПроверки.Ссылка);
ТекстОшибки = СтрЗаменить(ТекстОшибки, "%Статус%", ВыборкаПроверки.ПредставлениеНовогоСтатуса);
ОбщегоНазначенияКлиентСервер.СообщитьПользователю(ТекстОшибки, ВыборкаПроверки.Ссылка, , , Отказ);
ИначеЕсли ЗначениеНовогоСтатуса = Перечисления.СтатусыРеализацийТоваровУслуг.КПредоплате Тогда
Если ВыборкаПроверки.РеализацияПоЗаказам Тогда
Если ВыборкаПроверки.ХозяйственнаяОперация =
Перечисления.ХозяйственныеОперации.ПереходПраваСобственности Тогда
ТекстОшибки = НСтр("ru='У документа %Документ% статус ""%Статус%"" не установлен, т.к. реализация оформлена по распоряжению'");
Иначе
ТекстОшибки = НСтр("ru='У документа %Документ% статус ""%Статус%"" не установлен, т.к. реализация оформлена по заказу клиента'");
КонецЕсли;
ТекстОшибки = СтрЗаменить(ТекстОшибки, "%Документ%", ВыборкаПроверки.Ссылка);
ТекстОшибки = СтрЗаменить(ТекстОшибки, "%Статус%", ВыборкаПроверки.ПредставлениеНовогоСтатуса);
ОбщегоНазначенияКлиентСервер.СообщитьПользователю(ТекстОшибки, ВыборкаПроверки.Ссылка, , , Отказ);
КонецЕсли;
Если ВыборкаПроверки.ЭтоПередачаНаКомиссию Тогда
ТекстОшибки = НСтр("ru='У документа %Документ% статус ""%Статус%"" не установлен, т.к. это передача на комиссию'");
ТекстОшибки = СтрЗаменить(ТекстОшибки, "%Документ%", ВыборкаПроверки.Ссылка);
ТекстОшибки = СтрЗаменить(ТекстОшибки, "%Статус%", ВыборкаПроверки.ПредставлениеНовогоСтатуса);
ОбщегоНазначенияКлиентСервер.СообщитьПользователю(ТекстОшибки, ВыборкаПроверки.Ссылка, , , Отказ);
КонецЕсли;
Если ВыборкаПроверки.ЕстьКорректировки И ВыборкаПроверки.ИспользоватьКорректировкиРеализаций Тогда
ТекстОшибки = НСтр("ru='У документа %Документ% статус ""%Статус%"" не установлен, т.к. на основании документа введена корректировка реализации'");
ТекстОшибки = СтрЗаменить(ТекстОшибки, "%Документ%", ВыборкаПроверки.Ссылка);
ТекстОшибки = СтрЗаменить(ТекстОшибки, "%Статус%", ВыборкаПроверки.ПредставлениеНовогоСтатуса);
ОбщегоНазначенияКлиентСервер.СообщитьПользователю(ТекстОшибки, ВыборкаПроверки.Ссылка, , , Отказ);
КонецЕсли;
ИначеЕсли ЗначениеНовогоСтатуса = Перечисления.СтатусыРеализацийТоваровУслуг.ВПути
И Не ВыборкаПроверки.ЭтоРеализацияБезПереходаПраваСобственности Тогда
ТекстОшибки = НСтр("ru='У документа %Документ% статус ""%Статус%"" не установлен, т.к. этот статус применим
|только для реализаций с операцией ""Реализация (товары в пути)""'");
ТекстОшибки = СтрЗаменить(ТекстОшибки, "%Документ%", ВыборкаПроверки.Ссылка);
ТекстОшибки = СтрЗаменить(ТекстОшибки, "%Статус%", ВыборкаПроверки.ПредставлениеНовогоСтатуса);
ОбщегоНазначенияКлиентСервер.СообщитьПользователю(ТекстОшибки, ВыборкаПроверки.Ссылка, , , Отказ);
ИначеЕсли ЗначениеНовогоСтатуса = Перечисления.СтатусыРеализацийТоваровУслуг.Отгружено
И ВыборкаПроверки.ЭтоРеализацияБезПереходаПраваСобственности
И ДатаПереходаПраваСобственности < НачалоДня(ВыборкаПроверки.Дата) Тогда
ТекстОшибки = НСтр("ru='У документа %Документ% не установлена дата перехода права собственности ""%ДатаПерехода%"",
|так как она не может быть меньше даты документа ""%Дата%""'");
ТекстОшибки = СтрЗаменить(ТекстОшибки, "%Документ%", ВыборкаПроверки.Ссылка);
ТекстОшибки = СтрЗаменить(ТекстОшибки, "%ДатаПерехода%", Формат(ДатаПереходаПраваСобственности, "ДЛФ=D"));
ТекстОшибки = СтрЗаменить(ТекстОшибки, "%Дата%", Формат(ВыборкаПроверки.Дата, "ДЛФ=D"));
ОбщегоНазначенияКлиентСервер.СообщитьПользователю(ТекстОшибки, ВыборкаПроверки.Ссылка, , , Отказ);
КонецЕсли;
Возврат НЕ Отказ;
КонецФункции
#КонецОбласти
Функция РеквизитыДокумента(ДокументСсылка) Экспорт
Запрос = Новый Запрос("
|ВЫБРАТЬ
| ДанныеДокумента.Дата КАК Дата,
| ДанныеДокумента.Организация КАК Организация,
| ДанныеДокумента.Партнер КАК Партнер,
| ДанныеДокумента.Контрагент КАК Контрагент,
| ДанныеДокумента.НаправлениеДеятельности КАК НаправлениеДеятельности,
| ДанныеДокумента.Валюта КАК Валюта,
| ДанныеДокумента.ВалютаВзаиморасчетов КАК ВалютаВзаиморасчетов,
| ДанныеДокумента.ХозяйственнаяОперация КАК ХозяйственнаяОперация,
| ДанныеДокумента.РеализацияПоЗаказам КАК РеализацияПоЗаказам,
| ДанныеДокумента.СуммаДокумента КАК СуммаДокумента,
| ДанныеДокумента.СуммаВзаиморасчетов КАК СуммаВзаиморасчетов,
| ДанныеДокумента.Проведен КАК Проведен,
| ДанныеДокумента.Договор КАК Договор,
| ДанныеДокумента.ПорядокРасчетов КАК ПорядокРасчетов,
| ДанныеДокумента.КурсЧислитель КАК Курс,
| ДанныеДокумента.КурсЗнаменатель КАК Кратность
|
|ИЗ
| Документ.РеализацияТоваровУслуг КАК ДанныеДокумента
|ГДЕ
| ДанныеДокумента.Ссылка = &ДокументСсылка
|");
Запрос.УстановитьПараметр("ДокументСсылка", ДокументСсылка);
Выборка = Запрос.Выполнить().Выбрать();
Если Выборка.Следующий() Тогда
Дата = Выборка.Дата;
Организация = Выборка.Организация;
Партнер = Выборка.Партнер;
Контрагент = Выборка.Контрагент;
Договор = Выборка.Договор;
НаправлениеДеятельности = Выборка.НаправлениеДеятельности;
ПорядокРасчетов = Выборка.ПорядокРасчетов;
Валюта = Выборка.Валюта;
ВалютаВзаиморасчетов = Выборка.ВалютаВзаиморасчетов;
ХозяйственнаяОперация = ?(ЗначениеЗаполнено(Выборка.ХозяйственнаяОперация), Выборка.ХозяйственнаяОперация, Перечисления.ХозяйственныеОперации.РеализацияКлиенту);
ПоЗаказу = Выборка.РеализацияПоЗаказам;
СуммаДокумента = Выборка.СуммаДокумента;
СуммаВзаиморасчетов = Выборка.СуммаВзаиморасчетов;
Курс = Выборка.Курс;
Кратность = Выборка.Кратность;
Иначе
Дата = Дата(1,1,1);
Организация = Справочники.Организации.ПустаяСсылка();
Партнер = Справочники.Партнеры.ПустаяСсылка();
Контрагент = Справочники.Контрагенты.ПустаяСсылка();
Договор = Справочники.ДоговорыКонтрагентов.ПустаяСсылка();
НаправлениеДеятельности = Справочники.НаправленияДеятельности.ПустаяСсылка();
ПорядокРасчетов = Перечисления.ПорядокРасчетов.ПустаяСсылка();
Валюта = Справочники.Валюты.ПустаяСсылка();
ВалютаВзаиморасчетов = Справочники.Валюты.ПустаяСсылка();
ХозяйственнаяОперация = Перечисления.ХозяйственныеОперации.РеализацияКлиенту;
ПоЗаказу = Ложь;
СуммаДокумента = 0;
СуммаВзаиморасчетов = 0;
Курс = 1;
Кратность = 1;
КонецЕсли;
СтруктураРеквизитов = Новый Структура();
СтруктураРеквизитов.Вставить("Дата", Дата);
СтруктураРеквизитов.Вставить("Организация", Организация);
СтруктураРеквизитов.Вставить("Партнер", Партнер);
СтруктураРеквизитов.Вставить("Контрагент", Контрагент);
СтруктураРеквизитов.Вставить("Договор", Договор);
СтруктураРеквизитов.Вставить("НаправлениеДеятельности", НаправлениеДеятельности);
СтруктураРеквизитов.Вставить("ПорядокРасчетов", ПорядокРасчетов);
СтруктураРеквизитов.Вставить("Валюта", Валюта);
СтруктураРеквизитов.Вставить("ВалютаВзаиморасчетов", ВалютаВзаиморасчетов);
СтруктураРеквизитов.Вставить("ХозяйственнаяОперация", ХозяйственнаяОперация);
СтруктураРеквизитов.Вставить("ПоЗаказу", ПоЗаказу);
СтруктураРеквизитов.Вставить("СуммаДокумента", СуммаДокумента);
СтруктураРеквизитов.Вставить("СуммаВзаиморасчетов", СуммаВзаиморасчетов);
СтруктураРеквизитов.Вставить("Курс", Курс);
СтруктураРеквизитов.Вставить("Кратность", Кратность);
Возврат СтруктураРеквизитов;
КонецФункции
Функция ВыполнитьПроверкиРаспоряжения(Распоряжение, Склад) Экспорт
СтруктураВозврата = Новый Структура;
СтруктураВозврата.Вставить("Операция", "");
СтруктураВозврата.Вставить("ТекстОшибки", "");
СтруктураВозврата.Вставить("ГруппаСкладовВРаспоряжении", Ложь);
СтруктураВозврата.Вставить("ДатаОтгрузки");
СтруктураВозврата.Вставить("ИспользоватьОрдернуюСхему");
Если Не ЗначениеЗаполнено(ОбщегоНазначения.ЗначениеРеквизитаОбъекта(Распоряжение, "Склад")) Тогда
ТекстОшибки = НСтр("ru = 'Не заполнено поле ""Склад"" в документе ""%Распоряжение%"". Невозможно создать ордер.'");
ТекстОшибки = СтрЗаменить(ТекстОшибки, "%Распоряжение%", Строка(Распоряжение));
СтруктураВозврата.ТекстОшибки = ТекстОшибки;
СтруктураВозврата.Операция = "Отказ";
Возврат СтруктураВозврата
КонецЕсли;
СтруктураГруппыСкладов = Новый Структура("ЭтоГруппа", "Склад.ЭтоГруппа");
ЗначениеГруппыСкладов = ОбщегоНазначения.ЗначенияРеквизитовОбъекта(Распоряжение, СтруктураГруппыСкладов);
ГруппаСкладовВРаспоряжении = ЗначениеГруппыСкладов.ЭтоГруппа;
СтруктураВозврата.ГруппаСкладовВРаспоряжении = ГруппаСкладовВРаспоряжении;
Реквизиты = Новый Структура("ДатаОтгрузки, Склад, ИспользоватьОрдернуюСхему", "Дата");
Если Не ГруппаСкладовВРаспоряжении Тогда
Реквизиты.Склад = "Склад";
Реквизиты.ИспользоватьОрдернуюСхему ="
|ВЫБОР
| КОГДА ЕстьNULL(Склад.ИспользоватьОрдернуюСхемуПриОтгрузке, Ложь)
| И Дата >= ЕстьNULL(Склад.ДатаНачалаОрдернойСхемыПриОтгрузке, ДАТАВРЕМЯ(1,1,1))
| ТОГДА ИСТИНА
| ИНАЧЕ ЛОЖЬ
|КОНЕЦ";
ЗначенияРеквизитов = ОбщегоНазначения.ЗначенияРеквизитовОбъекта(Распоряжение, Реквизиты);
ИспользоватьОрдернуюСхему = ЗначенияРеквизитов.ИспользоватьОрдернуюСхему;
СтруктураВозврата.ИспользоватьОрдернуюСхему = ИспользоватьОрдернуюСхему;
Если ИспользоватьОрдернуюСхему Тогда
Склад = ЗначенияРеквизитов.Склад;
ЗаполнитьЗначенияСвойств(СтруктураВозврата, ЗначенияРеквизитов, "ДатаОтгрузки");
Иначе
ТекстОшибки = НСтр("ru = 'Для склада ""%Склад%"" оформление расходных ордеров не требуется.
|Заполнение документа не выполнено.'");
СтруктураВозврата.ТекстОшибки = СтрЗаменить(ТекстОшибки, "%Склад%", Строка(ЗначенияРеквизитов.Склад));
СтруктураВозврата.Операция = "Отказ";
Возврат СтруктураВозврата;
КонецЕсли;
КонецЕсли;
Статус = ОбщегоНазначения.ЗначениеРеквизитаОбъекта(Распоряжение, "Статус");
Если Статус = Перечисления.СтатусыРеализацийТоваровУслуг.КПредоплате Тогда
ХозяйственнаяОперация = ОбщегоНазначения.ЗначениеРеквизитаОбъекта(Распоряжение, "ХозяйственнаяОперация");
Если ХозяйственнаяОперация = Перечисления.ХозяйственныеОперации.РеализацияБезПереходаПраваСобственности Тогда
ТекстОшибки = НСтр("ru='Распоряжение ""%Распоряжение%"" находится в статусе ""%Статус%"".
|Ввод расходного ордера на основании текущего распоряжения разрешен только в статусах ""К отгрузке"", ""В пути"" и ""Реализовано"".'");
Иначе
ТекстОшибки = НСтр("ru='Распоряжение ""%Распоряжение%"" находится в статусе ""%Статус%"".
|Ввод расходного ордера на основании текущего распоряжения разрешен только в статусах ""К отгрузке"" и ""Реализовано"".'");
КонецЕсли;
ТекстОшибки = СтрЗаменить(ТекстОшибки, "%Распоряжение%", Строка(Распоряжение));
ТекстОшибки = СтрЗаменить(ТекстОшибки, "%Статус%", Строка(Статус));
СтруктураВозврата.ТекстОшибки = ТекстОшибки;
СтруктураВозврата.Операция = "Отказ";
Возврат СтруктураВозврата
КонецЕсли;
Если ГруппаСкладовВРаспоряжении Тогда
Если Не ЗначениеЗаполнено(Склад) Тогда
МассивСкладов = Документы.РасходныйОрдерНаТовары.ОрдерныеСкладыПриОтгрузке(Распоряжение, Неопределено);
Если МассивСкладов.Количество() = 0 Тогда
ТекстОшибки = НСтр("ru = 'Для складов документа ""%Распоряжение%"" оформление приходных ордеров не требуется.
|Заполнение документа не выполнено.'");
ТекстОшибки = СтрЗаменить(ТекстОшибки, "%Распоряжение%", Строка(Распоряжение));
СтруктураВозврата.ТекстОшибки = ТекстОшибки;
СтруктураВозврата.Операция = "Отказ";
Возврат СтруктураВозврата;
ИначеЕсли МассивСкладов.Количество() = 1 Тогда
Склад = МассивСкладов[0];
Иначе
СтруктураВозврата.Операция = "Возврат";
Возврат СтруктураВозврата;
КонецЕсли;
Иначе
СтруктураВозврата.Операция = "Возврат";
Возврат СтруктураВозврата;
КонецЕсли;
КонецЕсли;
Возврат СтруктураВозврата
КонецФункции
#Область СостояниеВыполненияДокументов
Функция СтруктураСостояниеВыполненияДокумента() Экспорт
СтруктураСостояние = Отчеты.СостояниеВыполненияДокументов.ИнициализироватьСтруктуруСостояниеВыполненияДокумента();
СтруктураСостояние.Вставить("ВыводитьТаблицуРасчетыСКлиентами", 1);
СтруктураСостояние.Вставить("ВыводитьТаблицыОтгрузка", 2);
СтруктураСостояние.Вставить("ЭтоНакладная", Истина);
СтруктураСостояние.Вставить("ЕстьСуммовыеПоказателиОтгрузки", Истина);
СтруктураСостояние.Вставить("ИмяТЧТоварыОтгрузка", "Товары");
СтруктураСостояние.Вставить("ИмяРегистраОтгрузкаУслуг", "РаспоряженияНаОтгрузкуИВозврат");
СтруктураСостояние.Вставить("ИмяПоляНакладнаяПоЗаказам", "РеализацияПоЗаказам");
СтруктураСостояние.Вставить("СтруктураДопЗапросов", Новый Структура("ТаблицаГрафикОплатыПоНакладной, ТекстЗапросаВТТоварыРаспоряжениеНакладнаяОтгружено",
ТекстЗапросаГрафикОплаты(), ТекстЗапросаВТТоварыРаспоряжениеНакладнаяОтгружено()));
Возврат СтруктураСостояние
КонецФункции
#КонецОбласти
Функция ПорядокОбработкиДокументаПриИзмененииНаправленияДеятельности(Форма) Экспорт
ПорядокОбработкиДокумента = НаправленияДеятельностиСервер.ПорядокОбработкиДокументаПриИзмененииНаправленияДеятельности();
ПорядокОбработкиДокумента.ИменаТабличныхЧастейДляЗаполненияНазначения = "Товары";
ТаблицаУсловий = НаправленияДеятельностиСервер.УсловияОбработкиНазначенийВСтроках("ТипНоменклатуры,КодСтроки");
ПорядокОбработкиДокумента.УсловияОбработкиСтрок.Вставить("Товары", ТаблицаУсловий);
ПорядокОбработкиДокумента.ИмяЭлементаФормыОбособленно = "ТоварыОбособленно";
ПорядокОбработкиДокумента.ИмяГруппыЭлементовКомандыОбособленно = "ТоварыГруппаКомандыОбособленно";
ПорядокОбработкиДокумента.ИмяРеквизитаПоЗаказу = "РеализацияПоЗаказам";
Возврат ПорядокОбработкиДокумента;
КонецФункции
#Область ДляВызоваИзДругихПодсистем
Процедура ПриЗаполненииОграниченияДоступа(Ограничение) Экспорт
Ограничение.Текст =
"РазрешитьЧтениеИзменение
|ГДЕ
| ЗначениеРазрешено(Организация)
| И ЗначениеРазрешено(Склад)
| И ЗначениеРазрешено(Подразделение)
| И ЗначениеРазрешено(Партнер)";
Ограничение.ТекстДляВнешнихПользователей =
"ПрисоединитьДополнительныеТаблицы
|ЭтотСписок КАК ЭтотСписок
|
|ЛЕВОЕ СОЕДИНЕНИЕ Справочник.ВнешниеПользователи КАК ВнешниеПользователиПартнеры
| ПО ВнешниеПользователиПартнеры.ОбъектАвторизации = ЭтотСписок.Партнер
|
|ЛЕВОЕ СОЕДИНЕНИЕ Справочник.КонтактныеЛицаПартнеров КАК КонтактныеЛицаПартнеров
| ПО КонтактныеЛицаПартнеров.Владелец = ЭтотСписок.Партнер
|
|ЛЕВОЕ СОЕДИНЕНИЕ Справочник.ВнешниеПользователи КАК ВнешниеПользователиКонтактныеЛица
| ПО ВнешниеПользователиКонтактныеЛица.ОбъектАвторизации = КонтактныеЛицаПартнеров.Ссылка
|;
|РазрешитьЧтениеИзменение
|ГДЕ
| ЗначениеРазрешено(ВнешниеПользователиПартнеры.Ссылка)
| ИЛИ ЗначениеРазрешено(ВнешниеПользователиКонтактныеЛица.Ссылка)";
КонецПроцедуры
#КонецОбласти
#Область УчетНДС
Функция ПараметрыРегистрацииСчетовФактурВыданных(Объект) Экспорт
ПараметрыРегистрации = УчетНДСУПКлиентСервер.ПараметрыРегистрацииСчетовФактурВыданных();
ПараметрыРегистрации.Ссылка = Объект.Ссылка;
ПараметрыРегистрации.Дата = Объект.Дата;
ПараметрыРегистрации.Организация = Объект.Организация;
ПараметрыРегистрации.Контрагент = Объект.Контрагент;
ПараметрыРегистрации.НалогообложениеНДС = Объект.НалогообложениеНДС;
ПараметрыРегистрации.РеализацияЧерезКомиссионера =
КомиссионнаяТорговляСервер.РеализацияЧерезКомиссионера(Объект.ХозяйственнаяОперация);
ПараметрыРегистрации.ПереходПраваСобственности = (Объект.ХозяйственнаяОперация = Перечисления.ХозяйственныеОперации.ПереходПраваСобственности);
ИспользоватьСтатусыРеализацийТоваровУслуг = ПолучитьФункциональнуюОпцию("ИспользоватьСтатусыРеализацийТоваровУслуг");
Если (НЕ ИспользоватьСтатусыРеализацийТоваровУслуг) ИЛИ
(ИспользоватьСтатусыРеализацийТоваровУслуг И
Объект.Статус <> Перечисления.СтатусыРеализацийТоваровУслуг.КПредоплате) Тогда
Если Объект.ХозяйственнаяОперация = Перечисления.ХозяйственныеОперации.ПередачаНаКомиссию Тогда
ПараметрыРегистрации.ПередачаНаКомиссию = Истина;
Иначе
ПараметрыРегистрации.РеализацияТоваров = Истина;
ПараметрыРегистрации.РеализацияРаботУслуг = Истина;
КонецЕсли;
КонецЕсли;
Возврат ПараметрыРегистрации;
КонецФункции
Функция ПараметрыРегистрацииУведомленийОПеремещенииПрослеживаемыхТоваров(Объект) Экспорт
ПараметрыРегистрации = Новый Структура;
ПараметрыРегистрации.Вставить("Ссылка", Объект.Ссылка);
ПараметрыРегистрации.Вставить("Дата", Объект.Дата);
ПараметрыРегистрации.Вставить("Организация", Объект.Организация);
ПараметрыРегистрации.Вставить("Контрагент", Объект.Контрагент);
ПараметрыРегистрации.Вставить("Склад", Объект.Склад);
ПараметрыРегистрации.Вставить("НалогообложениеНДС", Объект.НалогообложениеНДС);
ПараметрыРегистрации.Вставить("ПродажаВСтраныТаможенногоСоюза", Ложь);
ПараметрыРегистрации.Вставить("ВедетсяУчетПоРНПТ", Ложь);
ПараметрыРегистрации.Вставить("ПереходПраваСобственности", (Объект.ХозяйственнаяОперация = Перечисления.ХозяйственныеОперации.ПереходПраваСобственности));
Если ЗначениеЗаполнено(Объект.Контрагент) Тогда
ЗначенияРеквизитовКонтрагента = ОбщегоНазначения.ЗначенияРеквизитовОбъекта(Объект.Контрагент, "ЮрФизЛицо,СтранаРегистрации.УчастникЕАЭС");
Если ЗначенияРеквизитовКонтрагента.ЮрФизЛицо = ПредопределенноеЗначение("Перечисление.ЮрФизЛицо.ЮрЛицоНеРезидент")
И ЗначениеЗаполнено(ЗначенияРеквизитовКонтрагента.СтранаРегистрацииУчастникЕАЭС)
И ЗначенияРеквизитовКонтрагента.СтранаРегистрацииУчастникЕАЭС Тогда
ПараметрыРегистрации.ПродажаВСтраныТаможенногоСоюза = Истина;
Если Объект.Товары.НайтиСтроки(Новый Структура("ВедетсяУчетПоРНПТ", Истина)).Количество() Тогда
ПараметрыРегистрации.ВедетсяУчетПоРНПТ = Истина;
КонецЕсли;
КонецЕсли;
КонецЕсли;
Возврат ПараметрыРегистрации;
КонецФункции
#КонецОбласти
Процедура ЗадатьОписаниеЗаполняемыхРеквизитовПоСтатистике(ОписаниеРеквизитов) Экспорт
Параметры = ЗаполнениеОбъектовПоСтатистике.ПараметрыЗаполняемыхРеквизитов();
Параметры.РазрезыСбораСтатистики.ИспользоватьВсегда = "Автор";
Параметры.РазрезыСбораСтатистики.ИспользоватьТолькоЗаполненные = "Партнер, Соглашение";
Параметры.ЗаполнятьПриУсловии.ПоляОбъектаЗаполнены = "Автор";
ЗаполнениеОбъектовПоСтатистике.ДобавитьОписаниеЗаполняемыхРеквизитов(ОписаниеРеквизитов, "Организация", Параметры);
Параметры = ЗаполнениеОбъектовПоСтатистике.ПараметрыЗаполняемыхРеквизитов();
Параметры.РазрезыСбораСтатистики.ИспользоватьВсегда = "Автор, ЗаказКлиента, Менеджер";
Параметры.РазрезыСбораСтатистики.ИспользоватьТолькоЗаполненные = "Партнер, Соглашение";
Параметры.ЗаполнятьПриУсловии.ПоляОбъектаЗаполнены = "Автор";
ЗаполнениеОбъектовПоСтатистике.ДобавитьОписаниеЗаполняемыхРеквизитов(ОписаниеРеквизитов, "Подразделение", Параметры);
Параметры = ЗаполнениеОбъектовПоСтатистике.ПараметрыЗаполняемыхРеквизитов();
Параметры.РазрезыСбораСтатистики.ИспользоватьВсегда = "Автор";
Параметры.РазрезыСбораСтатистики.ИспользоватьТолькоЗаполненные = "Партнер, Соглашение";
Параметры.ЗаполнятьПриУсловии.ПоляОбъектаЗаполнены = "Автор";
Параметры.ЗаполнятьПриУсловии.ПоляОбъектаПусты = "ЗаказКлиента";
ЗаполнениеОбъектовПоСтатистике.ДобавитьОписаниеЗаполняемыхРеквизитов(ОписаниеРеквизитов, "Склад", Параметры);
Параметры = ЗаполнениеОбъектовПоСтатистике.ПараметрыЗаполняемыхРеквизитов();
Параметры.РазрезыСбораСтатистики.ИспользоватьВсегда = "Организация";
Параметры.РазрезыСбораСтатистики.ИспользоватьТолькоЗаполненные = "Договор, Валюта";
Параметры.ЗаполнятьПриУсловии.ПоляОбъектаЗаполнены = "Организация";
ЗаполнениеОбъектовПоСтатистике.ДобавитьОписаниеЗаполняемыхРеквизитов(ОписаниеРеквизитов, "БанковскийСчетОрганизации", Параметры);
Параметры = ЗаполнениеОбъектовПоСтатистике.ПараметрыЗаполняемыхРеквизитов();
Параметры.РазрезыСбораСтатистики.ИспользоватьВсегда = "Автор, Организация";
Параметры.РазрезыСбораСтатистики.ИспользоватьТолькоЗаполненные = "Валюта";
Параметры.ЗаполнятьПриУсловии.ПоляОбъектаЗаполнены = "Автор, Организация";
ЗаполнениеОбъектовПоСтатистике.ДобавитьОписаниеЗаполняемыхРеквизитов(ОписаниеРеквизитов, "Касса", Параметры);
Параметры = ЗаполнениеОбъектовПоСтатистике.ПараметрыЗаполняемыхРеквизитов();
Параметры.РазрезыСбораСтатистики.ИспользоватьВсегда = "Контрагент";
Параметры.РазрезыСбораСтатистики.ИспользоватьТолькоЗаполненные = "Договор, Валюта";
Параметры.ЗаполнятьПриУсловии.ПоляОбъектаЗаполнены = "Контрагент";
ЗаполнениеОбъектовПоСтатистике.ДобавитьОписаниеЗаполняемыхРеквизитов(ОписаниеРеквизитов, "БанковскийСчетКонтрагента", Параметры);
Параметры = ЗаполнениеОбъектовПоСтатистике.ПараметрыЗаполняемыхРеквизитов();
Параметры.РазрезыСбораСтатистики.ИспользоватьВсегда = "Склад, Менеджер";
Параметры.ЗаполнятьПриУсловии.ПоляОбъектаЗаполнены = "Склад";
ЗаполнениеОбъектовПоСтатистике.ДобавитьОписаниеЗаполняемыхРеквизитов(ОписаниеРеквизитов, "Отпустил", Параметры);
Параметры = ЗаполнениеОбъектовПоСтатистике.ПараметрыЗаполняемыхРеквизитов();
Параметры.РазрезыСбораСтатистики.ИспользоватьВсегда = "Склад, Менеджер";
Параметры.РазрезыСбораСтатистики.ИспользоватьТолькоЗаполненные = "Отпустил";
Параметры.ЗаполнятьПриУсловии.ПоляОбъектаЗаполнены = "Склад";
ЗаполнениеОбъектовПоСтатистике.ДобавитьОписаниеЗаполняемыхРеквизитов(ОписаниеРеквизитов, "ОтпустилДолжность", Параметры);
КонецПроцедуры
#Область Печать
Функция ПравилаПечатиЗаданияНаОтборРазмещение() Экспорт
ПравилаПечатиЗадания = Обработки.ПечатьЗаданияНаОтборРазмещениеТоваров.ПравилаПечатиЗаданияНаОтборРазмещение();
ПравилаПечатиЗадания.СкладыВТЧ = Истина;
Возврат ПравилаПечатиЗадания;
КонецФункции
#КонецОбласти
Функция КоллекцияТабличныхЧастейТоваров() Экспорт
ТаблицыДокумента = Новый Структура("Товары");
Возврат ТаблицыДокумента;
КонецФункции
#Область ПодакцизныеТовары
Функция ИспользуютсяПодакцизныеТовары(ДокументОбъект) Экспорт
Если Не ПолучитьФункциональнуюОпцию("ИспользоватьПодакцизныеТовары") Тогда
Возврат Ложь;
КонецЕсли;
Возврат ОперацииОблагаемыеАкцизом().Найти(ДокументОбъект.ХозяйственнаяОперация) <> Неопределено;
КонецФункции
#КонецОбласти
#Область НеоперативноеДопроведение
Функция ПолучитьДанныеПоАкцизам(ДокументСсылка) Экспорт
ТекстЗапроса =
"ВЫБРАТЬ
| ДанныеДокумента.Ссылка КАК Ссылка,
| ДанныеДокумента.Дата КАК Период,
| ДанныеДокумента.Организация КАК Организация,
| ДанныеДокумента.Статус КАК Статус,
| ЕСТЬNULL(ДанныеДокумента.Контрагент.СтранаРегистрации.УчастникЕАЭС, ЛОЖЬ) КАК КонтрагентУчастникЕАЭС,
| ДанныеДокумента.ДатаПереходаПраваСобственности КАК ДатаПереходаПраваСобственности,
| ДанныеДокумента.ХозяйственнаяОперация КАК ХозяйственнаяОперация,
| ДанныеДокумента.НаправлениеДеятельности КАК НаправлениеДеятельности,
| ДанныеДокумента.НалогообложениеНДС КАК НалогообложениеНДС
|ИЗ
| Документ.РеализацияТоваровУслуг КАК ДанныеДокумента
|ГДЕ
| ДанныеДокумента.Ссылка = &Ссылка";
Запрос = Новый Запрос;
Запрос.Текст = ТекстЗапроса;
Запрос.УстановитьПараметр("Ссылка", ДокументСсылка);
Результат = Запрос.Выполнить();
Реквизиты = Результат.Выбрать();
Реквизиты.Следующий();
Для Каждого Колонка Из Результат.Колонки Цикл
Запрос.УстановитьПараметр(Колонка.Имя, Реквизиты[Колонка.Имя]);
КонецЦикла;
ТекстЗапроса =
"ВЫБРАТЬ
| ТаблицаВидыЗапасов.Ссылка КАК Ссылка,
| ТаблицаВидыЗапасов.Количество КАК Количество,
| ТаблицаВидыЗапасов.СуммаАкциза КАК СуммаАкциза,
| ТаблицаВидыЗапасов.АналитикаУчетаНоменклатуры.Номенклатура КАК АналитикаУчетаНоменклатурыНоменклатура,
| ТаблицаВидыЗапасов.ВидЗапасов.ОблагаетсяАкцизом КАК ОблагаетсяАкцизом,
| ТаблицаВидыЗапасов.ВидЗапасов.ПодразделениеПроизводства КАК ПодразделениеПроизводства,
| ТаблицаВидыЗапасов.ИдентификаторСтроки КАК ИдентификаторСтроки,
| ВЫРАЗИТЬ(ТаблицаВидыЗапасов.СуммаАкциза * &КоэффициентПересчетаИзРеглВУпр
| КАК ЧИСЛО(31,2)) КАК СуммаАкцизаУпр
|ПОМЕСТИТЬ ДанныеДокументаТаблицаВидыЗапасов
|ИЗ
| Документ.РеализацияТоваровУслуг.ВидыЗапасов КАК ТаблицаВидыЗапасов
|ГДЕ
| ТаблицаВидыЗапасов.Ссылка = &Ссылка
|
|;
|ВЫБРАТЬ
| ТаблицаКатегории.Номенклатура КАК Номенклатура,
| ТаблицаКатегории.КатегорияПодакцизногоТовара КАК КатегорияПодакцизногоТовара,
| ТаблицаКатегории.КоэффициентПересчета КАК КоэффициентПересчета
|ПОМЕСТИТЬ ВтКатегорииПодакцизныхТоваров
|ИЗ
| РегистрСведений.КатегорииПодакцизныхТоваров.СрезПоследних(&Период, (Номенклатура, Страна) В
| (ВЫБРАТЬ
| Т.АналитикаУчетаНоменклатурыНоменклатура КАК Номенклатура,
| &СтранаРегистрации КАК Страна
| ИЗ
| ДанныеДокументаТаблицаВидыЗапасов КАК Т)) КАК ТаблицаКатегории
|ГДЕ
| ТаблицаКатегории.ПодакцизныйТовар
|;
|ВЫБРАТЬ
| ВЫБОР
| КОГДА &ХозяйственнаяОперация = ЗНАЧЕНИЕ(Перечисление.ХозяйственныеОперации.РеализацияБезПереходаПраваСобственности)
| И &Статус = ЗНАЧЕНИЕ(Перечисление.СтатусыРеализацийТоваровУслуг.Отгружено)
| ТОГДА &ДатаПереходаПраваСобственности
| КОГДА &ХозяйственнаяОперация = ЗНАЧЕНИЕ(Перечисление.ХозяйственныеОперации.РеализацияЧерезКомиссионераБезПереходаПраваСобственности)
| И &Статус = ЗНАЧЕНИЕ(Перечисление.СтатусыРеализацийТоваровУслуг.Отгружено)
| ТОГДА &ДатаПереходаПраваСобственности
| ИНАЧЕ &Период
| КОНЕЦ КАК Период,
| &Организация КАК Организация,
| ТаблицаВидыЗапасов.ПодразделениеПроизводства КАК ПодразделениеУплатыАкциза,
| &НаправлениеДеятельности КАК НаправлениеДеятельности,
| ТаблицаВидыЗапасов.АналитикаУчетаНоменклатурыНоменклатура КАК Номенклатура,
| ТаблицаПодакцизныеКатегории.КатегорияПодакцизногоТовара КАК КатегорияПодакцизногоТовара,
| ВЫБОР
| КОГДА &НалогообложениеНДС = ЗНАЧЕНИЕ(Перечисление.ТипыНалогообложенияНДС.ПродажаНаЭкспорт)
| И &КонтрагентУчастникЕАЭС
| ТОГДА ЗНАЧЕНИЕ(Перечисление.ВидыОперацийСПодакцизнымТоваром.ЭкспортЕАЭС)
| КОГДА &НалогообложениеНДС = ЗНАЧЕНИЕ(Перечисление.ТипыНалогообложенияНДС.ПродажаНаЭкспорт)
| ТОГДА ЗНАЧЕНИЕ(Перечисление.ВидыОперацийСПодакцизнымТоваром.Экспорт)
| ИНАЧЕ ЗНАЧЕНИЕ(Перечисление.ВидыОперацийСПодакцизнымТоваром.Реализация)
| КОНЕЦ КАК ВидОперацииСПодакцизнымТоваром,
| ТаблицаВидыЗапасов.Количество КАК Количество,
| ВЫБОР КОГДА ТаблицаВидыЗапасов.ОблагаетсяАкцизом
| ТОГДА ЕСТЬNULL(ТаблицаПодакцизныеКатегории.КоэффициентПересчета, 0) * ТаблицаВидыЗапасов.Количество
| ИНАЧЕ 0
| КОНЕЦ КАК КоличествоАкциза,
| ТаблицаВидыЗапасов.СуммаАкциза КАК СуммаАкцизаРегл,
| ТаблицаВидыЗапасов.СуммаАкцизаУпр КАК СуммаАкцизаУпр,
| ТаблицаВидыЗапасов.ИдентификаторСтроки КАК ИдентификаторФинЗаписи,
| НастройкиХозяйственныхОпераций.Ссылка КАК НастройкаХозяйственнойОперации
|ИЗ
| ДанныеДокументаТаблицаВидыЗапасов КАК ТаблицаВидыЗапасов
|
| ВНУТРЕННЕЕ СОЕДИНЕНИЕ ВтКатегорииПодакцизныхТоваров КАК ТаблицаПодакцизныеКатегории
| ПО ТаблицаВидыЗапасов.АналитикаУчетаНоменклатурыНоменклатура = ТаблицаПодакцизныеКатегории.Номенклатура
|
| ЛЕВОЕ СОЕДИНЕНИЕ Справочник.НастройкиХозяйственныхОпераций КАК НастройкиХозяйственныхОпераций
| ПО &ХозяйственнаяОперация = НастройкиХозяйственныхОпераций.ХозяйственнаяОперация
|ГДЕ
| &Статус = ЗНАЧЕНИЕ(Перечисление.СтатусыРеализацийТоваровУслуг.Отгружено)
| И ТаблицаПодакцизныеКатегории.КатегорияПодакцизногоТовара <> ЗНАЧЕНИЕ(Справочник.КатегорииПодакцизныхТоваров.ПустаяСсылка)
| И (ТаблицаВидыЗапасов.СуммаАкциза <> 0
| ИЛИ ТаблицаВидыЗапасов.СуммаАкцизаУпр <> 0
| ИЛИ ВЫБОР КОГДА ТаблицаВидыЗапасов.ОблагаетсяАкцизом
| ТОГДА ЕСТЬNULL(ТаблицаПодакцизныеКатегории.КоэффициентПересчета, 0) * ТаблицаВидыЗапасов.Количество
| ИНАЧЕ 0
| КОНЕЦ <> 0)
|";
СтранаРегистрации = ЗначениеНастроекКлиентСерверПовтИсп.СтранаРегистрацииОрганизации(Реквизиты.Организация);
Если (Реквизиты.ХозяйственнаяОперация = Перечисления.ХозяйственныеОперации.РеализацияБезПереходаПраваСобственности
Или Реквизиты.ХозяйственнаяОперация = Перечисления.ХозяйственныеОперации.РеализацияЧерезКомиссионераБезПереходаПраваСобственности)
И Реквизиты.Статус = Перечисления.СтатусыРеализацийТоваровУслуг.Отгружено Тогда
ПериодКурса = Реквизиты.ДатаПереходаПраваСобственности;
Иначе
ПериодКурса = Реквизиты.Период;
КонецЕсли;
ВалютаУправленческогоУчета = ЗначениеНастроекПовтИсп.ВалютаУправленческогоУчета();
ВалютаРегламентированногоУчета =
ЗначениеНастроекПовтИсп.ВалютаРегламентированногоУчетаОрганизации(Запрос.Параметры.Организация);
КоэффициентПересчетаИзРеглВУпр = РаботаСКурсамиВалютУТ.ПолучитьКоэффициентПересчетаИзВалютыВВалюту(
ВалютаРегламентированногоУчета, ВалютаУправленческогоУчета, ПериодКурса, ВалютаРегламентированногоУчета);
Запрос.Текст = ТекстЗапроса;
Запрос.УстановитьПараметр("СтранаРегистрации", СтранаРегистрации);
Запрос.УстановитьПараметр("КоэффициентПересчетаИзРеглВУпр", КоэффициентПересчетаИзРеглВУпр);
Возврат Запрос.Выполнить();
КонецФункции
#КонецОбласти
#КонецОбласти
#КонецЕсли
#Область ОбработчикиСобытий
Процедура ОбработкаПолученияПолейПредставления(Поля, СтандартнаяОбработка)
СтандартнаяОбработка = Ложь;
Поля.Добавить("Ссылка");
Поля.Добавить("Номер");
Поля.Добавить("Дата");
Поля.Добавить("ВариантОформленияПродажи");
КонецПроцедуры
Процедура ОбработкаПолученияПредставления(Данные, Представление, СтандартнаяОбработка)
Если Данные.ВариантОформленияПродажи = ПредопределенноеЗначение("Перечисление.ВариантыОформленияПродажи.АктНаПередачуПрав") Тогда
СтандартнаяОбработка = Ложь;
Представление = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
НСтр("ru = 'Акт на передачу прав %1 от %2'"),
Данные.Номер,
Данные.Дата);
КонецЕсли;
КонецПроцедуры
#КонецОбласти
#Если Сервер Или ТолстыйКлиентОбычноеПриложение Или ВнешнееСоединение Тогда
#Область СлужебныеПроцедурыИФункции
#Область Проведение
Функция ДополнительныеИсточникиДанныхДляДвижений(ИмяРегистра) Экспорт
ИсточникиДанных = Новый Соответствие;
Возврат ИсточникиДанных;
КонецФункции
Процедура ЗаполнитьПараметрыИнициализации(Запрос, ДокументСсылка)
Запрос.УстановитьПараметр("Ссылка", ДокументСсылка);
Запрос.Текст = "ВЫБРАТЬ ПЕРВЫЕ 1
| ЕСТЬNULL(ДанныеДокументаТовары.ЗаказКлиентаЭтоЗаказКакСчет, НЕОПРЕДЕЛЕНО) КАК ЭтоЗаказКакСчет
|ПОМЕСТИТЬ ДанныеДокументаТовары
|ИЗ
| ДанныеДокументаТаблицаТовары КАК ДанныеДокументаТовары
|;
|
|ВЫБРАТЬ
| ДанныеДокумента.Ссылка КАК Ссылка,
| ДанныеДокумента.Организация КАК Организация,
| ДанныеДокумента.ВалютаРегламентированногоУчета КАК ВалютаРегламентированногоУчета,
| ДанныеДокумента.Статус КАК Статус,
| ДанныеДокумента.Партнер КАК Партнер,
| ДанныеДокумента.Контрагент КАК Контрагент,
| ДанныеДокумента.КлиентПартнер КАК КлиентПартнер,
| ДанныеДокумента.КлиентКонтрагент КАК КлиентКонтрагент,
| ДанныеДокумента.КлиентДоговор КАК КлиентДоговор,
| ДанныеДокумента.КонтрагентУчастникЕАЭС КАК КонтрагентУчастникЕАЭС,
| ДанныеДокумента.КонтрагентНеРезидент КАК КонтрагентНеРезидент,
| ДанныеДокумента.Дата КАК Период,
| ДанныеДокумента.ДатаПереходаПраваСобственности КАК ДатаПереходаПраваСобственности,
| ДанныеДокумента.ЗаказКлиента КАК ЗаказКлиента,
| ДанныеДокумента.Валюта КАК Валюта,
| ДанныеДокумента.ХозяйственнаяОперация КАК ХозяйственнаяОперация,
| ДанныеДокумента.Подразделение КАК Подразделение,
| ДанныеДокумента.ВариантОбособленногоУчетаТоваров КАК ВариантОбособленногоУчетаТоваров,
| ДанныеДокумента.Склад КАК Склад,
| ДанныеДокумента.ДатаРаспоряжения КАК ДатаРаспоряжения,
| ДанныеДокумента.ЦенаВключаетНДС КАК ЦенаВключаетНДС,
| ДанныеДокумента.ВалютаВзаиморасчетов КАК ВалютаВзаиморасчетов,
| ДанныеДокумента.РеализацияПоЗаказам КАК РеализацияПоЗаказу,
| ДанныеДокумента.Соглашение КАК Соглашение,
| ДанныеДокумента.ФормаОплаты КАК ФормаОплаты,
| ДанныеДокумента.Договор КАК Договор,
| ДанныеДокумента.ВестиРасчетыЧерезКонечныхПокупателей КАК ВестиРасчетыЧерезКонечныхПокупателей,
| ДанныеДокумента.НалогообложениеНДС КАК НалогообложениеНДС,
| ДанныеДокумента.ВернутьМногооборотнуюТару КАК ВернутьМногооборотнуюТару,
| ДанныеДокумента.ТребуетсяЗалогЗаТару КАК ТребуетсяЗалогЗаТару,
| ДанныеДокумента.Менеджер КАК Менеджер,
| ДанныеДокумента.ГруппаФинансовогоУчета КАК ГруппаФинансовогоУчета,
| ДанныеДокумента.Сделка КАК Сделка,
| ДанныеДокумента.ОбособленныйУчетТоваровПоСделке КАК ОбособленныйУчетТоваровПоСделке,
| ДанныеДокумента.ЭтоПередачаНаКомиссию КАК ЭтоПередачаНаКомиссию,
| ДанныеДокумента.ДопустимаяСуммаЗадолженности КАК ДопустимаяСуммаЗадолженности,
| ДанныеДокумента.Номер КАК Номер,
| ДанныеДокумента.СуммаДокумента КАК СуммаДокумента,
| ДанныеДокумента.Комментарий КАК Комментарий,
| ДанныеДокумента.ПометкаУдаления КАК ПометкаУдаления,
| ДанныеДокумента.Проведен КАК Проведен,
| ДанныеДокумента.Автор КАК Автор,
| ДанныеДокумента.НаправлениеДеятельности КАК НаправлениеДеятельности,
| НастройкиХозяйственныхОпераций.Ссылка КАК НастройкаХозяйственнойОперации,
| ЕСТЬNULL(ДанныеДокументаТовары.ЭтоЗаказКакСчет, НЕОПРЕДЕЛЕНО) КАК ЭтоЗаказКакСчет,
| ДанныеДокумента.БонуснаяПрограммаЛояльности КАК БонуснаяПрограммаЛояльности
|
|ИЗ
| ДанныеДокументаШапка КАК ДанныеДокумента
| ЛЕВОЕ СОЕДИНЕНИЕ Справочник.НастройкиХозяйственныхОпераций КАК НастройкиХозяйственныхОпераций
| ПО ДанныеДокумента.ХозяйственнаяОперация = НастройкиХозяйственныхОпераций.ХозяйственнаяОперация
| ЛЕВОЕ СОЕДИНЕНИЕ ДанныеДокументаТовары
| ПО ИСТИНА
|";
Результат = Запрос.Выполнить();
Реквизиты = Результат.Выбрать();
Реквизиты.Следующий();
Для Каждого Колонка Из Результат.Колонки Цикл
Запрос.УстановитьПараметр(Колонка.Имя, Реквизиты[Колонка.Имя]);
КонецЦикла;
Запрос.УстановитьПараметр("ВалютаРегламентированногоУчета", Реквизиты.ВалютаРегламентированногоУчета);
Запрос.УстановитьПараметр("ВалютаУправленческогоУчета", Константы.ВалютаУправленческогоУчета.Получить());
Запрос.УстановитьПараметр("Статус", ?(ЗначениеЗаполнено(Реквизиты.Статус), Реквизиты.Статус, Перечисления.СтатусыРеализацийТоваровУслуг.Отгружено));
Запрос.УстановитьПараметр("ЦенаВключаетНДС", ?(Реквизиты.ЦенаВключаетНДС, 0, 1));
Запрос.УстановитьПараметр("РеализацияПоНесколькимЗаказам", ?(Не ЗначениеЗаполнено(Реквизиты.ЗаказКлиента), Истина, Ложь));
Запрос.УстановитьПараметр("ХозяйственнаяОперация", ?(ЗначениеЗаполнено(Реквизиты.ХозяйственнаяОперация), Реквизиты.ХозяйственнаяОперация, Перечисления.ХозяйственныеОперации.РеализацияКлиенту));
Запрос.УстановитьПараметр("ФормироватьВидыЗапасовПоГруппамФинансовогоУчета",
ПолучитьФункциональнуюОпцию("ФормироватьВидыЗапасовПоГруппамФинансовогоУчета"));
Запрос.УстановитьПараметр("ИспользоватьПродажуАгентскихУслуг", ПолучитьФункциональнуюОпцию("ИспользоватьПродажуАгентскихУслуг"));
Запрос.УстановитьПараметр("СписокТиповСАналитикойПодразделение", ПродажиСервер.ТипыНоменклатурыСАналитикойПодразделение());
ПустоеЗначениеЗаказа = ПустыеЗначенияЗаказов();
Запрос.УстановитьПараметр("ПустоеЗначениеЗаказа", ПустоеЗначениеЗаказа);
Если ЗначениеЗаполнено(Реквизиты.Договор) Тогда
ШаблонСтроки = "ru = 'По договору ""%1""'";
ИнформацияПоДоговору = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(ШаблонСтроки, Реквизиты.Договор);
КонецЕсли;
Запрос.УстановитьПараметр("ИнформацияПоДоговору", ИнформацияПоДоговору);
Запрос.УстановитьПараметр("ИдентификаторМетаданных", ОбщегоНазначения.ИдентификаторОбъектаМетаданных(ТипЗнч(ДокументСсылка)));
Запрос.УстановитьПараметр("НомерНаПечать", ПрефиксацияОбъектовКлиентСервер.НомерНаПечать(Реквизиты.Номер));
Запрос.УстановитьПараметр("НоваяАрхитектураВзаиморасчетов", ПолучитьФункциональнуюОпцию("НоваяАрхитектураВзаиморасчетов"));
Запрос.УстановитьПараметр("ВыводитьБазовыеЕдиницыИзмерения", Константы.ВыводитьБазовыеЕдиницыИзмерения.Получить());
Запрос.УстановитьПараметр("Партнер", Реквизиты.Партнер);
Запрос.УстановитьПараметр("БонуснаяПрограммаЛояльности", Реквизиты.БонуснаяПрограммаЛояльности);
Запрос.УстановитьПараметр("ТекущаяДата", ТекущаяУниверсальнаяДата());
Запрос.УстановитьПараметр("РеализацияЧерезКомиссионера", КомиссионнаяТорговляСервер.РеализацияЧерезКомиссионера(Реквизиты.ХозяйственнаяОперация));
Если ЗначениеЗаполнено(Реквизиты.Договор)
И (Реквизиты.ХозяйственнаяОперация = Перечисления.ХозяйственныеОперации.РеализацияБезПереходаПраваСобственности
ИЛИ Реквизиты.ХозяйственнаяОперация = Перечисления.ХозяйственныеОперации.РеализацияЧерезКомиссионераБезПереходаПраваСобственности) Тогда
Запрос.УстановитьПараметр("АналитикаПартнерВТоварахВПути", АналитикаПартнерВТоварахВПути(Запрос));
Иначе
Запрос.УстановитьПараметр("АналитикаПартнерВТоварахВПути", Истина);
КонецЕсли;
Если Реквизиты.ХозяйственнаяОперация = Перечисления.ХозяйственныеОперации.РеализацияБезПереходаПраваСобственности Тогда
Запрос.УстановитьПараметр("РазделУчетаКомиссионныйТоварВПути", РазделУчетаКомиссионныйТоварВПути(Запрос));
Иначе
Запрос.УстановитьПараметр("РазделУчетаКомиссионныйТоварВПути", Неопределено);
КонецЕсли;
Если Реквизиты.ЭтоЗаказКакСчет = Неопределено Тогда
Запрос.УстановитьПараметр("ИспользоватьРасширенныеВозможностиЗаказаКлиента",
ПолучитьФункциональнуюОпцию("ИспользоватьРасширенныеВозможностиЗаказаКлиента"));
Иначе
Запрос.УстановитьПараметр("ИспользоватьРасширенныеВозможностиЗаказаКлиента", Не Реквизиты.ЭтоЗаказКакСчет);
КонецЕсли;
Запрос.УстановитьПараметр("ТипыНалогообложенияНДСНеоблагаемые", УчетНДСУП.ТипыНалогообложенияНДСНеоблагаемые());
УчетНДСУП.УстановитьПараметрыЗапросаСтавкиНДС(Запрос.Параметры, Запрос.Параметры.Организация, Запрос.Параметры.Период);
РасчетСебестоимостиПрикладныеАлгоритмы.ЗаполнитьПараметрыИнициализации(Запрос, Реквизиты);
УчетПрослеживаемыхТоваровЛокализация.УстановитьПараметрыИспользованияУчетаПрослеживаемыхТоваров(Запрос);
ИспользоватьПодакцизныеТовары = Ложь;
СтранаРегистрации = Справочники.СтраныМира.ПустаяСсылка();
ИспользоватьПодакцизныеТовары = ПолучитьФункциональнуюОпцию("ИспользоватьПодакцизныеТовары");
СтранаРегистрации = ЗначениеНастроекКлиентСерверПовтИсп.СтранаРегистрацииОрганизации(Реквизиты.Организация);
Запрос.УстановитьПараметр("ИспользоватьПодакцизныеТовары", ИспользоватьПодакцизныеТовары);
Запрос.УстановитьПараметр("СтранаРегистрации", СтранаРегистрации);
ЭтоПереходПраваСобственностиБезЗаказа = Ложь;
Если Реквизиты.РеализацияПоЗаказу
И Реквизиты.ХозяйственнаяОперация = Перечисления.ХозяйственныеОперации.ПереходПраваСобственности Тогда
ДокументыОснования = Новый Массив;
ЗначенияРеквизитов = ОбщегоНазначения.ЗначенияРеквизитовОбъекта(ДокументСсылка, "ЗаказКлиента, Товары");
Если ЗначениеЗаполнено(ЗначенияРеквизитов.ЗаказКлиента) Тогда
ДокументыОснования.Добавить(ЗначенияРеквизитов.ЗаказКлиента);
Иначе
ОбщегоНазначенияКлиентСервер.ДополнитьМассив(ДокументыОснования,
ЗначенияРеквизитов.Товары.Выгрузить().ВыгрузитьКолонку("ЗаказКлиента"),
Истина);
КонецЕсли;
ДокументыПоВидам = ПродажиСервер.ДокументыПоПризнакуНаличияОбъектовРасчетов(ДокументыОснования);
ЭтоПереходПраваСобственностиБезЗаказа = ДокументыПоВидам.ДокументыБезОбъектовРасчетов.Количество() > 0;
КонецЕсли;
Запрос.УстановитьПараметр("ЭтоПереходПраваСобственностиБезЗаказа", ЭтоПереходПраваСобственностиБезЗаказа);
КонецПроцедуры
Процедура ПолучитьДанныеДокумента(Запрос, ДокументСсылка)
СписокЗапросов = Новый Массив;
ТекстЗапросаДанныеДокументаШапка(СписокЗапросов);
ТекстЗапросаДанныеДокументаТаблицаТовары(СписокЗапросов);
ТекстЗапросаДанныеДокументаТаблицаВидыЗапасов(СписокЗапросов);
ТекстЗапросаДанныеДокументаТаблицаСерии(СписокЗапросов);
ТекстЗапросаДанныеДокументаТаблицаНачислениеБонусныхБаллов(СписокЗапросов);
ТекстЗапросаДанныеДокументаТаблицаЭтапыГрафикаОплаты(СписокЗапросов);
ТекстЗапросаДанныеДокументаТаблицаРасшифровкаПлатежа(СписокЗапросов);
ТекстЗапроса = СтрСоединить(СписокЗапросов, ОбщегоНазначения.РазделительПакетаЗапросов());
Запрос.Текст = ТекстЗапроса;
Запрос.МенеджерВременныхТаблиц = Новый МенеджерВременныхТаблиц();
Запрос.УстановитьПараметр("Ссылка", ДокументСсылка);
Запрос.Выполнить();
КонецПроцедуры
Процедура ТекстЗапросаДанныеДокументаШапка(СписокЗапросов)
ТекстЗапросаШапка = "ВЫБРАТЬ
| ДанныеДокумента.Ссылка КАК Ссылка,
| ДанныеДокумента.Организация КАК Организация,
| ДанныеДокумента.Организация.ВалютаРегламентированногоУчета КАК ВалютаРегламентированногоУчета,
| ДанныеДокумента.Статус КАК Статус,
| ДанныеДокумента.Партнер КАК Партнер,
| ДанныеДокумента.Контрагент КАК Контрагент,
| ДанныеДокумента.КлиентПартнер КАК КлиентПартнер,
| ДанныеДокумента.Грузоотправитель КАК Грузоотправитель,
| ДанныеДокумента.Грузополучатель КАК Грузополучатель,
| ДанныеДокумента.КлиентКонтрагент КАК КлиентКонтрагент,
| ДанныеДокумента.КлиентДоговор КАК КлиентДоговор,
| ЕСТЬNULL(ДанныеДокумента.Контрагент.СтранаРегистрации.УчастникЕАЭС, ЛОЖЬ) КАК КонтрагентУчастникЕАЭС,
| ВЫБОР
| КОГДА ЕСТЬNULL(ДанныеДокумента.Контрагент.ЮрФизЛицо,
| ЗНАЧЕНИЕ(Перечисление.ЮрФизЛицо.ПустаяСсылка)) = ЗНАЧЕНИЕ(Перечисление.ЮрФизЛицо.ЮрЛицоНеРезидент)
| ТОГДА ИСТИНА
| ИНАЧЕ ЛОЖЬ
| КОНЕЦ КАК КонтрагентНеРезидент,
| ДанныеДокумента.Дата КАК Дата,
| ДанныеДокумента.ДатаПереходаПраваСобственности КАК ДатаПереходаПраваСобственности,
| ДанныеДокумента.ЗаказКлиента КАК ЗаказКлиента,
| ДанныеДокумента.Валюта КАК Валюта,
| ДанныеДокумента.ХозяйственнаяОперация КАК ХозяйственнаяОперация,
| ДанныеДокумента.Подразделение КАК Подразделение,
| ЕСТЬNULL(ДанныеДокумента.Подразделение.ВариантОбособленногоУчетаТоваров,
| ЗНАЧЕНИЕ(Перечисление.ВариантыОбособленногоУчетаТоваров.ПустаяСсылка)) КАК ВариантОбособленногоУчетаТоваров,
| ДанныеДокумента.Склад КАК Склад,
| ДанныеДокумента.Дата КАК ДатаРаспоряжения,
| ДанныеДокумента.ЦенаВключаетНДС КАК ЦенаВключаетНДС,
| ДанныеДокумента.ВалютаВзаиморасчетов КАК ВалютаВзаиморасчетов,
| ДанныеДокумента.РеализацияПоЗаказам КАК РеализацияПоЗаказам,
| ДанныеДокумента.Соглашение КАК Соглашение,
| ДанныеДокумента.ФормаОплаты КАК ФормаОплаты,
| ДанныеДокумента.Договор КАК Договор,
| ЕСТЬNULL(ДанныеДокумента.Договор.ВестиРасчетыЧерезКонечныхПокупателей, ЛОЖЬ) КАК
| ВестиРасчетыЧерезКонечныхПокупателей,
| ДанныеДокумента.НалогообложениеНДС КАК НалогообложениеНДС,
| ДанныеДокумента.ВернутьМногооборотнуюТару КАК ВернутьМногооборотнуюТару,
| ДанныеДокумента.ТребуетсяЗалогЗаТару КАК ТребуетсяЗалогЗаТару,
| ДанныеДокумента.Менеджер КАК Менеджер,
| ДанныеДокумента.ГруппаФинансовогоУчета КАК ГруппаФинансовогоУчета,
| ДанныеДокумента.Сделка КАК Сделка,
| ЕСТЬNULL(ДанныеДокумента.Сделка.ОбособленныйУчетТоваровПоСделке, ЛОЖЬ) КАК ОбособленныйУчетТоваровПоСделке,
| ВЫБОР
| КОГДА ДанныеДокумента.ХозяйственнаяОперация = ЗНАЧЕНИЕ(Перечисление.ХозяйственныеОперации.ПередачаНаКомиссию)
| ТОГДА ИСТИНА
| ИНАЧЕ ЛОЖЬ
| КОНЕЦ КАК ЭтоПередачаНаКомиссию,
| ЕСТЬNULL(ДанныеДокумента.Договор.ДопустимаяСуммаЗадолженности, 0) КАК ДопустимаяСуммаЗадолженности,
| ДанныеДокумента.Номер КАК Номер,
| ДанныеДокумента.СуммаДокумента КАК СуммаДокумента,
| ДанныеДокумента.Комментарий КАК Комментарий,
| ДанныеДокумента.ПометкаУдаления КАК ПометкаУдаления,
| ДанныеДокумента.Проведен КАК Проведен,
| ДанныеДокумента.Автор КАК Автор,
| ДанныеДокумента.СуммаВзаиморасчетов КАК СуммаВзаиморасчетов,
| ДанныеДокумента.СуммаВзаиморасчетовПоТаре КАК СуммаВзаиморасчетовПоТаре,
| ДанныеДокумента.ОбъектРасчетовУпр КАК ОбъектРасчетовУпр,
| ДанныеДокумента.НаправлениеДеятельности КАК НаправлениеДеятельности,
| ДанныеДокумента.КартаЛояльности.Владелец.БонуснаяПрограммаЛояльности КАК БонуснаяПрограммаЛояльности,
| ДанныеДокумента.ПорядокРасчетов КАК ПорядокРасчетов,
| ДанныеДокумента.НомерКомиссионера КАК НомерКомиссионера,
| ДанныеДокумента.ДатаКомиссионера КАК ДатаКомиссионера,
| ДанныеДокумента.НаименованиеДокументаКомиссионера КАК НаименованиеДокументаКомиссионера
|ПОМЕСТИТЬ ДанныеДокументаШапка
|ИЗ
| Документ.РеализацияТоваровУслуг КАК ДанныеДокумента
|ГДЕ
| ДанныеДокумента.Ссылка = &Ссылка
|
|ИНДЕКСИРОВАТЬ ПО
| Ссылка";
СписокЗапросов.Добавить(ТекстЗапросаШапка);
КонецПроцедуры
Процедура ТекстЗапросаДанныеДокументаТаблицаТовары(СписокЗапросов)
ТекстЗапросаТаблицаТовары = "ВЫБРАТЬ
| ТаблицаТовары.НомерСтроки КАК НомерСтроки,
| ТаблицаТовары.Ссылка КАК Ссылка,
| ТаблицаТовары.Номенклатура КАК Номенклатура,
| ТаблицаТовары.Характеристика КАК Характеристика,
| ТаблицаТовары.Назначение КАК Назначение,
| ТаблицаТовары.Упаковка КАК Упаковка,
| ТаблицаТовары.КоличествоУпаковок КАК КоличествоУпаковок,
| ТаблицаТовары.Количество КАК Количество,
| ТаблицаТовары.ВидЦены КАК ВидЦены,
| ТаблицаТовары.Цена КАК Цена,
| ТаблицаТовары.Сумма КАК Сумма,
| ТаблицаТовары.СтавкаНДС КАК СтавкаНДС,
| ТаблицаТовары.СуммаНДС КАК СуммаНДС,
| ТаблицаТовары.СуммаНДСРегл КАК СуммаНДСРегл,
| ТаблицаТовары.СуммаНДСУпр КАК СуммаНДСУпр,
| ТаблицаТовары.СуммаСНДС КАК СуммаСНДС,
| ТаблицаТовары.КодСтроки КАК КодСтроки,
| ТаблицаТовары.СуммаРучнойСкидки КАК СуммаРучнойСкидки,
| ТаблицаТовары.СуммаАвтоматическойСкидки КАК СуммаАвтоматическойСкидки,
| ТаблицаТовары.ПроцентРучнойСкидки КАК ПроцентРучнойСкидки,
| ТаблицаТовары.ПроцентАвтоматическойСкидки КАК ПроцентАвтоматическойСкидки,
| ТаблицаТовары.КлючСвязи КАК КлючСвязи,
| ТаблицаТовары.Склад КАК Склад,
| ТаблицаТовары.СтатусУказанияСерий КАК СтатусУказанияСерий,
| ТаблицаТовары.СуммаВзаиморасчетов КАК СуммаВзаиморасчетов,
| ТаблицаТовары.ЗаказКлиента КАК ЗаказКлиента,
| ТаблицаТовары.СрокПоставки КАК СрокПоставки,
| ТаблицаТовары.ИдентификаторСтроки КАК ИдентификаторСтроки,
| ТаблицаТовары.Серия КАК Серия,
| ТаблицаТовары.АналитикаУчетаНоменклатуры КАК АналитикаУчетаНоменклатуры,
| ТаблицаТовары.НоменклатураНабора КАК НоменклатураНабора,
| ТаблицаТовары.ХарактеристикаНабора КАК ХарактеристикаНабора,
| ТаблицаТовары.АналитикаУчетаНаборов КАК АналитикаУчетаНаборов,
| ТаблицаТовары.КодТНВЭД КАК КодТНВЭД,
| ТаблицаТовары.ОбъектРасчетов КАК ОбъектРасчетов,
| ТаблицаТовары.Подразделение КАК Подразделение,
| ТаблицаТовары.НоменклатураПартнера КАК НоменклатураПартнера,
| ТаблицаТовары.СуммаБонусныхБалловКСписанию КАК СуммаБонусныхБалловКСписанию,
| ТаблицаТовары.СуммаБонусныхБалловКСписаниюВВалюте КАК СуммаБонусныхБалловКСписаниюВВалюте,
| ТаблицаТовары.СуммаНачисленныхБонусныхБалловВВалюте КАК СуммаНачисленныхБонусныхБалловВВалюте,
| ТаблицаТовары.Номенклатура.ТипНоменклатуры КАК НоменклатураТипНоменклатуры,
| ТаблицаТовары.Номенклатура.ПрослеживаемыйТовар КАК НоменклатураПрослеживаемыйТовар,
| ТаблицаТовары.Номенклатура.Принципал КАК НоменклатураПринципал,
| ТаблицаТовары.Номенклатура.ЕдиницаИзмерения КАК НоменклатураЕдиницаИзмерения,
| ТаблицаТовары.ЗаказКлиента.ЭтоЗаказКакСчет КАК ЗаказКлиентаЭтоЗаказКакСчет,
| ТаблицаТовары.ЗаказКлиента.Назначение КАК ЗаказКлиентаНазначение,
| ТаблицаТовары.Назначение.ДвиженияПоСкладскимРегистрам КАК НазначениеДвиженияПоСкладскимРегистрам,
| ТаблицаТовары.Назначение.ВидДеятельностиНДС КАК НазначениеВидДеятельностиНДС,
| ТаблицаТовары.Склад.ИспользоватьОрдернуюСхемуПриОтгрузке КАК СкладИспользоватьОрдернуюСхемуПриОтгрузке,
| ТаблицаТовары.Склад.ДатаНачалаОрдернойСхемыПриОтгрузке КАК СкладДатаНачалаОрдернойСхемыПриОтгрузке,
| ТаблицаТовары.Характеристика.Принципал КАК ХарактеристикаПринципал,
| ТаблицаТовары.АналитикаУчетаНоменклатуры.Назначение КАК АналитикаУчетаНоменклатурыНазначение,
| ТаблицаТовары.ОбъектРасчетов.Партнер КАК ОбъектРасчетовПартнер,
| ТаблицаТовары.ОбъектРасчетов.Организация КАК ОбъектРасчетовОрганизация,
| ТаблицаТовары.ОбъектРасчетов.Контрагент КАК ОбъектРасчетовКонтрагент,
| ТаблицаТовары.ОбъектРасчетов.Договор КАК ОбъектРасчетовДоговор,
| ТаблицаТовары.ОбъектРасчетов.НаправлениеДеятельности КАК ОбъектРасчетовНаправлениеДеятельности,
| ТаблицаТовары.ОбъектРасчетов.УникальныйИдентификатор КАК ОбъектРасчетовУникальныйИдентификатор
|ПОМЕСТИТЬ ДанныеДокументаТаблицаТовары
|ИЗ
| Документ.РеализацияТоваровУслуг.Товары КАК ТаблицаТовары
|ГДЕ
| ТаблицаТовары.Ссылка = &Ссылка
|ИНДЕКСИРОВАТЬ ПО
| Ссылка";
СписокЗапросов.Добавить(ТекстЗапросаТаблицаТовары);
КонецПроцедуры
Процедура ТекстЗапросаДанныеДокументаТаблицаВидыЗапасов(СписокЗапросов)
ТекстЗапросаТаблицаВидыЗапасов =
"ВЫБРАТЬ
| ТаблицаВидыЗапасов.НомерСтроки КАК НомерСтроки,
| ТаблицаВидыЗапасов.Ссылка КАК Ссылка,
| ТаблицаВидыЗапасов.АналитикаУчетаНоменклатуры КАК АналитикаУчетаНоменклатуры,
| ТаблицаВидыЗапасов.ВидЗапасов КАК ВидЗапасов,
| ТаблицаВидыЗапасов.НомерГТД КАК НомерГТД,
| ТаблицаВидыЗапасов.НомерГТД.ТипНомераГТД КАК НомерГТДТипНомераГТД,
| ТаблицаВидыЗапасов.Упаковка КАК Упаковка,
| ТаблицаВидыЗапасов.КоличествоУпаковок КАК КоличествоУпаковок,
| ТаблицаВидыЗапасов.Количество КАК Количество,
| ТаблицаВидыЗапасов.КоличествоПоРНПТ КАК КоличествоПоРНПТ,
| ТаблицаВидыЗапасов.СуммаСНДС КАК СуммаСНДС,
| ТаблицаВидыЗапасов.СтавкаНДС КАК СтавкаНДС,
| ТаблицаВидыЗапасов.СуммаНДС КАК СуммаНДС,
| ТаблицаВидыЗапасов.СуммаАкциза КАК СуммаАкциза,
| ТаблицаВидыЗапасов.СуммаНДСРегл КАК СуммаНДСРегл,
| ТаблицаВидыЗапасов.СуммаНДСУпр КАК СуммаНДСУпр,
| ТаблицаВидыЗапасов.ИдентификаторСтроки КАК ИдентификаторСтроки,
| ТаблицаВидыЗапасов.СуммаВзаиморасчетов КАК СуммаВзаиморасчетов,
| ТаблицаВидыЗапасов.ЗаказКлиента КАК ЗаказКлиента,
| ТаблицаВидыЗапасов.СуммаРучнойСкидки КАК СуммаРучнойСкидки,
| ТаблицаВидыЗапасов.СуммаАвтоматическойСкидки КАК СуммаАвтоматическойСкидки,
| ТаблицаВидыЗапасов.АналитикаУчетаНаборов КАК АналитикаУчетаНаборов,
| ТаблицаВидыЗапасов.Цена КАК Цена,
| ТаблицаВидыЗапасов.ВидЗапасовПолучателя КАК ВидЗапасовПолучателя,
| ТаблицаВидыЗапасов.ВидЗапасовПолучателя.ТипЗапасов КАК ВидЗапасовПолучателяТипЗапасов,
| ТаблицаВидыЗапасов.ОбъектРасчетов КАК ОбъектРасчетов,
| ТаблицаВидыЗапасов.КодТНВЭД КАК КодТНВЭД,
| ТаблицаВидыЗапасов.АналитикаУчетаНоменклатуры.Номенклатура КАК АналитикаУчетаНоменклатурыНоменклатура,
| ТаблицаВидыЗапасов.АналитикаУчетаНоменклатуры.Характеристика КАК АналитикаУчетаНоменклатурыХарактеристика,
| ТаблицаВидыЗапасов.АналитикаУчетаНоменклатуры.Серия КАК АналитикаУчетаНоменклатурыСерия,
| ТаблицаВидыЗапасов.АналитикаУчетаНоменклатуры.Номенклатура.ПрослеживаемыйТовар КАК
| АналитикаУчетаНоменклатурыНоменклатураПрослеживаемыйТовар,
| ТаблицаВидыЗапасов.АналитикаУчетаНоменклатуры.Номенклатура.ТипНоменклатуры КАК
| АналитикаУчетаНоменклатурыНоменклатураТипНоменклатуры,
| ТаблицаВидыЗапасов.АналитикаУчетаНоменклатуры.Номенклатура.ЕдиницаИзмерения КАК
| АналитикаУчетаНоменклатураНоменклатураЕдиницаИзмерения,
| ТаблицаВидыЗапасов.ВидЗапасов.ВладелецТовара КАК ВидЗапасовВладелецТовара,
| ТаблицаВидыЗапасов.ВидЗапасов.ТипЗапасов КАК ВидЗапасовТипЗапасов,
| ТаблицаВидыЗапасов.ВидЗапасов.Валюта КАК ВидЗапасовВалюта,
| ТаблицаВидыЗапасов.ВидЗапасов.ВидЗапасовВладельца КАК ВидЗапасовВидЗапасовВладельца,
| ТаблицаВидыЗапасов.ВидЗапасов.РеализацияЗапасовДругойОрганизации КАК ВидЗапасовРеализацияЗапасовДругойОрганизации,
| ТаблицаВидыЗапасов.ВидЗапасов.ВидЗапасовВладельца.ТипЗапасов КАК ВидЗапасовВидЗапасовВладельцаТипЗапасов,
| ТаблицаВидыЗапасов.ВидЗапасов.ВидЗапасовВладельца.Организация КАК ВидЗапасовВидЗапасовВладельцаОрганизация,
| ТаблицаВидыЗапасов.ВидЗапасов.ВидЗапасовВладельца.Валюта КАК ВидЗапасовВидЗапасовВладельцаВалюта,
| ТаблицаВидыЗапасов.ВидЗапасов.Соглашение КАК ВидЗапасовСоглашение,
| ТаблицаВидыЗапасов.ВидЗапасов.ОблагаетсяАкцизом КАК ОблагаетсяАкцизом,
| ТаблицаВидыЗапасов.ВидЗапасов.ПодразделениеПроизводства КАК ПодразделениеПроизводства,
| ТаблицаВидыЗапасов.КодТНВЭД.СырьевойТовар КАК КодТНВЭДСырьевойТовар,
| ТаблицаВидыЗапасов.ОбъектРасчетов.Организация КАК ОбъектРасчетовОрганизация,
| ТаблицаВидыЗапасов.ОбъектРасчетов.Договор КАК ОбъектРасчетовДоговор,
| ТаблицаВидыЗапасов.ОбъектРасчетов.НаправлениеДеятельности КАК ОбъектРасчетовНаправлениеДеятельности,
| ТаблицаВидыЗапасов.ОбъектРасчетов.УникальныйИдентификатор КАК ОбъектРасчетовУникальныйИдентификатор,
| ТаблицаВидыЗапасов.АналитикаУчетаНаборов.НоменклатураНабора КАК АналитикаУчетаНаборовНоменклатураНабора,
| ТаблицаВидыЗапасов.АналитикаУчетаНаборов.ХарактеристикаНабора КАК АналитикаУчетаНаборовХарактеристикаНабора
|ПОМЕСТИТЬ ДанныеДокументаТаблицаВидыЗапасов
|ИЗ
| Документ.РеализацияТоваровУслуг.ВидыЗапасов КАК ТаблицаВидыЗапасов
|ГДЕ
| ТаблицаВидыЗапасов.Ссылка = &Ссылка
|
|ИНДЕКСИРОВАТЬ ПО
| Ссылка";
СписокЗапросов.Добавить(ТекстЗапросаТаблицаВидыЗапасов);
КонецПроцедуры
Процедура ТекстЗапросаДанныеДокументаТаблицаСерии(СписокЗапросов)
ТекстЗапросаТаблицаСерии = "ВЫБРАТЬ
| ТаблицаСерии.НомерСтроки КАК НомерСтроки,
| ТаблицаСерии.Ссылка КАК Ссылка,
| ТаблицаСерии.Серия КАК Серия,
| ТаблицаСерии.Количество КАК Количество,
| ТаблицаСерии.Номенклатура КАК Номенклатура,
| ТаблицаСерии.Характеристика КАК Характеристика,
| ТаблицаСерии.Назначение КАК Назначение,
| ТаблицаСерии.Склад КАК Склад,
| ТаблицаСерии.Назначение.ДвиженияПоСкладскимРегистрам КАК НазначениеДвиженияПоСкладскимРегистрам,
| ТаблицаСерии.Склад.ИспользоватьОрдернуюСхемуПриОтгрузке КАК СкладИспользоватьОрдернуюСхемуПриОтгрузке,
| ТаблицаСерии.Склад.ДатаНачалаОрдернойСхемыПриОтгрузке КАК СкладДатаНачалаОрдернойСхемыПриОтгрузке
|ПОМЕСТИТЬ ДанныеДокументаТаблицаСерии
|ИЗ
| Документ.РеализацияТоваровУслуг.Серии КАК ТаблицаСерии
|ГДЕ
| ТаблицаСерии.Ссылка = &Ссылка
|
|ИНДЕКСИРОВАТЬ ПО
| Ссылка";
СписокЗапросов.Добавить(ТекстЗапросаТаблицаСерии);
КонецПроцедуры
Процедура ТекстЗапросаДанныеДокументаТаблицаНачислениеБонусныхБаллов(СписокЗапросов)
ТекстЗапросаТаблицаНачислениеБонусныхБаллов = "ВЫБРАТЬ
| ТаблицаНачислениеБонусныхБаллов.НомерСтроки КАК НомерСтроки,
| ТаблицаНачислениеБонусныхБаллов.Ссылка КАК Ссылка,
| ТаблицаНачислениеБонусныхБаллов.КлючСвязи КАК КлючСвязи,
| ТаблицаНачислениеБонусныхБаллов.БонуснаяПрограммаЛояльности КАК БонуснаяПрограммаЛояльности,
| ТаблицаНачислениеБонусныхБаллов.ДатаНачисления КАК ДатаНачисления,
| ТаблицаНачислениеБонусныхБаллов.ДатаСписания КАК ДатаСписания,
| ТаблицаНачислениеБонусныхБаллов.СуммаБонусныхБаллов КАК СуммаБонусныхБаллов
|ПОМЕСТИТЬ ДанныеДокументаТаблицаНачислениеБонусныхБаллов
|ИЗ
| Документ.РеализацияТоваровУслуг.НачислениеБонусныхБаллов КАК ТаблицаНачислениеБонусныхБаллов
|ГДЕ
| ТаблицаНачислениеБонусныхБаллов.Ссылка = &Ссылка
|
|ИНДЕКСИРОВАТЬ ПО
| Ссылка";
СписокЗапросов.Добавить(ТекстЗапросаТаблицаНачислениеБонусныхБаллов);
КонецПроцедуры
Процедура ТекстЗапросаДанныеДокументаТаблицаЭтапыГрафикаОплаты(СписокЗапросов)
ТекстЗапросаТаблицаЭтапыГрафикаОплаты = "ВЫБРАТЬ
| ТаблицаЭтапыГрафикаОплаты.НомерСтроки КАК НомерСтроки,
| ТаблицаЭтапыГрафикаОплаты.Ссылка КАК Ссылка,
| ТаблицаЭтапыГрафикаОплаты.Заказ КАК Заказ,
| ТаблицаЭтапыГрафикаОплаты.СверхЗаказа КАК СверхЗаказа,
| ТаблицаЭтапыГрафикаОплаты.ВариантОплаты КАК ВариантОплаты,
| ТаблицаЭтапыГрафикаОплаты.ДатаПлатежа КАК ДатаПлатежа,
| ТаблицаЭтапыГрафикаОплаты.Сдвиг КАК Сдвиг,
| ТаблицаЭтапыГрафикаОплаты.СуммаПлатежа КАК СуммаПлатежа,
| ТаблицаЭтапыГрафикаОплаты.ПроцентПлатежа КАК ПроцентПлатежа,
| ТаблицаЭтапыГрафикаОплаты.СуммаЗалогаЗаТару КАК СуммаЗалогаЗаТару,
| ТаблицаЭтапыГрафикаОплаты.ПроцентЗалогаЗаТару КАК ПроцентЗалогаЗаТару,
| ТаблицаЭтапыГрафикаОплаты.СуммаВзаиморасчетов КАК СуммаВзаиморасчетов,
| ТаблицаЭтапыГрафикаОплаты.СуммаВзаиморасчетовПоТаре КАК СуммаВзаиморасчетовПоТаре,
| ТаблицаЭтапыГрафикаОплаты.ОбъектРасчетов КАК ОбъектРасчетов,
| ТаблицаЭтапыГрафикаОплаты.ВариантОтсчета КАК ВариантОтсчета,
| ТаблицаЭтапыГрафикаОплаты.ОбъектРасчетов.УникальныйИдентификатор КАК ОбъектРасчетовУникальныйИдентификатор
|ПОМЕСТИТЬ ДанныеДокументаТаблицаЭтапыГрафикаОплаты
|ИЗ
| Документ.РеализацияТоваровУслуг.ЭтапыГрафикаОплаты КАК ТаблицаЭтапыГрафикаОплаты
|ГДЕ
| ТаблицаЭтапыГрафикаОплаты.Ссылка = &Ссылка
|
|ИНДЕКСИРОВАТЬ ПО
| Ссылка";
СписокЗапросов.Добавить(ТекстЗапросаТаблицаЭтапыГрафикаОплаты);
КонецПроцедуры
Процедура ТекстЗапросаДанныеДокументаТаблицаРасшифровкаПлатежа(СписокЗапросов)
ТекстЗапросаТаблицаРасшифровкаПлатежа = "ВЫБРАТЬ
| ТаблицаРасшифровкаПлатежа.НомерСтроки КАК НомерСтроки,
| ТаблицаРасшифровкаПлатежа.Ссылка КАК Ссылка,
| ТаблицаРасшифровкаПлатежа.Сумма КАК Сумма,
| ТаблицаРасшифровкаПлатежа.ВалютаВзаиморасчетов КАК ВалютаВзаиморасчетов,
| ТаблицаРасшифровкаПлатежа.СуммаВзаиморасчетов КАК СуммаВзаиморасчетов,
| ТаблицаРасшифровкаПлатежа.ОбъектРасчетов КАК ОбъектРасчетов,
| ТаблицаРасшифровкаПлатежа.ОбъектРасчетов.Организация КАК ОбъектРасчетовОрганизация,
| ТаблицаРасшифровкаПлатежа.ОбъектРасчетов.Объект КАК ОбъектРасчетовОбъект,
| ТаблицаРасшифровкаПлатежа.ОбъектРасчетов.УникальныйИдентификатор КАК ОбъектРасчетовУникальныйИдентификатор
|ПОМЕСТИТЬ ДанныеДокументаТаблицаРасшифровкаПлатежа
|ИЗ
| Документ.РеализацияТоваровУслуг.РасшифровкаПлатежа КАК ТаблицаРасшифровкаПлатежа
|ГДЕ
| ТаблицаРасшифровкаПлатежа.Ссылка = &Ссылка
|
|ИНДЕКСИРОВАТЬ ПО
| Ссылка";
СписокЗапросов.Добавить(ТекстЗапросаТаблицаРасшифровкаПлатежа);
КонецПроцедуры
Функция АналитикаПартнерВТоварахВПути(Запрос)
ЗапросАналитика = Новый Запрос("
|ВЫБРАТЬ ПЕРВЫЕ 1
| ИСТИНА КАК АналитикаПартнер
|ИЗ
| Документ.РеализацияТоваровУслуг КАК Реализация
| ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрНакопления.СебестоимостьТоваров КАК Движения
| ПО Движения.Регистратор = Реализация.Ссылка
| И Движения.Период = Реализация.Дата
| И Движения.АналитикаУчетаНоменклатуры.Партнер = Реализация.Партнер
| И Движения.АналитикаУчетаНоменклатуры.ТипМестаХранения = ЗНАЧЕНИЕ(Перечисление.ТипыМестХранения.Партнер)
| И НЕ Движения.РасчетСебестоимости
|ГДЕ
| Реализация.Ссылка = &Ссылка
| И (Реализация.ХозяйственнаяОперация = ЗНАЧЕНИЕ(Перечисление.ХозяйственныеОперации.РеализацияБезПереходаПраваСобственности)
| ИЛИ Реализация.ХозяйственнаяОперация = ЗНАЧЕНИЕ(Перечисление.ХозяйственныеОперации.РеализацияЧерезКомиссионераБезПереходаПраваСобственности))
|");
ЗапросАналитика.УстановитьПараметр("Ссылка", Запрос.Параметры.Ссылка);
РезультатЗапроса = ЗапросАналитика.Выполнить();
Возврат НЕ РезультатЗапроса.Пустой();
КонецФункции
Функция РазделУчетаКомиссионныйТоварВПути(Запрос)
ЗапросРаздел = Новый Запрос("
|ВЫБРАТЬ ПЕРВЫЕ 1
| Движения.РазделУчета КАК РазделУЧета
|ИЗ
| Документ.РеализацияТоваровУслуг КАК Реализация
| ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрНакопления.СебестоимостьТоваров КАК Движения
| ПО Движения.Регистратор = Реализация.Ссылка
| И Движения.Период = Реализация.Дата
| И Движения.РазделУчета <> ЗНАЧЕНИЕ(Перечисление.РазделыУчетаСебестоимостиТоваров.ТоварыПринятыеНаКомиссиюВПути)
| И Движения.ВидДвижения = ЗНАЧЕНИЕ(ВидДвиженияНакопления.Приход)
| И Движения.ВидЗапасов.ТипЗапасов = ЗНАЧЕНИЕ(Перечисление.ТипыЗапасов.КомиссионныйТовар)
| И НЕ Движения.РасчетСебестоимости
|ГДЕ
| Реализация.Ссылка = &Ссылка
| И Реализация.ХозяйственнаяОперация = ЗНАЧЕНИЕ(Перечисление.ХозяйственныеОперации.РеализацияБезПереходаПраваСобственности)
| И Реализация.Статус = ЗНАЧЕНИЕ(Перечисление.СтатусыРеализацийТоваровУслуг.Отгружено)
|");
ЗапросРаздел.УстановитьПараметр("Ссылка", Запрос.Параметры.Ссылка);
Выборка = ЗапросРаздел.Выполнить().Выбрать();
Если Выборка.Следующий() Тогда
РазделУчета = Выборка.РазделУчета;
Иначе
РазделУчета = Перечисления.РазделыУчетаСебестоимостиТоваров.ТоварыПринятыеНаКомиссиюВПути;
КонецЕсли;
Возврат РазделУчета;
КонецФункции
Функция ТекстЗапросаВтТоварыОрганизаций(Запрос, ТекстыЗапроса, ДокументОбъект) Экспорт
ИмяТаблицы = "ВтТоварыОрганизаций";
Если НЕ ПроведениеДокументов.ЕстьТаблицаЗапроса("ВтТаблицаВидыЗапасов", ТекстыЗапроса) Тогда
ТекстЗапросаВтТаблицаВидыЗапасов(Запрос, ТекстыЗапроса, ДокументОбъект);
КонецЕсли;
ТекстЗапроса =
"ВЫБРАТЬ
| ЗНАЧЕНИЕ(ВидДвиженияНакопления.Расход) КАК ВидДвижения,
| &Период КАК Период,
| &Организация КАК ОрганизацияОтгрузки,
| ВЫБОР
| КОГДА ТаблицаВидыЗапасов.ВидЗапасовРеализацияЗапасовДругойОрганизации
| ТОГДА ТаблицаВидыЗапасов.ВидЗапасовВидЗапасовВладельцаОрганизация
| ИНАЧЕ &Организация
| КОНЕЦ КАК Организация,
| ВЫБОР
| КОГДА ТаблицаВидыЗапасов.ВидЗапасовРеализацияЗапасовДругойОрганизации
| ТОГДА ТаблицаВидыЗапасов.ВидЗапасовВидЗапасовВладельца
| ИНАЧЕ ТаблицаВидыЗапасов.ВидЗапасов
| КОНЕЦ КАК ВидЗапасов,
| ВЫБОР
| КОГДА ТаблицаВидыЗапасов.ВидЗапасовРеализацияЗапасовДругойОрганизации
| ТОГДА ТаблицаВидыЗапасов.ВидЗапасовВидЗапасовВладельцаТипЗапасов
| ИНАЧЕ ТаблицаВидыЗапасов.ТипЗапасов
| КОНЕЦ КАК ВидЗапасовТипЗапасов,
| ТаблицаВидыЗапасов.АналитикаУчетаНоменклатуры КАК АналитикаУчетаНоменклатуры,
| ТаблицаВидыЗапасов.Номенклатура КАК Номенклатура,
| ТаблицаВидыЗапасов.Характеристика КАК Характеристика,
| ТаблицаВидыЗапасов.Склад КАК Склад,
| ТаблицаВидыЗапасов.НомерГТД КАК НомерГТД,
| ТаблицаВидыЗапасов.НомерГТДТипНомераГТД КАК НомерГТДТипНомераГТД,
| ТаблицаВидыЗапасов.НоменклатураПартнера КАК НоменклатураПартнера,
| ТаблицаВидыЗапасов.Количество КАК Количество,
| ТаблицаВидыЗапасов.КоличествоПоРНПТ КАК КоличествоПоРНПТ,
| ТаблицаВидыЗапасов.СуммаБезНДСРегл КАК СтоимостьПоРНПТ,
| &ХозяйственнаяОперация КАК ХозяйственнаяОперация,
| ТаблицаВидыЗапасов.ВидДеятельностиНДС КАК НалогообложениеНДС,
| ВЫБОР &ХозяйственнаяОперация
| КОГДА ЗНАЧЕНИЕ(Перечисление.ХозяйственныеОперации.ПередачаНаКомиссию)
| ТОГДА ТаблицаВидыЗапасов.АналитикаПереданнойНоменклатуры
| КОГДА ЗНАЧЕНИЕ(Перечисление.ХозяйственныеОперации.РеализацияБезПереходаПраваСобственности)
| ТОГДА ТаблицаВидыЗапасов.АналитикаПереданнойНоменклатуры
| КОГДА ЗНАЧЕНИЕ(Перечисление.ХозяйственныеОперации.РеализацияКлиентуРеглУчет)
| ТОГДА ТаблицаВидыЗапасов.АналитикаУчетаНоменклатуры
| КОНЕЦ КАК КорАналитикаУчетаНоменклатуры,
| ВЫБОР &ХозяйственнаяОперация
| КОГДА ЗНАЧЕНИЕ(Перечисление.ХозяйственныеОперации.РеализацияКлиентуРеглУчет)
| ТОГДА ТаблицаВидыЗапасов.ВидЗапасовПолучателя
| КОГДА ЗНАЧЕНИЕ(Перечисление.ХозяйственныеОперации.ПередачаНаКомиссию)
| ТОГДА ТаблицаВидыЗапасов.ВидЗапасов
| ИНАЧЕ НЕОПРЕДЕЛЕНО
| КОНЕЦ КАК КорВидЗапасов
|ПОМЕСТИТЬ втТоварыОрганизаций
|ИЗ
| ВтТаблицаВидыЗапасов КАК ТаблицаВидыЗапасов
|ГДЕ
| (&Статус <> ЗНАЧЕНИЕ(Перечисление.СтатусыРеализацийТоваровУслуг.КПредоплате)
| ИЛИ &ХозяйственнаяОперация = ЗНАЧЕНИЕ(Перечисление.ХозяйственныеОперации.ПередачаНаКомиссию))
|
|ОБЪЕДИНИТЬ ВСЕ
|
|ВЫБРАТЬ
| ЗНАЧЕНИЕ(ВидДвиженияНакопления.Приход),
| &Период,
| ЗНАЧЕНИЕ(Справочник.Организации.УправленческаяОрганизация),
| ЗНАЧЕНИЕ(Справочник.Организации.УправленческаяОрганизация),
| ТаблицаВидыЗапасов.ВидЗапасовПолучателя,
| ТаблицаВидыЗапасов.ВидЗапасовПолучателяТипЗапасов,
| ТаблицаВидыЗапасов.АналитикаУчетаНоменклатуры,
| ТаблицаВидыЗапасов.Номенклатура,
| ТаблицаВидыЗапасов.Характеристика,
| ТаблицаВидыЗапасов.Склад,
| ТаблицаВидыЗапасов.НомерГТД,
| ТаблицаВидыЗапасов.НомерГТДТипНомераГТД,
| ТаблицаВидыЗапасов.НоменклатураПартнера,
| ТаблицаВидыЗапасов.Количество,
| ТаблицаВидыЗапасов.КоличествоПоРНПТ,
| ТаблицаВидыЗапасов.СуммаБезНДСРегл,
| &ХозяйственнаяОперация,
| ВЫБОР
| КОГДА &ВернутьМногооборотнуюТару
| И ТаблицаВидыЗапасов.НоменклатураТипНоменклатуры = ЗНАЧЕНИЕ(Перечисление.ТипыНоменклатуры.МногооборотнаяТара)
| ТОГДА ЗНАЧЕНИЕ(Перечисление.ТипыНалогообложенияНДС.ПродажаНеОблагаетсяНДС)
| ИНАЧЕ &НалогообложениеНДС
| КОНЕЦ,
| НЕОПРЕДЕЛЕНО,
| НЕОПРЕДЕЛЕНО
|ИЗ
| ВтТаблицаВидыЗапасов КАК ТаблицаВидыЗапасов
|ГДЕ
| &ХозяйственнаяОперация = ЗНАЧЕНИЕ(Перечисление.ХозяйственныеОперации.РеализацияКлиентуРеглУчет)
|
|ИНДЕКСИРОВАТЬ ПО
| НомерГТДТипНомераГТД";
ТекстыЗапроса.Добавить(ТекстЗапроса, ИмяТаблицы);
Возврат ТекстЗапроса;
КонецФункции
Функция ТекстЗапросаТаблицаТоварыОрганизаций(Запрос, ТекстыЗапроса, Регистры, ДокументОбъект) Экспорт
ИмяРегистра = "ТоварыОрганизаций";
Если НЕ ПроведениеДокументов.ТребуетсяТаблицаДляДвижений(ИмяРегистра, Регистры) Тогда
Возврат "";
КонецЕсли;
Если НЕ ((ДокументОбъект.Статус <> Перечисления.СтатусыРеализацийТоваровУслуг.КПредоплате
ИЛИ ДокументОбъект.ХозяйственнаяОперация = Перечисления.ХозяйственныеОперации.ПередачаНаКомиссию)
ИЛИ (ДокументОбъект.ХозяйственнаяОперация = Перечисления.ХозяйственныеОперации.РеализацияКлиентуРеглУчет)) Тогда
Возврат "";
КонецЕсли;
Если НЕ ПроведениеДокументов.ЕстьТаблицаЗапроса("ВтТоварыОрганизаций", ТекстыЗапроса) Тогда
ТекстЗапросаВтТоварыОрганизаций(Запрос, ТекстыЗапроса, ДокументОбъект);
КонецЕсли;
ТекстЗапроса =
"ВЫБРАТЬ
| втТоварыОрганизаций.ВидДвижения КАК ВидДвижения,
| втТоварыОрганизаций.Период КАК Период,
| втТоварыОрганизаций.ОрганизацияОтгрузки КАК ОрганизацияОтгрузки,
| втТоварыОрганизаций.Организация КАК Организация,
| втТоварыОрганизаций.ВидЗапасов КАК ВидЗапасов,
| втТоварыОрганизаций.АналитикаУчетаНоменклатуры КАК АналитикаУчетаНоменклатуры,
| втТоварыОрганизаций.Номенклатура КАК Номенклатура,
| втТоварыОрганизаций.Характеристика КАК Характеристика,
| втТоварыОрганизаций.Склад КАК Склад,
| втТоварыОрганизаций.НомерГТД КАК НомерГТД,
| втТоварыОрганизаций.НоменклатураПартнера КАК НоменклатураПартнера,
| втТоварыОрганизаций.Количество КАК Количество,
| втТоварыОрганизаций.КоличествоПоРНПТ КАК КоличествоПоРНПТ,
| втТоварыОрганизаций.ХозяйственнаяОперация КАК ХозяйственнаяОперация,
| втТоварыОрганизаций.НалогообложениеНДС КАК НалогообложениеНДС,
| втТоварыОрганизаций.КорАналитикаУчетаНоменклатуры КАК КорАналитикаУчетаНоменклатуры,
| втТоварыОрганизаций.КорВидЗапасов КАК КорВидЗапасов
|ИЗ
| втТоварыОрганизаций КАК втТоварыОрганизаций";
ТекстыЗапроса.Добавить(ТекстЗапроса, ИмяРегистра);
Возврат ТекстЗапроса;
КонецФункции
Функция ТекстЗапросаТаблицаТоварыПереданныеНаКомиссию(Запрос, ТекстыЗапроса, Регистры, ДокументОбъект)
ИмяРегистра = "ТоварыПереданныеНаКомиссию";
Если НЕ ПроведениеДокументов.ТребуетсяТаблицаДляДвижений(ИмяРегистра, Регистры) Тогда
Возврат "";
КонецЕсли;
Если НЕ (ДокументОбъект.ХозяйственнаяОперация = Перечисления.ХозяйственныеОперации.ПередачаНаКомиссию) Тогда
Возврат "";
КонецЕсли;
Если НЕ ПроведениеДокументов.ЕстьТаблицаЗапроса("ВтТаблицаВидыЗапасов", ТекстыЗапроса) Тогда
ТекстЗапросаВтТаблицаВидыЗапасов(Запрос, ТекстыЗапроса, ДокументОбъект);
КонецЕсли;
УчетПрослеживаемыхТоваровЛокализация.УстановитьПараметрыИспользованияУчетаПрослеживаемыхТоваров(Запрос);
ТекстЗапроса =
"ВЫБРАТЬ
| ЗНАЧЕНИЕ(ВидДвиженияНакопления.Приход) КАК ВидДвижения,
| &Период КАК Период,
| &Организация КАК Организация,
| &Соглашение КАК Соглашение,
| ТаблицаВидыЗапасов.ВидЗапасов КАК ВидЗапасов,
| ТаблицаВидыЗапасов.НомерГТД КАК НомерГТД,
| ТаблицаВидыЗапасов.Количество КАК Количество,
| ВЫБОР
| КОГДА &ИспользоватьУчетПрослеживаемыхИмпортныхТоваров
| И НАЧАЛОПЕРИОДА(&Период, МЕСЯЦ) >= &ДатаНачалаУчетаПрослеживаемыхИмпортныхТоваров
| ТОГДА ТаблицаВидыЗапасов.КоличествоПоРНПТ
| ИНАЧЕ 0
| КОНЕЦ КАК КоличествоПоРНПТ,
| ТаблицаВидыЗапасов.АналитикаПереданнойНоменклатуры КАК АналитикаУчетаНоменклатуры,
| ТаблицаВидыЗапасов.Номенклатура КАК Номенклатура,
| ТаблицаВидыЗапасов.Характеристика КАК Характеристика,
| &ХозяйственнаяОперация КАК ХозяйственнаяОперация,
| &НалогообложениеНДС КАК НалогообложениеНДС,
| ТаблицаВидыЗапасов.АналитикаУчетаНоменклатуры КАК КорАналитикаУчетаНоменклатуры
|ИЗ
| ВтТаблицаВидыЗапасов КАК ТаблицаВидыЗапасов
|ГДЕ
| (ТаблицаВидыЗапасов.НоменклатураТипНоменклатуры <> ЗНАЧЕНИЕ(Перечисление.ТипыНоменклатуры.МногооборотнаяТара)
| ИЛИ ТаблицаВидыЗапасов.НоменклатураТипНоменклатуры = ЗНАЧЕНИЕ(Перечисление.ТипыНоменклатуры.МногооборотнаяТара)
| И НЕ &ВернутьМногооборотнуюТару)
|";
ТекстыЗапроса.Добавить(ТекстЗапроса, ИмяРегистра);
Возврат ТекстЗапроса;
КонецФункции
Функция ТекстЗапросаТаблицаДатыПередачиТоваровНаКомиссию(Запрос, ТекстыЗапроса, Регистры, ДокументОбъект)
ИмяРегистра = "ДатыПередачиТоваровНаКомиссию";
Если НЕ ПроведениеДокументов.ТребуетсяТаблицаДляДвижений(ИмяРегистра, Регистры) Тогда
Возврат "";
КонецЕсли;
Если НЕ (ДокументОбъект.ХозяйственнаяОперация = Перечисления.ХозяйственныеОперации.ПередачаНаКомиссию) Тогда
Возврат "";
КонецЕсли;
Если НЕ ПроведениеДокументов.ЕстьТаблицаЗапроса("ВтТаблицаВидыЗапасов", ТекстыЗапроса) Тогда
ТекстЗапросаВтТаблицаВидыЗапасов(Запрос, ТекстыЗапроса, ДокументОбъект);
КонецЕсли;
ТекстЗапроса =
"ВЫБРАТЬ РАЗЛИЧНЫЕ
| &Период КАК ДатаПередачи,
| ВидыЗапасов.АналитикаПереданнойНоменклатуры КАК АналитикаУчетаНоменклатуры,
| ВидыЗапасов.ВидЗапасов КАК ВидЗапасов,
| ВидыЗапасов.НомерГТД КАК НомерГТД,
| &Соглашение КАК Соглашение,
| &Организация КАК Организация
|ИЗ
| ВтТаблицаВидыЗапасов КАК ВидыЗапасов
| ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ДатыПередачиТоваровНаКомиссию КАК ДатыПередачиТоваровНаКомиссию
| ПО ВидыЗапасов.ВидЗапасов = ДатыПередачиТоваровНаКомиссию.ВидЗапасов
| И ВидыЗапасов.АналитикаПереданнойНоменклатуры = ДатыПередачиТоваровНаКомиссию.АналитикаУчетаНоменклатуры
| И ВидыЗапасов.НомерГТД = ДатыПередачиТоваровНаКомиссию.НомерГТД
| И (ДатыПередачиТоваровНаКомиссию.Соглашение = &Соглашение)
| И (ДатыПередачиТоваровНаКомиссию.Организация = &Организация)
|ГДЕ
| (ДатыПередачиТоваровНаКомиссию.ДатаПередачи ЕСТЬ NULL
| ИЛИ ДатыПередачиТоваровНаКомиссию.ДатаПередачи < &Период)
| И (ВидыЗапасов.НоменклатураТипНоменклатуры <> ЗНАЧЕНИЕ(Перечисление.ТипыНоменклатуры.МногооборотнаяТара)
| ИЛИ ВидыЗапасов.НоменклатураТипНоменклатуры = ЗНАЧЕНИЕ(Перечисление.ТипыНоменклатуры.МногооборотнаяТара)
| И НЕ &ВернутьМногооборотнуюТару)
|
|УПОРЯДОЧИТЬ ПО
| ВидыЗапасов.ВидЗапасов,
| ВидыЗапасов.АналитикаПереданнойНоменклатуры,
| ВидыЗапасов.НомерГТД";
ТекстыЗапроса.Добавить(ТекстЗапроса, ИмяРегистра);
Возврат ТекстЗапроса;
КонецФункции
Функция ТекстЗапросаТаблицаТоварыОрганизацийКПередаче(Запрос, ТекстыЗапроса, Регистры, ДокументОбъект)
ИмяРегистра = "ТоварыОрганизацийКПередаче";
Если НЕ ПроведениеДокументов.ТребуетсяТаблицаДляДвижений(ИмяРегистра, Регистры) Тогда
Возврат "";
КонецЕсли;
Если НЕ (ДокументОбъект.Статус <> Перечисления.СтатусыРеализацийТоваровУслуг.КПредоплате
ИЛИ ДокументОбъект.ХозяйственнаяОперация = Перечисления.ХозяйственныеОперации.ПередачаНаКомиссию) Тогда
Возврат "";
КонецЕсли;
Если НЕ ПроведениеДокументов.ЕстьТаблицаЗапроса("ВтТаблицаВидыЗапасов", ТекстыЗапроса) Тогда
ТекстЗапросаВтТаблицаВидыЗапасов(Запрос, ТекстыЗапроса, ДокументОбъект);
КонецЕсли;
ТекстЗапроса =
"ВЫБРАТЬ
| ЗНАЧЕНИЕ(ВидДвиженияНакопления.Приход) КАК ВидДвижения,
| &Период КАК Период,
| ТаблицаВидыЗапасов.АналитикаУчетаНоменклатуры КАК АналитикаУчетаНоменклатуры,
| ТаблицаВидыЗапасов.Номенклатура КАК Номенклатура,
| ТаблицаВидыЗапасов.Характеристика КАК Характеристика,
| ТаблицаВидыЗапасов.ВидЗапасовВидЗапасовВладельцаОрганизация КАК ОрганизацияВладелец,
| ТаблицаВидыЗапасов.ВидЗапасов КАК ВидЗапасовПродавца,
| ТаблицаВидыЗапасов.НомерГТД КАК НомерГТД,
| ТаблицаВидыЗапасов.Количество КАК Количество
|ИЗ
| ВтТаблицаВидыЗапасов КАК ТаблицаВидыЗапасов
|ГДЕ
| ТаблицаВидыЗапасов.ВидЗапасовРеализацияЗапасовДругойОрганизации";
ТекстыЗапроса.Добавить(ТекстЗапроса, ИмяРегистра);
Возврат ТекстЗапроса;
КонецФункции
Функция ТекстЗапросаТаблицаТоварыКОформлениюОтчетовКомитенту(Запрос, ТекстыЗапроса, Регистры, ДокументОбъект)
ИмяРегистра = "ТоварыКОформлениюОтчетовКомитенту";
Если Не ПроведениеДокументов.ТребуетсяТаблицаДляДвижений(ИмяРегистра, Регистры) Тогда
Возврат "";
КонецЕсли;
Если НЕ ((ДокументОбъект.ХозяйственнаяОперация = Перечисления.ХозяйственныеОперации.РеализацияКлиенту
ИЛИ ДокументОбъект.ХозяйственнаяОперация = Перечисления.ХозяйственныеОперации.РеализацияЧерезКомиссионера
ИЛИ ДокументОбъект.ХозяйственнаяОперация = Перечисления.ХозяйственныеОперации.РеализацияБезПереходаПраваСобственности
ИЛИ ДокументОбъект.ХозяйственнаяОперация = Перечисления.ХозяйственныеОперации.РеализацияЧерезКомиссионераБезПереходаПраваСобственности
ИЛИ ДокументОбъект.ХозяйственнаяОперация = Перечисления.ХозяйственныеОперации.ПереходПраваСобственности
ИЛИ ДокументОбъект.ХозяйственнаяОперация = Перечисления.ХозяйственныеОперации.РеализацияКлиентуРеглУчет)
И ДокументОбъект.Статус = Перечисления.СтатусыРеализацийТоваровУслуг.Отгружено) Тогда
Возврат "";
КонецЕсли;
ИнициализироватьКлючиАналитикиУчетаНоменклатуры(Запрос);
Если Не ПроведениеДокументов.ЕстьТаблицаЗапроса("ВтТаблицаВидыЗапасов", ТекстыЗапроса) Тогда
ТекстЗапросаВтТаблицаВидыЗапасов(Запрос, ТекстыЗапроса, ДокументОбъект);
КонецЕсли;
Если Не ПроведениеДокументов.ЕстьТаблицаЗапроса("ВтКурсыВалют", ТекстыЗапроса) Тогда
ТекстЗапросаВтКурсыВалют(Запрос, ТекстыЗапроса, ДокументОбъект);
КонецЕсли;
ТекстЗапроса = "
|ВЫБРАТЬ
| ТаблицаВидыЗапасов.НомерСтроки КАК НомерСтроки,
| ЗНАЧЕНИЕ(ВидДвиженияНакопления.Приход) КАК ВидДвижения,
| ВЫБОР
| КОГДА &ХозяйственнаяОперация = ЗНАЧЕНИЕ(Перечисление.ХозяйственныеОперации.РеализацияБезПереходаПраваСобственности)
| ИЛИ &ХозяйственнаяОперация = ЗНАЧЕНИЕ(Перечисление.ХозяйственныеОперации.РеализацияЧерезКомиссионераБезПереходаПраваСобственности)
| ТОГДА &ДатаПереходаПраваСобственности
| ИНАЧЕ &Период
| КОНЕЦ КАК Период,
| &Организация КАК Организация,
| ТаблицаВидыЗапасов.Валюта КАК Валюта,
| ТаблицаВидыЗапасов.ВидЗапасов КАК ВидЗапасов,
| ТаблицаВидыЗапасов.Номенклатура КАК Номенклатура,
| ТаблицаВидыЗапасов.Характеристика КАК Характеристика,
| ТаблицаВидыЗапасов.АналитикаНоменклатурыКомитента КАК АналитикаУчетаНоменклатуры,
| ВЫБОР
| КОГДА НЕ СоглашенияСПоставщиками.Ссылка ЕСТЬ NULL
| ТОГДА &Ссылка
| ИНАЧЕ НЕОПРЕДЕЛЕНО
| КОНЕЦ КАК ДокументПродажи,
| ТаблицаВидыЗапасов.НомерГТД КАК НомерГТД,
| &Ссылка КАК ДокументРеализации,
| &ХозяйственнаяОперация КАК ХозяйственнаяОперация,
| ТаблицаВидыЗапасов.Количество КАК Количество,
| ВЫБОР
| КОГДА ТаблицаВидыЗапасов.Валюта = &ВалютаРегламентированногоУчета
| ТОГДА ТаблицаВидыЗапасов.СуммаБезНДСРегл + ТаблицаВидыЗапасов.НДСРегл
| КОГДА ТаблицаВидыЗапасов.Валюта = &Валюта
| ТОГДА ТаблицаВидыЗапасов.СуммаСНДС
| ИНАЧЕ ТаблицаВидыЗапасов.СуммаСНДС * КурсыВалют.КоэффициентПересчета
| КОНЕЦ КАК СуммаВыручки,
| ВЫБОР КОГДА ЕСТЬNULL(ТаблицаВидыЗапасов.ВидЗапасов.Договор.ПереоцениватьТоварыУслугиКОтчетуКомитенту, ЛОЖЬ)
| ТОГДА ТаблицаВидыЗапасов.СуммаСНДСРегл
| ИНАЧЕ 0
| КОНЕЦ КАК СуммаВыручкиРегл,
| ВЫБОР КОГДА ЕСТЬNULL(ТаблицаВидыЗапасов.ВидЗапасов.Договор.ПереоцениватьТоварыУслугиКОтчетуКомитенту, ЛОЖЬ)
| ТОГДА ТаблицаВидыЗапасов.СуммаСНДСУпр
| ИНАЧЕ 0
| КОНЕЦ КАК СуммаВыручкиУпр,
| ТаблицаВидыЗапасов.Количество КАК КоличествоКОформлению,
| ТаблицаВидыЗапасов.КоличествоПоРНПТ КАК КоличествоКОформлениюПоРНПТ,
| ВЫБОР
| КОГДА ТаблицаВидыЗапасов.Валюта = &ВалютаРегламентированногоУчета
| ТОГДА ТаблицаВидыЗапасов.СуммаБезНДСРегл + ТаблицаВидыЗапасов.НДСРегл
| КОГДА ТаблицаВидыЗапасов.Валюта = &Валюта
| ТОГДА ТаблицаВидыЗапасов.СуммаСНДС
| ИНАЧЕ ТаблицаВидыЗапасов.СуммаСНДС * КурсыВалют.КоэффициентПересчета
| КОНЕЦ КАК СуммаВыручкиКОформлению,
| ТаблицаВидыЗапасов.ОбъектРасчетовУникальныйИдентификатор КАК ИдентификаторФинЗаписи,
| &НастройкаХозяйственнойОперации КАК НастройкаХозяйственнойОперации,
| ТаблицаВидыЗапасов.ИдентификаторСтроки КАК ИдентификаторСтроки
|ИЗ
| ВтТаблицаВидыЗапасов КАК ТаблицаВидыЗапасов
| ЛЕВОЕ СОЕДИНЕНИЕ ВтКурсыВалют КАК КурсыВалют
| ПО ТаблицаВидыЗапасов.Валюта = КурсыВалют.Валюта
| ЛЕВОЕ СОЕДИНЕНИЕ Справочник.СоглашенияСПоставщиками КАК СоглашенияСПоставщиками
| ПО ТаблицаВидыЗапасов.ВидЗапасовСоглашение = СоглашенияСПоставщиками.Ссылка
| И СоглашенияСПоставщиками.РазбиватьОтчетПоДокументам
|
|ГДЕ
| ТаблицаВидыЗапасов.ТипЗапасов = ЗНАЧЕНИЕ(Перечисление.ТипыЗапасов.КомиссионныйТовар)
| И (ТаблицаВидыЗапасов.НоменклатураТипНоменклатуры <> ЗНАЧЕНИЕ(Перечисление.ТипыНоменклатуры.МногооборотнаяТара)
| ИЛИ (ТаблицаВидыЗапасов.НоменклатураТипНоменклатуры = ЗНАЧЕНИЕ(Перечисление.ТипыНоменклатуры.МногооборотнаяТара)
| И НЕ &ВернутьМногооборотнуюТару))";
ТекстыЗапроса.Добавить(ТекстЗапроса, ИмяРегистра);
Возврат ТекстЗапроса;
КонецФункции
Функция ТекстЗапросаТаблицаВыручкаИСебестоимостьПродаж(Запрос, ТекстыЗапроса, Регистры, ДокументОбъект)
ИмяРегистра = "ВыручкаИСебестоимостьПродаж";
Если НЕ ПроведениеДокументов.ТребуетсяТаблицаДляДвижений(ИмяРегистра, Регистры) Тогда
Возврат "";
КонецЕсли;
МассивЗапросов = Новый Массив;
Если (ДокументОбъект.ХозяйственнаяОперация = Перечисления.ХозяйственныеОперации.РеализацияКлиенту
И ДокументОбъект.Статус <> Перечисления.СтатусыРеализацийТоваровУслуг.КПредоплате
ИЛИ ДокументОбъект.ХозяйственнаяОперация = Перечисления.ХозяйственныеОперации.РеализацияБезПереходаПраваСобственности
И ДокументОбъект.Статус = Перечисления.СтатусыРеализацийТоваровУслуг.Отгружено
ИЛИ ДокументОбъект.ХозяйственнаяОперация = Перечисления.ХозяйственныеОперации.ПереходПраваСобственности
И ДокументОбъект.Статус = Перечисления.СтатусыРеализацийТоваровУслуг.Отгружено
ИЛИ (ДокументОбъект.ХозяйственнаяОперация = Перечисления.ХозяйственныеОперации.РеализацияЧерезКомиссионера
И ДокументОбъект.Статус <> Перечисления.СтатусыРеализацийТоваровУслуг.КПредоплате
ИЛИ ДокументОбъект.ХозяйственнаяОперация = Перечисления.ХозяйственныеОперации.РеализацияЧерезКомиссионераБезПереходаПраваСобственности
И ДокументОбъект.Статус = Перечисления.СтатусыРеализацийТоваровУслуг.Отгружено)) Тогда
ТекстЗапроса =
"ВЫБРАТЬ
| ВЫБОР
| КОГДА &ХозяйственнаяОперация = ЗНАЧЕНИЕ(Перечисление.ХозяйственныеОперации.РеализацияБезПереходаПраваСобственности)
| И &Статус = ЗНАЧЕНИЕ(Перечисление.СтатусыРеализацийТоваровУслуг.Отгружено)
| ТОГДА &ДатаПереходаПраваСобственности
| КОГДА &ХозяйственнаяОперация = ЗНАЧЕНИЕ(Перечисление.ХозяйственныеОперации.РеализацияЧерезКомиссионераБезПереходаПраваСобственности)
| И &Статус = ЗНАЧЕНИЕ(Перечисление.СтатусыРеализацийТоваровУслуг.Отгружено)
| ТОГДА &ДатаПереходаПраваСобственности
| ИНАЧЕ &Период
| КОНЕЦ КАК Период,
| &Подразделение КАК Подразделение,
| ВЫБОР
| КОГДА &ХозяйственнаяОперация = ЗНАЧЕНИЕ(Перечисление.ХозяйственныеОперации.РеализацияБезПереходаПраваСобственности)
| ИЛИ &ХозяйственнаяОперация = ЗНАЧЕНИЕ(Перечисление.ХозяйственныеОперации.РеализацияЧерезКомиссионераБезПереходаПраваСобственности)
| ТОГДА
| ВЫБОР КОГДА &УчитыватьСебестоимостьТоваровПоНазначениям
| ТОГДА ТаблицаВидыЗапасов.АналитикаПереданнойНоменклатуры
| ИНАЧЕ ТаблицаВидыЗапасов.АналитикаПереданнойНоменклатурыБезНазначения
| КОНЕЦ
| ИНАЧЕ
| ВЫБОР КОГДА &УчитыватьСебестоимостьТоваровПоНазначениям
| ТОГДА ТаблицаВидыЗапасов.АналитикаУчетаНоменклатуры
| ИНАЧЕ ТаблицаВидыЗапасов.АналитикаУчетаНоменклатурыБезНазначения
| КОНЕЦ
| КОНЕЦ КАК АналитикаУчетаНоменклатуры,
| ТаблицаВидыЗапасов.АналитикаУчетаНаборов КАК АналитикаУчетаНаборов,
| ТаблицаВидыЗапасов.АналитикаУчетаПоПартнерам КАК АналитикаУчетаПоПартнерам,
| ТаблицаВидыЗапасов.ОбъектРасчетовНаправлениеДеятельности КАК НаправлениеДеятельностиКонтрагента,
| ВЫБОР
| КОГДА &РеализацияПоЗаказу
| И &РеализацияПоНесколькимЗаказам
| ТОГДА ТаблицаВидыЗапасов.ЗаказКлиента
| КОГДА &РеализацияПоЗаказу
| И НЕ &РеализацияПоНесколькимЗаказам
| ТОГДА &ЗаказКлиента
| ИНАЧЕ &Ссылка
| КОНЕЦ КАК ЗаказКлиента,
| ТаблицаВидыЗапасов.ТипЗапасов КАК ТипЗапасов,
| ТаблицаВидыЗапасов.ВидЗапасов КАК ВидЗапасов,
| ВЫБОР
| КОГДА ТаблицаВидыЗапасов.ТипЗапасов = ЗНАЧЕНИЕ(Перечисление.ТипыЗапасов.КомиссионныйТовар)
| И НЕ &ХозяйственнаяОперация В (ЗНАЧЕНИЕ(Перечисление.ХозяйственныеОперации.ПереходПраваСобственности),
| ЗНАЧЕНИЕ(Перечисление.ХозяйственныеОперации.РеализацияБезПереходаПраваСобственности),
| ЗНАЧЕНИЕ(Перечисление.ХозяйственныеОперации.РеализацияЧерезКомиссионераБезПереходаПраваСобственности))
| ТОГДА ЗНАЧЕНИЕ(Перечисление.РазделыУчетаСебестоимостиТоваров.ТоварыПринятыеНаКомиссию)
| КОГДА ТаблицаВидыЗапасов.ТипЗапасов = ЗНАЧЕНИЕ(Перечисление.ТипыЗапасов.КомиссионныйТовар)
| И &ХозяйственнаяОперация = ЗНАЧЕНИЕ(Перечисление.ХозяйственныеОперации.РеализацияБезПереходаПраваСобственности)
| ТОГДА &РазделУчетаКомиссионныйТоварВПути
| КОГДА ТаблицаВидыЗапасов.ТипЗапасов = ЗНАЧЕНИЕ(Перечисление.ТипыЗапасов.КомиссионныйТовар)
| ТОГДА ЗНАЧЕНИЕ(Перечисление.РазделыУчетаСебестоимостиТоваров.ТоварыПринятыеНаКомиссиюВПути)
| КОГДА ТаблицаВидыЗапасов.ТипЗапасов <> ЗНАЧЕНИЕ(Перечисление.ТипыЗапасов.КомиссионныйТовар)
| И &ХозяйственнаяОперация В (ЗНАЧЕНИЕ(Перечисление.ХозяйственныеОперации.ПереходПраваСобственности),
| ЗНАЧЕНИЕ(Перечисление.ХозяйственныеОперации.РеализацияБезПереходаПраваСобственности))
| ТОГДА ЗНАЧЕНИЕ(Перечисление.РазделыУчетаСебестоимостиТоваров.ТоварыВПути)
| КОГДА &ХозяйственнаяОперация = ЗНАЧЕНИЕ(Перечисление.ХозяйственныеОперации.РеализацияЧерезКомиссионераБезПереходаПраваСобственности)
| ТОГДА ЗНАЧЕНИЕ(Перечисление.РазделыУчетаСебестоимостиТоваров.ТоварыПереданныеНаКомиссиюВПути)
| КОГДА ТаблицаВидыЗапасов.ЦеховаяКладовая
| ТОГДА ЗНАЧЕНИЕ(Перечисление.РазделыУчетаСебестоимостиТоваров.ПроизводственныеЗатраты)
| КОГДА &ХозяйственнаяОперация = ЗНАЧЕНИЕ(Перечисление.ХозяйственныеОперации.РеализацияЧерезКомиссионера)
| ТОГДА ЗНАЧЕНИЕ(Перечисление.РазделыУчетаСебестоимостиТоваров.ТоварыПереданныеНаКомиссию)
| ИНАЧЕ ЗНАЧЕНИЕ(Перечисление.РазделыУчетаСебестоимостиТоваров.ТоварыНаСкладах)
| КОНЕЦ КАК РазделУчета,
| ТаблицаВидыЗапасов.АналитикаФинансовогоУчета КАК АналитикаФинансовогоУчета,
| ТаблицаВидыЗапасов.ВидДеятельностиНДС КАК ВидДеятельностиНДС,
|
| ТаблицаВидыЗапасов.НаправлениеДеятельности КАК НаправлениеДеятельностиНоменклатуры,
| &Менеджер КАК Менеджер,
| ВЫБОР
| КОГДА ТаблицаВидыЗапасов.ТипЗапасов = ЗНАЧЕНИЕ(Перечисление.ТипыЗапасов.КомиссионныйТовар)
| ТОГДА ТаблицаВидыЗапасов.СуммаСНДСУпр
| ИНАЧЕ 0
| КОНЕЦ КАК Стоимость,
| ВЫБОР
| КОГДА ТаблицаВидыЗапасов.ТипЗапасов = ЗНАЧЕНИЕ(Перечисление.ТипыЗапасов.КомиссионныйТовар)
| ТОГДА ТаблицаВидыЗапасов.СуммаБезНДСУпр
| ИНАЧЕ 0
| КОНЕЦ КАК СтоимостьБезНДС,
| ВЫБОР
| КОГДА ТаблицаВидыЗапасов.ТипЗапасов = ЗНАЧЕНИЕ(Перечисление.ТипыЗапасов.КомиссионныйТовар)
| И &УправленческийУчетОрганизаций
| ТОГДА ТаблицаВидыЗапасов.СуммаБезНДСУпр
| ИНАЧЕ 0
| КОНЕЦ КАК СтоимостьУпр,
|
| ВЫБОР
| КОГДА ТаблицаВидыЗапасов.ТипЗапасов = ЗНАЧЕНИЕ(Перечисление.ТипыЗапасов.КомиссионныйТовар)
| ТОГДА ТаблицаВидыЗапасов.СуммаБезНДСРегл
| ИНАЧЕ 0
| КОНЕЦ КАК СтоимостьРегл,
| ТаблицаВидыЗапасов.Количество КАК Количество,
| ТаблицаВидыЗапасов.СуммаСНДСУпр КАК СуммаВыручки,
| ТаблицаВидыЗапасов.СуммаБезНДСУпр КАК СуммаВыручкиБезНДС,
| ТаблицаВидыЗапасов.СуммаБезНДСРегл КАК СуммаВыручкиРегл,
| ТаблицаВидыЗапасов.СуммаБезНДСРегл + ТаблицаВидыЗапасов.НДСРегл КАК СуммаВыручкиСНДСРегл,
| ТаблицаВидыЗапасов.СуммаРучнойСкидкиУпр КАК СуммаРучнойСкидки,
| ТаблицаВидыЗапасов.СуммаАвтоматическойСкидкиУпр КАК СуммаАвтоматическойСкидки,
| ТаблицаВидыЗапасов.Склад КАК Склад,
| ВЫБОР КОГДА &РеализацияЧерезКомиссионера
| ТОГДА &КлиентДоговор
| ИНАЧЕ &Договор
| КОНЕЦ КАК Договор,
| &Соглашение КАК Соглашение,
| &ВалютаВзаиморасчетов КАК ВалютаВзаиморасчетов,
| ТаблицаВидыЗапасов.СуммаВзаиморасчетов КАК СуммаВВалютеВзаиморасчетов,
| ТаблицаВидыЗапасов.СуммаВзаиморасчетов - ТаблицаВидыЗапасов.СуммаВзаиморасчетовНДС КАК СуммаБезНДСВВалютеВзаиморасчетов,
| &Валюта КАК ВалютаДокумента,
| ТаблицаВидыЗапасов.СуммаСНДС КАК СуммаВВалютеДокумента,
| ТаблицаВидыЗапасов.СуммаСНДС - ТаблицаВидыЗапасов.СуммаНДС КАК СуммаБезНДСВВалютеДокумента,
| ТаблицаВидыЗапасов.СуммаАкцизаРегл КАК СуммаАкцизаРегл,
| ТаблицаВидыЗапасов.СуммаАкцизаУпр КАК СуммаАкцизаУпр,
| ВЫБОР
| КОГДА &ХозяйственнаяОперация = ЗНАЧЕНИЕ(Перечисление.ХозяйственныеОперации.ПередачаНаКомиссию)
| ТОГДА НЕОПРЕДЕЛЕНО
| КОГДА &ВернутьМногооборотнуюТару
| И ТаблицаВидыЗапасов.НоменклатураТипНоменклатуры = ЗНАЧЕНИЕ(Перечисление.ТипыНоменклатуры.МногооборотнаяТара)
| ТОГДА ЗНАЧЕНИЕ(Перечисление.ТипыНалогообложенияНДС.ПродажаНеОблагаетсяНДС)
| КОГДА &НалогообложениеНДС = ЗНАЧЕНИЕ(Перечисление.ТипыНалогообложенияНДС.ПродажаНаЭкспорт) ТОГДА
| ВЫБОР ТаблицаВидыЗапасов.СтавкаНДС
| КОГДА &СтавкаНДСНаЭкспорт ТОГДА
| ВЫБОР КОГДА ТаблицаВидыЗапасов.СырьевойТовар
| ТОГДА ЗНАЧЕНИЕ(Перечисление.ТипыНалогообложенияНДС.ЭкспортСырьевыхТоваровУслуг)
| ИНАЧЕ ЗНАЧЕНИЕ(Перечисление.ТипыНалогообложенияНДС.ЭкспортНесырьевыхТоваров)
| КОНЕЦ
| КОГДА ЗНАЧЕНИЕ(Справочник.СтавкиНДС.БезНДС) ТОГДА
| ЗНАЧЕНИЕ(Перечисление.ТипыНалогообложенияНДС.ПродажаНеОблагаетсяНДС)
| ИНАЧЕ
| ЗНАЧЕНИЕ(Перечисление.ТипыНалогообложенияНДС.ПродажаОблагаетсяНДС)
| КОНЕЦ
| КОГДА ТаблицаВидыЗапасов.СтавкаНДС = ЗНАЧЕНИЕ(Справочник.СтавкиНДС.БезНДС)
| И &НалогообложениеНДС В (&ТипыНалогообложенияНДСОблагаемые)
| ТОГДА ЗНАЧЕНИЕ(Перечисление.ТипыНалогообложенияНДС.ПродажаНеОблагаетсяНДС)
| ИНАЧЕ &НалогообложениеНДС
| КОНЕЦ КАК НалогообложениеНДС,
| ВЫБОР
| КОГДА ТаблицаВидыЗапасов.ТипЗапасов = ЗНАЧЕНИЕ(Перечисление.ТипыЗапасов.КомиссионныйТовар)
| ТОГДА ЗНАЧЕНИЕ(Перечисление.ХозяйственныеОперации.РеализацияКомиссионногоТовара)
| ИНАЧЕ &ХозяйственнаяОперация
| КОНЕЦ КАК ХозяйственнаяОперация,
| ВЫБОР
| КОГДА &ФормироватьВидыЗапасовПоГруппамФинансовогоУчета
| ТОГДА ТаблицаВидыЗапасов.ВидЗапасов
| ИНАЧЕ ТаблицаВидыЗапасов.Номенклатура
| КОНЕЦ КАК ИсточникГФУНоменклатуры,
| ТаблицаВидыЗапасов.ОбъектРасчетов КАК ИсточникГФУРасчетов,
|
| ТаблицаВидыЗапасов.ИдентификаторСтроки КАК ИдентификаторФинЗаписи,
| &НастройкаХозяйственнойОперации КАК НастройкаХозяйственнойОперации
|
|ИЗ
| ВтТаблицаВидыЗапасов КАК ТаблицаВидыЗапасов
|ГДЕ
| (ТаблицаВидыЗапасов.НоменклатураТипНоменклатуры = ЗНАЧЕНИЕ(Перечисление.ТипыНоменклатуры.Товар)
| ИЛИ ТаблицаВидыЗапасов.НоменклатураТипНоменклатуры = ЗНАЧЕНИЕ(Перечисление.ТипыНоменклатуры.МногооборотнаяТара)
| И НЕ &ВернутьМногооборотнуюТару)";
МассивЗапросов.Добавить(ТекстЗапроса);
КонецЕсли;
Если (ДокументОбъект.ХозяйственнаяОперация = Перечисления.ХозяйственныеОперации.РеализацияКлиенту
И ДокументОбъект.Статус <> Перечисления.СтатусыРеализацийТоваровУслуг.КПредоплате
ИЛИ ДокументОбъект.ХозяйственнаяОперация = Перечисления.ХозяйственныеОперации.РеализацияБезПереходаПраваСобственности
И ДокументОбъект.Статус = Перечисления.СтатусыРеализацийТоваровУслуг.Отгружено
ИЛИ ДокументОбъект.ХозяйственнаяОперация = Перечисления.ХозяйственныеОперации.РеализацияЧерезКомиссионера
И ДокументОбъект.Статус <> Перечисления.СтатусыРеализацийТоваровУслуг.КПредоплате
ИЛИ ДокументОбъект.ХозяйственнаяОперация = Перечисления.ХозяйственныеОперации.РеализацияЧерезКомиссионераБезПереходаПраваСобственности
И ДокументОбъект.Статус = Перечисления.СтатусыРеализацийТоваровУслуг.Отгружено) Тогда
ТекстЗапроса =
"ВЫБРАТЬ
| ВЫБОР
| КОГДА &ХозяйственнаяОперация = ЗНАЧЕНИЕ(Перечисление.ХозяйственныеОперации.РеализацияБезПереходаПраваСобственности)
| И &Статус = ЗНАЧЕНИЕ(Перечисление.СтатусыРеализацийТоваровУслуг.Отгружено)
| ТОГДА &ДатаПереходаПраваСобственности
| КОГДА &ХозяйственнаяОперация = ЗНАЧЕНИЕ(Перечисление.ХозяйственныеОперации.РеализацияЧерезКомиссионераБезПереходаПраваСобственности)
| И &Статус = ЗНАЧЕНИЕ(Перечисление.СтатусыРеализацийТоваровУслуг.Отгружено)
| ТОГДА &ДатаПереходаПраваСобственности
| ИНАЧЕ &Период
| КОНЕЦ КАК Период,
| &Подразделение КАК Подразделение,
| ВЫБОР КОГДА &УчитыватьСебестоимостьТоваровПоНазначениям
| ТОГДА ТаблицаТовары.АналитикаУчетаНоменклатуры
| ИНАЧЕ ТаблицаТовары.АналитикаУчетаНоменклатурыБезНазначения
| КОНЕЦ КАК АналитикаУчетаНоменклатуры,
| ТаблицаТовары.АналитикаУчетаНаборов КАК АналитикаУчетаНаборов,
| ТаблицаТовары.АналитикаУчетаПоПартнерам КАК АналитикаУчетаПоПартнерам,
| ТаблицаТовары.ОбъектРасчетовНаправлениеДеятельности КАК НаправлениеДеятельностиКонтрагента,
| ВЫБОР
| КОГДА &РеализацияПоЗаказу
| И &РеализацияПоНесколькимЗаказам
| ТОГДА ТаблицаТовары.ЗаказКлиента
| КОГДА &РеализацияПоЗаказу
| И НЕ &РеализацияПоНесколькимЗаказам
| ТОГДА &ЗаказКлиента
| ИНАЧЕ &Ссылка
| КОНЕЦ КАК ЗаказКлиента,
| ВЫБОР
| КОГДА ТаблицаТовары.Принципал <> НЕОПРЕДЕЛЕНО
| ТОГДА ЗНАЧЕНИЕ(Перечисление.ТипыЗапасов.АгентскаяУслуга)
| КОГДА ТаблицаТовары.ПрослеживаемыйТовар
| ТОГДА ТаблицаТовары.ТипЗапасов
| ИНАЧЕ ЗНАЧЕНИЕ(Перечисление.ТипыЗапасов.Услуга)
| КОНЕЦ КАК ТипЗапасов,
| ТаблицаТовары.ВидЗапасов КАК ВидЗапасов,
| (ВЫБОР
| КОГДА ТаблицаТовары.ТипНоменклатуры = ЗНАЧЕНИЕ(Перечисление.ТипыНоменклатуры.Работа)
| ТОГДА ЗНАЧЕНИЕ(Перечисление.РазделыУчетаСебестоимостиТоваров.ПроизводственныеЗатраты)
| ИНАЧЕ ЗНАЧЕНИЕ(Перечисление.РазделыУчетаСебестоимостиТоваров.ПустаяСсылка) КОНЕЦ) КАК РазделУчета,
| ТаблицаТовары.АналитикаФинансовогоУчета КАК АналитикаФинансовогоУчета,
| ТаблицаТовары.ВидДеятельностиНДС КАК ВидДеятельностиНДС,
| (ВЫБОР
| КОГДА ТаблицаТовары.ТипНоменклатуры = ЗНАЧЕНИЕ(Перечисление.ТипыНоменклатуры.Услуга)
| ТОГДА &НаправлениеДеятельности
| ИНАЧЕ СпрНазначения.НаправлениеДеятельности КОНЕЦ) КАК НаправлениеДеятельностиНоменклатуры,
| &Менеджер,
| ВЫБОР
| КОГДА ТаблицаТовары.Принципал <> НЕОПРЕДЕЛЕНО
| ТОГДА ТаблицаТовары.СуммаСНДСУпр
| ИНАЧЕ 0
| КОНЕЦ КАК Стоимость,
| ВЫБОР
| КОГДА ТаблицаТовары.Принципал <> НЕОПРЕДЕЛЕНО
| ТОГДА ТаблицаТовары.СуммаБезНДСУпр
| ИНАЧЕ 0
| КОНЕЦ КАК СтоимостьБезНДС,
| ВЫБОР
| КОГДА ТаблицаТовары.Принципал <> НЕОПРЕДЕЛЕНО
| И &УправленческийУчетОрганизаций
| ТОГДА ТаблицаТовары.СуммаБезНДСУпр
| ИНАЧЕ 0
| КОНЕЦ КАК СтоимостьУпр,
|
| ВЫБОР
| КОГДА ТаблицаТовары.Принципал <> НЕОПРЕДЕЛЕНО
| ТОГДА ТаблицаТовары.СуммаБезНДСРегл
| ИНАЧЕ 0
| КОНЕЦ КАК СтоимостьРегл,
| ТаблицаТовары.Количество,
| ТаблицаТовары.СуммаСНДСУпр,
| ТаблицаТовары.СуммаБезНДСУпр,
| ТаблицаТовары.СуммаБезНДСРегл,
| ТаблицаТовары.СуммаБезНДСРегл + ТаблицаТовары.НДСРегл,
| ТаблицаТовары.СуммаРучнойСкидкиУпр,
| ТаблицаТовары.СуммаАвтоматическойСкидкиУпр,
| ТаблицаТовары.Склад,
| ВЫБОР КОГДА &РеализацияЧерезКомиссионера
| ТОГДА &КлиентДоговор
| ИНАЧЕ &Договор
| КОНЕЦ КАК Договор,
| &Соглашение,
| &ВалютаВзаиморасчетов,
| ТаблицаТовары.СуммаВзаиморасчетов,
| ТаблицаТовары.СуммаВзаиморасчетов - ТаблицаТовары.СуммаВзаиморасчетовНДС,
| &Валюта,
| ТаблицаТовары.СуммаСНДС,
| ТаблицаТовары.СуммаСНДС - ТаблицаТовары.СуммаНДС,
| 0 КАК СуммаАкцизаРегл,
| 0 КАК СуммаАкцизаУпр,
| ВЫБОР
| КОГДА ТаблицаТовары.СтавкаНДС = ЗНАЧЕНИЕ(Справочник.СтавкиНДС.БезНДС)
| И &НалогообложениеНДС В (&ТипыНалогообложенияНДСОблагаемые)
| ТОГДА ЗНАЧЕНИЕ(Перечисление.ТипыНалогообложенияНДС.ПродажаНеОблагаетсяНДС)
| ИНАЧЕ &НалогообложениеНДС
| КОНЕЦ,
| &ХозяйственнаяОперация,
| ТаблицаТовары.Номенклатура,
| ТаблицаТовары.ОбъектРасчетов,
|
| ТаблицаТовары.ИдентификаторСтроки КАК ИдентификаторФинЗаписи,
| &НастройкаХозяйственнойОперации КАК НастройкаХозяйственнойОперации
|
|ИЗ
| ВтРаботыУслуги КАК ТаблицаТовары
|
| ЛЕВОЕ СОЕДИНЕНИЕ Справочник.Назначения КАК СпрНазначения
| ПО ТаблицаТовары.АналитикаУчетаНоменклатурыНазначение = СпрНазначения.Ссылка
|";
МассивЗапросов.Добавить(ТекстЗапроса);
КонецЕсли;
Если МассивЗапросов.Количество() = 0 Тогда
Возврат "";
КонецЕсли;
УстановитьПараметрЗапросаТипыНалогообложенияНДСОблагаемые(Запрос);
УстановитьПараметрЗапросаАналитикаУчетаПоПартнерам(Запрос);
Если НЕ ПроведениеДокументов.ЕстьТаблицаЗапроса("ВтТаблицаВидыЗапасов", ТекстыЗапроса) Тогда
ТекстЗапросаВтТаблицаВидыЗапасов(Запрос, ТекстыЗапроса, ДокументОбъект);
КонецЕсли;
Если НЕ ПроведениеДокументов.ЕстьТаблицаЗапроса("ВТРаботыУслуги", ТекстыЗапроса) Тогда
ТекстЗапросаВТРаботыУслуги(Запрос, ТекстыЗапроса, ДокументОбъект);
КонецЕсли;
ТекстЗапроса = СтрСоединить(МассивЗапросов, ОбщегоНазначенияУТ.РазделительЗапросовВОбъединении());
ТекстыЗапроса.Добавить(ТекстЗапроса, ИмяРегистра);
Возврат ТекстЗапроса;
КонецФункции
Функция ТекстЗапросаТаблицаДвиженияНоменклатураНоменклатура(Запрос, ТекстыЗапроса, Регистры, ДокументОбъект)
ИмяРегистра = "ДвиженияНоменклатураНоменклатура";
Если НЕ ПроведениеДокументов.ТребуетсяТаблицаДляДвижений(ИмяРегистра, Регистры) Тогда
Возврат "";
КонецЕсли;
МассивЗапросов = Новый Массив;
Если ДокументОбъект.ХозяйственнаяОперация = Перечисления.ХозяйственныеОперации.ПередачаНаКомиссию Тогда
ТекстЗапроса =
"ВЫБРАТЬ
| &Период КАК Период,
| &ХозяйственнаяОперация КАК ХозяйственнаяОперация,
| ТаблицаВидыЗапасов.Организация КАК Организация,
| &Подразделение КАК Подразделение,
| ВЫБОР КОГДА &УчитыватьСебестоимостьТоваровПоНазначениям
| ТОГДА ТаблицаВидыЗапасов.АналитикаУчетаНоменклатуры
| ИНАЧЕ ТаблицаВидыЗапасов.АналитикаУчетаНоменклатурыБезНазначения
| КОНЕЦ КАК АналитикаУчетаНоменклатуры,
| ТаблицаВидыЗапасов.Склад КАК Склад,
| ТаблицаВидыЗапасов.НаправлениеДеятельности КАК НаправлениеДеятельности,
| ТаблицаВидыЗапасов.ТипЗапасов КАК ТипЗапасов,
| ТаблицаВидыЗапасов.ВидЗапасов КАК ВидЗапасов,
| ВЫБОР КОГДА &УчитыватьСебестоимостьТоваровПоНазначениям
| ТОГДА ТаблицаВидыЗапасов.АналитикаПереданнойНоменклатуры
| ИНАЧЕ ТаблицаВидыЗапасов.АналитикаПереданнойНоменклатурыБезНазначения
| КОНЕЦ КАК КорАналитикаУчетаНоменклатуры,
| &Партнер КАК КорСклад,
| &НаправлениеДеятельности КАК КорНаправлениеДеятельности,
| ТаблицаВидыЗапасов.ТипЗапасов КАК КорТипЗапасов,
| ТаблицаВидыЗапасов.ВидЗапасов КАК КорВидЗапасов,
| ТаблицаВидыЗапасов.Количество КАК Количество,
| ТаблицаВидыЗапасов.Количество КАК КорКоличество,
| 0 КАК Стоимость,
| 0 КАК СтоимостьБезНДС,
| 0 КАК СтоимостьРегл,
| ВЫБОР
| КОГДА &ФормироватьВидыЗапасовПоГруппамФинансовогоУчета
| ТОГДА ТаблицаВидыЗапасов.ВидЗапасов
| ИНАЧЕ ТаблицаВидыЗапасов.Номенклатура
| КОНЕЦ КАК ИсточникГФУНоменклатуры,
| ВЫБОР
| КОГДА &ФормироватьВидыЗапасовПоГруппамФинансовогоУчета
| ТОГДА ТаблицаВидыЗапасов.ВидЗапасов
| ИНАЧЕ ТаблицаВидыЗапасов.Номенклатура
| КОНЕЦ КАК КорИсточникГФУНоменклатуры
|ИЗ
| ВтТаблицаВидыЗапасов КАК ТаблицаВидыЗапасов
|ГДЕ
| ТаблицаВидыЗапасов.НоменклатураТипНоменклатуры В(ЗНАЧЕНИЕ(Перечисление.ТипыНоменклатуры.Товар),
| ЗНАЧЕНИЕ(Перечисление.ТипыНоменклатуры.МногооборотнаяТара))
|";
МассивЗапросов.Добавить(ТекстЗапроса);
КонецЕсли;
Если ДокументОбъект.ХозяйственнаяОперация = Перечисления.ХозяйственныеОперации.РеализацияБезПереходаПраваСобственности Тогда
ТекстЗапроса =
"ВЫБРАТЬ
| &Период КАК Период,
| ЗНАЧЕНИЕ(Перечисление.ХозяйственныеОперации.ОтгрузкаБезПереходаПраваСобственности) КАК ХозяйственнаяОперация,
| ТаблицаВидыЗапасов.Организация КАК Организация,
| &Подразделение КАК Подразделение,
| ВЫБОР КОГДА &УчитыватьСебестоимостьТоваровПоНазначениям
| ТОГДА ТаблицаВидыЗапасов.АналитикаУчетаНоменклатуры
| ИНАЧЕ ТаблицаВидыЗапасов.АналитикаУчетаНоменклатурыБезНазначения
| КОНЕЦ КАК АналитикаУчетаНоменклатуры,
| ТаблицаВидыЗапасов.Склад КАК Склад,
| ТаблицаВидыЗапасов.НаправлениеДеятельности КАК НаправлениеДеятельности,
| ТаблицаВидыЗапасов.ТипЗапасов КАК ТипЗапасов,
| ТаблицаВидыЗапасов.ВидЗапасов КАК ВидЗапасов,
| ВЫБОР КОГДА &УчитыватьСебестоимостьТоваровПоНазначениям
| ТОГДА ТаблицаВидыЗапасов.АналитикаПереданнойНоменклатуры
| ИНАЧЕ ТаблицаВидыЗапасов.АналитикаПереданнойНоменклатурыБезНазначения
| КОНЕЦ КАК КорАналитикаУчетаНоменклатуры,
| &Партнер КАК КорСклад,
| &НаправлениеДеятельности КАК КорНаправлениеДеятельности,
| ТаблицаВидыЗапасов.ТипЗапасов КАК КорТипЗапасов,
| ТаблицаВидыЗапасов.ВидЗапасов КАК КорВидЗапасов,
| ТаблицаВидыЗапасов.Количество КАК Количество,
| ТаблицаВидыЗапасов.Количество КАК КорКоличество,
| 0 КАК Стоимость,
| 0 КАК СтоимостьБезНДС,
| 0 КАК СтоимостьРегл,
| ВЫБОР
| КОГДА &ФормироватьВидыЗапасовПоГруппамФинансовогоУчета
| ТОГДА ТаблицаВидыЗапасов.ВидЗапасов
| ИНАЧЕ ТаблицаВидыЗапасов.Номенклатура
| КОНЕЦ КАК ИсточникГФУНоменклатуры,
| ВЫБОР
| КОГДА &ФормироватьВидыЗапасовПоГруппамФинансовогоУчета
| ТОГДА ТаблицаВидыЗапасов.ВидЗапасов
| ИНАЧЕ ТаблицаВидыЗапасов.Номенклатура
| КОНЕЦ КАК КорИсточникГФУНоменклатуры
|ИЗ
| ВтТаблицаВидыЗапасов КАК ТаблицаВидыЗапасов
|ГДЕ
| ТаблицаВидыЗапасов.НоменклатураТипНоменклатуры В(ЗНАЧЕНИЕ(Перечисление.ТипыНоменклатуры.Товар),
| ЗНАЧЕНИЕ(Перечисление.ТипыНоменклатуры.МногооборотнаяТара))
|";
МассивЗапросов.Добавить(ТекстЗапроса);
КонецЕсли;
Если МассивЗапросов.Количество() = 0 Тогда
Возврат "";
КонецЕсли;
Если НЕ ПроведениеДокументов.ЕстьТаблицаЗапроса("ВтТаблицаВидыЗапасов", ТекстыЗапроса) Тогда
ТекстЗапросаВтТаблицаВидыЗапасов(Запрос, ТекстыЗапроса, ДокументОбъект);
КонецЕсли;
ТекстЗапроса = СтрСоединить(МассивЗапросов, ОбщегоНазначенияУТ.РазделительЗапросовВОбъединении());
ТекстыЗапроса.Добавить(ТекстЗапроса, ИмяРегистра);
Возврат ТекстЗапроса;
КонецФункции
Функция ТекстЗапросаТаблицаМатериалыИРаботыВПроизводстве(Запрос, ТекстыЗапроса, Регистры, ДокументОбъект)
ИмяРегистра = "МатериалыИРаботыВПроизводстве";
Если НЕ ПроведениеДокументов.ТребуетсяТаблицаДляДвижений(ИмяРегистра, Регистры) Тогда
Возврат "";
КонецЕсли;
Если НЕ (ДокументОбъект.Статус = Перечисления.СтатусыРеализацийТоваровУслуг.Отгружено) Тогда
Возврат "";
КонецЕсли;
ТекстЗапроса =
"ВЫБРАТЬ
| ЗНАЧЕНИЕ(ВидДвиженияНакопления.Расход) КАК ВидДвижения,
| ВЫБОР
| КОГДА &ХозяйственнаяОперация В (ЗНАЧЕНИЕ(Перечисление.ХозяйственныеОперации.РеализацияБезПереходаПраваСобственности),
| ЗНАЧЕНИЕ(Перечисление.ХозяйственныеОперации.РеализацияЧерезКомиссионераБезПереходаПраваСобственности))
| ТОГДА &ДатаПереходаПраваСобственности
| ИНАЧЕ &Период
| КОНЕЦ КАК Период,
| &Период КАК ДатаРегистратора,
| &Организация КАК Организация,
| ТаблицаТовары.Подразделение КАК Подразделение,
| ТаблицаТовары.Номенклатура,
| ТаблицаТовары.Характеристика,
| ТаблицаТовары.АналитикаУчетаНоменклатуры КАК АналитикаУчетаНоменклатуры,
| ТаблицаТовары.Количество КАК Количество,
| ТаблицаТовары.Назначение КАК Назначение,
| ВЫБОР
| КОГДА ТаблицаТовары.СтавкаНДС = ЗНАЧЕНИЕ(Справочник.СтавкиНДС.БезНДС)
| И &НалогообложениеНДС = ЗНАЧЕНИЕ(Перечисление.ТипыНалогообложенияНДС.ПродажаОблагаетсяНДС)
| ТОГДА ЗНАЧЕНИЕ(Перечисление.ТипыНалогообложенияНДС.ПродажаНеОблагаетсяНДС)
| КОГДА &НалогообложениеНДС = ЗНАЧЕНИЕ(Перечисление.ТипыНалогообложенияНДС.ПродажаНаЭкспорт) ТОГДА
| ВЫБОР ТаблицаТовары.СтавкаНДС
| КОГДА &СтавкаНДСНаЭкспорт ТОГДА
| ЗНАЧЕНИЕ(Перечисление.ТипыНалогообложенияНДС.ЭкспортСырьевыхТоваровУслуг)
| КОГДА ЗНАЧЕНИЕ(Справочник.СтавкиНДС.БезНДС) ТОГДА
| ЗНАЧЕНИЕ(Перечисление.ТипыНалогообложенияНДС.ПродажаНеОблагаетсяНДС)
| ИНАЧЕ
| ЗНАЧЕНИЕ(Перечисление.ТипыНалогообложенияНДС.ПродажаОблагаетсяНДС)
| КОНЕЦ
| ИНАЧЕ &НалогообложениеНДС
| КОНЕЦ КАК НалогообложениеНДС
|ИЗ
| ДанныеДокументаТаблицаТовары КАК ТаблицаТовары
|ГДЕ
| ТаблицаТовары.НоменклатураТипНоменклатуры = ЗНАЧЕНИЕ(Перечисление.ТипыНоменклатуры.Работа)
| И НЕ ТаблицаТовары.НоменклатураПрослеживаемыйТовар
|";
ТекстыЗапроса.Добавить(ТекстЗапроса, ИмяРегистра);
Возврат ТекстЗапроса;
КонецФункции
Функция ТекстЗапросаТаблицаПереданнаяВозвратнаяТара(Запрос, ТекстыЗапроса, Регистры, ДокументОбъект)
ИмяРегистра = "ПереданнаяВозвратнаяТара";
Если НЕ ПроведениеДокументов.ТребуетсяТаблицаДляДвижений(ИмяРегистра, Регистры) Тогда
Возврат "";
КонецЕсли;
Если НЕ (ДокументОбъект.Статус <> Перечисления.СтатусыРеализацийТоваровУслуг.КПредоплате
И ДокументОбъект.ВернутьМногооборотнуюТару) Тогда
Возврат "";
КонецЕсли;
Если НЕ ПроведениеДокументов.ЕстьТаблицаЗапроса("ВтТаблицаВидыЗапасов", ТекстыЗапроса) Тогда
ТекстЗапросаВтТаблицаВидыЗапасов(Запрос, ТекстыЗапроса, ДокументОбъект);
КонецЕсли;
ТекстЗапроса =
"ВЫБРАТЬ
| ВтТаблицаВидыЗапасов.НомерСтроки КАК НомерСтроки,
| ЗНАЧЕНИЕ(ВидДвиженияНакопления.Приход) КАК ВидДвижения,
| &Период КАК Период,
| ВтТаблицаВидыЗапасов.Номенклатура КАК Номенклатура,
| ВтТаблицаВидыЗапасов.Характеристика КАК Характеристика,
| ВтТаблицаВидыЗапасов.Количество КАК Количество,
| ВтТаблицаВидыЗапасов.КоличествоПоРНПТ КАК КоличествоПоРНПТ,
| ВтТаблицаВидыЗапасов.СуммаСНДС КАК Сумма,
| ВтТаблицаВидыЗапасов.ВидЗапасов КАК ВидЗапасов,
| ВтТаблицаВидыЗапасов.НомерГТД КАК НомерГТД,
| &Партнер КАК Партнер,
| &Ссылка КАК ДокументПередачи,
| &ТребуетсяЗалогЗаТару КАК ПредусмотренЗалог,
|
| ВЫБОР
| КОГДА &ТребуетсяЗалогЗаТару
| ТОГДА &ИдентификаторНеиспользуемойФинзаписи
| ИНАЧЕ ВтТаблицаВидыЗапасов.ИдентификаторСтроки
| КОНЕЦ КАК ИдентификаторФинЗаписи,
| ЗНАЧЕНИЕ(Справочник.НастройкиХозяйственныхОпераций.РеализацияПереданнойВозвратнойТары) КАК НастройкаХозяйственнойОперации
|
|ИЗ
| ВтТаблицаВидыЗапасов КАК ВтТаблицаВидыЗапасов
|ГДЕ
| ВтТаблицаВидыЗапасов.НоменклатураТипНоменклатуры = ЗНАЧЕНИЕ(Перечисление.ТипыНоменклатуры.МногооборотнаяТара)";
ТекстыЗапроса.Добавить(ТекстЗапроса, ИмяРегистра);
Возврат ТекстЗапроса;
КонецФункции
Функция ТекстЗапросаТаблицаУслугиКОформлениюОтчетовПринципалу(Запрос, ТекстыЗапроса, Регистры, ДокументОбъект)
ИмяРегистра = "УслугиКОформлениюОтчетовПринципалу";
Если НЕ ПроведениеДокументов.ТребуетсяТаблицаДляДвижений(ИмяРегистра, Регистры) Тогда
Возврат "";
КонецЕсли;
Если (ДокументОбъект.ХозяйственнаяОперация <> Перечисления.ХозяйственныеОперации.РеализацияКлиенту
И ДокументОбъект.ХозяйственнаяОперация <>Перечисления.ХозяйственныеОперации.РеализацияБезПереходаПраваСобственности
И ДокументОбъект.ХозяйственнаяОперация <> Перечисления.ХозяйственныеОперации.РеализацияКлиентуРеглУчет
И ДокументОбъект.ХозяйственнаяОперация <> Перечисления.ХозяйственныеОперации.ПереходПраваСобственности)
Или ДокументОбъект.Статус <> Перечисления.СтатусыРеализацийТоваровУслуг.Отгружено Тогда
Возврат "";
КонецЕсли;
Если НЕ ПроведениеДокументов.ЕстьТаблицаЗапроса("ВтРаботыУслуги", ТекстыЗапроса) Тогда
ТекстЗапросаВтРаботыУслуги(Запрос, ТекстыЗапроса, ДокументОбъект);
КонецЕсли;
Если НЕ ПроведениеДокументов.ЕстьТаблицаЗапроса("ВтКурсыВалют", ТекстыЗапроса) Тогда
ТекстЗапросаВтКурсыВалют(Запрос, ТекстыЗапроса, ДокументОбъект);
КонецЕсли;
ТекстЗапроса =
"ВЫБРАТЬ
| ЗНАЧЕНИЕ(ВидДвиженияНакопления.Приход) КАК ВидДвижения,
| &Период КАК Период,
| &Организация КАК Организация,
| КОформлению.АналитикаНоменклатурыПринципала КАК АналитикаУчетаНоменклатуры,
| КОформлению.Соглашение КАК Соглашение,
| КОформлению.Валюта КАК Валюта,
| КОформлению.Количество КАК Количество,
| КОформлению.СуммаСНДС * КурсыВалют.КоэффициентПересчета КАК СуммаВыручки,
| КОформлению.СуммаНДС * КурсыВалют.КоэффициентПересчета КАК СуммаНДС,
| ВЫБОР
| КОГДА ЕСТЬNULL(КОформлению.Соглашение.ПереоцениватьУслугиКОтчетуКомитенту, ЛОЖЬ)
| ТОГДА КОформлению.СуммаСНДСРегл
| ИНАЧЕ 0
| КОНЕЦ КАК СуммаВыручкиРегл,
| ВЫБОР
| КОГДА ЕСТЬNULL(КОформлению.Соглашение.ПереоцениватьУслугиКОтчетуКомитенту, ЛОЖЬ)
| ТОГДА КОформлению.СуммаСНДСУпр
| ИНАЧЕ 0
| КОНЕЦ КАК СуммаВыручкиУпр,
| &Контрагент КАК Покупатель,
| ВЫБОР
| КОГДА НЕ КОформлению.Соглашение = ЗНАЧЕНИЕ(Справочник.СоглашенияСПоставщиками.ПустаяСсылка)
| И КОформлению.Соглашение.РазбиватьОтчетПоДокументам
| ТОГДА &Ссылка
| ИНАЧЕ НЕОПРЕДЕЛЕНО
| КОНЕЦ КАК ДокументПродажи,
| &Ссылка КАК ДокументРеализации,
|
| КОформлению.ОбъектРасчетовУникальныйИдентификатор КАК ИдентификаторФинЗаписи,
| &НастройкаХозяйственнойОперации КАК НастройкаХозяйственнойОперации,
| КОформлению.ИдентификаторСтроки КАК ИдентификаторСтроки
|ИЗ
| ВтРаботыУслуги КАК КОформлению
| ЛЕВОЕ СОЕДИНЕНИЕ ВтКурсыВалют КАК КурсыВалют
| ПО КОформлению.Валюта = КурсыВалют.Валюта
|ГДЕ
| КОформлению.АналитикаНоменклатурыПринципала <> НЕОПРЕДЕЛЕНО";
ТекстыЗапроса.Добавить(ТекстЗапроса, ИмяРегистра);
Возврат ТекстЗапроса;
КонецФункции
Процедура СформироватьСуммыДокументаВВалютахУчета(Запрос, ТекстыЗапроса, Регистры = Неопределено, ДокументОбъект = Неопределено) Экспорт
НеПересчитыватьСуммыНДС = Ложь;
ТекстЗапросаДанных =
"ВЫБРАТЬ
| ""ТоварыРаботыУслуги"" КАК ИсточникДанных,
| ИСТИНА КАК РаспределятьОбщуюСумму,
|
| ТаблицаТовары.Ссылка КАК Ссылка,
| ДанныеДокумента.Дата КАК Дата,
| ДанныеДокумента.Организация КАК Организация,
| ДанныеДокумента.Валюта КАК ВалютаДокумента,
| ДанныеДокумента.ВалютаВзаиморасчетов КАК ВалютаВзаиморасчетов,
| ДанныеДокумента.Дата КАК ПериодБазыНДС,
| ДанныеДокумента.Дата КАК ДатаКурса,
|
| ТаблицаТовары.НомерСтроки КАК НомерСтроки,
| ТаблицаТовары.ИдентификаторСтроки КАК ИдентификаторСтроки,
|
| ТаблицаТовары.СуммаСНДС - ТаблицаТовары.СуммаНДС КАК СуммаБезНДС,
| ТаблицаТовары.СтавкаНДС КАК СтавкаНДС,
| ТаблицаТовары.СуммаНДС КАК СуммаНДС,
| ТаблицаТовары.СуммаВзаиморасчетов КАК СуммаВзаиморасчетов,
| 0 КАК СуммаНДСВзаиморасчетов,
| 0 КАК СуммаБезНДСРегл,
| 0 КАК СуммаБезНДСУпр,
| ТаблицаТовары.СуммаНДСРегл КАК СуммаНДСРегл,
| ТаблицаТовары.СуммаНДСУпр КАК СуммаНДСУпр,
|
| ВЫБОР
| КОГДА ДанныеДокумента.ХозяйственнаяОперация = ЗНАЧЕНИЕ(Перечисление.ХозяйственныеОперации.ПередачаНаКомиссию)
| ТОГДА ЛОЖЬ
| ИНАЧЕ ИСТИНА
| КОНЕЦ КАК ОтражаетсяВРасчетах,
| ТаблицаТовары.ОбъектРасчетов КАК ОбъектРасчетов,
| ИСТИНА КАК ПересчитыватьПоДаннымРасчетов
|
|ИЗ
| ДанныеДокументаТаблицаТовары КАК ТаблицаТовары
| ВНУТРЕННЕЕ СОЕДИНЕНИЕ ДанныеДокументаШапка КАК ДанныеДокумента
| ПО ТаблицаТовары.Ссылка = ДанныеДокумента.Ссылка
|
| ЛЕВОЕ СОЕДИНЕНИЕ ДанныеДокументаТаблицаВидыЗапасов КАК ВидыЗапасов
| ПО ТаблицаТовары.Ссылка = ВидыЗапасов.Ссылка
| И ТаблицаТовары.АналитикаУчетаНоменклатуры = ВидыЗапасов.АналитикаУчетаНоменклатуры
|ГДЕ
| ТаблицаТовары.Ссылка В (&Ссылка)
| И ВидыЗапасов.Ссылка ЕСТЬ NULL
|
|ОБЪЕДИНИТЬ ВСЕ
|
|ВЫБРАТЬ
| ""ТоварыРаботыУслуги"" КАК ИсточникДанных,
| ИСТИНА КАК РаспределятьОбщуюСумму,
|
| ТаблицаТовары.Ссылка КАК Ссылка,
| ДанныеДокумента.Дата КАК Дата,
| ДанныеДокумента.Организация КАК Организация,
| ДанныеДокумента.Валюта КАК ВалютаДокумента,
| ДанныеДокумента.ВалютаВзаиморасчетов КАК ВалютаВзаиморасчетов,
| ДанныеДокумента.Дата КАК ПериодБазыНДС,
| ДанныеДокумента.Дата КАК ДатаКурса,
|
| ТаблицаТовары.НомерСтроки КАК НомерСтроки,
| ТаблицаТовары.ИдентификаторСтроки КАК ИдентификаторСтроки,
|
| ТаблицаТовары.СуммаСНДС - ТаблицаТовары.СуммаНДС КАК СуммаБезНДС,
| ТаблицаТовары.СтавкаНДС КАК СтавкаНДС,
| ТаблицаТовары.СуммаНДС КАК СуммаНДС,
| ТаблицаТовары.СуммаВзаиморасчетов КАК СуммаВзаиморасчетов,
| 0 КАК СуммаНДСВзаиморасчетов,
| 0 КАК СуммаБезНДСРегл,
| 0 КАК СуммаБезНДСУпр,
| ТаблицаТовары.СуммаНДСРегл КАК СуммаНДСРегл,
| ТаблицаТовары.СуммаНДСУпр КАК СуммаНДСУпр,
|
| ВЫБОР
| КОГДА ДанныеДокумента.ХозяйственнаяОперация = ЗНАЧЕНИЕ(Перечисление.ХозяйственныеОперации.ПередачаНаКомиссию)
| ТОГДА ЛОЖЬ
| КОГДА ТаблицаТовары.АналитикаУчетаНоменклатурыНоменклатураТипНоменклатуры = ЗНАЧЕНИЕ(Перечисление.ТипыНоменклатуры.МногооборотнаяТара)
| И ДанныеДокумента.ВернутьМногооборотнуюТару
| И НЕ ДанныеДокумента.ТребуетсяЗалогЗаТару
| ТОГДА ЛОЖЬ
| ИНАЧЕ ИСТИНА
| КОНЕЦ КАК ОтражаетсяВРасчетах,
| ТаблицаТовары.ОбъектРасчетов КАК ОбъектРасчетов,
| ИСТИНА КАК ПересчитыватьПоДаннымРасчетов
|
|ИЗ
| ДанныеДокументаТаблицаВидыЗапасов КАК ТаблицаТовары
| ВНУТРЕННЕЕ СОЕДИНЕНИЕ ДанныеДокументаШапка КАК ДанныеДокумента
| ПО ТаблицаТовары.Ссылка = ДанныеДокумента.Ссылка
|ГДЕ
| ТаблицаТовары.Ссылка В (&Ссылка)";
Если ДокументОбъект = Неопределено Тогда
ТекстЗапросаДанных = СтрЗаменить(ТекстЗапросаДанных, "ДанныеДокументаТаблицаТовары", "Документ.РеализацияТоваровУслуг.Товары");
ТекстЗапросаДанных = СтрЗаменить(ТекстЗапросаДанных, "ДанныеДокументаТаблицаВидыЗапасов", "Документ.РеализацияТоваровУслуг.ВидыЗапасов");
ТекстЗапросаДанных = СтрЗаменить(ТекстЗапросаДанных, "ТаблицаТовары.НоменклатураТипНоменклатуры", "ТаблицаТовары.Номенклатура.ТипНоменклатуры");
ТекстЗапросаДанных = СтрЗаменить(ТекстЗапросаДанных, "ТаблицаТовары.АналитикаУчетаНоменклатурыНоменклатураТипНоменклатуры", "ТаблицаТовары.АналитикаУчетаНоменклатуры.Номенклатура.ТипНоменклатуры");
ТекстЗапросаДанных = СтрЗаменить(ТекстЗапросаДанных, "ТаблицаТовары.АналитикаУчетаНоменклатурыНоменклатура", "ТаблицаТовары.АналитикаУчетаНоменклатуры.Номенклатура");
КонецЕсли;
НеПересчитыватьСуммыНДС = (Запрос.Параметры.ХозяйственнаяОперация =
Перечисления.ХозяйственныеОперации.ПереходПраваСобственности);
РегистрыСведений.СуммыДокументовВВалютахУчета.СформироватьПоДаннымДокумента(
Запрос, ТекстыЗапроса, Регистры, ТекстЗапросаДанных, НеПересчитыватьСуммыНДС);
КонецПроцедуры
Функция ТекстЗапросаТаблицаРаспоряженияНаОтгрузку(Запрос, ТекстыЗапроса, Регистры, ДокументОбъект = Неопределено)
ИмяРегистра = "РаспоряженияНаОтгрузкуИВозврат";
Если Не ПроведениеДокументов.ТребуетсяТаблицаДляДвижений(ИмяРегистра, Регистры) Тогда
Возврат "";
КонецЕсли;
МассивЗапросов = Новый Массив;
Если ДокументОбъект = Неопределено
Или (ДокументОбъект.Статус = Перечисления.СтатусыРеализацийТоваровУслуг.ВПути
И ДокументОбъект.РеализацияПоЗаказам) Тогда
ТекстЗапроса =
"ВЫБРАТЬ
| ТаблицаТовары.НомерСтроки КАК НомерСтроки,
| ДанныеДокумента.Дата КАК Период,
| ТаблицаТовары.ЗаказКлиента КАК Распоряжение,
| ТаблицаТовары.Номенклатура КАК Номенклатура,
| ТаблицаТовары.Характеристика КАК Характеристика,
| ТаблицаТовары.КодСтроки КАК КодСтроки,
| ВЫБОР
| КОГДА ТаблицаТовары.НоменклатураТипНоменклатуры В (ЗНАЧЕНИЕ(Перечисление.ТипыНоменклатуры.Товар),
| ЗНАЧЕНИЕ(Перечисление.ТипыНоменклатуры.МногооборотнаяТара))
| ТОГДА ТаблицаТовары.Склад
| ИНАЧЕ ЗНАЧЕНИЕ(Справочник.Склады.ПустаяСсылка)
| КОНЕЦ КАК Склад,
| ВЫБОР
| КОГДА ТаблицаТовары.СтатусУказанияСерий В (10, 14)
| ТОГДА ТаблицаТовары.Серия
| ИНАЧЕ ЗНАЧЕНИЕ(Справочник.СерииНоменклатуры.ПустаяСсылка)
| КОНЕЦ КАК Серия,
| ЗНАЧЕНИЕ(Перечисление.ПоказателиРаспоряженийНаОтгрузкуИВозврат.Отгружено) КАК Показатель,
| ТаблицаТовары.Количество КАК Количество,
| ТаблицаТовары.СуммаВзаиморасчетов КАК Сумма,
| 0 КАК СуммаНДС,
| 0 КАК СуммаНДСРегл,
| 0 КАК СуммаНДСУпр
|ИЗ
| ДанныеДокументаТаблицаТовары КАК ТаблицаТовары
| ЛЕВОЕ СОЕДИНЕНИЕ ДанныеДокументаШапка КАК ДанныеДокумента
| ПО ДанныеДокумента.Ссылка = ТаблицаТовары.Ссылка
|ГДЕ
| ТаблицаТовары.Ссылка = &Ссылка
| И ТаблицаТовары.КодСтроки <> 0
| И ДанныеДокумента.Статус <> ЗНАЧЕНИЕ(Перечисление.СтатусыРеализацийТоваровУслуг.Отгружено)
| И ДанныеДокумента.РеализацияПоЗаказам
| И НЕ ЕСТЬNULL(ТаблицаТовары.ЗаказКлиентаЭтоЗаказКакСчет,
| НЕ &ИспользоватьРасширенныеВозможностиЗаказаКлиента)";
МассивЗапросов.Добавить(ТекстЗапроса);
КонецЕсли;
Если ДокументОбъект = Неопределено
Или (ДокументОбъект.Статус = Перечисления.СтатусыРеализацийТоваровУслуг.Отгружено
И ДокументОбъект.РеализацияПоЗаказам) Тогда
ТекстЗапроса =
"ВЫБРАТЬ
| ТаблицаТовары.НомерСтроки КАК НомерСтроки,
| ДанныеДокумента.Дата КАК Период,
| ТаблицаТовары.ЗаказКлиента КАК Распоряжение,
| ТаблицаТовары.Номенклатура КАК Номенклатура,
| ТаблицаТовары.Характеристика КАК Характеристика,
| ТаблицаТовары.КодСтроки КАК КодСтроки,
| ВЫБОР
| КОГДА ТаблицаТовары.НоменклатураТипНоменклатуры В (ЗНАЧЕНИЕ(Перечисление.ТипыНоменклатуры.Товар),
| ЗНАЧЕНИЕ(Перечисление.ТипыНоменклатуры.МногооборотнаяТара))
| ТОГДА ТаблицаТовары.Склад
| ИНАЧЕ ЗНАЧЕНИЕ(Справочник.Склады.ПустаяСсылка)
| КОНЕЦ КАК Склад,
| ВЫБОР
| КОГДА ТаблицаТовары.СтатусУказанияСерий В (10, 14)
| ТОГДА ТаблицаТовары.Серия
| ИНАЧЕ ЗНАЧЕНИЕ(Справочник.СерииНоменклатуры.ПустаяСсылка)
| КОНЕЦ КАК Серия,
| ЗНАЧЕНИЕ(Перечисление.ПоказателиРаспоряженийНаОтгрузкуИВозврат.Отгружено) КАК Показатель,
| ТаблицаТовары.Количество КАК Количество,
| ТаблицаТовары.СуммаВзаиморасчетов КАК Сумма,
| 0 КАК СуммаНДС,
| 0 КАК СуммаНДСРегл,
| 0 КАК СуммаНДСУпр
|ИЗ
| ДанныеДокументаТаблицаТовары КАК ТаблицаТовары
| ЛЕВОЕ СОЕДИНЕНИЕ ДанныеДокументаШапка КАК ДанныеДокумента
| ПО ДанныеДокумента.Ссылка = ТаблицаТовары.Ссылка
|ГДЕ
| ТаблицаТовары.Ссылка = &Ссылка
| И ТаблицаТовары.КодСтроки <> 0
| И ДанныеДокумента.Статус = ЗНАЧЕНИЕ(Перечисление.СтатусыРеализацийТоваровУслуг.Отгружено)
| И ДанныеДокумента.РеализацияПоЗаказам
| И ДанныеДокумента.ХозяйственнаяОперация <> ЗНАЧЕНИЕ(Перечисление.ХозяйственныеОперации.ПереходПраваСобственности)
| И НЕ ЕСТЬNULL(ТаблицаТовары.ЗаказКлиентаЭтоЗаказКакСчет,
| НЕ &ИспользоватьРасширенныеВозможностиЗаказаКлиента)
|
|ОБЪЕДИНИТЬ ВСЕ
|
|ВЫБРАТЬ
| ТаблицаТовары.НомерСтроки КАК НомерСтроки,
| ДанныеДокумента.Дата КАК Период,
| ТаблицаТовары.ЗаказКлиента КАК Распоряжение,
| ТаблицаТовары.Номенклатура КАК Номенклатура,
| ТаблицаТовары.Характеристика КАК Характеристика,
| ТаблицаТовары.КодСтроки КАК КодСтроки,
| ЗНАЧЕНИЕ(Справочник.Склады.ПустаяСсылка) КАК Склад,
| ЗНАЧЕНИЕ(Справочник.СерииНоменклатуры.ПустаяСсылка) КАК Серия,
| ЗНАЧЕНИЕ(Перечисление.ПоказателиРаспоряженийНаОтгрузкуИВозврат.Оформлено) КАК Показатель,
| ТаблицаТовары.Количество КАК Количество,
| ТаблицаТовары.СуммаВзаиморасчетов КАК Сумма,
| ТаблицаТовары.СуммаНДС КАК СуммаНДС,
| ТаблицаТовары.СуммаНДСРегл КАК СуммаНДСРегл,
| ТаблицаТовары.СуммаНДСУпр КАК СуммаНДСУпр
|ИЗ
| ДанныеДокументаТаблицаТовары КАК ТаблицаТовары
| ЛЕВОЕ СОЕДИНЕНИЕ ДанныеДокументаШапка КАК ДанныеДокумента
| ПО ДанныеДокумента.Ссылка = ТаблицаТовары.Ссылка
|ГДЕ
| ТаблицаТовары.Ссылка = &Ссылка
| И ТаблицаТовары.КодСтроки <> 0
| И ДанныеДокумента.Статус = ЗНАЧЕНИЕ(Перечисление.СтатусыРеализацийТоваровУслуг.Отгружено)
| И ДанныеДокумента.РеализацияПоЗаказам
| И НЕ ЕСТЬNULL(ТаблицаТовары.ЗаказКлиентаЭтоЗаказКакСчет,
| НЕ &ИспользоватьРасширенныеВозможностиЗаказаКлиента)
|
|ОБЪЕДИНИТЬ ВСЕ
|
|ВЫБРАТЬ
| ТаблицаТовары.НомерСтроки КАК НомерСтроки,
| ДанныеДокумента.Дата КАК Период,
| ТаблицаТовары.ЗаказКлиента КАК Распоряжение,
| ТаблицаТовары.Номенклатура КАК Номенклатура,
| ТаблицаТовары.Характеристика КАК Характеристика,
| ТаблицаТовары.КодСтроки КАК КодСтроки,
| ЗНАЧЕНИЕ(Справочник.Склады.ПустаяСсылка) КАК Склад,
| ЗНАЧЕНИЕ(Справочник.СерииНоменклатуры.ПустаяСсылка) КАК Серия,
| ЗНАЧЕНИЕ(Перечисление.ПоказателиРаспоряженийНаОтгрузкуИВозврат.ОформленоСчетовФактур) КАК Показатель,
| ТаблицаТовары.Количество КАК Количество,
| ТаблицаТовары.СуммаВзаиморасчетов КАК Сумма,
| ТаблицаТовары.СуммаНДС КАК СуммаНДС,
| ТаблицаТовары.СуммаНДСРегл КАК СуммаНДСРегл,
| ТаблицаТовары.СуммаНДСУпр КАК СуммаНДСУпр
|ИЗ
| ДанныеДокументаТаблицаТовары КАК ТаблицаТовары
| ЛЕВОЕ СОЕДИНЕНИЕ ДанныеДокументаШапка КАК ДанныеДокумента
| ПО ДанныеДокумента.Ссылка = ТаблицаТовары.Ссылка
|ГДЕ
| ТаблицаТовары.Ссылка = &Ссылка
| И ТаблицаТовары.КодСтроки <> 0
| И ДанныеДокумента.Статус = ЗНАЧЕНИЕ(Перечисление.СтатусыРеализацийТоваровУслуг.Отгружено)
| И ДанныеДокумента.РеализацияПоЗаказам
| И ДанныеДокумента.ХозяйственнаяОперация НЕ В
| (ЗНАЧЕНИЕ(Перечисление.ХозяйственныеОперации.ПереходПраваСобственности),
| ЗНАЧЕНИЕ(Перечисление.ХозяйственныеОперации.ПередачаНаКомиссию))
| И НЕ ЕСТЬNULL(ТаблицаТовары.ЗаказКлиентаЭтоЗаказКакСчет,
| НЕ &ИспользоватьРасширенныеВозможностиЗаказаКлиента)";
МассивЗапросов.Добавить(ТекстЗапроса);
КонецЕсли;
Если ДокументОбъект = Неопределено
Или ДокументОбъект.РеализацияПоЗаказам Тогда
ТекстЗапроса =
"ВЫБРАТЬ
| ТаблицаТовары.НомерСтроки КАК НомерСтроки,
| ДанныеДокумента.Дата КАК Период,
| ТаблицаТовары.ЗаказКлиента КАК Распоряжение,
| ТаблицаТовары.Номенклатура КАК Номенклатура,
| ТаблицаТовары.Характеристика КАК Характеристика,
| ТаблицаТовары.КодСтроки КАК КодСтроки,
| ВЫБОР
| КОГДА ТаблицаПоказателей.Ссылка В (ЗНАЧЕНИЕ(Перечисление.ПоказателиРаспоряженийНаОтгрузкуИВозврат.КОтгрузке),
| ЗНАЧЕНИЕ(Перечисление.ПоказателиРаспоряженийНаОтгрузкуИВозврат.Отгружено))
| ТОГДА ВЫБОР
| КОГДА ТаблицаТовары.НоменклатураТипНоменклатуры В (ЗНАЧЕНИЕ(Перечисление.ТипыНоменклатуры.Товар),
| ЗНАЧЕНИЕ(Перечисление.ТипыНоменклатуры.МногооборотнаяТара))
| ТОГДА ТаблицаТовары.Склад
| ИНАЧЕ ЗНАЧЕНИЕ(Справочник.Склады.ПустаяСсылка)
| КОНЕЦ
| ИНАЧЕ ЗНАЧЕНИЕ(Справочник.Склады.ПустаяСсылка)
| КОНЕЦ КАК Склад,
| ВЫБОР
| КОГДА ТаблицаПоказателей.Ссылка В
| (ЗНАЧЕНИЕ(Перечисление.ПоказателиРаспоряженийНаОтгрузкуИВозврат.КОтгрузке),
| ЗНАЧЕНИЕ(Перечисление.ПоказателиРаспоряженийНаОтгрузкуИВозврат.Отгружено))
| И ТаблицаТовары.СтатусУказанияСерий В (10, 14)
| ТОГДА ТаблицаТовары.Серия
| ИНАЧЕ
| ЗНАЧЕНИЕ(Справочник.СерииНоменклатуры.ПустаяСсылка)
| КОНЕЦ КАК Серия,
| ТаблицаПоказателей.Ссылка КАК Показатель,
| ТаблицаТовары.Количество КАК Количество,
| ТаблицаТовары.СуммаВзаиморасчетов КАК Сумма,
| 0 КАК СуммаНДС,
| 0 КАК СуммаНДСРегл,
| 0 КАК СуммаНДСУпр
|ИЗ
| ДанныеДокументаТаблицаТовары КАК ТаблицаТовары
| ЛЕВОЕ СОЕДИНЕНИЕ ДанныеДокументаШапка КАК ДанныеДокумента
| ПО ДанныеДокумента.Ссылка = ТаблицаТовары.Ссылка
| ВНУТРЕННЕЕ СОЕДИНЕНИЕ Перечисление.ПоказателиРаспоряженийНаОтгрузкуИВозврат КАК ТаблицаПоказателей
| ПО ТаблицаПоказателей.Ссылка В (ЗНАЧЕНИЕ(Перечисление.ПоказателиРаспоряженийНаОтгрузкуИВозврат.КОформлению),
| ЗНАЧЕНИЕ(Перечисление.ПоказателиРаспоряженийНаОтгрузкуИВозврат.Оформлено),
| ЗНАЧЕНИЕ(Перечисление.ПоказателиРаспоряженийНаОтгрузкуИВозврат.КОтгрузке),
| ЗНАЧЕНИЕ(Перечисление.ПоказателиРаспоряженийНаОтгрузкуИВозврат.Отгружено))
|
|ГДЕ
| ТаблицаТовары.Ссылка = &Ссылка
| И ДанныеДокумента.ХозяйственнаяОперация <> ЗНАЧЕНИЕ(Перечисление.ХозяйственныеОперации.ПереходПраваСобственности)
| И ТаблицаТовары.КодСтроки = 0
| И ДанныеДокумента.РеализацияПоЗаказам
| И НЕ ЕСТЬNULL(ТаблицаТовары.ЗаказКлиентаЭтоЗаказКакСчет,
| НЕ &ИспользоватьРасширенныеВозможностиЗаказаКлиента)
|
|ОБЪЕДИНИТЬ ВСЕ
|
|ВЫБРАТЬ
| ТаблицаТовары.НомерСтроки КАК НомерСтроки,
| ДанныеДокумента.Дата КАК Период,
| ТаблицаТовары.ЗаказКлиента КАК Распоряжение,
| ТаблицаТовары.Номенклатура КАК Номенклатура,
| ТаблицаТовары.Характеристика КАК Характеристика,
| ТаблицаТовары.КодСтроки КАК КодСтроки,
| ЗНАЧЕНИЕ(Справочник.Склады.ПустаяСсылка) КАК Склад,
| ЗНАЧЕНИЕ(Справочник.СерииНоменклатуры.ПустаяСсылка) КАК Серия,
| ЗНАЧЕНИЕ(Перечисление.ПоказателиРаспоряженийНаОтгрузкуИВозврат.ОформленоСчетовФактур) КАК Показатель,
| ТаблицаТовары.Количество КАК Количество,
| ТаблицаТовары.СуммаВзаиморасчетов КАК Сумма,
| 0 КАК СуммаНДС,
| 0 КАК СуммаНДСРегл,
| 0 КАК СуммаНДСУпр
|ИЗ
| ДанныеДокументаТаблицаТовары КАК ТаблицаТовары
| ЛЕВОЕ СОЕДИНЕНИЕ ДанныеДокументаШапка КАК ДанныеДокумента
| ПО ДанныеДокумента.Ссылка = ТаблицаТовары.Ссылка
|
|ГДЕ
| ТаблицаТовары.Ссылка = &Ссылка
| И ДанныеДокумента.ХозяйственнаяОперация НЕ В
| (ЗНАЧЕНИЕ(Перечисление.ХозяйственныеОперации.ПереходПраваСобственности),
| ЗНАЧЕНИЕ(Перечисление.ХозяйственныеОперации.ПередачаНаКомиссию))
| И ТаблицаТовары.КодСтроки = 0
| И ДанныеДокумента.РеализацияПоЗаказам
| И НЕ ЕСТЬNULL(ТаблицаТовары.ЗаказКлиентаЭтоЗаказКакСчет,
| НЕ &ИспользоватьРасширенныеВозможностиЗаказаКлиента)
|
|ОБЪЕДИНИТЬ ВСЕ
|
|ВЫБРАТЬ
| ТаблицаТовары.НомерСтроки КАК НомерСтроки,
| ДанныеДокумента.Дата КАК Период,
| ТаблицаТовары.ЗаказКлиента КАК Распоряжение,
| ТаблицаТовары.Номенклатура КАК Номенклатура,
| ТаблицаТовары.Характеристика КАК Характеристика,
| ТаблицаТовары.КодСтроки КАК КодСтроки,
| ЗНАЧЕНИЕ(Справочник.Склады.ПустаяСсылка) КАК Склад,
| ЗНАЧЕНИЕ(Справочник.СерииНоменклатуры.ПустаяСсылка) КАК Серия,
| ЗНАЧЕНИЕ(Перечисление.ПоказателиРаспоряженийНаОтгрузкуИВозврат.Оформлено) КАК Показатель,
| ТаблицаТовары.Количество КАК Количество,
| ТаблицаТовары.СуммаВзаиморасчетов КАК Сумма,
| ТаблицаТовары.СуммаНДС КАК СуммаНДС,
| ТаблицаТовары.СуммаНДСРегл КАК СуммаНДСРегл,
| ТаблицаТовары.СуммаНДСУпр КАК СуммаНДСУпр
|ИЗ
| ДанныеДокументаТаблицаТовары КАК ТаблицаТовары
| ЛЕВОЕ СОЕДИНЕНИЕ ДанныеДокументаШапка КАК ДанныеДокумента
| ПО ДанныеДокумента.Ссылка = ТаблицаТовары.Ссылка
|
|ГДЕ
| ТаблицаТовары.Ссылка = &Ссылка
| И ДанныеДокумента.ХозяйственнаяОперация = ЗНАЧЕНИЕ(Перечисление.ХозяйственныеОперации.ПереходПраваСобственности)
| И ТаблицаТовары.КодСтроки = 0
| И ДанныеДокумента.РеализацияПоЗаказам
| И НЕ ЕСТЬNULL(ТаблицаТовары.ЗаказКлиентаЭтоЗаказКакСчет,
| НЕ &ИспользоватьРасширенныеВозможностиЗаказаКлиента)";
МассивЗапросов.Добавить(ТекстЗапроса);
КонецЕсли;
Если ДокументОбъект <> Неопределено
И МассивЗапросов.Количество() = 0 Тогда
Возврат "";
КонецЕсли;
ТекстЗапроса = СтрСоединить(МассивЗапросов, ОбщегоНазначенияУТ.РазделительЗапросовВОбъединении());
Если ЗначениеЗаполнено(ТекстЗапроса) Тогда
ТекстЗапроса = ТекстЗапроса + "
|
|УПОРЯДОЧИТЬ ПО
| НомерСтроки,
| Показатель";
КонецЕсли;
Если ДокументОбъект = Неопределено Тогда
ТекстЗапроса = СтрЗаменить(ТекстЗапроса, "ДанныеДокументаТаблицаТовары", "Документ.РеализацияТоваровУслуг.Товары");
ТекстЗапроса = СтрЗаменить(ТекстЗапроса, "ДанныеДокументаШапка", "Документ.РеализацияТоваровУслуг");
ТекстЗапроса = СтрЗаменить(ТекстЗапроса, "ТаблицаТовары.НоменклатураТипНоменклатуры", "ТаблицаТовары.Номенклатура.ТипНоменклатуры");
ТекстЗапроса = СтрЗаменить(ТекстЗапроса, "ТаблицаТовары.ЗаказКлиентаЭтоЗаказКакСчет", "ТаблицаТовары.ЗаказКлиента.ЭтоЗаказКакСчет");
КонецЕсли;
ТекстыЗапроса.Добавить(ТекстЗапроса, ИмяРегистра);
Возврат ТекстЗапроса;
КонецФункции
Функция ТекстЗапросаТаблицаДвиженияСерийТоваров(Запрос, ТекстыЗапроса, Регистры, ДокументОбъект)
ИмяРегистра = "ДвиженияСерийТоваров";
Если Не ПроведениеДокументов.ТребуетсяТаблицаДляДвижений(ИмяРегистра, Регистры) Тогда
Возврат "";
КонецЕсли;
Если НЕ (ДокументОбъект.ХозяйственнаяОперация <> Перечисления.ХозяйственныеОперации.РеализацияКлиентуРеглУчет
И Не (ДокументОбъект.ХозяйственнаяОперация = Перечисления.ХозяйственныеОперации.РеализацияЧерезКомиссионера
Или ДокументОбъект.ХозяйственнаяОперация = Перечисления.ХозяйственныеОперации.РеализацияЧерезКомиссионераБезПереходаПраваСобственности)) Тогда
Возврат "";
КонецЕсли;
ТекстЗапроса =
"ВЫБРАТЬ
| ТаблицаСерии.Номенклатура КАК Номенклатура,
| ТаблицаСерии.Характеристика КАК Характеристика,
| ВЫБОР
| КОГДА ЕСТЬNULL(ТаблицаСерии.НазначениеДвиженияПоСкладскимРегистрам, ЛОЖЬ)
| ТОГДА ТаблицаСерии.Назначение
| ИНАЧЕ ЗНАЧЕНИЕ(Справочник.Назначения.ПустаяСсылка)
| КОНЕЦ КАК Назначение,
| ТаблицаСерии.Серия КАК Серия,
| ТаблицаСерии.Количество КАК Количество,
| ТаблицаСерии.Склад КАК Отправитель,
| &Партнер КАК Получатель,
| ЗНАЧЕНИЕ(Справочник.СкладскиеПомещения.ПустаяСсылка) КАК Помещение,
| ЗНАЧЕНИЕ(Перечисление.СкладскиеОперации.ОтгрузкаКлиенту) КАК СкладскаяОперация,
| &Ссылка КАК Документ,
| &Период КАК Период,
| ВЫБОР
| КОГДА НЕ ТаблицаСерии.СкладИспользоватьОрдернуюСхемуПриОтгрузке
| ИЛИ &Период < ТаблицаСерии.СкладДатаНачалаОрдернойСхемыПриОтгрузке
| ТОГДА ИСТИНА
| ИНАЧЕ ЛОЖЬ
| КОНЕЦ КАК ЭтоСкладскоеДвижение
|ИЗ
| ДанныеДокументаТаблицаСерии КАК ТаблицаСерии
|ГДЕ
| ТаблицаСерии.Количество <> 0
|
|ОБЪЕДИНИТЬ ВСЕ
|
|ВЫБРАТЬ
| ТаблицаТовары.Номенклатура,
| ТаблицаТовары.Характеристика,
| ВЫБОР
| КОГДА ЕСТЬNULL(ТаблицаТовары.НазначениеДвиженияПоСкладскимРегистрам, ЛОЖЬ)
| ТОГДА ТаблицаТовары.Назначение
| ИНАЧЕ ЗНАЧЕНИЕ(Справочник.Назначения.ПустаяСсылка)
| КОНЕЦ,
| ТаблицаТовары.Серия,
| ТаблицаТовары.Количество,
| ТаблицаТовары.Склад,
| &Партнер,
| ЗНАЧЕНИЕ(Справочник.СкладскиеПомещения.ПустаяСсылка),
| ВЫБОР
| КОГДА ДанныеДокумента.ХозяйственнаяОперация = ЗНАЧЕНИЕ(Перечисление.ХозяйственныеОперации.ПереходПраваСобственности)
| ТОГДА ЗНАЧЕНИЕ(Перечисление.СкладскиеОперации.ДвижениеВФинансовомУчете)
| ИНАЧЕ ЗНАЧЕНИЕ(Перечисление.СкладскиеОперации.ОтгрузкаКлиенту)
| КОНЕЦ,
| &Ссылка,
| &Период,
| ВЫБОР
| КОГДА НЕ ТаблицаТовары.СкладИспользоватьОрдернуюСхемуПриОтгрузке
| ИЛИ &Период < ТаблицаТовары.СкладДатаНачалаОрдернойСхемыПриОтгрузке
| ИЛИ ДанныеДокумента.ХозяйственнаяОперация = ЗНАЧЕНИЕ(Перечисление.ХозяйственныеОперации.ПереходПраваСобственности)
| ТОГДА ИСТИНА
| ИНАЧЕ ЛОЖЬ
| КОНЕЦ КАК ЭтоСкладскоеДвижение
|ИЗ
| ДанныеДокументаТаблицаТовары КАК ТаблицаТовары
| ЛЕВОЕ СОЕДИНЕНИЕ ДанныеДокументаШапка КАК ДанныеДокумента
| ПО ТаблицаТовары.Ссылка = ДанныеДокумента.Ссылка
|ГДЕ
| ТаблицаТовары.Серия <> ЗНАЧЕНИЕ(Справочник.СерииНоменклатуры.ПустаяСсылка)";
ТекстыЗапроса.Добавить(ТекстЗапроса, ИмяРегистра);
Возврат ТекстЗапроса;
КонецФункции
Процедура УстановитьПараметрЗапросаНалогообложениеОрганизации(Запрос)
Если Запрос.Параметры.Свойство("НалогообложениеОрганизации") Тогда
Возврат;
КонецЕсли;
ПараметрыУчетаПоОрганизации = УчетНДСУП.ПараметрыУчетаПоОрганизации(Справочники.Организации.УправленческаяОрганизация, Запрос.Параметры.Период);
Запрос.УстановитьПараметр("НалогообложениеОрганизации", ПараметрыУчетаПоОрганизации.ОсновноеНалогообложениеНДСПродажи);
КонецПроцедуры
Функция ТекстЗапросаВтТаблицаАналитикУчетаПартий(Запрос, ТекстыЗапроса)
УстановитьПараметрЗапросаНалогообложениеОрганизации(Запрос);
ТекстНомераСтрок = РасчетСебестоимостиПроведениеДокументов.ТекстЗапросаКодыСтрокДляАналитикиУчетаПартий(
Метаданные.Документы.РеализацияТоваровУслуг.Имя,
"Товары, ВидыЗапасов");
ТекстНомераСтрок = СтрЗаменить(ТекстНомераСтрок, "Документ.РеализацияТоваровУслуг.Товары", "ДанныеДокументаТаблицаТовары");
ТекстНомераСтрок = СтрЗаменить(ТекстНомераСтрок, "Документ.РеализацияТоваровУслуг.ВидыЗапасов", "ДанныеДокументаТаблицаВидыЗапасов");
ТекстВыборкаПоляАналитик = ТекстНомераСтрок + "
|ВЫБРАТЬ
| ""Товары"" КАК ИмяТабличнойЧасти,
| ТаблицаДокумента.НомерСтроки КАК НомерСтроки,
| ДанныеДокумента.Партнер КАК Поставщик,
| ДанныеДокумента.Контрагент КАК Контрагент,
| ТаблицаДокумента.СтавкаНДС КАК СтавкаНДС,
| ВЫБОР
| КОГДА ЕСТЬNULL(ТаблицаДокумента.НазначениеВидДеятельностиНДС, ЗНАЧЕНИЕ(Перечисление.ТипыНалогообложенияНДС.ПустаяСсылка)) <> ЗНАЧЕНИЕ(Перечисление.ТипыНалогообложенияНДС.ПустаяСсылка)
| ТОГДА ТаблицаДокумента.НазначениеВидДеятельностиНДС
| КОНЕЦ КАК НалогообложениеНДС,
| ВЫБОР
| КОГДА СпрНоменклатура.ТипНоменклатуры В
| (ЗНАЧЕНИЕ(Перечисление.ТипыНоменклатуры.Товар), ЗНАЧЕНИЕ(Перечисление.ТипыНоменклатуры.МногооборотнаяТара))
| ТОГДА ЕСТЬNULL(ГФУ.ВидЦенностиНДС, ЗНАЧЕНИЕ(Перечисление.ВидыЦенностей.Товары))
| КОГДА СпрНоменклатура.ТипНоменклатуры = ЗНАЧЕНИЕ(Перечисление.ТипыНоменклатуры.Работа)
| ТОГДА ЗНАЧЕНИЕ(Перечисление.ВидыЦенностей.ПрочиеРаботыИУслуги)
| ИНАЧЕ ЗНАЧЕНИЕ(Перечисление.ВидыЦенностей.ПрочиеРаботыИУслуги)
| КОНЕЦ КАК ВидЦенности,
| КодыСтрок.КодСтроки КАК КодСтроки
|ПОМЕСТИТЬ ВТПоляАналитикУчетаПартий
|ИЗ
| ДанныеДокументаТаблицаТовары КАК ТаблицаДокумента
| ЛЕВОЕ СОЕДИНЕНИЕ ДанныеДокументаШапка КАК ДанныеДокумента
| ПО ДанныеДокумента.Ссылка = ТаблицаДокумента.Ссылка
| ВНУТРЕННЕЕ СОЕДИНЕНИЕ ВТКодыСтрокДляАналитикиУчетаПартий КАК КодыСтрок
| ПО ТаблицаДокумента.НомерСтроки = КодыСтрок.НомерСтроки
| И КодыСтрок.ИмяТабличнойЧасти = ""Товары""
| ВНУТРЕННЕЕ СОЕДИНЕНИЕ Справочник.Номенклатура КАК СпрНоменклатура
| ПО СпрНоменклатура.Ссылка = ТаблицаДокумента.Номенклатура
| ЛЕВОЕ СОЕДИНЕНИЕ Справочник.ГруппыФинансовогоУчетаНоменклатуры КАК ГФУ
| ПО СпрНоменклатура.ГруппаФинансовогоУчета = ГФУ.Ссылка
|ГДЕ
| ДанныеДокумента.ХозяйственнаяОперация = ЗНАЧЕНИЕ(Перечисление.ХозяйственныеОперации.РеализацияКлиентуРеглУчет)
|
|ОБЪЕДИНИТЬ ВСЕ
|ВЫБРАТЬ
| ""ВидыЗапасов"" КАК ИмяТабличнойЧасти,
| ТаблицаДокумента.НомерСтроки КАК НомерСтроки,
| ДанныеДокумента.Партнер КАК Поставщик,
| ДанныеДокумента.Контрагент КАК Контрагент,
| ТаблицаДокумента.СтавкаНДС КАК СтавкаНДС,
| ВЫБОР
| КОГДА ЕСТЬNULL(Аналитика.Назначение.ВидДеятельностиНДС, ЗНАЧЕНИЕ(Перечисление.ТипыНалогообложенияНДС.ПустаяСсылка)) <> ЗНАЧЕНИЕ(Перечисление.ТипыНалогообложенияНДС.ПустаяСсылка)
| ТОГДА Аналитика.Назначение.ВидДеятельностиНДС
| ИНАЧЕ &НалогообложениеОрганизации
| КОНЕЦ КАК НалогообложениеНДС,
| ВЫБОР
| КОГДА СпрНоменклатура.ТипНоменклатуры В
| (ЗНАЧЕНИЕ(Перечисление.ТипыНоменклатуры.Товар), ЗНАЧЕНИЕ(Перечисление.ТипыНоменклатуры.МногооборотнаяТара))
| ТОГДА ЕСТЬNULL(ГФУ.ВидЦенностиНДС, ЗНАЧЕНИЕ(Перечисление.ВидыЦенностей.Товары))
| ИНАЧЕ ЗНАЧЕНИЕ(Перечисление.ВидыЦенностей.ПрочиеРаботыИУслуги)
| КОНЕЦ КАК ВидЦенности,
| КодыСтрок.КодСтроки КАК КодСтроки
|ИЗ
| ДанныеДокументаТаблицаВидыЗапасов КАК ТаблицаДокумента
| ЛЕВОЕ СОЕДИНЕНИЕ ДанныеДокументаШапка КАК ДанныеДокумента
| ПО ДанныеДокумента.Ссылка = ТаблицаДокумента.Ссылка
| ВНУТРЕННЕЕ СОЕДИНЕНИЕ ВТКодыСтрокДляАналитикиУчетаПартий КАК КодыСтрок
| ПО ТаблицаДокумента.НомерСтроки = КодыСтрок.НомерСтроки
| И КодыСтрок.ИмяТабличнойЧасти = ""ВидыЗапасов""
| ВНУТРЕННЕЕ СОЕДИНЕНИЕ Справочник.КлючиАналитикиУчетаНоменклатуры КАК Аналитика
| ПО Аналитика.Ссылка = ТаблицаДокумента.АналитикаУчетаНоменклатуры
| ВНУТРЕННЕЕ СОЕДИНЕНИЕ Справочник.Номенклатура КАК СпрНоменклатура
| ПО СпрНоменклатура.Ссылка = Аналитика.Номенклатура
| ЛЕВОЕ СОЕДИНЕНИЕ Справочник.ГруппыФинансовогоУчетаНоменклатуры КАК ГФУ
| ПО СпрНоменклатура.ГруппаФинансовогоУчета = ГФУ.Ссылка
|ГДЕ
| ДанныеДокумента.ХозяйственнаяОперация = ЗНАЧЕНИЕ(Перечисление.ХозяйственныеОперации.РеализацияКлиентуРеглУчет)
|";
ТекстЗапроса = Справочники.КлючиАналитикиУчетаПартий.ТекстЗапросаВтТаблицаАналитикУчетаПартий(ТекстВыборкаПоляАналитик, Запрос, ТекстыЗапроса);
Возврат ТекстЗапроса;
КонецФункции
Функция ТекстЗапросаВтТаблицаВидыЗапасов(Запрос, ТекстыЗапроса, ДокументОбъект)
ИмяРегистра = "ВтТаблицаВидыЗапасов";
СформироватьСуммыДокументаВВалютахУчета(Запрос, ТекстыЗапроса, Неопределено, ДокументОбъект);
УстановитьПараметрЗапросаТипыНалогообложенияНДСОблагаемые(Запрос);
УстановитьПараметрыЗапросаКоэффициентыВалют(Запрос);
ИнициализироватьКлючиАналитикиУчетаНоменклатуры(Запрос);
УстановитьПараметрЗапросаАналитикаУчетаПоПартнерам(Запрос);
Если НЕ ПроведениеДокументов.ЕстьТаблицаЗапроса("ВтТаблицаАналитикУчетаПартий", ТекстыЗапроса) Тогда
ТекстЗапросаВтТаблицаАналитикУчетаПартий(Запрос, ТекстыЗапроса);
КонецЕсли;
ТекстЗапроса =
"ВЫБРАТЬ
| ВидыЗапасов.НомерСтроки КАК НомерСтроки,
| ВидыЗапасов.Ссылка КАК Ссылка,
| Аналитика.МестоХранения КАК Склад,
| Аналитика.МестоХранения.ЦеховаяКладовая КАК ЦеховаяКладовая,
| ВидыЗапасов.ЗаказКлиента КАК ЗаказКлиента,
| &Организация КАК Организация,
| Аналитика.Номенклатура КАК Номенклатура,
| Аналитика.Номенклатура.ТипНоменклатуры КАК НоменклатураТипНоменклатуры,
| ВидыЗапасов.ВидЗапасов КАК ВидЗапасов,
| ВидыЗапасов.ВидЗапасовПолучателя КАК ВидЗапасовПолучателя,
| ВидыЗапасов.ВидЗапасовПолучателяТипЗапасов КАК ВидЗапасовПолучателяТипЗапасов,
| ВидыЗапасов.ВидЗапасовТипЗапасов КАК ТипЗапасов,
| ВидыЗапасов.ВидЗапасовВалюта КАК Валюта,
| ВидыЗапасов.ВидЗапасовРеализацияЗапасовДругойОрганизации
| КАК ВидЗапасовРеализацияЗапасовДругойОрганизации,
| ВидыЗапасов.ВидЗапасовВидЗапасовВладельцаОрганизация
| КАК ВидЗапасовВидЗапасовВладельцаОрганизация,
| ВидыЗапасов.ВидЗапасовВидЗапасовВладельца КАК ВидЗапасовВидЗапасовВладельца,
| ВидыЗапасов.ОбъектРасчетовУникальныйИдентификатор КАК ОбъектРасчетовУникальныйИдентификатор,
| ВидыЗапасов.ВидЗапасовСоглашение КАК ВидЗапасовСоглашение,
| ВидыЗапасов.ВидЗапасовВидЗапасовВладельцаВалюта
| КАК ВидЗапасовВидЗапасовВладельцаВалюта,
| ВидыЗапасов.ВидЗапасовВидЗапасовВладельцаТипЗапасов
| КАК ВидЗапасовВидЗапасовВладельцаТипЗапасов,
| Аналитика.Характеристика КАК Характеристика,
| ВидыЗапасов.Количество КАК Количество,
| ВидыЗапасов.КоличествоПоРНПТ КАК КоличествоПоРНПТ,
| ВидыЗапасов.СуммаСНДС КАК СуммаСНДС,
| ВидыЗапасов.СуммаНДС КАК СуммаНДС,
| ВидыЗапасов.СтавкаНДС КАК СтавкаНДС,
| ВидыЗапасов.НомерГТД КАК НомерГТД,
| ВидыЗапасов.НомерГТДТипНомераГТД КАК НомерГТДТипНомераГТД,
| ВидыЗапасов.КодТНВЭД КАК КодТНВЭД,
| ВидыЗапасов.АналитикаУчетаНоменклатуры КАК АналитикаУчетаНоменклатуры,
| АналитикаБезНазначения.КлючАналитики КАК АналитикаУчетаНоменклатурыБезНазначения,
| ВидыЗапасов.АналитикаУчетаНаборов КАК АналитикаУчетаНаборов,
| ВидыЗапасов.ИдентификаторСтроки КАК ИдентификаторСтроки,
| ЗНАЧЕНИЕ(Справочник.НоменклатураКонтрагентов.ПустаяСсылка) КАК НоменклатураПартнера,
| (ВЫБОР
| КОГДА &АналитикаПартнерВТоварахВПути
| ТОГДА АналитикаПереданнойНоменклатуры.КлючАналитики
| КОГДА &ХозяйственнаяОперация = ЗНАЧЕНИЕ(Перечисление.ХозяйственныеОперации.РеализацияБезПереходаПраваСобственности)
| ТОГДА АналитикаПереданнойНоменклатурыДоговор.КлючАналитики
| КОГДА &ХозяйственнаяОперация = ЗНАЧЕНИЕ(Перечисление.ХозяйственныеОперации.РеализацияЧерезКомиссионераБезПереходаПраваСобственности)
| ТОГДА АналитикаПереданнойНоменклатурыДоговорКонечныйКлиент.КлючАналитики
| ИНАЧЕ АналитикаПереданнойНоменклатуры.КлючАналитики КОНЕЦ) КАК АналитикаПереданнойНоменклатуры,
| (ВЫБОР
| КОГДА &АналитикаПартнерВТоварахВПути
| ТОГДА АналитикаПереданнойНоменклатурыБезНазначения.КлючАналитики
| КОГДА &ХозяйственнаяОперация = ЗНАЧЕНИЕ(Перечисление.ХозяйственныеОперации.РеализацияБезПереходаПраваСобственности)
| ТОГДА АналитикаПереданнойНоменклатурыДоговорБезНазначения.КлючАналитики
| КОГДА &ХозяйственнаяОперация = ЗНАЧЕНИЕ(Перечисление.ХозяйственныеОперации.РеализацияЧерезКомиссионераБезПереходаПраваСобственности)
| ТОГДА АналитикаПереданнойНоменклатурыДоговорКонечныйКлиентБезНазначения.КлючАналитики
| ИНАЧЕ АналитикаПереданнойНоменклатурыБезНазначения.КлючАналитики КОНЕЦ) КАК АналитикаПереданнойНоменклатурыБезНазначения,
| КлючиКомитента.КлючАналитики КАК АналитикаНоменклатурыКомитента,
| СпрНазначения.НаправлениеДеятельности КАК НаправлениеДеятельности,
|
| ТаблицаАналитикУчетаПартий.ВидЦенности КАК ВидЦенности,
| ТаблицаАналитикУчетаПартий.АналитикаУчетаПартий КАК АналитикаУчетаПартий,
|
| ЕСТЬNULL(Суммы.СуммаСНДСУпр, 0) КАК СуммаСНДСУпр,
| ЕСТЬNULL(Суммы.СуммаБезНДСУпр, 0) КАК СуммаБезНДСУпр,
|
| ЕСТЬNULL(Суммы.СуммаСНДСРегл, 0) КАК СуммаСНДСРегл,
| ЕСТЬNULL(Суммы.СуммаБезНДСРегл, 0) КАК СуммаБезНДСРегл,
| ЕСТЬNULL(Суммы.СуммаНДСРегл, 0) КАК НДСРегл,
|
| ВидыЗапасов.СуммаВзаиморасчетов КАК СуммаВзаиморасчетов,
| ВЫБОР КОГДА ВидыЗапасов.СуммаСНДС <> 0 ТОГДА
| ВЫРАЗИТЬ(ВидыЗапасов.СуммаВзаиморасчетов * ВидыЗапасов.СуммаНДС / ВидыЗапасов.СуммаСНДС КАК ЧИСЛО(31,2))
| ИНАЧЕ
| 0
| КОНЕЦ КАК СуммаВзаиморасчетовНДС,
|
| ВЫРАЗИТЬ(ВидыЗапасов.СуммаРучнойСкидки * &КоэффициентПересчетаВВалютуУпр
| КАК ЧИСЛО(31,2)) КАК СуммаРучнойСкидкиУпр,
| ВЫРАЗИТЬ(ВидыЗапасов.СуммаАвтоматическойСкидки * &КоэффициентПересчетаВВалютуУпр
| КАК ЧИСЛО(31,2)) КАК СуммаАвтоматическойСкидкиУпр,
| ВидыЗапасов.СуммаАкциза КАК СуммаАкцизаРегл,
| ВЫРАЗИТЬ(ВидыЗапасов.СуммаАкциза * &КоэффициентПересчетаИзРеглВУпр
| КАК ЧИСЛО(31,2)) КАК СуммаАкцизаУпр,
| ЕСТЬNULL(СпрНоменклатура.Принципал, НЕОПРЕДЕЛЕНО) КАК Принципал,
| ЕСТЬNULL(ВидыЗапасов.КодТНВЭДСырьевойТовар, ЛОЖЬ) КАК СырьевойТовар,
| ЕСТЬNULL(Аналитика.Номенклатура.ПрослеживаемыйТовар, ЛОЖЬ) КАК ПрослеживаемыйТовар,
| (ВЫБОР
| КОГДА &ФормироватьВидыЗапасовПоСделкам И &ОбособленныйУчетТоваровПоСделке
| ТОГДА &Сделка
| КОГДА &ФормироватьВидыЗапасовПоПодразделениямМенеджерам
| И &ВариантОбособленногоУчетаТоваров = ЗНАЧЕНИЕ(Перечисление.ВариантыОбособленногоУчетаТоваров.ПоМенеджерамПодразделения)
| И &Менеджер <> ЗНАЧЕНИЕ(Справочник.Пользователи.ПустаяСсылка)
| ТОГДА &Менеджер
| КОГДА &ФормироватьВидыЗапасовПоПодразделениямМенеджерам
| И &ВариантОбособленногоУчетаТоваров = ЗНАЧЕНИЕ(Перечисление.ВариантыОбособленногоУчетаТоваров.ПоПодразделению)
| ТОГДА &Подразделение
| ИНАЧЕ НЕОПРЕДЕЛЕНО
| КОНЕЦ) КАК АналитикаФинансовогоУчета,
| ВЫБОР
| КОГДА &ХозяйственнаяОперация = ЗНАЧЕНИЕ(Перечисление.ХозяйственныеОперации.РеализацияКлиентуРеглУчет) ИЛИ &ВернутьМногооборотнуюТару
| И Аналитика.Номенклатура.ТипНоменклатуры = ЗНАЧЕНИЕ(Перечисление.ТипыНоменклатуры.МногооборотнаяТара)
| ТОГДА НЕОПРЕДЕЛЕНО
| КОГДА &НалогообложениеНДС В (&ТипыНалогообложенияНДСНеУчитываетсяВСтоимости) И ВидыЗапасов.СтавкаНДС = ЗНАЧЕНИЕ(Справочник.СтавкиНДС.БезНДС)
| ТОГДА ЗНАЧЕНИЕ(Перечисление.ТипыНалогообложенияНДС.ПродажаНеОблагаетсяНДС)
| КОГДА &НалогообложениеНДС = ЗНАЧЕНИЕ(Перечисление.ТипыНалогообложенияНДС.ПродажаНаЭкспорт) И ВидыЗапасов.СтавкаНДС <> &СтавкаНДСНаЭкспорт
| ТОГДА ЗНАЧЕНИЕ(Перечисление.ТипыНалогообложенияНДС.ПродажаОблагаетсяНДС)
| КОГДА &НалогообложениеНДС = ЗНАЧЕНИЕ(Перечисление.ТипыНалогообложенияНДС.ПродажаНаЭкспорт) И ВидыЗапасов.КодТНВЭДСырьевойТовар
| ТОГДА ЗНАЧЕНИЕ(Перечисление.ТипыНалогообложенияНДС.ЭкспортСырьевыхТоваровУслуг)
| КОГДА &НалогообложениеНДС = ЗНАЧЕНИЕ(Перечисление.ТипыНалогообложенияНДС.ПродажаНаЭкспорт)
| ТОГДА ЗНАЧЕНИЕ(Перечисление.ТипыНалогообложенияНДС.ЭкспортНесырьевыхТоваров)
| ИНАЧЕ &НалогообложениеНДС
| КОНЕЦ КАК ВидДеятельностиНДС,
| ВидыЗапасов.ОбъектРасчетов КАК ОбъектРасчетов,
| ВидыЗапасов.ОбъектРасчетовНаправлениеДеятельности КАК ОбъектРасчетовНаправлениеДеятельности,
| ЕСТЬNULL(АналитикаРасчетов.КлючАналитики, &АналитикаУчетаПоПартнерам) КАК АналитикаУчетаПоПартнерам,
| ВидыЗапасов.АналитикаУчетаНоменклатурыНоменклатураТипНоменклатуры КАК АналитикаУчетаНоменклатурыНоменклатураТипНоменклатуры
|
|ПОМЕСТИТЬ ВтТаблицаВидыЗапасов
|
|ИЗ
| ДанныеДокументаТаблицаВидыЗапасов КАК ВидыЗапасов
| ЛЕВОЕ СОЕДИНЕНИЕ
| ВтСуммыДокументовВВалютахУчета КАК Суммы
| ПО
| ВидыЗапасов.Ссылка = Суммы.Ссылка
| И ВидыЗапасов.ИдентификаторСтроки = Суммы.ИдентификаторСтроки
|
| ЛЕВОЕ СОЕДИНЕНИЕ
| Справочник.КлючиАналитикиУчетаНоменклатуры КАК Аналитика
| ПО
| ВидыЗапасов.АналитикаУчетаНоменклатуры = Аналитика.Ссылка
|
| ЛЕВОЕ СОЕДИНЕНИЕ
| РегистрСведений.АналитикаУчетаНоменклатуры КАК АналитикаБезНазначения
| ПО
| Аналитика.Номенклатура = АналитикаБезНазначения.Номенклатура
| И Аналитика.Характеристика = АналитикаБезНазначения.Характеристика
| И Аналитика.Серия = АналитикаБезНазначения.Серия
| И Аналитика.МестоХранения = АналитикаБезНазначения.МестоХранения
| И ЗНАЧЕНИЕ(Справочник.Назначения.ПустаяСсылка) = АналитикаБезНазначения.Назначение
| И ЗНАЧЕНИЕ(Справочник.СтатьиКалькуляции.ПустаяСсылка) = АналитикаБезНазначения.СтатьяКалькуляции
|
| ЛЕВОЕ СОЕДИНЕНИЕ
| РегистрСведений.АналитикаУчетаНоменклатуры КАК АналитикаПереданнойНоменклатуры
| ПО
| (&ЭтоПередачаНаКомиссию
| ИЛИ &ХозяйственнаяОперация В (
| ЗНАЧЕНИЕ(Перечисление.ХозяйственныеОперации.РеализацияБезПереходаПраваСобственности),
| ЗНАЧЕНИЕ(Перечисление.ХозяйственныеОперации.РеализацияЧерезКомиссионераБезПереходаПраваСобственности)))
| И Аналитика.Номенклатура = АналитикаПереданнойНоменклатуры.Номенклатура
| И Аналитика.Характеристика = АналитикаПереданнойНоменклатуры.Характеристика
| И ЗНАЧЕНИЕ(Справочник.Назначения.ПустаяСсылка) = АналитикаПереданнойНоменклатуры.Назначение
| И ЗНАЧЕНИЕ(Справочник.СерииНоменклатуры.ПустаяСсылка) = АналитикаПереданнойНоменклатуры.Серия
| И &Партнер = АналитикаПереданнойНоменклатуры.МестоХранения
| И ЗНАЧЕНИЕ(Справочник.СтатьиКалькуляции.ПустаяСсылка) = АналитикаПереданнойНоменклатуры.СтатьяКалькуляции
|
| ЛЕВОЕ СОЕДИНЕНИЕ
| РегистрСведений.АналитикаУчетаНоменклатуры КАК АналитикаПереданнойНоменклатурыБезНазначения
| ПО
| АналитикаПереданнойНоменклатуры.Номенклатура = АналитикаПереданнойНоменклатурыБезНазначения.Номенклатура
| И АналитикаПереданнойНоменклатуры.Характеристика = АналитикаПереданнойНоменклатурыБезНазначения.Характеристика
| И АналитикаПереданнойНоменклатуры.Серия = АналитикаПереданнойНоменклатурыБезНазначения.Серия
| И АналитикаПереданнойНоменклатуры.МестоХранения = АналитикаПереданнойНоменклатурыБезНазначения.МестоХранения
| И ЗНАЧЕНИЕ(Справочник.Назначения.ПустаяСсылка) = АналитикаПереданнойНоменклатурыБезНазначения.Назначение
| И ЗНАЧЕНИЕ(Справочник.СтатьиКалькуляции.ПустаяСсылка) = АналитикаПереданнойНоменклатурыБезНазначения.СтатьяКалькуляции
|
| ЛЕВОЕ СОЕДИНЕНИЕ
| РегистрСведений.АналитикаУчетаНоменклатуры КАК АналитикаПереданнойНоменклатурыДоговор
| ПО
| &ХозяйственнаяОперация = ЗНАЧЕНИЕ(Перечисление.ХозяйственныеОперации.РеализацияБезПереходаПраваСобственности)
| И НЕ &АналитикаПартнерВТоварахВПути
| И Аналитика.Номенклатура = АналитикаПереданнойНоменклатурыДоговор.Номенклатура
| И Аналитика.Характеристика = АналитикаПереданнойНоменклатурыДоговор.Характеристика
| И Аналитика.Назначение = АналитикаПереданнойНоменклатурыДоговор.Назначение
| И Аналитика.Серия = АналитикаПереданнойНоменклатурыДоговор.Серия
| И &Договор = АналитикаПереданнойНоменклатурыДоговор.МестоХранения
| И ЗНАЧЕНИЕ(Справочник.СтатьиКалькуляции.ПустаяСсылка) = АналитикаПереданнойНоменклатурыДоговор.СтатьяКалькуляции
|
| ЛЕВОЕ СОЕДИНЕНИЕ
| РегистрСведений.АналитикаУчетаНоменклатуры КАК АналитикаПереданнойНоменклатурыДоговорБезНазначения
| ПО
| НЕ &УчитыватьСебестоимостьТоваровПоНазначениям
| И &ХозяйственнаяОперация = ЗНАЧЕНИЕ(Перечисление.ХозяйственныеОперации.РеализацияБезПереходаПраваСобственности)
| И НЕ &АналитикаПартнерВТоварахВПути
| И Аналитика.Номенклатура = АналитикаПереданнойНоменклатурыДоговорБезНазначения.Номенклатура
| И Аналитика.Характеристика = АналитикаПереданнойНоменклатурыДоговорБезНазначения.Характеристика
| И ЗНАЧЕНИЕ(Справочник.Назначения.ПустаяСсылка) = АналитикаПереданнойНоменклатурыДоговорБезНазначения.Назначение
| И Аналитика.Серия = АналитикаПереданнойНоменклатурыДоговорБезНазначения.Серия
| И &Договор = АналитикаПереданнойНоменклатурыДоговорБезНазначения.МестоХранения
| И ЗНАЧЕНИЕ(Справочник.СтатьиКалькуляции.ПустаяСсылка) = АналитикаПереданнойНоменклатурыДоговорБезНазначения.СтатьяКалькуляции
|
| ЛЕВОЕ СОЕДИНЕНИЕ
| РегистрСведений.АналитикаУчетаНоменклатуры КАК АналитикаПереданнойНоменклатурыДоговорКонечныйКлиент
| ПО
| &ХозяйственнаяОперация = ЗНАЧЕНИЕ(Перечисление.ХозяйственныеОперации.РеализацияЧерезКомиссионераБезПереходаПраваСобственности)
| И НЕ &АналитикаПартнерВТоварахВПути
| И Аналитика.Номенклатура = АналитикаПереданнойНоменклатурыДоговорКонечныйКлиент.Номенклатура
| И Аналитика.Характеристика = АналитикаПереданнойНоменклатурыДоговорКонечныйКлиент.Характеристика
| И Аналитика.Назначение = АналитикаПереданнойНоменклатурыДоговорКонечныйКлиент.Назначение
| И Аналитика.Серия = АналитикаПереданнойНоменклатурыДоговорКонечныйКлиент.Серия
| И &КлиентДоговор = АналитикаПереданнойНоменклатурыДоговорКонечныйКлиент.МестоХранения
| И ЗНАЧЕНИЕ(Справочник.СтатьиКалькуляции.ПустаяСсылка) = АналитикаПереданнойНоменклатурыДоговорКонечныйКлиент.СтатьяКалькуляции
|
| ЛЕВОЕ СОЕДИНЕНИЕ
| РегистрСведений.АналитикаУчетаНоменклатуры КАК АналитикаПереданнойНоменклатурыДоговорКонечныйКлиентБезНазначения
| ПО
| НЕ &УчитыватьСебестоимостьТоваровПоНазначениям
| И &ХозяйственнаяОперация = ЗНАЧЕНИЕ(Перечисление.ХозяйственныеОперации.РеализацияЧерезКомиссионераБезПереходаПраваСобственности)
| И НЕ &АналитикаПартнерВТоварахВПути
| И Аналитика.Номенклатура = АналитикаПереданнойНоменклатурыДоговорКонечныйКлиентБезНазначения.Номенклатура
| И Аналитика.Характеристика = АналитикаПереданнойНоменклатурыДоговорКонечныйКлиентБезНазначения.Характеристика
| И ЗНАЧЕНИЕ(Справочник.Назначения.ПустаяСсылка) = АналитикаПереданнойНоменклатурыДоговорКонечныйКлиентБезНазначения.Назначение
| И Аналитика.Серия = АналитикаПереданнойНоменклатурыДоговорКонечныйКлиентБезНазначения.Серия
| И &КлиентДоговор = АналитикаПереданнойНоменклатурыДоговорКонечныйКлиентБезНазначения.МестоХранения
| И ЗНАЧЕНИЕ(Справочник.СтатьиКалькуляции.ПустаяСсылка) = АналитикаПереданнойНоменклатурыДоговорКонечныйКлиентБезНазначения.СтатьяКалькуляции
|
| ЛЕВОЕ СОЕДИНЕНИЕ
| РегистрСведений.АналитикаУчетаНоменклатуры КАК КлючиКомитента
| ПО
| Аналитика.Номенклатура = КлючиКомитента.Номенклатура
| И Аналитика.Характеристика = КлючиКомитента.Характеристика
| И ЗНАЧЕНИЕ(Справочник.Назначения.ПустаяСсылка) = КлючиКомитента.Назначение
| И ЗНАЧЕНИЕ(Справочник.СерииНоменклатуры.ПустаяСсылка) = КлючиКомитента.Серия
| И ВидыЗапасов.ВидЗапасовВладелецТовара = КлючиКомитента.МестоХранения
| И ЗНАЧЕНИЕ(Справочник.СтатьиКалькуляции.ПустаяСсылка) = КлючиКомитента.СтатьяКалькуляции
|
| ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.АналитикаУчетаПоПартнерам КАК АналитикаРасчетов
| ПО АналитикаРасчетов.Партнер = &Партнер
| И АналитикаРасчетов.Организация = &Организация
| И АналитикаРасчетов.Контрагент = &Контрагент
| И АналитикаРасчетов.Договор = ВидыЗапасов.ОбъектРасчетовДоговор
| И АналитикаРасчетов.НаправлениеДеятельности = ВидыЗапасов.ОбъектРасчетовНаправлениеДеятельности
|
| ЛЕВОЕ СОЕДИНЕНИЕ Справочник.Назначения КАК СпрНазначения
| ПО Аналитика.Назначение = СпрНазначения.Ссылка
|
| ЛЕВОЕ СОЕДИНЕНИЕ Справочник.Номенклатура КАК СпрНоменклатура
| ПО СпрНоменклатура.Ссылка = Аналитика.Номенклатура
|
| ЛЕВОЕ СОЕДИНЕНИЕ ВтТаблицаАналитикУчетаПартий КАК ТаблицаАналитикУчетаПартий
| ПО ТаблицаАналитикУчетаПартий.НомерСтроки = ВидыЗапасов.НомерСтроки
| И ТаблицаАналитикУчетаПартий.ИмяТабличнойЧасти = ""ВидыЗапасов""";
ТекстыЗапроса.Добавить(ТекстЗапроса, ИмяРегистра);
Возврат ТекстЗапроса;
КонецФункции
Функция ТекстЗапросаВтПодходящиеСоглашения(ТекстыЗапроса)
ИмяРегистра = "ВтПодходящиеСоглашения";
ТекстЗапроса = "ВЫБРАТЬ РАЗЛИЧНЫЕ
| КОформлению.Номенклатура КАК Номенклатура,
| КОформлению.Характеристика КАК Характеристика,
| ЕСТЬNULL(СоглашениеСПоставщиком.Ссылка, СоглашениеСПоставщикомБезУслуг.Ссылка) КАК Ссылка,
| ЕСТЬNULL(СоглашениеСПоставщиком.Ссылка.Статус, СоглашениеСПоставщикомБезУслуг.Статус) КАК Статус,
| ЕСТЬNULL(СоглашениеСПоставщиком.Ссылка.ДатаОкончанияДействия,
| СоглашениеСПоставщикомБезУслуг.ДатаОкончанияДействия) КАК ДатаОкончанияДействия
|ПОМЕСТИТЬ ВтПодходящиеСоглашения_Услуги
|ИЗ
| ДанныеДокументаТаблицаТовары КАК КОформлению
|
| ЛЕВОЕ СОЕДИНЕНИЕ Справочник.СоглашенияСПоставщиками.АгентскиеУслуги КАК СоглашениеСПоставщиком
| ПО СоглашениеСПоставщиком.Ссылка.Партнер = ЕСТЬNULL(КОформлению.ХарактеристикаПринципал,
| КОформлению.НоменклатураПринципал)
| И СоглашениеСПоставщиком.Ссылка.Организация = &Организация
| И СоглашениеСПоставщиком.Ссылка.ХозяйственнаяОперация = ЗНАЧЕНИЕ(Перечисление.ХозяйственныеОперации.ОказаниеАгентскихУслуг)
| И СоглашениеСПоставщиком.Ссылка.Статус В (ЗНАЧЕНИЕ(Перечисление.СтатусыСоглашенийСПоставщиками.Действует),
| ЗНАЧЕНИЕ(Перечисление.СтатусыСоглашенийСПоставщиками.Закрыто))
| И &Период >= СоглашениеСПоставщиком.Ссылка.ДатаНачалаДействия
| И (&Период <= СоглашениеСПоставщиком.Ссылка.ДатаОкончанияДействия
| ИЛИ СоглашениеСПоставщиком.Ссылка.ДатаОкончанияДействия = ДАТАВРЕМЯ(1, 1, 1))
| И КОформлению.Номенклатура = СоглашениеСПоставщиком.Номенклатура
| И КОформлению.Характеристика = СоглашениеСПоставщиком.Характеристика
| И СоглашениеСПоставщиком.Ссылка.ИспользоватьУказанныеАгентскиеУслуги
|
| ЛЕВОЕ СОЕДИНЕНИЕ Справочник.СоглашенияСПоставщиками КАК СоглашениеСПоставщикомБезУслуг
| ПО СоглашениеСПоставщикомБезУслуг.Партнер = ЕСТЬNULL(КОформлению.ХарактеристикаПринципал,
| КОформлению.НоменклатураПринципал)
| И СоглашениеСПоставщикомБезУслуг.Организация = &Организация
| И СоглашениеСПоставщикомБезУслуг.ХозяйственнаяОперация = ЗНАЧЕНИЕ(Перечисление.ХозяйственныеОперации.ОказаниеАгентскихУслуг)
| И СоглашениеСПоставщикомБезУслуг.Статус = ЗНАЧЕНИЕ(Перечисление.СтатусыСоглашенийСПоставщиками.Действует)
| И &Период >= СоглашениеСПоставщикомБезУслуг.ДатаНачалаДействия
| И (&Период <= СоглашениеСПоставщикомБезУслуг.ДатаОкончанияДействия
| ИЛИ СоглашениеСПоставщикомБезУслуг.ДатаОкончанияДействия = ДАТАВРЕМЯ(1, 1, 1))
| И НЕ СоглашениеСПоставщикомБезУслуг.ИспользоватьУказанныеАгентскиеУслуги
|
|ГДЕ
| КОформлению.НоменклатураТипНоменклатуры = ЗНАЧЕНИЕ(Перечисление.ТипыНоменклатуры.Услуга)
| И ЕСТЬNULL(КОформлению.ХарактеристикаПринципал, КОформлению.НоменклатураПринципал) <> &Организация
| И ЕСТЬNULL(КОформлению.ХарактеристикаПринципал, КОформлению.НоменклатураПринципал) <> НЕОПРЕДЕЛЕНО
| И &ИспользоватьПродажуАгентскихУслуг
|;
|
|
|ВЫБРАТЬ
| ВыбранныеСоглашения.Номенклатура КАК Номенклатура,
| ВыбранныеСоглашения.Характеристика КАК Характеристика,
| ВыбранныеСоглашения.Ссылка КАК Ссылка,
| СоглашениеСПоставщиком.Статус КАК Статус,
| СоглашениеСПоставщиком.Валюта КАК Валюта
| ПОМЕСТИТЬ ВтПодходящиеСоглашения
|ИЗ
| (ВЫБРАТЬ
| ДанныеПоУслугам.Номенклатура КАК Номенклатура,
| ДанныеПоУслугам.Характеристика КАК Характеристика,
| ДанныеПоУслугам.Ссылка КАК Ссылка
| ИЗ
| ВтПодходящиеСоглашения_Услуги КАК ДанныеПоУслугам
| ГДЕ
| ДанныеПоУслугам.Статус = ЗНАЧЕНИЕ(Перечисление.СтатусыСоглашенийСПоставщиками.Действует)
|
| ОБЪЕДИНИТЬ ВСЕ
|
| ВЫБРАТЬ
| ДанныеПоУслугам.Номенклатура,
| ДанныеПоУслугам.Характеристика,
| МАКСИМУМ(ДанныеПоУслугам.Ссылка)
| ИЗ
| ВтПодходящиеСоглашения_Услуги КАК ДанныеПоУслугам
| ГДЕ
| ДанныеПоУслугам.Статус = ЗНАЧЕНИЕ(Перечисление.СтатусыСоглашенийСПоставщиками.Закрыто)
| И (ДанныеПоУслугам.Номенклатура, ДанныеПоУслугам.Характеристика, ДанныеПоУслугам.ДатаОкончанияДействия) В
| (ВЫБРАТЬ
| Номенклатура,
| Характеристика,
| МАКСИМУМ(ДатаОкончанияДействия)
| ИЗ
| ВтПодходящиеСоглашения_Услуги
| ГДЕ
| ДанныеПоУслугам.Статус = ЗНАЧЕНИЕ(Перечисление.СтатусыСоглашенийСПоставщиками.Закрыто)
| СГРУППИРОВАТЬ ПО
| Номенклатура,
| Характеристика)
|
| СГРУППИРОВАТЬ ПО
| ДанныеПоУслугам.Номенклатура,
| ДанныеПоУслугам.Характеристика) КАК ВыбранныеСоглашения
|
| ЛЕВОЕ СОЕДИНЕНИЕ Справочник.СоглашенияСПоставщиками КАК СоглашениеСПоставщиком
| ПО ВыбранныеСоглашения.Ссылка = СоглашениеСПоставщиком.Ссылка
|";
ТекстыЗапроса.Добавить(ТекстЗапроса, ИмяРегистра);
Возврат ТекстЗапроса;
КонецФункции
Функция ТекстЗапросаВтАгентскиеУслуги(Запрос, ТекстыЗапроса)
ИмяРегистра = "ВтАгентскиеУслуги";
Если НЕ ПроведениеДокументов.ЕстьТаблицаЗапроса("ВтПодходящиеСоглашения", ТекстыЗапроса) Тогда
ТекстЗапросаВтПодходящиеСоглашения(ТекстыЗапроса);
КонецЕсли;
ТекстЗапроса = "
|ВЫБРАТЬ РАЗЛИЧНЫЕ
| ВЫБОР
| КОГДА НЕ СоглашениеПоУслугамДействующие.Ссылка ЕСТЬ NULL
| ТОГДА СоглашениеПоУслугамДействующие.Ссылка
| ИНАЧЕ ЕСТЬNULL(СоглашениеПоУслугамЗакрытые.Ссылка, НЕОПРЕДЕЛЕНО)
| КОНЕЦ КАК Соглашение,
| ВЫБОР
| КОГДА НЕ СоглашениеПоУслугамДействующие.Ссылка ЕСТЬ NULL
| ТОГДА СоглашениеПоУслугамДействующие.Валюта
| ИНАЧЕ ЕСТЬNULL(СоглашениеПоУслугамЗакрытые.Валюта, &Валюта)
| КОНЕЦ КАК Валюта,
| КОформлению.Номенклатура КАК Номенклатура,
| КОформлению.Характеристика КАК Характеристика,
| &Организация КАК Организация,
| ЕСТЬNULL(КОформлению.ХарактеристикаПринципал, КОформлению.НоменклатураПринципал) КАК Принципал
|ПОМЕСТИТЬ ВтАгентскиеУслуги
|ИЗ
| ДанныеДокументаТаблицаТовары КАК КОформлению
|
| ЛЕВОЕ СОЕДИНЕНИЕ ВтПодходящиеСоглашения КАК СоглашениеПоУслугамДействующие
| ПО КОформлению.Номенклатура = СоглашениеПоУслугамДействующие.Номенклатура
| И КОформлению.Характеристика = СоглашениеПоУслугамДействующие.Характеристика
| И СоглашениеПоУслугамДействующие.Статус = ЗНАЧЕНИЕ(Перечисление.СтатусыСоглашенийСПоставщиками.Действует)
|
| ЛЕВОЕ СОЕДИНЕНИЕ ВтПодходящиеСоглашения КАК СоглашениеПоУслугамЗакрытые
| ПО КОформлению.Номенклатура = СоглашениеПоУслугамЗакрытые.Номенклатура
| И КОформлению.Характеристика = СоглашениеПоУслугамЗакрытые.Характеристика
| И СоглашениеПоУслугамЗакрытые.Статус = ЗНАЧЕНИЕ(Перечисление.СтатусыСоглашенийСПоставщиками.Закрыто)
| И СоглашениеПоУслугамДействующие.Ссылка ЕСТЬ NULL
|
|ГДЕ
| КОформлению.НоменклатураТипНоменклатуры = ЗНАЧЕНИЕ(Перечисление.ТипыНоменклатуры.Услуга)
| И ЕСТЬNULL(КОформлению.ХарактеристикаПринципал, КОформлению.НоменклатураПринципал) <> &Организация
| И ЕСТЬNULL(КОформлению.ХарактеристикаПринципал, КОформлению.НоменклатураПринципал) <> НЕОПРЕДЕЛЕНО
| И &ИспользоватьПродажуАгентскихУслуг";
ТекстыЗапроса.Добавить(ТекстЗапроса, ИмяРегистра);
Возврат ТекстЗапроса;
КонецФункции
Функция ТекстЗапросаВтКурсыВалют(Запрос, ТекстыЗапроса, ДокументОбъект)
ИмяРегистра = "ВТКурсыВалют";
Если НЕ ПроведениеДокументов.ЕстьТаблицаЗапроса("ВтТаблицаВидыЗапасов", ТекстыЗапроса) Тогда
ТекстЗапросаВтТаблицаВидыЗапасов(Запрос, ТекстыЗапроса, ДокументОбъект);
КонецЕсли;
Если НЕ ПроведениеДокументов.ЕстьТаблицаЗапроса("ВтАгентскиеУслуги", ТекстыЗапроса) Тогда
ТекстЗапросаВтАгентскиеУслуги(Запрос, ТекстыЗапроса);
КонецЕсли;
ТекстЗапроса =
"ВЫБРАТЬ
| КурсыВалют.Валюта КАК Валюта,
|
| (КурсВалютыДокумента.КурсЧислитель * КурсыВалют.КурсЗнаменатель)
| / (КурсВалютыДокумента.КурсЗнаменатель * КурсыВалют.КурсЧислитель) КАК КоэффициентПересчета
|
|ПОМЕСТИТЬ ВТКурсыВалют
|ИЗ
| РегистрСведений.ОтносительныеКурсыВалют.СрезПоследних(&Период,
| (Валюта, БазоваяВалюта) В (
| ВЫБРАТЬ РАЗЛИЧНЫЕ
| ТаблицаВидыЗапасов.Валюта КАК Валюта,
| ТаблицаВидыЗапасов.Организация.ВалютаРегламентированногоУчета КАК БазоваяВалюта
| ИЗ
| ВтТаблицаВидыЗапасов КАК ТаблицаВидыЗапасов
| ГДЕ
| ((&ХозяйственнаяОперация В (
| ЗНАЧЕНИЕ(Перечисление.ХозяйственныеОперации.РеализацияКлиенту),
| ЗНАЧЕНИЕ(Перечисление.ХозяйственныеОперации.РеализацияКлиентуРеглУчет)
| ))
| ИЛИ
| (&ХозяйственнаяОперация В (
| ЗНАЧЕНИЕ(Перечисление.ХозяйственныеОперации.РеализацияБезПереходаПраваСобственности),
| ЗНАЧЕНИЕ(Перечисление.ХозяйственныеОперации.РеализацияЧерезКомиссионераБезПереходаПраваСобственности))
| И &Статус = ЗНАЧЕНИЕ(Перечисление.СтатусыРеализацийТоваровУслуг.Отгружено)
| ))
| И ТаблицаВидыЗапасов.ТипЗапасов = ЗНАЧЕНИЕ(Перечисление.ТипыЗапасов.КомиссионныйТовар)
| И (ТаблицаВидыЗапасов.НоменклатураТипНоменклатуры <> ЗНАЧЕНИЕ(Перечисление.ТипыНоменклатуры.МногооборотнаяТара)
| ИЛИ (ТаблицаВидыЗапасов.НоменклатураТипНоменклатуры = ЗНАЧЕНИЕ(Перечисление.ТипыНоменклатуры.МногооборотнаяТара) И НЕ &ВернутьМногооборотнуюТару))
|
| ОБЪЕДИНИТЬ
|
| ВЫБРАТЬ РАЗЛИЧНЫЕ
| ТаблицаВидыЗапасов.ВидЗапасовВидЗапасовВладельцаВалюта КАК Валюта,
| ТаблицаВидыЗапасов.Организация.ВалютаРегламентированногоУчета КАК БазоваяВалюта
| ИЗ
| ВтТаблицаВидыЗапасов КАК ТаблицаВидыЗапасов
| ГДЕ
| ((&ХозяйственнаяОперация В (
| ЗНАЧЕНИЕ(Перечисление.ХозяйственныеОперации.РеализацияКлиенту),
| ЗНАЧЕНИЕ(Перечисление.ХозяйственныеОперации.РеализацияКлиентуРеглУчет)
| ))
| ИЛИ
| (&ХозяйственнаяОперация В (
| ЗНАЧЕНИЕ(Перечисление.ХозяйственныеОперации.РеализацияБезПереходаПраваСобственности),
| ЗНАЧЕНИЕ(Перечисление.ХозяйственныеОперации.РеализацияЧерезКомиссионераБезПереходаПраваСобственности))
| И &Статус = ЗНАЧЕНИЕ(Перечисление.СтатусыРеализацийТоваровУслуг.Отгружено)
| ))
| И ТаблицаВидыЗапасов.ТипЗапасов = ЗНАЧЕНИЕ(Перечисление.ТипыЗапасов.КомиссионныйТовар)
| И ТаблицаВидыЗапасов.ВидЗапасовВидЗапасовВладельцаТипЗапасов = ЗНАЧЕНИЕ(Перечисление.ТипыЗапасов.КомиссионныйТовар)
| И (ТаблицаВидыЗапасов.НоменклатураТипНоменклатуры <> ЗНАЧЕНИЕ(Перечисление.ТипыНоменклатуры.МногооборотнаяТара)
| ИЛИ (ТаблицаВидыЗапасов.НоменклатураТипНоменклатуры = ЗНАЧЕНИЕ(Перечисление.ТипыНоменклатуры.МногооборотнаяТара) И НЕ &ВернутьМногооборотнуюТару))
|
| ОБЪЕДИНИТЬ
|
| ВЫБРАТЬ РАЗЛИЧНЫЕ
| Услуги.Валюта КАК Валюта,
| Услуги.Организация.ВалютаРегламентированногоУчета КАК БазоваяВалюта
| ИЗ
| ВтАгентскиеУслуги КАК Услуги
| )
| ) КАК КурсыВалют
|
| ВНУТРЕННЕЕ СОЕДИНЕНИЕ
| РегистрСведений.ОтносительныеКурсыВалют.СрезПоследних(&Период, Валюта = &Валюта) КАК КурсВалютыДокумента
| ПО
| КурсыВалют.БазоваяВалюта = КурсВалютыДокумента.БазоваяВалюта
|
|ГДЕ
| КурсВалютыДокумента.КурсЗнаменатель <> 0
| И &Статус <> ЗНАЧЕНИЕ(Перечисление.СтатусыРеализацийТоваровУслуг.КПредоплате)";
ТекстыЗапроса.Добавить(ТекстЗапроса, ИмяРегистра);
Возврат ТекстЗапроса;
КонецФункции
Функция ТекстЗапросаВтРаботыУслуги(Запрос, ТекстыЗапроса, ДокументОбъект)
ИмяРегистра = "ВтРаботыУслуги";
СформироватьСуммыДокументаВВалютахУчета(Запрос, ТекстыЗапроса, Неопределено, ДокументОбъект);
УстановитьПараметрЗапросаТипыНалогообложенияНДСОблагаемые(Запрос);
ИнициализироватьКлючиАналитикиУчетаНоменклатуры(Запрос);
УстановитьПараметрыЗапросаКоэффициентыВалют(Запрос);
Если НЕ ПроведениеДокументов.ЕстьТаблицаЗапроса("ВтАгентскиеУслуги", ТекстыЗапроса) Тогда
ТекстЗапросаВтАгентскиеУслуги(Запрос, ТекстыЗапроса);
КонецЕсли;
Если НЕ ПроведениеДокументов.ЕстьТаблицаЗапроса("ВтТаблицаАналитикУчетаПартий", ТекстыЗапроса) Тогда
ТекстЗапросаВтТаблицаАналитикУчетаПартий(Запрос, ТекстыЗапроса);
КонецЕсли;
ТекстЗапроса =
"ВЫБРАТЬ
| ТаблицаТовары.НомерСтроки КАК НомерСтроки,
| Аналитика.МестоХранения КАК Склад,
| ТаблицаТовары.Номенклатура КАК Номенклатура,
| ТаблицаТовары.НоменклатураТипНоменклатуры КАК ТипНоменклатуры,
| ТаблицаТовары.Характеристика КАК Характеристика,
| ТаблицаТовары.СтавкаНДС КАК СтавкаНДС,
| ЗНАЧЕНИЕ(Справочник.ВидыЗапасов.ПустаяСсылка) КАК ВидЗапасов,
| ЗНАЧЕНИЕ(Перечисление.ТипыЗапасов.ПустаяСсылка) КАК ТипЗапасов,
| ТаблицаТовары.Количество КАК Количество,
| ТаблицаТовары.СуммаСНДС КАК СуммаСНДС,
| ТаблицаТовары.СуммаНДС КАК СуммаНДС,
| ЕСТЬNULL(Суммы.СуммаСНДСУпр, 0) КАК СуммаСНДСУпр,
| ЕСТЬNULL(Суммы.СуммаБезНДСУпр, 0) КАК СуммаБезНДСУпр,
| ЕСТЬNULL(Суммы.СуммаБезНДСРегл, 0) КАК СуммаБезНДСРегл,
| ЕСТЬNULL(Суммы.СуммаСНДСРегл, 0) КАК СуммаСНДСРегл,
| ТаблицаТовары.ЗаказКлиента КАК ЗаказКлиента,
| ТаблицаТовары.АналитикаУчетаНоменклатуры КАК АналитикаУчетаНоменклатуры,
| ТаблицаТовары.АналитикаУчетаНоменклатурыНазначение КАК АналитикаУчетаНоменклатурыНазначение,
| АналитикаБезНазначения.КлючАналитики КАК АналитикаУчетаНоменклатурыБезНазначения,
| ТаблицаТовары.АналитикаУчетаНаборов КАК АналитикаУчетаНаборов,
| ВЫБОР КОГДА ТоварыЗаказа.Обособленно
| ТОГДА ТаблицаТовары.ЗаказКлиентаНазначение
| КОНЕЦ КАК Назначение,
| ВЫРАЗИТЬ(ТаблицаТовары.СуммаРучнойСкидки * &КоэффициентПересчетаВВалютуУпр КАК ЧИСЛО(31,2)) КАК СуммаРучнойСкидки,
| ВЫРАЗИТЬ(ТаблицаТовары.СуммаАвтоматическойСкидки * &КоэффициентПересчетаВВалютуУпр КАК ЧИСЛО(31,2)) КАК СуммаАвтоматическойСкидки,
| Суммы.СуммаНДСРегл КАК НДСРегл,
| ТаблицаТовары.СуммаВзаиморасчетов КАК СуммаВзаиморасчетов,
| ВЫБОР
| КОГДА ТаблицаТовары.СуммаСНДС <> 0
| ТОГДА ВЫРАЗИТЬ(ТаблицаТовары.СуммаВзаиморасчетов * ТаблицаТовары.СуммаНДС / ТаблицаТовары.СуммаСНДС КАК ЧИСЛО(31,2))
| ИНАЧЕ 0
| КОНЕЦ КАК СуммаВзаиморасчетовНДС,
| ВЫРАЗИТЬ(ТаблицаТовары.СуммаРучнойСкидки * &КоэффициентПересчетаВВалютуУпр КАК ЧИСЛО(31,2)) КАК СуммаРучнойСкидкиУпр,
| ВЫРАЗИТЬ(ТаблицаТовары.СуммаАвтоматическойСкидки * &КоэффициентПересчетаВВалютуУпр КАК ЧИСЛО(31,2)) КАК СуммаАвтоматическойСкидкиУпр,
| АгентскиеУслуги.Соглашение КАК Соглашение,
| АгентскиеУслуги.Валюта КАК Валюта,
| ЕСТЬNULL(КлючиПринципала.КлючАналитики, НЕОПРЕДЕЛЕНО) КАК АналитикаНоменклатурыПринципала,
| ЕСТЬNULL(АгентскиеУслуги.Принципал, НЕОПРЕДЕЛЕНО) КАК Принципал,
| ЕСТЬNULL(Аналитика.Номенклатура.ПрослеживаемыйТовар, ЛОЖЬ) КАК ПрослеживаемыйТовар,
| (ВЫБОР
| КОГДА &ФормироватьВидыЗапасовПоСделкам И &ОбособленныйУчетТоваровПоСделке
| ТОГДА &Сделка
| КОГДА &ФормироватьВидыЗапасовПоПодразделениямМенеджерам
| И &ВариантОбособленногоУчетаТоваров = ЗНАЧЕНИЕ(Перечисление.ВариантыОбособленногоУчетаТоваров.ПоМенеджерамПодразделения)
| И &Менеджер <> ЗНАЧЕНИЕ(Справочник.Пользователи.ПустаяСсылка)
| ТОГДА &Менеджер
| КОГДА &ФормироватьВидыЗапасовПоПодразделениямМенеджерам
| И &ВариантОбособленногоУчетаТоваров = ЗНАЧЕНИЕ(Перечисление.ВариантыОбособленногоУчетаТоваров.ПоПодразделению)
| ТОГДА &Подразделение
| ИНАЧЕ НЕОПРЕДЕЛЕНО
| КОНЕЦ) КАК АналитикаФинансовогоУчета,
| (ВЫБОР
| КОГДА &ХозяйственнаяОперация = ЗНАЧЕНИЕ(Перечисление.ХозяйственныеОперации.РеализацияКлиентуРеглУчет)
| ТОГДА НЕОПРЕДЕЛЕНО
| КОГДА &НалогообложениеНДС = ЗНАЧЕНИЕ(Перечисление.ТипыНалогообложенияНДС.ПродажаНаЭкспорт) ТОГДА
| ВЫБОР ТаблицаТовары.СтавкаНДС
| КОГДА &СтавкаНДСНаЭкспорт ТОГДА
| ЗНАЧЕНИЕ(Перечисление.ТипыНалогообложенияНДС.ЭкспортСырьевыхТоваровУслуг)
| КОГДА ЗНАЧЕНИЕ(Справочник.СтавкиНДС.БезНДС) ТОГДА
| ЗНАЧЕНИЕ(Перечисление.ТипыНалогообложенияНДС.ПродажаНеОблагаетсяНДС)
| ИНАЧЕ
| ЗНАЧЕНИЕ(Перечисление.ТипыНалогообложенияНДС.ПродажаОблагаетсяНДС)
| КОНЕЦ
| КОГДА ТаблицаТовары.СтавкаНДС = ЗНАЧЕНИЕ(Справочник.СтавкиНДС.БезНДС)
| И &НалогообложениеНДС В (&ТипыНалогообложенияНДСОблагаемые)
| ТОГДА ЗНАЧЕНИЕ(Перечисление.ТипыНалогообложенияНДС.ПродажаНеОблагаетсяНДС)
| ИНАЧЕ &НалогообложениеНДС
| КОНЕЦ) КАК ВидДеятельностиНДС,
| ТаблицаТовары.ОбъектРасчетов КАК ОбъектРасчетов,
| ТаблицаТовары.ОбъектРасчетовНаправлениеДеятельности КАК ОбъектРасчетовНаправлениеДеятельности,
| ТаблицаТовары.ОбъектРасчетовУникальныйИдентификатор КАК ОбъектРасчетовУникальныйИдентификатор,
| ЕСТЬNULL(АналитикаРасчетов.КлючАналитики, &АналитикаУчетаПоПартнерам) КАК АналитикаУчетаПоПартнерам,
| ТаблицаТовары.ИдентификаторСтроки КАК ИдентификаторСтроки,
| ВЫБОР
| КОГДА ТаблицаТовары.НоменклатураТипНоменклатуры В (&СписокТиповСАналитикойПодразделение)
| ТОГДА ТаблицаТовары.Подразделение
| ИНАЧЕ
| &Подразделение
| КОНЕЦ КАК Подразделение,
| ТаблицаАналитикУчетаПартий.ВидЦенности КАК ВидЦенности,
| ТаблицаАналитикУчетаПартий.АналитикаУчетаПартий КАК АналитикаУчетаПартий
|
|ПОМЕСТИТЬ ВтРаботыУслуги
|ИЗ
| ДанныеДокументаТаблицаТовары КАК ТаблицаТовары
| ЛЕВОЕ СОЕДИНЕНИЕ Справочник.КлючиАналитикиУчетаНоменклатуры КАК Аналитика
| ПО ТаблицаТовары.АналитикаУчетаНоменклатуры = Аналитика.Ссылка
| ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.АналитикаУчетаНоменклатуры КАК АналитикаБезНазначения
| ПО Аналитика.Номенклатура = АналитикаБезНазначения.Номенклатура
| И Аналитика.Характеристика = АналитикаБезНазначения.Характеристика
| И Аналитика.Серия = АналитикаБезНазначения.Серия
| И Аналитика.МестоХранения = АналитикаБезНазначения.МестоХранения
| И ЗНАЧЕНИЕ(Справочник.Назначения.ПустаяСсылка) = АналитикаБезНазначения.Назначение
| И ЗНАЧЕНИЕ(Справочник.СтатьиКалькуляции.ПустаяСсылка) = АналитикаБезНазначения.СтатьяКалькуляции
| ЛЕВОЕ СОЕДИНЕНИЕ ВтСуммыДокументовВВалютахУчета КАК Суммы
| ПО ТаблицаТовары.Ссылка = Суммы.Ссылка
| И ТаблицаТовары.ИдентификаторСтроки = Суммы.ИдентификаторСтроки
| ЛЕВОЕ СОЕДИНЕНИЕ Документ.ЗаказКлиента.Товары КАК ТоварыЗаказа
| ПО (ТоварыЗаказа.Ссылка = ТаблицаТовары.ЗаказКлиента)
| И (ТоварыЗаказа.КодСтроки = ТаблицаТовары.КодСтроки)
| ЛЕВОЕ СОЕДИНЕНИЕ ВтАгентскиеУслуги КАК АгентскиеУслуги
| ПО ТаблицаТовары.Номенклатура = АгентскиеУслуги.Номенклатура
| И ТаблицаТовары.Характеристика = АгентскиеУслуги.Характеристика
| ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.АналитикаУчетаНоменклатуры КАК КлючиПринципала
| ПО (КлючиПринципала.Номенклатура = ТаблицаТовары.Номенклатура)
| И (КлючиПринципала.Характеристика = ТаблицаТовары.Характеристика)
| И (КлючиПринципала.Назначение = ЗНАЧЕНИЕ(Справочник.Назначения.ПустаяСсылка))
| И (КлючиПринципала.Серия = ЗНАЧЕНИЕ(Справочник.СерииНоменклатуры.ПустаяСсылка))
| И (КлючиПринципала.МестоХранения = АгентскиеУслуги.Принципал)
| И ЗНАЧЕНИЕ(Справочник.СтатьиКалькуляции.ПустаяСсылка) = КлючиПринципала.СтатьяКалькуляции
|
| ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.АналитикаУчетаПоПартнерам КАК АналитикаРасчетов
| ПО АналитикаРасчетов.Партнер = &Партнер
| И АналитикаРасчетов.Организация = &Организация
| И АналитикаРасчетов.Контрагент = &Контрагент
| И АналитикаРасчетов.Договор = ТаблицаТовары.ОбъектРасчетовДоговор
| И АналитикаРасчетов.НаправлениеДеятельности = ТаблицаТовары.ОбъектРасчетовНаправлениеДеятельности
|
| ЛЕВОЕ СОЕДИНЕНИЕ ВтТаблицаАналитикУчетаПартий КАК ТаблицаАналитикУчетаПартий
| ПО ТаблицаАналитикУчетаПартий.НомерСтроки = ТаблицаТовары.НомерСтроки
| И ТаблицаАналитикУчетаПартий.ИмяТабличнойЧасти = ""Товары""
|ГДЕ
| ТаблицаТовары.Ссылка = &Ссылка
| И ТаблицаТовары.НоменклатураТипНоменклатуры В (ЗНАЧЕНИЕ(Перечисление.ТипыНоменклатуры.Услуга),
| ЗНАЧЕНИЕ(Перечисление.ТипыНоменклатуры.Работа))
| И ТаблицаТовары.АналитикаУчетаНоменклатуры НЕ В
| (ВЫБРАТЬ РАЗЛИЧНЫЕ
| ВидыЗапасов.АналитикаУчетаНоменклатуры
| ИЗ
| ДанныеДокументаТаблицаВидыЗапасов КАК ВидыЗапасов
| ГДЕ
| ВидыЗапасов.Ссылка = &Ссылка)
|
|ОБЪЕДИНИТЬ ВСЕ
|
|ВЫБРАТЬ
| ТаблицаТовары.НомерСтроки КАК НомерСтроки,
| Аналитика.МестоХранения КАК Склад,
| Аналитика.Номенклатура КАК Номенклатура,
| ТаблицаТовары.АналитикаУчетаНоменклатурыНоменклатураТипНоменклатуры КАК ТипНоменклатуры,
| Аналитика.Характеристика КАК Характеристика,
| ТаблицаТовары.СтавкаНДС КАК СтавкаНДС,
| ТаблицаТовары.ВидЗапасов,
| ТаблицаТовары.ВидЗапасовТипЗапасов,
| ТаблицаТовары.Количество КАК Количество,
| ТаблицаТовары.СуммаСНДС КАК СуммаСНДС,
| ТаблицаТовары.СуммаНДС КАК СуммаНДС,
| ЕСТЬNULL(Суммы.СуммаСНДСУпр, 0) КАК СуммаСНДСУпр,
| ЕСТЬNULL(Суммы.СуммаБезНДСУпр, 0) КАК СуммаБезНДСУпр,
| ЕСТЬNULL(Суммы.СуммаБезНДСРегл, 0) КАК СуммаБезНДСРегл,
| ЕСТЬNULL(Суммы.СуммаСНДСРегл, 0) КАК СуммаСНДСРегл,
| ТаблицаТовары.ЗаказКлиента КАК ЗаказКлиента,
| ТаблицаТовары.АналитикаУчетаНоменклатуры КАК АналитикаУчетаНоменклатуры,
| Аналитика.Назначение КАК АналитикаУчетаНоменклатурыНазначение,
| АналитикаБезНазначения.КлючАналитики КАК АналитикаУчетаНоменклатурыБезНазначения,
| ТаблицаТовары.АналитикаУчетаНаборов КАК АналитикаУчетаНаборов,
| Аналитика.Назначение КАК Назначение,
| ВЫРАЗИТЬ(ТаблицаТовары.СуммаРучнойСкидки * &КоэффициентПересчетаВВалютуУпр КАК ЧИСЛО(31,2)) КАК СуммаРучнойСкидки,
| ВЫРАЗИТЬ(ТаблицаТовары.СуммаАвтоматическойСкидки * &КоэффициентПересчетаВВалютуУпр КАК ЧИСЛО(31,2)) КАК СуммаАвтоматическойСкидки,
| Суммы.СуммаНДСРегл КАК НДСРегл,
| ТаблицаТовары.СуммаВзаиморасчетов КАК СуммаВзаиморасчетов,
| ВЫБОР
| КОГДА ТаблицаТовары.СуммаСНДС <> 0
| ТОГДА ВЫРАЗИТЬ(ТаблицаТовары.СуммаВзаиморасчетов * ТаблицаТовары.СуммаНДС / ТаблицаТовары.СуммаСНДС КАК ЧИСЛО(31,2))
| ИНАЧЕ 0
| КОНЕЦ КАК СуммаВзаиморасчетовНДС,
| ВЫРАЗИТЬ(ТаблицаТовары.СуммаРучнойСкидки * &КоэффициентПересчетаВВалютуУпр КАК ЧИСЛО(31,2)) КАК СуммаРучнойСкидкиУпр,
| ВЫРАЗИТЬ(ТаблицаТовары.СуммаАвтоматическойСкидки * &КоэффициентПересчетаВВалютуУпр КАК ЧИСЛО(31,2)) КАК СуммаАвтоматическойСкидкиУпр,
| НЕОПРЕДЕЛЕНО КАК Соглашение,
| НЕОПРЕДЕЛЕНО КАК Валюта,
| НЕОПРЕДЕЛЕНО КАК АналитикаНоменклатурыПринципала,
| НЕОПРЕДЕЛЕНО КАК Принципал,
| ЕСТЬNULL(Аналитика.Номенклатура.ПрослеживаемыйТовар, ЛОЖЬ) КАК ПрослеживаемыйТовар,
| (ВЫБОР
| КОГДА &ФормироватьВидыЗапасовПоСделкам И &ОбособленныйУчетТоваровПоСделке
| ТОГДА &Сделка
| КОГДА &ФормироватьВидыЗапасовПоПодразделениямМенеджерам
| И &ВариантОбособленногоУчетаТоваров = ЗНАЧЕНИЕ(Перечисление.ВариантыОбособленногоУчетаТоваров.ПоМенеджерамПодразделения)
| И &Менеджер <> ЗНАЧЕНИЕ(Справочник.Пользователи.ПустаяСсылка)
| ТОГДА &Менеджер
| КОГДА &ФормироватьВидыЗапасовПоПодразделениямМенеджерам
| И &ВариантОбособленногоУчетаТоваров = ЗНАЧЕНИЕ(Перечисление.ВариантыОбособленногоУчетаТоваров.ПоПодразделению)
| ТОГДА &Подразделение
| ИНАЧЕ НЕОПРЕДЕЛЕНО
| КОНЕЦ) КАК АналитикаФинансовогоУчета,
| (ВЫБОР
| КОГДА &ХозяйственнаяОперация = ЗНАЧЕНИЕ(Перечисление.ХозяйственныеОперации.РеализацияКлиентуРеглУчет)
| ТОГДА НЕОПРЕДЕЛЕНО
| КОГДА &НалогообложениеНДС = ЗНАЧЕНИЕ(Перечисление.ТипыНалогообложенияНДС.ПродажаНаЭкспорт) ТОГДА
| ВЫБОР ТаблицаТовары.СтавкаНДС
| КОГДА &СтавкаНДСНаЭкспорт ТОГДА
| ЗНАЧЕНИЕ(Перечисление.ТипыНалогообложенияНДС.ЭкспортСырьевыхТоваровУслуг)
| КОГДА ЗНАЧЕНИЕ(Справочник.СтавкиНДС.БезНДС) ТОГДА
| ЗНАЧЕНИЕ(Перечисление.ТипыНалогообложенияНДС.ПродажаНеОблагаетсяНДС)
| ИНАЧЕ
| ЗНАЧЕНИЕ(Перечисление.ТипыНалогообложенияНДС.ПродажаОблагаетсяНДС)
| КОНЕЦ
| КОГДА ТаблицаТовары.СтавкаНДС = ЗНАЧЕНИЕ(Справочник.СтавкиНДС.БезНДС)
| И &НалогообложениеНДС В (&ТипыНалогообложенияНДСОблагаемые)
| ТОГДА ЗНАЧЕНИЕ(Перечисление.ТипыНалогообложенияНДС.ПродажаНеОблагаетсяНДС)
| ИНАЧЕ &НалогообложениеНДС
| КОНЕЦ) КАК ВидДеятельностиНДС,
| ТаблицаТовары.ОбъектРасчетов КАК ОбъектРасчетов,
| ТаблицаТовары.ОбъектРасчетовНаправлениеДеятельности КАК ОбъектРасчетовНаправлениеДеятельности,
| ТаблицаТовары.ОбъектРасчетовУникальныйИдентификатор КАК ОбъектРасчетовУникальныйИдентификатор,
| ЕСТЬNULL(АналитикаРасчетов.КлючАналитики, &АналитикаУчетаПоПартнерам) КАК АналитикаУчетаПоПартнерам,
| ТаблицаТовары.ИдентификаторСтроки КАК ИдентификаторСтроки,
| ВЫБОР
| КОГДА ТаблицаТовары.АналитикаУчетаНоменклатурыНоменклатураТипНоменклатуры В (&СписокТиповСАналитикойПодразделение)
| ТОГДА Аналитика.МестоХранения
| ИНАЧЕ
| &Подразделение
| КОНЕЦ КАК Подразделение,
| ТаблицаАналитикУчетаПартий.ВидЦенности КАК ВидЦенности,
| ТаблицаАналитикУчетаПартий.АналитикаУчетаПартий КАК АналитикаУчетаПартий
|ИЗ
| ДанныеДокументаТаблицаВидыЗапасов КАК ТаблицаТовары
| ЛЕВОЕ СОЕДИНЕНИЕ Справочник.КлючиАналитикиУчетаНоменклатуры КАК Аналитика
| ПО ТаблицаТовары.АналитикаУчетаНоменклатуры = Аналитика.Ссылка
|
| ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.АналитикаУчетаНоменклатуры КАК АналитикаБезНазначения
| ПО Аналитика.Номенклатура = АналитикаБезНазначения.Номенклатура
| И Аналитика.Характеристика = АналитикаБезНазначения.Характеристика
| И Аналитика.Серия = АналитикаБезНазначения.Серия
| И Аналитика.МестоХранения = АналитикаБезНазначения.МестоХранения
| И ЗНАЧЕНИЕ(Справочник.Назначения.ПустаяСсылка) = АналитикаБезНазначения.Назначение
| И ЗНАЧЕНИЕ(Справочник.СтатьиКалькуляции.ПустаяСсылка) = АналитикаБезНазначения.СтатьяКалькуляции
|
| ЛЕВОЕ СОЕДИНЕНИЕ ВтСуммыДокументовВВалютахУчета КАК Суммы
| ПО ТаблицаТовары.Ссылка = Суммы.Ссылка
| И ТаблицаТовары.ИдентификаторСтроки = Суммы.ИдентификаторСтроки
|
| ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.АналитикаУчетаПоПартнерам КАК АналитикаРасчетов
| ПО АналитикаРасчетов.Партнер = &Партнер
| И АналитикаРасчетов.Организация = &Организация
| И АналитикаРасчетов.Контрагент = &Контрагент
| И АналитикаРасчетов.Договор = ТаблицаТовары.ОбъектРасчетовДоговор
| И АналитикаРасчетов.НаправлениеДеятельности = ТаблицаТовары.ОбъектРасчетовНаправлениеДеятельности
|
| ЛЕВОЕ СОЕДИНЕНИЕ ВтТаблицаАналитикУчетаПартий КАК ТаблицаАналитикУчетаПартий
| ПО ТаблицаАналитикУчетаПартий.НомерСтроки = ТаблицаТовары.НомерСтроки
| И ТаблицаАналитикУчетаПартий.ИмяТабличнойЧасти = ""ВидыЗапасов""
|ГДЕ
| ТаблицаТовары.Ссылка = &Ссылка
| И ТаблицаТовары.АналитикаУчетаНоменклатурыНоменклатураТипНоменклатуры = ЗНАЧЕНИЕ(Перечисление.ТипыНоменклатуры.Работа)";
ТекстыЗапроса.Добавить(ТекстЗапроса, ИмяРегистра);
Возврат ТекстЗапроса;
КонецФункции
Процедура УстановитьПараметрыЗапросаКоэффициентыВалют(Запрос) Экспорт
Если Запрос.Параметры.Свойство("КоэффициентПересчетаВВалютуУПР")
И Запрос.Параметры.Свойство("КоэффициентПересчетаВВалютуРегл") Тогда
Возврат;
КонецЕсли;
Если (Запрос.Параметры.ХозяйственнаяОперация = Перечисления.ХозяйственныеОперации.РеализацияБезПереходаПраваСобственности
ИЛИ Запрос.Параметры.ХозяйственнаяОперация = Перечисления.ХозяйственныеОперации.РеализацияЧерезКомиссионераБезПереходаПраваСобственности)
И Запрос.Параметры.Статус = Перечисления.СтатусыРеализацийТоваровУслуг.Отгружено Тогда
ПериодКурса = Запрос.Параметры.ДатаПереходаПраваСобственности;
Иначе
ПериодКурса = Запрос.Параметры.Период;
КонецЕсли;
Коэффициенты = РаботаСКурсамивалютУТ.ПолучитьКоэффициентыПересчетаВалюты(Запрос.Параметры.Валюта,
Запрос.Параметры.ВалютаВзаиморасчетов,
ПериодКурса,
Запрос.Параметры.Организация);
Запрос.УстановитьПараметр("КоэффициентПересчетаВВалютуУПР", Коэффициенты.КоэффициентПересчетаВВалютуУПР);
Запрос.УстановитьПараметр("КоэффициентПересчетаВВалютуРегл", Коэффициенты.КоэффициентПересчетаВВалютуРегл);
Коэффициенты = РаботаСКурсамивалютУТ.ПолучитьКоэффициентыПересчетаВалюты(Запрос.Параметры.Валюта,
Запрос.Параметры.ВалютаВзаиморасчетов,
Запрос.Параметры.Период,
Запрос.Параметры.Организация);
Запрос.УстановитьПараметр("КоэффициентПересчетаВВалютуУПРПереноса", Коэффициенты.КоэффициентПересчетаВВалютуУПР);
Запрос.УстановитьПараметр("КоэффициентПересчетаВВалютуРеглПереноса", Коэффициенты.КоэффициентПересчетаВВалютуРегл);
ВалютаУправленческогоУчета = ЗначениеНастроекПовтИсп.ВалютаУправленческогоУчета();
ВалютаРегламентированногоУчета =
ЗначениеНастроекПовтИсп.ВалютаРегламентированногоУчетаОрганизации(Запрос.Параметры.Организация);
КоэффициентПересчетаИзРеглВУпр = РаботаСКурсамиВалютУТ.ПолучитьКоэффициентПересчетаИзВалютыВВалюту(
ВалютаРегламентированногоУчета, ВалютаУправленческогоУчета, ПериодКурса, ВалютаРегламентированногоУчета);
Запрос.УстановитьПараметр("КоэффициентПересчетаИзРеглВУпр", КоэффициентПересчетаИзРеглВУпр);
КонецПроцедуры
Процедура УстановитьПараметрЗапросаАналитикаУчетаПоПартнерамУпр(Запрос)
Если Запрос.Параметры.Свойство("АналитикаУчетаПоПартнерамУпр") Тогда
Возврат;
КонецЕсли;
Если Запрос.Параметры.ХозяйственнаяОперация = Перечисления.ХозяйственныеОперации.РеализацияКлиентуРеглУчет Тогда
СтруктураУпр = Новый Структура();
СтруктураУпр.Вставить("Организация", Справочники.Организации.УправленческаяОрганизация);
СтруктураУпр.Вставить("Партнер", Запрос.Параметры.Партнер);
СтруктураУпр.Вставить("Контрагент", Запрос.Параметры.Контрагент);
СтруктураУпр.Вставить("Договор", Запрос.Параметры.Договор);
СтруктураУпр.Вставить("НаправлениеДеятельности", Запрос.Параметры.НаправлениеДеятельности);
АналитикаУчетаПоПартнерамУпр = РегистрыСведений.АналитикаУчетаПоПартнерам.ЗначениеКлючаАналитики(СтруктураУпр);
Иначе
АналитикаУчетаПоПартнерамУпр = Неопределено;
КонецЕсли;
Запрос.УстановитьПараметр("АналитикаУчетаПоПартнерамУпр", АналитикаУчетаПоПартнерамУпр);
КонецПроцедуры
Процедура УстановитьПараметрЗапросаАналитикаУчетаПоПартнерам(Запрос)
Если Запрос.Параметры.Свойство("АналитикаУчетаПоПартнерам") Тогда
Возврат;
КонецЕсли;
Если КомиссионнаяТорговляСервер.РеализацияЧерезКомиссионера(Запрос.Параметры.ХозяйственнаяОперация) Тогда
СтруктураАналитики = Новый Структура();
СтруктураАналитики.Вставить("Организация", Запрос.Параметры.Организация);
СтруктураАналитики.Вставить("Договор", Запрос.Параметры.КлиентДоговор);
СтруктураАналитики.Вставить("НаправлениеДеятельности", Запрос.Параметры.НаправлениеДеятельности);
Если ОбщегоНазначения.ЗначениеРеквизитаОбъекта(Запрос.Параметры.Договор, "ВестиРасчетыЧерезКонечныхПокупателей") Тогда
СтруктураАналитики.Вставить("Партнер", Запрос.Параметры.КлиентПартнер);
СтруктураАналитики.Вставить("Контрагент", Запрос.Параметры.КлиентКонтрагент);
Иначе
СтруктураАналитики.Вставить("Партнер", Запрос.Параметры.Партнер);
СтруктураАналитики.Вставить("Контрагент", Запрос.Параметры.Контрагент);
КонецЕсли;
АналитикаУчетаПоПартнерам = РегистрыСведений.АналитикаУчетаПоПартнерам.ЗначениеКлючаАналитики(СтруктураАналитики);
Иначе
АналитикаУчетаПоПартнерам = РегистрыСведений.АналитикаУчетаПоПартнерам.ЗначениеКлючаАналитики(Запрос.Параметры);
КонецЕсли;
Запрос.УстановитьПараметр("АналитикаУчетаПоПартнерам", АналитикаУчетаПоПартнерам);
КонецПроцедуры
Процедура ИнициализироватьКлючиАналитикиУчетаНоменклатуры(Запрос)
Если Запрос.Параметры.Свойство("КлючиАналитикиУчетаНоменклатурыИнициализированы") Тогда
Возврат;
КонецЕсли;
ЗапросАналитик = Новый Запрос("
|ВЫБРАТЬ РАЗЛИЧНЫЕ
| Таблица.Номенклатура КАК Номенклатура,
| Таблица.Характеристика КАК Характеристика,
| Таблица.Назначение КАК Назначение,
| Таблица.Серия КАК Серия,
| Таблица.Склад КАК Склад
|ИЗ
| (
| ВЫБРАТЬ
| Ключи.Номенклатура КАК Номенклатура,
| Ключи.Характеристика КАК Характеристика,
| &ПустоеНазначение КАК Назначение,
| &Серия КАК Серия,
| Товары.ВидЗапасовВладелецТовара КАК Склад
| ИЗ
| ДанныеДокументаТаблицаВидыЗапасов КАК Товары
|
| ЛЕВОЕ СОЕДИНЕНИЕ Справочник.КлючиАналитикиУчетаНоменклатуры КАК Ключи
| ПО Товары.АналитикаУчетаНоменклатуры = Ключи.Ссылка
|
| ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.АналитикаУчетаНоменклатуры КАК Аналитика
| ПО Ключи.Номенклатура = Аналитика.Номенклатура
| И Ключи.Характеристика = Аналитика.Характеристика
| И &Серия = Аналитика.Серия
| И Товары.ВидЗапасовВладелецТовара = Аналитика.МестоХранения
| И &ПустоеНазначение = Аналитика.Назначение
| И ЗНАЧЕНИЕ(Справочник.СтатьиКалькуляции.ПустаяСсылка) = Аналитика.СтатьяКалькуляции
| ГДЕ
| Аналитика.Номенклатура ЕСТЬ NULL
| И Товары.ВидЗапасовТипЗапасов = ЗНАЧЕНИЕ(Перечисление.ТипыЗапасов.КомиссионныйТовар)
|
| ОБЪЕДИНИТЬ ВСЕ
|
| ВЫБРАТЬ
| Ключи.Номенклатура КАК Номенклатура,
| Ключи.Характеристика КАК Характеристика,
| &ПустоеНазначение КАК Назначение,
| &Серия КАК Серия,
| &Партнер КАК Склад
| ИЗ
| ДанныеДокументаТаблицаВидыЗапасов КАК Товары
| ВНУТРЕННЕЕ СОЕДИНЕНИЕ ДанныеДокументаШапка КАК ДанныеДокументаШапка
| ПО Товары.Ссылка = ДанныеДокументаШапка.Ссылка
|
| ЛЕВОЕ СОЕДИНЕНИЕ Справочник.КлючиАналитикиУчетаНоменклатуры КАК Ключи
| ПО Товары.АналитикаУчетаНоменклатуры = Ключи.Ссылка
|
| ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.АналитикаУчетаНоменклатуры КАК Аналитика
| ПО Ключи.Номенклатура = Аналитика.Номенклатура
| И Ключи.Характеристика = Аналитика.Характеристика
| И &ПустоеНазначение = Аналитика.Назначение
| И &Серия = Аналитика.Серия
| И &Партнер = Аналитика.МестоХранения
| И ЗНАЧЕНИЕ(Справочник.СтатьиКалькуляции.ПустаяСсылка) = Аналитика.СтатьяКалькуляции
| ГДЕ
| Аналитика.Номенклатура ЕСТЬ NULL
| И (&ЭтоПередачаНаКомиссию
| ИЛИ ДанныеДокументаШапка.ХозяйственнаяОперация В (
| ЗНАЧЕНИЕ(Перечисление.ХозяйственныеОперации.РеализацияБезПереходаПраваСобственности),
| ЗНАЧЕНИЕ(Перечисление.ХозяйственныеОперации.РеализацияЧерезКомиссионераБезПереходаПраваСобственности))
| )
|
| ОБЪЕДИНИТЬ ВСЕ
|
| ВЫБРАТЬ
| Ключи.Номенклатура КАК Номенклатура,
| Ключи.Характеристика КАК Характеристика,
| Ключи.Назначение КАК Назначение,
| Ключи.Серия КАК Серия,
| &Договор КАК Склад
| ИЗ
| ДанныеДокументаТаблицаВидыЗапасов КАК Товары
| ВНУТРЕННЕЕ СОЕДИНЕНИЕ ДанныеДокументаШапка КАК ДанныеДокументаШапка
| ПО Товары.Ссылка = ДанныеДокументаШапка.Ссылка
|
| ЛЕВОЕ СОЕДИНЕНИЕ Справочник.КлючиАналитикиУчетаНоменклатуры КАК Ключи
| ПО Товары.АналитикаУчетаНоменклатуры = Ключи.Ссылка
|
| ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.АналитикаУчетаНоменклатуры КАК Аналитика
| ПО Ключи.Номенклатура = Аналитика.Номенклатура
| И Ключи.Характеристика = Аналитика.Характеристика
| И Ключи.Назначение = Аналитика.Назначение
| И Ключи.Серия = Аналитика.Серия
| И &Договор = Аналитика.МестоХранения
| И ЗНАЧЕНИЕ(Справочник.СтатьиКалькуляции.ПустаяСсылка) = Аналитика.СтатьяКалькуляции
| ГДЕ
| НЕ &АналитикаПартнерВТоварахВПути
| И Аналитика.Номенклатура ЕСТЬ NULL
| И ДанныеДокументаШапка.ХозяйственнаяОперация
| = ЗНАЧЕНИЕ(Перечисление.ХозяйственныеОперации.РеализацияБезПереходаПраваСобственности)
|
| ОБЪЕДИНИТЬ ВСЕ
|
| ВЫБРАТЬ
| Ключи.Номенклатура КАК Номенклатура,
| Ключи.Характеристика КАК Характеристика,
| &ПустоеНазначение КАК Назначение,
| Ключи.Серия КАК Серия,
| &Договор КАК Склад
| ИЗ
| ДанныеДокументаТаблицаВидыЗапасов КАК Товары
| ВНУТРЕННЕЕ СОЕДИНЕНИЕ ДанныеДокументаШапка КАК ДанныеДокументаШапка
| ПО Товары.Ссылка = ДанныеДокументаШапка.Ссылка
|
| ЛЕВОЕ СОЕДИНЕНИЕ Справочник.КлючиАналитикиУчетаНоменклатуры КАК Ключи
| ПО Товары.АналитикаУчетаНоменклатуры = Ключи.Ссылка
|
| ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.АналитикаУчетаНоменклатуры КАК Аналитика
| ПО Ключи.Номенклатура = Аналитика.Номенклатура
| И Ключи.Характеристика = Аналитика.Характеристика
| И &ПустоеНазначение = Аналитика.Назначение
| И Ключи.Серия = Аналитика.Серия
| И &Договор = Аналитика.МестоХранения
| И ЗНАЧЕНИЕ(Справочник.СтатьиКалькуляции.ПустаяСсылка) = Аналитика.СтатьяКалькуляции
| ГДЕ
| НЕ &АналитикаПартнерВТоварахВПути
| И НЕ &УчитыватьСебестоимостьТоваровПоНазначениям
| И Аналитика.Номенклатура ЕСТЬ NULL
| И ДанныеДокументаШапка.ХозяйственнаяОперация
| = ЗНАЧЕНИЕ(Перечисление.ХозяйственныеОперации.РеализацияБезПереходаПраваСобственности)
|
| ОБЪЕДИНИТЬ ВСЕ
|
| ВЫБРАТЬ
| Ключи.Номенклатура КАК Номенклатура,
| Ключи.Характеристика КАК Характеристика,
| Ключи.Назначение КАК Назначение,
| Ключи.Серия КАК Серия,
| &Договор КАК Склад
| ИЗ
| ДанныеДокументаТаблицаВидыЗапасов КАК Товары
| ВНУТРЕННЕЕ СОЕДИНЕНИЕ ДанныеДокументаШапка КАК ДанныеДокументаШапка
| ПО Товары.Ссылка = ДанныеДокументаШапка.Ссылка
|
| ЛЕВОЕ СОЕДИНЕНИЕ Справочник.КлючиАналитикиУчетаНоменклатуры КАК Ключи
| ПО Товары.АналитикаУчетаНоменклатуры = Ключи.Ссылка
|
| ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.АналитикаУчетаНоменклатуры КАК Аналитика
| ПО Ключи.Номенклатура = Аналитика.Номенклатура
| И Ключи.Характеристика = Аналитика.Характеристика
| И Ключи.Назначение = Аналитика.Назначение
| И Ключи.Серия = Аналитика.Серия
| И &Договор = Аналитика.МестоХранения
| И ЗНАЧЕНИЕ(Справочник.СтатьиКалькуляции.ПустаяСсылка) = Аналитика.СтатьяКалькуляции
| ГДЕ
| Аналитика.Номенклатура ЕСТЬ NULL
| И ДанныеДокументаШапка.ХозяйственнаяОперация
| = ЗНАЧЕНИЕ(Перечисление.ХозяйственныеОперации.ПереходПраваСобственности)
|
| ОБЪЕДИНИТЬ ВСЕ
|
| ВЫБРАТЬ
| Ключи.Номенклатура КАК Номенклатура,
| Ключи.Характеристика КАК Характеристика,
| &ПустоеНазначение КАК Назначение,
| Ключи.Серия КАК Серия,
| &Договор КАК Склад
| ИЗ
| ДанныеДокументаТаблицаВидыЗапасов КАК Товары
| ВНУТРЕННЕЕ СОЕДИНЕНИЕ ДанныеДокументаШапка КАК ДанныеДокументаШапка
| ПО Товары.Ссылка = ДанныеДокументаШапка.Ссылка
|
| ЛЕВОЕ СОЕДИНЕНИЕ Справочник.КлючиАналитикиУчетаНоменклатуры КАК Ключи
| ПО Товары.АналитикаУчетаНоменклатуры = Ключи.Ссылка
|
| ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.АналитикаУчетаНоменклатуры КАК Аналитика
| ПО Ключи.Номенклатура = Аналитика.Номенклатура
| И Ключи.Характеристика = Аналитика.Характеристика
| И &ПустоеНазначение = Аналитика.Назначение
| И Ключи.Серия = Аналитика.Серия
| И &Договор = Аналитика.МестоХранения
| И ЗНАЧЕНИЕ(Справочник.СтатьиКалькуляции.ПустаяСсылка) = Аналитика.СтатьяКалькуляции
| ГДЕ
| Аналитика.Номенклатура ЕСТЬ NULL
| И НЕ &УчитыватьСебестоимостьТоваровПоНазначениям
| И ДанныеДокументаШапка.ХозяйственнаяОперация
| = ЗНАЧЕНИЕ(Перечисление.ХозяйственныеОперации.ПереходПраваСобственности)
|
| ОБЪЕДИНИТЬ ВСЕ
|
| ВЫБРАТЬ
| Ключи.Номенклатура КАК Номенклатура,
| Ключи.Характеристика КАК Характеристика,
| Ключи.Назначение КАК Назначение,
| Ключи.Серия КАК Серия,
| &КлиентДоговор КАК Склад
| ИЗ
| ДанныеДокументаТаблицаВидыЗапасов КАК Товары
| ВНУТРЕННЕЕ СОЕДИНЕНИЕ ДанныеДокументаШапка КАК ДанныеДокументаШапка
| ПО Товары.Ссылка = ДанныеДокументаШапка.Ссылка
|
| ЛЕВОЕ СОЕДИНЕНИЕ Справочник.КлючиАналитикиУчетаНоменклатуры КАК Ключи
| ПО Товары.АналитикаУчетаНоменклатуры = Ключи.Ссылка
|
| ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.АналитикаУчетаНоменклатуры КАК Аналитика
| ПО Ключи.Номенклатура = Аналитика.Номенклатура
| И Ключи.Характеристика = Аналитика.Характеристика
| И Ключи.Назначение = Аналитика.Назначение
| И Ключи.Серия = Аналитика.Серия
| И &КлиентДоговор = Аналитика.МестоХранения
| И ЗНАЧЕНИЕ(Справочник.СтатьиКалькуляции.ПустаяСсылка) = Аналитика.СтатьяКалькуляции
| ГДЕ
| НЕ &АналитикаПартнерВТоварахВПути
| И Аналитика.Номенклатура ЕСТЬ NULL
| И ДанныеДокументаШапка.ХозяйственнаяОперация
| = ЗНАЧЕНИЕ(Перечисление.ХозяйственныеОперации.РеализацияЧерезКомиссионераБезПереходаПраваСобственности)
|
| ОБЪЕДИНИТЬ ВСЕ
|
| ВЫБРАТЬ
| Ключи.Номенклатура КАК Номенклатура,
| Ключи.Характеристика КАК Характеристика,
| &ПустоеНазначение КАК Назначение,
| Ключи.Серия КАК Серия,
| &КлиентДоговор КАК Склад
| ИЗ
| ДанныеДокументаТаблицаВидыЗапасов КАК Товары
| ВНУТРЕННЕЕ СОЕДИНЕНИЕ ДанныеДокументаШапка КАК ДанныеДокументаШапка
| ПО Товары.Ссылка = ДанныеДокументаШапка.Ссылка
|
| ЛЕВОЕ СОЕДИНЕНИЕ Справочник.КлючиАналитикиУчетаНоменклатуры КАК Ключи
| ПО Товары.АналитикаУчетаНоменклатуры = Ключи.Ссылка
|
| ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.АналитикаУчетаНоменклатуры КАК Аналитика
| ПО Ключи.Номенклатура = Аналитика.Номенклатура
| И Ключи.Характеристика = Аналитика.Характеристика
| И &ПустоеНазначение = Аналитика.Назначение
| И Ключи.Серия = Аналитика.Серия
| И &КлиентДоговор = Аналитика.МестоХранения
| И ЗНАЧЕНИЕ(Справочник.СтатьиКалькуляции.ПустаяСсылка) = Аналитика.СтатьяКалькуляции
| ГДЕ
| НЕ &АналитикаПартнерВТоварахВПути
| И НЕ &УчитыватьСебестоимостьТоваровПоНазначениям
| И Аналитика.Номенклатура ЕСТЬ NULL
| И ДанныеДокументаШапка.ХозяйственнаяОперация
| = ЗНАЧЕНИЕ(Перечисление.ХозяйственныеОперации.РеализацияЧерезКомиссионераБезПереходаПраваСобственности)
|
| ОБЪЕДИНИТЬ ВСЕ
|
| ВЫБРАТЬ
| Ключи.Номенклатура КАК Номенклатура,
| Ключи.Характеристика КАК Характеристика,
| &ПустоеНазначение КАК Назначение,
| &Серия КАК Серия,
| &Договор КАК Склад
| ИЗ
| ДанныеДокументаТаблицаВидыЗапасов КАК Товары
|
| ЛЕВОЕ СОЕДИНЕНИЕ Справочник.КлючиАналитикиУчетаНоменклатуры КАК Ключи
| ПО Товары.АналитикаУчетаНоменклатуры = Ключи.Ссылка
|
| ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.АналитикаУчетаНоменклатуры КАК Аналитика
| ПО Ключи.Номенклатура = Аналитика.Номенклатура
| И Ключи.Характеристика = Аналитика.Характеристика
| И &ПустоеНазначение = Аналитика.Назначение
| И &Серия = Аналитика.Серия
| И &Договор = Аналитика.МестоХранения
| И ЗНАЧЕНИЕ(Справочник.СтатьиКалькуляции.ПустаяСсылка) = Аналитика.СтатьяКалькуляции
| ГДЕ
| Аналитика.Номенклатура ЕСТЬ NULL
| И &РеализацияЧерезКомиссионера
|
| ОБЪЕДИНИТЬ ВСЕ
|
| ВЫБРАТЬ
| Ключи.Номенклатура КАК Номенклатура,
| Ключи.Характеристика КАК Характеристика,
| &ПустоеНазначение КАК Назначение,
| &Серия КАК Серия,
| ВидыЗапасовВладельца.ВладелецТовара КАК Склад
| ИЗ
| ДанныеДокументаТаблицаВидыЗапасов КАК Товары
|
| ВНУТРЕННЕЕ СОЕДИНЕНИЕ Справочник.ВидыЗапасов КАК ВидыЗапасовВладельца
| ПО Товары.ВидЗапасовВидЗапасовВладельца = ВидыЗапасовВладельца.Ссылка
|
| ЛЕВОЕ СОЕДИНЕНИЕ Справочник.КлючиАналитикиУчетаНоменклатуры КАК Ключи
| ПО Товары.АналитикаУчетаНоменклатуры = Ключи.Ссылка
|
| ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.АналитикаУчетаНоменклатуры КАК Аналитика
| ПО Ключи.Номенклатура = Аналитика.Номенклатура
| И Ключи.Характеристика = Аналитика.Характеристика
| И &ПустоеНазначение = Аналитика.Назначение
| И &Серия = Аналитика.Серия
| И ВидыЗапасовВладельца.ВладелецТовара = Аналитика.МестоХранения
| И ЗНАЧЕНИЕ(Справочник.СтатьиКалькуляции.ПустаяСсылка) = Аналитика.СтатьяКалькуляции
| ГДЕ
| Аналитика.Номенклатура ЕСТЬ NULL
| И Товары.ВидЗапасовРеализацияЗапасовДругойОрганизации
| И Товары.ВидЗапасовТипЗапасов = ЗНАЧЕНИЕ(Перечисление.ТипыЗапасов.КомиссионныйТовар)
| И Товары.ВидЗапасовВидЗапасовВладельцаТипЗапасов = ЗНАЧЕНИЕ(Перечисление.ТипыЗапасов.КомиссионныйТовар)
|
| ОБЪЕДИНИТЬ ВСЕ
|
| ВЫБРАТЬ
| Услуги.Номенклатура КАК Номенклатура,
| Услуги.Характеристика КАК Характеристика,
| &ПустоеНазначение КАК Назначение,
| &Серия КАК Серия,
| ЕСТЬNULL(Услуги.ХарактеристикаПринципал, СпрНоменклатура.Принципал) КАК Склад
| ИЗ
| ДанныеДокументаТаблицаТовары КАК Услуги
|
| ВНУТРЕННЕЕ СОЕДИНЕНИЕ Справочник.Номенклатура КАК СпрНоменклатура
| ПО СпрНоменклатура.Ссылка = Услуги.Номенклатура
|
| ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.АналитикаУчетаНоменклатуры КАК Аналитика
| ПО Услуги.Номенклатура = Аналитика.Номенклатура
| И Услуги.Характеристика = Аналитика.Характеристика
| И &ПустоеНазначение = Аналитика.Назначение
| И &Серия = Аналитика.Серия
| И ЕСТЬNULL(Услуги.ХарактеристикаПринципал, СпрНоменклатура.Принципал) = Аналитика.МестоХранения
| И ЗНАЧЕНИЕ(Справочник.СтатьиКалькуляции.ПустаяСсылка) = Аналитика.СтатьяКалькуляции
| ГДЕ
| ЕСТЬNULL(Услуги.ХарактеристикаПринципал, СпрНоменклатура.Принципал) <> НЕОПРЕДЕЛЕНО
| И ЕСТЬNULL(Услуги.ХарактеристикаПринципал, СпрНоменклатура.Принципал) <> &Организация
| И Аналитика.КлючАналитики ЕСТЬ NULL
| И СпрНоменклатура.ТипНоменклатуры = ЗНАЧЕНИЕ(Перечисление.ТипыНоменклатуры.Услуга)
|
| ОБЪЕДИНИТЬ ВСЕ
|
| ВЫБРАТЬ
| Ключи.Номенклатура КАК Номенклатура,
| Ключи.Характеристика КАК Характеристика,
| &ПустоеНазначение КАК Назначение,
| Ключи.Серия КАК Серия,
| Ключи.МестоХранения КАК Склад
| ИЗ
| ДанныеДокументаТаблицаТовары КАК Товары
|
| ЛЕВОЕ СОЕДИНЕНИЕ Справочник.КлючиАналитикиУчетаНоменклатуры КАК Ключи
| ПО Товары.АналитикаУчетаНоменклатуры = Ключи.Ссылка
|
| ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.АналитикаУчетаНоменклатуры КАК Аналитика
| ПО Ключи.Номенклатура = Аналитика.Номенклатура
| И Ключи.Характеристика = Аналитика.Характеристика
| И Ключи.Серия = Аналитика.Серия
| И Ключи.МестоХранения = Аналитика.МестоХранения
| И &ПустоеНазначение = Аналитика.Назначение
| И ЗНАЧЕНИЕ(Справочник.СтатьиКалькуляции.ПустаяСсылка) = Аналитика.СтатьяКалькуляции
| ГДЕ
| Аналитика.Номенклатура ЕСТЬ NULL
| И НЕ &УчитыватьСебестоимостьТоваровПоНазначениям
|
| ) КАК Таблица
|");
ЗапросАналитик.МенеджерВременныхТаблиц = Запрос.МенеджерВременныхТаблиц;
ЗапросАналитик.УстановитьПараметр("Ссылка", Запрос.Параметры.Ссылка);
ЗапросАналитик.УстановитьПараметр("Серия", Справочники.СерииНоменклатуры.ПустаяСсылка());
ЗапросАналитик.УстановитьПараметр("ПустоеНазначение", Справочники.Назначения.ПустаяСсылка());
ЗапросАналитик.УстановитьПараметр("Партнер", Запрос.Параметры.Партнер);
ЗапросАналитик.УстановитьПараметр("Договор", Запрос.Параметры.Договор);
ЗапросАналитик.УстановитьПараметр("Организация", Запрос.Параметры.Организация);
ЗапросАналитик.УстановитьПараметр("КлиентДоговор", Запрос.Параметры.КлиентДоговор);
ЗапросАналитик.УстановитьПараметр("ЭтоПередачаНаКомиссию", Запрос.Параметры.ЭтоПередачаНаКомиссию);
ЗапросАналитик.УстановитьПараметр("УчитыватьСебестоимостьТоваровПоНазначениям", Запрос.Параметры.УчитыватьСебестоимостьТоваровПоНазначениям);
ЗапросАналитик.УстановитьПараметр("АналитикаПартнерВТоварахВПути", Запрос.Параметры.АналитикаПартнерВТоварахВПути);
ЗапросАналитик.УстановитьПараметр("РеализацияЧерезКомиссионера",
КомиссионнаяТорговляСервер.РеализацияЧерезКомиссионера(Запрос.Параметры.ХозяйственнаяОперация));
Выборка = ЗапросАналитик.Выполнить().Выбрать();
Пока Выборка.Следующий() Цикл
РегистрыСведений.АналитикаУчетаНоменклатуры.СоздатьКлючАналитики(Выборка);
КонецЦикла;
ЗапросАналитик = Новый Запрос("
|ВЫБРАТЬ РАЗЛИЧНЫЕ
| Ключи.НоменклатураНабора КАК НоменклатураНабора,
| Ключи.ХарактеристикаНабора КАК ХарактеристикаНабора
|ИЗ
| ДанныеДокументаТаблицаВидыЗапасов КАК Товары
| ВНУТРЕННЕЕ СОЕДИНЕНИЕ
| РегистрСведений.АналитикаУчетаНаборов КАК Ключи
| ПО
| Товары.АналитикаУчетаНаборов = Ключи.КлючАналитики
|
| ЛЕВОЕ СОЕДИНЕНИЕ
| РегистрСведений.АналитикаУчетаНаборов КАК Аналитика
| ПО
| Ключи.НоменклатураНабора = Аналитика.НоменклатураНабора
| И Ключи.ХарактеристикаНабора = Аналитика.ХарактеристикаНабора
|ГДЕ
| Аналитика.НоменклатураНабора ЕСТЬ NULL
|");
ЗапросАналитик.МенеджерВременныхТаблиц = Запрос.МенеджерВременныхТаблиц;
ЗапросАналитик.УстановитьПараметр("Ссылка", Запрос.Параметры.Ссылка);
Выборка = ЗапросАналитик.Выполнить().Выбрать();
Пока Выборка.Следующий() Цикл
РегистрыСведений.АналитикаУчетаНаборов.СоздатьКлючАналитики(Выборка);
КонецЦикла;
Запрос.УстановитьПараметр("КлючиАналитикиУчетаНоменклатурыИнициализированы", Истина);
КонецПроцедуры
Функция АдаптированныйТекстЗапросаДвиженийПоРегистру(ИмяРегистра) Экспорт
Запрос = Новый Запрос;
ТекстыЗапроса = Новый СписокЗначений;
ПолноеИмяДокумента = "Документ.РеализацияТоваровУслуг";
СинонимТаблицыДокумента = "";
ВЗапросеЕстьИсточник = Истина;
ЗначенияПараметров = Новый Структура();
ЗначенияПараметров.Вставить("ИдентификаторМетаданных",
ОбщегоНазначения.ИдентификаторОбъектаМетаданных(ПолноеИмяДокумента));
ЗначенияПараметров.Вставить("ИспользоватьРасширенныеВозможностиЗаказаКлиента",
ПолучитьФункциональнуюОпцию("ИспользоватьРасширенныеВозможностиЗаказаКлиента"));
Если ИмяРегистра = "РаспоряженияНаОтгрузкуИВозврат" Тогда
ТекстЗапроса = ТекстЗапросаТаблицаРаспоряженияНаОтгрузку(Запрос, ТекстыЗапроса, ИмяРегистра);
СинонимТаблицыДокумента = "ТаблицаТовары";
ИначеЕсли ИмяРегистра = "РеестрДокументов" Тогда
ТекстЗапроса = ТекстЗапросаТаблицаРеестрДокументов(Запрос, ТекстыЗапроса, ИмяРегистра);
СинонимТаблицыДокумента = "ДанныеДокумента";
Иначе
ТекстИсключения = НСтр("ru = 'В документе %ПолноеИмяДокумента% не реализована адаптация текста запроса формирования движений по регистру %ИмяРегистра%.'");
ТекстИсключения = СтрЗаменить(ТекстИсключения, "%ПолноеИмяДокумента%", ПолноеИмяДокумента);
ТекстИсключения = СтрЗаменить(ТекстИсключения, "%ИмяРегистра%", ИмяРегистра);
ВызватьИсключение ТекстИсключения;
КонецЕсли;
Если ИмяРегистра = "РеестрДокументов" Тогда
ТекстЗапроса = ОбновлениеИнформационнойБазыУТ.АдаптироватьЗапросПроведенияПоНезависимомуРегистру(
ТекстЗапроса,
ПолноеИмяДокумента,
СинонимТаблицыДокумента,
ВЗапросеЕстьИсточник);
Иначе
ТекстЗапроса = ОбновлениеИнформационнойБазыУТ.АдаптироватьЗапросМеханизмаПроведения(
ТекстЗапроса,
ПолноеИмяДокумента,
СинонимТаблицыДокумента);
Если ИмяРегистра = "РаспоряженияНаОтгрузкуИВозврат" Тогда
ТекстЗапроса = СтрЗаменить(ТекстЗапроса, "ТаблицаДокументаОбновлениеИБ.Ссылка.", "ДанныеДокумента.");
КонецЕсли;
КонецЕсли;
Результат = ОбновлениеИнформационнойБазыУТ.РезультатАдаптацииЗапроса();
Результат.ЗначенияПараметров = ЗначенияПараметров;
Результат.ТекстЗапроса = ТекстЗапроса;
Возврат Результат;
КонецФункции
Процедура УстановитьПараметрЗапросаТипыНалогообложенияНДСОблагаемые(Запрос) Экспорт
Если Запрос.Параметры.Свойство("ТипыНалогообложенияНДСОблагаемые") Тогда
Возврат;
КонецЕсли;
Запрос.УстановитьПараметр("ТипыНалогообложенияНДСОблагаемые", УчетНДСУП.ВидыДеятельностиНДСПринимаетсяКВозмещению());
КонецПроцедуры
Функция ТекстЗапросаВтСтрокиТоваров(Запрос, ТекстыЗапроса)
ИмяРегистра = "ВтСтрокиТоваров";
ТекстЗапроса = "
|ВЫБРАТЬ
| ТаблицаТоваров.Ссылка КАК Ссылка,
| ТаблицаТоваров.АналитикаУчетаНоменклатуры КАК АналитикаУчетаНоменклатуры,
| ТаблицаТоваров.АналитикаУчетаНаборов КАК АналитикаУчетаНаборов,
| ТаблицаТоваров.Упаковка КАК Упаковка,
| ТаблицаТоваров.НоменклатураПартнера КАК НоменклатураПартнера,
| ТаблицаТоваров.Цена КАК Цена,
| МАКСИМУМ(ТаблицаТоваров.НомерСтроки) КАК НомерСтроки
|
|ПОМЕСТИТЬ ВтСтрокиТоваров
|ИЗ
| ДанныеДокументаТаблицаТовары КАК ТаблицаТоваров
|
|СГРУППИРОВАТЬ ПО
| ТаблицаТоваров.Ссылка,
| ТаблицаТоваров.АналитикаУчетаНоменклатуры,
| ТаблицаТоваров.АналитикаУчетаНаборов,
| ТаблицаТоваров.Упаковка,
| ТаблицаТоваров.НоменклатураПартнера,
| ТаблицаТоваров.Цена
|
|ИНДЕКСИРОВАТЬ ПО
| Ссылка,
| АналитикаУчетаНоменклатуры,
| АналитикаУчетаНаборов,
| Упаковка,
| Цена
|";
ТекстыЗапроса.Добавить(ТекстЗапроса, ИмяРегистра);
Возврат ТекстЗапроса;
КонецФункции
Функция ТекстЗапросаВтВидыЗапасовРабот(Запрос, ТекстыЗапроса)
ИмяРегистра = "ВтВидыЗапасовРабот";
ТекстЗапроса = "
|ВЫБРАТЬ РАЗЛИЧНЫЕ
| ТаблицаТоваров.Ссылка КАК Ссылка,
| ТаблицаТоваров.АналитикаУчетаНоменклатуры КАК АналитикаУчетаНоменклатуры
|ПОМЕСТИТЬ ВтВидыЗапасовРабот
|ИЗ
| ДанныеДокументаТаблицаВидыЗапасов КАК ТаблицаТоваров
|ГДЕ
| ТаблицаТоваров.АналитикаУчетаНоменклатурыНоменклатураТипНоменклатуры = ЗНАЧЕНИЕ(Перечисление.ТипыНоменклатуры.Работа)
|
|ИНДЕКСИРОВАТЬ ПО
| Ссылка,
| АналитикаУчетаНоменклатуры
|";
ТекстыЗапроса.Добавить(ТекстЗапроса, ИмяРегистра);
Возврат ТекстЗапроса;
КонецФункции
Процедура ОтразитьВУчетеНДС(Запрос, ТекстыЗапроса, Регистры, ДокументОбъект)
Если Не УчетНДСУП.ТребуетсяПроведениеПоРегистрамНДС(Регистры) Тогда
Возврат;
КонецЕсли;
Если НЕ (ДокументОбъект.Статус <> Перечисления.СтатусыРеализацийТоваровУслуг.КПредоплате
И (ДокументОбъект.ХозяйственнаяОперация = Перечисления.ХозяйственныеОперации.РеализацияКлиенту
ИЛИ ДокументОбъект.ХозяйственнаяОперация = Перечисления.ХозяйственныеОперации.РеализацияБезПереходаПраваСобственности
ИЛИ ДокументОбъект.ХозяйственнаяОперация = Перечисления.ХозяйственныеОперации.РеализацияЧерезКомиссионера
ИЛИ ДокументОбъект.ХозяйственнаяОперация = Перечисления.ХозяйственныеОперации.РеализацияЧерезКомиссионераБезПереходаПраваСобственности
ИЛИ ДокументОбъект.ХозяйственнаяОперация = Перечисления.ХозяйственныеОперации.РеализацияКлиентуРеглУчет)) Тогда
Возврат;
КонецЕсли;
Если НЕ ПроведениеДокументов.ЕстьТаблицаЗапроса("ВтСтрокиТоваров", ТекстыЗапроса) Тогда
ТекстЗапросаВтСтрокиТоваров(Запрос, ТекстыЗапроса);
КонецЕсли;
Если НЕ ПроведениеДокументов.ЕстьТаблицаЗапроса("ВтВидыЗапасовРабот", ТекстыЗапроса) Тогда
ТекстЗапросаВтВидыЗапасовРабот(Запрос, ТекстыЗапроса);
КонецЕсли;
ТекстЦенности = "
|ВЫБРАТЬ
| РеализацияТоваровУслуг.Дата КАК Период,
| РеализацияТоваровУслуг.Ссылка КАК Ссылка,
| РеализацияТоваровУслуг.ХозяйственнаяОперация КАК ХозяйственнаяОперация,
| РеализацияТоваровУслуг.Контрагент КАК Контрагент,
| РеализацияТоваровУслуг.Договор КАК Договор,
| РеализацияТоваровУслуг.Грузоотправитель КАК Грузоотправитель,
| РеализацияТоваровУслуг.Грузополучатель КАК Грузополучатель,
| РеализацияТоваровУслуг.Организация КАК Организация,
| РеализацияТоваровУслуг.Подразделение КАК Подразделение,
| РеализацияТоваровУслуг.Ссылка КАК ДокументРеализации,
| РеализацияТоваровУслуг.КлиентКонтрагент КАК ПокупательКомиссионногоТовара,
| &РеализацияЧерезКомиссионера КАК РеализацияЧерезКомиссионера,
| НЕОПРЕДЕЛЕНО КАК ДокументКорректировкиРеализации,
| ЛОЖЬ КАК ИсправлениеОшибок,
| ЛОЖЬ КАК КорректировкаПоСогласованиюСторон,
| ЛОЖЬ КАК РеализацияВРозницу,
| УслугиТЧ.ОбъектРасчетов КАК ОбъектРасчетов,
| РеализацияТоваровУслуг.НалогообложениеНДС КАК НалогообложениеНДС,
| УслугиТЧ.СтавкаНДС КАК СтавкаНДС,
| УслугиТЧ.Номенклатура КАК Номенклатура,
| УслугиТЧ.Характеристика КАК Характеристика,
| УслугиТЧ.Серия КАК Серия,
| УслугиТЧ.НоменклатураПартнера КАК НоменклатураПартнера,
| УслугиТЧ.НоменклатураНабора КАК НоменклатураНабора,
| УслугиТЧ.ХарактеристикаНабора КАК ХарактеристикаНабора,
| """" КАК Содержание,
| ВЫБОР
| КОГДА &ВыводитьБазовыеЕдиницыИзмерения
| ИЛИ УслугиТЧ.КоличествоУпаковок = 0
| ТОГДА УслугиТЧ.Количество
| ИНАЧЕ УслугиТЧ.КоличествоУпаковок
| КОНЕЦ КАК Количество,
| ВЫБОР
| КОГДА &ВыводитьБазовыеЕдиницыИзмерения
| ТОГДА УслугиТЧ.НоменклатураЕдиницаИзмерения
| ИНАЧЕ &ТекстЗапросаЕдиницаИзмеренияУслуги
| КОНЕЦ КАК ЕдиницаИзмерения,
| 0 КАК КоличествоПоРНПТ,
| 0 КАК СуммаАкциза,
| ЗНАЧЕНИЕ(Справочник.НомераГТД.ПустаяСсылка) КАК НомерГТД,
| ЗНАЧЕНИЕ(Справочник.КлассификаторТНВЭД.ПустаяСсылка) КАК КодТНВЭД,
| ЗНАЧЕНИЕ(Справочник.ВидыЗапасов.ПустаяСсылка) КАК ВидЗапасов,
| УслугиТЧ.НомерСтроки КАК НомерСтроки,
| УслугиТЧ.ИдентификаторСтроки КАК ИдентификаторСтроки,
| УслугиТЧ.ИдентификаторСтроки КАК ИдентификаторФинЗаписи,
| &НастройкаХозяйственнойОперации КАК НастройкаХозяйственнойОперации
|ИЗ
| ДанныеДокументаШапка КАК РеализацияТоваровУслуг
| ЛЕВОЕ СОЕДИНЕНИЕ ДанныеДокументаТаблицаТовары КАК УслугиТЧ
| ПО РеализацияТоваровУслуг.Ссылка = УслугиТЧ.Ссылка
|
| ЛЕВОЕ СОЕДИНЕНИЕ ВтВидыЗапасовРабот КАК ВидыЗапасов
| ПО УслугиТЧ.Ссылка = ВидыЗапасов.Ссылка
| И УслугиТЧ.АналитикаУчетаНоменклатуры = ВидыЗапасов.АналитикаУчетаНоменклатуры
|ГДЕ
| УслугиТЧ.НоменклатураТипНоменклатуры В (ЗНАЧЕНИЕ(Перечисление.ТипыНоменклатуры.Услуга),
| ЗНАЧЕНИЕ(Перечисление.ТипыНоменклатуры.Работа))
| И ВидыЗапасов.Ссылка ЕСТЬ NULL
| И ВЫБОР
| КОГДА НЕ УслугиТЧ.Ссылка ЕСТЬ NULL
| ТОГДА ИСТИНА
| КОНЕЦ
|
|ОБЪЕДИНИТЬ ВСЕ
|
|ВЫБРАТЬ
| РеализацияТоваровУслуг.Дата,
| РеализацияТоваровУслуг.Ссылка,
| РеализацияТоваровУслуг.ХозяйственнаяОперация,
| РеализацияТоваровУслуг.Контрагент,
| РеализацияТоваровУслуг.Договор,
| РеализацияТоваровУслуг.Грузоотправитель,
| РеализацияТоваровУслуг.Грузополучатель,
| РеализацияТоваровУслуг.Организация,
| РеализацияТоваровУслуг.Подразделение,
| РеализацияТоваровУслуг.Ссылка,
| РеализацияТоваровУслуг.КлиентКонтрагент,
| &РеализацияЧерезКомиссионера,
| НЕОПРЕДЕЛЕНО,
| ЛОЖЬ,
| ЛОЖЬ,
| ЛОЖЬ,
| ВидыЗапасовТЧ.ОбъектРасчетов,
| РеализацияТоваровУслуг.НалогообложениеНДС,
| ВидыЗапасовТЧ.СтавкаНДС,
| ВидыЗапасовТЧ.АналитикаУчетаНоменклатурыНоменклатура,
| ВидыЗапасовТЧ.АналитикаУчетаНоменклатурыХарактеристика,
| ВидыЗапасовТЧ.АналитикаУчетаНоменклатурыСерия,
| СтрокиТоваров.НоменклатураПартнера,
| ВидыЗапасовТЧ.АналитикаУчетаНаборовНоменклатураНабора,
| ВидыЗапасовТЧ.АналитикаУчетаНаборовХарактеристикаНабора,
| """",
| ВЫБОР
| КОГДА &ВыводитьБазовыеЕдиницыИзмерения
| ИЛИ ВидыЗапасовТЧ.КоличествоУпаковок = 0
| ТОГДА ВидыЗапасовТЧ.Количество
| ИНАЧЕ ВидыЗапасовТЧ.КоличествоУпаковок
| КОНЕЦ,
| ВЫБОР
| КОГДА &ВыводитьБазовыеЕдиницыИзмерения
| ТОГДА ВидыЗапасовТЧ.АналитикаУчетаНоменклатураНоменклатураЕдиницаИзмерения
| ИНАЧЕ &ТекстЗапросаЕдиницаИзмерения
| КОНЕЦ,
| ВидыЗапасовТЧ.КоличествоПоРНПТ,
| ВидыЗапасовТЧ.СуммаАкциза,
| ВидыЗапасовТЧ.НомерГТД,
| ВидыЗапасовТЧ.КодТНВЭД,
| ВидыЗапасовТЧ.ВидЗапасов,
| СтрокиТоваров.НомерСтроки,
| ВидыЗапасовТЧ.ИдентификаторСтроки,
| ВидыЗапасовТЧ.ИдентификаторСтроки,
| &НастройкаХозяйственнойОперации
|ИЗ
| ДанныеДокументаШапка КАК РеализацияТоваровУслуг
|
| ЛЕВОЕ СОЕДИНЕНИЕ ДанныеДокументаТаблицаВидыЗапасов КАК ВидыЗапасовТЧ
| ПО РеализацияТоваровУслуг.Ссылка = ВидыЗапасовТЧ.Ссылка
|
| ЛЕВОЕ СОЕДИНЕНИЕ ВтСтрокиТоваров КАК СтрокиТоваров
| ПО ВидыЗапасовТЧ.Ссылка = СтрокиТоваров.Ссылка
| И ВидыЗапасовТЧ.АналитикаУчетаНоменклатуры = СтрокиТоваров.АналитикаУчетаНоменклатуры
| И ВидыЗапасовТЧ.АналитикаУчетаНаборов = СтрокиТоваров.АналитикаУчетаНаборов
| И ВидыЗапасовТЧ.Упаковка = СтрокиТоваров.Упаковка
| И ВидыЗапасовТЧ.Цена = СтрокиТоваров.Цена
|
|ГДЕ
| ВЫБОР
| КОГДА РеализацияТоваровУслуг.ВернутьМногооборотнуюТару
| ТОГДА ВидыЗапасовТЧ.АналитикаУчетаНоменклатурыНоменклатураТипНоменклатуры <> ЗНАЧЕНИЕ(Перечисление.ТипыНоменклатуры.МногооборотнаяТара)
| ИНАЧЕ ИСТИНА
| КОНЕЦ
| И ВЫБОР
| КОГДА НЕ ВидыЗапасовТЧ.Ссылка ЕСТЬ NULL
| ТОГДА ИСТИНА
| КОНЕЦ";
ТекстЦенности = СтрЗаменить(
ТекстЦенности,
"&ТекстЗапросаЕдиницаИзмеренияУслуги",
Справочники.УпаковкиЕдиницыИзмерения.ТекстЗапросаЗначениеРеквизитаЕдиницыИзмерения(
"Ссылка",
"УслугиТЧ.Упаковка",
"УслугиТЧ.Номенклатура"));
ТекстЦенности = СтрЗаменить(
ТекстЦенности,
"&ТекстЗапросаЕдиницаИзмерения",
Справочники.УпаковкиЕдиницыИзмерения.ТекстЗапросаЗначениеРеквизитаЕдиницыИзмерения(
"Ссылка",
"ВидыЗапасовТЧ.Упаковка",
"ВидыЗапасовТЧ.АналитикаУчетаНоменклатуры.Номенклатура"));
ТекстЦенности = СтрЗаменить(
ТекстЦенности,
"&РеализацияЧерезКомиссионера",
КомиссионнаяТорговляСервер.ТекстЗапросаРеализацияЧерезКомиссионера("РеализацияТоваровУслуг.Ссылка.ХозяйственнаяОперация"));
УчетНДСУП.ОтразитьРеализациюКлиенту(Запрос, ТекстыЗапроса, Регистры, ТекстЦенности);
КонецПроцедуры
Процедура ДобавитьТекстыОтраженияВзаиморасчетов(Запрос, ТекстыЗапроса, Регистры, ДокументОбъект)
#Область КурсыВалютДокумента
ИмяРегистра = "ВТ_ДанныеШапкиДокументаОбъединение";
ТекстЗапросаДанныеШапкиДокументаОбъединение =
"ВЫБРАТЬ
| ДанныеШапкиДокумента.Дата КАК Дата,
| ДанныеШапкиДокумента.Ссылка КАК Ссылка,
| ДанныеШапкиДокумента.Организация КАК Организация,
| ДанныеШапкиДокумента.Валюта КАК Валюта,
| ДанныеШапкиДокумента.ВалютаВзаиморасчетов КАК ВалютаВзаиморасчетов
|ПОМЕСТИТЬ ВТ_ДанныеШапкиДокументаОбъединение
|ИЗ
| (ВЫБРАТЬ
| ДанныеДокументаШапка.ДатаПереходаПраваСобственности КАК Дата,
| ДанныеДокументаШапка.Ссылка КАК Ссылка,
| ДанныеДокументаШапка.Организация КАК Организация,
| ДанныеДокументаШапка.Валюта КАК Валюта,
| ДанныеДокументаШапка.ВалютаВзаиморасчетов КАК ВалютаВзаиморасчетов
| ИЗ
| ДанныеДокументаШапка КАК ДанныеДокументаШапка
| ГДЕ
| ДанныеДокументаШапка.ХозяйственнаяОперация В
| (ЗНАЧЕНИЕ(Перечисление.ХозяйственныеОперации.РеализацияБезПереходаПраваСобственности),
| ЗНАЧЕНИЕ(Перечисление.ХозяйственныеОперации.РеализацияЧерезКомиссионераБезПереходаПраваСобственности))
| И ДанныеДокументаШапка.Статус = ЗНАЧЕНИЕ(Перечисление.СтатусыРеализацийТоваровУслуг.Отгружено)
|
| ОБЪЕДИНИТЬ ВСЕ
|
| ВЫБРАТЬ
| ДанныеДокументаШапка.Дата КАК Дата,
| ДанныеДокументаШапка.Ссылка КАК Ссылка,
| ДанныеДокументаШапка.Организация КАК Организация,
| ДанныеДокументаШапка.Валюта КАК Валюта,
| ДанныеДокументаШапка.ВалютаВзаиморасчетов КАК ВалютаВзаиморасчетов
| ИЗ
| ДанныеДокументаШапка КАК ДанныеДокументаШапка) КАК ДанныеШапкиДокумента";
ТекстыЗапроса.Добавить(ТекстЗапросаДанныеШапкиДокументаОбъединение, ИмяРегистра);
ИмяРегистра = "ВременнаяТаблицаКурсыВалютДокумента";
ТекстЗапросаКурсыВалютДокументаНаправленияДеятельности =
"ВЫБРАТЬ РАЗЛИЧНЫЕ
| ДанныеШапкиДокумента.Ссылка КАК Ссылка,
| ДанныеШапкиДокумента.Организация КАК Организация,
| ДанныеШапкиДокумента.Дата КАК ДатаКурса,
| ОбъектыРасчетовДокумента.ОбъектРасчетов КАК ОбъектРасчетов,
| ДанныеШапкиДокумента.Валюта КАК ВалютаДокумента,
| ДанныеШапкиДокумента.ВалютаВзаиморасчетов КАК ВалютаВзаиморасчетов
|ИЗ
| (ВЫБРАТЬ
| ЭтапыГрафикаОплаты.ОбъектРасчетов КАК ОбъектРасчетов
| ИЗ
| ДанныеДокументаТаблицаЭтапыГрафикаОплаты КАК ЭтапыГрафикаОплаты
|
| ОБЪЕДИНИТЬ ВСЕ
|
| ВЫБРАТЬ
| РасшифровкаПлатежа.ОбъектРасчетов КАК ОбъектРасчетов
| ИЗ
| ДанныеДокументаТаблицаРасшифровкаПлатежа КАК РасшифровкаПлатежа
|
| ОБЪЕДИНИТЬ ВСЕ
|
| ВЫБРАТЬ
| ДанныеДокументаШапка.ОбъектРасчетовУпр КАК ОбъектРасчетов
| ИЗ
| ДанныеДокументаШапка КАК ДанныеДокументаШапка
|
| ОБЪЕДИНИТЬ ВСЕ
|
| ВЫБРАТЬ
| ТаблицаТовары.ОбъектРасчетов КАК ОбъектРасчетов
| ИЗ
| ДанныеДокументаТаблицаТовары КАК ТаблицаТовары
|
| ОБЪЕДИНИТЬ ВСЕ
|
| ВЫБРАТЬ
| ТаблицаТовары.ЗаказКлиента.ОбъектРасчетов КАК ОбъектРасчетов
| ИЗ
| ДанныеДокументаТаблицаТовары КАК ТаблицаТовары
| ВНУТРЕННЕЕ СОЕДИНЕНИЕ ДанныеДокументаШапка КАК ДанныеДокументаШапка
| ПО ДанныеДокументаШапка.Ссылка = ТаблицаТовары.Ссылка
| И ДанныеДокументаШапка.РеализацияПоЗаказам
|
| ОБЪЕДИНИТЬ ВСЕ
|
| ВЫБРАТЬ
| ДанныеДокументаШапка.Договор.ОбъектРасчетов КАК ОбъектРасчетов
| ИЗ
| ДанныеДокументаШапка КАК ДанныеДокументаШапка
| ГДЕ
| ДанныеДокументаШапка.ПорядокРасчетов = ЗНАЧЕНИЕ(Перечисление.ПорядокРасчетов.ПоДоговорамНакладным)) КАК
| ОбъектыРасчетовДокумента
| ВНУТРЕННЕЕ СОЕДИНЕНИЕ ВТ_ДанныеШапкиДокументаОбъединение КАК ДанныеШапкиДокумента
| ПО ИСТИНА
|ГДЕ
| ОбъектыРасчетовДокумента.ОбъектРасчетов <> ЗНАЧЕНИЕ(Справочник.ОбъектыРасчетов.ПустаяСсылка)";
ТекстЗапросаКурсыВалютДокумента = ВзаиморасчетыСервер.ПолучитьТаблицуКурсовВалютНаправленийДеятельности(
ТекстЗапросаКурсыВалютДокументаНаправленияДеятельности);
ТекстыЗапроса.Добавить(ТекстЗапросаКурсыВалютДокумента, ИмяРегистра);
#КонецОбласти
Если НЕ Запрос.Параметры.Свойство("НоваяАрхитектураВзаиморасчетов") Тогда
Запрос.УстановитьПараметр("НоваяАрхитектураВзаиморасчетов", Константы.НоваяАрхитектураВзаиморасчетов.Получить());
КонецЕсли;
#Область Продажа
Если ДокументОбъект.ХозяйственнаяОперация = Перечисления.ХозяйственныеОперации.РеализацияКлиенту
Или ДокументОбъект.ХозяйственнаяОперация = Перечисления.ХозяйственныеОперации.ПереходПраваСобственности
Или ДокументОбъект.ХозяйственнаяОперация = Перечисления.ХозяйственныеОперации.РеализацияКлиентуРеглУчет
Или ДокументОбъект.ХозяйственнаяОперация = Перечисления.ХозяйственныеОперации.РеализацияБезПереходаПраваСобственности
Или ДокументОбъект.ХозяйственнаяОперация = Перечисления.ХозяйственныеОперации.РеализацияЧерезКомиссионера
Или ДокументОбъект.ХозяйственнаяОперация = Перечисления.ХозяйственныеОперации.РеализацияЧерезКомиссионераБезПереходаПраваСобственности Тогда
ТекстПродажа =
"ВЫБРАТЬ
| Таблица.Ссылка КАК Ссылка,
| ДанныеДокументаШапка.Организация КАК Организация,
| ВЫБОР
| КОГДА ДанныеДокументаШапка.ХозяйственнаяОперация В
| (ЗНАЧЕНИЕ(Перечисление.ХозяйственныеОперации.РеализацияЧерезКомиссионера),
| ЗНАЧЕНИЕ(Перечисление.ХозяйственныеОперации.РеализацияЧерезКомиссионераБезПереходаПраваСобственности))
| И &ВестиРасчетыЧерезКонечныхПокупателей
| ТОГДА ДанныеДокументаШапка.КлиентПартнер
| ИНАЧЕ ДанныеДокументаШапка.Партнер
| КОНЕЦ КАК Партнер,
| Таблица.ОбъектРасчетов КАК ОбъектРасчетов,
| Таблица.ДатаПлатежа КАК ДатаПлатежа,
| Таблица.Заказ КАК ЗаказПродажи,
| ВЫБОР
| КОГДА &ЭтоПереходПраваСобственностиБезЗаказа
| ТОГДА ЛОЖЬ
| ИНАЧЕ ДанныеДокументаШапка.РеализацияПоЗаказам
| КОНЕЦ КАК НакладнаяПоЗаказам,
| ВЫБОР
| КОГДА ДанныеДокументаШапка.Статус = ЗНАЧЕНИЕ(Перечисление.СтатусыРеализацийТоваровУслуг.Отгружено)
| И ДанныеДокументаШапка.ХозяйственнаяОперация В (ЗНАЧЕНИЕ(Перечисление.ХозяйственныеОперации.РеализацияКлиенту),
| ЗНАЧЕНИЕ(Перечисление.ХозяйственныеОперации.ПереходПраваСобственности),
| ЗНАЧЕНИЕ(Перечисление.ХозяйственныеОперации.РеализацияКлиентуРеглУчет),
| ЗНАЧЕНИЕ(Перечисление.ХозяйственныеОперации.РеализацияБезПереходаПраваСобственности),
| ЗНАЧЕНИЕ(Перечисление.ХозяйственныеОперации.РеализацияЧерезКомиссионера),
| ЗНАЧЕНИЕ(Перечисление.ХозяйственныеОперации.РеализацияЧерезКомиссионераБезПереходаПраваСобственности))
| ТОГДА Таблица.СуммаВзаиморасчетов + Таблица.СуммаВзаиморасчетовПоТаре
| ИНАЧЕ 0
| КОНЕЦ КАК СуммаВзаиморасчетов,
| ВЫБОР
| КОГДА ДанныеДокументаШапка.Статус = ЗНАЧЕНИЕ(Перечисление.СтатусыРеализацийТоваровУслуг.Отгружено)
| И ДанныеДокументаШапка.ХозяйственнаяОперация В (ЗНАЧЕНИЕ(Перечисление.ХозяйственныеОперации.РеализацияКлиенту),
| ЗНАЧЕНИЕ(Перечисление.ХозяйственныеОперации.ПереходПраваСобственности),
| ЗНАЧЕНИЕ(Перечисление.ХозяйственныеОперации.РеализацияКлиентуРеглУчет),
| ЗНАЧЕНИЕ(Перечисление.ХозяйственныеОперации.РеализацияБезПереходаПраваСобственности),
| ЗНАЧЕНИЕ(Перечисление.ХозяйственныеОперации.РеализацияЧерезКомиссионера),
| ЗНАЧЕНИЕ(Перечисление.ХозяйственныеОперации.РеализацияЧерезКомиссионераБезПереходаПраваСобственности))
| ТОГДА Таблица.СуммаВзаиморасчетовПоТаре
| ИНАЧЕ 0
| КОНЕЦ КАК СуммаВзаиморасчетовПоТаре,
| ВЫБОР
| КОГДА ДанныеДокументаШапка.Статус = ЗНАЧЕНИЕ(Перечисление.СтатусыРеализацийТоваровУслуг.Отгружено)
| И ДанныеДокументаШапка.ХозяйственнаяОперация В (ЗНАЧЕНИЕ(Перечисление.ХозяйственныеОперации.РеализацияКлиенту),
| ЗНАЧЕНИЕ(Перечисление.ХозяйственныеОперации.ПереходПраваСобственности),
| ЗНАЧЕНИЕ(Перечисление.ХозяйственныеОперации.РеализацияКлиентуРеглУчет),
| ЗНАЧЕНИЕ(Перечисление.ХозяйственныеОперации.РеализацияБезПереходаПраваСобственности),
| ЗНАЧЕНИЕ(Перечисление.ХозяйственныеОперации.РеализацияЧерезКомиссионера),
| ЗНАЧЕНИЕ(Перечисление.ХозяйственныеОперации.РеализацияЧерезКомиссионераБезПереходаПраваСобственности))
| ТОГДА Таблица.СуммаПлатежа + Таблица.СуммаЗалогаЗаТару
| ИНАЧЕ 0
| КОНЕЦ КАК Сумма,
| ДанныеДокументаШапка.ПорядокРасчетов КАК ПорядокРасчетов,
| ВЫБОР
| КОГДА ДанныеДокументаШапка.ХозяйственнаяОперация В
| (ЗНАЧЕНИЕ(Перечисление.ХозяйственныеОперации.РеализацияБезПереходаПраваСобственности),
| ЗНАЧЕНИЕ(Перечисление.ХозяйственныеОперации.РеализацияЧерезКомиссионераБезПереходаПраваСобственности))
| И ДанныеДокументаШапка.Статус = ЗНАЧЕНИЕ(Перечисление.СтатусыРеализацийТоваровУслуг.Отгружено)
| ТОГДА ДанныеДокументаШапка.ДатаПереходаПраваСобственности
| ИНАЧЕ ДанныеДокументаШапка.Дата
| КОНЕЦ КАК ДатаРегистратора,
| ДанныеДокументаШапка.Номер КАК НомерРегистратора,
| ДанныеДокументаШапка.ВалютаВзаиморасчетов КАК ВалютаВзаиморасчетов,
| ДанныеДокументаШапка.ХозяйственнаяОперация КАК ХозяйственнаяОперация,
| ВЫБОР
| КОГДА ДанныеДокументаШапка.ХозяйственнаяОперация В
| (ЗНАЧЕНИЕ(Перечисление.ХозяйственныеОперации.РеализацияБезПереходаПраваСобственности),
| ЗНАЧЕНИЕ(Перечисление.ХозяйственныеОперации.РеализацияЧерезКомиссионераБезПереходаПраваСобственности))
| И ДанныеДокументаШапка.Статус = ЗНАЧЕНИЕ(Перечисление.СтатусыРеализацийТоваровУслуг.Отгружено)
| ТОГДА ДанныеДокументаШапка.ДатаПереходаПраваСобственности
| ИНАЧЕ ДанныеДокументаШапка.Дата
| КОНЕЦ КАК ДатаКурса,
| ДанныеДокументаШапка.Валюта КАК ВалютаДокумента,
| Таблица.ВариантОплаты КАК ВариантОплаты,
| Таблица.СверхЗаказа КАК СверхЗаказа,
| Неопределено КАК СвязанныйДокумент
|ИЗ
| ДанныеДокументаТаблицаЭтапыГрафикаОплаты КАК Таблица
| ЛЕВОЕ СОЕДИНЕНИЕ ДанныеДокументаШапка КАК ДанныеДокументаШапка
| ПО Таблица.Ссылка = ДанныеДокументаШапка.Ссылка";
Иначе
ТекстПродажа = "";
КонецЕсли;
#КонецОбласти
#Область УвеличениеПланаОплат
Если ДокументОбъект.ХозяйственнаяОперация = Перечисления.ХозяйственныеОперации.РеализацияКлиенту
Или ДокументОбъект.ХозяйственнаяОперация = Перечисления.ХозяйственныеОперации.ПереходПраваСобственности
Или ДокументОбъект.ХозяйственнаяОперация = Перечисления.ХозяйственныеОперации.РеализацияКлиентуРеглУчет
Или ДокументОбъект.ХозяйственнаяОперация = Перечисления.ХозяйственныеОперации.РеализацияБезПереходаПраваСобственности
Или ДокументОбъект.ХозяйственнаяОперация = Перечисления.ХозяйственныеОперации.РеализацияЧерезКомиссионера
Или ДокументОбъект.ХозяйственнаяОперация = Перечисления.ХозяйственныеОперации.РеализацияЧерезКомиссионераБезПереходаПраваСобственности Тогда
ТекстПланированиеОплат =
"ВЫБРАТЬ
| Таблица.Ссылка КАК Ссылка,
| ДанныеДокументаШапка.Организация КАК Организация,
| ВЫБОР
| КОГДА ДанныеДокументаШапка.ХозяйственнаяОперация В
| (ЗНАЧЕНИЕ(Перечисление.ХозяйственныеОперации.РеализацияЧерезКомиссионера),
| ЗНАЧЕНИЕ(Перечисление.ХозяйственныеОперации.РеализацияЧерезКомиссионераБезПереходаПраваСобственности))
| И &ВестиРасчетыЧерезКонечныхПокупателей
| ТОГДА ДанныеДокументаШапка.КлиентПартнер
| ИНАЧЕ ДанныеДокументаШапка.Партнер
| КОНЕЦ КАК Партнер,
| Таблица.ОбъектРасчетов КАК ОбъектРасчетов,
| ВЫБОР
| КОГДА ДанныеДокументаШапка.ХозяйственнаяОперация В
| (ЗНАЧЕНИЕ(Перечисление.ХозяйственныеОперации.РеализацияБезПереходаПраваСобственности),
| ЗНАЧЕНИЕ(Перечисление.ХозяйственныеОперации.РеализацияЧерезКомиссионераБезПереходаПраваСобственности))
| И ДанныеДокументаШапка.Статус = ЗНАЧЕНИЕ(Перечисление.СтатусыРеализацийТоваровУслуг.Отгружено)
| ТОГДА ДанныеДокументаШапка.ДатаПереходаПраваСобственности
| ИНАЧЕ ДанныеДокументаШапка.Дата
| КОНЕЦ КАК ДатаРегистратора,
| ДанныеДокументаШапка.Номер КАК НомерРегистратора,
| ДанныеДокументаШапка.ПорядокРасчетов КАК ПорядокРасчетов,
| ДанныеДокументаШапка.ВалютаВзаиморасчетов КАК ВалютаВзаиморасчетов,
| ДанныеДокументаШапка.Валюта КАК ВалютаДокумента,
| ДанныеДокументаШапка.ХозяйственнаяОперация КАК ХозяйственнаяОперация,
| ДанныеДокументаШапка.ФормаОплаты КАК ФормаОплаты,
| Таблица.ДатаПлатежа КАК ДатаПлатежа,
| Таблица.ВариантОплаты КАК ВариантОплаты,
| Таблица.СуммаВзаиморасчетов + Таблица.СуммаВзаиморасчетовПоТаре КАК КОплате,
| ВЫБОР
| КОГДА ДанныеДокументаШапка.Статус <> ЗНАЧЕНИЕ(Перечисление.СтатусыРеализацийТоваровУслуг.КПредоплате)
| И Таблица.ВариантОплаты = ЗНАЧЕНИЕ(Перечисление.ВариантыКонтроляОплатыКлиентом.ПредоплатаДоОтгрузки)
| И НЕ &РеализацияЧерезКомиссионера
| ТОГДА ЛОЖЬ
| ИНАЧЕ ИСТИНА
| КОНЕЦ КАК ИсключатьПриКонтроле,
| ВЫБОР
| КОГДА &ЭтоПереходПраваСобственностиБезЗаказа
| ТОГДА ЛОЖЬ
| ИНАЧЕ ДанныеДокументаШапка.РеализацияПоЗаказам
| КОНЕЦ КАК НакладнаяПоЗаказам,
| Таблица.Заказ КАК ЗаказПродажи,
| Таблица.СверхЗаказа КАК СверхЗаказа,
| Неопределено КАК СвязанныйДокумент
|ИЗ
| ДанныеДокументаТаблицаЭтапыГрафикаОплаты КАК Таблица
| ЛЕВОЕ СОЕДИНЕНИЕ ДанныеДокументаШапка КАК ДанныеДокументаШапка
| ПО Таблица.Ссылка = ДанныеДокументаШапка.Ссылка
|ГДЕ
| ДанныеДокументаШапка.Статус = ЗНАЧЕНИЕ(Перечисление.СтатусыРеализацийТоваровУслуг.Отгружено)
| ИЛИ ДанныеДокументаШапка.Статус <> ЗНАЧЕНИЕ(Перечисление.СтатусыРеализацийТоваровУслуг.Отгружено)
| И ДанныеДокументаШапка.ХозяйственнаяОперация В (ЗНАЧЕНИЕ(Перечисление.ХозяйственныеОперации.РеализацияКлиенту),
| ЗНАЧЕНИЕ(Перечисление.ХозяйственныеОперации.РеализацияКлиентуРеглУчет),
| ЗНАЧЕНИЕ(Перечисление.ХозяйственныеОперации.РеализацияБезПереходаПраваСобственности),
| ЗНАЧЕНИЕ(Перечисление.ХозяйственныеОперации.РеализацияЧерезКомиссионера),
| ЗНАЧЕНИЕ(Перечисление.ХозяйственныеОперации.РеализацияЧерезКомиссионераБезПереходаПраваСобственности))
| И (Таблица.Заказ = Неопределено
| И НЕ ЕСТЬNULL(ДанныеДокументаШапка.Договор.ЗаданГрафикИсполнения,ЛОЖЬ)
| ИЛИ ДанныеДокументаШапка.ПорядокРасчетов = ЗНАЧЕНИЕ(Перечисление.ПорядокРасчетов.ПоНакладным))";
Иначе
ТекстПланированиеОплат = "";
КонецЕсли;
#КонецОбласти
#Область ТекстТовары
Если ДокументОбъект.ХозяйственнаяОперация = Перечисления.ХозяйственныеОперации.РеализацияКлиенту
Или ДокументОбъект.ХозяйственнаяОперация = Перечисления.ХозяйственныеОперации.ПереходПраваСобственности
Или ДокументОбъект.ХозяйственнаяОперация = Перечисления.ХозяйственныеОперации.РеализацияКлиентуРеглУчет
Или ДокументОбъект.ХозяйственнаяОперация = Перечисления.ХозяйственныеОперации.РеализацияБезПереходаПраваСобственности
Или ДокументОбъект.ХозяйственнаяОперация = Перечисления.ХозяйственныеОперации.ПередачаНаКомиссию
Или ДокументОбъект.ХозяйственнаяОперация = Перечисления.ХозяйственныеОперации.РеализацияЧерезКомиссионера
Или ДокументОбъект.ХозяйственнаяОперация = Перечисления.ХозяйственныеОперации.РеализацияЧерезКомиссионераБезПереходаПраваСобственности Тогда
ТекстТовары =
"ВЫБРАТЬ
| Таблица.Ссылка КАК Ссылка,
| ДанныеДокументаШапка.Организация КАК Организация,
| ВЫБОР
| КОГДА ДанныеДокументаШапка.ХозяйственнаяОперация В
| (ЗНАЧЕНИЕ(Перечисление.ХозяйственныеОперации.РеализацияЧерезКомиссионера),
| ЗНАЧЕНИЕ(Перечисление.ХозяйственныеОперации.РеализацияЧерезКомиссионераБезПереходаПраваСобственности))
| И &ВестиРасчетыЧерезКонечныхПокупателей
| ТОГДА ДанныеДокументаШапка.КлиентПартнер
| ИНАЧЕ ДанныеДокументаШапка.Партнер
| КОНЕЦ КАК Партнер,
| ДанныеДокументаШапка.Контрагент КАК Контрагент,
| ДанныеДокументаШапка.Договор КАК Договор,
| ДанныеДокументаШапка.НаправлениеДеятельности КАК НаправлениеДеятельности,
| Таблица.ОбъектРасчетов КАК ОбъектРасчетов,
| ДанныеДокументаШапка.Дата КАК ДатаОтгрузки,
| ВЫБОР
| КОГДА ДанныеДокументаШапка.ХозяйственнаяОперация В
| (ЗНАЧЕНИЕ(Перечисление.ХозяйственныеОперации.РеализацияБезПереходаПраваСобственности),
| ЗНАЧЕНИЕ(Перечисление.ХозяйственныеОперации.РеализацияЧерезКомиссионераБезПереходаПраваСобственности))
| И НЕ ДанныеДокументаШапка.Статус В (ЗНАЧЕНИЕ(Перечисление.СтатусыРеализацийТоваровУслуг.КПредоплате),
| ЗНАЧЕНИЕ(Перечисление.СтатусыРеализацийТоваровУслуг.Отгружено))
| ТОГДА Таблица.СуммаВзаиморасчетов
| ИНАЧЕ 0
| КОНЕЦ КАК УвеличитьОтгружается,
| ВЫБОР
| КОГДА ДанныеДокументаШапка.ХозяйственнаяОперация В (ЗНАЧЕНИЕ(Перечисление.ХозяйственныеОперации.РеализацияКлиенту),
| ЗНАЧЕНИЕ(Перечисление.ХозяйственныеОперации.ПереходПраваСобственности),
| ЗНАЧЕНИЕ(Перечисление.ХозяйственныеОперации.РеализацияКлиентуРеглУчет),
| ЗНАЧЕНИЕ(Перечисление.ХозяйственныеОперации.РеализацияЧерезКомиссионера))
| ИЛИ ДанныеДокументаШапка.ХозяйственнаяОперация В
| (ЗНАЧЕНИЕ(Перечисление.ХозяйственныеОперации.РеализацияБезПереходаПраваСобственности),
| ЗНАЧЕНИЕ(Перечисление.ХозяйственныеОперации.РеализацияЧерезКомиссионераБезПереходаПраваСобственности))
| И ДанныеДокументаШапка.Статус = ЗНАЧЕНИЕ(Перечисление.СтатусыРеализацийТоваровУслуг.Отгружено)
| ТОГДА Таблица.СуммаВзаиморасчетов
| ИНАЧЕ 0
| КОНЕЦ КАК УменьшитьОтгружается,
| Таблица.СуммаВзаиморасчетов КАК УвеличитьКОтгрузке,
| Таблица.СуммаВзаиморасчетов КАК УменьшитьКОтгрузке,
| ВЫБОР
| КОГДА ДанныеДокументаШапка.ХозяйственнаяОперация В
| (ЗНАЧЕНИЕ(Перечисление.ХозяйственныеОперации.РеализацияЧерезКомиссионера),
| ЗНАЧЕНИЕ(Перечисление.ХозяйственныеОперации.ПередачаНаКомиссию),
| ЗНАЧЕНИЕ(Перечисление.ХозяйственныеОперации.РеализацияЧерезКомиссионераБезПереходаПраваСобственности))
| ТОГДА 0
| ИНАЧЕ Таблица.СуммаВзаиморасчетов
| КОНЕЦ КАК СуммаВзаиморасчетов,
| Таблица.ЗаказКлиента КАК ЗаказПродажи,
| ВЫБОР
| КОГДА Таблица.НоменклатураТипНоменклатуры = ЗНАЧЕНИЕ(Перечисление.ТипыНоменклатуры.МногооборотнаяТара)
| И ДанныеДокументаШапка.ТребуетсяЗалогЗаТару
| ТОГДА Таблица.СуммаВзаиморасчетов
| ИНАЧЕ 0
| КОНЕЦ КАК ЗалогЗаТару,
| Таблица.КодСтроки = 0 КАК СверхЗаказа,
| ВЫБОР
| КОГДА &ЭтоПереходПраваСобственностиБезЗаказа
| ТОГДА ЛОЖЬ
| ИНАЧЕ ДанныеДокументаШапка.РеализацияПоЗаказам
| КОНЕЦ КАК НакладнаяПоЗаказам,
| ДанныеДокументаШапка.ПорядокРасчетов КАК ПорядокРасчетов,
| ДанныеДокументаШапка.Дата КАК ДатаРегистратора,
| ДанныеДокументаШапка.Номер КАК НомерРегистратора,
| ДанныеДокументаШапка.ВалютаВзаиморасчетов КАК ВалютаВзаиморасчетов,
| ДанныеДокументаШапка.ХозяйственнаяОперация КАК ХозяйственнаяОперация,
| ДанныеДокументаШапка.Валюта КАК ВалютаДокумента
|ИЗ
| ДанныеДокументаТаблицаТовары КАК Таблица
| ЛЕВОЕ СОЕДИНЕНИЕ ДанныеДокументаШапка КАК ДанныеДокументаШапка
| ПО Таблица.Ссылка = ДанныеДокументаШапка.Ссылка
|ГДЕ
| (Таблица.НоменклатураТипНоменклатуры <> ЗНАЧЕНИЕ(Перечисление.ТипыНоменклатуры.МногооборотнаяТара)
| ИЛИ ДанныеДокументаШапка.ТребуетсяЗалогЗаТару
| ИЛИ НЕ ДанныеДокументаШапка.ВернутьМногооборотнуюТару)";
Иначе
ТекстТовары = "";
КонецЕсли;
#КонецОбласти
#Область ЗачетАванса
ТекстЗачетАванса =
"ВЫБРАТЬ
| Таблица.Ссылка КАК Ссылка,
| ДанныеДокументаШапка.Организация КАК Организация,
| ВЫБОР
| КОГДА ДанныеДокументаШапка.ХозяйственнаяОперация В
| (ЗНАЧЕНИЕ(Перечисление.ХозяйственныеОперации.РеализацияЧерезКомиссионера),
| ЗНАЧЕНИЕ(Перечисление.ХозяйственныеОперации.РеализацияЧерезКомиссионераБезПереходаПраваСобственности))
| И &ВестиРасчетыЧерезКонечныхПокупателей
| ТОГДА ДанныеДокументаШапка.КлиентПартнер
| ИНАЧЕ ДанныеДокументаШапка.Партнер
| КОНЕЦ КАК Партнер,
| ОбъектыРасчетов.Ссылка КАК ОбъектРасчетовПриемник,
| Таблица.ОбъектРасчетов КАК ОбъектРасчетовИсточник,
| ДанныеДокументаШапка.ВалютаВзаиморасчетов КАК ВалютаВзаиморасчетов,
| Таблица.СуммаВзаиморасчетов КАК СуммаВзаиморасчетов,
| ДанныеДокументаШапка.Валюта КАК ВалютаДокумента,
| Таблица.Сумма КАК Сумма,
| ВЫБОР
| КОГДА ДанныеДокументаШапка.ХозяйственнаяОперация В
| (ЗНАЧЕНИЕ(Перечисление.ХозяйственныеОперации.РеализацияБезПереходаПраваСобственности),
| ЗНАЧЕНИЕ(Перечисление.ХозяйственныеОперации.РеализацияЧерезКомиссионераБезПереходаПраваСобственности))
| И ДанныеДокументаШапка.Статус = ЗНАЧЕНИЕ(Перечисление.СтатусыРеализацийТоваровУслуг.Отгружено)
| И НЕ &НоваяАрхитектураВзаиморасчетов
| ТОГДА ДанныеДокументаШапка.ДатаПереходаПраваСобственности
| ИНАЧЕ ДанныеДокументаШапка.Дата
| КОНЕЦ КАК ДатаКурса,
| ВЫБОР
| КОГДА ДанныеДокументаШапка.ХозяйственнаяОперация В
| (ЗНАЧЕНИЕ(Перечисление.ХозяйственныеОперации.РеализацияБезПереходаПраваСобственности),
| ЗНАЧЕНИЕ(Перечисление.ХозяйственныеОперации.РеализацияЧерезКомиссионераБезПереходаПраваСобственности))
| И ДанныеДокументаШапка.Статус = ЗНАЧЕНИЕ(Перечисление.СтатусыРеализацийТоваровУслуг.Отгружено)
| И НЕ &НоваяАрхитектураВзаиморасчетов
| ТОГДА ДанныеДокументаШапка.ДатаПереходаПраваСобственности
| ИНАЧЕ ДанныеДокументаШапка.Дата
| КОНЕЦ КАК ДатаРегистратора,
| ДанныеДокументаШапка.Номер КАК НомерРегистратора,
| ВЫБОР
| КОГДА ДанныеДокументаШапка.ХозяйственнаяОперация В
| (ЗНАЧЕНИЕ(Перечисление.ХозяйственныеОперации.РеализацияБезПереходаПраваСобственности),
| ЗНАЧЕНИЕ(Перечисление.ХозяйственныеОперации.РеализацияЧерезКомиссионераБезПереходаПраваСобственности))
| И НАЧАЛОПЕРИОДА(ДанныеДокументаШапка.Дата,
| ДЕНЬ) <> НАЧАЛОПЕРИОДА(ДанныеДокументаШапка.ДатаПереходаПраваСобственности, ДЕНЬ)
| ТОГДА ЗНАЧЕНИЕ(Перечисление.ХозяйственныеОперации.РезервированиеАвансаКлиента)
| ИНАЧЕ ЗНАЧЕНИЕ(Перечисление.ХозяйственныеОперации.ПереносАванса)
| КОНЕЦ КАК ХозяйственнаяОперация
|ИЗ
| ДанныеДокументаТаблицаРасшифровкаПлатежа КАК Таблица
| ЛЕВОЕ СОЕДИНЕНИЕ ДанныеДокументаШапка КАК ДанныеДокументаШапка
| ПО Таблица.Ссылка = ДанныеДокументаШапка.Ссылка
| ЛЕВОЕ СОЕДИНЕНИЕ Справочник.ОбъектыРасчетов КАК ОбъектыРасчетов
| ПО ОбъектыРасчетов.Объект = Таблица.Ссылка
| И ОбъектыРасчетов.Организация = ДанныеДокументаШапка.Организация
| И НЕ ОбъектыРасчетов.ТолькоОстатки
| И НЕ ОбъектыРасчетов.ПометкаУдаления
|ГДЕ
| (НЕ Таблица.ОбъектРасчетовОбъект ССЫЛКА Документ.РеализацияТоваровУслуг
| ИЛИ ДанныеДокументаШапка.Организация = ЗНАЧЕНИЕ(Справочник.Организации.УправленческаяОрганизация))
| И НЕ (Таблица.ОбъектРасчетовОбъект ССЫЛКА Документ.ЗаказКлиента
| И Таблица.ОбъектРасчетовОрганизация = ЗНАЧЕНИЕ(Справочник.Организации.УправленческаяОрганизация))";
#КонецОбласти
ВзаиморасчетыСервер.ПроведениеПродажи(Запрос, ТекстыЗапроса, Регистры, ТекстПродажа, ТекстПланированиеОплат, ТекстЗачетАванса, ТекстТовары);
#Область РеализацияКлиентуРеглУчет
Если ДокументОбъект.ХозяйственнаяОперация = Перечисления.ХозяйственныеОперации.РеализацияКлиентуРеглУчет Тогда
ТекстОплата =
"ВЫБРАТЬ
| Таблица.Ссылка КАК Ссылка,
| ЗНАЧЕНИЕ(Справочник.Организации.УправленческаяОрганизация) КАК Организация,
| Таблица.Партнер КАК Партнер,
| Таблица.ОбъектРасчетовУпр КАК ОбъектРасчетов,
| Таблица.Дата КАК ДатаРегистратора,
| Таблица.Номер КАК НомерРегистратора,
| Таблица.ВалютаВзаиморасчетов КАК ВалютаВзаиморасчетов,
| Таблица.Валюта КАК ВалютаДокумента,
| Таблица.ХозяйственнаяОперация КАК ХозяйственнаяОперация,
| Таблица.СуммаВзаиморасчетов КАК СуммаВзаиморасчетов,
| Таблица.СуммаДокумента КАК Сумма,
| 0 КАК УвеличениеОплачивается,
| 0 КАК УменьшениеОплачивается,
| Таблица.Дата КАК ДатаКурса,
| ДАТАВРЕМЯ(1, 1, 1) КАК ДатаПогашения,
| Неопределено КАК ФормаОплаты,
| Неопределено КАК СчетНаОплату,
| Неопределено КАК СтатьяДвиженияДенежныхСредств,
| Неопределено КАК СвязанныйДокумент,
| Таблица.ОбъектРасчетовУпр.УникальныйИдентификатор КАК ИдентификаторФинЗаписи,
| Неопределено КАК НастройкаХозяйственнойОперации
|ИЗ
| ДанныеДокументаШапка КАК Таблица
|ГДЕ
| Таблица.ОбъектРасчетовУпр <> ЗНАЧЕНИЕ(Справочник.ОбъектыРасчетов.ПустаяСсылка)
|
|ОБЪЕДИНИТЬ ВСЕ
|ВЫБРАТЬ
| Таблица.Ссылка КАК Ссылка,
| ЗНАЧЕНИЕ(Справочник.Организации.УправленческаяОрганизация) КАК Организация,
| ДанныеДокументаШапка.Партнер КАК Партнер,
| Таблица.ОбъектРасчетов КАК ОбъектРасчетов,
| ДанныеДокументаШапка.Дата КАК ДатаРегистратора,
| ДанныеДокументаШапка.Номер КАК НомерРегистратора,
| ДанныеДокументаШапка.ВалютаВзаиморасчетов КАК ВалютаВзаиморасчетов,
| ДанныеДокументаШапка.Валюта КАК ВалютаДокумента,
| ДанныеДокументаШапка.ХозяйственнаяОперация КАК ХозяйственнаяОперация,
| Таблица.Сумма КАК СуммаВзаиморасчетов,
| Таблица.Сумма КАК Сумма,
| 0 КАК УвеличениеОплачивается,
| 0 КАК УменьшениеОплачивается,
| ДанныеДокументаШапка.Дата КАК ДатаКурса,
| ДАТАВРЕМЯ(1, 1, 1) КАК ДатаПогашения,
| Неопределено КАК ФормаОплаты,
| Неопределено КАК СчетНаОплату,
| Неопределено КАК СтатьяДвиженияДенежныхСредств,
| Неопределено КАК СвязанныйДокумент,
| Таблица.ОбъектРасчетовУникальныйИдентификатор КАК ИдентификаторФинЗаписи,
| Неопределено КАК НастройкаХозяйственнойОперации
|ИЗ
| ДанныеДокументаТаблицаРасшифровкаПлатежа КАК Таблица
| ЛЕВОЕ СОЕДИНЕНИЕ ДанныеДокументаШапка КАК ДанныеДокументаШапка
| ПО Таблица.Ссылка = ДанныеДокументаШапка.Ссылка
|ГДЕ
| Таблица.ОбъектРасчетовОрганизация = ЗНАЧЕНИЕ(Справочник.Организации.УправленческаяОрганизация)
| И ДанныеДокументаШапка.ОбъектРасчетовУпр = ЗНАЧЕНИЕ(Справочник.ОбъектыРасчетов.ПустаяСсылка)";
Иначе
ТекстОплата = "";
КонецЕсли;
#КонецОбласти
ВзаиморасчетыСервер.ПроведениеОплатыОтКлиента(Запрос, ТекстыЗапроса, Регистры, ТекстОплата);
#Область РеализацияКПредоплатеВПути
ТекстПланированиеОплат =
"ВЫБРАТЬ
| Таблица.Ссылка КАК Ссылка,
| ДанныеДокументаШапка.Организация КАК Организация,
| ВЫБОР
| КОГДА ДанныеДокументаШапка.ХозяйственнаяОперация В
| (ЗНАЧЕНИЕ(Перечисление.ХозяйственныеОперации.РеализацияЧерезКомиссионера),
| ЗНАЧЕНИЕ(Перечисление.ХозяйственныеОперации.РеализацияЧерезКомиссионераБезПереходаПраваСобственности))
| И &ВестиРасчетыЧерезКонечныхПокупателей
| ТОГДА ДанныеДокументаШапка.КлиентПартнер
| ИНАЧЕ ДанныеДокументаШапка.Партнер
| КОНЕЦ КАК Партнер,
| Таблица.ОбъектРасчетов КАК ОбъектРасчетов,
| ДанныеДокументаШапка.Дата КАК ДатаРегистратора,
| ДанныеДокументаШапка.Номер КАК НомерРегистратора,
| ДанныеДокументаШапка.ПорядокРасчетов КАК ПорядокРасчетов,
| ДанныеДокументаШапка.ВалютаВзаиморасчетов КАК ВалютаВзаиморасчетов,
| ДанныеДокументаШапка.Валюта КАК ВалютаДокумента,
| ДанныеДокументаШапка.ХозяйственнаяОперация КАК ХозяйственнаяОперация,
| ДанныеДокументаШапка.ФормаОплаты КАК ФормаОплаты,
| Таблица.ДатаПлатежа КАК ДатаПлатежа,
| Таблица.ВариантОплаты КАК ВариантОплаты,
| Таблица.СуммаВзаиморасчетов + Таблица.СуммаВзаиморасчетовПоТаре КАК КОплате,
| ИСТИНА КАК ИсключатьПриКонтроле
|ИЗ
| ДанныеДокументаТаблицаЭтапыГрафикаОплаты КАК Таблица
| ЛЕВОЕ СОЕДИНЕНИЕ ДанныеДокументаШапка КАК ДанныеДокументаШапка
| ПО Таблица.Ссылка = ДанныеДокументаШапка.Ссылка
|ГДЕ
| ДанныеДокументаШапка.ХозяйственнаяОперация В (ЗНАЧЕНИЕ(Перечисление.ХозяйственныеОперации.РеализацияКлиенту),
| ЗНАЧЕНИЕ(Перечисление.ХозяйственныеОперации.ПереходПраваСобственности),
| ЗНАЧЕНИЕ(Перечисление.ХозяйственныеОперации.РеализацияКлиентуРеглУчет),
| ЗНАЧЕНИЕ(Перечисление.ХозяйственныеОперации.РеализацияБезПереходаПраваСобственности),
| ЗНАЧЕНИЕ(Перечисление.ХозяйственныеОперации.РеализацияЧерезКомиссионера),
| ЗНАЧЕНИЕ(Перечисление.ХозяйственныеОперации.РеализацияЧерезКомиссионераБезПереходаПраваСобственности))
| И ДанныеДокументаШапка.Статус <> ЗНАЧЕНИЕ(Перечисление.СтатусыРеализацийТоваровУслуг.Отгружено)
| И (Таблица.Заказ = Неопределено
| И НЕ ЕСТЬNULL(ДанныеДокументаШапка.Договор.ЗаданГрафикИсполнения,ЛОЖЬ)
| ИЛИ ДанныеДокументаШапка.ПорядокРасчетов = ЗНАЧЕНИЕ(Перечисление.ПорядокРасчетов.ПоНакладным))";
#КонецОбласти
ВзаиморасчетыСервер.ПроведениеРасчетыСКлиентамиПланОплат(Запрос, ТекстыЗапроса, Регистры, ТекстПланированиеОплат);
КонецПроцедуры
Процедура ОтразитьРезерв(Запрос, ТекстыЗапроса, Регистры, ДокументОбъект)
Если ДокументОбъект.Статус <> Перечисления.СтатусыРеализацийТоваровУслуг.КПредоплате
Или ДокументОбъект.ХозяйственнаяОперация =
Перечисления.ХозяйственныеОперации.РеализацияКлиентуРеглУчет
Или ДокументОбъект.ХозяйственнаяОперация =
Перечисления.ХозяйственныеОперации.РеализацияЧерезКомиссионера
Или ДокументОбъект.ХозяйственнаяОперация =
Перечисления.ХозяйственныеОперации.РеализацияЧерезКомиссионераБезПереходаПраваСобственности
Или ДокументОбъект.ХозяйственнаяОперация =
Перечисления.ХозяйственныеОперации.ПереходПраваСобственности Тогда
Возврат;
КонецЕсли;
ТекстЗапросаДанныхДокумента =
"ВЫБРАТЬ
| ТоварыДокумента.Ссылка КАК Ссылка,
| ДанныеШапки.Дата КАК Период,
| ВЫБОР
| КОГДА ДанныеШапки.РеализацияПоЗаказам
| И НЕ ЕСТЬNULL(ТоварыДокумента.ЗаказКлиентаЭтоЗаказКакСчет, НЕ &ИспользоватьРасширенныеВозможностиЗаказа)
| И ТоварыДокумента.ЗаказКлиента <> ЗНАЧЕНИЕ(Документ.ЗаказКлиента.ПустаяСсылка)
| ТОГДА ТоварыДокумента.ЗаказКлиента
| ИНАЧЕ НЕОПРЕДЕЛЕНО
| КОНЕЦ КАК Заказ,
| ТоварыДокумента.Ссылка КАК Накладная,
| ЛОЖЬ КАК Исправление,
| НЕОПРЕДЕЛЕНО КАК ИсправляемыйДокумент,
| ДанныеШапки.Партнер КАК Получатель,
| ТоварыДокумента.Склад КАК Склад,
| ТоварыДокумента.Номенклатура КАК Номенклатура,
| ТоварыДокумента.Характеристика КАК Характеристика,
| ТоварыДокумента.Назначение КАК Назначение,
| ТоварыДокумента.Серия КАК Серия,
| ТоварыДокумента.СтатусУказанияСерий КАК СтатусУказанияСерий,
| ТоварыДокумента.Количество КАК Количество,
| ВЫБОР
| КОГДА ДанныеШапки.РеализацияПоЗаказам
| И НЕ ЕСТЬNULL(ТоварыДокумента.ЗаказКлиентаЭтоЗаказКакСчет, НЕ &ИспользоватьРасширенныеВозможностиЗаказа)
| И ТоварыДокумента.КодСтроки = 0
| ТОГДА ИСТИНА
| ИНАЧЕ ЛОЖЬ
| КОНЕЦ КАК СверхЗаказа,
| ЛОЖЬ КАК Отменено,
| ИСТИНА КАК ЭтоНакладная,
| ВЫБОР
| КОГДА ДанныеШапки.РеализацияПоЗаказам
| И НЕ ЕСТЬNULL(ТоварыДокумента.ЗаказКлиентаЭтоЗаказКакСчет, НЕ &ИспользоватьРасширенныеВозможностиЗаказа)
| ТОГДА ИСТИНА
| ИНАЧЕ ЛОЖЬ
| КОНЕЦ КАК ОтгрузкаПоЗаказу
|ИЗ
| ДанныеДокументаТаблицаТовары КАК ТоварыДокумента
| ЛЕВОЕ СОЕДИНЕНИЕ ДанныеДокументаШапка КАК ДанныеШапки
| ПО ТоварыДокумента.Ссылка = ДанныеШапки.Ссылка
|
|ГДЕ
| ТоварыДокумента.Количество <> 0";
ИспользоватьРасширенныеВозможностиЗаказа = ?(ПолучитьФункциональнуюОпцию("ИспользоватьРасширенныеВозможностиЗаказаКлиента"),
"ИСТИНА",
"ЛОЖЬ");
ТекстЗапросаДанныхДокумента = СтрЗаменить(ТекстЗапросаДанныхДокумента,
"&ИспользоватьРасширенныеВозможностиЗаказа",
ИспользоватьРасширенныеВозможностиЗаказа);
СкладыСервер.ОтразитьРезерв(Запрос, ТекстыЗапроса, Регистры, ТекстЗапросаДанныхДокумента);
КонецПроцедуры
Процедура ЗапланироватьОтгрузкуТоваров(Запрос, ТекстыЗапроса, Регистры, ДокументОбъект)
Если ДокументОбъект.Статус = Перечисления.СтатусыРеализацийТоваровУслуг.КПредоплате
Или ДокументОбъект.ХозяйственнаяОперация =
Перечисления.ХозяйственныеОперации.РеализацияКлиентуРеглУчет
Или ДокументОбъект.ХозяйственнаяОперация =
Перечисления.ХозяйственныеОперации.РеализацияЧерезКомиссионера
Или ДокументОбъект.ХозяйственнаяОперация =
Перечисления.ХозяйственныеОперации.РеализацияЧерезКомиссионераБезПереходаПраваСобственности
Или ДокументОбъект.ХозяйственнаяОперация =
Перечисления.ХозяйственныеОперации.ПереходПраваСобственности Тогда
Возврат;
КонецЕсли;
ТекстЗапросаДанныхДокумента =
"ВЫБРАТЬ
| ТоварыДокумента.Ссылка КАК Ссылка,
| ДанныеШапки.Дата КАК Период,
| ВЫБОР
| КОГДА ДанныеШапки.РеализацияПоЗаказам
| И НЕ ЕСТЬNULL(ТоварыДокумента.ЗаказКлиентаЭтоЗаказКакСчет, НЕ &ИспользоватьРасширенныеВозможностиЗаказа)
| И ТоварыДокумента.ЗаказКлиента <> ЗНАЧЕНИЕ(Документ.ЗаказКлиента.ПустаяСсылка)
| ТОГДА ТоварыДокумента.ЗаказКлиента
| ИНАЧЕ НЕОПРЕДЕЛЕНО
| КОНЕЦ КАК Заказ,
| ДанныеШапки.Ссылка КАК Накладная,
| ЛОЖЬ КАК Исправление,
| НЕОПРЕДЕЛЕНО КАК ИсправляемыйДокумент,
| ДанныеШапки.Партнер КАК Получатель,
| ТоварыДокумента.Склад КАК Склад,
| ТоварыДокумента.Номенклатура КАК Номенклатура,
| ТоварыДокумента.Характеристика КАК Характеристика,
| ТоварыДокумента.Назначение КАК Назначение,
| ТоварыДокумента.Серия КАК Серия,
| ТоварыДокумента.СтатусУказанияСерий КАК СтатусУказанияСерий,
| ТоварыДокумента.Количество КАК Количество,
| ВЫБОР
| КОГДА ДанныеШапки.РеализацияПоЗаказам
| И НЕ ЕСТЬNULL(ТоварыДокумента.ЗаказКлиентаЭтоЗаказКакСчет, НЕ &ИспользоватьРасширенныеВозможностиЗаказа)
| И ТоварыДокумента.КодСтроки = 0
| ТОГДА ИСТИНА
| ИНАЧЕ ЛОЖЬ
| КОНЕЦ КАК СверхЗаказа,
| ЛОЖЬ КАК Отменено,
| ИСТИНА КАК ЭтоНакладная,
| ВЫБОР
| КОГДА ДанныеШапки.РеализацияПоЗаказам
| И НЕ ЕСТЬNULL(ТоварыДокумента.ЗаказКлиентаЭтоЗаказКакСчет, НЕ &ИспользоватьРасширенныеВозможностиЗаказа)
| ТОГДА ИСТИНА
| ИНАЧЕ ЛОЖЬ
| КОНЕЦ КАК ОтгрузкаПоЗаказу
|ИЗ
| ДанныеДокументаТаблицаТовары КАК ТоварыДокумента
| ЛЕВОЕ СОЕДИНЕНИЕ ДанныеДокументаШапка КАК ДанныеШапки
| ПО ТоварыДокумента.Ссылка = ДанныеШапки.Ссылка
|
|ГДЕ
| ТоварыДокумента.Количество <> 0";
ИспользоватьРасширенныеВозможностиЗаказа = ?(ПолучитьФункциональнуюОпцию("ИспользоватьРасширенныеВозможностиЗаказаКлиента"),
"ИСТИНА",
"ЛОЖЬ");
ТекстЗапросаДанныхДокумента = СтрЗаменить(ТекстЗапросаДанныхДокумента,
"&ИспользоватьРасширенныеВозможностиЗаказа",
ИспользоватьРасширенныеВозможностиЗаказа);
СкладыСервер.ЗапланироватьОтгрузкуТоваров(Запрос, ТекстыЗапроса, Регистры, ТекстЗапросаДанныхДокумента);
КонецПроцедуры
Процедура ОформитьОтгрузкуТоваров(Запрос, ТекстыЗапроса, Регистры, ДокументОбъект)
Если ДокументОбъект.Статус = Перечисления.СтатусыРеализацийТоваровУслуг.КПредоплате
Или ДокументОбъект.ХозяйственнаяОперация = Перечисления.ХозяйственныеОперации.РеализацияКлиентуРеглУчет
Или ДокументОбъект.ХозяйственнаяОперация = Перечисления.ХозяйственныеОперации.РеализацияЧерезКомиссионера
Или ДокументОбъект.ХозяйственнаяОперация = Перечисления.ХозяйственныеОперации.РеализацияЧерезКомиссионераБезПереходаПраваСобственности
Или ДокументОбъект.ХозяйственнаяОперация = Перечисления.ХозяйственныеОперации.ПереходПраваСобственности Тогда
Возврат;
КонецЕсли;
ТекстЗапросаДанныхДокумента =
"ВЫБРАТЬ
| ТоварыДокумента.Ссылка КАК Ссылка,
| ДанныеШапки.Дата КАК Период,
| ВЫБОР
| КОГДА ДанныеШапки.РеализацияПоЗаказам
| И НЕ ЕСТЬNULL(ТоварыДокумента.ЗаказКлиентаЭтоЗаказКакСчет, НЕ &ИспользоватьРасширенныеВозможностиЗаказа)
| И ТоварыДокумента.ЗаказКлиента <> ЗНАЧЕНИЕ(Документ.ЗаказКлиента.ПустаяСсылка)
| ТОГДА ТоварыДокумента.ЗаказКлиента
| ИНАЧЕ НЕОПРЕДЕЛЕНО
| КОНЕЦ КАК Заказ,
| ДанныеШапки.Ссылка КАК Накладная,
| ЛОЖЬ КАК Исправление,
| НЕОПРЕДЕЛЕНО КАК ИсправляемыйДокумент,
| ДанныеШапки.Партнер КАК Получатель,
| ТоварыДокумента.Склад КАК Склад,
| ТоварыДокумента.Номенклатура КАК Номенклатура,
| ТоварыДокумента.Характеристика КАК Характеристика,
| ТоварыДокумента.Назначение КАК Назначение,
| ТоварыДокумента.Серия КАК Серия,
| ТоварыДокумента.СтатусУказанияСерий КАК СтатусУказанияСерий,
| ТоварыДокумента.Количество КАК Количество,
| ВЫБОР
| КОГДА ДанныеШапки.РеализацияПоЗаказам
| И НЕ ЕСТЬNULL(ТоварыДокумента.ЗаказКлиентаЭтоЗаказКакСчет, НЕ &ИспользоватьРасширенныеВозможностиЗаказа)
| И ТоварыДокумента.КодСтроки = 0
| ТОГДА ИСТИНА
| ИНАЧЕ ЛОЖЬ
| КОНЕЦ КАК СверхЗаказа,
| ВЫБОР
| КОГДА ДанныеШапки.РеализацияПоЗаказам
| И НЕ ЕСТЬNULL(ТоварыДокумента.ЗаказКлиентаЭтоЗаказКакСчет, НЕ &ИспользоватьРасширенныеВозможностиЗаказа)
| ТОГДА ИСТИНА
| ИНАЧЕ ЛОЖЬ
| КОНЕЦ КАК ОтгрузкаПоЗаказу
|ИЗ
| ДанныеДокументаТаблицаТовары КАК ТоварыДокумента
| ЛЕВОЕ СОЕДИНЕНИЕ ДанныеДокументаШапка КАК ДанныеШапки
| ПО ТоварыДокумента.Ссылка = ДанныеШапки.Ссылка
|
|ГДЕ
| ТоварыДокумента.Количество <> 0";
ИспользоватьРасширенныеВозможностиЗаказа = ?(ПолучитьФункциональнуюОпцию("ИспользоватьРасширенныеВозможностиЗаказаКлиента"),
"ИСТИНА",
"ЛОЖЬ");
ТекстЗапросаДанныхДокумента = СтрЗаменить(ТекстЗапросаДанныхДокумента,
"&ИспользоватьРасширенныеВозможностиЗаказа",
ИспользоватьРасширенныеВозможностиЗаказа);
ОбъектМетаданных = Метаданные.Документы.РеализацияТоваровУслуг;
ИмяТЧСерии = "Серии";
СкладыСервер.ОформитьОтгрузкуТоваров(Запрос,
ТекстыЗапроса,
Регистры,
ТекстЗапросаДанныхДокумента,
ОбъектМетаданных,
ИмяТЧСерии);
КонецПроцедуры
#Область ПартионныйУчет
Функция ОписаниеРегистровУчетаЗатратИСебестоимости(Документ) Экспорт
ОписаниеРегистров = Новый Массив;
ОписаниеРегистров.Добавить(Метаданные.РегистрыНакопления.СебестоимостьТоваров);
Возврат ОписаниеРегистров;
КонецФункции
Функция УстановитьДополнительныеПараметрыОперацийУчетаЗатратИСебестоимости(Документ, Запрос = Неопределено) Экспорт
ДополнительныеПараметры = Новый Массив;
ДополнительныеПараметры.Добавить("АналитикаУчетаПоПартнерамУпр");
ДополнительныеПараметры.Добавить("АналитикаУчетаПоПартнерам");
ДополнительныеПараметры.Добавить("НалогообложениеОрганизации");
Если Запрос <> Неопределено Тогда
УстановитьПараметрЗапросаАналитикаУчетаПоПартнерамУпр(Запрос);
УстановитьПараметрЗапросаАналитикаУчетаПоПартнерам(Запрос);
УстановитьПараметрЗапросаНалогообложениеОрганизации(Запрос);
КонецЕсли;
Возврат ДополнительныеПараметры;
КонецФункции
Функция СформироватьДополнительныеТаблицыОперацийУчетаЗатратИСебестоимости(Документ, Запрос = Неопределено, ТекстыЗапроса = Неопределено) Экспорт
ДополнительныеТаблицы = Новый Массив;
ДополнительныеТаблицы.Добавить("ВтТаблицаВидыЗапасов");
ДополнительныеТаблицы.Добавить("ВТРаботыУслуги");
Если Запрос <> Неопределено Тогда
Если НЕ ПроведениеДокументов.ЕстьТаблицаЗапроса(ДополнительныеТаблицы[0], ТекстыЗапроса) Тогда
ТекстЗапросаВтТаблицаВидыЗапасов(Запрос, ТекстыЗапроса, Документ);
КонецЕсли;
Если НЕ ПроведениеДокументов.ЕстьТаблицаЗапроса(ДополнительныеТаблицы[1], ТекстыЗапроса) Тогда
ТекстЗапросаВТРаботыУслуги(Запрос, ТекстыЗапроса, Документ);
КонецЕсли;
КонецЕсли;
Возврат ДополнительныеТаблицы;
КонецФункции
Функция ОписаниеОперацийУчетаСебестоимости(ДокументОбъект) Экспорт
ОписаниеОпераций = Новый Массив;
#Область Реализация_Товар
Если ДокументОбъект <> Неопределено
И ((ДокументОбъект.ХозяйственнаяОперация = Перечисления.ХозяйственныеОперации.РеализацияКлиенту
Или ДокументОбъект.ХозяйственнаяОперация = Перечисления.ХозяйственныеОперации.ПереходПраваСобственности
Или ДокументОбъект.ХозяйственнаяОперация = Перечисления.ХозяйственныеОперации.РеализацияКлиентуРеглУчет
Или ДокументОбъект.ХозяйственнаяОперация = Перечисления.ХозяйственныеОперации.РеализацияЧерезКомиссионера)
И ДокументОбъект.Статус <> Перечисления.СтатусыРеализацийТоваровУслуг.КПредоплате) Тогда
ТекстЗапроса =
"ВЫБРАТЬ
| ТаблицаДокумента.Дата КАК Период,
| ТаблицаДокумента.Ссылка КАК Ссылка,
| НЕОПРЕДЕЛЕНО КАК ДокументИсточник,
| НЕОПРЕДЕЛЕНО КАК ПериодДокументаИсточника,
| НЕОПРЕДЕЛЕНО КАК КорректируемыйДокумент,
|
| ТаблицаДокумента.Организация КАК Организация,
| ТаблицаВидыЗапасов.АналитикаУчетаНоменклатуры КАК АналитикаУчетаНоменклатуры,
| ТаблицаВидыЗапасов.ВидЗапасов КАК ВидЗапасов,
| ТаблицаВидыЗапасов.ВидДеятельностиНДС КАК ВидДеятельностиНДС,
| ТаблицаВидыЗапасов.ВидДеятельностиНДС КАК ВидДеятельностиНДСДокумента,
|
| ВЫБОР
| КОГДА ТаблицаДокумента.ХозяйственнаяОперация = ЗНАЧЕНИЕ(Перечисление.ХозяйственныеОперации.РеализацияКлиентуРеглУчет)
| ТОГДА ЗНАЧЕНИЕ(Справочник.Организации.УправленческаяОрганизация)
| ИНАЧЕ НЕОПРЕДЕЛЕНО
| КОНЕЦ КАК КорОрганизация,
| ВЫБОР
| КОГДА ТаблицаДокумента.ХозяйственнаяОперация = ЗНАЧЕНИЕ(Перечисление.ХозяйственныеОперации.РеализацияКлиентуРеглУчет)
| ТОГДА ТаблицаВидыЗапасов.АналитикаУчетаНоменклатуры
| ИНАЧЕ НЕОПРЕДЕЛЕНО
| КОНЕЦ КАК КорАналитикаУчетаНоменклатуры,
| ВЫБОР
| КОГДА ТаблицаДокумента.ХозяйственнаяОперация = ЗНАЧЕНИЕ(Перечисление.ХозяйственныеОперации.РеализацияКлиентуРеглУчет)
| ТОГДА ТаблицаВидыЗапасов.ВидЗапасовПолучателя
| ИНАЧЕ НЕОПРЕДЕЛЕНО
| КОНЕЦ КАК КорВидЗапасов,
| ВЫБОР
| КОГДА ТаблицаДокумента.ХозяйственнаяОперация = ЗНАЧЕНИЕ(Перечисление.ХозяйственныеОперации.РеализацияКлиентуРеглУчет)
| ТОГДА ТаблицаДокумента.Ссылка
| ИНАЧЕ НЕОПРЕДЕЛЕНО
| КОНЕЦ КАК КорПартия,
| ВЫБОР
| КОГДА ТаблицаДокумента.ХозяйственнаяОперация = ЗНАЧЕНИЕ(Перечисление.ХозяйственныеОперации.РеализацияКлиентуРеглУчет)
| ТОГДА ТаблицаВидыЗапасов.АналитикаУчетаПартий
| ИНАЧЕ НЕОПРЕДЕЛЕНО
| КОНЕЦ КАК КорАналитикаУчетаПартий,
| ВЫБОР
| КОГДА ТаблицаДокумента.ХозяйственнаяОперация = ЗНАЧЕНИЕ(Перечисление.ХозяйственныеОперации.РеализацияКлиентуРеглУчет)
| ТОГДА &НалогообложениеОрганизации
| ИНАЧЕ ТаблицаВидыЗапасов.ВидДеятельностиНДС
| КОНЕЦ КАК КорВидДеятельностиНДС,
| ТаблицаВидыЗапасов.АналитикаУчетаПоПартнерам КАК АналитикаУчетаПоПартнерам,
| ВЫБОР
| КОГДА ТаблицаДокумента.РеализацияПоЗаказам И &РеализацияПоНесколькимЗаказам
| ТОГДА ТаблицаВидыЗапасов.ЗаказКлиента
| КОГДА ТаблицаДокумента.РеализацияПоЗаказам И НЕ &РеализацияПоНесколькимЗаказам
| ТОГДА ТаблицаДокумента.ЗаказКлиента
| ИНАЧЕ ТаблицаДокумента.Ссылка
| КОНЕЦ КАК ЗаказКлиента,
|
| ТаблицаДокумента.Сделка КАК Сделка,
| ТаблицаДокумента.Подразделение КАК Подразделение,
| ТаблицаДокумента.Менеджер КАК Менеджер,
| НЕОПРЕДЕЛЕНО КАК ГруппаПродукции,
|
| ТаблицаВидыЗапасов.Количество КАК Количество,
| ВЫБОР
| КОГДА ТаблицаДокумента.ХозяйственнаяОперация = ЗНАЧЕНИЕ(Перечисление.ХозяйственныеОперации.ПереходПраваСобственности)
| ТОГДА ТаблицаВидыЗапасов.ИдентификаторСтроки
| ИНАЧЕ НЕОПРЕДЕЛЕНО
| КОНЕЦ КАК ИдентификаторСтроки,
|
| ТаблицаДокумента.ХозяйственнаяОперация КАК ХозяйственнаяОперация,
| ТаблицаВидыЗапасов.ИдентификаторСтроки КАК ИдентификаторФинЗаписи,
| ВЫБОР
| КОГДА ТаблицаВидыЗапасов.ТипЗапасов = ЗНАЧЕНИЕ(Перечисление.ТипыЗапасов.КомиссионныйТовар)
| И ТаблицаДокумента.ХозяйственнаяОперация <> ЗНАЧЕНИЕ(Перечисление.ХозяйственныеОперации.ПереходПраваСобственности)
| ТОГДА ЗНАЧЕНИЕ(Справочник.НастройкиХозяйственныхОпераций.РеализацияКомиссионногоТовара)
| ИНАЧЕ &НастройкаХозяйственнойОперации
| КОНЕЦ КАК НастройкаХозяйственнойОперации
|
|ИЗ
| ДанныеДокументаШапка КАК ТаблицаДокумента
| ВНУТРЕННЕЕ СОЕДИНЕНИЕ ВтТаблицаВидыЗапасов КАК ТаблицаВидыЗапасов
| ПО ИСТИНА
|ГДЕ
| ТаблицаВидыЗапасов.ТипЗапасов В (
| ЗНАЧЕНИЕ(Перечисление.ТипыЗапасов.Товар),
| ЗНАЧЕНИЕ(Перечисление.ТипыЗапасов.КомиссионныйТовар))
| И (ТаблицаВидыЗапасов.АналитикаУчетаНоменклатурыНоменклатураТипНоменклатуры <> ЗНАЧЕНИЕ(Перечисление.ТипыНоменклатуры.МногооборотнаяТара)
| ИЛИ НЕ &ВернутьМногооборотнуюТару)
| И ВЫБОР
| КОГДА НЕ ТаблицаВидыЗапасов.Ссылка ЕСТЬ NULL
| ТОГДА ИСТИНА
| КОНЕЦ";
РасчетСебестоимостиПроведениеДокументов.ДобавитьОписаниеОперацииДляОтраженияВУчетеСебестоимости(
ОписаниеОпераций,
Перечисления.ОперацииУчетаСебестоимости.Реализация,
ТекстЗапроса);
КонецЕсли;
#КонецОбласти
#Область Реализация_Работа
Если НЕ ДокументОбъект = Неопределено
И (ДокументОбъект.Статус <> Перечисления.СтатусыРеализацийТоваровУслуг.КПредоплате)
И (ДокументОбъект.Статус = Перечисления.СтатусыРеализацийТоваровУслуг.Отгружено
ИЛИ ДокументОбъект.ХозяйственнаяОперация <> Перечисления.ХозяйственныеОперации.РеализацияЧерезКомиссионераБезПереходаПраваСобственности
И ДокументОбъект.ХозяйственнаяОперация <> Перечисления.ХозяйственныеОперации.РеализацияБезПереходаПраваСобственности) Тогда
ТекстЗапроса =
"ВЫБРАТЬ
| ВЫБОР
| КОГДА (ТаблицаДокумента.ХозяйственнаяОперация = ЗНАЧЕНИЕ(Перечисление.ХозяйственныеОперации.РеализацияБезПереходаПраваСобственности)
| ИЛИ ТаблицаДокумента.ХозяйственнаяОперация = ЗНАЧЕНИЕ(Перечисление.ХозяйственныеОперации.РеализацияЧерезКомиссионераБезПереходаПраваСобственности))
| И ТаблицаДокумента.Статус = ЗНАЧЕНИЕ(Перечисление.СтатусыРеализацийТоваровУслуг.Отгружено)
| ТОГДА ТаблицаДокумента.ДатаПереходаПраваСобственности
| ИНАЧЕ ТаблицаДокумента.Дата
| КОНЕЦ КАК Период,
| ТаблицаДокумента.Ссылка КАК Ссылка,
| НЕОПРЕДЕЛЕНО КАК ДокументИсточник,
| НЕОПРЕДЕЛЕНО КАК ПериодДокументаИсточника,
| НЕОПРЕДЕЛЕНО КАК КорректируемыйДокумент,
|
| ТаблицаДокумента.Организация КАК Организация,
| ТаблицаВидыЗапасов.АналитикаУчетаНоменклатуры КАК АналитикаУчетаНоменклатуры,
| ТаблицаВидыЗапасов.ВидЗапасов КАК ВидЗапасов,
| ТаблицаВидыЗапасов.ВидДеятельностиНДС КАК ВидДеятельностиНДС,
| ТаблицаВидыЗапасов.ВидДеятельностиНДС КАК ВидДеятельностиНДСДокумента,
|
| ВЫБОР
| КОГДА ТаблицаДокумента.ХозяйственнаяОперация = ЗНАЧЕНИЕ(Перечисление.ХозяйственныеОперации.РеализацияКлиентуРеглУчет)
| ТОГДА ЗНАЧЕНИЕ(Справочник.Организации.УправленческаяОрганизация)
| ИНАЧЕ НЕОПРЕДЕЛЕНО
| КОНЕЦ КАК КорОрганизация,
| ВЫБОР
| КОГДА ТаблицаДокумента.ХозяйственнаяОперация = ЗНАЧЕНИЕ(Перечисление.ХозяйственныеОперации.РеализацияКлиентуРеглУчет)
| ТОГДА ТаблицаВидыЗапасов.АналитикаУчетаНоменклатуры
| ИНАЧЕ НЕОПРЕДЕЛЕНО
| КОНЕЦ КАК КорАналитикаУчетаНоменклатуры,
| НЕОПРЕДЕЛЕНО КАК КорВидЗапасов,
| ВЫБОР
| КОГДА ТаблицаДокумента.ХозяйственнаяОперация = ЗНАЧЕНИЕ(Перечисление.ХозяйственныеОперации.РеализацияКлиентуРеглУчет)
| ТОГДА ТаблицаДокумента.Ссылка
| ИНАЧЕ НЕОПРЕДЕЛЕНО
| КОНЕЦ КАК КорПартия,
| ВЫБОР
| КОГДА ТаблицаДокумента.ХозяйственнаяОперация = ЗНАЧЕНИЕ(Перечисление.ХозяйственныеОперации.РеализацияКлиентуРеглУчет)
| ТОГДА ТаблицаВидыЗапасов.АналитикаУчетаПартий
| ИНАЧЕ НЕОПРЕДЕЛЕНО
| КОНЕЦ КАК КорАналитикаУчетаПартий,
| ВЫБОР
| КОГДА ТаблицаДокумента.ХозяйственнаяОперация = ЗНАЧЕНИЕ(Перечисление.ХозяйственныеОперации.РеализацияКлиентуРеглУчет)
| ТОГДА &НалогообложениеОрганизации
| ИНАЧЕ ТаблицаВидыЗапасов.ВидДеятельностиНДС
| КОНЕЦ КАК КорВидДеятельностиНДС,
| ТаблицаВидыЗапасов.АналитикаУчетаПоПартнерам КАК АналитикаУчетаПоПартнерам,
| ВЫБОР
| КОГДА ТаблицаДокумента.РеализацияПоЗаказам И &РеализацияПоНесколькимЗаказам
| ТОГДА ТаблицаВидыЗапасов.ЗаказКлиента
| КОГДА ТаблицаДокумента.РеализацияПоЗаказам И НЕ &РеализацияПоНесколькимЗаказам
| ТОГДА ТаблицаДокумента.ЗаказКлиента
| ИНАЧЕ ТаблицаДокумента.Ссылка
| КОНЕЦ КАК ЗаказКлиента,
|
| ТаблицаДокумента.Сделка КАК Сделка,
| ТаблицаВидыЗапасов.Подразделение КАК Подразделение,
| ТаблицаДокумента.Менеджер КАК Менеджер,
| НЕОПРЕДЕЛЕНО КАК ГруппаПродукции,
|
| ТаблицаВидыЗапасов.Количество КАК Количество,
| НЕОПРЕДЕЛЕНО КАК ИдентификаторСтроки,
|
| ВЫБОР
| КОГДА ТаблицаДокумента.ХозяйственнаяОперация = ЗНАЧЕНИЕ(Перечисление.ХозяйственныеОперации.РеализацияБезПереходаПраваСобственности)
| ТОГДА ЗНАЧЕНИЕ(Перечисление.ХозяйственныеОперации.РеализацияКлиенту)
| КОГДА ТаблицаДокумента.ХозяйственнаяОперация = ЗНАЧЕНИЕ(Перечисление.ХозяйственныеОперации.РеализацияЧерезКомиссионераБезПереходаПраваСобственности)
| ТОГДА ЗНАЧЕНИЕ(Перечисление.ХозяйственныеОперации.РеализацияЧерезКомиссионера)
| ИНАЧЕ ТаблицаДокумента.ХозяйственнаяОперация
| КОНЕЦ КАК ХозяйственнаяОперация,
| ТаблицаВидыЗапасов.ИдентификаторСтроки КАК ИдентификаторФинЗаписи,
| ВЫБОР
| КОГДА ТаблицаДокумента.ХозяйственнаяОперация = ЗНАЧЕНИЕ(Перечисление.ХозяйственныеОперации.РеализацияБезПереходаПраваСобственности)
| ТОГДА ЗНАЧЕНИЕ(Справочник.НастройкиХозяйственныхОпераций.РеализацияКлиенту)
| КОГДА ТаблицаДокумента.ХозяйственнаяОперация = ЗНАЧЕНИЕ(Перечисление.ХозяйственныеОперации.РеализацияЧерезКомиссионераБезПереходаПраваСобственности)
| ТОГДА ЗНАЧЕНИЕ(Перечисление.ХозяйственныеОперации.РеализацияЧерезКомиссионера)
| ИНАЧЕ &НастройкаХозяйственнойОперации
| КОНЕЦ КАК НастройкаХозяйственнойОперации
|
|ИЗ
| ДанныеДокументаШапка КАК ТаблицаДокумента
| ВНУТРЕННЕЕ СОЕДИНЕНИЕ ВтРаботыУслуги КАК ТаблицаВидыЗапасов
| ПО ИСТИНА
|ГДЕ
| ТаблицаВидыЗапасов.ТипНоменклатуры = ЗНАЧЕНИЕ(Перечисление.ТипыНоменклатуры.Работа)
|";
РасчетСебестоимостиПроведениеДокументов.ДобавитьОписаниеОперацииДляОтраженияВУчетеСебестоимости(
ОписаниеОпераций,
Перечисления.ОперацииУчетаСебестоимости.Реализация,
ТекстЗапроса);
КонецЕсли;
#КонецОбласти
#Область ВыбытиеПоФиксированнойСтоимости_Тара
Если НЕ ДокументОбъект = Неопределено
И (ДокументОбъект.Статус <> Перечисления.СтатусыРеализацийТоваровУслуг.КПредоплате
И ДокументОбъект.ХозяйственнаяОперация <> Перечисления.ХозяйственныеОперации.ПередачаНаКомиссию
И ДокументОбъект.ВернутьМногооборотнуюТару) Тогда
ТекстЗапроса =
"ВЫБРАТЬ
| ТаблицаДокумента.Дата КАК Период,
| ТаблицаДокумента.Ссылка КАК Ссылка,
| НЕОПРЕДЕЛЕНО КАК ДокументИсточник,
| НЕОПРЕДЕЛЕНО КАК ПериодДокументаИсточника,
| НЕОПРЕДЕЛЕНО КАК КорректируемыйДокумент,
|
| ТаблицаДокумента.Организация КАК Организация,
| ТаблицаВидыЗапасов.АналитикаУчетаНоменклатуры КАК АналитикаУчетаНоменклатуры,
| ТаблицаВидыЗапасов.ВидЗапасов КАК ВидЗапасов,
| ТаблицаВидыЗапасов.ВидДеятельностиНДС КАК ВидДеятельностиНДС,
| ТаблицаВидыЗапасов.ВидДеятельностиНДС КАК ВидДеятельностиНДСДокумента,
|
| НЕОПРЕДЕЛЕНО КАК КорАналитикаУчетаНоменклатуры,
| НЕОПРЕДЕЛЕНО КАК КорВидЗапасов,
| ЗНАЧЕНИЕ(ПланВидовХарактеристик.СтатьиРасходов.РазницыСтоимостиВозвратаИФактическойСтоимостиТоваров) КАК СтатьяРасходовАктивов,
| ТаблицаДокумента.Партнер КАК АналитикаРасходовАктивов,
| ЗНАЧЕНИЕ(ПланВидовХарактеристик.СтатьиДоходов.РазницыСтоимостиВозвратаИФактическойСтоимостиТоваров) КАК СтатьяДоходов,
| ТаблицаДокумента.Партнер КАК АналитикаДоходов,
|
| ТаблицаДокумента.Сделка КАК Сделка,
| ТаблицаДокумента.Подразделение КАК Подразделение,
| ТаблицаДокумента.Менеджер КАК Менеджер,
| НЕОПРЕДЕЛЕНО КАК ГруппаПродукции,
|
| ТаблицаВидыЗапасов.Количество КАК Количество,
| НЕОПРЕДЕЛЕНО КАК ИдентификаторСтроки,
| ТаблицаВидыЗапасов.СуммаСНДСУпр КАК Стоимость,
| ТаблицаВидыЗапасов.СуммаБезНДСУпр КАК СтоимостьБезНДС,
| ТаблицаВидыЗапасов.СуммаБезНДСРегл КАК СтоимостьРегл,
| ТаблицаВидыЗапасов.СуммаБезНДСУпр КАК СтоимостьУпр,
| 0 КАК КорСтоимость,
|
| ЗНАЧЕНИЕ(Перечисление.ХозяйственныеОперации.РеализацияПереданнойВозвратнойТары) КАК ХозяйственнаяОперация,
| ВЫБОР
| КОГДА &ТребуетсяЗалогЗаТару
| ТОГДА ТаблицаВидыЗапасов.ОбъектРасчетовУникальныйИдентификатор
| ИНАЧЕ ТаблицаВидыЗапасов.ИдентификаторСтроки
| КОНЕЦ КАК ИдентификаторФинЗаписи,
| ЗНАЧЕНИЕ(Справочник.НастройкиХозяйственныхОпераций.РеализацияПереданнойВозвратнойТары) КАК НастройкаХозяйственнойОперации
|
|ИЗ
| ДанныеДокументаШапка КАК ТаблицаДокумента
| ВНУТРЕННЕЕ СОЕДИНЕНИЕ ВтТаблицаВидыЗапасов КАК ТаблицаВидыЗапасов
| ПО ИСТИНА
|ГДЕ
| ТаблицаВидыЗапасов.ТипЗапасов В (ЗНАЧЕНИЕ(Перечисление.ТипыЗапасов.Товар), ЗНАЧЕНИЕ(Перечисление.ТипыЗапасов.КомиссионныйТовар))
| И ТаблицаВидыЗапасов.АналитикаУчетаНоменклатурыНоменклатураТипНоменклатуры = ЗНАЧЕНИЕ(Перечисление.ТипыНоменклатуры.МногооборотнаяТара)
| И ВЫБОР
| КОГДА НЕ ТаблицаВидыЗапасов.Ссылка ЕСТЬ NULL
| ТОГДА ИСТИНА
| КОНЕЦ";
РасчетСебестоимостиПроведениеДокументов.ДобавитьОписаниеОперацииДляОтраженияВУчетеСебестоимости(
ОписаниеОпераций,
Перечисления.ОперацииУчетаСебестоимости.ВыбытиеПоФиксированнойСтоимости,
ТекстЗапроса);
КонецЕсли;
#КонецОбласти
#Область Перемещение_Товар_ПередачаНаКомиссию
Если НЕ ДокументОбъект = Неопределено
И (ДокументОбъект.ХозяйственнаяОперация = Перечисления.ХозяйственныеОперации.ПередачаНаКомиссию) Тогда
ТекстЗапроса =
"ВЫБРАТЬ
| ТаблицаДокумента.Дата КАК Период,
| ТаблицаДокумента.Ссылка КАК Ссылка,
| НЕОПРЕДЕЛЕНО КАК КорректируемыйДокумент,
|
| ТаблицаДокумента.Организация КАК Организация,
| ТаблицаВидыЗапасов.АналитикаУчетаНоменклатуры КАК АналитикаУчетаНоменклатуры,
| ТаблицаВидыЗапасов.ВидЗапасов КАК ВидЗапасов,
| ТаблицаВидыЗапасов.ВидДеятельностиНДС КАК ВидДеятельностиНДС,
| ТаблицаВидыЗапасов.ВидДеятельностиНДС КАК ВидДеятельностиНДСДокумента,
|
| НЕОПРЕДЕЛЕНО КАК КорОрганизация,
| НЕОПРЕДЕЛЕНО КАК КорПартия,
| ТаблицаВидыЗапасов.АналитикаПереданнойНоменклатуры КАК КорАналитикаУчетаНоменклатуры,
| ТаблицаВидыЗапасов.ВидЗапасов КАК КорВидЗапасов,
|
| ТаблицаДокумента.Сделка КАК Сделка,
| ТаблицаДокумента.Подразделение КАК Подразделение,
| ТаблицаДокумента.Менеджер КАК Менеджер,
| НЕОПРЕДЕЛЕНО КАК ГруппаПродукции,
|
| ТаблицаВидыЗапасов.Количество КАК Количество,
| НЕОПРЕДЕЛЕНО КАК ИдентификаторСтроки,
|
| ВЫБОР
| КОГДА ТаблицаВидыЗапасов.ТипЗапасов = ЗНАЧЕНИЕ(Перечисление.ТипыЗапасов.КомиссионныйТовар)
| ТОГДА ЗНАЧЕНИЕ(Перечисление.РазделыУчетаСебестоимостиТоваров.ТоварыПринятыеНаКомиссию)
| ИНАЧЕ ВЫБОР КОГДА ТаблицаВидыЗапасов.ЦеховаяКладовая
| ТОГДА ЗНАЧЕНИЕ(Перечисление.РазделыУчетаСебестоимостиТоваров.ПроизводственныеЗатраты)
| ИНАЧЕ ЗНАЧЕНИЕ(Перечисление.РазделыУчетаСебестоимостиТоваров.ТоварыНаСкладах)
| КОНЕЦ
| КОНЕЦ КАК РазделУчета,
| ВЫБОР
| КОГДА ТаблицаВидыЗапасов.ТипЗапасов = ЗНАЧЕНИЕ(Перечисление.ТипыЗапасов.КомиссионныйТовар)
| ТОГДА ЗНАЧЕНИЕ(Перечисление.РазделыУчетаСебестоимостиТоваров.ТоварыПринятыеНаКомиссию)
| ИНАЧЕ ЗНАЧЕНИЕ(Перечисление.РазделыУчетаСебестоимостиТоваров.ТоварыПереданныеНаКомиссию)
| КОНЕЦ КАК КорРазделУчета,
| ТаблицаДокумента.ХозяйственнаяОперация КАК ХозяйственнаяОперация,
| ТаблицаВидыЗапасов.ИдентификаторСтроки КАК ИдентификаторФинЗаписи,
| &НастройкаХозяйственнойОперации КАК НастройкаХозяйственнойОперации
|
|ИЗ
| ДанныеДокументаШапка КАК ТаблицаДокумента
| ВНУТРЕННЕЕ СОЕДИНЕНИЕ ВтТаблицаВидыЗапасов КАК ТаблицаВидыЗапасов
| ПО ИСТИНА
|ГДЕ
| ТаблицаВидыЗапасов.ТипЗапасов В (ЗНАЧЕНИЕ(Перечисление.ТипыЗапасов.Товар), ЗНАЧЕНИЕ(Перечисление.ТипыЗапасов.КомиссионныйТовар))
| И (ТаблицаВидыЗапасов.АналитикаУчетаНоменклатурыНоменклатураТипНоменклатуры <> ЗНАЧЕНИЕ(Перечисление.ТипыНоменклатуры.МногооборотнаяТара)
| ИЛИ НЕ &ВернутьМногооборотнуюТару)
| И ВЫБОР
| КОГДА НЕ ТаблицаВидыЗапасов.Ссылка ЕСТЬ NULL
| ТОГДА ИСТИНА
| КОНЕЦ";
РасчетСебестоимостиПроведениеДокументов.ДобавитьОписаниеОперацииДляОтраженияВУчетеСебестоимости(
ОписаниеОпераций,
Перечисления.ОперацииУчетаСебестоимости.Перемещение,
ТекстЗапроса);
КонецЕсли;
#КонецОбласти
#Область ВнешнееПоступление_Товар_РеализацияКлиентуРеглУчет
Если НЕ ДокументОбъект = Неопределено
И (ДокументОбъект.ХозяйственнаяОперация = Перечисления.ХозяйственныеОперации.РеализацияКлиентуРеглУчет) Тогда
ТекстЗапроса =
"ВЫБРАТЬ
| ТаблицаДокумента.Дата КАК Период,
| ТаблицаДокумента.Ссылка КАК Ссылка,
| НЕОПРЕДЕЛЕНО КАК ДокументИсточник,
| НЕОПРЕДЕЛЕНО КАК ПериодДокументаИсточника,
| НЕОПРЕДЕЛЕНО КАК КорректируемыйДокумент,
|
| ЗНАЧЕНИЕ(Справочник.Организации.УправленческаяОрганизация) КАК Организация,
| ТаблицаВидыЗапасов.АналитикаУчетаНоменклатуры КАК АналитикаУчетаНоменклатуры,
| ТаблицаВидыЗапасов.ВидЗапасовПолучателя КАК ВидЗапасов,
| ТаблицаДокумента.Ссылка КАК Партия,
| &НалогообложениеОрганизации КАК ВидДеятельностиНДС,
| &НалогообложениеОрганизации КАК ВидДеятельностиНДСДокумента,
|
| ТаблицаВидыЗапасов.АналитикаУчетаПартий КАК АналитикаУчетаПартий,
| ТаблицаВидыЗапасов.АналитикаУчетаПартий КАК КорАналитикаУчетаПартий,
| ТаблицаДокумента.Партнер КАК Поставщик,
| ТаблицаДокумента.Контрагент КАК Контрагент,
| ТаблицаВидыЗапасов.СтавкаНДС КАК СтавкаНДС,
|
| НЕОПРЕДЕЛЕНО КАК КорАналитикаУчетаНоменклатуры,
| НЕОПРЕДЕЛЕНО КАК КорВидЗапасов,
|
| ТаблицаДокумента.Сделка КАК Сделка,
| ТаблицаДокумента.Подразделение КАК Подразделение,
| ТаблицаДокумента.Менеджер КАК Менеджер,
|
| ТаблицаВидыЗапасов.Количество КАК Количество,
| НЕОПРЕДЕЛЕНО КАК ИдентификаторСтроки,
| 0 КАК Стоимость,
| 0 КАК СтоимостьБезНДС,
| 0 КАК СтоимостьРегл,
| 0 КАК НДСРегл,
| 0 КАК СтоимостьУпр,
| 0 КАК НДСУпр,
| 0 КАК СтоимостьЗабалансовая,
| 0 КАК СтоимостьЗабалансоваяРегл,
| 0 КАК ДопРасходы,
| 0 КАК ДопРасходыБезНДС,
| 0 КАК ДопРасходыРегл,
| 0 КАК ДопРасходыУпр,
| 0 КАК ПостояннаяРазница,
| 0 КАК ВременнаяРазница,
| 0 КАК СтоимостьНДД,
| 0 КАК КорСтоимость,
|
| ТаблицаДокумента.ХозяйственнаяОперация КАК ХозяйственнаяОперация,
| ТаблицаВидыЗапасов.ИдентификаторСтроки КАК ИдентификаторФинЗаписи,
| &НастройкаХозяйственнойОперации КАК НастройкаХозяйственнойОперации
|
|ИЗ
| ДанныеДокументаШапка КАК ТаблицаДокумента
| ВНУТРЕННЕЕ СОЕДИНЕНИЕ ВтТаблицаВидыЗапасов КАК ТаблицаВидыЗапасов
| ПО ИСТИНА
|ГДЕ
| ТаблицаВидыЗапасов.Принципал = НЕОПРЕДЕЛЕНО
| И ТаблицаВидыЗапасов.ТипЗапасов В (
| ЗНАЧЕНИЕ(Перечисление.ТипыЗапасов.Товар),
| ЗНАЧЕНИЕ(Перечисление.ТипыЗапасов.КомиссионныйТовар))
| И (ТаблицаВидыЗапасов.АналитикаУчетаНоменклатурыНоменклатураТипНоменклатуры <> ЗНАЧЕНИЕ(Перечисление.ТипыНоменклатуры.МногооборотнаяТара)
| ИЛИ НЕ &ВернутьМногооборотнуюТару)
| И ВЫБОР
| КОГДА НЕ ТаблицаВидыЗапасов.Ссылка ЕСТЬ NULL
| ТОГДА ИСТИНА
| КОНЕЦ";
РасчетСебестоимостиПроведениеДокументов.ДобавитьОписаниеОперацииДляОтраженияВУчетеСебестоимости(
ОписаниеОпераций,
Перечисления.ОперацииУчетаСебестоимости.ВнешнееПоступление,
ТекстЗапроса);
КонецЕсли;
#КонецОбласти
#Область ВнешнееПоступление_Работа_РеализацияКлиентуРеглУчет
Если НЕ ДокументОбъект = Неопределено
И (ДокументОбъект.ХозяйственнаяОперация = Перечисления.ХозяйственныеОперации.РеализацияКлиентуРеглУчет
И ДокументОбъект.Статус <> Перечисления.СтатусыРеализацийТоваровУслуг.КПредоплате) Тогда
ТекстЗапроса =
"ВЫБРАТЬ
| ТаблицаДокумента.Дата КАК Период,
| ТаблицаДокумента.Ссылка КАК Ссылка,
| НЕОПРЕДЕЛЕНО КАК ДокументИсточник,
| НЕОПРЕДЕЛЕНО КАК ПериодДокументаИсточника,
| НЕОПРЕДЕЛЕНО КАК КорректируемыйДокумент,
|
| ЗНАЧЕНИЕ(Справочник.Организации.УправленческаяОрганизация) КАК Организация,
| ТаблицаВидыЗапасов.АналитикаУчетаНоменклатуры КАК АналитикаУчетаНоменклатуры,
| ТаблицаВидыЗапасов.ВидЗапасов КАК ВидЗапасов,
| ТаблицаДокумента.Ссылка КАК Партия,
| &НалогообложениеОрганизации КАК ВидДеятельностиНДС,
| &НалогообложениеОрганизации КАК ВидДеятельностиНДСДокумента,
|
| ТаблицаВидыЗапасов.АналитикаУчетаПартий КАК АналитикаУчетаПартий,
| ТаблицаВидыЗапасов.АналитикаУчетаПартий КАК КорАналитикаУчетаПартий,
| ТаблицаДокумента.Партнер КАК Поставщик,
| ТаблицаДокумента.Контрагент КАК Контрагент,
| ТаблицаВидыЗапасов.СтавкаНДС КАК СтавкаНДС,
|
| НЕОПРЕДЕЛЕНО КАК КорАналитикаУчетаНоменклатуры,
| НЕОПРЕДЕЛЕНО КАК КорВидЗапасов,
|
| ТаблицаДокумента.Сделка КАК Сделка,
| ТаблицаВидыЗапасов.Подразделение КАК Подразделение,
| ТаблицаДокумента.Менеджер КАК Менеджер,
|
| ТаблицаВидыЗапасов.Количество КАК Количество,
| НЕОПРЕДЕЛЕНО КАК ИдентификаторСтроки,
| 0 КАК Стоимость,
| 0 КАК СтоимостьБезНДС,
| 0 КАК СтоимостьРегл,
| 0 КАК НДСРегл,
| 0 КАК СтоимостьУпр,
| 0 КАК НДСУпр,
| 0 КАК СтоимостьЗабалансовая,
| 0 КАК СтоимостьЗабалансоваяРегл,
| 0 КАК ДопРасходы,
| 0 КАК ДопРасходыБезНДС,
| 0 КАК ДопРасходыРегл,
| 0 КАК ДопРасходыУпр,
| 0 КАК ПостояннаяРазница,
| 0 КАК ВременнаяРазница,
| 0 КАК СтоимостьНДД,
| 0 КАК КорСтоимость,
|
| ТаблицаДокумента.ХозяйственнаяОперация КАК ХозяйственнаяОперация,
| ТаблицаВидыЗапасов.ИдентификаторСтроки КАК ИдентификаторФинЗаписи,
| &НастройкаХозяйственнойОперации КАК НастройкаХозяйственнойОперации
|
|ИЗ
| ДанныеДокументаШапка КАК ТаблицаДокумента
| ВНУТРЕННЕЕ СОЕДИНЕНИЕ ВтРаботыУслуги КАК ТаблицаВидыЗапасов
| ПО ИСТИНА
|ГДЕ
| ТаблицаВидыЗапасов.ТипНоменклатуры = ЗНАЧЕНИЕ(Перечисление.ТипыНоменклатуры.Работа)
|";
РасчетСебестоимостиПроведениеДокументов.ДобавитьОписаниеОперацииДляОтраженияВУчетеСебестоимости(
ОписаниеОпераций,
Перечисления.ОперацииУчетаСебестоимости.ВнешнееПоступление,
ТекстЗапроса);
КонецЕсли;
#КонецОбласти
#Область Перемещение_Товар_РеализацияБезПереходаПраваСобственности
Если НЕ ДокументОбъект = Неопределено
И ((ДокументОбъект.ХозяйственнаяОперация = Перечисления.ХозяйственныеОперации.РеализацияБезПереходаПраваСобственности
ИЛИ ДокументОбъект.ХозяйственнаяОперация = Перечисления.ХозяйственныеОперации.РеализацияЧерезКомиссионераБезПереходаПраваСобственности)
И ДокументОбъект.Статус <> Перечисления.СтатусыРеализацийТоваровУслуг.КПредоплате) Тогда
ТекстЗапроса =
"ВЫБРАТЬ
| ТаблицаДокумента.Дата КАК Период,
| ТаблицаДокумента.Ссылка КАК Ссылка,
| НЕОПРЕДЕЛЕНО КАК КорректируемыйДокумент,
|
| ТаблицаДокумента.Организация КАК Организация,
| ТаблицаВидыЗапасов.АналитикаУчетаНоменклатуры КАК АналитикаУчетаНоменклатуры,
| ТаблицаВидыЗапасов.ВидЗапасов КАК ВидЗапасов,
| ТаблицаВидыЗапасов.ВидДеятельностиНДС КАК ВидДеятельностиНДС,
| ТаблицаВидыЗапасов.ВидДеятельностиНДС КАК ВидДеятельностиНДСДокумента,
|
| НЕОПРЕДЕЛЕНО КАК КорОрганизация,
| ТаблицаДокумента.Ссылка КАК КорПартия,
| ТаблицаВидыЗапасов.АналитикаПереданнойНоменклатуры КАК КорАналитикаУчетаНоменклатуры,
| ТаблицаВидыЗапасов.ВидЗапасов КАК КорВидЗапасов,
|
| ТаблицаДокумента.Сделка КАК Сделка,
| ТаблицаДокумента.Подразделение КАК Подразделение,
| ТаблицаДокумента.Менеджер КАК Менеджер,
| НЕОПРЕДЕЛЕНО КАК ГруппаПродукции,
|
| ТаблицаВидыЗапасов.Количество КАК Количество,
| НЕОПРЕДЕЛЕНО КАК ИдентификаторСтроки,
|
| ТаблицаДокумента.ХозяйственнаяОперация КАК ХозяйственнаяОперация,
| ТаблицаВидыЗапасов.ИдентификаторСтроки КАК ИдентификаторФинЗаписи,
| &НастройкаХозяйственнойОперации КАК НастройкаХозяйственнойОперации
|
|ИЗ
| ДанныеДокументаШапка КАК ТаблицаДокумента
| ВНУТРЕННЕЕ СОЕДИНЕНИЕ ВтТаблицаВидыЗапасов КАК ТаблицаВидыЗапасов
| ПО ИСТИНА
|ГДЕ
| (ТаблицаДокумента.ХозяйственнаяОперация = ЗНАЧЕНИЕ(Перечисление.ХозяйственныеОперации.РеализацияБезПереходаПраваСобственности)
| И ТаблицаВидыЗапасов.ТипЗапасов = ЗНАЧЕНИЕ(Перечисление.ТипыЗапасов.Товар)
| ИЛИ ТаблицаДокумента.ХозяйственнаяОперация = ЗНАЧЕНИЕ(Перечисление.ХозяйственныеОперации.РеализацияЧерезКомиссионераБезПереходаПраваСобственности)
| И ТаблицаВидыЗапасов.ТипЗапасов В (ЗНАЧЕНИЕ(Перечисление.ТипыЗапасов.Товар), ЗНАЧЕНИЕ(Перечисление.ТипыЗапасов.КомиссионныйТовар))
| )
| И (ТаблицаВидыЗапасов.АналитикаУчетаНоменклатурыНоменклатураТипНоменклатуры <> ЗНАЧЕНИЕ(Перечисление.ТипыНоменклатуры.МногооборотнаяТара)
| ИЛИ НЕ &ВернутьМногооборотнуюТару)
| И ВЫБОР
| КОГДА НЕ ТаблицаВидыЗапасов.Ссылка ЕСТЬ NULL
| ТОГДА ИСТИНА
| КОНЕЦ";
РасчетСебестоимостиПроведениеДокументов.ДобавитьОписаниеОперацииДляОтраженияВУчетеСебестоимости(
ОписаниеОпераций,
Перечисления.ОперацииУчетаСебестоимости.Перемещение,
ТекстЗапроса);
КонецЕсли;
#КонецОбласти
#Область Перемещение_КомиссионныйТовар_РеализацияБезПереходаПраваСобственности
Если НЕ ДокументОбъект = Неопределено
И (ДокументОбъект.ХозяйственнаяОперация = Перечисления.ХозяйственныеОперации.РеализацияБезПереходаПраваСобственности
И ДокументОбъект.Статус <> Перечисления.СтатусыРеализацийТоваровУслуг.КПредоплате) Тогда
ТекстЗапроса =
"ВЫБРАТЬ
| ТаблицаДокумента.Дата КАК Период,
| ТаблицаДокумента.Ссылка КАК Ссылка,
| НЕОПРЕДЕЛЕНО КАК КорректируемыйДокумент,
|
| ТаблицаДокумента.Организация КАК Организация,
| ТаблицаВидыЗапасов.АналитикаУчетаНоменклатуры КАК АналитикаУчетаНоменклатуры,
| ТаблицаВидыЗапасов.ВидЗапасов КАК ВидЗапасов,
| ТаблицаВидыЗапасов.ВидДеятельностиНДС КАК ВидДеятельностиНДС,
| ТаблицаВидыЗапасов.ВидДеятельностиНДС КАК ВидДеятельностиНДСДокумента,
|
| НЕОПРЕДЕЛЕНО КАК КорОрганизация,
| ТаблицаДокумента.Ссылка КАК КорПартия,
| ТаблицаВидыЗапасов.АналитикаПереданнойНоменклатуры КАК КорАналитикаУчетаНоменклатуры,
| ТаблицаВидыЗапасов.ВидЗапасов КАК КорВидЗапасов,
|
| ТаблицаДокумента.Сделка КАК Сделка,
| ТаблицаДокумента.Подразделение КАК Подразделение,
| ТаблицаДокумента.Менеджер КАК Менеджер,
| НЕОПРЕДЕЛЕНО КАК ГруппаПродукции,
|
| ТаблицаВидыЗапасов.Количество КАК Количество,
| НЕОПРЕДЕЛЕНО КАК ИдентификаторСтроки,
|
| ТаблицаДокумента.ХозяйственнаяОперация КАК ХозяйственнаяОперация,
| ТаблицаВидыЗапасов.ИдентификаторСтроки КАК ИдентификаторФинЗаписи,
| &НастройкаХозяйственнойОперации КАК НастройкаХозяйственнойОперации
|
|ИЗ
| ДанныеДокументаШапка КАК ТаблицаДокумента
| ВНУТРЕННЕЕ СОЕДИНЕНИЕ ВтТаблицаВидыЗапасов КАК ТаблицаВидыЗапасов
| ПО ИСТИНА
|ГДЕ
| ТаблицаДокумента.ХозяйственнаяОперация = ЗНАЧЕНИЕ(Перечисление.ХозяйственныеОперации.РеализацияБезПереходаПраваСобственности)
| И ТаблицаВидыЗапасов.ТипЗапасов = ЗНАЧЕНИЕ(Перечисление.ТипыЗапасов.КомиссионныйТовар)
| И (ТаблицаВидыЗапасов.АналитикаУчетаНоменклатурыНоменклатураТипНоменклатуры <> ЗНАЧЕНИЕ(Перечисление.ТипыНоменклатуры.МногооборотнаяТара)
| ИЛИ НЕ &ВернутьМногооборотнуюТару)
| И ВЫБОР
| КОГДА НЕ ТаблицаВидыЗапасов.Ссылка ЕСТЬ NULL
| ТОГДА ИСТИНА
| КОНЕЦ";
РасчетСебестоимостиПроведениеДокументов.ДобавитьОписаниеОперацииДляОтраженияВУчетеСебестоимости(
ОписаниеОпераций,
Перечисления.ОперацииУчетаСебестоимости.Перемещение,
ТекстЗапроса);
КонецЕсли;
#КонецОбласти
#Область Реализация_Товар_РеализацияБезПереходаПраваСобственности
Если НЕ ДокументОбъект = Неопределено
И ((ДокументОбъект.ХозяйственнаяОперация = Перечисления.ХозяйственныеОперации.РеализацияБезПереходаПраваСобственности
ИЛИ ДокументОбъект.ХозяйственнаяОперация = Перечисления.ХозяйственныеОперации.РеализацияЧерезКомиссионераБезПереходаПраваСобственности)
И ДокументОбъект.Статус = Перечисления.СтатусыРеализацийТоваровУслуг.Отгружено) Тогда
ТекстЗапроса =
"ВЫБРАТЬ
| ТаблицаДокумента.ДатаПереходаПраваСобственности КАК Период,
| ТаблицаДокумента.Ссылка КАК Ссылка,
| НЕОПРЕДЕЛЕНО КАК ДокументИсточник,
| НЕОПРЕДЕЛЕНО КАК ПериодДокументаИсточника,
| НЕОПРЕДЕЛЕНО КАК КорректируемыйДокумент,
|
| ТаблицаДокумента.Организация КАК Организация,
| ТаблицаВидыЗапасов.АналитикаПереданнойНоменклатуры КАК АналитикаУчетаНоменклатуры,
| ТаблицаВидыЗапасов.ВидЗапасов КАК ВидЗапасов,
| ТаблицаВидыЗапасов.ВидДеятельностиНДС КАК ВидДеятельностиНДС,
| ТаблицаВидыЗапасов.ВидДеятельностиНДС КАК ВидДеятельностиНДСДокумента,
|
| НЕОПРЕДЕЛЕНО КАК КорОрганизация,
| ТаблицаВидыЗапасов.АналитикаУчетаНоменклатуры КАК КорАналитикаУчетаНоменклатуры,
| НЕОПРЕДЕЛЕНО КАК КорВидЗапасов,
| НЕОПРЕДЕЛЕНО КАК КорПартия,
| НЕОПРЕДЕЛЕНО КАК КорАналитикаУчетаПартий,
| ТаблицаВидыЗапасов.АналитикаУчетаПоПартнерам КАК АналитикаУчетаПоПартнерам,
| ВЫБОР
| КОГДА ТаблицаДокумента.РеализацияПоЗаказам И &РеализацияПоНесколькимЗаказам
| ТОГДА ТаблицаВидыЗапасов.ЗаказКлиента
| КОГДА ТаблицаДокумента.РеализацияПоЗаказам И НЕ &РеализацияПоНесколькимЗаказам
| ТОГДА ТаблицаДокумента.ЗаказКлиента
| ИНАЧЕ ТаблицаДокумента.Ссылка
| КОНЕЦ КАК ЗаказКлиента,
|
| ТаблицаДокумента.Сделка КАК Сделка,
| ТаблицаДокумента.Подразделение КАК Подразделение,
| ТаблицаДокумента.Менеджер КАК Менеджер,
| НЕОПРЕДЕЛЕНО КАК ГруппаПродукции,
|
| ТаблицаВидыЗапасов.Количество КАК Количество,
| НЕОПРЕДЕЛЕНО КАК ИдентификаторСтроки,
|
| ТаблицаДокумента.ХозяйственнаяОперация КАК ХозяйственнаяОперация,
| ТаблицаВидыЗапасов.ИдентификаторСтроки КАК ИдентификаторФинЗаписи,
| &НастройкаХозяйственнойОперации КАК НастройкаХозяйственнойОперации
|
|ИЗ
| ДанныеДокументаШапка КАК ТаблицаДокумента
| ВНУТРЕННЕЕ СОЕДИНЕНИЕ ВтТаблицаВидыЗапасов КАК ТаблицаВидыЗапасов
| ПО ИСТИНА
|ГДЕ
| (ТаблицаДокумента.ХозяйственнаяОперация = ЗНАЧЕНИЕ(Перечисление.ХозяйственныеОперации.РеализацияБезПереходаПраваСобственности)
| И ТаблицаВидыЗапасов.ТипЗапасов = ЗНАЧЕНИЕ(Перечисление.ТипыЗапасов.Товар)
| ИЛИ ТаблицаДокумента.ХозяйственнаяОперация = ЗНАЧЕНИЕ(Перечисление.ХозяйственныеОперации.РеализацияЧерезКомиссионераБезПереходаПраваСобственности)
| И ТаблицаВидыЗапасов.ТипЗапасов В (ЗНАЧЕНИЕ(Перечисление.ТипыЗапасов.Товар), ЗНАЧЕНИЕ(Перечисление.ТипыЗапасов.КомиссионныйТовар))
| )
| И (ТаблицаВидыЗапасов.АналитикаУчетаНоменклатурыНоменклатураТипНоменклатуры <> ЗНАЧЕНИЕ(Перечисление.ТипыНоменклатуры.МногооборотнаяТара)
| ИЛИ НЕ &ВернутьМногооборотнуюТару)
| И ВЫБОР
| КОГДА НЕ ТаблицаВидыЗапасов.Ссылка ЕСТЬ NULL
| ТОГДА ИСТИНА
| КОНЕЦ";
РасчетСебестоимостиПроведениеДокументов.ДобавитьОписаниеОперацииДляОтраженияВУчетеСебестоимости(
ОписаниеОпераций,
Перечисления.ОперацииУчетаСебестоимости.Реализация,
ТекстЗапроса);
КонецЕсли;
#КонецОбласти
#Область Реализация_КомиссионныйТовар_РеализацияБезПереходаПраваСобственности
Если НЕ ДокументОбъект = Неопределено
И (ДокументОбъект.ХозяйственнаяОперация = Перечисления.ХозяйственныеОперации.РеализацияБезПереходаПраваСобственности
И ДокументОбъект.Статус = Перечисления.СтатусыРеализацийТоваровУслуг.Отгружено) Тогда
ТекстЗапроса =
"ВЫБРАТЬ
| ТаблицаДокумента.ДатаПереходаПраваСобственности КАК Период,
| ТаблицаДокумента.Ссылка КАК Ссылка,
| НЕОПРЕДЕЛЕНО КАК ДокументИсточник,
| НЕОПРЕДЕЛЕНО КАК ПериодДокументаИсточника,
| НЕОПРЕДЕЛЕНО КАК КорректируемыйДокумент,
|
| ТаблицаДокумента.Организация КАК Организация,
| ТаблицаВидыЗапасов.АналитикаПереданнойНоменклатуры КАК АналитикаУчетаНоменклатуры,
| ТаблицаВидыЗапасов.ВидЗапасов КАК ВидЗапасов,
| ТаблицаВидыЗапасов.ВидДеятельностиНДС КАК ВидДеятельностиНДС,
| ТаблицаВидыЗапасов.ВидДеятельностиНДС КАК ВидДеятельностиНДСДокумента,
|
| НЕОПРЕДЕЛЕНО КАК КорОрганизация,
| ТаблицаВидыЗапасов.АналитикаУчетаНоменклатуры КАК КорАналитикаУчетаНоменклатуры,
| НЕОПРЕДЕЛЕНО КАК КорВидЗапасов,
| НЕОПРЕДЕЛЕНО КАК КорПартия,
| НЕОПРЕДЕЛЕНО КАК КорАналитикаУчетаПартий,
| ТаблицаВидыЗапасов.АналитикаУчетаПоПартнерам КАК АналитикаУчетаПоПартнерам,
| ВЫБОР
| КОГДА ТаблицаДокумента.РеализацияПоЗаказам И &РеализацияПоНесколькимЗаказам
| ТОГДА ТаблицаВидыЗапасов.ЗаказКлиента
| КОГДА ТаблицаДокумента.РеализацияПоЗаказам И НЕ &РеализацияПоНесколькимЗаказам
| ТОГДА ТаблицаДокумента.ЗаказКлиента
| ИНАЧЕ ТаблицаДокумента.Ссылка
| КОНЕЦ КАК ЗаказКлиента,
|
| ТаблицаДокумента.Сделка КАК Сделка,
| ТаблицаДокумента.Подразделение КАК Подразделение,
| ТаблицаДокумента.Менеджер КАК Менеджер,
| НЕОПРЕДЕЛЕНО КАК ГруппаПродукции,
|
| ТаблицаВидыЗапасов.Количество КАК Количество,
| НЕОПРЕДЕЛЕНО КАК ИдентификаторСтроки,
|
| &РазделУчетаКомиссионныйТоварВПути КАК РазделУчета,
| ТаблицаДокумента.ХозяйственнаяОперация КАК ХозяйственнаяОперация,
| ТаблицаВидыЗапасов.ИдентификаторСтроки КАК ИдентификаторФинЗаписи,
| &НастройкаХозяйственнойОперации КАК НастройкаХозяйственнойОперации
|
|ИЗ
| ДанныеДокументаШапка КАК ТаблицаДокумента
| ВНУТРЕННЕЕ СОЕДИНЕНИЕ ВтТаблицаВидыЗапасов КАК ТаблицаВидыЗапасов
| ПО ИСТИНА
|ГДЕ
| ТаблицаВидыЗапасов.ТипЗапасов = ЗНАЧЕНИЕ(Перечисление.ТипыЗапасов.КомиссионныйТовар)
| И (ТаблицаВидыЗапасов.АналитикаУчетаНоменклатурыНоменклатураТипНоменклатуры <> ЗНАЧЕНИЕ(Перечисление.ТипыНоменклатуры.МногооборотнаяТара)
| ИЛИ НЕ &ВернутьМногооборотнуюТару)
| И ВЫБОР
| КОГДА НЕ ТаблицаВидыЗапасов.Ссылка ЕСТЬ NULL
| ТОГДА ИСТИНА
| КОНЕЦ";
РасчетСебестоимостиПроведениеДокументов.ДобавитьОписаниеОперацииДляОтраженияВУчетеСебестоимости(
ОписаниеОпераций,
Перечисления.ОперацииУчетаСебестоимости.Реализация,
ТекстЗапроса);
КонецЕсли;
#КонецОбласти
Возврат ОписаниеОпераций;
КонецФункции
Функция ОписаниеОперацийУчетаВыручки(Документ) Экспорт
ОписаниеОпераций = Новый Массив;
#Область Реализация
ТекстЗапроса =
"ВЫБРАТЬ
| ТаблицаДокумента.Дата КАК Период,
| ТаблицаДокумента.Ссылка КАК Ссылка,
| НЕОПРЕДЕЛЕНО КАК ДокументИсточник,
| НЕОПРЕДЕЛЕНО КАК ПериодДокументаИсточника,
| НЕОПРЕДЕЛЕНО КАК КорректируемыйДокумент,
|
| ТаблицаДокумента.Организация КАК Организация,
| ТаблицаВидыЗапасов.АналитикаУчетаНоменклатуры КАК АналитикаУчетаНоменклатуры,
| НЕОПРЕДЕЛЕНО КАК ВидЗапасов,
| ТаблицаВидыЗапасов.НалогообложениеНДС КАК ВидДеятельностиНДС,
| ТаблицаВидыЗапасов.НалогообложениеНДС КАК ВидДеятельностиНДСДокумента,
|
| НЕОПРЕДЕЛЕНО КАК КорОрганизация,
| НЕОПРЕДЕЛЕНО КАК КорАналитикаУчетаНоменклатуры,
| НЕОПРЕДЕЛЕНО КАК КорВидЗапасов,
| НЕОПРЕДЕЛЕНО КАК КорПартия,
| ТаблицаВидыЗапасов.АналитикаУчетаПоПартнерам КАК АналитикаУчетаПоПартнерам,
| ВЫБОР КОГДА &АктПоЗаказам ТОГДА
| ТаблицаВидыЗапасов.ЗаказКлиента
| ИНАЧЕ
| ТаблицаДокумента.Ссылка
| КОНЕЦ КАК ЗаказКлиента,
|
| ТаблицаДокумента.Сделка КАК Сделка,
| ТаблицаДокумента.Подразделение КАК Подразделение,
| ТаблицаДокумента.Менеджер КАК Менеджер,
| НЕОПРЕДЕЛЕНО КАК ГруппаПродукции,
|
| ТаблицаВидыЗапасов.Количество КАК Количество,
| ТаблицаВидыЗапасов.ИдентификаторСтроки КАК ИдентификаторСтроки,
|
| ЗНАЧЕНИЕ(Перечисление.ХозяйственныеОперации.РеализацияКлиенту) КАК ХозяйственнаяОперация,
| ТаблицаВидыЗапасов.ИдентификаторСтроки КАК ИдентификаторФинЗаписи,
| &НастройкаХозяйственнойОперации КАК НастройкаХозяйственнойОперации
|
|ИЗ
| ДанныеДокументаШапка КАК ТаблицаДокумента
| ВНУТРЕННЕЕ СОЕДИНЕНИЕ ВтРаботыУслуги КАК ТаблицаВидыЗапасов
| ПО ИСТИНА
|ГДЕ
| ТаблицаВидыЗапасов.НоменклатураТипНоменклатуры = ЗНАЧЕНИЕ(Перечисление.ТипыНоменклатуры.Работа)";
РасчетСебестоимостиПроведениеДокументов.ДобавитьОписаниеОперацииДляОтраженияВУчетеСебестоимости(
ОписаниеОпераций,
Перечисления.ОперацииУчетаСебестоимости.Реализация,
ТекстЗапроса);
#КонецОбласти
КонецФункции
#КонецОбласти
Функция ТекстЗапросаВременнаяТаблицаДвиженияКонтрагентКонтрагент(Запрос, ТекстыЗапроса)
ИмяВременнойТаблицы = "ВтДвиженияКонтрагентКонтрагент";
УстановитьПараметрыЗапросаКоэффициентыВалют(Запрос);
ТекстЗапроса =
"ВЫБРАТЬ
| ДанныеДокумента.Период КАК Период,
| ДанныеДокумента.ХозяйственнаяОперация КАК ХозяйственнаяОперация,
| ДанныеДокумента.Организация КАК Организация,
| ДанныеДокумента.Подразделение КАК Подразделение,
| ВЫБОР
| КОГДА ЕСТЬNULL(ДанныеДокумента.НаправлениеДеятельности.УчетРасчетовСПоставщиками, ЛОЖЬ) ТОГДА
| ДанныеДокумента.НаправлениеДеятельности
| КОНЕЦ КАК НаправлениеДеятельности,
|
| ДанныеДокумента.Партнер КАК Партнер,
| ДанныеДокумента.Контрагент КАК Контрагент,
| ДанныеДокумента.Договор КАК Договор,
| ДанныеДокумента.ОбъектРасчетов КАК ОбъектРасчетов,
|
| ДанныеДокумента.КорПартнер КАК КорПартнер,
| ДанныеДокумента.КорКонтрагент КАК КорКонтрагент,
| ВЫБОР
| КОГДА ЕСТЬNULL(ДанныеДокумента.КорНаправлениеДеятельности.УчетРасчетовСПоставщиками, ЛОЖЬ) ТОГДА
| ДанныеДокумента.КорНаправлениеДеятельности
| КОНЕЦ КАК КорНаправлениеДеятельности,
| ДанныеДокумента.КорДоговор КАК КорДоговор,
| ДанныеДокумента.КорОбъектРасчетов КАК КорОбъектРасчетов,
| ЗНАЧЕНИЕ(Перечисление.ТипыСуммЗадолженности.ДолгКлиента) КАК ТипСуммы,
| ЗНАЧЕНИЕ(Перечисление.ТипыСуммЗадолженности.ДолгКлиента) КАК КорТипСуммы,
| &Валюта КАК Валюта,
|
| СУММА(ДанныеДокумента.Сумма) КАК Сумма,
| СУММА(ДанныеДокумента.СуммаРегл) КАК СуммаРегл,
| СУММА(ДанныеДокумента.СуммаВВалюте) КАК СуммаВВалюте,
|
| ДанныеДокумента.ВалютаВзаиморасчетов КАК ВалютаВзаиморасчетов,
| СУММА(ДанныеДокумента.СуммаВВалютеВзаиморасчетов) КАК СуммаВВалютеВзаиморасчетов,
| ДанныеДокумента.КорВалютаВзаиморасчетов КАК КорВалютаВзаиморасчетов,
| СУММА(ДанныеДокумента.КорСуммаВВалютеВзаиморасчетов) КАК КорСуммаВВалютеВзаиморасчетов,
|
| ДанныеДокумента.ИсточникГФУРасчетов КАК ИсточникГФУРасчетов,
| ДанныеДокумента.КорИсточникГФУРасчетов КАК КорИсточникГФУРасчетов
|ПОМЕСТИТЬ ВтДвиженияКонтрагентКонтрагент
|ИЗ (
| ВЫБРАТЬ
| &Период КАК Период,
| ЗНАЧЕНИЕ(Перечисление.ХозяйственныеОперации.ПереносЗадолженностиМеждуФилиалами) КАК ХозяйственнаяОперация,
| ДанныеДокумента.Организация КАК Организация,
| ДанныеОбъектРасчетов.Подразделение КАК Подразделение,
|
| ДанныеДокумента.Партнер КАК Партнер,
| ДанныеДокумента.Контрагент КАК Контрагент,
| ДанныеДокумента.НаправлениеДеятельности КАК НаправлениеДеятельности,
| ДанныеДокумента.Договор КАК Договор,
| ДанныеОбъектРасчетов.Ссылка КАК ОбъектРасчетов,
|
| ЗНАЧЕНИЕ(Справочник.Партнеры.НашеПредприятие) КАК КорПартнер,
| ДанныеОбъектРасчетов.Организация КАК КорКонтрагент,
| ДанныеДокумента.НаправлениеДеятельности КАК КорНаправлениеДеятельности,
| ДанныеДокумента.Договор КАК КорДоговор,
| ДанныеОбъектРасчетов.Ссылка КАК КорОбъектРасчетов,
|
| ВЫБОР КОГДА ДанныеДокумента.ВалютаВзаиморасчетов = &ВалютаУправленческогоУчета
| ТОГДА ТаблицаТовары.СуммаВзаиморасчетов
| КОГДА ДанныеДокумента.Валюта = &ВалютаУправленческогоУчета
| ТОГДА ТаблицаТовары.СуммаСНДС
| ИНАЧЕ
| ВЫРАЗИТЬ(ТаблицаТовары.СуммаСНДС * &КоэффициентПересчетаВВалютуУпр КАК ЧИСЛО(31,2))
| КОНЕЦ КАК Сумма,
| ВЫБОР КОГДА ДанныеДокумента.ВалютаВзаиморасчетов = &ВалютаРегламентированногоУчета
| ТОГДА ТаблицаТовары.СуммаВзаиморасчетов
| КОГДА ДанныеДокумента.Валюта = &ВалютаРегламентированногоУчета
| ТОГДА ТаблицаТовары.СуммаСНДС
| ИНАЧЕ
| ВЫРАЗИТЬ(ТаблицаТовары.Сумма * &КоэффициентПересчетаВВалютуРегл КАК ЧИСЛО(31,2))
| КОНЕЦ КАК СуммаРегл,
| ТаблицаТовары.СуммаСНДС КАК СуммаВВалюте,
|
| ДанныеДокумента.ВалютаВзаиморасчетов КАК ВалютаВзаиморасчетов,
| ТаблицаТовары.СуммаВзаиморасчетов КАК СуммаВВалютеВзаиморасчетов,
|
| ДанныеДокумента.ВалютаВзаиморасчетов КАК КорВалютаВзаиморасчетов,
| ТаблицаТовары.СуммаВзаиморасчетов КАК КорСуммаВВалютеВзаиморасчетов,
|
| ДанныеОбъектРасчетов.Ссылка КАК ИсточникГФУРасчетов,
| ДанныеОбъектРасчетов.Ссылка КАК КорИсточникГФУРасчетов
| ИЗ
| ДанныеДокументаШапка КАК ДанныеДокумента
| ЛЕВОЕ СОЕДИНЕНИЕ ДанныеДокументаТаблицаТовары КАК ТаблицаТовары
| ПО ДанныеДокумента.Ссылка = ТаблицаТовары.Ссылка
| ЛЕВОЕ СОЕДИНЕНИЕ Справочник.ОбъектыРасчетов КАК ДанныеОбъектРасчетов
| ПО ДанныеДокумента.Договор = ДанныеОбъектРасчетов.Объект
| И НЕ ДанныеОбъектРасчетов.ПометкаУдаления
| ГДЕ
| ДанныеОбъектРасчетов.Организация <> ДанныеДокумента.Организация
|
| ОБЪЕДИНИТЬ ВСЕ
|
| ВЫБРАТЬ
| &Период КАК Период,
| ЗНАЧЕНИЕ(Перечисление.ХозяйственныеОперации.ПереносЗадолженностиМеждуФилиалами) КАК ХозяйственнаяОперация,
| ДанныеОбъектРасчетов.Организация КАК Организация,
| ДанныеОбъектРасчетов.Подразделение КАК Подразделение,
|
| ЗНАЧЕНИЕ(Справочник.Партнеры.НашеПредприятие) КАК Партнер,
| ДанныеДокумента.Организация КАК Контрагент,
| ДанныеДокумента.НаправлениеДеятельности КАК НаправлениеДеятельности,
| ДанныеДокумента.Договор КАК Договор,
| ДанныеОбъектРасчетов.Ссылка КАК ОбъектРасчетов,
|
| ДанныеДокумента.Партнер КАК КорПартнер,
| ДанныеДокумента.Контрагент КАК КорКонтрагент,
| ДанныеДокумента.НаправлениеДеятельности КАК КорНаправлениеДеятельности,
| ДанныеДокумента.Договор КАК КорДоговор,
| ДанныеОбъектРасчетов.Ссылка КАК КорОбъектРасчетов,
|
| ВЫБОР КОГДА ДанныеДокумента.ВалютаВзаиморасчетов = &ВалютаУправленческогоУчета
| ТОГДА ТаблицаТовары.СуммаВзаиморасчетов
| КОГДА ДанныеДокумента.Валюта = &ВалютаУправленческогоУчета
| ТОГДА ТаблицаТовары.СуммаСНДС
| ИНАЧЕ
| ВЫРАЗИТЬ(ТаблицаТовары.СуммаСНДС * &КоэффициентПересчетаВВалютуУпр КАК ЧИСЛО(31,2))
| КОНЕЦ КАК Сумма,
| ВЫБОР КОГДА ДанныеДокумента.ВалютаВзаиморасчетов = &ВалютаРегламентированногоУчета
| ТОГДА ТаблицаТовары.СуммаВзаиморасчетов
| КОГДА ДанныеДокумента.Валюта = &ВалютаРегламентированногоУчета
| ТОГДА ТаблицаТовары.СуммаСНДС
| ИНАЧЕ
| ВЫРАЗИТЬ(ТаблицаТовары.СуммаСНДС * &КоэффициентПересчетаВВалютуРегл КАК ЧИСЛО(31,2))
| КОНЕЦ КАК СуммаРегл,
| ТаблицаТовары.СуммаСНДС КАК СуммаВВалюте,
|
| ДанныеДокумента.ВалютаВзаиморасчетов КАК ВалютаВзаиморасчетов,
| ТаблицаТовары.СуммаВзаиморасчетов КАК СуммаВВалютеВзаиморасчетов,
|
| ДанныеДокумента.ВалютаВзаиморасчетов КАК КорВалютаВзаиморасчетов,
| ТаблицаТовары.СуммаВзаиморасчетов КАК КорСуммаВВалютеВзаиморасчетов,
|
| ДанныеОбъектРасчетов.Ссылка КАК ИсточникГФУРасчетов,
| ДанныеОбъектРасчетов.Ссылка КАК КорИсточникГФУРасчетов
| ИЗ
| ДанныеДокументаШапка КАК ДанныеДокумента
| ЛЕВОЕ СОЕДИНЕНИЕ ДанныеДокументаТаблицаТовары КАК ТаблицаТовары
| ПО ДанныеДокумента.Ссылка = ТаблицаТовары.Ссылка
| ЛЕВОЕ СОЕДИНЕНИЕ Справочник.ОбъектыРасчетов КАК ДанныеОбъектРасчетов
| ПО ДанныеДокумента.Договор = ДанныеОбъектРасчетов.Объект
| И НЕ ДанныеОбъектРасчетов.ПометкаУдаления
| ГДЕ
| ДанныеОбъектРасчетов.Организация <> ДанныеДокумента.Организация
|
| ) КАК ДанныеДокумента
|
|СГРУППИРОВАТЬ ПО
| ДанныеДокумента.Период,
| ДанныеДокумента.ХозяйственнаяОперация,
| ДанныеДокумента.Организация,
| ДанныеДокумента.Подразделение,
| ДанныеДокумента.Партнер,
| ДанныеДокумента.Контрагент,
| ВЫБОР
| КОГДА ЕСТЬNULL(ДанныеДокумента.НаправлениеДеятельности.УчетРасчетовСПоставщиками, ЛОЖЬ)
| ТОГДА ДанныеДокумента.НаправлениеДеятельности
| КОНЕЦ,
| ДанныеДокумента.Договор,
| ДанныеДокумента.ОбъектРасчетов,
| ДанныеДокумента.КорПартнер,
| ДанныеДокумента.КорКонтрагент,
| ВЫБОР
| КОГДА ЕСТЬNULL(ДанныеДокумента.КорНаправлениеДеятельности.УчетРасчетовСПоставщиками, ЛОЖЬ) ТОГДА
| ДанныеДокумента.КорНаправлениеДеятельности
| КОНЕЦ,
| ДанныеДокумента.КорДоговор,
| ДанныеДокумента.КорОбъектРасчетов,
| ДанныеДокумента.ВалютаВзаиморасчетов,
| ДанныеДокумента.КорВалютаВзаиморасчетов,
| ДанныеДокумента.ИсточникГФУРасчетов,
| ДанныеДокумента.КорИсточникГФУРасчетов
|";
ТекстыЗапроса.Добавить(ТекстЗапроса, ИмяВременнойТаблицы);
Возврат ТекстЗапроса;
КонецФункции
Функция ТекстЗапросаТаблицаДвиженияКонтрагентКонтрагент(Запрос, ТекстыЗапроса, Регистры)
ИмяРегистра = "ДвиженияКонтрагентКонтрагент";
Если НЕ ПроведениеДокументов.ТребуетсяТаблицаДляДвижений(ИмяРегистра, Регистры) Тогда
Возврат "";
КонецЕсли;
Если НЕ ПроведениеДокументов.ЕстьТаблицаЗапроса("ВтДвиженияКонтрагентКонтрагент", ТекстыЗапроса) Тогда
ТекстЗапросаВременнаяТаблицаДвиженияКонтрагентКонтрагент(Запрос, ТекстыЗапроса);
КонецЕсли;
ТекстЗапроса =
"ВЫБРАТЬ
| ДвиженияКонтрагентКонтрагент.Период КАК Период,
| ДвиженияКонтрагентКонтрагент.ХозяйственнаяОперация КАК ХозяйственнаяОперация,
| ДвиженияКонтрагентКонтрагент.Организация КАК Организация,
| ДвиженияКонтрагентКонтрагент.Подразделение КАК Подразделение,
| ДвиженияКонтрагентКонтрагент.НаправлениеДеятельности КАК НаправлениеДеятельности,
|
| ДвиженияКонтрагентКонтрагент.Партнер КАК Партнер,
| ДвиженияКонтрагентКонтрагент.Контрагент КАК Контрагент,
| ДвиженияКонтрагентКонтрагент.Договор КАК Договор,
| ДвиженияКонтрагентКонтрагент.ОбъектРасчетов КАК ОбъектРасчетов,
|
| ДвиженияКонтрагентКонтрагент.КорПартнер КАК КорПартнер,
| ДвиженияКонтрагентКонтрагент.КорКонтрагент КАК КорКонтрагент,
| ДвиженияКонтрагентКонтрагент.КорНаправлениеДеятельности КАК КорНаправлениеДеятельности,
| ДвиженияКонтрагентКонтрагент.КорДоговор КАК КорДоговор,
| ДвиженияКонтрагентКонтрагент.КорОбъектРасчетов КАК КорОбъектРасчетов,
| ДвиженияКонтрагентКонтрагент.ТипСуммы КАК ТипСуммы,
| ДвиженияКонтрагентКонтрагент.КорТипСуммы КАК КорТипСуммы,
| ДвиженияКонтрагентКонтрагент.Валюта КАК Валюта,
|
| ДвиженияКонтрагентКонтрагент.Сумма КАК Сумма,
| ДвиженияКонтрагентКонтрагент.СуммаРегл КАК СуммаРегл,
| ДвиженияКонтрагентКонтрагент.СуммаВВалюте КАК СуммаВВалюте,
|
| ДвиженияКонтрагентКонтрагент.ВалютаВзаиморасчетов КАК ВалютаВзаиморасчетов,
| ДвиженияКонтрагентКонтрагент.СуммаВВалютеВзаиморасчетов КАК СуммаВВалютеВзаиморасчетов,
| ДвиженияКонтрагентКонтрагент.КорВалютаВзаиморасчетов КАК КорВалютаВзаиморасчетов,
| ДвиженияКонтрагентКонтрагент.КорСуммаВВалютеВзаиморасчетов КАК КорСуммаВВалютеВзаиморасчетов,
|
| ДвиженияКонтрагентКонтрагент.ИсточникГФУРасчетов КАК ИсточникГФУРасчетов,
| ДвиженияКонтрагентКонтрагент.КорИсточникГФУРасчетов КАК КорИсточникГФУРасчетов
|
|ИЗ
| ВтДвиженияКонтрагентКонтрагент КАК ДвиженияКонтрагентКонтрагент
|";
ТекстыЗапроса.Добавить(ТекстЗапроса, ИмяРегистра);
Возврат ТекстЗапроса;
КонецФункции
Функция ТекстЗапросаТаблицаДвиженияПоПрочимАктивамПассивам(Запрос, ТекстыЗапроса, Регистры, ДокументОбъект)
ИмяРегистра = "ДвиженияПоПрочимАктивамПассивам";
Если НЕ ПроведениеДокументов.ТребуетсяТаблицаДляДвижений(ИмяРегистра, Регистры) Тогда
Возврат "";
КонецЕсли;
МассивЗапросов = Новый Массив;
Если (ДокументОбъект.ХозяйственнаяОперация = Перечисления.ХозяйственныеОперации.РеализацияБезПереходаПраваСобственности
ИЛИ ДокументОбъект.ХозяйственнаяОперация = Перечисления.ХозяйственныеОперации.РеализацияЧерезКомиссионераБезПереходаПраваСобственности)
И ДокументОбъект.Статус <> Перечисления.СтатусыРеализацийТоваровУслуг.КПредоплате Тогда
ТекстЗапроса =
"ВЫБРАТЬ
| &Период КАК Период,
| &Организация КАК Организация,
| &Подразделение КАК Подразделение,
| ТаблицаВидыЗапасов.НаправлениеДеятельности КАК НаправлениеДеятельности,
| ЗНАЧЕНИЕ(ПланВидовХарактеристик.СтатьиАктивовПассивов.НДСПоОтгрузкамБезПереходаПраваСобственности) КАК Статья,
| ВЫБОР
| КОГДА &ХозяйственнаяОперация = ЗНАЧЕНИЕ(Перечисление.ХозяйственныеОперации.РеализацияЧерезКомиссионераБезПереходаПраваСобственности)
| ТОГДА &КлиентКонтрагент
| ИНАЧЕ &Контрагент
| КОНЕЦ КАК Аналитика,
| ЗНАЧЕНИЕ(Справочник.НастройкиСчетовУчетаПрочихОпераций.ПустаяСсылка) КАК НастройкаСчетовУчета,
| ЗНАЧЕНИЕ(Перечисление.ВидыДвиженийПрочихАктивовПассивов.Дебет) КАК ДебетКредит,
|
| ТаблицаВидыЗапасов.НДСРегл КАК СуммаРегл,
| ТаблицаВидыЗапасов.СуммаСНДСУпр - ТаблицаВидыЗапасов.СуммаБезНДСУпр КАК СуммаУпр,
| ТаблицаВидыЗапасов.СуммаСНДСУпр КАК СуммаСНДС,
| ТаблицаВидыЗапасов.СуммаБезНДСУпр КАК СуммаБезНДС,
|
| НЕОПРЕДЕЛЕНО КАК ОбъектРасчетов,
| ТаблицаВидыЗапасов.ИдентификаторСтроки КАК ИдентификаторФинЗаписи,
| ЗНАЧЕНИЕ(Справочник.НастройкиХозяйственныхОпераций.НачислениеНДСпоОтгрузкеТоваровВПути) КАК НастройкаХозяйственнойОперации
|
|ИЗ
| ВтТаблицаВидыЗапасов КАК ТаблицаВидыЗапасов
|
|ГДЕ
| ТаблицаВидыЗапасов.ТипЗапасов В (&ТипыЗапасовСобственные)
| И (ТаблицаВидыЗапасов.НоменклатураТипНоменклатуры = ЗНАЧЕНИЕ(Перечисление.ТипыНоменклатуры.Товар)
| ИЛИ ТаблицаВидыЗапасов.НоменклатураТипНоменклатуры = ЗНАЧЕНИЕ(Перечисление.ТипыНоменклатуры.МногооборотнаяТара)
| И НЕ &ВернутьМногооборотнуюТару)";
МассивЗапросов.Добавить(ТекстЗапроса);
КонецЕсли;
Если (ДокументОбъект.ХозяйственнаяОперация = Перечисления.ХозяйственныеОперации.РеализацияБезПереходаПраваСобственности
ИЛИ ДокументОбъект.ХозяйственнаяОперация = Перечисления.ХозяйственныеОперации.РеализацияЧерезКомиссионераБезПереходаПраваСобственности)
И ДокументОбъект.Статус <> Перечисления.СтатусыРеализацийТоваровУслуг.КПредоплате Тогда
ТекстЗапроса =
"ВЫБРАТЬ
| &Период КАК Период,
| &Организация КАК Организация,
| ТаблицаТовары.Подразделение КАК Подразделение,
| СпрНазначения.НаправлениеДеятельности КАК НаправлениеДеятельности,
| ЗНАЧЕНИЕ(ПланВидовХарактеристик.СтатьиАктивовПассивов.НДСПоОтгрузкамБезПереходаПраваСобственности) КАК Статья,
| ВЫБОР
| КОГДА &ХозяйственнаяОперация = ЗНАЧЕНИЕ(Перечисление.ХозяйственныеОперации.РеализацияЧерезКомиссионераБезПереходаПраваСобственности)
| ТОГДА &КлиентКонтрагент
| ИНАЧЕ &Контрагент
| КОНЕЦ КАК Аналитика,
| ЗНАЧЕНИЕ(Справочник.НастройкиСчетовУчетаПрочихОпераций.ПустаяСсылка) КАК НастройкаСчетовУчета,
| ЗНАЧЕНИЕ(Перечисление.ВидыДвиженийПрочихАктивовПассивов.Дебет) КАК ДебетКредит,
|
| ТаблицаТовары.НДСРегл КАК СуммаРегл,
| ТаблицаТовары.СуммаСНДСУпр - ТаблицаТовары.СуммаБезНДСУпр КАК СуммаУпр,
| ТаблицаТовары.СуммаСНДСУпр КАК СуммаСНДС,
| ТаблицаТовары.СуммаБезНДСУпр КАК СуммаБезНДС,
|
| НЕОПРЕДЕЛЕНО КАК ОбъектРасчетов,
| ТаблицаТовары.ИдентификаторСтроки КАК ИдентификаторФинЗаписи,
| ЗНАЧЕНИЕ(Справочник.НастройкиХозяйственныхОпераций.НачислениеНДСпоОтгрузкеТоваровВПути) КАК НастройкаХозяйственнойОперации
|
|ИЗ
| ВтРаботыУслуги КАК ТаблицаТовары
| ЛЕВОЕ СОЕДИНЕНИЕ Справочник.Назначения КАК СпрНазначения
| ПО ТаблицаТовары.АналитикаУчетаНоменклатурыНазначение = СпрНазначения.Ссылка
|";
МассивЗапросов.Добавить(ТекстЗапроса);
КонецЕсли;
Если (ДокументОбъект.ХозяйственнаяОперация = Перечисления.ХозяйственныеОперации.РеализацияБезПереходаПраваСобственности
ИЛИ ДокументОбъект.ХозяйственнаяОперация = Перечисления.ХозяйственныеОперации.РеализацияЧерезКомиссионераБезПереходаПраваСобственности)
И ДокументОбъект.Статус = Перечисления.СтатусыРеализацийТоваровУслуг.Отгружено Тогда
ТекстЗапроса =
"ВЫБРАТЬ
| &ДатаПереходаПраваСобственности КАК Период,
| &Организация КАК Организация,
| &Подразделение КАК Подразделение,
| ТаблицаВидыЗапасов.НаправлениеДеятельности КАК НаправлениеДеятельности,
| ЗНАЧЕНИЕ(ПланВидовХарактеристик.СтатьиАктивовПассивов.НДСПоОтгрузкамБезПереходаПраваСобственности) КАК Статья,
| ВЫБОР
| КОГДА &ХозяйственнаяОперация = ЗНАЧЕНИЕ(Перечисление.ХозяйственныеОперации.РеализацияЧерезКомиссионераБезПереходаПраваСобственности)
| ТОГДА &КлиентКонтрагент
| ИНАЧЕ &Контрагент
| КОНЕЦ КАК Аналитика,
| ЗНАЧЕНИЕ(Справочник.НастройкиСчетовУчетаПрочихОпераций.ПустаяСсылка) КАК НастройкаСчетовУчета,
| ЗНАЧЕНИЕ(Перечисление.ВидыДвиженийПрочихАктивовПассивов.Кредит) КАК ДебетКредит,
|
| ТаблицаВидыЗапасов.НДСРегл КАК СуммаРегл,
| ТаблицаВидыЗапасов.СуммаСНДСУпр - ТаблицаВидыЗапасов.СуммаБезНДСУпр КАК СуммаУпр,
| ТаблицаВидыЗапасов.СуммаСНДСУпр КАК СуммаСНДС,
| ТаблицаВидыЗапасов.СуммаБезНДСУпр КАК СуммаБезНДС,
|
| ТаблицаВидыЗапасов.ОбъектРасчетов КАК ОбъектРасчетов,
| ТаблицаВидыЗапасов.ИдентификаторСтроки КАК ИдентификаторФинЗаписи,
| &НастройкаХозяйственнойОперации КАК НастройкаХозяйственнойОперации
|
|ИЗ
| ВтТаблицаВидыЗапасов КАК ТаблицаВидыЗапасов
|
|ГДЕ
| ТаблицаВидыЗапасов.ТипЗапасов В (&ТипыЗапасовСобственные)
| И (ТаблицаВидыЗапасов.НоменклатураТипНоменклатуры = ЗНАЧЕНИЕ(Перечисление.ТипыНоменклатуры.Товар)
| ИЛИ ТаблицаВидыЗапасов.НоменклатураТипНоменклатуры = ЗНАЧЕНИЕ(Перечисление.ТипыНоменклатуры.МногооборотнаяТара)
| И НЕ &ВернутьМногооборотнуюТару)";
МассивЗапросов.Добавить(ТекстЗапроса);
КонецЕсли;
Если (ДокументОбъект.ХозяйственнаяОперация = Перечисления.ХозяйственныеОперации.РеализацияБезПереходаПраваСобственности
ИЛИ ДокументОбъект.ХозяйственнаяОперация = Перечисления.ХозяйственныеОперации.РеализацияЧерезКомиссионераБезПереходаПраваСобственности)
И ДокументОбъект.Статус = Перечисления.СтатусыРеализацийТоваровУслуг.Отгружено Тогда
ТекстЗапроса =
"ВЫБРАТЬ
| &ДатаПереходаПраваСобственности КАК Период,
| &Организация КАК Организация,
| ТаблицаТовары.Подразделение КАК Подразделение,
| СпрНазначения.НаправлениеДеятельности КАК НаправлениеДеятельности,
| ЗНАЧЕНИЕ(ПланВидовХарактеристик.СтатьиАктивовПассивов.НДСПоОтгрузкамБезПереходаПраваСобственности) КАК Статья,
| ВЫБОР
| КОГДА &ХозяйственнаяОперация = ЗНАЧЕНИЕ(Перечисление.ХозяйственныеОперации.РеализацияЧерезКомиссионераБезПереходаПраваСобственности)
| ТОГДА &КлиентКонтрагент
| ИНАЧЕ &Контрагент
| КОНЕЦ КАК Аналитика,
| ЗНАЧЕНИЕ(Справочник.НастройкиСчетовУчетаПрочихОпераций.ПустаяСсылка) КАК НастройкаСчетовУчета,
| ЗНАЧЕНИЕ(Перечисление.ВидыДвиженийПрочихАктивовПассивов.Кредит) КАК ДебетКредит,
|
| ТаблицаТовары.НДСРегл КАК СуммаРегл,
| ТаблицаТовары.СуммаСНДСУпр - ТаблицаТовары.СуммаБезНДСУпр КАК СуммаУпр,
| ТаблицаТовары.СуммаСНДСУпр КАК СуммаСНДС,
| ТаблицаТовары.СуммаБезНДСУпр КАК СуммаБезНДС,
|
| ТаблицаТовары.ОбъектРасчетов КАК ОбъектРасчетов,
| ТаблицаТовары.ИдентификаторСтроки КАК ИдентификаторФинЗаписи,
| &НастройкаХозяйственнойОперации КАК НастройкаХозяйственнойОперации
|
|ИЗ
| ВтРаботыУслуги КАК ТаблицаТовары
| ЛЕВОЕ СОЕДИНЕНИЕ Справочник.Назначения КАК СпрНазначения
| ПО ТаблицаТовары.АналитикаУчетаНоменклатурыНазначение = СпрНазначения.Ссылка
|";
МассивЗапросов.Добавить(ТекстЗапроса);
КонецЕсли;
Если ДокументОбъект.ХозяйственнаяОперация = Перечисления.ХозяйственныеОперации.ПереходПраваСобственности
И ДокументОбъект.Статус = Перечисления.СтатусыРеализацийТоваровУслуг.Отгружено Тогда
ТекстЗапроса =
"ВЫБРАТЬ
| &Период КАК Период,
| &Организация КАК Организация,
| &Подразделение КАК Подразделение,
| ТаблицаВидыЗапасов.НаправлениеДеятельности КАК НаправлениеДеятельности,
| ЗНАЧЕНИЕ(ПланВидовХарактеристик.СтатьиАктивовПассивов.НДСПоОтгрузкамБезПереходаПраваСобственности) КАК Статья,
| &Контрагент КАК Аналитика,
| ЗНАЧЕНИЕ(Справочник.НастройкиСчетовУчетаПрочихОпераций.ПустаяСсылка) КАК НастройкаСчетовУчета,
| ЗНАЧЕНИЕ(Перечисление.ВидыДвиженийПрочихАктивовПассивов.Кредит) КАК ДебетКредит,
|
| ТаблицаВидыЗапасов.НДСРегл КАК СуммаРегл,
| ТаблицаВидыЗапасов.СуммаСНДСУпр - ТаблицаВидыЗапасов.СуммаБезНДСУпр КАК СуммаУпр,
| ТаблицаВидыЗапасов.СуммаСНДСУпр КАК СуммаСНДС,
| ТаблицаВидыЗапасов.СуммаБезНДСУпр КАК СуммаБезНДС,
|
| ТаблицаВидыЗапасов.ОбъектРасчетов КАК ОбъектРасчетов,
| ТаблицаВидыЗапасов.ИдентификаторСтроки КАК ИдентификаторФинЗаписи,
| &НастройкаХозяйственнойОперации КАК НастройкаХозяйственнойОперации
|
|ИЗ
| ВтТаблицаВидыЗапасов КАК ТаблицаВидыЗапасов
|
|ГДЕ
| ТаблицаВидыЗапасов.ТипЗапасов В (&ТипыЗапасовСобственные)
| И (ТаблицаВидыЗапасов.НоменклатураТипНоменклатуры = ЗНАЧЕНИЕ(Перечисление.ТипыНоменклатуры.Товар)
| ИЛИ ТаблицаВидыЗапасов.НоменклатураТипНоменклатуры = ЗНАЧЕНИЕ(Перечисление.ТипыНоменклатуры.МногооборотнаяТара)
| И НЕ &ВернутьМногооборотнуюТару)";
МассивЗапросов.Добавить(ТекстЗапроса);
КонецЕсли;
Если МассивЗапросов.Количество() = 0 Тогда
Возврат "";
КонецЕсли;
Если НЕ ПроведениеДокументов.ЕстьТаблицаЗапроса("ВтТаблицаВидыЗапасов", ТекстыЗапроса) Тогда
ТекстЗапросаВтТаблицаВидыЗапасов(Запрос, ТекстыЗапроса, ДокументОбъект);
КонецЕсли;
Если НЕ ПроведениеДокументов.ЕстьТаблицаЗапроса("ВТРаботыУслуги", ТекстыЗапроса) Тогда
ТекстЗапросаВТРаботыУслуги(Запрос, ТекстыЗапроса, ДокументОбъект);
КонецЕсли;
Если НЕ ПроведениеДокументов.ЕстьТаблицаЗапроса("ВтДвиженияКонтрагентКонтрагент", ТекстыЗапроса) Тогда
ТекстЗапросаВременнаяТаблицаДвиженияКонтрагентКонтрагент(Запрос, ТекстыЗапроса);
КонецЕсли;
ТекстЗапроса = СтрСоединить(МассивЗапросов, ОбщегоНазначенияУТ.РазделительЗапросовВОбъединении());
ТекстЗапроса = ТекстЗапроса
+ ОбщегоНазначенияУТ.РазделительЗапросовВОбъединении()
+ ПрочиеАктивыПассивыСервер.ТекстЗапросаВзаимозачетСФилиалами(, Истина);
ТекстыЗапроса.Добавить(ТекстЗапроса, ИмяРегистра);
Возврат ТекстЗапроса;
КонецФункции
Функция ТекстЗапросаБонусныеБаллы(Запрос, ТекстыЗапроса, Регистры, ДокументОбъект)
ИмяРегистра = "БонусныеБаллы";
Если НЕ БонусныеБаллыСервер.ТребуетсяДобавитьДвиженияПоРегиструБонусныеБаллы(ДокументОбъект.Ссылка) Тогда
Возврат "";
КонецЕсли;
Если НЕ ПроведениеДокументов.ТребуетсяТаблицаДляДвижений(ИмяРегистра, Регистры) Тогда
Возврат "";
КонецЕсли;
Если НЕ (ДокументОбъект.Статус <> Перечисления.СтатусыРеализацийТоваровУслуг.КПредоплате) Тогда
Возврат "";
КонецЕсли;
Если НЕ ПроведениеДокументов.ЕстьТаблицаЗапроса("ВтБонусныеБаллы", ТекстыЗапроса) Тогда
ТекстЗапросаВтБонусныеБаллы(Запрос, ТекстыЗапроса);
КонецЕсли;
ТекстЗапроса =
"ВЫБРАТЬ
| БонусныеБаллы.Период КАК Период,
| БонусныеБаллы.ДатаНачалаДействия КАК ДатаНачалаДействия,
| БонусныеБаллы.ДатаКОбработке КАК ДатаКОбработке,
| БонусныеБаллы.ВидДвижения КАК ВидДвижения,
| БонусныеБаллы.БонуснаяПрограммаЛояльности КАК БонуснаяПрограммаЛояльности,
| БонусныеБаллы.Партнер КАК Партнер,
| СУММА(БонусныеБаллы.Начислено) КАК Начислено,
| СУММА(БонусныеБаллы.КСписанию) КАК КСписанию
|ИЗ
| ВтБонусныеБаллы КАК БонусныеБаллы
|СГРУППИРОВАТЬ ПО
| БонусныеБаллы.БонуснаяПрограммаЛояльности,
| БонусныеБаллы.Партнер,
| БонусныеБаллы.Период,
| БонусныеБаллы.ДатаНачалаДействия,
| БонусныеБаллы.ДатаКОбработке,
| БонусныеБаллы.ВидДвижения
|ИМЕЮЩИЕ
| СУММА(БонусныеБаллы.Начислено) <> 0
| ИЛИ СУММА(БонусныеБаллы.КСписанию) <> 0";
ТекстыЗапроса.Добавить(ТекстЗапроса, ИмяРегистра);
Возврат ТекстЗапроса;
КонецФункции
Функция ТекстЗапросаВтБонусныеБаллы(Запрос, ТекстыЗапроса)
ИмяРегистра = "ВтБонусныеБаллы";
ТекстЗапроса =
"ВЫБРАТЬ
| ТабличнаяЧасть.ДатаНачисления КАК Период,
| ВЫБОР
| КОГДА ТабличнаяЧасть.ДатаСписания <> ДАТАВРЕМЯ(1, 1, 1)
| ТОГДА ТабличнаяЧасть.ДатаНачисления
| ИНАЧЕ ДАТАВРЕМЯ(1, 1, 1)
| КОНЕЦ КАК ДатаНачалаДействия,
| ВЫБОР
| КОГДА ТабличнаяЧасть.ДатаСписания <> ДАТАВРЕМЯ(1, 1, 1)
| ТОГДА &ТекущаяДата
| ИНАЧЕ ДАТАВРЕМЯ(1, 1, 1)
| КОНЕЦ КАК ДатаКОбработке,
| ЗНАЧЕНИЕ(ВидДвиженияНакопления.Приход) КАК ВидДвижения,
| ТабличнаяЧасть.БонуснаяПрограммаЛояльности КАК БонуснаяПрограммаЛояльности,
| &Партнер КАК Партнер,
| ТабличнаяЧасть.СуммаБонусныхБаллов КАК Начислено,
| 0 КАК КСписанию
|ПОМЕСТИТЬ ВтБонусныеБаллы
|ИЗ
| ДанныеДокументаТаблицаНачислениеБонусныхБаллов КАК ТабличнаяЧасть
| ЛЕВОЕ СОЕДИНЕНИЕ ДанныеДокументаШапка КАК ДанныеДокументаШапка
| ПО ТабличнаяЧасть.Ссылка = ДанныеДокументаШапка.Ссылка
|ГДЕ
| ТабличнаяЧасть.ДатаНачисления <> ДатаВремя(1, 1, 1)
|
|ОБЪЕДИНИТЬ ВСЕ
|
|ВЫБРАТЬ
| ТабличнаяЧасть.ДатаСписания КАК Период,
| ТабличнаяЧасть.ДатаНачисления КАК ДатаНачалаДействия,
| &ТекущаяДата КАК ДатаКОбработке,
| ЗНАЧЕНИЕ(ВидДвиженияНакопления.Приход) КАК ВидДвижения,
| ТабличнаяЧасть.БонуснаяПрограммаЛояльности КАК БонуснаяПрограммаЛояльности,
| &Партнер КАК Партнер,
| 0 КАК Начислено,
| ТабличнаяЧасть.СуммаБонусныхБаллов КАК КСписанию
|ИЗ
| ДанныеДокументаТаблицаНачислениеБонусныхБаллов КАК ТабличнаяЧасть
| ЛЕВОЕ СОЕДИНЕНИЕ ДанныеДокументаШапка КАК ДанныеДокументаШапка
| ПО ТабличнаяЧасть.Ссылка = ДанныеДокументаШапка.Ссылка
|ГДЕ
| ТабличнаяЧасть.ДатаСписания <> ДатаВремя(1, 1, 1)
|
|ОБЪЕДИНИТЬ ВСЕ
|
|ВЫБРАТЬ
| НачалоПериода(&Период, ДЕНЬ),
| ДатаВремя(1, 1, 1),
| &ТекущаяДата,
| ЗНАЧЕНИЕ(ВидДвиженияНакопления.Расход),
| &БонуснаяПрограммаЛояльности,
| &Партнер,
| ТабличнаяЧасть.СуммаБонусныхБалловКСписанию,
| 0
|ИЗ
| ДанныеДокументаТаблицаТовары КАК ТабличнаяЧасть
| ЛЕВОЕ СОЕДИНЕНИЕ ДанныеДокументаШапка КАК ДанныеДокументаШапка
| ПО ТабличнаяЧасть.Ссылка = ДанныеДокументаШапка.Ссылка
|ГДЕ
| ТабличнаяЧасть.СуммаБонусныхБалловКСписанию <> 0
| И (ТабличнаяЧасть.КодСтроки = 0
| ИЛИ ЕСТЬNULL(ТабличнаяЧасть.ЗаказКлиентаЭтоЗаказКакСчет, НЕ &ИспользоватьРасширенныеВозможностиЗаказаКлиента))
|";
ТекстыЗапроса.Добавить(ТекстЗапроса, ИмяРегистра);
Возврат ТекстЗапроса;
КонецФункции
Процедура ОтразитьРаспределениеЗапасовДвижения(Запрос, ТекстыЗапроса, Регистры)
ТекстЗапросаТабЧасть =
"ВЫБРАТЬ
| ТабЧасть.Ссылка КАК Ссылка,
| ТабЧасть.Ссылка.Дата КАК Период,
| ТабЧасть.Номенклатура КАК Номенклатура,
| ТабЧасть.Характеристика КАК Характеристика,
|
| ВЫБОР КОГДА ТабЧасть.Номенклатура.ТипНоменклатуры = ЗНАЧЕНИЕ(Перечисление.ТипыНоменклатуры.Работа) ТОГДА
| ТабЧасть.Подразделение
| ИНАЧЕ
| ТабЧасть.Склад
| КОНЕЦ КАК Склад,
|
| ТабЧасть.Назначение КАК Назначение,
| ТабЧасть.Количество КАК Количество,
| ВЫБОР
| КОГДА ТабЧасть.Номенклатура.ТипНоменклатуры = ЗНАЧЕНИЕ(Перечисление.ТипыНоменклатуры.Работа)
| ТОГДА ЗНАЧЕНИЕ(Перечисление.ВариантыОбеспечения.КОбеспечению)
| ИНАЧЕ ЗНАЧЕНИЕ(Перечисление.ВариантыОбеспечения.СоСклада)
| КОНЕЦ КАК ВариантОбеспечения,
| ТабЧасть.Ссылка КАК Заказ,
| НЕОПРЕДЕЛЕНО КАК ЖелаемаяДатаОтгрузки,
| ЛОЖЬ КАК ПоГрафику,
| НЕОПРЕДЕЛЕНО КАК РаспоряжениеВГрафике,
| 0 КАК КоличествоВГрафике
|
|ИЗ
| Документ.РеализацияТоваровУслуг.Товары КАК ТабЧасть
|ГДЕ
| ТабЧасть.Ссылка.ХозяйственнаяОперация <> ЗНАЧЕНИЕ(Перечисление.ХозяйственныеОперации.РеализацияКлиентуРеглУчет)
| И ТабЧасть.Ссылка.ХозяйственнаяОперация <> ЗНАЧЕНИЕ(Перечисление.ХозяйственныеОперации.РеализацияЧерезКомиссионера)
| И ТабЧасть.Ссылка.ХозяйственнаяОперация <> ЗНАЧЕНИЕ(Перечисление.ХозяйственныеОперации.РеализацияЧерезКомиссионераБезПереходаПраваСобственности)
| И ТабЧасть.Ссылка.ХозяйственнаяОперация <> ЗНАЧЕНИЕ(Перечисление.ХозяйственныеОперации.ПереходПраваСобственности)
| И ТабЧасть.Ссылка.Статус = ЗНАЧЕНИЕ(Перечисление.СтатусыРеализацийТоваровУслуг.КПредоплате)
| И (ТабЧасть.КодСтроки = 0
| ИЛИ НЕ ТабЧасть.Ссылка.РеализацияПоЗаказам
| ИЛИ ЕСТЬNULL(ТабЧасть.ЗаказКлиента.ЭтоЗаказКакСчет, ЛОЖЬ))";
РаспределениеЗапасовДвижения.ЗапланироватьРасходЗапаса(
Запрос,
ТекстыЗапроса,
Регистры,
ТекстЗапросаТабЧасть,
Ложь);
ТекстЗапросаТабЧасть =
"ВЫБРАТЬ
| ТабЧасть.Ссылка КАК Ссылка,
| ТабЧасть.Ссылка.Дата КАК Период,
| ТабЧасть.Номенклатура КАК Номенклатура,
| ТабЧасть.Характеристика КАК Характеристика,
| ВЫБОР КОГДА ТабЧасть.Номенклатура.ТипНоменклатуры = ЗНАЧЕНИЕ(Перечисление.ТипыНоменклатуры.Работа) ТОГДА
| ТабЧасть.Подразделение
| ИНАЧЕ
| ТабЧасть.Склад
| КОНЕЦ КАК Склад,
| ТабЧасть.Назначение КАК Назначение,
| ТабЧасть.Количество КАК Количество,
| НЕОПРЕДЕЛЕНО КАК ЗапланированныйРасходРаспределенногоЗапаса,
| ИСТИНА КАК КонтрольСвободногоОстатка
|ИЗ
| Документ.РеализацияТоваровУслуг.Товары КАК ТабЧасть
|ГДЕ
| ТабЧасть.Ссылка.ХозяйственнаяОперация <> ЗНАЧЕНИЕ(Перечисление.ХозяйственныеОперации.РеализацияКлиентуРеглУчет)
| И ТабЧасть.Ссылка.ХозяйственнаяОперация <> ЗНАЧЕНИЕ(Перечисление.ХозяйственныеОперации.РеализацияЧерезКомиссионера)
| И ТабЧасть.Ссылка.ХозяйственнаяОперация <> ЗНАЧЕНИЕ(Перечисление.ХозяйственныеОперации.РеализацияЧерезКомиссионераБезПереходаПраваСобственности)
| И ТабЧасть.Ссылка.ХозяйственнаяОперация <> ЗНАЧЕНИЕ(Перечисление.ХозяйственныеОперации.ПереходПраваСобственности)
| И ТабЧасть.Ссылка.Статус В(
| ЗНАЧЕНИЕ(Перечисление.СтатусыРеализацийТоваровУслуг.ВПути),
| ЗНАЧЕНИЕ(Перечисление.СтатусыРеализацийТоваровУслуг.Отгружено))
| И (ТабЧасть.КодСтроки = 0
| ИЛИ НЕ ТабЧасть.Ссылка.РеализацияПоЗаказам
| ИЛИ ЕСТЬNULL(ТабЧасть.ЗаказКлиента.ЭтоЗаказКакСчет, ЛОЖЬ))";
РаспределениеЗапасовДвижения.РасходЗапаса(Запрос, ТекстыЗапроса, Регистры, ТекстЗапросаТабЧасть);
КонецПроцедуры
#КонецОбласти
#Область СозданиеНаОсновании
Процедура ДобавитьКомандыСозданияНаОсновании(КомандыСозданияНаОсновании, Параметры) Экспорт
Если ПолучитьФункциональнуюОпцию("ИспользоватьАктыРасхожденийПослеОтгрузки") Тогда
КомандаСоздания =
Документы.АктОРасхожденияхПослеОтгрузки.ДобавитьКомандуСоздатьНаОсновании(КомандыСозданияНаОсновании);
Если КомандаСоздания <> Неопределено Тогда
ПодключаемыеКоманды.ДобавитьУсловиеВидимостиКоманды(
КомандаСоздания,
"ХозяйственнаяОперация",
Перечисления.ХозяйственныеОперации.ПереходПраваСобственности,
ВидСравненияКомпоновкиДанных.НеРавно);
КомандаСоздания.Представление = НСтр("ru = 'Акт о расхождениях после реализации клиенту'");
КонецЕсли;
КомандаСоздания =
Документы.АктОРасхожденияхПослеОтгрузки.ДобавитьКомандуСоздатьНаОсновании(КомандыСозданияНаОсновании);
Если КомандаСоздания <> Неопределено Тогда
ПодключаемыеКоманды.ДобавитьУсловиеВидимостиКоманды(
КомандаСоздания,
"ХозяйственнаяОперация",
Перечисления.ХозяйственныеОперации.ПереходПраваСобственности,
ВидСравненияКомпоновкиДанных.Равно);
КомандаСоздания.Представление = НСтр("ru = 'Акт о расхождениях после отгрузки товаров клиенту и перехода права собственности'");
КонецЕсли;
КонецЕсли;
Документы.ВозвратТоваровОтКлиента.ДобавитьКомандуСоздатьНаОсновании(КомандыСозданияНаОсновании);
Документы.ВыкупВозвратнойТарыКлиентом.ДобавитьКомандуСоздатьНаОсновании(КомандыСозданияНаОсновании);
Документы.ДоверенностьВыданная.ДобавитьКомандуСоздатьНаОсновании(КомандыСозданияНаОсновании);
БизнесПроцессы.Задание.ДобавитьКомандуСоздатьНаОсновании(КомандыСозданияНаОсновании);
Документы.ЗаявкаНаВозвратТоваровОтКлиента.ДобавитьКомандуСоздатьНаОсновании(КомандыСозданияНаОсновании);
Документы.КорректировкаРеализации.ДобавитьКомандуСоздатьНаОсновании(КомандыСозданияНаОсновании);
Документы.ПоступлениеБезналичныхДенежныхСредств.ДобавитьКомандуСоздатьНаОсновании(КомандыСозданияНаОсновании);
Справочники.Претензии.ДобавитьКомандуСоздатьНаОсновании(КомандыСозданияНаОсновании);
Документы.ПриходныйКассовыйОрдер.ДобавитьКомандуСоздатьНаОсновании(КомандыСозданияНаОсновании);
Документы.СчетНаОплатуКлиенту.ДобавитьКомандуСоздатьНаОснованииСчетаНаОплатуРеализацияАкт(КомандыСозданияНаОсновании);
Документы.ОперацияПоПлатежнойКарте.ДобавитьКомандуСоздатьНаОсновании(КомандыСозданияНаОсновании);
Документы.РасходныйОрдерНаТовары.ДобавитьКомандуСоздатьНаОснованииРасходныйОрдерНаТовары(КомандыСозданияНаОсновании);
Документы.ПоручениеЭкспедитору.ДобавитьКомандуСоздатьНаОсновании(КомандыСозданияНаОсновании);
Документы.КорректировкаГрафикаВзаиморасчетов.ДобавитьКомандуСоздатьНаОсновании(КомандыСозданияНаОсновании);
ИсправлениеДокументов.ДобавитьКомандуИсправление(КомандыСозданияНаОсновании, ПустаяСсылка().Метаданные());
ИсправлениеДокументов.ДобавитьКомандуСторно(КомандыСозданияНаОсновании, ПустаяСсылка().Метаданные());
СервисДоставкиПереопределяемый.ДобавитьКомандуСоздатьНаОсновании(КомандыСозданияНаОсновании, Параметры);
РеализацияТоваровУслугЛокализация.ДобавитьКомандыСозданияНаОсновании(КомандыСозданияНаОсновании, Параметры);
КонецПроцедуры
Функция ДобавитьКомандуСоздатьНаОсновании(КомандыСозданияНаОсновании) Экспорт
Если ПравоДоступа("Добавление", Метаданные.Документы.РеализацияТоваровУслуг) Тогда
КомандаСоздатьНаОсновании = КомандыСозданияНаОсновании.Добавить();
КомандаСоздатьНаОсновании.Менеджер = Метаданные.Документы.РеализацияТоваровУслуг.ПолноеИмя();
КомандаСоздатьНаОсновании.Представление = ОбщегоНазначенияУТ.ПредставлениеОбъекта(Метаданные.Документы.РеализацияТоваровУслуг);
КомандаСоздатьНаОсновании.РежимЗаписи = "Проводить";
Возврат КомандаСоздатьНаОсновании;
КонецЕсли;
Возврат Неопределено;
КонецФункции
Функция ДобавитьКомандуСоздатьНаОснованииЗаказа(КомандыСозданияНаОсновании) Экспорт
Если ПравоДоступа("Добавление", Метаданные.Документы.РеализацияТоваровУслуг) Тогда
КомандаСоздатьНаОсновании = КомандыСозданияНаОсновании.Добавить();
КомандаСоздатьНаОсновании.Обработчик = "СозданиеНаОснованииУТКлиент.РеализацияТоваровУслугСоздатьНаОснованииЗаказа";
КомандаСоздатьНаОсновании.Идентификатор = "СоздатьНаОснованииЗаказа";
КомандаСоздатьНаОсновании.Представление = ОбщегоНазначенияУТ.ПредставлениеОбъекта(Метаданные.Документы.РеализацияТоваровУслуг);
КомандаСоздатьНаОсновании.РежимЗаписи = "Проводить";
КомандаСоздатьНаОсновании.МножественныйВыбор = Истина;
Возврат КомандаСоздатьНаОсновании;
КонецЕсли;
Возврат Неопределено;
КонецФункции
Функция ДобавитьКомандуСоздатьПереходПраваСобственностиНаОснованииЗаказа(КомандыСозданияНаОсновании) Экспорт
Если ПравоДоступа("Добавление", Метаданные.Документы.РеализацияТоваровУслуг) Тогда
КомандаСоздатьНаОсновании = КомандыСозданияНаОсновании.Добавить();
КомандаСоздатьНаОсновании.Обработчик =
"СозданиеНаОснованииУТКлиент.ПереходПраваСобственностиНаОснованииЗаказа";
КомандаСоздатьНаОсновании.Идентификатор = "ПереходПраваСобственностиНаОснованииЗаказа";
КомандаСоздатьНаОсновании.Представление = НСтр("ru = 'Переход права собственности'");
КомандаСоздатьНаОсновании.РежимЗаписи = "Проводить";
КомандаСоздатьНаОсновании.МножественныйВыбор = Истина;
КомандаСоздатьНаОсновании.ФункциональныеОпции = "ИспользоватьОтгрузкуБезПереходаПраваСобственности2_5";
Возврат КомандаСоздатьНаОсновании;
КонецЕсли;
Возврат Неопределено;
КонецФункции
Функция ДобавитьКомандуСоздатьНаОснованииАктНаПередачуПрав(КомандыСозданияНаОсновании) Экспорт
Если ПравоДоступа("Добавление", Метаданные.Документы.РеализацияТоваровУслуг) Тогда
КомандаСоздатьНаОсновании = КомандыСозданияНаОсновании.Добавить();
КомандаСоздатьНаОсновании.Обработчик = "СозданиеНаОснованииУТКлиент.АктНаПередачуПрав";
КомандаСоздатьНаОсновании.Идентификатор = "АктНаПередачуПрав";
КомандаСоздатьНаОсновании.Представление = НСтр("ru = 'Акт на передачу прав'");
КомандаСоздатьНаОсновании.ФункциональныеОпции = "ИспользоватьАктыНаПередачуПрав";
КомандаСоздатьНаОсновании.РежимЗаписи = "Проводить";
Возврат КомандаСоздатьНаОсновании;
КонецЕсли;
Возврат Неопределено;
КонецФункции
Функция ТекстЗапросаЗаполненияНаОснованииЗаказа() Экспорт
ТекстЗапроса =
"ВЫБРАТЬ
| ЗаказКлиента.Ссылка КАК ЗаказКлиента,
| ЗаказКлиента.Партнер КАК Партнер,
| ЗаказКлиента.Контрагент КАК Контрагент,
| ЗаказКлиента.КонтактноеЛицо КАК КонтактноеЛицо,
| ЗаказКлиента.Договор КАК Договор,
| ЗаказКлиента.Организация КАК Организация,
| ЗаказКлиента.ФормаОплаты КАК ФормаОплаты,
| ЗаказКлиента.Соглашение КАК Соглашение,
| ЗаказКлиента.КартаЛояльности КАК КартаЛояльности,
| ЗаказКлиента.Сделка КАК Сделка,
| ЗаказКлиента.Валюта КАК Валюта,
| ЗаказКлиента.Валюта КАК ВалютаВзаиморасчетов,
| ЗаказКлиента.ГрафикОплаты КАК ГрафикОплаты,
| ЗаказКлиента.Подразделение КАК Подразделение,
| ЗаказКлиента.ДатаОтгрузки КАК ДатаОтгрузки,
| ЗаказКлиента.ЭтоЗаказКакСчет КАК ЭтоЗаказКакСчет,
| ВЫБОР
| КОГДА
| ЗаказКлиента.Склад.ЭтоГруппа И ЗаказКлиента.Склад.ВыборГруппы = ЗНАЧЕНИЕ(Перечисление.ВыборГруппыСкладов.РазрешитьВЗаказах)
| ТОГДА
| ЗНАЧЕНИЕ(Справочник.Склады.ПустаяСсылка)
| ИНАЧЕ
| ЗаказКлиента.Склад
| КОНЕЦ КАК Склад,
| ВЫБОР
| КОГДА
| ЗаказКлиента.Склад.ЭтоГруппа И ЗаказКлиента.Склад.ВыборГруппы = ЗНАЧЕНИЕ(Перечисление.ВыборГруппыСкладов.РазрешитьВЗаказах)
| ТОГДА
| ИСТИНА
| ИНАЧЕ
| ЛОЖЬ
| КОНЕЦ КАК ЗапрещеноВыбиратьГруппуСкладов,
| ЗаказКлиента.ЦенаВключаетНДС КАК ЦенаВключаетНДС,
| ВЫБОР
| КОГДА
| ЗаказКлиента.НалогообложениеНДС В (
| ЗНАЧЕНИЕ(Перечисление.ТипыНалогообложенияНДС.ЭкспортСырьевыхТоваровУслуг),
| ЗНАЧЕНИЕ(Перечисление.ТипыНалогообложенияНДС.ЭкспортНесырьевыхТоваров))
| ТОГДА
| ЗНАЧЕНИЕ(Перечисление.ТипыНалогообложенияНДС.ПродажаНаЭкспорт)
| ИНАЧЕ
| ЗаказКлиента.НалогообложениеНДС
| КОНЕЦ КАК НалогообложениеНДС,
| ЗаказКлиента.ХозяйственнаяОперация КАК ХозяйственнаяОперация,
| ЗаказКлиента.НеОтгружатьЧастями КАК НеОтгружатьЧастями,
| ЗаказКлиента.АдресДоставки КАК АдресДоставки,
| ЗаказКлиента.Склад.ИспользоватьОрдернуюСхемуПриОтгрузке КАК ОрдернаяСхемаПриОтгрузке,
|
| ЗаказКлиента.ГруппаФинансовогоУчета КАК ГруппаФинансовогоУчета,
| ЗаказКлиента.Статус КАК СтатусДокумента,
| НЕ ЗаказКлиента.Проведен
| И НЕ &ВводитьНаОснованииНепроведенного КАК ЕстьОшибкиПроведен,
| ИСТИНА КАК ЕстьОшибкиСтатус,
|
| ЗаказКлиента.БанковскийСчет КАК БанковскийСчетОрганизации,
| ЗаказКлиента.БанковскийСчетКонтрагента КАК БанковскийСчетКонтрагента,
| ЗаказКлиента.Грузоотправитель КАК Грузоотправитель,
| ЗаказКлиента.Грузополучатель КАК Грузополучатель,
| ЗаказКлиента.БанковскийСчетГрузоотправителя КАК БанковскийСчетГрузоотправителя,
| ЗаказКлиента.БанковскийСчетГрузополучателя КАК БанковскийСчетГрузополучателя,
| ЗаказКлиента.ВернутьМногооборотнуюТару КАК ВернутьМногооборотнуюТару,
| ЗаказКлиента.СрокВозвратаМногооборотнойТары КАК СрокВозвратаМногооборотнойТары,
| ЗаказКлиента.ТребуетсяЗалогЗаТару КАК ТребуетсяЗалогЗаТару,
| ВЫБОР
| КОГДА &ИспользоватьСоглашенияСКлиентами
| ТОГДА ЗаказКлиента.Соглашение.КалендарьВозвратаТары
| ИНАЧЕ ЗНАЧЕНИЕ(Справочник.ПроизводственныеКалендари.ПустаяСсылка)
| КОНЕЦ КАК КалендарьВозвратаТары,
| ВЫБОР
| КОГДА &ИспользоватьСоглашенияСКлиентами
| ТОГДА ЗаказКлиента.Соглашение.РассчитыватьДатуВозвратаТарыПоКалендарю
| ИНАЧЕ ЛОЖЬ
| КОНЕЦ КАК РассчитыватьДатуВозвратаТарыПоКалендарю,
|
| ЗаказКлиента.СкидкиНаценки.(
| КлючСвязи,
| СкидкаНаценка,
| Сумма
| ) КАК СкидкиНаценки,
| ЗаказКлиента.АдресДоставкиЗначенияПолей КАК АдресДоставкиЗначенияПолей,
|
| ВЫБОР КОГДА НЕ &ИспользоватьЗаданияНаПеревозкуДляУчетаДоставкиПеревозчиками
| И ЗаказКлиента.СпособДоставки = ЗНАЧЕНИЕ(Перечисление.СпособыДоставки.СиламиПеревозчика)
| ИЛИ ЗаказКлиента.ЭтоЗаказКакСчет ТОГДА
| ЗаказКлиента.СпособДоставки
| КОНЕЦ КАК СпособДоставки,
|
| ВЫБОР КОГДА НЕ &ИспользоватьЗаданияНаПеревозкуДляУчетаДоставкиПеревозчиками
| И ЗаказКлиента.СпособДоставки = ЗНАЧЕНИЕ(Перечисление.СпособыДоставки.СиламиПеревозчика)
| ИЛИ ЗаказКлиента.ЭтоЗаказКакСчет ТОГДА
| ЗаказКлиента.ЗонаДоставки
| КОНЕЦ КАК ЗонаДоставки,
|
| ВЫБОР КОГДА ЗаказКлиента.СпособДоставки = ЗНАЧЕНИЕ(Перечисление.СпособыДоставки.СиламиПеревозчика)
| ИЛИ ЗаказКлиента.ЭтоЗаказКакСчет ТОГДА
| ЗаказКлиента.ПеревозчикПартнер
| КОНЕЦ КАК ПеревозчикПартнер,
|
| ВЫБОР КОГДА НЕ &ИспользоватьЗаданияНаПеревозкуДляУчетаДоставкиПеревозчиками
| И ЗаказКлиента.СпособДоставки = ЗНАЧЕНИЕ(Перечисление.СпособыДоставки.СиламиПеревозчика)
| ИЛИ ЗаказКлиента.ЭтоЗаказКакСчет ТОГДА
| ЗаказКлиента.ВремяДоставкиС
| КОНЕЦ КАК ВремяДоставкиС,
|
| ВЫБОР КОГДА НЕ &ИспользоватьЗаданияНаПеревозкуДляУчетаДоставкиПеревозчиками
| И ЗаказКлиента.СпособДоставки = ЗНАЧЕНИЕ(Перечисление.СпособыДоставки.СиламиПеревозчика)
| ИЛИ ЗаказКлиента.ЭтоЗаказКакСчет ТОГДА
| ЗаказКлиента.ВремяДоставкиПо
| КОНЕЦ КАК ВремяДоставкиПо,
|
| ВЫБОР КОГДА НЕ &ИспользоватьЗаданияНаПеревозкуДляУчетаДоставкиПеревозчиками
| И ЗаказКлиента.СпособДоставки = ЗНАЧЕНИЕ(Перечисление.СпособыДоставки.СиламиПеревозчика)
| ИЛИ ЗаказКлиента.ЭтоЗаказКакСчет ТОГДА
| ЗаказКлиента.ДополнительнаяИнформацияПоДоставке
| КОНЕЦ КАК ДополнительнаяИнформацияПоДоставке,
|
| ВЫБОР КОГДА НЕ &ИспользоватьЗаданияНаПеревозкуДляУчетаДоставкиПеревозчиками
| И ЗаказКлиента.СпособДоставки = ЗНАЧЕНИЕ(Перечисление.СпособыДоставки.СиламиПеревозчика)
| ИЛИ ЗаказКлиента.ЭтоЗаказКакСчет ТОГДА
| ЗаказКлиента.ОсобыеУсловияПеревозки
| КОНЕЦ КАК ОсобыеУсловияПеревозки,
|
| ВЫБОР КОГДА НЕ &ИспользоватьЗаданияНаПеревозкуДляУчетаДоставкиПеревозчиками
| И ЗаказКлиента.СпособДоставки = ЗНАЧЕНИЕ(Перечисление.СпособыДоставки.СиламиПеревозчика)
| ИЛИ ЗаказКлиента.ЭтоЗаказКакСчет ТОГДА
| ЗаказКлиента.ОсобыеУсловияПеревозкиОписание
| КОНЕЦ КАК ОсобыеУсловияПеревозкиОписание,
|
| ЗаказКлиента.ЭтапГосконтрактаЕИС КАК ЭтапГосконтрактаЕИС,
| ЗаказКлиента.ПорядокРасчетов КАК ПорядокРасчетов,
| ЗаказКлиента.НаправлениеДеятельности КАК НаправлениеДеятельности,
| ЗаказКлиента.ОплатаВВалюте КАК ОплатаВВалюте
|
|ИЗ
| Документ.ЗаказКлиента КАК ЗаказКлиента
|ГДЕ
| ЗаказКлиента.Ссылка = &ЗаказКлиента
|;
|
|
|ВЫБРАТЬ РАЗЛИЧНЫЕ
| РаспоряженияНаОтгрузкуОтгружено.Склад КАК Склад
|ИЗ
| #РаспоряженияНаОтгрузкуОборотыРазвернутая КАК РаспоряженияНаОтгрузкуОтгружено
|ГДЕ
| РаспоряженияНаОтгрузкуОтгружено.КОтгрузкеКоличествоОборот
| - РаспоряженияНаОтгрузкуОтгружено.ОтгруженоКоличествоОборот > 0
|";
ПараметрыФормированияТаблицы = РегистрыНакопления.РаспоряженияНаОтгрузкуИВозврат.НовыйПараметрыФормированияРазвернутойТаблицы();
ПараметрыФормированияТаблицы.ТекстУсловия = "
| Распоряжение = &ЗаказКлиента
|";
ПараметрыФормированияТаблицы.Группировка = "Склад";
ПараметрыФормированияТаблицы.Показатели = "КОтгрузке, Отгружено";
ПараметрыФормированияТаблицы.Ресурсы = "Количество";
РаспоряженияНаОтгрузкуОборотыРазвернутая =
РегистрыНакопления.РаспоряженияНаОтгрузкуИВозврат.ТекстЗапросаРазвернутаяТаблица(
ПараметрыФормированияТаблицы);
ТекстЗапроса = СтрЗаменить(ТекстЗапроса,
"#РаспоряженияНаОтгрузкуОборотыРазвернутая",
РаспоряженияНаОтгрузкуОборотыРазвернутая);
Возврат ТекстЗапроса;
КонецФункции
#КонецОбласти
#Область Отчеты
Процедура ДобавитьКомандыОтчетов(КомандыОтчетов, Параметры) Экспорт
КомандаОтчет = Отчеты.АнализЦенПоставщиков.ДобавитьКомандуОтчета(КомандыОтчетов);
Если КомандаОтчет <> Неопределено Тогда
КомандаОтчет.ВидимостьВФормах = "ФормаДокумента,ФормаСписка,СписокДокументов";
КонецЕсли;
КомандаОтчет = Отчеты.КарточкаРасчетовПоПереданнойВозвратнойТаре.ДобавитьКомандуОтчета(КомандыОтчетов);
Если КомандаОтчет <> Неопределено Тогда
КомандаОтчет.ВидимостьВФормах = "ФормаДокумента,ФормаСписка,СписокДокументов";
КонецЕсли;
КомандаОтчет = ВзаиморасчетыСервер.КарточкаРасчетовСКлиентом_ДобавитьКомандуОтчетаПоДокументам(КомандыОтчетов);
Если КомандаОтчет <> Неопределено Тогда
КомандаОтчет.ВидимостьВФормах = "ФормаДокумента,ФормаСписка,СписокДокументов";
КонецЕсли;
Отчеты.ОстаткиТоваровОрганизаций.ДобавитьКомандуОтчета(КомандыОтчетов);
КомандаОтчет = Отчеты.ОтклоненияОтУсловийПродаж.ДобавитьКомандуОтчета(КомандыОтчетов);
Если КомандаОтчет <> Неопределено Тогда
КомандаОтчет.ВидимостьВФормах = "ФормаДокумента,ФормаСписка,СписокДокументов";
КонецЕсли;
Если ЦенообразованиеВызовСервера.ИспользуетсяЦенообразование25() Тогда
Отчеты.ОценкаРентабельностиПродаж2_5.ДобавитьКомандуОтчета(КомандыОтчетов);
Иначе
Отчеты.ОценкаРентабельностиПродаж.ДобавитьКомандуОтчета(КомандыОтчетов);
КонецЕсли;
Отчеты.ПримененныеСкидкиВДокументе.ДобавитьКомандуОтчета(КомандыОтчетов);
КомандаОтчет = Отчеты.СостояниеВыполненияДокументов.ДобавитьКомандуСостояниеВыполненияРеализацииАкта(КомандыОтчетов);
Если КомандаОтчет <> Неопределено Тогда
КомандаОтчет.Порядок = 1;
КонецЕсли;
КомандаОтчет = ВзаиморасчетыСервер.ЗадолженностьКлиентов_ДобавитьКомандуОтчетаПоДокументам(КомандыОтчетов);
Если КомандаОтчет <> Неопределено Тогда
КомандаОтчет.ВидимостьВФормах = "ФормаДокумента,ФормаСписка,СписокДокументов";
КонецЕсли;
Если ПравоДоступа("Просмотр", Метаданные.Отчеты.ФактическаяСебестоимостьПродукции) Тогда
КомандаОтчет = КомандыОтчетов.Добавить();
КомандаОтчет.Менеджер = Метаданные.Отчеты.ФактическаяСебестоимостьПродукции.ПолноеИмя();
КомандаОтчет.Представление = НСтр("ru = 'Фактическая себестоимость продукции'");
КомандаОтчет.КлючВарианта = "ФактическаяСебестоимостьПродукцииКонтекст";
КомандаОтчет.Порядок = 50;
КомандаОтчет.МножественныйВыбор = Ложь;
КомандаОтчет.Важность = "Важное";
КонецЕсли;
РеализацияТоваровУслугЛокализация.ДобавитьКомандыОтчетов(КомандыОтчетов, Параметры);
КонецПроцедуры
#КонецОбласти
#Область Печать
Процедура ДобавитьКомандыПечати(КомандыПечати) Экспорт
ЭтоПартнер = ПраваПользователяПовтИсп.ЭтоПартнер();
УсловиеВидимостиПечатныхФормПереходПраваСобственности = Новый Структура;
УсловиеВидимостиПечатныхФормПереходПраваСобственности.Вставить("Реквизит",
Метаданные.Документы.РеализацияТоваровУслуг.Реквизиты.ХозяйственнаяОперация.Имя);
УсловиеВидимостиПечатныхФормПереходПраваСобственности.Вставить("ВидСравнения", ВидСравнения.НеРавно);
УсловиеВидимостиПечатныхФормПереходПраваСобственности.Вставить("Значение",
Перечисления.ХозяйственныеОперации.ПереходПраваСобственности);
Если НЕ ЭтоПартнер Тогда
КомандаПечати = КомандыПечати.Добавить();
КомандаПечати.Идентификатор = "РасходнаяНакладная";
КомандаПечати.Представление = НСтр("ru = 'Расходная накладная'");
КомандаПечати.ПроверкаПроведенияПередПечатью = Истина;
КомандаПечати.Порядок = 10;
КомандаПечати.УсловияВидимости.Добавить(УсловиеВидимостиПечатныхФормПереходПраваСобственности);
КонецЕсли;
Если ЭтоПартнер ИЛИ ПолучитьФункциональнуюОпцию("НеВыбиратьВариантВыводаСкидокПриПечатиДокументовПродажи") Тогда
КомандаПечати = КомандыПечати.Добавить();
КомандаПечати.Идентификатор = "Накладная";
КомандаПечати.Представление = НСтр("ru = 'Реализация товаров'");
КомандаПечати.ПроверкаПроведенияПередПечатью = Истина;
КомандаПечати.Порядок = 11;
КомандаПечати.ОсновнаяПечатнаяФорма = Истина;
КомандаПечати.НаименованиеПечатнойФормы = НСтр("ru = 'Реализация товаров'");
КонецЕсли;
Если НЕ ЭтоПартнер
И ПолучитьФункциональнуюОпцию("ВыбиратьВариантВыводаСкидокПриПечатиДокументовПродажи") Тогда
КомандаПечати = КомандыПечати.Добавить();
КомандаПечати.Идентификатор = "НакладнаяБезСкидок";
КомандаПечати.Представление = НСтр("ru = 'Реализация товаров (не выводить скидки)'");
КомандаПечати.ПроверкаПроведенияПередПечатью = Истина;
КомандаПечати.ДополнительныеПараметры.Вставить("ОтображатьСкидки", Ложь);
КомандаПечати.ОсновнаяПечатнаяФорма = Истина;
КомандаПечати.НаименованиеПечатнойФормы = НСтр("ru = 'Реализация товаров'");
КомандаПечати.ДополнительныеПараметры.Вставить("ИспользоватьСинонимДляКомплекта", Ложь);
КомандаПечати.ДополнительныеПараметры.Вставить("СинонимМакетаДляКомплекта", КомандаПечати.Представление);
КомандаПечати.Порядок = 12;
КонецЕсли;
Если НЕ ЭтоПартнер
И ПолучитьФункциональнуюОпцию("ВыбиратьВариантВыводаСкидокПриПечатиДокументовПродажи") Тогда
КомандаПечати = КомандыПечати.Добавить();
КомандаПечати.Идентификатор = "Накладная";
КомандаПечати.Представление = НСтр("ru = 'Реализация товаров (выводить скидки)'");
КомандаПечати.ПроверкаПроведенияПередПечатью = Истина;
КомандаПечати.ДополнительныеПараметры.Вставить("ОтображатьСкидки", Истина);
КомандаПечати.ОсновнаяПечатнаяФорма = Истина;
КомандаПечати.НаименованиеПечатнойФормы = НСтр("ru = 'Реализация товаров'");
КомандаПечати.ДополнительныеПараметры.Вставить("ИспользоватьСинонимДляКомплекта", Ложь);
КомандаПечати.ДополнительныеПараметры.Вставить("СинонимМакетаДляКомплекта", КомандаПечати.Представление);
КомандаПечати.Порядок = 13;
КонецЕсли;
Если НЕ ЭтоПартнер
И ПолучитьФункциональнуюОпцию("НеВыбиратьВариантВыводаСкидокПриПечатиДокументовПродажи") Тогда
КомандаПечати = КомандыПечати.Добавить();
КомандаПечати.МенеджерПечати = "Обработка.ПечатьАктОбОказанииУслуг";
КомандаПечати.Идентификатор = "Акт";
КомандаПечати.Представление = НСтр("ru = 'Акт об оказании услуг'");
КомандаПечати.ПроверкаПроведенияПередПечатью = Истина;
КомандаПечати.Порядок = 14;
КомандаПечати.УсловияВидимости.Добавить(УсловиеВидимостиПечатныхФормПереходПраваСобственности);
КомандаПечати.ОсновнаяПечатнаяФорма = Истина;
КомандаПечати.НаименованиеПечатнойФормы = НСтр("ru = 'Акт'");
КонецЕсли;
Если НЕ ЭтоПартнер
И ПолучитьФункциональнуюОпцию("ВыбиратьВариантВыводаСкидокПриПечатиДокументовПродажи") Тогда
КомандаПечати = КомандыПечати.Добавить();
КомандаПечати.МенеджерПечати = "Обработка.ПечатьАктОбОказанииУслуг";
КомандаПечати.Идентификатор = "АктБезСкидок";
КомандаПечати.Представление = НСтр("ru = 'Акт об оказании услуг (не выводить скидки)'");
КомандаПечати.ПроверкаПроведенияПередПечатью = Истина;
КомандаПечати.ДополнительныеПараметры.Вставить("ОтображатьСкидки", Ложь);
КомандаПечати.Порядок = 15;
КомандаПечати.УсловияВидимости.Добавить(УсловиеВидимостиПечатныхФормПереходПраваСобственности);
КонецЕсли;
Если НЕ ЭтоПартнер
И ПолучитьФункциональнуюОпцию("ВыбиратьВариантВыводаСкидокПриПечатиДокументовПродажи") Тогда
КомандаПечати = КомандыПечати.Добавить();
КомандаПечати.МенеджерПечати = "Обработка.ПечатьАктОбОказанииУслуг";
КомандаПечати.Идентификатор = "Акт";
КомандаПечати.Представление = НСтр("ru = 'Акт об оказании услуг (выводить скидки)'");
КомандаПечати.ПроверкаПроведенияПередПечатью = Истина;
КомандаПечати.ДополнительныеПараметры.Вставить("ОтображатьСкидки", Истина);
КомандаПечати.Порядок = 16;
КомандаПечати.УсловияВидимости.Добавить(УсловиеВидимостиПечатныхФормПереходПраваСобственности);
КонецЕсли;
Если (НЕ ЭтоПартнер И ПолучитьФункциональнуюОпцию("НеИспользоватьСчетаНаОплатуНеВыбиратьВариантВыводаСкидок"))
ИЛИ (ЭтоПартнер И (ПолучитьФункциональнуюОпцию("НеИспользоватьСчетаНаОплатуВыбиратьВариантВыводаСкидок")
ИЛИ ПолучитьФункциональнуюОпцию("НеИспользоватьСчетаНаОплатуНеВыбиратьВариантВыводаСкидок"))) Тогда
КомандаПечати = КомандыПечати.Добавить();
КомандаПечати.МенеджерПечати = "Обработка.ПечатьСчетовНаОплату";
КомандаПечати.Идентификатор = "СчетНаОплату";
КомандаПечати.Представление = НСтр("ru = 'Счет на оплату'");
КомандаПечати.ПроверкаПроведенияПередПечатью = Истина;
КомандаПечати.Порядок = 26;
КонецЕсли;
Если НЕ ЭтоПартнер
И ПолучитьФункциональнуюОпцию("НеИспользоватьСчетаНаОплатуВыбиратьВариантВыводаСкидок") Тогда
КомандаПечати = КомандыПечати.Добавить();
КомандаПечати.МенеджерПечати = "Обработка.ПечатьСчетовНаОплату";
КомандаПечати.Идентификатор = "СчетНаОплатуБезСкидок";
КомандаПечати.Представление = НСтр("ru = 'Счет на оплату (не выводить скидки)'");
КомандаПечати.ПроверкаПроведенияПередПечатью = Истина;
КомандаПечати.ДополнительныеПараметры.Вставить("ОтображатьСкидки", Ложь);
КомандаПечати.ДополнительныеПараметры.Вставить("ИспользоватьСинонимДляКомплекта", Ложь);
КомандаПечати.ДополнительныеПараметры.Вставить("СинонимМакетаДляКомплекта", КомандаПечати.Представление);
КомандаПечати.Порядок = 27;
КонецЕсли;
Если НЕ ЭтоПартнер
И ПолучитьФункциональнуюОпцию("НеИспользоватьСчетаНаОплатуВыбиратьВариантВыводаСкидок") Тогда
КомандаПечати = КомандыПечати.Добавить();
КомандаПечати.МенеджерПечати = "Обработка.ПечатьСчетовНаОплату";
КомандаПечати.Идентификатор = "СчетНаОплату";
КомандаПечати.Представление = НСтр("ru = 'Счет на оплату (выводить скидки)'");
КомандаПечати.ПроверкаПроведенияПередПечатью = Истина;
КомандаПечати.ДополнительныеПараметры.Вставить("ОтображатьСкидки", Истина);
КомандаПечати.ДополнительныеПараметры.Вставить("ИспользоватьСинонимДляКомплекта", Ложь);
КомандаПечати.ДополнительныеПараметры.Вставить("СинонимМакетаДляКомплекта", КомандаПечати.Представление);
КомандаПечати.Порядок = 28;
КонецЕсли;
Если (НЕ ЭтоПартнер И ПолучитьФункциональнуюОпцию("НеИспользоватьСчетаНаОплатуНеВыбиратьВариантВыводаСкидок"))
ИЛИ (ЭтоПартнер
И (ПолучитьФункциональнуюОпцию("НеИспользоватьСчетаНаОплатуВыбиратьВариантВыводаСкидок")
ИЛИ ПолучитьФункциональнуюОпцию("НеИспользоватьСчетаНаОплатуНеВыбиратьВариантВыводаСкидок"))) Тогда
КомандаПечати = КомандыПечати.Добавить();
КомандаПечати.МенеджерПечати = "Обработка.ПечатьСчетовНаОплату";
КомандаПечати.Идентификатор = "СчетНаОплатуСФаксимиле";
КомандаПечати.Представление = НСтр("ru = 'Счет на оплату с факсимиле'");
КомандаПечати.ПроверкаПроведенияПередПечатью = Истина;
КомандаПечати.ДополнительныеПараметры.Вставить("ОтображатьФаксимиле", Истина);
КомандаПечати.ДополнительныеПараметры.Вставить("ИспользоватьСинонимДляКомплекта", Ложь);
КомандаПечати.ДополнительныеПараметры.Вставить("СинонимМакетаДляКомплекта", КомандаПечати.Представление);
КомандаПечати.Порядок = 29;
КонецЕсли;
Если НЕ ЭтоПартнер
И ПолучитьФункциональнуюОпцию("НеИспользоватьСчетаНаОплатуВыбиратьВариантВыводаСкидок") Тогда
КомандаПечати = КомандыПечати.Добавить();
КомандаПечати.МенеджерПечати = "Обработка.ПечатьСчетовНаОплату";
КомандаПечати.Идентификатор = "СчетНаОплатуСФаксимилеБезСкидок";
КомандаПечати.Представление = НСтр("ru = 'Счет на оплату с факсимиле (не выводить скидки)'");
КомандаПечати.ПроверкаПроведенияПередПечатью = Истина;
КомандаПечати.ДополнительныеПараметры.Вставить("ОтображатьСкидки", Ложь);
КомандаПечати.ДополнительныеПараметры.Вставить("ОтображатьФаксимиле", Истина);
КомандаПечати.ДополнительныеПараметры.Вставить("ИспользоватьСинонимДляКомплекта", Ложь);
КомандаПечати.ДополнительныеПараметры.Вставить("СинонимМакетаДляКомплекта", КомандаПечати.Представление);
КомандаПечати.Порядок = 30;
КонецЕсли;
Если НЕ ЭтоПартнер
И ПолучитьФункциональнуюОпцию("НеИспользоватьСчетаНаОплатуВыбиратьВариантВыводаСкидок") Тогда
КомандаПечати = КомандыПечати.Добавить();
КомандаПечати.МенеджерПечати = "Обработка.ПечатьСчетовНаОплату";
КомандаПечати.Идентификатор = "СчетНаОплатуСФаксимиле";
КомандаПечати.Представление = НСтр("ru = 'Счет на оплату с факсимиле (выводить скидки)'");
КомандаПечати.ПроверкаПроведенияПередПечатью = Истина;
КомандаПечати.ДополнительныеПараметры.Вставить("ОтображатьСкидки", Истина);
КомандаПечати.ДополнительныеПараметры.Вставить("ОтображатьФаксимиле", Истина);
КомандаПечати.ДополнительныеПараметры.Вставить("ИспользоватьСинонимДляКомплекта", Ложь);
КомандаПечати.ДополнительныеПараметры.Вставить("СинонимМакетаДляКомплекта", КомандаПечати.Представление);
КомандаПечати.Порядок = 31;
КонецЕсли;
Если ПравоДоступа("Чтение", Метаданные.Справочники.СертификатыНоменклатуры)
И ПолучитьФункциональнуюОпцию("ИспользоватьСертификатыНоменклатуры") Тогда
КомандаПечати = КомандыПечати.Добавить();
КомандаПечати.Идентификатор = "СертификатыНоменклатурыРеестр";
КомандаПечати.Представление = НСтр("ru = 'Сертификаты (реестр)'");
КомандаПечати.ПроверкаПроведенияПередПечатью = Истина;
КомандаПечати.Порядок = 33;
КомандаПечати.УсловияВидимости.Добавить(УсловиеВидимостиПечатныхФормПереходПраваСобственности);
КомандаПечати = КомандыПечати.Добавить();
КомандаПечати.Идентификатор = "СертификатыНоменклатурыИзображенияИзДокументов";
КомандаПечати.Представление = НСтр("ru = 'Сертификаты (по каждой позиции документа)'");
КомандаПечати.ПроверкаПроведенияПередПечатью = Истина;
КомандаПечати.Порядок = 34;
КомандаПечати.УсловияВидимости.Добавить(УсловиеВидимостиПечатныхФормПереходПраваСобственности);
КомандаПечати = КомандыПечати.Добавить();
КомандаПечати.Идентификатор = "СертификатыНоменклатурыИзображенияИзДокументовБезДублей";
КомандаПечати.Представление = НСтр("ru = 'Сертификаты (по одному на сертификат)'");
КомандаПечати.ПроверкаПроведенияПередПечатью = Истина;
КомандаПечати.Порядок = 35;
КомандаПечати.УсловияВидимости.Добавить(УсловиеВидимостиПечатныхФормПереходПраваСобственности);
КонецЕсли;
Если НЕ ЭтоПартнер Тогда
КомандаПечати = Обработки.ПечатьЗаданияНаОтборРазмещениеТоваров.ДобавитьКомандуПечати(КомандыПечати,
"ЗаданиеНаОтбор",
36);
ХозяйственныеОперации = Новый СписокЗначений();
ХозяйственныеОперации.Добавить(Перечисления.ХозяйственныеОперации.РеализацияКлиентуРеглУчет);
ХозяйственныеОперации.Добавить(Перечисления.ХозяйственныеОперации.ПереходПраваСобственности);
ПодключаемыеКоманды.ДобавитьУсловиеВидимостиКоманды(КомандаПечати,
"Статус",
Перечисления.СтатусыРеализацийТоваровУслуг.КПредоплате,
ВидСравненияКомпоновкиДанных.НеРавно);
ПодключаемыеКоманды.ДобавитьУсловиеВидимостиКоманды(КомандаПечати,
"ХозяйственнаяОперация",
ХозяйственныеОперации,
ВидСравненияКомпоновкиДанных.НеВСписке);
КонецЕсли;
Если НЕ ЭтоПартнер
И ПолучитьФункциональнуюОпцию("ИспользоватьУправлениеДоставкой") Тогда
КомандаПечати = КомандыПечати.Добавить();
КомандаПечати.Обработчик = "УправлениеПечатьюУТКлиент.ПечатьЭтикетокДоставки";
КомандаПечати.МенеджерПечати = "Обработка.ПечатьЭтикетокИЦенников.Печать";
КомандаПечати.Идентификатор = "ЭтикеткаДоставки";
КомандаПечати.Представление = НСтр("ru = 'Этикетки доставки'");
КомандаПечати.ПроверкаПроведенияПередПечатью = Истина;
КомандаПечати.Порядок = 38;
КомандаПечати.УсловияВидимости.Добавить(УсловиеВидимостиПечатныхФормПереходПраваСобственности);
КонецЕсли;
Если НЕ ЭтоПартнер И Константы.ИспользоватьМеждународныеПечатныеФормы.Получить() Тогда
КомандаПечати = КомандыПечати.Добавить();
КомандаПечати.Идентификатор = "InvoiceInt";
КомандаПечати.МенеджерПечати = "Обработка.ПечатьСчетовНаОплату";
КомандаПечати.Представление = НСтр("ru = 'Commercial invoice'");
КомандаПечати.ПроверкаПроведенияПередПечатью = Истина;
КомандаПечати.Порядок = 39;
КонецЕсли;
Если НЕ ЭтоПартнер
И НЕ ПолучитьФункциональнуюОпцию("ИспользоватьСчетаНаОплатуКлиентам")
И Константы.ИспользоватьМеждународныеПечатныеФормы.Получить() Тогда
КомандаПечати = КомандыПечати.Добавить();
КомандаПечати.МенеджерПечати = "Обработка.ПечатьСчетовНаОплату";
КомандаПечати.Идентификатор = "ProformaInvoiceEn";
КомандаПечати.Представление = НСтр("ru = 'Proforma invoice (en)'");
КомандаПечати.ПроверкаПроведенияПередПечатью = Истина;
КонецЕсли;
Если НЕ ЭтоПартнер Тогда
КомандаПечати = ИнтеграцияСМаркетплейсамиСервер.ДобавитьКомандуПечатиЭтикеток(КомандыПечати);
Если КомандаПечати <> Неопределено Тогда
ХозяйственныеОперации = Новый СписокЗначений();
ХозяйственныеОперации.Добавить(Перечисления.ХозяйственныеОперации.РеализацияБезПереходаПраваСобственности);
ХозяйственныеОперации.Добавить(Перечисления.ХозяйственныеОперации.ПереходПраваСобственности);
ПодключаемыеКоманды.ДобавитьУсловиеВидимостиКоманды(КомандаПечати,
"ХозяйственнаяОперация",
ХозяйственныеОперации,
ВидСравненияКомпоновкиДанных.ВСписке);
КонецЕсли;
КонецЕсли;
РеализацияТоваровУслугЛокализация.ДобавитьКомандыПечати(КомандыПечати);
КонецПроцедуры
Процедура Печать(МассивОбъектов, ПараметрыПечати, КоллекцияПечатныхФорм, ОбъектыПечати, ПараметрыВывода) Экспорт
СинонимМакетаРеализацииТоваровУслуг = НСтр("ru = 'Реализация товаров'");
Если ОбщегоНазначенияКлиентСервер.СвойствоСтруктуры(ПараметрыПечати, "ИспользоватьСинонимДляКомплекта", Ложь) Тогда
СинонимМакетаРеализацииТоваровУслуг = ПараметрыПечати.СинонимМакетаДляКомплекта;
КонецЕсли;
Если УправлениеПечатью.НужноПечататьМакет(КоллекцияПечатныхФорм, "Накладная") Тогда
УправлениеПечатью.ВывестиТабличныйДокументВКоллекцию(
КоллекцияПечатныхФорм,
"Накладная",
СинонимМакетаРеализацииТоваровУслуг,
СформироватьПечатнуюФормуНакладная(МассивОбъектов, ОбъектыПечати, ПараметрыПечати),
,
"Документ.РеализацияТоваровУслуг.ПФ_MXL_РеализацияТоваров");
КонецЕсли;
Если УправлениеПечатью.НужноПечататьМакет(КоллекцияПечатныхФорм, "НакладнаяБезСкидок") Тогда
УправлениеПечатью.ВывестиТабличныйДокументВКоллекцию(
КоллекцияПечатныхФорм,
"НакладнаяБезСкидок",
СинонимМакетаРеализацииТоваровУслуг,
СформироватьПечатнуюФормуНакладная(МассивОбъектов, ОбъектыПечати, ПараметрыПечати),
,
"Документ.РеализацияТоваровУслуг.ПФ_MXL_РеализацияТоваров");
КонецЕсли;
Если УправлениеПечатью.НужноПечататьМакет(КоллекцияПечатныхФорм, "РасходнаяНакладная") Тогда
УправлениеПечатью.ВывестиТабличныйДокументВКоллекцию(
КоллекцияПечатныхФорм,
"РасходнаяНакладная",
НСтр("ru = 'Расходная накладная'"),
СформироватьПечатнуюФормуРасходнаяНакладная(МассивОбъектов, ОбъектыПечати),
,
"Документ.РеализацияТоваровУслуг.ПФ_MXL_РасходнаяНакладная");
КонецЕсли;
Если УправлениеПечатью.НужноПечататьМакет(КоллекцияПечатныхФорм, "СертификатыНоменклатурыРеестр") Тогда
УправлениеПечатью.ВывестиТабличныйДокументВКоллекцию(
КоллекцияПечатныхФорм,
"СертификатыНоменклатурыРеестр",
НСтр("ru = 'Сертификаты (реестр)'"),
Справочники.СертификатыНоменклатуры.СформироватьПечатнуюФормуРеестрСертификатовНоменклатуры(МассивОбъектов, ОбъектыПечати),
,
"Справочник.СертификатыНоменклатуры.ПФ_MXL_РеестрСертификатов");
КонецЕсли;
Если УправлениеПечатью.НужноПечататьМакет(КоллекцияПечатныхФорм, "СертификатыНоменклатурыИзображенияИзДокументов") Тогда
УправлениеПечатью.ВывестиТабличныйДокументВКоллекцию(
КоллекцияПечатныхФорм,
"СертификатыНоменклатурыИзображенияИзДокументов",
НСтр("ru = 'Сертификаты (по каждой позиции документа)'"),
Справочники.СертификатыНоменклатуры.СформироватьПечатнуюФормуИзображенияСертификатовИзДокументов(МассивОбъектов, ОбъектыПечати),
,
"Справочник.СертификатыНоменклатуры.ПФ_MXL_ИзображенияСертификатов");
КонецЕсли;
Если УправлениеПечатью.НужноПечататьМакет(КоллекцияПечатныхФорм, "СертификатыНоменклатурыИзображенияИзДокументовБезДублей") Тогда
УправлениеПечатью.ВывестиТабличныйДокументВКоллекцию(
КоллекцияПечатныхФорм,
"СертификатыНоменклатурыИзображенияИзДокументовБезДублей",
НСтр("ru = 'Сертификаты (по одному на сертификат)'"),
Справочники.СертификатыНоменклатуры.СформироватьПечатнуюФормуИзображенияСертификатовИзДокументовБезДублей(МассивОбъектов, ОбъектыПечати),
,
"Справочник.СертификатыНоменклатуры.ПФ_MXL_ИзображенияСертификатов");
КонецЕсли;
Если УправлениеПечатью.НужноПечататьМакет(КоллекцияПечатныхФорм, "КомплектДокументов") Тогда
КоллекцияПечатныхФорм.Очистить();
СформироватьКомплектПечатныхФорм(МассивОбъектов, ПараметрыПечати, КоллекцияПечатныхФорм, ОбъектыПечати);
КонецЕсли;
РеализацияТоваровУслугЛокализация.Печать(МассивОбъектов, ПараметрыПечати, КоллекцияПечатныхФорм, ОбъектыПечати, ПараметрыВывода);
ФормированиеПечатныхФорм.ЗаполнитьПараметрыОтправки(ПараметрыВывода.ПараметрыОтправки, МассивОбъектов, КоллекцияПечатныхФорм);
КонецПроцедуры
Функция СформироватьКомплектПечатныхФорм(МассивОбъектов, ПараметрыПечати, КоллекцияПечатныхФорм, ОбъектыПечати) Экспорт
Перем АдресКомплектаПечатныхФорм;
Если ТипЗнч(ПараметрыПечати) = Тип("Структура") И ПараметрыПечати.Свойство("АдресКомплектаПечатныхФорм", АдресКомплектаПечатныхФорм) Тогда
КомплектПечатныхФорм = ПолучитьИзВременногоХранилища(АдресКомплектаПечатныхФорм);
Иначе
КомплектПечатныхФорм = РегистрыСведений.НастройкиПечатиОбъектов.КомплектПечатныхФорм(
Метаданные.Документы.РеализацияТоваровУслуг.ПолноеИмя(),
МассивОбъектов, Неопределено);
КонецЕсли;
Если КомплектПечатныхФорм = Неопределено Тогда
Возврат Неопределено;
КонецЕсли;
РеализацияТоваровУслугЛокализация.СформироватьКомплектПечатныхФорм(МассивОбъектов,
ПараметрыПечати,
КоллекцияПечатныхФорм,
ОбъектыПечати,
КомплектПечатныхФорм);
КомплектыПечатиПоОбъектам = РегистрыСведений.НастройкиПечатиОбъектов.КомплектыПечатиПоОбъектам(КоллекцияПечатныхФорм,
КомплектПечатныхФорм,
МассивОбъектов,
"Накладная");
Для Каждого КомплектПечати Из КомплектыПечатиПоОбъектам Цикл
УправлениеПечатью.ВывестиТабличныйДокументВКоллекцию(
КоллекцияПечатныхФорм,
КомплектПечати.Имя,
КомплектПечати.Представление,
СформироватьПечатнуюФормуНакладная(КомплектПечати.Объекты, ОбъектыПечати, Неопределено));
КонецЦикла;
КомплектыПечатиПоОбъектам = РегистрыСведений.НастройкиПечатиОбъектов.КомплектыПечатиПоОбъектам(КоллекцияПечатныхФорм,
КомплектПечатныхФорм,
МассивОбъектов,
"НакладнаяБезСкидок");
Для Каждого КомплектПечати Из КомплектыПечатиПоОбъектам Цикл
УправлениеПечатью.ВывестиТабличныйДокументВКоллекцию(
КоллекцияПечатныхФорм,
КомплектПечати.Имя,
КомплектПечати.Представление,
СформироватьПечатнуюФормуНакладная(КомплектПечати.Объекты, ОбъектыПечати, Новый Структура("ОтображатьСкидки", Ложь)));
КонецЦикла;
КомплектыПечатиПоОбъектам = РегистрыСведений.НастройкиПечатиОбъектов.КомплектыПечатиПоОбъектам(КоллекцияПечатныхФорм,
КомплектПечатныхФорм,
МассивОбъектов,
"РасходнаяНакладная");
Для Каждого КомплектПечати Из КомплектыПечатиПоОбъектам Цикл
УправлениеПечатью.ВывестиТабличныйДокументВКоллекцию(
КоллекцияПечатныхФорм,
КомплектПечати.Имя,
КомплектПечати.Представление,
СформироватьПечатнуюФормуРасходнаяНакладная(КомплектПечати.Объекты, ОбъектыПечати));
КонецЦикла;
КомплектыПечатиПоОбъектам = РегистрыСведений.НастройкиПечатиОбъектов.КомплектыПечатиПоОбъектам(КоллекцияПечатныхФорм,
КомплектПечатныхФорм,
МассивОбъектов,
"Акт");
ПараметрыПечати.Удалить("ОтображатьСкидки");
Для Каждого КомплектПечати Из КомплектыПечатиПоОбъектам Цикл
СтруктураТипов = Новый Соответствие;
СтруктураТипов.Вставить("Документ.РеализацияТоваровУслуг", КомплектПечати.Объекты);
УправлениеПечатью.ВывестиТабличныйДокументВКоллекцию(
КоллекцияПечатныхФорм,
КомплектПечати.Имя,
КомплектПечати.Представление,
Обработки.ПечатьАктОбОказанииУслуг.СформироватьПечатнуюФормуАктОбОказанииУслуг(СтруктураТипов, ОбъектыПечати, ПараметрыПечати));
КонецЦикла;
КомплектыПечатиПоОбъектам = РегистрыСведений.НастройкиПечатиОбъектов.КомплектыПечатиПоОбъектам(КоллекцияПечатныхФорм,
КомплектПечатныхФорм,
МассивОбъектов,
"АктБезСкидок");
ПараметрыПечати.Вставить("ОтображатьСкидки", Ложь);
Для Каждого КомплектПечати Из КомплектыПечатиПоОбъектам Цикл
СтруктураТипов = Новый Соответствие;
СтруктураТипов.Вставить("Документ.РеализацияТоваровУслуг", КомплектПечати.Объекты);
УправлениеПечатью.ВывестиТабличныйДокументВКоллекцию(
КоллекцияПечатныхФорм,
КомплектПечати.Имя,
КомплектПечати.Представление,
Обработки.ПечатьАктОбОказанииУслуг.СформироватьПечатнуюФормуАктОбОказанииУслуг(СтруктураТипов, ОбъектыПечати, ПараметрыПечати));
КонецЦикла;
КомплектыПечатиПоОбъектам = РегистрыСведений.НастройкиПечатиОбъектов.КомплектыПечатиПоОбъектам(КоллекцияПечатныхФорм,
КомплектПечатныхФорм,
МассивОбъектов,
"СчетНаОплату");
ПараметрыПечати.Удалить("ОтображатьСкидки");
Для Каждого КомплектПечати Из КомплектыПечатиПоОбъектам Цикл
СтруктураТипов = Новый Соответствие;
СтруктураТипов.Вставить("Документ.РеализацияТоваровУслуг", КомплектПечати.Объекты);
УправлениеПечатью.ВывестиТабличныйДокументВКоллекцию(
КоллекцияПечатныхФорм,
КомплектПечати.Имя,
КомплектПечати.Представление,
Обработки.ПечатьСчетовНаОплату.СформироватьПечатнуюФормуСчетНаОплату(СтруктураТипов, ОбъектыПечати, ПараметрыПечати));
КонецЦикла;
КомплектыПечатиПоОбъектам = РегистрыСведений.НастройкиПечатиОбъектов.КомплектыПечатиПоОбъектам(КоллекцияПечатныхФорм,
КомплектПечатныхФорм,
МассивОбъектов,
"СчетНаОплатуБезСкидок");
ПараметрыПечати.Вставить("ОтображатьСкидки", Ложь);
Для Каждого КомплектПечати Из КомплектыПечатиПоОбъектам Цикл
СтруктураТипов = Новый Соответствие;
СтруктураТипов.Вставить("Документ.РеализацияТоваровУслуг", КомплектПечати.Объекты);
УправлениеПечатью.ВывестиТабличныйДокументВКоллекцию(
КоллекцияПечатныхФорм,
КомплектПечати.Имя,
КомплектПечати.Представление,
Обработки.ПечатьСчетовНаОплату.СформироватьПечатнуюФормуСчетНаОплату(СтруктураТипов, ОбъектыПечати, ПараметрыПечати));
КонецЦикла;
КомплектыПечатиПоОбъектам = РегистрыСведений.НастройкиПечатиОбъектов.КомплектыПечатиПоОбъектам(КоллекцияПечатныхФорм,
КомплектПечатныхФорм,
МассивОбъектов,
"СчетНаОплатуСФаксимиле");
ПараметрыПечати.Удалить("ОтображатьСкидки");
ПараметрыПечати.Вставить("ОтображатьФаксимиле", Истина);
Для Каждого КомплектПечати Из КомплектыПечатиПоОбъектам Цикл
СтруктураТипов = Новый Соответствие;
СтруктураТипов.Вставить("Документ.РеализацияТоваровУслуг", КомплектПечати.Объекты);
УправлениеПечатью.ВывестиТабличныйДокументВКоллекцию(
КоллекцияПечатныхФорм,
КомплектПечати.Имя,
КомплектПечати.Представление,
Обработки.ПечатьСчетовНаОплату.СформироватьПечатнуюФормуСчетНаОплату(СтруктураТипов, ОбъектыПечати, ПараметрыПечати));
КонецЦикла;
КомплектыПечатиПоОбъектам = РегистрыСведений.НастройкиПечатиОбъектов.КомплектыПечатиПоОбъектам(КоллекцияПечатныхФорм,
КомплектПечатныхФорм,
МассивОбъектов,
"СчетНаОплатуСФаксимилеБезСкидок");
ПараметрыПечати.Вставить("ОтображатьСкидки", Ложь);
ПараметрыПечати.Вставить("ОтображатьФаксимиле", Истина);
Для Каждого КомплектПечати Из КомплектыПечатиПоОбъектам Цикл
СтруктураТипов = Новый Соответствие;
СтруктураТипов.Вставить("Документ.РеализацияТоваровУслуг", КомплектПечати.Объекты);
УправлениеПечатью.ВывестиТабличныйДокументВКоллекцию(
КоллекцияПечатныхФорм,
КомплектПечати.Имя,
КомплектПечати.Представление,
Обработки.ПечатьСчетовНаОплату.СформироватьПечатнуюФормуСчетНаОплату(СтруктураТипов, ОбъектыПечати, ПараметрыПечати));
КонецЦикла;
КомплектыПечатиПоОбъектам = РегистрыСведений.НастройкиПечатиОбъектов.КомплектыПечатиПоОбъектам(КоллекцияПечатныхФорм,
КомплектПечатныхФорм,
МассивОбъектов,
"InvoiceInt");
Для Каждого КомплектПечати Из КомплектыПечатиПоОбъектам Цикл
СтруктураТипов = Новый Соответствие;
СтруктураТипов.Вставить("Документ.РеализацияТоваровУслуг", КомплектПечати.Объекты);
УправлениеПечатью.ВывестиТабличныйДокументВКоллекцию(
КоллекцияПечатныхФорм,
КомплектПечати.Имя,
КомплектПечати.Представление,
Обработки.ПечатьСчетовНаОплату.СформироватьПечатнуюФормуInvoice(СтруктураТипов, ОбъектыПечати, ПараметрыПечати));
КонецЦикла;
КомплектыПечатиПоОбъектам = РегистрыСведений.НастройкиПечатиОбъектов.КомплектыПечатиПоОбъектам(КоллекцияПечатныхФорм,
КомплектПечатныхФорм,
МассивОбъектов,
"ProformaInvoiceEn");
Для Каждого КомплектПечати Из КомплектыПечатиПоОбъектам Цикл
СтруктураТипов = Новый Соответствие;
СтруктураТипов.Вставить("Документ.РеализацияТоваровУслуг", КомплектПечати.Объекты);
УправлениеПечатью.ВывестиТабличныйДокументВКоллекцию(
КоллекцияПечатныхФорм,
КомплектПечати.Имя,
КомплектПечати.Представление,
Обработки.ПечатьСчетовНаОплату.СформироватьПечатнуюФормуProformaInvoice(СтруктураТипов, ОбъектыПечати, ПараметрыПечати));
КонецЦикла;
КомплектыПечатиПоОбъектам = РегистрыСведений.НастройкиПечатиОбъектов.КомплектыПечатиПоОбъектам(КоллекцияПечатныхФорм,
КомплектПечатныхФорм,
МассивОбъектов,
"ЗаданиеНаОтборРазмещениеТовара");
ПараметрыПечати.Вставить("ТипЗадания", "ЗаданиеНаОтбор");
Для Каждого КомплектПечати Из КомплектыПечатиПоОбъектам Цикл
СтруктураТипов = Новый Соответствие;
СтруктураТипов.Вставить("Документ.РеализацияТоваровУслуг", КомплектПечати.Объекты);
УправлениеПечатью.ВывестиТабличныйДокументВКоллекцию(
КоллекцияПечатныхФорм,
КомплектПечати.Имя,
КомплектПечати.Представление,
Обработки.ПечатьЗаданияНаОтборРазмещениеТоваров.СформироватьЗаданиеНаОтборРазмещениеТовара(СтруктураТипов,
ОбъектыПечати,
ПараметрыПечати));
КонецЦикла;
КомплектыПечатиПоОбъектам = РегистрыСведений.НастройкиПечатиОбъектов.КомплектыПечатиПоОбъектам(КоллекцияПечатныхФорм,
КомплектПечатныхФорм,
МассивОбъектов,
"СертификатыНоменклатурыРеестр");
Для Каждого КомплектПечати Из КомплектыПечатиПоОбъектам Цикл
УправлениеПечатью.ВывестиТабличныйДокументВКоллекцию(
КоллекцияПечатныхФорм,
КомплектПечати.Имя,
КомплектПечати.Представление,
Справочники.СертификатыНоменклатуры.СформироватьПечатнуюФормуРеестрСертификатовНоменклатуры(КомплектПечати.Объекты, ОбъектыПечати));
КонецЦикла;
КомплектыПечатиПоОбъектам = РегистрыСведений.НастройкиПечатиОбъектов.КомплектыПечатиПоОбъектам(КоллекцияПечатныхФорм,
КомплектПечатныхФорм,
МассивОбъектов,
"СертификатыНоменклатурыИзображенияИзДокументов");
Для Каждого КомплектПечати Из КомплектыПечатиПоОбъектам Цикл
УправлениеПечатью.ВывестиТабличныйДокументВКоллекцию(
КоллекцияПечатныхФорм,
КомплектПечати.Имя,
КомплектПечати.Представление,
Справочники.СертификатыНоменклатуры.СформироватьПечатнуюФормуИзображенияСертификатовИзДокументов(КомплектПечати.Объекты, ОбъектыПечати));
КонецЦикла;
КомплектыПечатиПоОбъектам = РегистрыСведений.НастройкиПечатиОбъектов.КомплектыПечатиПоОбъектам(КоллекцияПечатныхФорм,
КомплектПечатныхФорм,
МассивОбъектов,
"СертификатыНоменклатурыИзображенияИзДокументовБезДублей");
Для Каждого КомплектПечати Из КомплектыПечатиПоОбъектам Цикл
УправлениеПечатью.ВывестиТабличныйДокументВКоллекцию(
КоллекцияПечатныхФорм,
КомплектПечати.Имя,
КомплектПечати.Представление,
Справочники.СертификатыНоменклатуры.СформироватьПечатнуюФормуИзображенияСертификатовИзДокументовБезДублей(КомплектПечати.Объекты, ОбъектыПечати));
КонецЦикла;
РегистрыСведений.НастройкиПечатиОбъектов.СформироватьКомплектВнешнихПечатныхФорм(
"Документ.РеализацияТоваровУслуг",
МассивОбъектов,
ПараметрыПечати,
КоллекцияПечатныхФорм,
ОбъектыПечати);
КонецФункции
Функция КомплектПечатныхФорм() Экспорт
КомплектПечатныхФорм = РегистрыСведений.НастройкиПечатиОбъектов.ПодготовитьКомплектПечатныхФорм();
РегистрыСведений.НастройкиПечатиОбъектов.ДобавитьПечатнуюФормуВКомплект(КомплектПечатныхФорм, "РасходнаяНакладная", НСтр("ru = 'Расходная накладная'"), 0);
Если ПолучитьФункциональнуюОпцию("ВыбиратьВариантВыводаСкидокПриПечатиДокументовПродажи") Тогда
РегистрыСведений.НастройкиПечатиОбъектов.ДобавитьПечатнуюФормуВКомплект(КомплектПечатныхФорм, "Накладная", НСтр("ru = 'Реализация товаров (выводить скидки)'"), 0);
РегистрыСведений.НастройкиПечатиОбъектов.ДобавитьПечатнуюФормуВКомплект(КомплектПечатныхФорм, "НакладнаяБезСкидок", НСтр("ru = 'Реализация товаров (не выводить скидки)'"), 0);
РегистрыСведений.НастройкиПечатиОбъектов.ДобавитьПечатнуюФормуВКомплект(КомплектПечатныхФорм, "Акт", НСтр("ru = 'Акт об оказании услуг (выводить скидки)'"), 2);
РегистрыСведений.НастройкиПечатиОбъектов.ДобавитьПечатнуюФормуВКомплект(КомплектПечатныхФорм, "АктБезСкидок", НСтр("ru = 'Акт об оказании услуг (не выводить скидки)'"), 0);
Иначе
РегистрыСведений.НастройкиПечатиОбъектов.ДобавитьПечатнуюФормуВКомплект(КомплектПечатныхФорм, "Накладная", НСтр("ru = 'Реализация товаров'"), 0);
РегистрыСведений.НастройкиПечатиОбъектов.ДобавитьПечатнуюФормуВКомплект(КомплектПечатныхФорм, "Акт", НСтр("ru = 'Акт об оказании услуг'"), 2);
КонецЕсли;
Если ПолучитьФункциональнуюОпцию("НеИспользоватьСчетаНаОплатуВыбиратьВариантВыводаСкидок") Тогда
РегистрыСведений.НастройкиПечатиОбъектов.ДобавитьПечатнуюФормуВКомплект(КомплектПечатныхФорм, "СчетНаОплату", НСтр("ru = 'Счет на оплату (выводить скидки)'"), 1);
РегистрыСведений.НастройкиПечатиОбъектов.ДобавитьПечатнуюФормуВКомплект(КомплектПечатныхФорм, "СчетНаОплатуБезСкидок", НСтр("ru = 'Счет на оплату (не выводить скидки)'"), 0);
РегистрыСведений.НастройкиПечатиОбъектов.ДобавитьПечатнуюФормуВКомплект(КомплектПечатныхФорм, "СчетНаОплатуСФаксимиле", НСтр("ru = 'Счет на оплату с факсимиле (выводить скидки)'"), 0);
РегистрыСведений.НастройкиПечатиОбъектов.ДобавитьПечатнуюФормуВКомплект(КомплектПечатныхФорм, "СчетНаОплатуСФаксимилеБезСкидок", НСтр("ru = 'Счет на оплату с факсимиле (не выводить скидки)'"), 0);
КонецЕсли;
Если ПолучитьФункциональнуюОпцию("НеИспользоватьСчетаНаОплатуНеВыбиратьВариантВыводаСкидок") Тогда
РегистрыСведений.НастройкиПечатиОбъектов.ДобавитьПечатнуюФормуВКомплект(КомплектПечатныхФорм, "СчетНаОплату", НСтр("ru = 'Счет на оплату'"), 1);
РегистрыСведений.НастройкиПечатиОбъектов.ДобавитьПечатнуюФормуВКомплект(КомплектПечатныхФорм, "СчетНаОплатуСФаксимиле", НСтр("ru = 'Счет на оплату с факсимиле'"), 0);
КонецЕсли;
Если Константы.ИспользоватьМеждународныеПечатныеФормы.Получить() Тогда
РегистрыСведений.НастройкиПечатиОбъектов.ДобавитьПечатнуюФормуВКомплект(КомплектПечатныхФорм, "InvoiceInt", НСтр("ru = 'Invoice'"), 2);
Если НЕ ПолучитьФункциональнуюОпцию("ИспользоватьСчетаНаОплатуКлиентам") Тогда
РегистрыСведений.НастройкиПечатиОбъектов.ДобавитьПечатнуюФормуВКомплект(КомплектПечатныхФорм, "ProformaInvoiceEn", НСтр("ru = 'Proforma invoice'"), 1);
КонецЕсли;
КонецЕсли;
Если ПолучитьФункциональнуюОпцию("ИспользоватьСертификатыНоменклатуры") Тогда
РегистрыСведений.НастройкиПечатиОбъектов.ДобавитьПечатнуюФормуВКомплект(КомплектПечатныхФорм,
"СертификатыНоменклатурыРеестр",
НСтр("ru = 'Сертификаты (реестр)'"),
0);
РегистрыСведений.НастройкиПечатиОбъектов.ДобавитьПечатнуюФормуВКомплект(КомплектПечатныхФорм,
"СертификатыНоменклатурыИзображенияИзДокументов",
НСтр("ru = 'Сертификаты (по каждой позиции документа)'"),
0);
РегистрыСведений.НастройкиПечатиОбъектов.ДобавитьПечатнуюФормуВКомплект(КомплектПечатныхФорм,
"СертификатыНоменклатурыИзображенияИзДокументовБезДублей",
НСтр("ru = 'Сертификаты (по одному на сертификат)'"),
0);
КонецЕсли;
РегистрыСведений.НастройкиПечатиОбъектов.ДобавитьПечатнуюФормуВКомплект(КомплектПечатныхФорм, "ЗаданиеНаОтборРазмещениеТовара", НСтр("ru = 'Задание на отбор товаров'"), 0);
РеализацияТоваровУслугЛокализация.КомплектПечатныхФорм(КомплектПечатныхФорм);
Возврат КомплектПечатныхФорм;
КонецФункции
Функция ПолучитьДанныеДляПечатнойФормыАктОбОказанииУслуг(ПараметрыПечати, МассивОбъектов) Экспорт
Если ПараметрыПечати <> Неопределено И ПараметрыПечати.Свойство("ОтображатьСкидки") Тогда
ОтображатьСкидки = ПараметрыПечати.ОтображатьСкидки;
Иначе
ОтображатьСкидки = (Константы.ОтображениеСкидокВПечатныхФормахДокументовПродажи.Получить()
<> Перечисления.ВариантыВыводаСкидокВПечатныхФормах.НеВыводитьСкидки);
КонецЕсли;
Запрос = Новый Запрос("
|ВЫБРАТЬ
| РеализацияТоваровУслуг.Ссылка КАК Ссылка,
| РеализацияТоваровУслуг.Номер КАК Номер,
| РеализацияТоваровУслуг.Дата КАК Дата,
| РеализацияТоваровУслуг.Партнер КАК Партнер,
| РеализацияТоваровУслуг.Контрагент КАК Контрагент,
| РеализацияТоваровУслуг.Организация КАК Организация,
| РеализацияТоваровУслуг.Организация.Префикс КАК Префикс,
| РеализацияТоваровУслуг.Валюта КАК Валюта,
| РеализацияТоваровУслуг.ЦенаВключаетНДС КАК ЦенаВключаетНДС,
| ВЫБОР
| КОГДА РеализацияТоваровУслуг.НалогообложениеНДС = ЗНАЧЕНИЕ(Перечисление.ТипыНалогообложенияНДС.ПродажаНеОблагаетсяНДС)
| ИЛИ РеализацияТоваровУслуг.НалогообложениеНДС = ЗНАЧЕНИЕ(Перечисление.ТипыНалогообложенияНДС.ПродажаОблагаетсяЕНВД)
| ТОГДА ЛОЖЬ
| ИНАЧЕ ИСТИНА
| КОНЕЦ КАК УчитыватьНДС,
| РеализацияТоваровУслуг.Склад.ТекущийОтветственный.Наименование КАК ОтпускПроизвел
|ИЗ
| Документ.РеализацияТоваровУслуг КАК РеализацияТоваровУслуг
|ГДЕ
| РеализацияТоваровУслуг.Ссылка В(&МассивДокументов)
|
|УПОРЯДОЧИТЬ ПО
| Ссылка
|;
|
|
|ВЫБРАТЬ
| Таблица.Ссылка КАК Ссылка,
|
| ВариантыКомплектацииНоменклатуры.Ссылка КАК ВариантКомплектацииНоменклатуры,
| ВариантыКомплектацииНоменклатуры.ВариантПредставленияНабораВПечатныхФормах КАК ВариантПредставленияНабораВПечатныхФормах,
| ВариантыКомплектацииНоменклатуры.ВариантРасчетаЦеныНабора КАК ВариантРасчетаЦеныНабора,
| Таблица.НоменклатураНабора КАК НоменклатураНабора,
| Таблица.ХарактеристикаНабора КАК ХарактеристикаНабора,
|
| Таблица.Номенклатура КАК Номенклатура,
| Таблица.ПроцентРучнойСкидки + Таблица.ПроцентАвтоматическойСкидки КАК ПроцентСкидки,
| Таблица.Характеристика КАК Характеристика,
| Таблица.Упаковка КАК Упаковка,
| Таблица.СтавкаНДС КАК СтавкаНДС,
| ВЫБОР
| КОГДА &ОтображатьСкидки
| ТОГДА Таблица.Цена
| ИНАЧЕ Таблица.Сумма / Таблица.КоличествоУпаковок
| КОНЕЦ КАК Цена,
| Таблица.Количество КАК Количество,
| Таблица.КоличествоУпаковок КАК КоличествоУпаковок,
| Таблица.Сумма КАК Сумма,
| ВЫБОР
| КОГДА &ОтображатьСкидки
| ТОГДА Таблица.СуммаРучнойСкидки + Таблица.СуммаАвтоматическойСкидки
| ИНАЧЕ 0
| КОНЕЦ КАК СуммаСкидки,
| Таблица.Сумма + Таблица.СуммаРучнойСкидки + Таблица.СуммаАвтоматическойСкидки КАК СуммаБезСкидки,
| Таблица.СуммаНДС КАК СуммаНДС,
| Таблица.НомерСтроки КАК НомерСтроки
|ПОМЕСТИТЬ Товары
|ИЗ
| Документ.РеализацияТоваровУслуг.Товары КАК Таблица
|
| ЛЕВОЕ СОЕДИНЕНИЕ Справочник.ВариантыКомплектацииНоменклатуры КАК ВариантыКомплектацииНоменклатуры
| ПО ВариантыКомплектацииНоменклатуры.Владелец = Таблица.НоменклатураНабора
| И ВариантыКомплектацииНоменклатуры.Характеристика = Таблица.ХарактеристикаНабора
| И ВариантыКомплектацииНоменклатуры.Основной
|
|ГДЕ
| Таблица.Ссылка В(&МассивДокументов)
| И Таблица.Номенклатура.ТипНоменклатуры В (ЗНАЧЕНИЕ(Перечисление.ТипыНоменклатуры.Услуга), ЗНАЧЕНИЕ(Перечисление.ТипыНоменклатуры.Работа))
|;
|
|
|
|ВЫБРАТЬ
| Таблица.Ссылка КАК Ссылка,
| Таблица.НоменклатураНабора КАК НоменклатураНабора,
| Таблица.ХарактеристикаНабора КАК ХарактеристикаНабора,
| МИНИМУМ(Таблица.НомерСтроки) КАК НомерСтроки,
| СУММА(Таблица.Сумма) КАК Сумма,
| СУММА(Таблица.СуммаНДС) КАК СуммаНДС,
| СУММА(Таблица.СуммаСкидки) КАК СуммаСкидки,
| СУММА(Таблица.СуммаБезСкидки) КАК СуммаБезСкидки
|ПОМЕСТИТЬ ВременнаяТаблицаНаборыПодготовка
|ИЗ
| Товары КАК Таблица
|ГДЕ
| Таблица.НоменклатураНабора <> ЗНАЧЕНИЕ(Справочник.Номенклатура.ПустаяСсылка)
|
|СГРУППИРОВАТЬ ПО
| Таблица.Ссылка,
| Таблица.НоменклатураНабора,
| Таблица.ХарактеристикаНабора
|;
|
|
|ВЫБРАТЬ РАЗЛИЧНЫЕ
| ТаблицаТоваров.Ссылка КАК Ссылка
|ПОМЕСТИТЬ ТоварыРазличные
|ИЗ
| Товары КАК ТаблицаТоваров
|;
|
|
|ВЫБРАТЬ
| Товары.Ссылка КАК Ссылка,
| Товары.ВариантКомплектацииНоменклатуры КАК ВариантКомплектацииНоменклатуры,
| Товары.ВариантПредставленияНабораВПечатныхФормах КАК ВариантПредставленияНабораВПечатныхФормах,
| Товары.ВариантРасчетаЦеныНабора КАК ВариантРасчетаЦеныНабора,
| Товары.НоменклатураНабора,
| Товары.ХарактеристикаНабора,
| Товары.Номенклатура,
| Товары.Характеристика,
| ВЫБОР КОГДА Товары.ВариантКомплектацииНоменклатуры.НоменклатураОсновногоКомпонента = Товары.Номенклатура
| И Товары.ВариантКомплектацииНоменклатуры.ХарактеристикаОсновногоКомпонента = Товары.Характеристика ТОГДА
| ИСТИНА
| ИНАЧЕ
| ЛОЖЬ
| КОНЕЦ КАК ОсновнаяКомплектующая,
| 0 КАК КоличествоПоУмолчанию,
| Товары.Количество КАК Количество
|ПОМЕСТИТЬ ВременнаяТаблицаНаборыДополнительноЧастьПервая
|ИЗ
| Товары КАК Товары
|ГДЕ
| Товары.НоменклатураНабора <> ЗНАЧЕНИЕ(Справочник.Номенклатура.ПустаяСсылка)
|
|ОБЪЕДИНИТЬ ВСЕ
|
|ВЫБРАТЬ
| ТоварыРазличные.Ссылка КАК Ссылка,
| ВариантыКомплектацииНоменклатурыТовары.Ссылка КАК ВариантКомплектацииНоменклатуры,
| ВариантыКомплектацииНоменклатурыТовары.Ссылка.ВариантПредставленияНабораВПечатныхФормах КАК ВариантПредставленияНабораВПечатныхФормах,
| ВариантыКомплектацииНоменклатурыТовары.Ссылка.ВариантРасчетаЦеныНабора КАК ВариантРасчетаЦеныНабора,
| ВариантыКомплектацииНоменклатурыТовары.Ссылка.Владелец КАК НоменклатураНабора,
| ВариантыКомплектацииНоменклатурыТовары.Ссылка.Характеристика КАК ХарактеристикаНабора,
| ВариантыКомплектацииНоменклатурыТовары.Номенклатура КАК Номенклатура,
| ВариантыКомплектацииНоменклатурыТовары.Характеристика КАК Характеристика,
| ЛОЖЬ КАК ОсновнаяКомплектующая,
| СУММА(ВариантыКомплектацииНоменклатурыТовары.Количество) КАК КоличествоПоУмолчанию,
| 0 КАК Количество
|ИЗ
| Справочник.ВариантыКомплектацииНоменклатуры.Товары КАК ВариантыКомплектацииНоменклатурыТовары
| ЛЕВОЕ СОЕДИНЕНИЕ ТоварыРазличные КАК ТоварыРазличные
| ПО ИСТИНА
|ГДЕ
| ВариантыКомплектацииНоменклатурыТовары.Ссылка В (ВЫБРАТЬ Т.ВариантКомплектацииНоменклатуры ИЗ Товары КАК Т)
|
|СГРУППИРОВАТЬ ПО
| ТоварыРазличные.Ссылка,
| ВариантыКомплектацииНоменклатурыТовары.Ссылка,
| ВариантыКомплектацииНоменклатурыТовары.Ссылка.Владелец,
| ВариантыКомплектацииНоменклатурыТовары.Ссылка.Характеристика,
| ВариантыКомплектацииНоменклатурыТовары.Номенклатура,
| ВариантыКомплектацииНоменклатурыТовары.Характеристика,
| ВариантыКомплектацииНоменклатурыТовары.Упаковка
|;
|
|
|ВЫБРАТЬ
| Таблица.Ссылка,
| Таблица.ВариантКомплектацииНоменклатуры,
| Таблица.ВариантРасчетаЦеныНабора,
| Таблица.ВариантПредставленияНабораВПечатныхФормах,
| Таблица.НоменклатураНабора,
| Таблица.ХарактеристикаНабора,
| Таблица.Номенклатура,
| Таблица.Характеристика,
| МАКСИМУМ(Таблица.ОсновнаяКомплектующая) КАК ОсновнаяКомплектующая,
| СУММА(Таблица.КоличествоПоУмолчанию) КАК КоличествоПоУмолчанию,
| СУММА(Таблица.Количество) КАК Количество
|ПОМЕСТИТЬ ВременнаяТаблицаНаборыДополнительноЧастьВторая
|ИЗ
| ВременнаяТаблицаНаборыДополнительноЧастьПервая КАК Таблица
|
|СГРУППИРОВАТЬ ПО
| Таблица.Ссылка,
| Таблица.ВариантКомплектацииНоменклатуры,
| Таблица.ВариантРасчетаЦеныНабора,
| Таблица.ВариантПредставленияНабораВПечатныхФормах,
| Таблица.НоменклатураНабора,
| Таблица.ХарактеристикаНабора,
| Таблица.Номенклатура,
| Таблица.Характеристика
|;
|
|
|ВЫБРАТЬ
| Результат.Ссылка,
| Результат.ВариантКомплектацииНоменклатуры,
| Результат.ВариантРасчетаЦеныНабора,
| Результат.ВариантПредставленияНабораВПечатныхФормах,
| Результат.НоменклатураНабора,
| Результат.ХарактеристикаНабора,
| ВЫРАЗИТЬ(МИНИМУМ(ВЫБОР
| КОГДА Результат.КоличествоПоУмолчанию <> 0 И Результат.ОсновнаяКомплектующая
| ТОГДА Результат.Количество / Результат.КоличествоПоУмолчанию
| ИНАЧЕ null
| КОНЕЦ) + 0.5 КАК Число(10,0)) - 1 КАК Количество
|ПОМЕСТИТЬ ВременнаяТаблицаНаборыДополнительно
|ИЗ
| ВременнаяТаблицаНаборыДополнительноЧастьВторая КАК Результат
|СГРУППИРОВАТЬ ПО
| Результат.Ссылка,
| Результат.ВариантКомплектацииНоменклатуры,
| Результат.ВариантРасчетаЦеныНабора,
| Результат.ВариантПредставленияНабораВПечатныхФормах,
| Результат.НоменклатураНабора,
| Результат.ХарактеристикаНабора
|;
|
|
|ВЫБРАТЬ
| ВременнаяТаблицаНаборыДополнительно.ВариантКомплектацииНоменклатуры,
| ВЫБОР КОГДА Таблица.Ссылка.ХозяйственнаяОперация = ЗНАЧЕНИЕ(Перечисление.ХозяйственныеОперации.ПередачаНаКомиссию) ТОГДА
| ВЫБОР КОГДА ВременнаяТаблицаНаборыДополнительно.ВариантПредставленияНабораВПечатныхФормах = ЗНАЧЕНИЕ(Перечисление.ВариантыПредставленияНаборовВПечатныхФормах.ТолькоНабор) ТОГДА
| ЗНАЧЕНИЕ(Перечисление.ВариантыПредставленияНаборовВПечатныхФормах.НаборИКомплектующие)
| ИНАЧЕ
| ВременнаяТаблицаНаборыДополнительно.ВариантПредставленияНабораВПечатныхФормах
| КОНЕЦ
| ИНАЧЕ
| ВременнаяТаблицаНаборыДополнительно.ВариантПредставленияНабораВПечатныхФормах
| КОНЕЦ КАК ВариантПредставленияНабораВПечатныхФормах,
| ВЫБОР КОГДА Таблица.Ссылка.ХозяйственнаяОперация = ЗНАЧЕНИЕ(Перечисление.ХозяйственныеОперации.ПередачаНаКомиссию) ТОГДА
| ВЫБОР КОГДА
| ВЫБОР КОГДА ВременнаяТаблицаНаборыДополнительно.ВариантПредставленияНабораВПечатныхФормах = ЗНАЧЕНИЕ(Перечисление.ВариантыПредставленияНаборовВПечатныхФормах.ТолькоНабор) ТОГДА
| ЗНАЧЕНИЕ(Перечисление.ВариантыПредставленияНаборовВПечатныхФормах.НаборИКомплектующие)
| ИНАЧЕ
| ВременнаяТаблицаНаборыДополнительно.ВариантПредставленияНабораВПечатныхФормах
| КОНЕЦ = ЗНАЧЕНИЕ(Перечисление.ВариантыПредставленияНаборовВПечатныхФормах.НаборИКомплектующие)
| И ВременнаяТаблицаНаборыДополнительно.ВариантРасчетаЦеныНабора В (ЗНАЧЕНИЕ(Перечисление.ВариантыРасчетаЦенНаборов.ЦенаЗадаетсяЗаНаборРаспределяетсяПоЦенам),ЗНАЧЕНИЕ(Перечисление.ВариантыРасчетаЦенНаборов.ЦенаЗадаетсяЗаНаборРаспределяетсяПоДолям)) ТОГДА
| ЗНАЧЕНИЕ(Перечисление.ВариантыРасчетаЦенНаборов.РассчитываетсяИзЦенКомплектующих)
| ИНАЧЕ
| ВременнаяТаблицаНаборыДополнительно.ВариантРасчетаЦеныНабора
| КОНЕЦ
| ИНАЧЕ
| ВременнаяТаблицаНаборыДополнительно.ВариантРасчетаЦеныНабора
| КОНЕЦ КАК ВариантРасчетаЦеныНабора,
| Таблица.Ссылка КАК Ссылка,
| Таблица.НоменклатураНабора КАК НоменклатураНабора,
| Таблица.ХарактеристикаНабора КАК ХарактеристикаНабора,
| Таблица.НомерСтроки КАК НомерСтроки,
| ЕСТЬNULL(ВременнаяТаблицаНаборыДополнительно.Количество, 1) КАК КоличествоУпаковок,
| ЕСТЬNULL(ВременнаяТаблицаНаборыДополнительно.Количество, 1) КАК Количество,
| Таблица.Сумма КАК Сумма,
| Таблица.СуммаНДС КАК СуммаНДС,
| Таблица.СуммаСкидки КАК СуммаСкидки,
| Таблица.СуммаБезСкидки КАК СуммаБезСкидки
|ПОМЕСТИТЬ ВременнаяТаблицаНаборы
|ИЗ
| ВременнаяТаблицаНаборыПодготовка КАК Таблица
| ЛЕВОЕ СОЕДИНЕНИЕ ВременнаяТаблицаНаборыДополнительно КАК ВременнаяТаблицаНаборыДополнительно
| ПО Таблица.НоменклатураНабора = ВременнаяТаблицаНаборыДополнительно.НоменклатураНабора
| И Таблица.ХарактеристикаНабора = ВременнаяТаблицаНаборыДополнительно.ХарактеристикаНабора
| И Таблица.Ссылка = ВременнаяТаблицаНаборыДополнительно.Ссылка
|;
|
|
|ВЫБРАТЬ
| Товары.Ссылка КАК Ссылка,
| Товары.ВариантПредставленияНабораВПечатныхФормах КАК ВариантПредставленияНабораВПечатныхФормах,
| Товары.ВариантРасчетаЦеныНабора КАК ВариантРасчетаЦеныНабора,
| Товары.НоменклатураНабора КАК НоменклатураНабора,
| Товары.ХарактеристикаНабора КАК ХарактеристикаНабора,
| Товары.ЭтоНабор КАК ЭтоНабор,
| Товары.ЭтоКомплектующие КАК ЭтоКомплектующие,
| Товары.Номенклатура КАК Номенклатура,
| Товары.Номенклатура.НаименованиеПолное КАК УслугаНаименованиеПолное,
| Товары.Номенклатура.Код КАК Код,
| Товары.Номенклатура.Артикул КАК Артикул,
| &ТекстЗапросаЕдиницаИзмеренияНаименование КАК ЕдиницаЦены,
| &ТекстЗапросаЕдиницаИзмеренияСсылка КАК ЕдиницаИзмерения,
| &ТекстЗапросаЕдиницаИзмеренияНаименование КАК ЕдиницаИзмеренияНаименование,
| &ТекстЗапросаЕдиницаИзмеренияКод КАК ЕдиницаИзмеренияКод,
| Товары.Характеристика КАК Характеристика,
| Товары.Характеристика.НаименованиеПолное КАК ХарактеристикаНаименованиеПолное,
| ВЫБОР
| КОГДА ЕСТЬNULL(&ТекстЗапросаКоэффициентУпаковки, 1) = 1
| ТОГДА НЕОПРЕДЕЛЕНО
| ИНАЧЕ Товары.Упаковка.Наименование
| КОНЕЦ КАК УпаковкаНаименование,
| Товары.СтавкаНДС КАК СтавкаНДС,
| Товары.Цена КАК Цена,
| Товары.КоличествоУпаковок КАК Количество,
| Товары.Сумма КАК Сумма,
| Товары.СуммаНДС КАК СуммаНДС,
| Товары.СуммаСкидки КАК СуммаСкидки,
| Товары.СуммаБезСкидки КАК СуммаБезСкидки,
| Товары.НомерСтроки КАК НомерСтроки,
| ЛОЖЬ КАК ЭтоВозвратнаяТара
|ИЗ (
| ВЫБРАТЬ
| Таблица.Ссылка,
| ВЫБОР КОГДА ЕСТЬNULL(ВременнаяТаблицаНаборы.НомерСтроки, 0) <> 0 ТОГДА
| ВременнаяТаблицаНаборы.ВариантПредставленияНабораВПечатныхФормах
| ИНАЧЕ
| ЗНАЧЕНИЕ(Перечисление.ВариантыПредставленияНаборовВПечатныхФормах.ПустаяСсылка)
| КОНЕЦ КАК ВариантПредставленияНабораВПечатныхФормах,
|
| ВЫБОР КОГДА ЕСТЬNULL(ВременнаяТаблицаНаборы.НомерСтроки, 0) <> 0 ТОГДА
| ВременнаяТаблицаНаборы.ВариантРасчетаЦеныНабора
| ИНАЧЕ
| ЗНАЧЕНИЕ(Перечисление.ВариантыРасчетаЦенНаборов.ПустаяСсылка)
| КОНЕЦ КАК ВариантРасчетаЦеныНабора,
| Таблица.НоменклатураНабора,
| Таблица.ХарактеристикаНабора,
| ВЫБОР КОГДА ЕСТЬNULL(ВременнаяТаблицаНаборы.НомерСтроки, 0) <> 0 ТОГДА
| ИСТИНА
| ИНАЧЕ
| ЛОЖЬ
| КОНЕЦ КАК ЭтоКомплектующие,
| ЛОЖЬ КАК ЭтоНабор,
| ВЫБОР КОГДА ЕСТЬNULL(ВременнаяТаблицаНаборы.НомерСтроки, 0) <> 0 ТОГДА
| ВременнаяТаблицаНаборы.НомерСтроки
| ИНАЧЕ
| Таблица.НомерСтроки
| КОНЕЦ КАК НомерСтроки,
| Таблица.Номенклатура,
| Таблица.Количество,
| Таблица.КоличествоУпаковок,
| Таблица.Цена,
| Таблица.Сумма,
| Таблица.СтавкаНДС,
| Таблица.СуммаНДС,
| Таблица.Характеристика,
| Таблица.Упаковка,
| Таблица.СуммаСкидки,
| Таблица.СуммаБезСкидки
| ИЗ
| Товары КАК Таблица
| ЛЕВОЕ СОЕДИНЕНИЕ ВременнаяТаблицаНаборы КАК ВременнаяТаблицаНаборы
| ПО ВременнаяТаблицаНаборы.НоменклатураНабора = Таблица.НоменклатураНабора
| И ВременнаяТаблицаНаборы.ХарактеристикаНабора = Таблица.ХарактеристикаНабора
| И ВременнаяТаблицаНаборы.Ссылка = Таблица.Ссылка
|
| ГДЕ
| Таблица.НоменклатураНабора = ЗНАЧЕНИЕ(Справочник.Номенклатура.ПустаяСсылка)
| ИЛИ (Таблица.НоменклатураНабора <> ЗНАЧЕНИЕ(Справочник.Номенклатура.ПустаяСсылка)
| И ВременнаяТаблицаНаборы.ВариантПредставленияНабораВПечатныхФормах В (ЗНАЧЕНИЕ(Перечисление.ВариантыПредставленияНаборовВПечатныхФормах.ТолькоКомплектующие),
| ЗНАЧЕНИЕ(Перечисление.ВариантыПредставленияНаборовВПечатныхФормах.НаборИКомплектующие)))
|
| ОБЪЕДИНИТЬ ВСЕ
|
| ВЫБРАТЬ
| ВременнаяТаблицаНаборы.Ссылка,
| ВременнаяТаблицаНаборы.ВариантПредставленияНабораВПечатныхФормах,
| ВременнаяТаблицаНаборы.ВариантРасчетаЦеныНабора КАК ВариантРасчетаЦеныНабора,
| ВременнаяТаблицаНаборы.НоменклатураНабора,
| ВременнаяТаблицаНаборы.ХарактеристикаНабора,
| ЛОЖЬ КАК ЭтоКомплектующие,
| ИСТИНА КАК ЭтоНабор,
| ВременнаяТаблицаНаборы.НомерСтроки,
| ВременнаяТаблицаНаборы.НоменклатураНабора,
| ВременнаяТаблицаНаборы.Количество,
| ВременнаяТаблицаНаборы.КоличествоУпаковок,
| ВЫБОР
| КОГДА &ОтображатьСкидки ТОГДА
| ВЫБОР КОГДА ЕСТЬNULL(ВременнаяТаблицаНаборы.КоличествоУпаковок, 1) <> 0 ТОГДА
| (ВременнаяТаблицаНаборы.СуммаБезСкидки) / ЕСТЬNULL(ВременнаяТаблицаНаборы.КоличествоУпаковок, 1)
| ИНАЧЕ
| 0
| КОНЕЦ
| ИНАЧЕ
| ВЫБОР КОГДА ЕСТЬNULL(ВременнаяТаблицаНаборы.КоличествоУпаковок, 1) <> 0 ТОГДА
| (ВременнаяТаблицаНаборы.Сумма) / ЕСТЬNULL(ВременнаяТаблицаНаборы.КоличествоУпаковок, 1)
| ИНАЧЕ
| 0
| КОНЕЦ
| КОНЕЦ КАК Цена,
| ВременнаяТаблицаНаборы.Сумма КАК Сумма,
| ВременнаяТаблицаНаборы.НоменклатураНабора.СтавкаНДС,
| ВременнаяТаблицаНаборы.СуммаНДС,
| ВременнаяТаблицаНаборы.ХарактеристикаНабора,
| ЗНАЧЕНИЕ(Справочник.УпаковкиЕдиницыИзмерения.ПустаяСсылка) КАК Упаковка,
| ВременнаяТаблицаНаборы.СуммаСкидки,
| ВременнаяТаблицаНаборы.СуммаБезСкидки
| ИЗ
| ВременнаяТаблицаНаборы КАК ВременнаяТаблицаНаборы
| ГДЕ
| ВременнаяТаблицаНаборы.ВариантПредставленияНабораВПечатныхФормах В (ЗНАЧЕНИЕ(Перечисление.ВариантыПредставленияНаборовВПечатныхФормах.ТолькоНабор),
| ЗНАЧЕНИЕ(Перечисление.ВариантыПредставленияНаборовВПечатныхФормах.НаборИКомплектующие))
|) КАК Товары
|
|УПОРЯДОЧИТЬ ПО
| НомерСтроки,
| ЭтоНабор УБЫВ
|ИТОГИ
| СУММА(СуммаСкидки)
|ПО
| Ссылка");
Запрос.Текст = СтрЗаменить(Запрос.Текст, "&ТекстЗапросаКоэффициентУпаковки",
Справочники.УпаковкиЕдиницыИзмерения.ТекстЗапросаКоэффициентаУпаковки(
"Товары.Упаковка",
"Товары.Номенклатура"));
Запрос.Текст = СтрЗаменить(Запрос.Текст, "&ТекстЗапросаЕдиницаИзмеренияСсылка",
Справочники.УпаковкиЕдиницыИзмерения.ТекстЗапросаЗначениеРеквизитаЕдиницыИзмерения(
"Ссылка",
"Товары.Упаковка",
"Товары.Номенклатура"));
Запрос.Текст = СтрЗаменить(Запрос.Текст, "&ТекстЗапросаЕдиницаИзмеренияНаименование",
Справочники.УпаковкиЕдиницыИзмерения.ТекстЗапросаЗначениеРеквизитаЕдиницыИзмерения(
"Наименование",
"Товары.Упаковка",
"Товары.Номенклатура"));
Запрос.Текст = СтрЗаменить(Запрос.Текст, "&ТекстЗапросаЕдиницаИзмеренияКод",
Справочники.УпаковкиЕдиницыИзмерения.ТекстЗапросаЗначениеРеквизитаЕдиницыИзмерения(
"Код",
"Товары.Упаковка",
"Товары.Номенклатура"));
Запрос.УстановитьПараметр("МассивДокументов", МассивОбъектов);
Запрос.УстановитьПараметр("ОтображатьСкидки", ОтображатьСкидки);
МассивРезультатов = Запрос.ВыполнитьПакет();
СтруктураДанныхДляПечати = Новый Структура;
СтруктураДанныхДляПечати.Вставить("РезультатПоШапке", МассивРезультатов[0]);
СтруктураДанныхДляПечати.Вставить("РезультатПоТабличнойЧасти", МассивРезультатов[МассивРезультатов.Количество() - 1]);
Возврат СтруктураДанныхДляПечати;
КонецФункции
Функция ПолучитьДанныеДляПечатнойФормыСчетаНаОплату(ПараметрыПечати, МассивОбъектов, КодЯзыка = Неопределено) Экспорт
Возврат ДанныеДляПечатныхФормСчетаНаОплатуИзвещения(ПараметрыПечати, МассивОбъектов, КодЯзыка);
КонецФункции
Функция СформироватьПечатнуюФормуНакладная(МассивОбъектов, ОбъектыПечати, ПараметрыПечати)
УстановитьПривилегированныйРежим(Истина);
Если ПараметрыПечати <> Неопределено
И ПараметрыПечати.Свойство("ОтображатьСкидки") Тогда
ОтображатьСкидки = ПараметрыПечати.ОтображатьСкидки;
Иначе
ОтображатьСкидки = (Константы.ОтображениеСкидокВПечатныхФормахДокументовПродажи.Получить()
<> Перечисления.ВариантыВыводаСкидокВПечатныхФормах.НеВыводитьСкидки);
КонецЕсли;
КолонкаКодов = ФормированиеПечатныхФорм.ДополнительнаяКолонкаПечатныхФормДокументов();
ИмяКолонкиКодов = КолонкаКодов.ИмяКолонки;
ПредставлениеКолонкиКодов = КолонкаКодов.ПредставлениеКолонки;
ВыводитьКоды = ЗначениеЗаполнено(ИмяКолонкиКодов);
ИспользоватьРучныеСкидки = ПолучитьФункциональнуюОпцию("ИспользоватьРучныеСкидкиВПродажах");
ИспользоватьАвтоматическиеСкидки = ПолучитьФункциональнуюОпцию("ИспользоватьАвтоматическиеСкидкиВПродажах");
Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ
| РеализацияТоваровУслуг.Ссылка КАК Ссылка,
| РеализацияТоваровУслуг.Номер КАК Номер,
| РеализацияТоваровУслуг.Дата КАК Дата,
| РеализацияТоваровУслуг.Партнер КАК Партнер,
| РеализацияТоваровУслуг.Контрагент КАК Получатель,
| РеализацияТоваровУслуг.Организация КАК Организация,
| РеализацияТоваровУслуг.Организация.Префикс КАК Префикс,
| РеализацияТоваровУслуг.Валюта КАК Валюта,
| РеализацияТоваровУслуг.ЦенаВключаетНДС КАК ЦенаВключаетНДС,
| ВЫБОР
| КОГДА РеализацияТоваровУслуг.НалогообложениеНДС В(ЗНАЧЕНИЕ(Перечисление.ТипыНалогообложенияНДС.ПродажаНеОблагаетсяНДС),
| ЗНАЧЕНИЕ(Перечисление.ТипыНалогообложенияНДС.ПродажаОблагаетсяЕНВД))
| ТОГДА ЛОЖЬ
| ИНАЧЕ ИСТИНА
| КОНЕЦ КАК УчитыватьНДС,
| РеализацияТоваровУслуг.Отпустил КАК ОтпускПроизвел
|ИЗ
| Документ.РеализацияТоваровУслуг КАК РеализацияТоваровУслуг
|
|ГДЕ
| РеализацияТоваровУслуг.Ссылка В(&МассивДокументов)
|
|УПОРЯДОЧИТЬ ПО
| Ссылка
|;
|
|
|ВЫБРАТЬ
| РеализацияТоваровУслуг.Ссылка КАК Ссылка,
| РеализацияТоваровУслуг.НомерСтроки КАК НомерСтроки,
| ВариантыКомплектацииНоменклатуры.Ссылка КАК ВариантКомплектацииНоменклатуры,
| ВариантыКомплектацииНоменклатуры.ВариантПредставленияНабораВПечатныхФормах КАК ВариантПредставленияНабораВПечатныхФормах,
| ВариантыКомплектацииНоменклатуры.ВариантРасчетаЦеныНабора КАК ВариантРасчетаЦеныНабора,
| ЕСТЬNULL(РеализацияТоваровУслуг.АналитикаУчетаНаборов.НоменклатураНабора,
| ЗНАЧЕНИЕ(Справочник.Номенклатура.ПустаяСсылка)) КАК НоменклатураНабора,
| ЕСТЬNULL(РеализацияТоваровУслуг.АналитикаУчетаНаборов.ХарактеристикаНабора,
| ЗНАЧЕНИЕ(Справочник.ХарактеристикиНоменклатуры.ПустаяСсылка)) КАК ХарактеристикаНабора,
| РеализацияТоваровУслуг.АналитикаУчетаНоменклатуры.Номенклатура КАК Номенклатура,
| ВЫБОР
| КОГДА РеализацияТоваровУслуг.Упаковка = ЗНАЧЕНИЕ(Справочник.УпаковкиЕдиницыИзмерения.ПустаяСсылка)
| ТОГДА 1
| ИНАЧЕ &ТекстЗапросаКоэффициентУпаковки1
| КОНЕЦ КАК Коэффициент,
| ВЫБОР
| КОГДА РеализацияТоваровУслуг.Упаковка = ЗНАЧЕНИЕ(Справочник.УпаковкиЕдиницыИзмерения.ПустаяСсылка)
| ТОГДА РеализацияТоваровУслуг.АналитикаУчетаНоменклатуры.Номенклатура.ЕдиницаИзмерения
| ИНАЧЕ РеализацияТоваровУслуг.Упаковка
| КОНЕЦ КАК ЕдиницаИзмерения,
| РеализацияТоваровУслуг.АналитикаУчетаНоменклатуры.Характеристика КАК Характеристика,
| РеализацияТоваровУслуг.Упаковка КАК Упаковка,
| РеализацияТоваровУслуг.СтавкаНДС КАК СтавкаНДС,
| ВЫБОР
| КОГДА &ОтображатьСкидки
| ТОГДА РеализацияТоваровУслуг.Цена
| ИНАЧЕ РеализацияТоваровУслуг.СуммаСНДС / РеализацияТоваровУслуг.КоличествоУпаковок
| КОНЕЦ КАК Цена,
| РеализацияТоваровУслуг.Количество КАК Количество,
| РеализацияТоваровУслуг.КоличествоУпаковок КАК КоличествоУпаковок,
| ВЫБОР
| КОГДА РеализацияТоваровУслуг.Ссылка.ЦенаВключаетНДС
| ТОГДА РеализацияТоваровУслуг.СуммаСНДС
| ИНАЧЕ РеализацияТоваровУслуг.СуммаСНДС - РеализацияТоваровУслуг.СуммаНДС
| КОНЕЦ КАК Сумма,
| ВЫБОР
| КОГДА &ОтображатьСкидки ТОГДА
| РеализацияТоваровУслуг.СуммаРучнойСкидки + РеализацияТоваровУслуг.СуммаАвтоматическойСкидки
| ИНАЧЕ 0
| КОНЕЦ КАК СуммаСкидки,
| РеализацияТоваровУслуг.СуммаСНДС + РеализацияТоваровУслуг.СуммаРучнойСкидки
| + РеализацияТоваровУслуг.СуммаАвтоматическойСкидки КАК СуммаБезСкидки,
| РеализацияТоваровУслуг.СуммаНДС КАК СуммаНДС,
| ВЫБОР
| КОГДА НЕ &ИспользоватьУчетПрослеживаемыхИмпортныхТоваров
| ИЛИ НАЧАЛОПЕРИОДА(РеализацияТоваровУслуг.Ссылка.Дата, МЕСЯЦ) < &ДатаНачалаУчетаПрослеживаемыхИмпортныхТоваров
| ТОГДА 0
| ИНАЧЕ РеализацияТоваровУслуг.КоличествоПоРНПТ
| КОНЕЦ КАК КоличествоПоРНПТ,
| ВЫБОР
| КОГДА НЕ &ИспользоватьУчетПрослеживаемыхИмпортныхТоваров
| ИЛИ НАЧАЛОПЕРИОДА(РеализацияТоваровУслуг.Ссылка.Дата, МЕСЯЦ) < &ДатаНачалаУчетаПрослеживаемыхИмпортныхТоваров
| ТОГДА ЗНАЧЕНИЕ(Справочник.НомераГТД.ПустаяСсылка)
| ИНАЧЕ РеализацияТоваровУслуг.НомерГТД
| КОНЕЦ КАК НомерГТД
|ПОМЕСТИТЬ Товары
|ИЗ
| Документ.РеализацияТоваровУслуг.ВидыЗапасов КАК РеализацияТоваровУслуг
| ЛЕВОЕ СОЕДИНЕНИЕ Справочник.ВариантыКомплектацииНоменклатуры КАК ВариантыКомплектацииНоменклатуры
| ПО ВариантыКомплектацииНоменклатуры.Владелец = РеализацияТоваровУслуг.АналитикаУчетаНаборов.НоменклатураНабора
| И ВариантыКомплектацииНоменклатуры.Характеристика = РеализацияТоваровУслуг.АналитикаУчетаНаборов.ХарактеристикаНабора
| И ВариантыКомплектацииНоменклатуры.Основной
|
|ГДЕ
| РеализацияТоваровУслуг.Ссылка В(&МассивДокументов)
| И &УсловиеПоТипуНоменклатуры
|;
|
|
|ВЫБРАТЬ
| ТаблицаТоваров.Ссылка КАК Ссылка,
| МИНИМУМ(ТаблицаТоваров.НомерСтроки) КАК НомерСтроки,
| ТаблицаТоваров.НоменклатураНабора КАК НоменклатураНабора,
| ТаблицаТоваров.ХарактеристикаНабора КАК ХарактеристикаНабора,
| СУММА(ТаблицаТоваров.Сумма) КАК Сумма,
| СУММА(ТаблицаТоваров.СуммаБезСкидки) КАК СуммаБезСкидки,
| СУММА(ТаблицаТоваров.СуммаСкидки) КАК СуммаСкидки,
| СУММА(ТаблицаТоваров.СуммаНДС) КАК СуммаНДС
|ПОМЕСТИТЬ ВременнаяТаблицаНаборыПодготовка
|ИЗ
| Товары КАК ТаблицаТоваров
|
|ГДЕ
| ТаблицаТоваров.НоменклатураНабора <> ЗНАЧЕНИЕ(Справочник.Номенклатура.ПустаяСсылка)
|
|СГРУППИРОВАТЬ ПО
| ТаблицаТоваров.Ссылка,
| ТаблицаТоваров.НоменклатураНабора,
| ТаблицаТоваров.ХарактеристикаНабора
|;
|
|
|ВЫБРАТЬ РАЗЛИЧНЫЕ
| ТаблицаТоваров.Ссылка КАК Ссылка
|ПОМЕСТИТЬ ТоварыРазличные
|ИЗ
| Товары КАК ТаблицаТоваров
|;
|
|
|ВЫБРАТЬ
| Товары.Ссылка КАК Ссылка,
| Товары.ВариантКомплектацииНоменклатуры КАК ВариантКомплектацииНоменклатуры,
| Товары.ВариантПредставленияНабораВПечатныхФормах КАК ВариантПредставленияНабораВПечатныхФормах,
| Товары.ВариантРасчетаЦеныНабора КАК ВариантРасчетаЦеныНабора,
| Товары.НоменклатураНабора КАК НоменклатураНабора,
| Товары.ХарактеристикаНабора КАК ХарактеристикаНабора,
| Товары.Номенклатура КАК Номенклатура,
| Товары.Характеристика КАК Характеристика,
| ВЫБОР
| КОГДА Товары.ВариантКомплектацииНоменклатуры.НоменклатураОсновногоКомпонента = Товары.Номенклатура
| И Товары.ВариантКомплектацииНоменклатуры.ХарактеристикаОсновногоКомпонента = Товары.Характеристика
| ТОГДА ИСТИНА
| ИНАЧЕ ЛОЖЬ
| КОНЕЦ КАК ОсновнаяКомплектующая,
| Товары.СтавкаНДС КАК СтавкаНДС,
| 0 КАК КоличествоПоУмолчанию,
| Товары.Количество КАК Количество
|ПОМЕСТИТЬ ВременнаяТаблицаНаборыДополнительноЧастьПервая
|ИЗ
| Товары КАК Товары
|
|ГДЕ
| Товары.НоменклатураНабора <> ЗНАЧЕНИЕ(Справочник.Номенклатура.ПустаяСсылка)
|
|ОБЪЕДИНИТЬ ВСЕ
|
|ВЫБРАТЬ
| ТоварыРазличные.Ссылка КАК Ссылка,
| ВариантыКомплектацииНоменклатурыТовары.Ссылка КАК ВариантКомплектацииНоменклатуры,
| ВариантыКомплектацииНоменклатурыТовары.Ссылка.ВариантПредставленияНабораВПечатныхФормах КАК ВариантПредставленияНабораВПечатныхФормах,
| ВариантыКомплектацииНоменклатурыТовары.Ссылка.ВариантРасчетаЦеныНабора КАК ВариантРасчетаЦеныНабора,
| ВариантыКомплектацииНоменклатурыТовары.Ссылка.Владелец КАК НоменклатураНабора,
| ВариантыКомплектацииНоменклатурыТовары.Ссылка.Характеристика КАК ХарактеристикаНабора,
| ВариантыКомплектацииНоменклатурыТовары.Номенклатура КАК Номенклатура,
| ВариантыКомплектацииНоменклатурыТовары.Характеристика КАК Характеристика,
| ЛОЖЬ КАК ОсновнаяКомплектующая,
| NULL КАК СтавкаНДС,
| СУММА(ВариантыКомплектацииНоменклатурыТовары.Количество) КАК КоличествоПоУмолчанию,
| 0 КАК Количество
|ИЗ
| Справочник.ВариантыКомплектацииНоменклатуры.Товары КАК ВариантыКомплектацииНоменклатурыТовары
| ЛЕВОЕ СОЕДИНЕНИЕ ТоварыРазличные КАК ТоварыРазличные
| ПО ИСТИНА
|
|ГДЕ
| ВариантыКомплектацииНоменклатурыТовары.Ссылка В
| (ВЫБРАТЬ
| Т.ВариантКомплектацииНоменклатуры
| ИЗ
| Товары КАК Т)
|
|СГРУППИРОВАТЬ ПО
| ТоварыРазличные.Ссылка,
| ВариантыКомплектацииНоменклатурыТовары.Ссылка,
| ВариантыКомплектацииНоменклатурыТовары.Ссылка.Владелец,
| ВариантыКомплектацииНоменклатурыТовары.Ссылка.Характеристика,
| ВариантыКомплектацииНоменклатурыТовары.Номенклатура,
| ВариантыКомплектацииНоменклатурыТовары.Характеристика,
| ВариантыКомплектацииНоменклатурыТовары.Упаковка
|;
|
|
|ВЫБРАТЬ
| Таблица.Ссылка КАК Ссылка,
| Таблица.ВариантКомплектацииНоменклатуры КАК ВариантКомплектацииНоменклатуры,
| Таблица.ВариантРасчетаЦеныНабора КАК ВариантРасчетаЦеныНабора,
| Таблица.ВариантПредставленияНабораВПечатныхФормах КАК ВариантПредставленияНабораВПечатныхФормах,
| Таблица.НоменклатураНабора КАК НоменклатураНабора,
| Таблица.ХарактеристикаНабора КАК ХарактеристикаНабора,
| Таблица.Номенклатура КАК Номенклатура,
| Таблица.Характеристика КАК Характеристика,
| МАКСИМУМ(Таблица.СтавкаНДС) КАК СтавкаНДС,
| МАКСИМУМ(Таблица.ОсновнаяКомплектующая) КАК ОсновнаяКомплектующая,
| СУММА(Таблица.КоличествоПоУмолчанию) КАК КоличествоПоУмолчанию,
| СУММА(Таблица.Количество) КАК Количество
|ПОМЕСТИТЬ ВременнаяТаблицаНаборыДополнительноЧастьВторая
|ИЗ
| ВременнаяТаблицаНаборыДополнительноЧастьПервая КАК Таблица
|
|СГРУППИРОВАТЬ ПО
| Таблица.Ссылка,
| Таблица.ВариантКомплектацииНоменклатуры,
| Таблица.ВариантРасчетаЦеныНабора,
| Таблица.ВариантПредставленияНабораВПечатныхФормах,
| Таблица.НоменклатураНабора,
| Таблица.ХарактеристикаНабора,
| Таблица.Номенклатура,
| Таблица.Характеристика
|;
|
|
|ВЫБРАТЬ
| Результат.Ссылка КАК Ссылка,
| Результат.ВариантКомплектацииНоменклатуры КАК ВариантКомплектацииНоменклатуры,
| Результат.ВариантРасчетаЦеныНабора КАК ВариантРасчетаЦеныНабора,
| Результат.ВариантПредставленияНабораВПечатныхФормах КАК ВариантПредставленияНабораВПечатныхФормах,
| Результат.НоменклатураНабора КАК НоменклатураНабора,
| Результат.ХарактеристикаНабора КАК ХарактеристикаНабора,
| МАКСИМУМ(ВЫБОР
| КОГДА Результат.ОсновнаяКомплектующая
| ТОГДА Результат.СтавкаНДС
| ИНАЧЕ NULL
| КОНЕЦ) КАК СтавкаНДС,
| ВЫРАЗИТЬ(МИНИМУМ(ВЫБОР
| КОГДА Результат.КоличествоПоУмолчанию <> 0
| И Результат.ОсновнаяКомплектующая
| ТОГДА Результат.Количество / Результат.КоличествоПоУмолчанию
| ИНАЧЕ NULL
| КОНЕЦ) + 0.5 КАК Число(10,0)) - 1 КАК Количество,
| МАКСИМУМ(ВЫБОР
| КОГДА Результат.КоличествоПоУмолчанию <> 0
| ТОГДА Результат.Количество / Результат.КоличествоПоУмолчанию
| ИНАЧЕ NULL
| КОНЕЦ) КАК КоэффициентМаксимум,
| ВЫРАЗИТЬ(МИНИМУМ(ВЫБОР
| КОГДА Результат.КоличествоПоУмолчанию <> 0
| ТОГДА Результат.Количество / Результат.КоличествоПоУмолчанию
| ИНАЧЕ NULL
| КОНЕЦ) + 0.5 КАК Число(10,0)) - 1 КАК КоэффициентМинимум
|ПОМЕСТИТЬ ВременнаяТаблицаНаборыДополнительно
|ИЗ
| ВременнаяТаблицаНаборыДополнительноЧастьВторая КАК Результат
|
|СГРУППИРОВАТЬ ПО
| Результат.Ссылка,
| Результат.ВариантКомплектацииНоменклатуры,
| Результат.ВариантРасчетаЦеныНабора,
| Результат.ВариантПредставленияНабораВПечатныхФормах,
| Результат.НоменклатураНабора,
| Результат.ХарактеристикаНабора
|;
|
|
|ВЫБРАТЬ
| Таблица.Ссылка КАК Ссылка,
| Таблица.НомерСтроки КАК НомерСтроки,
| ВременнаяТаблицаНаборыДополнительно.ВариантКомплектацииНоменклатуры КАК ВариантКомплектацииНоменклатуры,
| ВЫБОР
| КОГДА Таблица.Ссылка.ХозяйственнаяОперация = ЗНАЧЕНИЕ(Перечисление.ХозяйственныеОперации.ПередачаНаКомиссию)
| ТОГДА ВЫБОР
| КОГДА ВременнаяТаблицаНаборыДополнительно.ВариантПредставленияНабораВПечатныхФормах = ЗНАЧЕНИЕ(Перечисление.ВариантыПредставленияНаборовВПечатныхФормах.ТолькоНабор)
| ТОГДА ЗНАЧЕНИЕ(Перечисление.ВариантыПредставленияНаборовВПечатныхФормах.НаборИКомплектующие)
| ИНАЧЕ ВременнаяТаблицаНаборыДополнительно.ВариантПредставленияНабораВПечатныхФормах
| КОНЕЦ
| ИНАЧЕ ВременнаяТаблицаНаборыДополнительно.ВариантПредставленияНабораВПечатныхФормах
| КОНЕЦ КАК ВариантПредставленияНабораВПечатныхФормах,
| ВЫБОР
| КОГДА Таблица.Ссылка.ХозяйственнаяОперация = ЗНАЧЕНИЕ(Перечисление.ХозяйственныеОперации.ПередачаНаКомиссию)
| ТОГДА ВЫБОР
| КОГДА ВЫБОР
| КОГДА ВременнаяТаблицаНаборыДополнительно.ВариантПредставленияНабораВПечатныхФормах = ЗНАЧЕНИЕ(Перечисление.ВариантыПредставленияНаборовВПечатныхФормах.ТолькоНабор)
| ТОГДА ЗНАЧЕНИЕ(Перечисление.ВариантыПредставленияНаборовВПечатныхФормах.НаборИКомплектующие)
| ИНАЧЕ ВременнаяТаблицаНаборыДополнительно.ВариантПредставленияНабораВПечатныхФормах
| КОНЕЦ = ЗНАЧЕНИЕ(Перечисление.ВариантыПредставленияНаборовВПечатныхФормах.НаборИКомплектующие)
| И ВременнаяТаблицаНаборыДополнительно.ВариантРасчетаЦеныНабора В(ЗНАЧЕНИЕ(Перечисление.ВариантыРасчетаЦенНаборов.ЦенаЗадаетсяЗаНаборРаспределяетсяПоЦенам),
| ЗНАЧЕНИЕ(Перечисление.ВариантыРасчетаЦенНаборов.ЦенаЗадаетсяЗаНаборРаспределяетсяПоДолям))
| ТОГДА ЗНАЧЕНИЕ(Перечисление.ВариантыРасчетаЦенНаборов.РассчитываетсяИзЦенКомплектующих)
| ИНАЧЕ ВременнаяТаблицаНаборыДополнительно.ВариантРасчетаЦеныНабора
| КОНЕЦ
| ИНАЧЕ ВременнаяТаблицаНаборыДополнительно.ВариантРасчетаЦеныНабора
| КОНЕЦ КАК ВариантРасчетаЦеныНабора,
| Таблица.НоменклатураНабора КАК НоменклатураНабора,
| Таблица.ХарактеристикаНабора КАК ХарактеристикаНабора,
| ЕСТЬNULL(ВременнаяТаблицаНаборыДополнительно.Количество, 1) КАК КоличествоУпаковок,
| ЕСТЬNULL(ВременнаяТаблицаНаборыДополнительно.Количество, 1) КАК Количество,
| ВЫБОР
| КОГДА ВременнаяТаблицаНаборыДополнительно.КоэффициентМинимум = ВременнаяТаблицаНаборыДополнительно.КоэффициентМаксимум
| ТОГДА ИСТИНА
| ИНАЧЕ ЛОЖЬ
| КОНЕЦ КАК ПолныйНабор,
| Таблица.Сумма КАК Сумма,
| Таблица.СуммаБезСкидки КАК СуммаБезСкидки,
| Таблица.СуммаСкидки КАК СуммаСкидки,
| Таблица.СуммаНДС КАК СуммаНДС,
| ВременнаяТаблицаНаборыДополнительно.СтавкаНДС КАК СтавкаНДС
|ПОМЕСТИТЬ ВременнаяТаблицаНаборы
|ИЗ
| ВременнаяТаблицаНаборыПодготовка КАК Таблица
| ЛЕВОЕ СОЕДИНЕНИЕ ВременнаяТаблицаНаборыДополнительно КАК ВременнаяТаблицаНаборыДополнительно
| ПО Таблица.НоменклатураНабора = ВременнаяТаблицаНаборыДополнительно.НоменклатураНабора
| И Таблица.ХарактеристикаНабора = ВременнаяТаблицаНаборыДополнительно.ХарактеристикаНабора
| И Таблица.Ссылка = ВременнаяТаблицаНаборыДополнительно.Ссылка
|;
|
|
|ВЫБРАТЬ
| ВложенныйЗапрос.Ссылка КАК Ссылка,
| ВложенныйЗапрос.НомерСтроки КАК НомерСтроки,
| ВложенныйЗапрос.ВариантПредставленияНабораВПечатныхФормах КАК ВариантПредставленияНабораВПечатныхФормах,
| ВложенныйЗапрос.ВариантРасчетаЦеныНабора КАК ВариантРасчетаЦеныНабора,
| ВложенныйЗапрос.НоменклатураНабора КАК НоменклатураНабора,
| ВложенныйЗапрос.ХарактеристикаНабора КАК ХарактеристикаНабора,
| ВложенныйЗапрос.ЭтоНабор КАК ЭтоНабор,
| ВложенныйЗапрос.ЭтоКомплектующие КАК ЭтоКомплектующие,
| ВложенныйЗапрос.ПолныйНабор КАК ПолныйНабор,
| ВложенныйЗапрос.Номенклатура КАК Номенклатура,
| ВложенныйЗапрос.Номенклатура.НаименованиеПолное КАК ТоварНаименованиеПолное,
| ВложенныйЗапрос.Номенклатура.Код КАК Код,
| ВложенныйЗапрос.Номенклатура.Артикул КАК Артикул,
| ВложенныйЗапрос.ЕдиницаИзмерения.Наименование КАК ЕдиницаЦены,
| ВложенныйЗапрос.ЕдиницаИзмерения КАК ЕдиницаИзмерения,
| ВложенныйЗапрос.Номенклатура.ЕдиницаИзмеренияТНВЭД.Представление КАК ЕдиницаИзмеренияТНВЭД,
| ВложенныйЗапрос.Характеристика.НаименованиеПолное КАК Характеристика,
| ВЫБОР
| КОГДА ЕСТЬNULL(&ТекстЗапросаКоэффициентУпаковки2, 1) = 1
| ТОГДА НЕОПРЕДЕЛЕНО
| ИНАЧЕ ВложенныйЗапрос.Упаковка.Наименование
| КОНЕЦ КАК Упаковка,
| ВложенныйЗапрос.КоличествоУпаковок КАК Количество,
| ВложенныйЗапрос.КоличествоПоРНПТ КАК КоличествоПоРНПТ,
| ВложенныйЗапрос.НомерГТД КАК НомерГТД,
| ВложенныйЗапрос.НомерГТД.ТипНомераГТД КАК ТипНомераГТД,
| ВЫБОР
| КОГДА ВложенныйЗапрос.НомерГТД.РегистрационныйНомер = """"
| ТОГДА ВложенныйЗапрос.НомерГТД.Представление
| ИНАЧЕ ВложенныйЗапрос.НомерГТД.РегистрационныйНомер
| КОНЕЦ КАК НомерРНПТ,
| ВложенныйЗапрос.Цена КАК Цена,
| ВложенныйЗапрос.Сумма КАК Сумма,
| ВложенныйЗапрос.СуммаСкидки КАК СуммаСкидки,
| ВложенныйЗапрос.СуммаБезСкидки КАК СуммаБезСкидки,
| ВложенныйЗапрос.СтавкаНДС КАК СтавкаНДС,
| ВложенныйЗапрос.СуммаНДС КАК СуммаНДС,
| ВЫБОР
| КОГДА ВложенныйЗапрос.Ссылка.ВернутьМногооборотнуюТару
| И ВложенныйЗапрос.Номенклатура.ТипНоменклатуры = ЗНАЧЕНИЕ(Перечисление.ТипыНоменклатуры.МногооборотнаяТара)
| ТОГДА ИСТИНА
| ИНАЧЕ ЛОЖЬ
| КОНЕЦ КАК ЭтоВозвратнаяТара
|ИЗ
| (ВЫБРАТЬ
| Таблица.Ссылка КАК Ссылка,
| ВЫБОР
| КОГДА ЕСТЬNULL(ВременнаяТаблицаНаборы.НомерСтроки, 0) <> 0
| ТОГДА ВременнаяТаблицаНаборы.НомерСтроки
| ИНАЧЕ Таблица.НомерСтроки
| КОНЕЦ КАК НомерСтроки,
| ВЫБОР
| КОГДА ЕСТЬNULL(ВременнаяТаблицаНаборы.НомерСтроки, 0) <> 0
| ТОГДА ВременнаяТаблицаНаборы.ВариантПредставленияНабораВПечатныхФормах
| ИНАЧЕ ЗНАЧЕНИЕ(Перечисление.ВариантыПредставленияНаборовВПечатныхФормах.ПустаяСсылка)
| КОНЕЦ КАК ВариантПредставленияНабораВПечатныхФормах,
| ВЫБОР
| КОГДА ЕСТЬNULL(ВременнаяТаблицаНаборы.НомерСтроки, 0) <> 0
| ТОГДА ВременнаяТаблицаНаборы.ВариантРасчетаЦеныНабора
| ИНАЧЕ ЗНАЧЕНИЕ(Перечисление.ВариантыРасчетаЦенНаборов.ПустаяСсылка)
| КОНЕЦ КАК ВариантРасчетаЦеныНабора,
| Таблица.НоменклатураНабора КАК НоменклатураНабора,
| Таблица.ХарактеристикаНабора КАК ХарактеристикаНабора,
| ВЫБОР
| КОГДА ЕСТЬNULL(ВременнаяТаблицаНаборы.НомерСтроки, 0) <> 0
| ТОГДА ИСТИНА
| ИНАЧЕ ЛОЖЬ
| КОНЕЦ КАК ЭтоКомплектующие,
| ЛОЖЬ КАК ЭтоНабор,
| ВЫБОР
| КОГДА ЕСТЬNULL(ВременнаяТаблицаНаборы.НомерСтроки, 0) <> 0
| ТОГДА ВременнаяТаблицаНаборы.ПолныйНабор
| ИНАЧЕ ЛОЖЬ
| КОНЕЦ КАК ПолныйНабор,
| Таблица.Номенклатура КАК Номенклатура,
| Таблица.Количество КАК Количество,
| Таблица.КоличествоУпаковок КАК КоличествоУпаковок,
| Таблица.КоличествоПоРНПТ КАК КоличествоПоРНПТ,
| Таблица.НомерГТД КАК НомерГТД,
| Таблица.Цена КАК Цена,
| Таблица.Сумма КАК Сумма,
| Таблица.СтавкаНДС КАК СтавкаНДС,
| Таблица.СуммаНДС КАК СуммаНДС,
| Таблица.Характеристика КАК Характеристика,
| Таблица.Упаковка КАК Упаковка,
| Таблица.ЕдиницаИзмерения КАК ЕдиницаИзмерения,
| Таблица.СуммаСкидки КАК СуммаСкидки,
| Таблица.СуммаБезСкидки КАК СуммаБезСкидки
| ИЗ
| Товары КАК Таблица
| ЛЕВОЕ СОЕДИНЕНИЕ ВременнаяТаблицаНаборы КАК ВременнаяТаблицаНаборы
| ПО ВременнаяТаблицаНаборы.НоменклатураНабора = Таблица.НоменклатураНабора
| И ВременнаяТаблицаНаборы.ХарактеристикаНабора = Таблица.ХарактеристикаНабора
| И ВременнаяТаблицаНаборы.Ссылка = Таблица.Ссылка
|
| ГДЕ
| Таблица.НоменклатураНабора = ЗНАЧЕНИЕ(Справочник.Номенклатура.ПустаяСсылка)
| ИЛИ (Таблица.НоменклатураНабора <> ЗНАЧЕНИЕ(Справочник.Номенклатура.ПустаяСсылка)
| И ВременнаяТаблицаНаборы.ВариантПредставленияНабораВПечатныхФормах В(ЗНАЧЕНИЕ(Перечисление.ВариантыПредставленияНаборовВПечатныхФормах.ТолькоКомплектующие),
| ЗНАЧЕНИЕ(Перечисление.ВариантыПредставленияНаборовВПечатныхФормах.НаборИКомплектующие)))
|
| ОБЪЕДИНИТЬ ВСЕ
|
| ВЫБРАТЬ
| ВременнаяТаблицаНаборы.Ссылка КАК Ссылка,
| ВременнаяТаблицаНаборы.НомерСтроки КАК НомерСтроки,
| ВременнаяТаблицаНаборы.ВариантПредставленияНабораВПечатныхФормах КАК ВариантПредставленияНабораВПечатныхФормах,
| ВременнаяТаблицаНаборы.ВариантРасчетаЦеныНабора КАК ВариантРасчетаЦеныНабора,
| ВременнаяТаблицаНаборы.НоменклатураНабора КАК НоменклатураНабора,
| ВременнаяТаблицаНаборы.ХарактеристикаНабора КАК ХарактеристикаНабора,
| ЛОЖЬ КАК ЭтоКомплектующие,
| ИСТИНА КАК ЭтоНабор,
| ВременнаяТаблицаНаборы.ПолныйНабор КАК ПолныйНабор,
| ВременнаяТаблицаНаборы.НоменклатураНабора КАК Номенклатура,
| ВременнаяТаблицаНаборы.Количество КАК Количество,
| ВременнаяТаблицаНаборы.КоличествоУпаковок КАК КоличествоУпаковок,
| 0 КАК КоличествоПоРНПТ,
| ЗНАЧЕНИЕ(Справочник.НомераГТД.ПустаяСсылка) КАК НомерГТД,
| ВЫБОР
| КОГДА &ОтображатьСкидки
| ТОГДА ВЫБОР
| КОГДА ЕСТЬNULL(ВременнаяТаблицаНаборы.КоличествоУпаковок, 1) <> 0
| ТОГДА (ВременнаяТаблицаНаборы.СуммаБезСкидки) / ЕСТЬNULL(ВременнаяТаблицаНаборы.КоличествоУпаковок, 1)
| ИНАЧЕ 0
| КОНЕЦ
| ИНАЧЕ ВЫБОР
| КОГДА ЕСТЬNULL(ВременнаяТаблицаНаборы.КоличествоУпаковок, 1) <> 0
| ТОГДА (ВременнаяТаблицаНаборы.Сумма) / ЕСТЬNULL(ВременнаяТаблицаНаборы.КоличествоУпаковок, 1)
| ИНАЧЕ 0
| КОНЕЦ
| КОНЕЦ КАК Цена,
| ВременнаяТаблицаНаборы.Сумма КАК Сумма,
| ВременнаяТаблицаНаборы.СтавкаНДС КАК СтавкаНДС,
| ВременнаяТаблицаНаборы.СуммаНДС КАК СуммаНДС,
| ВременнаяТаблицаНаборы.ХарактеристикаНабора КАК Характеристика,
| ЗНАЧЕНИЕ(Справочник.УпаковкиЕдиницыИзмерения.ПустаяСсылка) КАК Упаковка,
| ВременнаяТаблицаНаборы.НоменклатураНабора.ЕдиницаИзмерения КАК ЕдиницаИзмерения,
| ВременнаяТаблицаНаборы.СуммаСкидки КАК СуммаСкидки,
| ВременнаяТаблицаНаборы.СуммаБезСкидки КАК СуммаБезСкидки
| ИЗ
| ВременнаяТаблицаНаборы КАК ВременнаяТаблицаНаборы
|
| ГДЕ
| ВременнаяТаблицаНаборы.ВариантПредставленияНабораВПечатныхФормах В(ЗНАЧЕНИЕ(Перечисление.ВариантыПредставленияНаборовВПечатныхФормах.ТолькоНабор),
| ЗНАЧЕНИЕ(Перечисление.ВариантыПредставленияНаборовВПечатныхФормах.НаборИКомплектующие))
| ) КАК ВложенныйЗапрос
|
|УПОРЯДОЧИТЬ ПО
| ВложенныйЗапрос.Ссылка,
| НомерСтроки,
| ЭтоНабор УБЫВ
|
|ИТОГИ
| СУММА(СуммаСкидки)
|ПО
| Ссылка
|;
|
|
|ВЫБРАТЬ
| Товары.Ссылка КАК Ссылка,
| МАКСИМУМ(ВЫБОР
| КОГДА &ИспользоватьУчетПрослеживаемыхИмпортныхТоваров
| И НАЧАЛОПЕРИОДА(Товары.Ссылка.Дата, МЕСЯЦ) >= &ДатаНачалаУчетаПрослеживаемыхИмпортныхТоваров
| И ЕСТЬNULL(Товары.Ссылка.Соглашение.КомиссионерВедетУчетПоРНПТ, ЛОЖЬ)
| И Товары.Ссылка.ХозяйственнаяОперация В(ЗНАЧЕНИЕ(Перечисление.ХозяйственныеОперации.ПередачаНаКомиссию),
| ЗНАЧЕНИЕ(Перечисление.ХозяйственныеОперации.РеализацияЧерезКомиссионера))
| И ЕСТЬNULL(Товары.НомерГТД.ТипНомераГТД, НЕОПРЕДЕЛЕНО) В(ЗНАЧЕНИЕ(Перечисление.ТипыНомеровГТД.НомерРНПТ),
| ЗНАЧЕНИЕ(Перечисление.ТипыНомеровГТД.НомерРНПТКомплекта))
| ТОГДА ИСТИНА
| ИНАЧЕ ЛОЖЬ
| КОНЕЦ) КАК ЕстьРНПТ
|ИЗ
| Документ.РеализацияТоваровУслуг.ВидыЗапасов КАК Товары
|
|ГДЕ
| Товары.Ссылка В(&МассивДокументов)
| И Товары.АналитикаУчетаНоменклатуры.Номенклатура.ТипНоменклатуры
| В (ЗНАЧЕНИЕ(Перечисление.ТипыНоменклатуры.Товар),
| ЗНАЧЕНИЕ(Перечисление.ТипыНоменклатуры.МногооборотнаяТара))
|
|СГРУППИРОВАТЬ ПО
| Товары.Ссылка
|
|УПОРЯДОЧИТЬ ПО
| Товары.Ссылка
|;
|
|
|ВЫБРАТЬ РАЗЛИЧНЫЕ
| ТаблицаДокумента.НомерГТД КАК НомерГТД,
| ВЫБОР
| КОГДА Комплектующие.НомерРНПТ.РегистрационныйНомер = """"
| ТОГДА Комплектующие.НомерРНПТ
| ИНАЧЕ Комплектующие.НомерРНПТ.РегистрационныйНомер
| КОНЕЦ КАК НомерРНПТ,
| Комплектующие.КоличествоПоРНПТ КАК КоличествоПоРНПТ,
| Комплектующие.ЕдиницаИзмеренияТНВЭД.Представление КАК ЕдиницаИзмеренияТНВЭД
|ИЗ
| Товары КАК ТаблицаДокумента
| ВНУТРЕННЕЕ СОЕДИНЕНИЕ Справочник.НомераГТД.ПрослеживаемыеКомплектующие КАК Комплектующие
| ПО ТаблицаДокумента.НомерГТД = Комплектующие.Ссылка";
Запрос.Текст = СтрЗаменить(Запрос.Текст,
"&ТекстЗапросаКоэффициентУпаковки1",
Справочники.УпаковкиЕдиницыИзмерения.ТекстЗапросаКоэффициентаУпаковки(
"РеализацияТоваровУслуг.Упаковка",
"РеализацияТоваровУслуг.АналитикаУчетаНоменклатуры.Номенклатура"));
Запрос.Текст = СтрЗаменить(Запрос.Текст,
"&ТекстЗапросаКоэффициентУпаковки2",
Справочники.УпаковкиЕдиницыИзмерения.ТекстЗапросаКоэффициентаУпаковки(
"ВложенныйЗапрос.Упаковка",
"ВложенныйЗапрос.Номенклатура"));
Если ОбщегоНазначенияУТКлиентСервер.АвторизованВнешнийПользователь() Тогда
УсловиеПоТипуНоменклатуры = "ИСТИНА";
Иначе
УсловиеПоТипуНоменклатуры =
"РеализацияТоваровУслуг.АналитикаУчетаНоменклатуры.Номенклатура.ТипНоменклатуры В(ЗНАЧЕНИЕ(Перечисление.ТипыНоменклатуры.Товар),
| ЗНАЧЕНИЕ(Перечисление.ТипыНоменклатуры.МногооборотнаяТара))";
КонецЕсли;
Запрос.Текст = СтрЗаменить(Запрос.Текст, "&УсловиеПоТипуНоменклатуры", УсловиеПоТипуНоменклатуры);
Запрос.УстановитьПараметр("МассивДокументов", МассивОбъектов);
Запрос.УстановитьПараметр("ОтображатьСкидки", ОтображатьСкидки);
УчетПрослеживаемыхТоваровЛокализация.УстановитьПараметрыИспользованияУчетаПрослеживаемыхТоваров(Запрос);
ТабличныйДокумент = Новый ТабличныйДокумент;
ТабличныйДокумент.ИмяПараметровПечати = "ПАРАМЕТРЫ_ПЕЧАТИ_РеализацияТоваровУслуг_Накладная";
МассивРезультатов = Запрос.ВыполнитьПакет();
РезультатДанныеПечати = МассивРезультатов[0];
РезультатВыборкаПоДокументам = МассивРезультатов[8];
ДанныеПрослеживаемостиДокументов = МассивРезультатов[9].Выгрузить();
ПрослеживаемыеКомплектующие = МассивРезультатов[10].Выгрузить();
ДанныеПечати = РезультатДанныеПечати.Выбрать();
ВыборкаПоДокументам = РезультатВыборкаПоДокументам.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам);
ПоказыватьНДС = Константы.ВыводитьДопКолонкиНДС.Получить();
ПервыйДокумент = Истина;
ЕстьРНПТ = Ложь;
ДанныеПрослеживаемостиДокументов.Индексы.Добавить("Ссылка");
Пока ДанныеПечати.Следующий() Цикл
СтруктураПоиска = Новый Структура("Ссылка", ДанныеПечати.Ссылка);
НайденСледующий = ВыборкаПоДокументам.НайтиСледующий(СтруктураПоиска);
Если НайденСледующий Тогда
ВыборкаПоТоварам = ВыборкаПоДокументам.Выбрать();
ЗаголовокСкидки = ФормированиеПечатныхФорм.НужноВыводитьСкидки(ВыборкаПоТоварам,
ИспользоватьРучныеСкидки
Или ИспользоватьАвтоматическиеСкидки);
ЕстьСкидки = ЗаголовокСкидки.ЕстьСкидки;
ЕстьНДС = ДанныеПечати.УчитыватьНДС;
ЕстьРНПТ = Ложь;
ОтборСтрокДокументов = Новый Структура("Ссылка", ДанныеПечати.Ссылка);
СтрокиДокументов = ДанныеПрослеживаемостиДокументов.НайтиСтроки(ОтборСтрокДокументов);
Если СтрокиДокументов.Количество() > 0 Тогда
ЕстьРНПТ = СтрокиДокументов[0].ЕстьРНПТ;
КонецЕсли;
ВыборкаПоТоварам.Сбросить();
Иначе
Текст = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
НСтр("ru = 'В документе %1 отсутствуют товары. Печать накладной не требуется'"),
ДанныеПечати.Ссылка);
ОбщегоНазначения.СообщитьПользователю(Текст, ДанныеПечати.Ссылка);
Продолжить;
КонецЕсли;
Макет = УправлениеПечатью.МакетПечатнойФормы("Документ.РеализацияТоваровУслуг.ПФ_MXL_РеализацияТоваров");
Если Не ПервыйДокумент Тогда
ТабличныйДокумент.ВывестиГоризонтальныйРазделительСтраниц();
КонецЕсли;
ПервыйДокумент = Ложь;
НомерСтрокиНачало = ТабличныйДокумент.ВысотаТаблицы + 1;
ОбластьМакета = Макет.ПолучитьОбласть("Заголовок");
ШтрихкодированиеПечатныхФорм.ВывестиШтрихкодВТабличныйДокумент(ТабличныйДокумент,
Макет,
ОбластьМакета,
ДанныеПечати.Ссылка);
ТекстЗаголовка = ОбщегоНазначенияУТКлиентСервер.СформироватьЗаголовокДокумента(
ДанныеПечати,
НСтр("ru='Реализация товаров'", ОбщегоНазначения.КодОсновногоЯзыка()));
СтруктураДанныхШапки = Новый Структура;
СтруктураДанныхШапки.Вставить("ТекстЗаголовка", ТекстЗаголовка);
ОбластьМакета.Параметры.Заполнить(СтруктураДанныхШапки);
ТабличныйДокумент.Вывести(ОбластьМакета);
ОбластьМакета = Макет.ПолучитьОбласть("ЗаголовокПодчеркивание");
Если ЕстьРНПТ Тогда
ОбластьМакета = Макет.ПолучитьОбласть("ЗаголовокПодчеркиваниеРНПТ");
КонецЕсли;
ТабличныйДокумент.Вывести(ОбластьМакета);
ОбластьМакета = Макет.ПолучитьОбласть("Поставщик");
ПредставлениеПоставщика = ФормированиеПечатныхФорм.ОписаниеОрганизации(
ФормированиеПечатныхФорм.СведенияОЮрФизЛице(ДанныеПечати.Организация, ДанныеПечати.Дата),
"ПолноеНаименование");
СтруктураДанныхПоставщик = Новый Структура;
СтруктураДанныхПоставщик.Вставить("ПредставлениеПоставщика", ПредставлениеПоставщика);
СтруктураДанныхПоставщик.Вставить("Поставщик", ДанныеПечати.Организация);
ОбластьМакета.Параметры.Заполнить(СтруктураДанныхПоставщик);
ТабличныйДокумент.Вывести(ОбластьМакета);
ОбластьМакета = Макет.ПолучитьОбласть("Покупатель");
ПредставлениеПолучателя = ФормированиеПечатныхФорм.ОписаниеОрганизации(
ФормированиеПечатныхФорм.СведенияОЮрФизЛице(ДанныеПечати.Получатель, ДанныеПечати.Дата),
"ПолноеНаименование");
СтруктураДанныхПокупатель = Новый Структура;
СтруктураДанныхПокупатель.Вставить("ПредставлениеПолучателя", ПредставлениеПолучателя);
СтруктураДанныхПокупатель.Вставить("Получатель", ДанныеПечати.Получатель);
ОбластьМакета.Параметры.Заполнить(СтруктураДанныхПокупатель);
ТабличныйДокумент.Вывести(ОбластьМакета);
НазванияОбластейСтрок = НазванияОбластейСтрок(ЕстьСкидки, ЕстьНДС И ПоказыватьНДС, ЕстьРНПТ);
НазванияОбластейКолонок = НазванияОбластейКолонок(ЕстьСкидки, ЕстьНДС И ПоказыватьНДС, ЕстьРНПТ);
ОбластьКолонкаТовар = Макет.Область(НазванияОбластейКолонок.ПерваяКолонкаТовара);
ОбластьКолонкаТовар.ШиринаКолонки = ОбластьКолонкаТовар.ШиринаКолонки
+ ?(ВыводитьКоды,
0,
Макет.Область(НазванияОбластейКолонок.КолонкаКодов).ШиринаКолонки);
ОбластьНомера = Макет.ПолучитьОбласть(НазванияОбластейСтрок.ШапкаТаблицы
+ "|" + НазванияОбластейКолонок.НомерСтроки);
ОбластьКодов = Макет.ПолучитьОбласть(НазванияОбластейСтрок.ШапкаТаблицы
+ "|" + НазванияОбластейКолонок.КолонкаКодов);
ОбластьТовар = Макет.ПолучитьОбласть(НазванияОбластейСтрок.ШапкаТаблицы
+ "|" + НазванияОбластейКолонок.Товар);
ОбластьДанныеКоличество = Макет.ПолучитьОбласть(НазванияОбластейСтрок.ШапкаТаблицы
+ "|" + НазванияОбластейКолонок.ДанныеКоличество);
ОбластьДанныеНомерРНПТ = Макет.ПолучитьОбласть(НазванияОбластейСтрок.ШапкаТаблицы
+ "|" + НазванияОбластейКолонок.ДанныеНомерРНПТ);
ОбластьДанныеСуммовые = Макет.ПолучитьОбласть(НазванияОбластейСтрок.ШапкаТаблицы
+ "|" + НазванияОбластейКолонок.ДанныеСуммовые);
ТабличныйДокумент.Вывести(ОбластьНомера);
Если ВыводитьКоды Тогда
СтруктураДанныхКоды = Новый Структура("ИмяКолонкиКодов", ПредставлениеКолонкиКодов);
ОбластьКодов.Параметры.Заполнить(СтруктураДанныхКоды);
ТабличныйДокумент.Присоединить(ОбластьКодов);
КонецЕсли;
ТабличныйДокумент.Присоединить(ОбластьТовар);
ТабличныйДокумент.Присоединить(ОбластьДанныеКоличество);
Если ЕстьРНПТ Тогда
ТабличныйДокумент.Присоединить(ОбластьДанныеНомерРНПТ);
КонецЕсли;
Если ЕстьСкидки Тогда
СтруктураЗаголовокСкидки = Новый Структура("Скидка, СуммаБезСкидки",
ЗаголовокСкидки.Скидка, ЗаголовокСкидки.СуммаСкидки);
ОбластьДанныеСуммовые.Параметры.Заполнить(СтруктураЗаголовокСкидки);
КонецЕсли;
ТабличныйДокумент.Присоединить(ОбластьДанныеСуммовые);
ОбластьНомераСтрокиСтандарт = Макет.ПолучитьОбласть(НазванияОбластейСтрок.СтрокаТаблицы
+ "|" + НазванияОбластейКолонок.НомерСтроки);
ОбластьКодовСтрокиСтандарт = Макет.ПолучитьОбласть(НазванияОбластейСтрок.СтрокаТаблицы
+ "|" + НазванияОбластейКолонок.КолонкаКодов);
ОбластьТоварСтрокиСтандарт = Макет.ПолучитьОбласть(НазванияОбластейСтрок.СтрокаТаблицы
+ "|" + НазванияОбластейКолонок.Товар);
ОбластьДанныеКоличествоСтрокиСтандарт = Макет.ПолучитьОбласть(НазванияОбластейСтрок.СтрокаТаблицы
+ "|" + НазванияОбластейКолонок.ДанныеКоличество);
ОбластьДанныеНомерРНПТСтрокиСтандарт = Макет.ПолучитьОбласть(НазванияОбластейСтрок.СтрокаТаблицы
+ "|" + НазванияОбластейКолонок.ДанныеНомерРНПТ);
ОбластьДанныеСуммовыеСтрокиСтандарт = Макет.ПолучитьОбласть(НазванияОбластейСтрок.СтрокаТаблицы
+ "|" + НазванияОбластейКолонок.ДанныеСуммовые);
ИспользоватьНаборы = Ложь;
Если ОбщегоНазначенияУТКлиентСервер.ЕстьРеквизитОбъекта(ВыборкаПоДокументам, "ЭтоНабор") Тогда
ИспользоватьНаборы = Истина;
ОбластьНомераСтрокиНабор = Макет.ПолучитьОбласть(НазванияОбластейСтрок.СтрокаТаблицыНабор
+ "|" + НазванияОбластейКолонок.НомерСтроки);
ОбластьКодовСтрокиНабор = Макет.ПолучитьОбласть(НазванияОбластейСтрок.СтрокаТаблицыНабор
+ "|" + НазванияОбластейКолонок.КолонкаКодов);
ОбластьТоварСтрокиНабор = Макет.ПолучитьОбласть(НазванияОбластейСтрок.СтрокаТаблицыНабор
+ "|" + НазванияОбластейКолонок.Товар);
ОбластьДанныеКоличествоСтрокиНабор = Макет.ПолучитьОбласть(НазванияОбластейСтрок.СтрокаТаблицыНабор
+ "|" + НазванияОбластейКолонок.ДанныеКоличество);
ОбластьДанныеНомерРНПТСтрокиНабор = Макет.ПолучитьОбласть(НазванияОбластейСтрок.СтрокаТаблицыНабор
+ "|" + НазванияОбластейКолонок.ДанныеНомерРНПТ);
ОбластьДанныеСуммовыеНабор = Макет.ПолучитьОбласть(НазванияОбластейСтрок.СтрокаТаблицыНабор
+ "|" + НазванияОбластейКолонок.ДанныеСуммовые);
ОбластьНомераСтрокиКомплектующие = Макет.ПолучитьОбласть(НазванияОбластейСтрок.СтрокаТаблицыКомплектующие
+ "|" + НазванияОбластейКолонок.НомерСтроки);
ОбластьКодовСтрокиКомплектующие = Макет.ПолучитьОбласть(НазванияОбластейСтрок.СтрокаТаблицыКомплектующие
+ "|" + НазванияОбластейКолонок.КолонкаКодов);
ОбластьТоварСтрокиКомплектующие = Макет.ПолучитьОбласть(НазванияОбластейСтрок.СтрокаТаблицыКомплектующие
+ "|" + НазванияОбластейКолонок.Товар);
ОбластьДанныеКоличествоКомплектующие = Макет.ПолучитьОбласть(НазванияОбластейСтрок.СтрокаТаблицыКомплектующие
+ "|" + НазванияОбластейКолонок.ДанныеКоличество);
ОбластьДанныеНомерРНПТСтрокиКомплектующие = Макет.ПолучитьОбласть(НазванияОбластейСтрок.СтрокаТаблицыКомплектующие
+ "|" + НазванияОбластейКолонок.ДанныеНомерРНПТ);
ОбластьДанныеСуммовыеКомплектующие = Макет.ПолучитьОбласть(НазванияОбластейСтрок.СтрокаТаблицыКомплектующие
+ "|" + НазванияОбластейКолонок.ДанныеСуммовые);
КонецЕсли;
Сумма = 0;
СуммаНДС = 0;
ВсегоСкидок = 0;
НомерСтроки = 0;
ВсегоБезСкидок = 0;
ПустыеДанные = НаборыСервер.ПустыеДанные();
Пока ВыборкаПоТоварам.Следующий() Цикл
Если НаборыСервер.ИспользоватьОбластьНабор(ВыборкаПоТоварам, ИспользоватьНаборы) Тогда
ОбластьКодовСтроки = ОбластьКодовСтрокиНабор;
ОбластьНомераСтроки = ОбластьНомераСтрокиНабор;
ОбластьТоварСтроки = ОбластьТоварСтрокиНабор;
ОбластьДанныеКоличествоСтроки = ОбластьДанныеКоличествоСтрокиНабор;
ОбластьДанныеНомерРНПСтроки = ОбластьДанныеНомерРНПТСтрокиНабор;
ОбластьДанныеСуммовыеСтроки = ОбластьДанныеСуммовыеНабор;
ИначеЕсли НаборыСервер.ИспользоватьОбластьКомплектующие(ВыборкаПоТоварам, ИспользоватьНаборы) Тогда
ОбластьКодовСтроки = ОбластьКодовСтрокиКомплектующие;
ОбластьНомераСтроки = ОбластьНомераСтрокиКомплектующие;
ОбластьТоварСтроки = ОбластьТоварСтрокиКомплектующие;
ОбластьДанныеКоличествоСтроки = ОбластьДанныеКоличествоКомплектующие;
ОбластьДанныеНомерРНПСтроки = ОбластьДанныеНомерРНПТСтрокиКомплектующие;
ОбластьДанныеСуммовыеСтроки = ОбластьДанныеСуммовыеКомплектующие;
Иначе
ОбластьКодовСтроки = ОбластьКодовСтрокиСтандарт;
ОбластьНомераСтроки = ОбластьНомераСтрокиСтандарт;
ОбластьТоварСтроки = ОбластьТоварСтрокиСтандарт;
ОбластьДанныеКоличествоСтроки = ОбластьДанныеКоличествоСтрокиСтандарт;
ОбластьДанныеНомерРНПСтроки = ОбластьДанныеНомерРНПТСтрокиСтандарт;
ОбластьДанныеСуммовыеСтроки = ОбластьДанныеСуммовыеСтрокиСтандарт;
КонецЕсли;
Если НаборыСервер.ВыводитьТолькоЗаголовок(ВыборкаПоТоварам, ИспользоватьНаборы) Тогда
УстановитьПараметр(ОбластьНомераСтроки, "НомерСтроки", Неопределено);
Иначе
НомерСтроки = НомерСтроки + 1;
УстановитьПараметр(ОбластьНомераСтроки, "НомерСтроки", НомерСтроки);
КонецЕсли;
Если ВыводитьКоды Тогда
СтруктураДанныхКоды = Новый Структура("Артикул", ВыборкаПоТоварам[ИмяКолонкиКодов]);
ОбластьКодовСтроки.Параметры.Заполнить(СтруктураДанныхКоды);
КонецЕсли;
ПрефиксИПостфикс = НаборыСервер.ПолучитьПрефиксИПостфикс(ВыборкаПоТоварам, ИспользоватьНаборы);
ОбластьТоварСтроки.Параметры.Заполнить(ВыборкаПоТоварам);
ДополнительныеПараметрыПолученияНаименованияДляПечати = НоменклатураКлиентСервер.ДополнительныеПараметрыПредставлениеНоменклатурыДляПечати();
ДополнительныеПараметрыПолученияНаименованияДляПечати.ВозвратнаяТара = ВыборкаПоТоварам.ЭтоВозвратнаяТара;
ДополнительныеПараметрыПолученияНаименованияДляПечати.КодОсновногоЯзыка = ОбщегоНазначения.КодОсновногоЯзыка();
ПредставлениеНоменклатуры = НоменклатураКлиентСервер.ПредставлениеНоменклатурыДляПечати(
ВыборкаПоТоварам.ТоварНаименованиеПолное,
ВыборкаПоТоварам.Характеристика,
,
,
ДополнительныеПараметрыПолученияНаименованияДляПечати);
Товар = ПрефиксИПостфикс.Префикс + ПредставлениеНоменклатуры + ПрефиксИПостфикс.Постфикс;
СтруктураДанныхТовар = Новый Структура("Товар", Товар);
ОбластьТоварСтроки.Параметры.Заполнить(СтруктураДанныхТовар);
Если ЗаголовокСкидки.ЕстьСкидки Тогда
СуммаСкидки = ?(ЗаголовокСкидки.ТолькоНаценка, - ВыборкаПоТоварам.СуммаСкидки, ВыборкаПоТоварам.СуммаСкидки);
СтруктураДанныхСуммаСкидки = Новый Структура("СуммаСкидки", СуммаСкидки);
ОбластьДанныеСуммовыеСтроки.Параметры.Заполнить(СтруктураДанныхСуммаСкидки);
КонецЕсли;
Если НаборыСервер.ВыводитьТолькоЗаголовок(ВыборкаПоТоварам, ИспользоватьНаборы) Тогда
ОбластьДанныеКоличествоСтроки.Параметры.Заполнить(ПустыеДанные);
ОбластьДанныеСуммовыеСтроки.Параметры.Заполнить(ПустыеДанные);
Иначе
ОбластьДанныеКоличествоСтроки.Параметры.Заполнить(ВыборкаПоТоварам);
ОбластьДанныеСуммовыеСтроки.Параметры.Заполнить(ВыборкаПоТоварам);
КонецЕсли;
Если ЕстьРНПТ
И ЗначениеЗаполнено(ВыборкаПоТоварам.НомерГТД)
И ВыборкаПоТоварам.НомерГТД <> Перечисления.ТипыНомеровГТД.НомерГТД Тогда
Если ВыборкаПоТоварам.ТипНомераГТД = Перечисления.ТипыНомеровГТД.НомерРНПТ Тогда
ДанныеНомераРНПТ = Новый Структура("НомерРНПТ, КоличествоПоРНПТ, ЕдиницаИзмеренияТНВЭД");
ДанныеНомераРНПТ.НомерРНПТ = СокрЛП(ВыборкаПоТоварам.НомерРНПТ);
ДанныеНомераРНПТ.КоличествоПоРНПТ = ВыборкаПоТоварам.КоличествоПоРНПТ;
ДанныеНомераРНПТ.ЕдиницаИзмеренияТНВЭД = СокрЛП(ВыборкаПоТоварам.ЕдиницаИзмеренияТНВЭД);
ОбластьДанныеНомерРНПСтроки.Параметры.Заполнить(ДанныеНомераРНПТ);
ТабличныйДокумент.Вывести(ОбластьНомераСтроки);
Если ВыводитьКоды Тогда
ТабличныйДокумент.Присоединить(ОбластьКодовСтроки);
КонецЕсли;
ТабличныйДокумент.Присоединить(ОбластьТоварСтроки);
ТабличныйДокумент.Присоединить(ОбластьДанныеКоличествоСтроки);
ТабличныйДокумент.Присоединить(ОбластьДанныеНомерРНПСтроки);
ТабличныйДокумент.Присоединить(ОбластьДанныеСуммовыеСтроки);
Иначе
ОбластьНомераСтрокиРНПТНабор = Макет.ПолучитьОбласть(НазванияОбластейСтрок.СтрокаТаблицыНаборРНПТ
+ "|" + НазванияОбластейКолонок.НомерСтроки);
ОбластьКодовСтрокиРНПТНабор = Макет.ПолучитьОбласть(НазванияОбластейСтрок.СтрокаТаблицыНаборРНПТ
+ "|" + НазванияОбластейКолонок.КолонкаКодов);
ОбластьТоварСтрокиРНПТНабор = Макет.ПолучитьОбласть(НазванияОбластейСтрок.СтрокаТаблицыНаборРНПТ
+ "|" + НазванияОбластейКолонок.Товар);
ОбластьДанныеКоличествоСтрокиРНПТНабор = Макет.ПолучитьОбласть(НазванияОбластейСтрок.СтрокаТаблицыНаборРНПТ
+ "|" + НазванияОбластейКолонок.ДанныеКоличество);
ОбластьДанныеСуммовыеСтрокиРНПТНабор = Макет.ПолучитьОбласть(НазванияОбластейСтрок.СтрокаТаблицыНаборРНПТ
+ "|" + НазванияОбластейКолонок.ДанныеСуммовые);
ОбластьНомераСтрокиРНПТКомплектующие = Макет.ПолучитьОбласть(НазванияОбластейСтрок.СтрокаТаблицыКомплектующиеРНПТ
+ "|" + НазванияОбластейКолонок.НомерСтроки);
ОбластьКодовСтрокиРНПТКомплектующие = Макет.ПолучитьОбласть(НазванияОбластейСтрок.СтрокаТаблицыКомплектующиеРНПТ
+ "|" + НазванияОбластейКолонок.КолонкаКодов);
ОбластьТоварСтрокиРНПТКомплектующие = Макет.ПолучитьОбласть(НазванияОбластейСтрок.СтрокаТаблицыКомплектующиеРНПТ
+ "|" + НазванияОбластейКолонок.Товар);
ОбластьДанныеКоличествоСтрокиРНПТКомплектующие = Макет.ПолучитьОбласть(НазванияОбластейСтрок.СтрокаТаблицыКомплектующиеРНПТ
+ "|" + НазванияОбластейКолонок.ДанныеКоличество);
ОбластьДанныеСуммовыеСтрокиРНПТКомплектующие = Макет.ПолучитьОбласть(НазванияОбластейСтрок.СтрокаТаблицыКомплектующиеРНПТ
+ "|" + НазванияОбластейКолонок.ДанныеСуммовые);
ОбластьНомераСтрокиРНПТНабор.Параметры.Заполнить(ОбластьНомераСтроки.Параметры);
ОбластьКодовСтрокиРНПТНабор.Параметры.Заполнить(ОбластьКодовСтроки.Параметры);
ОбластьТоварСтрокиРНПТНабор.Параметры.Заполнить(ОбластьТоварСтроки.Параметры);
ОбластьДанныеКоличествоСтрокиРНПТНабор.Параметры.Заполнить(ОбластьДанныеКоличествоСтроки.Параметры);
ОбластьДанныеСуммовыеСтрокиРНПТНабор.Параметры.Заполнить(ОбластьДанныеСуммовыеСтроки.Параметры);
ОтборСтрок = Новый Структура("НомерГТД", ВыборкаПоТоварам.НомерГТД);
СтрокиКомплекта = ПрослеживаемыеКомплектующие.НайтиСтроки(ОтборСтрок);
НомерСтрокиКомплекта = 1;
Для Каждого СтрокаКомплекта Из СтрокиКомплекта Цикл
ДанныеНомераРНПТ = Новый Структура("НомерРНПТ, КоличествоПоРНПТ, ЕдиницаИзмеренияТНВЭД");
ДанныеНомераРНПТ.НомерРНПТ = СокрЛП(СтрокаКомплекта.НомерРНПТ);
ДанныеНомераРНПТ.КоличествоПоРНПТ = ВыборкаПоТоварам.Количество * СтрокаКомплекта.КоличествоПоРНПТ;
ДанныеНомераРНПТ.ЕдиницаИзмеренияТНВЭД = СокрЛП(СтрокаКомплекта.ЕдиницаИзмеренияТНВЭД);
ОбластьДанныеНомерРНПСтроки.Параметры.Заполнить(ДанныеНомераРНПТ);
Если НомерСтрокиКомплекта = 1 Тогда
ТабличныйДокумент.Вывести(ОбластьНомераСтрокиРНПТНабор);
Если ВыводитьКоды Тогда
ТабличныйДокумент.Присоединить(ОбластьКодовСтрокиРНПТНабор);
КонецЕсли;
ТабличныйДокумент.Присоединить(ОбластьТоварСтрокиРНПТНабор);
ТабличныйДокумент.Присоединить(ОбластьДанныеКоличествоСтрокиРНПТНабор);
ТабличныйДокумент.Присоединить(ОбластьДанныеНомерРНПСтроки);
ТабличныйДокумент.Присоединить(ОбластьДанныеСуммовыеСтрокиРНПТНабор);
Иначе
ТабличныйДокумент.Вывести(ОбластьНомераСтрокиРНПТКомплектующие);
Если ВыводитьКоды Тогда
ТабличныйДокумент.Присоединить(ОбластьКодовСтрокиРНПТКомплектующие);
КонецЕсли;
ТабличныйДокумент.Присоединить(ОбластьТоварСтрокиРНПТКомплектующие);
ТабличныйДокумент.Присоединить(ОбластьДанныеКоличествоСтрокиРНПТКомплектующие);
ТабличныйДокумент.Присоединить(ОбластьДанныеНомерРНПСтроки);
ТабличныйДокумент.Присоединить(ОбластьДанныеСуммовыеСтрокиРНПТКомплектующие);
КонецЕсли;
НомерСтрокиКомплекта = НомерСтрокиКомплекта + 1;
КонецЦикла;
КонецЕсли;
Иначе
ТабличныйДокумент.Вывести(ОбластьНомераСтроки);
Если ВыводитьКоды Тогда
ТабличныйДокумент.Присоединить(ОбластьКодовСтроки);
КонецЕсли;
ТабличныйДокумент.Присоединить(ОбластьТоварСтроки);
ТабличныйДокумент.Присоединить(ОбластьДанныеКоличествоСтроки);
Если ЕстьРНПТ Тогда
ДанныеНомераРНПТ = Новый Структура("НомерРНПТ, КоличествоПоРНПТ, ЕдиницаИзмеренияТНВЭД",
"-", 0, "-");
ОбластьДанныеНомерРНПСтроки.Параметры.Заполнить(ДанныеНомераРНПТ);
ТабличныйДокумент.Присоединить(ОбластьДанныеНомерРНПСтроки);
КонецЕсли;
ТабличныйДокумент.Присоединить(ОбластьДанныеСуммовыеСтроки);
КонецЕсли;
Если Не НаборыСервер.ИспользоватьОбластьКомплектующие(ВыборкаПоТоварам, ИспользоватьНаборы) Тогда
Сумма = Сумма + ВыборкаПоТоварам.Сумма;
СуммаНДС = СуммаНДС + ВыборкаПоТоварам.СуммаНДС;
Если ЕстьСкидки Тогда
ВсегоСкидок = ВсегоСкидок + ВыборкаПоТоварам.СуммаСкидки;
ВсегоБезСкидок = ВсегоБезСкидок + ВыборкаПоТоварам.СуммаБезСкидки;
КонецЕсли;
КонецЕсли;
КонецЦикла;
ОбластьНомера = Макет.ПолучитьОбласть(НазванияОбластейСтрок.ПодвалТаблицы
+ "|" + НазванияОбластейКолонок.НомерСтроки);
ОбластьКодов = Макет.ПолучитьОбласть(НазванияОбластейСтрок.ПодвалТаблицы
+ "|" + НазванияОбластейКолонок.КолонкаКодов);
ОбластьТовар = Макет.ПолучитьОбласть(НазванияОбластейСтрок.ПодвалТаблицы
+ "|" + НазванияОбластейКолонок.Товар);
ОбластьДанныеКоличество = Макет.ПолучитьОбласть(НазванияОбластейСтрок.ПодвалТаблицы
+ "|" + НазванияОбластейКолонок.ДанныеКоличество);
ОбластьДанныеНомерРНПТ = Макет.ПолучитьОбласть(НазванияОбластейСтрок.ПодвалТаблицы
+ "|" + НазванияОбластейКолонок.ДанныеНомерРНПТ);
ОбластьДанныеСуммовые = Макет.ПолучитьОбласть(НазванияОбластейСтрок.ПодвалТаблицы
+ "|" + НазванияОбластейКолонок.ДанныеСуммовые);
ТабличныйДокумент.Вывести(ОбластьНомера);
Если ВыводитьКоды Тогда
ТабличныйДокумент.Присоединить(ОбластьКодов);
КонецЕсли;
ТабличныйДокумент.Присоединить(ОбластьТовар);
ТабличныйДокумент.Присоединить(ОбластьДанныеКоличество);
Если ЕстьРНПТ Тогда
ТабличныйДокумент.Присоединить(ОбластьДанныеНомерРНПТ);
КонецЕсли;
СтруктураДанныхВсегоСкидки = Новый Структура;
Если ЕстьСкидки Тогда
СтруктураДанныхВсегоСкидки.Вставить("ВсегоСкидок", ?(ЗаголовокСкидки.ТолькоНаценка,-ВсегоСкидок, ВсегоСкидок));
СтруктураДанныхВсегоСкидки.Вставить("ВсегоБезСкидок", ВсегоБезСкидок);
КонецЕсли;
СтруктураДанныхВсегоСкидки.Вставить("Всего", ФормированиеПечатныхФорм.ФорматСумм(Сумма));
ОбластьДанныеСуммовые.Параметры.Заполнить(СтруктураДанныхВсегоСкидки);
ТабличныйДокумент.Присоединить(ОбластьДанныеСуммовые);
Если ПолучитьФункциональнуюОпцию("ИспользоватьУчетНДС") Тогда
Область = Макет.ПолучитьОбласть("ПодвалНДС");
Если ЕстьРНПТ Тогда
Область = Макет.ПолучитьОбласть("ПодвалНДСРНПТ");
КонецЕсли;
Если ЕстьНДС Тогда
НадписьНДС = ?(ДанныеПечати.ЦенаВключаетНДС,
НСтр("ru='В том числе НДС:'", ОбщегоНазначения.КодОсновногоЯзыка()),
НСтр("ru='Сумма НДС:'", ОбщегоНазначения.КодОсновногоЯзыка()));
Иначе
НадписьНДС = НСтр("ru='Без налога (НДС)'", ОбщегоНазначения.КодОсновногоЯзыка());
КонецЕсли;
СтруктураДанныхПодвалНДС = Новый Структура;
СтруктураДанныхПодвалНДС.Вставить("ВсегоНДС", СуммаНДС);
СтруктураДанныхПодвалНДС.Вставить("НДС", НадписьНДС);
Область.Параметры.Заполнить(СтруктураДанныхПодвалНДС);
ТабличныйДокумент.Присоединить(Область);
КонецЕсли;
ОбластьМакета = Макет.ПолучитьОбласть("СуммаПрописью");
СуммаКПрописи = Сумма + ?(ДанныеПечати.ЦенаВключаетНДС, 0, СуммаНДС);
ИтоговаяСтрока = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
НСтр("ru='Всего наименований %1, на сумму %2'", ОбщегоНазначения.КодОсновногоЯзыка()),
ВыборкаПоТоварам.Количество(),
ФормированиеПечатныхФорм.ФорматСумм(СуммаКПрописи, ДанныеПечати.Валюта));
СуммаПрописью = РаботаСКурсамиВалютУТ.СформироватьСуммуПрописью(СуммаКПрописи, ДанныеПечати.Валюта);
СтруктураДанныхСуммаПрописью = Новый Структура;
СтруктураДанныхСуммаПрописью.Вставить("ИтоговаяСтрока", ИтоговаяСтрока);
СтруктураДанныхСуммаПрописью.Вставить("СуммаПрописью", СуммаПрописью);
ОбластьМакета.Параметры.Заполнить(СтруктураДанныхСуммаПрописью);
ТабличныйДокумент.Вывести(ОбластьМакета);
ОбластьМакета = Макет.ПолучитьОбласть("Подписи");
Если ЕстьРНПТ Тогда
ОбластьМакета = Макет.ПолучитьОбласть("ПодписиРНПТ");
КонецЕсли;
Если ЗначениеЗаполнено(ДанныеПечати.ОтпускПроизвел) Тогда
СтруктураДанныхОтпускПроизвел = Новый Структура;
СтруктураДанныхОтпускПроизвел.Вставить("ОтпускПроизвел",
ФизическиеЛицаУТ.ФамилияИнициалыФизЛица(ДанныеПечати.ОтпускПроизвел, ДанныеПечати.Дата));
ОбластьМакета.Параметры.Заполнить(СтруктураДанныхОтпускПроизвел);
КонецЕсли;
ТабличныйДокумент.Вывести(ОбластьМакета);
УправлениеПечатью.ЗадатьОбластьПечатиДокумента(ТабличныйДокумент,
НомерСтрокиНачало,
ОбъектыПечати,
ДанныеПечати.Ссылка);
КонецЦикла;
ТабличныйДокумент.АвтоМасштаб = Истина;
Возврат ТабличныйДокумент;
КонецФункции
Функция НазванияОбластейСтрок(СоСкидкой, СНДС, РНПТ)
ИменаСвойств = "ШапкаТаблицы, СтрокаТаблицы, СтрокаТаблицыНабор, СтрокаТаблицыКомплектующие,
|СтрокаТаблицыНаборРНПТ, СтрокаТаблицыКомплектующиеРНПТ, ПодвалТаблицы";
НазванияОбластей = Новый Структура(ИменаСвойств);
Если СоСкидкой
И СНДС
И Не РНПТ Тогда
НазванияОбластей.ШапкаТаблицы = "ШапкаТаблицыСоСкидкойСНДС";
НазванияОбластей.СтрокаТаблицы = "СтрокаТаблицыСоСкидкойСНДС";
НазванияОбластей.СтрокаТаблицыНабор = "СтрокаТаблицыСоСкидкойСНДСНабор";
НазванияОбластей.СтрокаТаблицыКомплектующие = "СтрокаТаблицыСоСкидкойСНДСКомплектующие";
НазванияОбластей.ПодвалТаблицы = "ПодвалТаблицыСоСкидкойСНДС";
ИначеЕсли Не СоСкидкой
И СНДС
И Не РНПТ Тогда
НазванияОбластей.ШапкаТаблицы = "ШапкаТаблицыСНДС";
НазванияОбластей.СтрокаТаблицы = "СтрокаТаблицыСНДС";
НазванияОбластей.СтрокаТаблицыНабор = "СтрокаТаблицыСНДСНабор";
НазванияОбластей.СтрокаТаблицыКомплектующие = "СтрокаТаблицыСНДСКомплектующие";
НазванияОбластей.ПодвалТаблицы = "ПодвалТаблицыСНДС";
ИначеЕсли СоСкидкой
И Не СНДС
И Не РНПТ Тогда
НазванияОбластей.ШапкаТаблицы = "ШапкаТаблицыСоСкидкой";
НазванияОбластей.СтрокаТаблицы = "СтрокаТаблицыСоСкидкой";
НазванияОбластей.СтрокаТаблицыНабор = "СтрокаТаблицыСоСкидкойНабор";
НазванияОбластей.СтрокаТаблицыКомплектующие = "СтрокаТаблицыСоСкидкойКомплектующие";
НазванияОбластей.ПодвалТаблицы = "ПодвалТаблицыСНДС";
ИначеЕсли Не СоСкидкой
И Не СНДС
И Не РНПТ Тогда
НазванияОбластей.ШапкаТаблицы = "ШапкаТаблицы";
НазванияОбластей.СтрокаТаблицы = "СтрокаТаблицы";
НазванияОбластей.СтрокаТаблицыНабор = "СтрокаТаблицыНабор";
НазванияОбластей.СтрокаТаблицыКомплектующие = "СтрокаТаблицыКомплектующие";
НазванияОбластей.ПодвалТаблицы = "ПодвалТаблицы";
ИначеЕсли СоСкидкой
И СНДС
И РНПТ Тогда
НазванияОбластей.ШапкаТаблицы = "ШапкаТаблицыСоСкидкойСНДСРНПТ";
НазванияОбластей.СтрокаТаблицы = "СтрокаТаблицыСоСкидкойСНДСРНПТ";
НазванияОбластей.СтрокаТаблицыНабор = "СтрокаТаблицыСоСкидкойСНДСРНПТНабор";
НазванияОбластей.СтрокаТаблицыКомплектующие = "СтрокаТаблицыСоСкидкойСНДСРНПТКомплектующие";
НазванияОбластей.ПодвалТаблицы = "ПодвалТаблицыСоСкидкойСНДСРНПТ";
ИначеЕсли Не СоСкидкой
И СНДС
И РНПТ Тогда
НазванияОбластей.ШапкаТаблицы = "ШапкаТаблицыСНДСРНПТ";
НазванияОбластей.СтрокаТаблицы = "СтрокаТаблицыСНДСРНПТ";
НазванияОбластей.СтрокаТаблицыНабор = "СтрокаТаблицыСНДСРНПТНабор";
НазванияОбластей.СтрокаТаблицыКомплектующие = "СтрокаТаблицыСНДСРНПТКомплектующие";
НазванияОбластей.СтрокаТаблицыНаборРНПТ = "СтрокаТаблицыСНДСРНПТНаборРНПТ";
НазванияОбластей.СтрокаТаблицыКомплектующиеРНПТ = "СтрокаТаблицыСНДСРНПТКомплектующиеРНПТ";
НазванияОбластей.ПодвалТаблицы = "ПодвалТаблицыСНДСРНПТ";
ИначеЕсли СоСкидкой
И Не СНДС
И РНПТ Тогда
НазванияОбластей.ШапкаТаблицы = "ШапкаТаблицыСоСкидкойРНПТ";
НазванияОбластей.СтрокаТаблицы = "СтрокаТаблицыСоСкидкойРНПТ";
НазванияОбластей.СтрокаТаблицыНаборРНПТ = "СтрокаТаблицыСоСкидкойРНПТНабор";
НазванияОбластей.СтрокаТаблицыКомплектующиеРНПТ = "СтрокаТаблицыСоСкидкойРНПТКомплектующие";
НазванияОбластей.ПодвалТаблицы = "ПодвалТаблицыСНДСРНПТ";
ИначеЕсли Не СоСкидкой
И Не СНДС
И РНПТ Тогда
НазванияОбластей.ШапкаТаблицы = "ШапкаТаблицыРНПТ";
НазванияОбластей.СтрокаТаблицы = "СтрокаТаблицыРНПТ";
НазванияОбластей.СтрокаТаблицыНабор = "СтрокаТаблицыРНПТНабор";
НазванияОбластей.СтрокаТаблицыКомплектующие = "СтрокаТаблицыРНПТКомплектующие";
НазванияОбластей.СтрокаТаблицыНаборРНПТ = "СтрокаТаблицыРНПТНаборРНПТ";
НазванияОбластей.СтрокаТаблицыКомплектующиеРНПТ = "СтрокаТаблицыРНПТКомплектующиеРНПТ";
НазванияОбластей.ПодвалТаблицы = "ПодвалТаблицыРНПТ";
КонецЕсли;
Возврат НазванияОбластей;
КонецФункции
Функция НазванияОбластейКолонок(СоСкидкой, СНДС, РНПТ)
ИменаОбластей = "НомерСтроки, КолонкаКодов, ПерваяКолонкаТовара, Товар, ДанныеКоличество, ДанныеНомерРНПТ,
|ДанныеСуммовые";
НазванияОбластей = Новый Структура(ИменаОбластей);
Если СоСкидкой
И СНДС
И Не РНПТ Тогда
НазванияОбластей.НомерСтроки = "НомерСтроки";
НазванияОбластей.КолонкаКодов = "КолонкаКодов";
НазванияОбластей.ПерваяКолонкаТовара = "ПерваяКолонкаТовара";
НазванияОбластей.Товар = "ТоварСоСкидкойСНДС";
НазванияОбластей.ДанныеКоличество = "ДанныеКоличествоСоСкидкойСНДС";
НазванияОбластей.ДанныеСуммовые = "ДанныеСоСкидкойСНДС";
ИначеЕсли ((Не СоСкидкой
И СНДС)
Или (СоСкидкой
И Не СНДС))
И Не РНПТ Тогда
НазванияОбластей.НомерСтроки = "НомерСтроки";
НазванияОбластей.КолонкаКодов = "КолонкаКодов";
НазванияОбластей.ПерваяКолонкаТовара = "ПерваяКолонкаТовара";
НазванияОбластей.Товар = "ТоварСоСкидкойИлиСНДС";
НазванияОбластей.ДанныеКоличество = "ДанныеКоличествоСоСкидкойИлиСНДС";
НазванияОбластей.ДанныеСуммовые = "ДанныеСоСкидкойИлиСНДС";
ИначеЕсли Не СоСкидкой
И Не СНДС
И Не РНПТ Тогда
НазванияОбластей.НомерСтроки = "НомерСтроки";
НазванияОбластей.КолонкаКодов = "КолонкаКодов";
НазванияОбластей.ПерваяКолонкаТовара = "ПерваяКолонкаТовара";
НазванияОбластей.Товар = "Товар";
НазванияОбластей.ДанныеКоличество = "ДанныеКоличество";
НазванияОбластей.ДанныеСуммовые = "Данные";
ИначеЕсли Не СоСкидкой
И СНДС
И РНПТ Тогда
НазванияОбластей.НомерСтроки = "НомерСтрокиРНПТСНДС";
НазванияОбластей.КолонкаКодов = "КолонкаКодовРНПТСНДС";
НазванияОбластей.ПерваяКолонкаТовара = "ПерваяКолонкаТовараРНПТСНДС";
НазванияОбластей.Товар = "ТоварРНПТСНДС";
НазванияОбластей.ДанныеКоличество = "ДанныеКоличествоСНДСРНПТ";
НазванияОбластей.ДанныеНомерРНПТ = "ДанныеНомерРНПТСНДС";
НазванияОбластей.ДанныеСуммовые = "ДанныеСНДСРНПТ";
ИначеЕсли Не СоСкидкой
И Не СНДС
И РНПТ Тогда
НазванияОбластей.НомерСтроки = "НомерСтрокиРНПТ";
НазванияОбластей.КолонкаКодов = "КолонкаКодовРНПТ";
НазванияОбластей.ПерваяКолонкаТовара = "ПерваяКолонкаТовараРНПТ";
НазванияОбластей.Товар = "ТоварРНПТ";
НазванияОбластей.ДанныеКоличество = "ДанныеКоличествоРНПТ";
НазванияОбластей.ДанныеНомерРНПТ = "ДанныеНомерРНПТ";
НазванияОбластей.ДанныеСуммовые = "ДанныеРНПТ";
КонецЕсли;
Возврат НазванияОбластей;
КонецФункции
Функция СформироватьПечатнуюФормуРасходнаяНакладная(МассивОбъектов, ОбъектыПечати)
УстановитьПривилегированныйРежим(Истина);
ТабличныйДокумент = Новый ТабличныйДокумент;
ТабличныйДокумент.ИмяПараметровПечати = "ПАРАМЕТРЫ_ПЕЧАТИ_РеализацияТоваровУслуг_РасходнаяНакладная";
КолонкаКодов = ФормированиеПечатныхФорм.ДополнительнаяКолонкаПечатныхФормДокументов();
ИмяКолонкиКодов = КолонкаКодов.ИмяКолонки;
ПредставлениеКолонкиКодов = КолонкаКодов.ПредставлениеКолонки;
ВыводитьКоды = ЗначениеЗаполнено(ИмяКолонкиКодов);
ИспользоватьРучныеСкидки = ПолучитьФункциональнуюОпцию("ИспользоватьРучныеСкидкиВПродажах");
ИспользоватьАвтоматическиеСкидки = ПолучитьФункциональнуюОпцию("ИспользоватьАвтоматическиеСкидкиВПродажах");
ИспользоватьУпаковки = ПолучитьФункциональнуюОпцию("ИспользоватьУпаковкиНоменклатуры");
ЗапросПоСкладам = Новый Запрос;
ЗапросПоСкладам.Текст = "
|ВЫБРАТЬ
| РеализацияТоваровУслугТовары.Ссылка КАК Ссылка,
| МАКСИМУМ(РеализацияТоваровУслугТовары.Ссылка.ХозяйственнаяОперация) КАК ХозяйственнаяОперация,
| МАКСИМУМ(РеализацияТоваровУслугТовары.Ссылка.ХозяйственнаяОперация =
| ЗНАЧЕНИЕ(Перечисление.ХозяйственныеОперации.ПереходПраваСобственности)) КАК ЭтоПереходПраваСобственности,
| МАКСИМУМ(ВЫБОР
| КОГДА РеализацияТоваровУслугТовары.Номенклатура.ТипНоменклатуры В (
| ЗНАЧЕНИЕ(Перечисление.ТипыНоменклатуры.Товар),
| ЗНАЧЕНИЕ(Перечисление.ТипыНоменклатуры.МногооборотнаяТара)
| )
| ТОГДА ИСТИНА
| ИНАЧЕ
| ЛОЖЬ
| КОНЕЦ) КАК ВДокументеЕстьТоварТара
|ПОМЕСТИТЬ ОбъектыПечати
|ИЗ
| Документ.РеализацияТоваровУслуг.Товары КАК РеализацияТоваровУслугТовары
|ГДЕ
| РеализацияТоваровУслугТовары.Ссылка В(&МассивОбъектов)
|
|СГРУППИРОВАТЬ ПО
| РеализацияТоваровУслугТовары.Ссылка
|;
|
|
|ВЫБРАТЬ РАЗЛИЧНЫЕ
| РеализацияТоваровУслугТовары.Ссылка КАК Ссылка,
| РеализацияТоваровУслугТовары.Склад КАК Склад,
| ЕСТЬNULL(РеализацияТоваровУслугТовары.Склад.ИспользоватьСерииНоменклатуры, ЛОЖЬ) КАК ИспользоватьСерииНоменклатуры
|ИЗ
| Документ.РеализацияТоваровУслуг.Товары КАК РеализацияТоваровУслугТовары
| ВНУТРЕННЕЕ СОЕДИНЕНИЕ ОбъектыПечати КАК ОбъектыПечати
| ПО РеализацияТоваровУслугТовары.Ссылка = ОбъектыПечати.Ссылка
| И НЕ ОбъектыПечати.ЭтоПереходПраваСобственности
| И ОбъектыПечати.ВДокументеЕстьТоварТара
|
|ИТОГИ ПО
| Ссылка,
| ИспользоватьСерииНоменклатуры
|;
|
|
|ВЫБРАТЬ
| ОбъектыПечати.Ссылка КАК Ссылка,
| ПРЕДСТАВЛЕНИЕ(ОбъектыПечати.Ссылка) КАК ПредставлениеСсылки,
| ОбъектыПечати.ХозяйственнаяОперация КАК ХозяйственнаяОперация,
| ПРЕДСТАВЛЕНИЕ(ОбъектыПечати.ХозяйственнаяОперация) КАК ПредставлениеХозяйственнойОперации,
| ОбъектыПечати.ЭтоПереходПраваСобственности КАК ЭтоПереходПраваСобственности,
| ОбъектыПечати.ВДокументеЕстьТоварТара КАК ВДокументеЕстьТоварТара
|ИЗ
| ОбъектыПечати КАК ОбъектыПечати
|";
ЗапросПоСкладам.УстановитьПараметр("МассивОбъектов", МассивОбъектов);
РезультатыЗапроса = ЗапросПоСкладам.ВыполнитьПакет();
ДеревоОбъектов = РезультатыЗапроса[РезультатыЗапроса.ВГраница()-1].Выгрузить(
ОбходРезультатаЗапроса.ПоГруппировкам);
ТаблицаПроверки = РезультатыЗапроса[РезультатыЗапроса.ВГраница()].Выгрузить();
ПервыйДокумент = Истина;
Для Каждого СтрокаДокумента Из ДеревоОбъектов.Строки Цикл
НомерСтрокиНачало = Неопределено;
Для Каждого ИспользованиеСерий Из СтрокаДокумента.Строки Цикл
ЗапросПоТоварам = Новый Запрос;
ЗапросПоТоварам.УстановитьПараметр("МассивОбъектов", СтрокаДокумента.Ссылка);
ЗапросПоТоварам.УстановитьПараметр("МассивСкладов", ИспользованиеСерий.Строки.ВыгрузитьКолонку("Склад"));
Если ИспользованиеСерий.ИспользоватьСерииНоменклатуры Тогда
ТекстЗапросаПоТоварам =
"ВЫБРАТЬ
| РеализацияТоваровУслугТовары.НомерСтроки КАК НомерСтроки,
| РеализацияТоваровУслугТовары.Ссылка КАК Ссылка,
| РеализацияТоваровУслугТовары.Склад КАК Склад,
| РеализацияТоваровУслугТовары.КоличествоУпаковок КАК КоличествоУпаковок,
| РеализацияТоваровУслугТовары.Количество КАК Количество,
| РеализацияТоваровУслугТовары.Номенклатура КАК Номенклатура,
| РеализацияТоваровУслугТовары.Характеристика КАК Характеристика,
| РеализацияТоваровУслугТовары.Упаковка КАК Упаковка,
| """" КАК Серия
|ПОМЕСТИТЬ ТаблицаТоваров
|ИЗ
| Документ.РеализацияТоваровУслуг.Товары КАК РеализацияТоваровУслугТовары
|ГДЕ
| РеализацияТоваровУслугТовары.Ссылка В(&МассивОбъектов)
| И РеализацияТоваровУслугТовары.Склад В(&МассивСкладов)
| И НЕ(РеализацияТоваровУслугТовары.Номенклатура.ТипНоменклатуры В (ЗНАЧЕНИЕ(Перечисление.ТипыНоменклатуры.Товар), ЗНАЧЕНИЕ(Перечисление.ТипыНоменклатуры.МногооборотнаяТара))
| И РеализацияТоваровУслугТовары.СтатусУказанияСерий В (2, 4, 6, 8))
|
|ОБЪЕДИНИТЬ ВСЕ
|
|ВЫБРАТЬ РАЗЛИЧНЫЕ
| РеализацияТоваровУслугСерии.НомерСтроки,
| РеализацияТоваровУслугСерии.Ссылка,
| РеализацияТоваровУслугСерии.Склад,
| РеализацияТоваровУслугСерии.Количество,
| РеализацияТоваровУслугСерии.Количество,
| РеализацияТоваровУслугСерии.Номенклатура,
| РеализацияТоваровУслугСерии.Характеристика,
| ЗНАЧЕНИЕ(Справочник.УпаковкиЕдиницыИзмерения.ПустаяСсылка),
| РеализацияТоваровУслугСерии.Серия
|ИЗ
| Документ.РеализацияТоваровУслуг.Серии КАК РеализацияТоваровУслугСерии
| ВНУТРЕННЕЕ СОЕДИНЕНИЕ Документ.РеализацияТоваровУслуг.Товары КАК ТаблицаТовары
| ПО РеализацияТоваровУслугСерии.Ссылка = ТаблицаТовары.Ссылка
| И РеализацияТоваровУслугСерии.Номенклатура = ТаблицаТовары.Номенклатура
| И РеализацияТоваровУслугСерии.Характеристика = ТаблицаТовары.Характеристика
| И РеализацияТоваровУслугСерии.Склад = ТаблицаТовары.Склад
|ГДЕ
| РеализацияТоваровУслугСерии.Ссылка В(&МассивОбъектов)
| И РеализацияТоваровУслугСерии.Склад В(&МассивСкладов)
| И РеализацияТоваровУслугСерии.Номенклатура.ТипНоменклатуры В (ЗНАЧЕНИЕ(Перечисление.ТипыНоменклатуры.Товар), ЗНАЧЕНИЕ(Перечисление.ТипыНоменклатуры.МногооборотнаяТара))
| И ТаблицаТовары.СтатусУказанияСерий В (2, 4, 6, 8, 10)
|;
|
|
|ВЫБРАТЬ
| ТаблицаТоваров.НомерСтроки,
| ТаблицаТоваров.Ссылка,
| ТаблицаТоваров.Склад,
| СУММА(ТаблицаТоваров.КоличествоУпаковок) КАК КоличествоУпаковок,
| СУММА(ТаблицаТоваров.Количество) КАК Количество,
| ТаблицаТоваров.Номенклатура,
| ТаблицаТоваров.Характеристика,
| ТаблицаТоваров.Упаковка,
| ВЫБОР
| КОГДА ТаблицаТоваров.Номенклатура.ВидНоменклатуры.НастройкаИспользованияСерий = ЗНАЧЕНИЕ(Перечисление.НастройкиИспользованияСерийНоменклатуры.ЭкземплярТовара)
| ТОГДА NULL
| ИНАЧЕ ТаблицаТоваров.Серия
| КОНЕЦ КАК Серия
|ПОМЕСТИТЬ СуммированнаяТаблицаТоваров
|ИЗ
| ТаблицаТоваров КАК ТаблицаТоваров
|
|СГРУППИРОВАТЬ ПО
| ТаблицаТоваров.НомерСтроки,
| ТаблицаТоваров.Ссылка,
| ТаблицаТоваров.Склад,
| ТаблицаТоваров.Номенклатура,
| ТаблицаТоваров.Характеристика,
| ТаблицаТоваров.Упаковка,
| ВЫБОР
| КОГДА ТаблицаТоваров.Номенклатура.ВидНоменклатуры.НастройкаИспользованияСерий = ЗНАЧЕНИЕ(Перечисление.НастройкиИспользованияСерийНоменклатуры.ЭкземплярТовара)
| ТОГДА NULL
| ИНАЧЕ ТаблицаТоваров.Серия
| КОНЕЦ
|;
|
|
|ВЫБРАТЬ
| ТаблицаТоваров.НомерСтроки,
| ТаблицаТоваров.Ссылка КАК Ссылка,
| ТаблицаТоваров.Ссылка.Организация КАК Организация,
| ТаблицаТоваров.Ссылка.Контрагент КАК Контрагент,
| ТаблицаТоваров.Ссылка.Номер КАК Номер,
| ТаблицаТоваров.Ссылка.Дата КАК Дата,
| ТаблицаТоваров.Ссылка.Организация.Префикс КАК Префикс,
| ТаблицаТоваров.Склад КАК Склад,
| ВЫБОР
| КОГДА ТаблицаТоваров.Упаковка = ЗНАЧЕНИЕ(Справочник.УпаковкиЕдиницыИзмерения.ПустаяСсылка)
| ТОГДА ПРЕДСТАВЛЕНИЕССЫЛКИ(ТаблицаТоваров.Номенклатура.ЕдиницаИзмерения)
| ИНАЧЕ ПРЕДСТАВЛЕНИЕССЫЛКИ(ТаблицаТоваров.Упаковка)
| КОНЕЦ КАК ПредставлениеЕдиницыИзмеренияУпаковки,
| ПРЕДСТАВЛЕНИЕ(ТаблицаТоваров.Номенклатура.ЕдиницаИзмерения) КАК ПредставлениеБазовойЕдиницыИзмерения,
| ТаблицаТоваров.КоличествоУпаковок КАК КоличествоУпаковок,
| ТаблицаТоваров.Количество КАК Количество,
| ТаблицаТоваров.Номенклатура.ВидНоменклатуры.НастройкаИспользованияСерий КАК НастройкаИспользованияСерий,
| ТаблицаТоваров.Номенклатура.Код КАК Код,
| ТаблицаТоваров.Номенклатура.Артикул КАК Артикул,
| ТаблицаТоваров.Номенклатура.НаименованиеПолное КАК ПредставлениеНоменклатуры,
| ТаблицаТоваров.Характеристика.НаименованиеПолное КАК ПредставлениеХарактеристики,
| ТаблицаТоваров.Номенклатура КАК Номенклатура,
| ТаблицаТоваров.Характеристика КАК Характеристика,
| ВЫБОР
| КОГДА ЕСТЬNULL(&ТекстЗапросаКоэффициентУпаковки, 1) = 1
| ТОГДА НЕОПРЕДЕЛЕНО
| ИНАЧЕ ТаблицаТоваров.Упаковка.Наименование
| КОНЕЦ КАК Упаковка,
| ТаблицаТоваров.Серия.Наименование КАК ПредставлениеСерии,
| ВЫБОР
| КОГДА ТаблицаТоваров.Ссылка.ВернутьМногооборотнуюТару
| И ТаблицаТоваров.Номенклатура.ТипНоменклатуры = ЗНАЧЕНИЕ(Перечисление.ТипыНоменклатуры.МногооборотнаяТара)
| ТОГДА ИСТИНА
| ИНАЧЕ ЛОЖЬ
| КОНЕЦ КАК ЭтоВозвратнаяТара
|ИЗ
| СуммированнаяТаблицаТоваров КАК ТаблицаТоваров
|
|УПОРЯДОЧИТЬ ПО НомерСтроки
|
|ИТОГИ ПО
| Ссылка,
| Склад,
| Номенклатура,
| Характеристика
|;
|
|
|ВЫБРАТЬ
| ТаблицаТоваров.НомерСтроки,
| ТаблицаТоваров.Ссылка КАК Ссылка,
| ТаблицаТоваров.Склад КАК Склад,
| ТаблицаТоваров.Номенклатура КАК Номенклатура,
| ТаблицаТоваров.Характеристика КАК Характеристика,
| ТаблицаТоваров.Серия.Наименование КАК ПредставлениеСерии
|ИЗ
| ТаблицаТоваров КАК ТаблицаТоваров
|ГДЕ
| ТаблицаТоваров.Номенклатура.ВидНоменклатуры.НастройкаИспользованияСерий = ЗНАЧЕНИЕ(Перечисление.НастройкиИспользованияСерийНоменклатуры.ЭкземплярТовара)
| И НЕ ТаблицаТоваров.Серия ЕСТЬ NULL
|УПОРЯДОЧИТЬ ПО НомерСтроки
|";
ТекстЗапросаПоТоварам = СтрЗаменить(ТекстЗапросаПоТоварам, "&ТекстЗапросаКоэффициентУпаковки",
Справочники.УпаковкиЕдиницыИзмерения.ТекстЗапросаКоэффициентаУпаковки(
"ТаблицаТоваров.Упаковка",
"ТаблицаТоваров.Номенклатура"));
ЗапросПоТоварам.Текст = ТекстЗапросаПоТоварам;
МассивРезультатов = ЗапросПоТоварам.ВыполнитьПакет();
РезультатДанныеПечати = МассивРезультатов[2];
РезультатВыборкаПоСериям = МассивРезультатов[3];
ДанныеПечати = РезультатДанныеПечати.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам);
ВыборкаПоСериям = РезультатВыборкаПоСериям.Выбрать();
Иначе
ТекстЗапросаПоТоварам =
"ВЫБРАТЬ
| РеализацияТоваровУслугТовары.НомерСтроки КАК НомерСтроки,
| РеализацияТоваровУслугТовары.Ссылка КАК Ссылка,
| РеализацияТоваровУслугТовары.Ссылка.Организация КАК Организация,
| РеализацияТоваровУслугТовары.Ссылка.Контрагент КАК Контрагент,
| РеализацияТоваровУслугТовары.Ссылка.Номер КАК Номер,
| РеализацияТоваровУслугТовары.Ссылка.Дата КАК Дата,
| РеализацияТоваровУслугТовары.Ссылка.Организация.Префикс КАК Префикс,
| РеализацияТоваровУслугТовары.Склад КАК Склад,
| ВЫБОР
| КОГДА РеализацияТоваровУслугТовары.Упаковка = ЗНАЧЕНИЕ(Справочник.УпаковкиЕдиницыИзмерения.ПустаяСсылка)
| ТОГДА ПРЕДСТАВЛЕНИЕССЫЛКИ(РеализацияТоваровУслугТовары.Номенклатура.ЕдиницаИзмерения)
| ИНАЧЕ ПРЕДСТАВЛЕНИЕССЫЛКИ(РеализацияТоваровУслугТовары.Упаковка)
| КОНЕЦ КАК ПредставлениеЕдиницыИзмеренияУпаковки,
| ПРЕДСТАВЛЕНИЕ(РеализацияТоваровУслугТовары.Номенклатура.ЕдиницаИзмерения) КАК ПредставлениеБазовойЕдиницыИзмерения,
| РеализацияТоваровУслугТовары.КоличествоУпаковок КАК КоличествоУпаковок,
| РеализацияТоваровУслугТовары.Количество КАК Количество,
| РеализацияТоваровУслугТовары.Номенклатура.Код КАК Код,
| РеализацияТоваровУслугТовары.Номенклатура.Артикул КАК Артикул,
| РеализацияТоваровУслугТовары.Номенклатура.НаименованиеПолное КАК ПредставлениеНоменклатуры,
| РеализацияТоваровУслугТовары.Характеристика.НаименованиеПолное КАК ПредставлениеХарактеристики,
| """" КАК ПредставлениеСерии,
| ВЫБОР
| КОГДА ЕСТЬNULL(&ТекстЗапросаКоэффициентУпаковки, 1) = 1
| ТОГДА НЕОПРЕДЕЛЕНО
| ИНАЧЕ РеализацияТоваровУслугТовары.Упаковка.Наименование
| КОНЕЦ КАК Упаковка,
| ВЫБОР
| КОГДА РеализацияТоваровУслугТовары.Ссылка.ВернутьМногооборотнуюТару
| И РеализацияТоваровУслугТовары.Номенклатура.ТипНоменклатуры = ЗНАЧЕНИЕ(Перечисление.ТипыНоменклатуры.МногооборотнаяТара)
| ТОГДА ИСТИНА
| ИНАЧЕ ЛОЖЬ
| КОНЕЦ КАК ЭтоВозвратнаяТара,
| NULL КАК НастройкаИспользованияСерий,
| РеализацияТоваровУслугТовары.Номенклатура КАК Номенклатура,
| РеализацияТоваровУслугТовары.Характеристика КАК Характеристика
|ИЗ
| Документ.РеализацияТоваровУслуг.Товары КАК РеализацияТоваровУслугТовары
|ГДЕ
| РеализацияТоваровУслугТовары.Ссылка В(&МассивОбъектов)
| И РеализацияТоваровУслугТовары.Склад В(&МассивСкладов)
| И РеализацияТоваровУслугТовары.Номенклатура.ТипНоменклатуры В (ЗНАЧЕНИЕ(Перечисление.ТипыНоменклатуры.Товар), ЗНАЧЕНИЕ(Перечисление.ТипыНоменклатуры.МногооборотнаяТара))
|
|УПОРЯДОЧИТЬ ПО НомерСтроки
|
|ИТОГИ ПО
| Ссылка,
| Склад,
| Номенклатура,
| Характеристика";
ТекстЗапросаПоТоварам = СтрЗаменить(ТекстЗапросаПоТоварам, "&ТекстЗапросаКоэффициентУпаковки",
Справочники.УпаковкиЕдиницыИзмерения.ТекстЗапросаКоэффициентаУпаковки(
"РеализацияТоваровУслугТовары.Упаковка",
"РеализацияТоваровУслугТовары.Номенклатура"));
ЗапросПоТоварам.Текст = ТекстЗапросаПоТоварам;
ДанныеПечати = ЗапросПоТоварам.Выполнить().Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам);
КонецЕсли;
Макет = УправлениеПечатью.МакетПечатнойФормы("Документ.РеализацияТоваровУслуг.ПФ_MXL_РасходнаяНакладная");
ШиринаОтсутствующихОбластей = 0;
Если НЕ ВыводитьКоды Тогда
ШиринаОтсутствующихОбластей = Макет.Область("КолонкаКодов").ШиринаКолонки;
КонецЕсли;
Если Не ИспользоватьУпаковки Тогда
ШиринаОтсутствующихОбластей = ШиринаОтсутствующихОбластей + Макет.Область("КолонкаКоличестваУпаковок").ШиринаКолонки;
ШиринаОтсутствующихОбластей = ШиринаОтсутствующихОбластей + Макет.Область("КолонкаПредставленияУпаковок").ШиринаКолонки;
КонецЕсли;
Макет.Область("КолонкаТоваров").ШиринаКолонки = Макет.Область("КолонкаТоваров").ШиринаКолонки + ШиринаОтсутствующихОбластей;
РеквизитыДокумента = Новый Структура("Номер, Дата, Префикс, Представление");
Пока ДанныеПечати.Следующий() Цикл
ПараметрыПоиска = Новый Структура("Ссылка", ДанныеПечати.Ссылка);
НайденныеСтроки = ТаблицаПроверки.НайтиСтроки(ПараметрыПоиска);
Для Каждого НайденнаяСтрока Из НайденныеСтроки Цикл
ТаблицаПроверки.Удалить(НайденнаяСтрока);
КонецЦикла;
Если НомерСтрокиНачало = Неопределено Тогда
НомерСтрокиНачало = ТабличныйДокумент.ВысотаТаблицы + 1;
КонецЕсли;
ЗаполнитьЗначенияСвойств(РеквизитыДокумента, ДанныеПечати);
ВыборкаПоСкладам = ДанныеПечати.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам);
Пока ВыборкаПоСкладам.Следующий() Цикл
Если Не ПервыйДокумент Тогда
ТабличныйДокумент.ВывестиГоризонтальныйРазделительСтраниц();
КонецЕсли;
ПервыйДокумент = Ложь;
Область = Макет.ПолучитьОбласть("Заголовок");
СтруктураДанныхЗаголовок = Новый Структура;
СтруктураДанныхЗаголовок.Вставить("ТекстЗаголовка", НСтр("ru='Расходная накладная'", ОбщегоНазначения.КодОсновногоЯзыка()));
ШтрихкодированиеПечатныхФорм.ВывестиШтрихкодВТабличныйДокумент(ТабличныйДокумент, Макет, Область, ДанныеПечати.Ссылка);
Область.Параметры.Заполнить(СтруктураДанныхЗаголовок);
ТабличныйДокумент.Вывести(Область);
Область = Макет.ПолучитьОбласть("Шапка");
СтруктураДанныхШапка = Новый Структура;
СтруктураДанныхШапка.Вставить("ПредставлениеРаспоряжения", ОбщегоНазначенияУТКлиентСервер.СформироватьЗаголовокДокумента(
РеквизитыДокумента, НСтр("ru='Реализация товаров'", ОбщегоНазначения.КодОсновногоЯзыка())));
СтруктураДанныхШапка.Вставить("ПредставлениеСклада", ВыборкаПоСкладам.Склад);
СтруктураДанныхШапка.Вставить("Склад", ВыборкаПоСкладам.Склад);
Область.Параметры.Заполнить(СтруктураДанныхШапка);
ТабличныйДокумент.Вывести(Область);
Область = Макет.ПолучитьОбласть("Поставщик");
СтруктураДанныхПоставщик = Новый Структура;
СтруктураДанныхПоставщик.Вставить("ПредставлениеОрганизации",
ФормированиеПечатныхФорм.ОписаниеОрганизации(ФормированиеПечатныхФорм.СведенияОЮрФизЛице(ВыборкаПоСкладам.Организация, ВыборкаПоСкладам.Дата),
"ПолноеНаименование"));
СтруктураДанныхПоставщик.Вставить("Организация", ВыборкаПоСкладам.Организация);
Область.Параметры.Заполнить(СтруктураДанныхПоставщик);
ТабличныйДокумент.Вывести(Область);
Область = Макет.ПолучитьОбласть("Покупатель");
СтруктураДанныхПокупатель = Новый Структура;
СтруктураДанныхПоставщик.Вставить("ПредставлениеПартнера",
ФормированиеПечатныхФорм.ОписаниеОрганизации(ФормированиеПечатныхФорм.СведенияОЮрФизЛице(ВыборкаПоСкладам.Контрагент, ВыборкаПоСкладам.Дата),
"ПолноеНаименование"));
СтруктураДанныхПоставщик.Вставить("Контрагент", ВыборкаПоСкладам.Контрагент);
Область.Параметры.Заполнить(СтруктураДанныхПоставщик);
ТабличныйДокумент.Вывести(Область);
Область = Макет.ПолучитьОбласть("ШапкаТаблицы|НачалоСтроки");
ТабличныйДокумент.Вывести(Область);
Если ВыводитьКоды Тогда
Область = Макет.ПолучитьОбласть("ШапкаТаблицы|КолонкаКодов");
СтруктураДанныхКоды = Новый Структура("ИмяКолонкиКодов", ПредставлениеКолонкиКодов);
Область.Параметры.Заполнить(СтруктураДанныхКоды);
ТабличныйДокумент.Присоединить(Область);
КонецЕсли;
Область = Макет.ПолучитьОбласть("ШапкаТаблицы|КолонкаТоваров");
ТабличныйДокумент.Присоединить(Область);
Если ИспользоватьУпаковки Тогда
Область = Макет.ПолучитьОбласть("ШапкаТаблицы|КолонкиУпаковок");
ТабличныйДокумент.Присоединить(Область);
КонецЕсли;
Область = Макет.ПолучитьОбласть("ШапкаТаблицы|КолонкиКоличества");
ТабличныйДокумент.Присоединить(Область);
ОбластьНачалоСтроки = Макет.ПолучитьОбласть("СтрокаТаблицы|НачалоСтроки");
ОбластьКолонкаКодов = Макет.ПолучитьОбласть("СтрокаТаблицы|КолонкаКодов");
ОбластьКолонкаТоваров = Макет.ПолучитьОбласть("СтрокаТаблицы|КолонкаТоваров");
ОбластьКолонкаУпаковок = Макет.ПолучитьОбласть("СтрокаТаблицы|КолонкиУпаковок");
ОбластьКолонкаКоличества = Макет.ПолучитьОбласть("СтрокаТаблицы|КолонкиКоличества");
СчетСтрок = 1;
ВыборкаПоСсылкамТЧ = ВыборкаПоСкладам.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам);
Пока ВыборкаПоСсылкамТЧ.Следующий() Цикл
ВыборкаПоНоменклатуреТЧ = ВыборкаПоСсылкамТЧ.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам);
Пока ВыборкаПоНоменклатуреТЧ.Следующий() Цикл
ВыборкаПоСтрокамТЧ = ВыборкаПоНоменклатуреТЧ.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам);
ПерваяСтрока = Истина;
СтрокаУпаковок = "";
СтрокаКоличестваУпаковок = "";
СтрокаЕдиницИзмерений = "";
СтрокаКоличества = "";
Пока ВыборкаПоСтрокамТЧ.Следующий() Цикл
Если ВыборкаПоСтрокамТЧ.НастройкаИспользованияСерий = Перечисления.НастройкиИспользованияСерийНоменклатуры.ЭкземплярТовара Тогда
Если ПерваяСтрока Тогда
СтруктураДанныхНомерСтроки = Новый Структура("НомерСтроки", СчетСтрок);
ОбластьНачалоСтроки.Параметры.Заполнить(СтруктураДанныхНомерСтроки);
СчетСтрок = СчетСтрок + 1;
ТабличныйДокумент.Вывести(ОбластьНачалоСтроки);
Если ВыводитьКоды Тогда
СтруктураДанныхКоды = Новый Структура("ЗначениеКода", ВыборкаПоСтрокамТЧ[ИмяКолонкиКодов]);
ОбластьКолонкаКодов.Параметры.Заполнить(СтруктураДанныхКоды);
ТабличныйДокумент.Присоединить(ОбластьКолонкаКодов);
КонецЕсли;
СтруктураПоиска = Новый Структура;
СтруктураПоиска.Вставить("Ссылка", ВыборкаПоСтрокамТЧ.Ссылка);
СтруктураПоиска.Вставить("Склад", ВыборкаПоСтрокамТЧ.Склад);
СтруктураПоиска.Вставить("Номенклатура", ВыборкаПоСтрокамТЧ.Номенклатура);
СтруктураПоиска.Вставить("Характеристика", ВыборкаПоСтрокамТЧ.Характеристика);
СтрокаСерий = "";
Пока ВыборкаПоСериям.НайтиСледующий(СтруктураПоиска) Цикл
СтрокаСерий = СтрокаСерий + ВыборкаПоСериям.ПредставлениеСерии + ", ";
КонецЦикла;
Если СтрДлина(СтрокаСерий) <> 0 Тогда
СтрокаСерий = Лев(СтрокаСерий, СтрДлина(СтрокаСерий) - 2);
КонецЕсли;
ДополнительныеПараметрыПолученияНаименованияДляПечати = НоменклатураКлиентСервер.ДополнительныеПараметрыПредставлениеНоменклатурыДляПечати();
ДополнительныеПараметрыПолученияНаименованияДляПечати.ВозвратнаяТара = ВыборкаПоСтрокамТЧ.ЭтоВозвратнаяТара;
ДополнительныеПараметрыПолученияНаименованияДляПечати.КодОсновногоЯзыка = ОбщегоНазначения.КодОсновногоЯзыка();
Товар = НоменклатураКлиентСервер.ПредставлениеНоменклатурыДляПечати(
ВыборкаПоСтрокамТЧ.ПредставлениеНоменклатуры,
ВыборкаПоСтрокамТЧ.ПредставлениеХарактеристики,
,
СтрокаСерий,
ДополнительныеПараметрыПолученияНаименованияДляПечати);
СтруктураДанныхТовар = Новый Структура("Товар", Товар);
ОбластьКолонкаТоваров.Параметры.Заполнить(СтруктураДанныхТовар);
ТабличныйДокумент.Присоединить(ОбластьКолонкаТоваров);
ПерваяСтрока = Ложь;
КонецЕсли;
Если ИспользоватьУпаковки Тогда
СтрокаУпаковок = СтрокаУпаковок + ВыборкаПоСтрокамТЧ.ПредставлениеЕдиницыИзмеренияУпаковки + Символы.ПС;
СтрокаКоличестваУпаковок = СтрокаКоличестваУпаковок + ВыборкаПоСтрокамТЧ.КоличествоУпаковок + Символы.ПС;
КонецЕсли;
СтрокаЕдиницИзмерений = СтрокаЕдиницИзмерений + ВыборкаПоСтрокамТЧ.ПредставлениеБазовойЕдиницыИзмерения + Символы.ПС;
СтрокаКоличества = СтрокаКоличества + ВыборкаПоСтрокамТЧ.Количество + Символы.ПС;
ТоварССериейЭкземпляром = Истина;
Иначе
СтруктураДанныхНомерСтроки = Новый Структура("НомерСтроки", СчетСтрок);
ОбластьНачалоСтроки.Параметры.Заполнить(СтруктураДанныхНомерСтроки);
СчетСтрок = СчетСтрок + 1;
ТабличныйДокумент.Вывести(ОбластьНачалоСтроки);
Если ВыводитьКоды Тогда
СтруктураДанныхКоды = Новый Структура("ЗначениеКода", ВыборкаПоСтрокамТЧ[ИмяКолонкиКодов]);
ОбластьКолонкаКодов.Параметры.Заполнить(СтруктураДанныхКоды);
ТабличныйДокумент.Присоединить(ОбластьКолонкаКодов);
КонецЕсли;
ДополнительныеПараметрыПолученияНаименованияДляПечати = НоменклатураКлиентСервер.ДополнительныеПараметрыПредставлениеНоменклатурыДляПечати();
ДополнительныеПараметрыПолученияНаименованияДляПечати.ВозвратнаяТара = ВыборкаПоСтрокамТЧ.ЭтоВозвратнаяТара;
ДополнительныеПараметрыПолученияНаименованияДляПечати.КодОсновногоЯзыка = ОбщегоНазначения.КодОсновногоЯзыка();
Товар = НоменклатураКлиентСервер.ПредставлениеНоменклатурыДляПечати(
ВыборкаПоСтрокамТЧ.ПредставлениеНоменклатуры,
ВыборкаПоСтрокамТЧ.ПредставлениеХарактеристики,
,
ВыборкаПоСтрокамТЧ.ПредставлениеСерии,
ДополнительныеПараметрыПолученияНаименованияДляПечати);
СтруктураДанныхТовар = Новый Структура("Товар", Товар);
ОбластьКолонкаТоваров.Параметры.Заполнить(СтруктураДанныхТовар);
ТабличныйДокумент.Присоединить(ОбластьКолонкаТоваров);
Если ИспользоватьУпаковки Тогда
ОбластьКолонкаУпаковок.Параметры.Заполнить(ВыборкаПоСтрокамТЧ);
ТабличныйДокумент.Присоединить(ОбластьКолонкаУпаковок);
КонецЕсли;
ОбластьКолонкаКоличества.Параметры.Заполнить(ВыборкаПоСтрокамТЧ);
ТабличныйДокумент.Присоединить(ОбластьКолонкаКоличества);
ТоварССериейЭкземпляром = Ложь;
КонецЕсли;
КонецЦикла;
Если ТоварССериейЭкземпляром Тогда
Если ИспользоватьУпаковки Тогда
СтруктураДанныхКолонкаУпаковок = Новый Структура;
СтруктураДанныхКолонкаУпаковок.Вставить("КоличествоУпаковок", СтрокаКоличестваУпаковок);
СтруктураДанныхКолонкаУпаковок.Вставить("ПредставлениеЕдиницыИзмеренияУпаковки", СтрокаУпаковок);
ОбластьКолонкаУпаковок.Параметры.Заполнить(СтруктураДанныхКолонкаУпаковок);
ТабличныйДокумент.Присоединить(ОбластьКолонкаУпаковок);
КонецЕсли;
СтруктураДанныхКолонкаКоличества = Новый Структура;
СтруктураДанныхКолонкаКоличества.Вставить("Количество", СтрокаКоличества);
СтруктураДанныхКолонкаКоличества.Вставить("ПредставлениеБазовойЕдиницыИзмерения", СтрокаЕдиницИзмерений);
ОбластьКолонкаКоличества.Параметры.Заполнить(СтруктураДанныхКолонкаКоличества);
ТабличныйДокумент.Присоединить(ОбластьКолонкаКоличества);
КонецЕсли;
КонецЦикла;
КонецЦикла;
Область = Макет.ПолучитьОбласть("ПодвалТаблицы|НачалоСтроки");
ТабличныйДокумент.Вывести(Область);
Если ВыводитьКоды Тогда
Область = Макет.ПолучитьОбласть("ПодвалТаблицы|КолонкаКодов");
ТабличныйДокумент.Присоединить(Область);
КонецЕсли;
Область = Макет.ПолучитьОбласть("ПодвалТаблицы|КолонкаТоваров");
ТабличныйДокумент.Присоединить(Область);
Если ИспользоватьУпаковки Тогда
Область = Макет.ПолучитьОбласть("ПодвалТаблицы|КолонкиУпаковок");
ТабличныйДокумент.Присоединить(Область);
КонецЕсли;
Область = Макет.ПолучитьОбласть("ПодвалТаблицы|КолонкиКоличества");
ТабличныйДокумент.Присоединить(Область);
Область = Макет.ПолучитьОбласть("Подписи");
ТекстИтоговойСтроки = НСтр("ru = 'Всего наименований %ВсегоНаименований%'", ОбщегоНазначения.КодОсновногоЯзыка());
ТекстИтоговойСтроки = СтрЗаменить(ТекстИтоговойСтроки,"%ВсегоНаименований%", СчетСтрок-1);
СтруктураДанныхИтоговаяСтрока = Новый Структура;
СтруктураДанныхЗаголовок.Вставить("ИтоговаяСтрока", ТекстИтоговойСтроки);
Область.Параметры.Заполнить(СтруктураДанныхЗаголовок);
ТабличныйДокумент.Вывести(Область);
КонецЦикла;
КонецЦикла;
КонецЦикла;
Если Не НомерСтрокиНачало = Неопределено Тогда
УправлениеПечатью.ЗадатьОбластьПечатиДокумента(ТабличныйДокумент, НомерСтрокиНачало, ОбъектыПечати, СтрокаДокумента.Ссылка);
КонецЕсли;
КонецЦикла;
Для Каждого СтрокаТаблицы Из ТаблицаПроверки Цикл
Если СтрокаТаблицы.ЭтоПереходПраваСобственности Тогда
ТекстСообщения = НСтр("ru = 'В документе %1 хозяйственная операция %2. Печать расходной накладной не требуется.'");
ТекстСообщения = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
ТекстСообщения,
СтрокаТаблицы.ПредставлениеСсылки,
СтрокаТаблицы.ПредставлениеХозяйственнойОперации);
ОбщегоНазначения.СообщитьПользователю(
ТекстСообщения,
СтрокаТаблицы.Ссылка);
Продолжить;
КонецЕсли;
Если Не СтрокаТаблицы.ВДокументеЕстьТоварТара Тогда
ТекстСообщения = НСтр("ru = 'В документе %1 отсутствуют товары. Печать расходной накладной не требуется.'");
ТекстСообщения = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
ТекстСообщения,
СтрокаТаблицы.ПредставлениеСсылки);
ОбщегоНазначения.СообщитьПользователю(
ТекстСообщения,
СтрокаТаблицы.Ссылка);
КонецЕсли;
КонецЦикла;
ТабличныйДокумент.АвтоМасштаб = Истина;
Если ПривилегированныйРежим() Тогда
УстановитьПривилегированныйРежим(Ложь);
КонецЕсли;
Возврат ТабличныйДокумент;
КонецФункции
Функция ДанныеДляПечатныхФормСчетаНаОплатуИзвещения(ПараметрыПечати, МассивОбъектов, КодЯзыка = Неопределено) Экспорт
Если ПараметрыПечати <> Неопределено И ПараметрыПечати.Свойство("ОтображатьСкидки") Тогда
ОтображатьСкидки = ПараметрыПечати.ОтображатьСкидки;
Иначе
ОтображатьСкидки = (Константы.ОтображениеСкидокВПечатныхФормахДокументовПродажи.Получить()
<> Перечисления.ВариантыВыводаСкидокВПечатныхФормах.НеВыводитьСкидки);
КонецЕсли;
МенеджерВременныхТаблиц = Новый МенеджерВременныхТаблиц;
ОтветственныеЛицаСервер.СформироватьВременнуюТаблицуОтветственныхЛицДокументов(МассивОбъектов, МенеджерВременныхТаблиц);
Запрос = Новый Запрос;
Запрос.МенеджерВременныхТаблиц = МенеджерВременныхТаблиц;
Запрос.Текст =
"ВЫБРАТЬ
| Документы.Ссылка КАК Ссылка,
| Документы.Номер КАК Номер,
| Документы.Дата КАК Дата,
| НЕОПРЕДЕЛЕНО КАК ДокументОснование,
| ЕСТЬNULL(Документы.БанковскийСчетОрганизации.Владелец, Документы.Организация) КАК Организация,
| Документы.Организация КАК ОрганизацияПоставщик,
| ТаблицаОтветственныеЛица.РуководительНаименование КАК Руководитель,
| ТаблицаОтветственныеЛица.РуководительДолжность КАК ДолжностьРуководителя,
| ТаблицаОтветственныеЛица.ГлавныйБухгалтерНаименование КАК ГлавныйБухгалтер,
| ВЫБОР
| КОГДА Документы.НалогообложениеНДС = ЗНАЧЕНИЕ(Перечисление.ТипыНалогообложенияНДС.ПродажаНеОблагаетсяНДС)
| ИЛИ Документы.НалогообложениеНДС = ЗНАЧЕНИЕ(Перечисление.ТипыНалогообложенияНДС.ПродажаОблагаетсяЕНВД)
| ТОГДА ЛОЖЬ
| ИНАЧЕ ИСТИНА
| КОНЕЦ КАК УчитыватьНДС,
| Документы.НалогообложениеНДС = ЗНАЧЕНИЕ(Перечисление.ТипыНалогообложенияНДС.ОблагаетсяНДСУПокупателя) КАК ОперацияОблагаетсяНДСУПокупателя,
| Документы.Контрагент КАК Контрагент,
| Документы.Контрагент.ЮрФизЛицо КАК КонтрагентЮрФизЛицо,
| Документы.БанковскийСчетОрганизации КАК БанковскийСчет,
|
| ВЫБОР КОГДА Документы.БанковскийСчетОрганизации.ИностранныйБанк
| ИЛИ Документы.БанковскийСчетОрганизации.ВалютаДенежныхСредств <> Документы.Организация.ВалютаРегламентированногоУчета
| ИЛИ Документы.БанковскийСчетКонтрагента.ИностранныйБанк ТОГДА
| ИСТИНА
| ИНАЧЕ
| ЛОЖЬ
| КОНЕЦ КАК ПлатежЗаРубеж,
| Документы.БанковскийСчетОрганизации.ВалютаДенежныхСредств КАК ВалютаДенежныхСредств,
|
| ВЫБОР КОГДА Документы.БанковскийСчетОрганизации.РучноеИзменениеРеквизитовБанка ТОГДА Документы.БанковскийСчетОрганизации.НаименованиеБанкаМеждународное
| ИНАЧЕ Документы.БанковскийСчетОрганизации.Банк.МеждународноеНаименование КОНЕЦ КАК НаименованиеБанкаМеждународное,
| ВЫБОР КОГДА Документы.БанковскийСчетОрганизации.РучноеИзменениеРеквизитовБанка ТОГДА Документы.БанковскийСчетОрганизации.НаименованиеБанкаДляРасчетовМеждународное
| ИНАЧЕ Документы.БанковскийСчетОрганизации.БанкДляРасчетов.МеждународноеНаименование КОНЕЦ КАК НаименованиеБанкаДляРасчетовМеждународное,
| ВЫБОР КОГДА Документы.БанковскийСчетОрганизации.РучноеИзменениеРеквизитовБанка ТОГДА Документы.БанковскийСчетОрганизации.СВИФТБанка
| ИНАЧЕ Документы.БанковскийСчетОрганизации.Банк.СВИФТБИК КОНЕЦ КАК СВИФТБанка,
| ВЫБОР КОГДА Документы.БанковскийСчетОрганизации.РучноеИзменениеРеквизитовБанкаДляРасчетов ТОГДА Документы.БанковскийСчетОрганизации.СВИФТБанкаДляРасчетов
| ИНАЧЕ Документы.БанковскийСчетОрганизации.БанкДляРасчетов.СВИФТБИК КОНЕЦ КАК СВИФТБанкаДляРасчетов,
| ВЫБОР КОГДА Документы.БанковскийСчетОрганизации.РучноеИзменениеРеквизитовБанка ТОГДА Документы.БанковскийСчетОрганизации.АдресБанкаМеждународный
| ИНАЧЕ Документы.БанковскийСчетОрганизации.Банк.АдресМеждународный КОНЕЦ КАК АдресБанка,
| ВЫБОР КОГДА Документы.БанковскийСчетОрганизации.РучноеИзменениеРеквизитовБанкаДляРасчетов ТОГДА Документы.БанковскийСчетОрганизации.АдресБанкаДляРасчетовМеждународный
| ИНАЧЕ Документы.БанковскийСчетОрганизации.БанкДляРасчетов.АдресМеждународный КОНЕЦ КАК АдресБанкаДляРасчетов,
|
| Документы.БанковскийСчетОрганизации.СчетВБанкеДляРасчетов КАК СчетВБанкеДляРасчетов,
| ЕСТЬNULL(Документы.БанковскийСчетОрганизации.СчетЦифровогоРубля, ЛОЖЬ) КАК ЭтоСчетЦифровогоРубля,
| ВЫБОР
| КОГДА ЕСТЬNULL(Документы.БанковскийСчетОрганизации.СчетЦифровогоРубля, ЛОЖЬ)
| ТОГДА Документы.БанковскийСчетОрганизации.ИдентификаторСчетаЦифровогоРубля
| ИНАЧЕ Документы.БанковскийСчетОрганизации.НомерСчета
| КОНЕЦ КАК НомерБанковскогоСчета,
| ВЫБОР
| КОГДА Документы.БанковскийСчетОрганизации.РучноеИзменениеРеквизитовБанка
| ТОГДА Документы.БанковскийСчетОрганизации.БИКБанка
| ИНАЧЕ КлассификаторБанков.Код
| КОНЕЦ КАК БИКБанк,
| ВЫБОР
| КОГДА Документы.БанковскийСчетОрганизации.РучноеИзменениеРеквизитовБанка
| ТОГДА Документы.БанковскийСчетОрганизации.НаименованиеБанка
| ИНАЧЕ КлассификаторБанков.Наименование
| КОНЕЦ КАК НаименованиеБанка,
| ВЫБОР
| КОГДА Документы.БанковскийСчетОрганизации.РучноеИзменениеРеквизитовБанка
| ТОГДА Документы.БанковскийСчетОрганизации.КоррСчетБанка
| ИНАЧЕ КлассификаторБанков.КоррСчет
| КОНЕЦ КАК КоррСчетБанка,
| ВЫБОР
| КОГДА Документы.БанковскийСчетОрганизации.РучноеИзменениеРеквизитовБанка
| ТОГДА Документы.БанковскийСчетОрганизации.ГородБанка
| ИНАЧЕ КлассификаторБанков.Город
| КОНЕЦ КАК ГородБанка,
| ВЫБОР
| КОГДА Документы.БанковскийСчетОрганизации.РучноеИзменениеРеквизитовБанкаДляРасчетов
| ТОГДА Документы.БанковскийСчетОрганизации.БИКБанкаДляРасчетов
| ИНАЧЕ КлассификаторБанковКорреспондентовРФ.Код
| КОНЕЦ КАК БИКБанкаДляРасчетов,
| ВЫБОР
| КОГДА Документы.БанковскийСчетОрганизации.РучноеИзменениеРеквизитовБанкаДляРасчетов
| ТОГДА Документы.БанковскийСчетОрганизации.НаименованиеБанкаДляРасчетов
| ИНАЧЕ КлассификаторБанковКорреспондентовРФ.Наименование
| КОНЕЦ КАК НаименованиеБанкаДляРасчетов,
| ВЫБОР
| КОГДА Документы.БанковскийСчетОрганизации.РучноеИзменениеРеквизитовБанкаДляРасчетов
| ТОГДА Документы.БанковскийСчетОрганизации.КоррСчетБанкаДляРасчетов
| ИНАЧЕ КлассификаторБанковКорреспондентовРФ.КоррСчет
| КОНЕЦ КАК КоррСчетБанкаДляРасчетов,
| ВЫБОР
| КОГДА Документы.БанковскийСчетОрганизации.РучноеИзменениеРеквизитовБанкаДляРасчетов
| ТОГДА Документы.БанковскийСчетОрганизации.ГородБанкаДляРасчетов
| ИНАЧЕ КлассификаторБанковКорреспондентовРФ.Город
| КОНЕЦ КАК ГородБанкаДляРасчетов,
| ВЫБОР
| КОГДА Документы.БанковскийСчетОрганизации.РучноеИзменениеРеквизитовБанкаДляРасчетов
| ТОГДА Документы.БанковскийСчетОрганизации.ГородБанкаМеждународный
| ИНАЧЕ КлассификаторБанков.ГородМеждународный
| КОНЕЦ КАК ГородБанкаМеждународный,
| ВЫБОР
| КОГДА Документы.БанковскийСчетОрганизации.РучноеИзменениеРеквизитовБанкаДляРасчетов
| ТОГДА Документы.БанковскийСчетОрганизации.СтранаБанка
| ИНАЧЕ СтраныБанков.Ссылка
| КОНЕЦ КАК СтранаБанка,
| ВЫБОР
| КОГДА Документы.БанковскийСчетОрганизации.РучноеИзменениеРеквизитовБанкаДляРасчетов
| ТОГДА Документы.БанковскийСчетОрганизации.ГородБанкаДляРасчетовМеждународный
| ИНАЧЕ КлассификаторБанковКорреспондентовРФ.ГородМеждународный
| КОНЕЦ КАК ГородБанкаДляРасчетовМеждународный,
| ВЫБОР
| КОГДА Документы.БанковскийСчетОрганизации.РучноеИзменениеРеквизитовБанкаДляРасчетов
| ТОГДА Документы.БанковскийСчетОрганизации.СтранаБанкаДляРасчетов
| ИНАЧЕ СтраныБанковКорреспондентовРФ.Ссылка
| КОНЕЦ КАК СтранаБанкаДляРасчетов,
| ВЫБОР
| КОГДА Документы.БанковскийСчетОрганизации.РучноеИзменениеРеквизитовБанка
| ТОГДА """"
| ИНАЧЕ ЕСТЬNULL(КлассификаторБанков.БИКРКЦ.Наименование, """")
| КОНЕЦ КАК НаименованиеРКЦБанка,
| ВЫБОР
| КОГДА Документы.БанковскийСчетОрганизации.РучноеИзменениеРеквизитовБанкаДляРасчетов
| ТОГДА """"
| ИНАЧЕ ЕСТЬNULL(КлассификаторБанковКорреспондентовРФ.БИКРКЦ.Наименование, """")
| КОНЕЦ КАК НаименованиеРКЦБанкаДляРасчетов,
| Документы.БанковскийСчетОрганизации.ТекстКорреспондента КАК БанковскийСчетТекстКорреспондента,
| Документы.ЦенаВключаетНДС КАК ЦенаВключаетНДС,
| Документы.Валюта КАК Валюта,
| Документы.Менеджер.ФизическоеЛицо КАК Менеджер,
| Документы.СуммаДокумента КАК СуммаКВозврату,
| ЛОЖЬ КАК ЧастичнаяОплата,
| """" КАК НазначениеПлатежа,
| 100 КАК ПроцентОплаты,
| """" КАК ДополнительнаяИнформация,
| Документы.СуммаДокумента КАК СуммаДокумента,
| Документы.Грузоотправитель КАК Грузоотправитель,
| Документы.Грузополучатель КАК Грузополучатель,
| Документы.ИдентификаторПлатежа КАК ИдентификаторПлатежа,
| ЛОЖЬ КАК СчетКВозврату
|ИЗ
| Документ.РеализацияТоваровУслуг КАК Документы
| ЛЕВОЕ СОЕДИНЕНИЕ ТаблицаОтветственныеЛица КАК ТаблицаОтветственныеЛица
| ПО Документы.Ссылка = ТаблицаОтветственныеЛица.Ссылка
| ЛЕВОЕ СОЕДИНЕНИЕ Справочник.КлассификаторБанков КАК КлассификаторБанков
| ПО Документы.БанковскийСчетОрганизации.Банк = КлассификаторБанков.Ссылка
| ЛЕВОЕ СОЕДИНЕНИЕ Справочник.СтраныМира КАК СтраныБанков
| ПО КлассификаторБанков.КодСтраны = СтраныБанков.Код
| ЛЕВОЕ СОЕДИНЕНИЕ Справочник.КлассификаторБанков КАК КлассификаторБанковКорреспондентовРФ
| ПО Документы.БанковскийСчетОрганизации.БанкДляРасчетов = КлассификаторБанковКорреспондентовРФ.Ссылка
| ЛЕВОЕ СОЕДИНЕНИЕ Справочник.СтраныМира КАК СтраныБанковКорреспондентовРФ
| ПО КлассификаторБанковКорреспондентовРФ.КодСтраны = СтраныБанковКорреспондентовРФ.Код
| ЛЕВОЕ СОЕДИНЕНИЕ Константы
| ПО ИСТИНА
|ГДЕ
| Документы.Ссылка В(&МассивОбъектов)
|
|УПОРЯДОЧИТЬ ПО
| Документы.МоментВремени
|;
|
|
|ВЫБРАТЬ
| ДанныеДокумента.Ссылка КАК Ссылка,
| ДанныеДокумента.НомерСтроки КАК НомерСтроки,
| ДанныеДокумента.ДатаПлатежа КАК ДатаПлатежа,
| 0 КАК ПроцентПлатежа,
| ДанныеДокумента.СуммаЗалогаЗаТару КАК СуммаПлатежа,
| ИСТИНА КАК ЭтоЗалогЗаТару
|
|ИЗ
| Документ.РеализацияТоваровУслуг.ЭтапыГрафикаОплаты КАК ДанныеДокумента
|
|ГДЕ
| ДанныеДокумента.Ссылка В(&МассивОбъектов)
| И ДанныеДокумента.СуммаЗалогаЗаТару > 0
|
|ОБЪЕДИНИТЬ ВСЕ
|
|ВЫБРАТЬ
| ДанныеДокумента.Ссылка КАК Ссылка,
| ДанныеДокумента.НомерСтроки КАК НомерСтроки,
| ДанныеДокумента.ДатаПлатежа КАК ДатаПлатежа,
|
| ДанныеДокумента.ПроцентПлатежа КАК ПроцентПлатежа,
|
| ДанныеДокумента.СуммаПлатежа - ДанныеДокумента.СуммаЗалогаЗаТару КАК СуммаПлатежа,
| ЛОЖЬ КАК ЭтоЗалогЗаТару
|
|ИЗ
| Документ.РеализацияТоваровУслуг.ЭтапыГрафикаОплаты КАК ДанныеДокумента
|
|ГДЕ
| ДанныеДокумента.Ссылка В(&МассивОбъектов)
|
|УПОРЯДОЧИТЬ ПО
| Ссылка,
| НомерСтроки
|;
|
|
|ВЫБРАТЬ
| Таблица.Ссылка КАК Ссылка,
|
| ВариантыКомплектацииНоменклатуры.Ссылка КАК ВариантКомплектацииНоменклатуры,
| ВариантыКомплектацииНоменклатуры.ВариантПредставленияНабораВПечатныхФормах КАК ВариантПредставленияНабораВПечатныхФормах,
| ВариантыКомплектацииНоменклатуры.ВариантРасчетаЦеныНабора КАК ВариантРасчетаЦеныНабора,
| Таблица.НоменклатураНабора КАК НоменклатураНабора,
| Таблица.ХарактеристикаНабора КАК ХарактеристикаНабора,
|
| Таблица.НомерСтроки КАК НомерСтроки,
| Таблица.Номенклатура КАК Номенклатура,
| Таблица.Характеристика КАК Характеристика,
| Таблица.Упаковка КАК Упаковка,
| Таблица.Количество КАК Количество,
| Таблица.КоличествоУпаковок КАК КоличествоУпаковок,
| ВЫБОР
| КОГДА &ОтображатьСкидки ТОГДА
| Таблица.Цена
| ИНАЧЕ Таблица.Сумма/Таблица.КоличествоУпаковок
| КОНЕЦ КАК Цена,
| Таблица.Сумма КАК Сумма,
| Таблица.СтавкаНДС КАК СтавкаНДС,
| Таблица.СуммаНДС КАК СуммаНДС,
| ВЫБОР
| КОГДА
| Таблица.Ссылка.ВернутьМногооборотнуюТару
| И Таблица.Номенклатура.ТипНоменклатуры = ЗНАЧЕНИЕ(Перечисление.ТипыНоменклатуры.МногооборотнаяТара)
| ТОГДА
| ИСТИНА
| ИНАЧЕ
| ЛОЖЬ
| КОНЕЦ КАК ЭтоВозвратнаяТара,
| ВЫБОР
| КОГДА &ОтображатьСкидки ТОГДА
| Таблица.СуммаРучнойСкидки + Таблица.СуммаАвтоматическойСкидки
| ИНАЧЕ 0
| КОНЕЦ КАК СуммаСкидки,
| Таблица.Сумма + Таблица.СуммаРучнойСкидки + Таблица.СуммаАвтоматическойСкидки КАК СуммаБезСкидки
|ПОМЕСТИТЬ Товары
|ИЗ
| Документ.РеализацияТоваровУслуг.Товары КАК Таблица
|
| ЛЕВОЕ СОЕДИНЕНИЕ Справочник.ВариантыКомплектацииНоменклатуры КАК ВариантыКомплектацииНоменклатуры
| ПО ВариантыКомплектацииНоменклатуры.Владелец = Таблица.НоменклатураНабора
| И ВариантыКомплектацииНоменклатуры.Характеристика = Таблица.ХарактеристикаНабора
| И ВариантыКомплектацииНоменклатуры.Основной
|
|ГДЕ
| Таблица.Ссылка В(&МассивОбъектов)
| И (Таблица.Номенклатура.ТипНоменклатуры <> ЗНАЧЕНИЕ(Перечисление.ТипыНоменклатуры.МногооборотнаяТара)
| ИЛИ Таблица.Номенклатура.ТипНоменклатуры = ЗНАЧЕНИЕ(Перечисление.ТипыНоменклатуры.МногооборотнаяТара)
| И (НЕ Таблица.Ссылка.ВернутьМногооборотнуюТару ИЛИ Таблица.Ссылка.ТребуетсяЗалогЗаТару))
|;
|
|
|ВЫБРАТЬ
| Таблица.Ссылка КАК Ссылка,
| Таблица.НоменклатураНабора КАК НоменклатураНабора,
| Таблица.ХарактеристикаНабора КАК ХарактеристикаНабора,
| МИНИМУМ(Таблица.НомерСтроки) КАК НомерСтроки,
| СУММА(Таблица.Сумма) КАК Сумма,
| СУММА(Таблица.СуммаНДС) КАК СуммаНДС,
| СУММА(Таблица.СуммаСкидки) КАК СуммаСкидки,
| СУММА(Таблица.СуммаБезСкидки) КАК СуммаБезСкидки
|ПОМЕСТИТЬ ВременнаяТаблицаНаборыПодготовка
|ИЗ
| Товары КАК Таблица
|ГДЕ
| Таблица.НоменклатураНабора <> ЗНАЧЕНИЕ(Справочник.Номенклатура.ПустаяСсылка)
|
|СГРУППИРОВАТЬ ПО
| Таблица.Ссылка,
| Таблица.НоменклатураНабора,
| Таблица.ХарактеристикаНабора
|;
|
|
|ВЫБРАТЬ РАЗЛИЧНЫЕ
| ТаблицаТоваров.Ссылка КАК Ссылка
|ПОМЕСТИТЬ ТоварыРазличные
|ИЗ
| Товары КАК ТаблицаТоваров
|;
|
|
|ВЫБРАТЬ
| Товары.Ссылка КАК Ссылка,
| Товары.ВариантКомплектацииНоменклатуры КАК ВариантКомплектацииНоменклатуры,
| Товары.ВариантПредставленияНабораВПечатныхФормах КАК ВариантПредставленияНабораВПечатныхФормах,
| Товары.ВариантРасчетаЦеныНабора КАК ВариантРасчетаЦеныНабора,
| Товары.НоменклатураНабора,
| Товары.ХарактеристикаНабора,
| Товары.Номенклатура,
| Товары.Характеристика,
| ВЫБОР КОГДА Товары.ВариантКомплектацииНоменклатуры.НоменклатураОсновногоКомпонента = Товары.Номенклатура
| И Товары.ВариантКомплектацииНоменклатуры.ХарактеристикаОсновногоКомпонента = Товары.Характеристика ТОГДА
| ИСТИНА
| ИНАЧЕ
| ЛОЖЬ
| КОНЕЦ КАК ОсновнаяКомплектующая,
| 0 КАК КоличествоПоУмолчанию,
| Товары.Количество КАК Количество
|ПОМЕСТИТЬ ВременнаяТаблицаНаборыДополнительноЧастьПервая
|ИЗ
| Товары КАК Товары
|ГДЕ
| Товары.НоменклатураНабора <> ЗНАЧЕНИЕ(Справочник.Номенклатура.ПустаяСсылка)
|
|ОБЪЕДИНИТЬ ВСЕ
|
|ВЫБРАТЬ
| ТоварыРазличные.Ссылка КАК Ссылка,
| ВариантыКомплектацииНоменклатурыТовары.Ссылка КАК ВариантКомплектацииНоменклатуры,
| ВариантыКомплектацииНоменклатурыТовары.Ссылка.ВариантПредставленияНабораВПечатныхФормах КАК ВариантПредставленияНабораВПечатныхФормах,
| ВариантыКомплектацииНоменклатурыТовары.Ссылка.ВариантРасчетаЦеныНабора КАК ВариантРасчетаЦеныНабора,
| ВариантыКомплектацииНоменклатурыТовары.Ссылка.Владелец КАК НоменклатураНабора,
| ВариантыКомплектацииНоменклатурыТовары.Ссылка.Характеристика КАК ХарактеристикаНабора,
| ВариантыКомплектацииНоменклатурыТовары.Номенклатура КАК Номенклатура,
| ВариантыКомплектацииНоменклатурыТовары.Характеристика КАК Характеристика,
| ЛОЖЬ КАК ОсновнаяКомплектующая,
| СУММА(ВариантыКомплектацииНоменклатурыТовары.Количество) КАК КоличествоПоУмолчанию,
| 0 КАК Количество
|ИЗ
| Справочник.ВариантыКомплектацииНоменклатуры.Товары КАК ВариантыКомплектацииНоменклатурыТовары
| ЛЕВОЕ СОЕДИНЕНИЕ ТоварыРазличные КАК ТоварыРазличные
| ПО ИСТИНА
|ГДЕ
| ВариантыКомплектацииНоменклатурыТовары.Ссылка В (ВЫБРАТЬ Т.ВариантКомплектацииНоменклатуры ИЗ Товары КАК Т)
|
|СГРУППИРОВАТЬ ПО
| ТоварыРазличные.Ссылка,
| ВариантыКомплектацииНоменклатурыТовары.Ссылка,
| ВариантыКомплектацииНоменклатурыТовары.Ссылка.Владелец,
| ВариантыКомплектацииНоменклатурыТовары.Ссылка.Характеристика,
| ВариантыКомплектацииНоменклатурыТовары.Номенклатура,
| ВариантыКомплектацииНоменклатурыТовары.Характеристика,
| ВариантыКомплектацииНоменклатурыТовары.Упаковка
|;
|
|
|ВЫБРАТЬ
| Таблица.Ссылка,
| Таблица.ВариантКомплектацииНоменклатуры,
| Таблица.ВариантРасчетаЦеныНабора,
| Таблица.ВариантПредставленияНабораВПечатныхФормах,
| Таблица.НоменклатураНабора,
| Таблица.ХарактеристикаНабора,
| Таблица.Номенклатура,
| Таблица.Характеристика,
| МАКСИМУМ(Таблица.ОсновнаяКомплектующая) КАК ОсновнаяКомплектующая,
| СУММА(Таблица.КоличествоПоУмолчанию) КАК КоличествоПоУмолчанию,
| СУММА(Таблица.Количество) КАК Количество
|ПОМЕСТИТЬ ВременнаяТаблицаНаборыДополнительноЧастьВторая
|ИЗ
| ВременнаяТаблицаНаборыДополнительноЧастьПервая КАК Таблица
|
|СГРУППИРОВАТЬ ПО
| Таблица.Ссылка,
| Таблица.ВариантКомплектацииНоменклатуры,
| Таблица.ВариантРасчетаЦеныНабора,
| Таблица.ВариантПредставленияНабораВПечатныхФормах,
| Таблица.НоменклатураНабора,
| Таблица.ХарактеристикаНабора,
| Таблица.Номенклатура,
| Таблица.Характеристика
|;
|
|
|ВЫБРАТЬ
| Результат.Ссылка,
| Результат.ВариантКомплектацииНоменклатуры,
| Результат.ВариантРасчетаЦеныНабора,
| Результат.ВариантПредставленияНабораВПечатныхФормах,
| Результат.НоменклатураНабора,
| Результат.ХарактеристикаНабора,
| ВЫРАЗИТЬ(МИНИМУМ(ВЫБОР
| КОГДА Результат.КоличествоПоУмолчанию <> 0 И Результат.ОсновнаяКомплектующая
| ТОГДА Результат.Количество / Результат.КоличествоПоУмолчанию
| ИНАЧЕ null
| КОНЕЦ) + 0.5 КАК Число(10,0)) - 1 КАК Количество
|ПОМЕСТИТЬ ВременнаяТаблицаНаборыДополнительно
|ИЗ
| ВременнаяТаблицаНаборыДополнительноЧастьВторая КАК Результат
|СГРУППИРОВАТЬ ПО
| Результат.Ссылка,
| Результат.ВариантКомплектацииНоменклатуры,
| Результат.ВариантРасчетаЦеныНабора,
| Результат.ВариантПредставленияНабораВПечатныхФормах,
| Результат.НоменклатураНабора,
| Результат.ХарактеристикаНабора
|;
|
|
|ВЫБРАТЬ
| ВременнаяТаблицаНаборыДополнительно.ВариантКомплектацииНоменклатуры,
| ВЫБОР КОГДА Таблица.Ссылка.ХозяйственнаяОперация = ЗНАЧЕНИЕ(Перечисление.ХозяйственныеОперации.ПередачаНаКомиссию) ТОГДА
| ВЫБОР КОГДА ВременнаяТаблицаНаборыДополнительно.ВариантПредставленияНабораВПечатныхФормах = ЗНАЧЕНИЕ(Перечисление.ВариантыПредставленияНаборовВПечатныхФормах.ТолькоНабор) ТОГДА
| ЗНАЧЕНИЕ(Перечисление.ВариантыПредставленияНаборовВПечатныхФормах.НаборИКомплектующие)
| ИНАЧЕ
| ВременнаяТаблицаНаборыДополнительно.ВариантПредставленияНабораВПечатныхФормах
| КОНЕЦ
| ИНАЧЕ
| ВременнаяТаблицаНаборыДополнительно.ВариантПредставленияНабораВПечатныхФормах
| КОНЕЦ КАК ВариантПредставленияНабораВПечатныхФормах,
| ВЫБОР КОГДА Таблица.Ссылка.ХозяйственнаяОперация = ЗНАЧЕНИЕ(Перечисление.ХозяйственныеОперации.ПередачаНаКомиссию) ТОГДА
| ВЫБОР КОГДА
| ВЫБОР КОГДА ВременнаяТаблицаНаборыДополнительно.ВариантПредставленияНабораВПечатныхФормах = ЗНАЧЕНИЕ(Перечисление.ВариантыПредставленияНаборовВПечатныхФормах.ТолькоНабор) ТОГДА
| ЗНАЧЕНИЕ(Перечисление.ВариантыПредставленияНаборовВПечатныхФормах.НаборИКомплектующие)
| ИНАЧЕ
| ВременнаяТаблицаНаборыДополнительно.ВариантПредставленияНабораВПечатныхФормах
| КОНЕЦ = ЗНАЧЕНИЕ(Перечисление.ВариантыПредставленияНаборовВПечатныхФормах.НаборИКомплектующие)
| И ВременнаяТаблицаНаборыДополнительно.ВариантРасчетаЦеныНабора В (ЗНАЧЕНИЕ(Перечисление.ВариантыРасчетаЦенНаборов.ЦенаЗадаетсяЗаНаборРаспределяетсяПоЦенам),ЗНАЧЕНИЕ(Перечисление.ВариантыРасчетаЦенНаборов.ЦенаЗадаетсяЗаНаборРаспределяетсяПоДолям)) ТОГДА
| ЗНАЧЕНИЕ(Перечисление.ВариантыРасчетаЦенНаборов.РассчитываетсяИзЦенКомплектующих)
| ИНАЧЕ
| ВременнаяТаблицаНаборыДополнительно.ВариантРасчетаЦеныНабора
| КОНЕЦ
| ИНАЧЕ
| ВременнаяТаблицаНаборыДополнительно.ВариантРасчетаЦеныНабора
| КОНЕЦ КАК ВариантРасчетаЦеныНабора,
| Таблица.Ссылка КАК Ссылка,
| Таблица.НоменклатураНабора КАК НоменклатураНабора,
| Таблица.ХарактеристикаНабора КАК ХарактеристикаНабора,
| Таблица.НомерСтроки КАК НомерСтроки,
| ЕСТЬNULL(ВременнаяТаблицаНаборыДополнительно.Количество, 1) КАК КоличествоУпаковок,
| ЕСТЬNULL(ВременнаяТаблицаНаборыДополнительно.Количество, 1) КАК Количество,
| Таблица.Сумма КАК Сумма,
| Таблица.СуммаНДС КАК СуммаНДС,
| Таблица.СуммаСкидки КАК СуммаСкидки,
| Таблица.СуммаБезСкидки КАК СуммаБезСкидки
|ПОМЕСТИТЬ ВременнаяТаблицаНаборы
|ИЗ
| ВременнаяТаблицаНаборыПодготовка КАК Таблица
| ЛЕВОЕ СОЕДИНЕНИЕ ВременнаяТаблицаНаборыДополнительно КАК ВременнаяТаблицаНаборыДополнительно
| ПО Таблица.НоменклатураНабора = ВременнаяТаблицаНаборыДополнительно.НоменклатураНабора
| И Таблица.ХарактеристикаНабора = ВременнаяТаблицаНаборыДополнительно.ХарактеристикаНабора
| И Таблица.Ссылка = ВременнаяТаблицаНаборыДополнительно.Ссылка
|;
|
|
|ВЫБРАТЬ
|
| Товары.Ссылка КАК Ссылка,
| Товары.ВариантПредставленияНабораВПечатныхФормах КАК ВариантПредставленияНабораВПечатныхФормах,
| Товары.ВариантРасчетаЦеныНабора КАК ВариантРасчетаЦеныНабора,
| Товары.НоменклатураНабора КАК НоменклатураНабора,
| ЕСТЬNULL(НоменклатураНабораПредставления.НаименованиеПолное, Товары.НоменклатураНабора.НаименованиеПолное) КАК НоменклатураНабораНаименованиеПолное,
| Товары.ХарактеристикаНабора КАК ХарактеристикаНабора,
| ЕСТЬNULL(ХарактеристикиНоменклатурыНабораПредставления.НаименованиеПолное, ЕСТЬNULL(Товары.ХарактеристикаНабора.НаименованиеПолное, """")) КАК ХарактеристикаНабораНаименованиеПолное,
| Товары.ЭтоНабор КАК ЭтоНабор,
| Товары.ЭтоКомплектующие КАК ЭтоКомплектующие,
|
| Товары.НомерСтроки КАК НомерСтроки,
| Товары.Номенклатура КАК Номенклатура,
| Товары.Номенклатура.Код КАК Код,
| Товары.Номенклатура.Артикул КАК Артикул,
| ЕСТЬNULL(НоменклатураПредставления.НаименованиеПолное, Товары.Номенклатура.НаименованиеПолное) КАК НаименованиеПолное,
| &ТекстЗапросаНаименованиеЕдиницыИзмерения КАК ЕдиницаИзмерения,
| Товары.КоличествоУпаковок КАК Количество,
| Товары.Цена КАК Цена,
| Товары.Сумма КАК Сумма,
| Товары.СтавкаНДС КАК СтавкаНДС,
| Товары.СуммаНДС КАК СуммаНДС,
| НЕОПРЕДЕЛЕНО КАК ВидЦеныИсполнителя,
| ЕСТЬNULL(ХарактеристикиНоменклатурыПредставления.НаименованиеПолное, ЕСТЬNULL(Товары.Характеристика.НаименованиеПолное, """")) КАК Характеристика,
| ВЫБОР КОГДА ЕСТЬNULL(&ТекстЗапросаКоэффициентУпаковки, 1) = 1 ТОГДА
| НЕОПРЕДЕЛЕНО
| ИНАЧЕ
| Товары.Упаковка.Наименование
| КОНЕЦ КАК Упаковка,
| Товары.СуммаСкидки КАК СуммаСкидки,
| Товары.СуммаБезСкидки КАК СуммаБезСкидки,
| Товары.ЭтоВозвратнаяТара КАК ЭтоВозвратнаяТара
|ИЗ (
| ВЫБРАТЬ
| Таблица.Ссылка,
| ВЫБОР КОГДА ЕСТЬNULL(ВременнаяТаблицаНаборы.НомерСтроки, 0) <> 0 ТОГДА
| ВременнаяТаблицаНаборы.ВариантПредставленияНабораВПечатныхФормах
| ИНАЧЕ
| ЗНАЧЕНИЕ(Перечисление.ВариантыПредставленияНаборовВПечатныхФормах.ПустаяСсылка)
| КОНЕЦ КАК ВариантПредставленияНабораВПечатныхФормах,
|
| ВЫБОР КОГДА ЕСТЬNULL(ВременнаяТаблицаНаборы.НомерСтроки, 0) <> 0 ТОГДА
| ВременнаяТаблицаНаборы.ВариантРасчетаЦеныНабора
| ИНАЧЕ
| ЗНАЧЕНИЕ(Перечисление.ВариантыРасчетаЦенНаборов.ПустаяСсылка)
| КОНЕЦ КАК ВариантРасчетаЦеныНабора,
| Таблица.НоменклатураНабора,
| Таблица.ХарактеристикаНабора,
| ВЫБОР КОГДА ЕСТЬNULL(ВременнаяТаблицаНаборы.НомерСтроки, 0) <> 0 ТОГДА
| ИСТИНА
| ИНАЧЕ
| ЛОЖЬ
| КОНЕЦ КАК ЭтоКомплектующие,
| ЛОЖЬ КАК ЭтоНабор,
| ВЫБОР КОГДА ЕСТЬNULL(ВременнаяТаблицаНаборы.НомерСтроки, 0) <> 0 ТОГДА
| ВременнаяТаблицаНаборы.НомерСтроки
| ИНАЧЕ
| Таблица.НомерСтроки
| КОНЕЦ КАК НомерСтроки,
| Таблица.Номенклатура,
| Таблица.Количество,
| Таблица.КоличествоУпаковок,
| Таблица.Цена,
| Таблица.Сумма,
| Таблица.СтавкаНДС,
| Таблица.СуммаНДС,
| Таблица.Характеристика,
| Таблица.Упаковка,
| Таблица.СуммаСкидки,
| Таблица.СуммаБезСкидки,
| Таблица.ЭтоВозвратнаяТара
| ИЗ
| Товары КАК Таблица
| ЛЕВОЕ СОЕДИНЕНИЕ ВременнаяТаблицаНаборы КАК ВременнаяТаблицаНаборы
| ПО ВременнаяТаблицаНаборы.НоменклатураНабора = Таблица.НоменклатураНабора
| И ВременнаяТаблицаНаборы.ХарактеристикаНабора = Таблица.ХарактеристикаНабора
| И ВременнаяТаблицаНаборы.Ссылка = Таблица.Ссылка
|
| ГДЕ
| Таблица.НоменклатураНабора = ЗНАЧЕНИЕ(Справочник.Номенклатура.ПустаяСсылка)
| ИЛИ (Таблица.НоменклатураНабора <> ЗНАЧЕНИЕ(Справочник.Номенклатура.ПустаяСсылка)
| И ВременнаяТаблицаНаборы.ВариантПредставленияНабораВПечатныхФормах В (ЗНАЧЕНИЕ(Перечисление.ВариантыПредставленияНаборовВПечатныхФормах.ТолькоКомплектующие),
| ЗНАЧЕНИЕ(Перечисление.ВариантыПредставленияНаборовВПечатныхФормах.НаборИКомплектующие)))
|
| ОБЪЕДИНИТЬ ВСЕ
|
| ВЫБРАТЬ
| ВременнаяТаблицаНаборы.Ссылка,
| ВременнаяТаблицаНаборы.ВариантПредставленияНабораВПечатныхФормах,
| ВременнаяТаблицаНаборы.ВариантРасчетаЦеныНабора КАК ВариантРасчетаЦеныНабора,
| ВременнаяТаблицаНаборы.НоменклатураНабора,
| ВременнаяТаблицаНаборы.ХарактеристикаНабора,
| ЛОЖЬ КАК ЭтоКомплектующие,
| ИСТИНА КАК ЭтоНабор,
| ВременнаяТаблицаНаборы.НомерСтроки,
| ВременнаяТаблицаНаборы.НоменклатураНабора,
| ВременнаяТаблицаНаборы.Количество,
| ВременнаяТаблицаНаборы.КоличествоУпаковок,
| ВЫБОР
| КОГДА &ОтображатьСкидки ТОГДА
| ВЫБОР КОГДА ЕСТЬNULL(ВременнаяТаблицаНаборы.КоличествоУпаковок, 1) <> 0 ТОГДА
| (ВременнаяТаблицаНаборы.СуммаБезСкидки) / ЕСТЬNULL(ВременнаяТаблицаНаборы.КоличествоУпаковок, 1)
| ИНАЧЕ
| 0
| КОНЕЦ
| ИНАЧЕ
| ВЫБОР КОГДА ЕСТЬNULL(ВременнаяТаблицаНаборы.КоличествоУпаковок, 1) <> 0 ТОГДА
| (ВременнаяТаблицаНаборы.Сумма) / ЕСТЬNULL(ВременнаяТаблицаНаборы.КоличествоУпаковок, 1)
| ИНАЧЕ
| 0
| КОНЕЦ
| КОНЕЦ КАК Цена,
| ВременнаяТаблицаНаборы.Сумма КАК Сумма,
| ВременнаяТаблицаНаборы.НоменклатураНабора.СтавкаНДС,
| ВременнаяТаблицаНаборы.СуммаНДС,
| ВременнаяТаблицаНаборы.ХарактеристикаНабора,
| ЗНАЧЕНИЕ(Справочник.УпаковкиЕдиницыИзмерения.ПустаяСсылка) КАК Упаковка,
| ВременнаяТаблицаНаборы.СуммаСкидки,
| ВременнаяТаблицаНаборы.СуммаБезСкидки,
| ЛОЖЬ
| ИЗ
| ВременнаяТаблицаНаборы КАК ВременнаяТаблицаНаборы
| ГДЕ
| ВременнаяТаблицаНаборы.ВариантПредставленияНабораВПечатныхФормах В (ЗНАЧЕНИЕ(Перечисление.ВариантыПредставленияНаборовВПечатныхФормах.ТолькоНабор),
| ЗНАЧЕНИЕ(Перечисление.ВариантыПредставленияНаборовВПечатныхФормах.НаборИКомплектующие))
|) КАК Товары
| ЛЕВОЕ СОЕДИНЕНИЕ Справочник.Номенклатура.Представления КАК НоменклатураПредставления
| ПО (Товары.Номенклатура = НоменклатураПредставления.Ссылка
| И НоменклатураПредставления.КодЯзыка = &КодЯзыка)
| ЛЕВОЕ СОЕДИНЕНИЕ Справочник.ХарактеристикиНоменклатуры.Представления КАК ХарактеристикиНоменклатурыПредставления
| ПО (Товары.Характеристика = ХарактеристикиНоменклатурыПредставления.Ссылка
| И ХарактеристикиНоменклатурыПредставления.КодЯзыка = &КодЯзыка)
| ЛЕВОЕ СОЕДИНЕНИЕ Справочник.Номенклатура.Представления КАК НоменклатураНабораПредставления
| ПО (Товары.НоменклатураНабора = НоменклатураНабораПредставления.Ссылка
| И НоменклатураНабораПредставления.КодЯзыка = &КодЯзыка)
| ЛЕВОЕ СОЕДИНЕНИЕ Справочник.ХарактеристикиНоменклатуры.Представления КАК ХарактеристикиНоменклатурыНабораПредставления
| ПО (Товары.ХарактеристикаНабора = ХарактеристикиНоменклатурыНабораПредставления.Ссылка
| И ХарактеристикиНоменклатурыНабораПредставления.КодЯзыка = &КодЯзыка)
|
|УПОРЯДОЧИТЬ ПО
| Товары.НомерСтроки,
| ЭтоНабор УБЫВ
|";
Запрос.Текст = СтрЗаменить(Запрос.Текст, "&ТекстЗапросаКоэффициентУпаковки",
Справочники.УпаковкиЕдиницыИзмерения.ТекстЗапросаКоэффициентаУпаковки(
"Товары.Упаковка",
"Товары.Номенклатура"));
Если ЗначениеЗаполнено(КодЯзыка)
И Не КодЯзыка = ОбщегоНазначения.КодОсновногоЯзыка() Тогда
НаименованиеУпаковкиЕдиницыИзмерения = "МеждународноеСокращение";
Иначе
НаименованиеУпаковкиЕдиницыИзмерения = "Наименование";
КонецЕсли;
Запрос.Текст = СтрЗаменить(Запрос.Текст, "&ТекстЗапросаНаименованиеЕдиницыИзмерения",
Справочники.УпаковкиЕдиницыИзмерения.ТекстЗапросаЗначениеРеквизитаЕдиницыИзмерения(
НаименованиеУпаковкиЕдиницыИзмерения,
"Товары.Упаковка",
"Товары.Номенклатура"));
Запрос.УстановитьПараметр("МассивОбъектов", МассивОбъектов);
Запрос.УстановитьПараметр("ОтображатьСкидки", ОтображатьСкидки);
Запрос.УстановитьПараметр("КодЯзыка", КодЯзыка);
ПакетРезультатовЗапроса = Запрос.ВыполнитьПакет();
СтруктураДанныхДляПечати = Новый Структура;
СтруктураДанныхДляПечати.Вставить("РезультатПоШапке", ПакетРезультатовЗапроса[0]);
СтруктураДанныхДляПечати.Вставить("РезультатПоЭтапамОплаты", ПакетРезультатовЗапроса[1]);
СтруктураДанныхДляПечати.Вставить("РезультатПоТабличнойЧасти", ПакетРезультатовЗапроса[ПакетРезультатовЗапроса.Количество() - 1]);
Возврат СтруктураДанныхДляПечати;
КонецФункции
Процедура ЗаполнитьСтруктуруПолучателейПечатныхФорм(СтруктураДанныхОбъектаПечати) Экспорт
СтруктураДанныхОбъектаПечати.ОсновнойПолучатель = "Партнер";
СтруктураДанныхОбъектаПечати.МассивРеквизитовПолучателей.Добавить("Партнер");
Если ПолучитьФункциональнуюОпцию("ИспользоватьПартнеровИКонтрагентов") Тогда
СтруктураДанныхОбъектаПечати.МассивРеквизитовПолучателей.Добавить("Контрагент");
КонецЕсли;
СтруктураДанныхОбъектаПечати.МассивРеквизитовПолучателей.Добавить("КонтактноеЛицо");
СтруктураДанныхОбъектаПечати.МассивРеквизитовПолучателей.Добавить("Грузоотправитель");
СтруктураДанныхОбъектаПечати.МассивРеквизитовПолучателей.Добавить("Грузополучатель");
Если ПолучитьФункциональнуюОпцию("ИспользоватьУправлениеДоставкой") Тогда
СтруктураДанныхОбъектаПечати.МассивРеквизитовПолучателей.Добавить("ПеревозчикПартнер");
КонецЕсли;
КонецПроцедуры
Процедура УстановитьПараметр(ОбластьМакета, ИмяПараметра, ЗначениеПараметра)
ОбластьМакета.Параметры.Заполнить(Новый Структура(ИмяПараметра, ЗначениеПараметра));
КонецПроцедуры
Функция ДобавлятьКомандыПечатиКомплектаДокументов() Экспорт
Возврат Не ПраваПользователяПовтИсп.ЭтоПартнер();
КонецФункции
#КонецОбласти
#Область ШаблоныСообщений
Процедура ПриПодготовкеШаблонаСообщения(Реквизиты, Вложения, ДополнительныеПараметры) Экспорт
КонецПроцедуры
Процедура ПриФормированииСообщения(Сообщение, ПредметСообщения, ДополнительныеПараметры) Экспорт
КонецПроцедуры
Процедура ПриЗаполненииТелефоновПолучателейВСообщении(ПолучателиSMS, ПредметСообщения) Экспорт
КонецПроцедуры
Процедура ПриЗаполненииПочтыПолучателейВСообщении(ПолучателиПисьма, ПредметСообщения) Экспорт
КонецПроцедуры
#КонецОбласти
#Область Прочее
Функция ПустыеЗначенияЗаказов() Экспорт
ПустыеЗначенияЗаказов = Новый Массив;
ПустыеЗначенияЗаказов.Добавить(Неопределено);
ПустыеЗначенияЗаказов.Добавить(Документы.ЗаказКлиента.ПустаяСсылка());
ПустыеЗначенияЗаказов.Добавить(Документы.ЗаявкаНаВозвратТоваровОтКлиента.ПустаяСсылка());
Возврат ПустыеЗначенияЗаказов;
КонецФункции
Функция СтруктураОснования(Объект, ПорядокРасчетов)
СтруктураОснование = Новый Структура;
СтруктураОснование.Вставить("Основание");
СтруктураОснование.Вставить("ОснованиеНомер");
СтруктураОснование.Вставить("ОснованиеДата");
Если (ПорядокРасчетов = Перечисления.ПорядокРасчетов.ПоДоговорамКонтрагентов
Или ПорядокРасчетов = Перечисления.ПорядокРасчетов.ПоДоговорамНакладным)
И ЗначениеЗаполнено(Объект.Договор) Тогда
Запрос = Новый Запрос(
"ВЫБРАТЬ РАЗРЕШЕННЫЕ
| ДоговорыКонтрагентов.НаименованиеДляПечати КАК Основание,
| ДоговорыКонтрагентов.Дата КАК ОснованиеДата,
| ДоговорыКонтрагентов.Номер КАК ОснованиеНомер
|ИЗ
| Справочник.ДоговорыКонтрагентов КАК ДоговорыКонтрагентов
|ГДЕ
| ДоговорыКонтрагентов.Ссылка = &Ссылка");
Запрос.УстановитьПараметр("Ссылка", Объект.Договор);
Выборка = Запрос.Выполнить().Выбрать();
Если Выборка.Следующий() Тогда
СтруктураОснование.Основание = СокрЛП(Выборка.Основание);
СтруктураОснование.ОснованиеДата = Выборка.ОснованиеДата;
СтруктураОснование.ОснованиеНомер = СокрЛП(Выборка.ОснованиеНомер);
КонецЕсли;
ИначеЕсли (ПорядокРасчетов = Перечисления.ПорядокРасчетов.ПоЗаказам
Или ПорядокРасчетов = Перечисления.ПорядокРасчетов.ПоЗаказамНакладным)
И Объект.РеализацияПоЗаказам Тогда
МассивЗаказов = Неопределено;
Если ЗначениеЗаполнено(Объект.ЗаказКлиента) Тогда
МассивЗаказов = Новый Массив;
МассивЗаказов.Добавить(Объект.ЗаказКлиента);
ИначеЕсли Объект.Товары.Количество() <> 0 Тогда
Если ТипЗнч(Объект) = Тип("Структура") Тогда
МассивЗаказов = Объект.Товары.ВыгрузитьКолонку("ЗаказКлиента");
Иначе
МассивЗаказов = Объект.Товары.Выгрузить(,"ЗаказКлиента").ВыгрузитьКолонку("ЗаказКлиента");
КонецЕсли;
КонецЕсли;
Если МассивЗаказов <> Неопределено Тогда
Запрос = Новый Запрос(
"ВЫБРАТЬ РАЗРЕШЕННЫЕ
| ЗаказыКлиентов.НомерПоДаннымКлиента КАК НомерПоДаннымКлиента,
| ЗаказыКлиентов.ДатаПоДаннымКлиента КАК ДатаПоДаннымКлиента,
| ЗаказыКлиентов.Номер КАК Номер,
| ЗаказыКлиентов.Дата КАК Дата,
| &СинонимЗаказа КАК Синоним
|ИЗ
| Документ.ЗаказКлиента КАК ЗаказыКлиентов
|ГДЕ
| ЗаказыКлиентов.Ссылка В(&МассивЗаказов)
|
|ОБЪЕДИНИТЬ ВСЕ
|
|ВЫБРАТЬ
| NULL КАК НомерПоДаннымКлиента,
| NULL КАК ДатаПоДаннымКлиента,
| ЗаявкиНаВозврат.Номер,
| ЗаявкиНаВозврат.Дата,
| &СинонимЗаявки
|ИЗ
| Документ.ЗаявкаНаВозвратТоваровОтКлиента КАК ЗаявкиНаВозврат
|ГДЕ
| ЗаявкиНаВозврат.Ссылка В(&МассивЗаказов)
|
|ОБЪЕДИНИТЬ ВСЕ
|
|ВЫБРАТЬ
| NULL КАК НомерПоДаннымКлиента,
| NULL КАК ДатаПоДаннымКлиента,
| ОтгрузкаТоваров.Номер,
| ОтгрузкаТоваров.Дата,
| &СинонимОтгрузкиТоваров
|ИЗ
| Документ.ОтгрузкаТоваровКлиенту КАК ОтгрузкаТоваров
|ГДЕ
| ОтгрузкаТоваров.Ссылка В(&МассивЗаказов)
|
|ОБЪЕДИНИТЬ ВСЕ
|
|ВЫБРАТЬ
| NULL КАК НомерПоДаннымКлиента,
| NULL КАК ДатаПоДаннымКлиента,
| ПервичныйДокумент.Номер,
| ПервичныйДокумент.Дата,
| &СинонимОтгрузкиТоваров
|ИЗ
| Документ.ПервичныйДокумент КАК ПервичныйДокумент
|ГДЕ
| ПервичныйДокумент.Ссылка В(&МассивЗаказов)
|");
Запрос.УстановитьПараметр("МассивЗаказов", МассивЗаказов);
Запрос.УстановитьПараметр("СинонимЗаказа", НСтр("ru='Заказ клиента'", ОбщегоНазначения.КодОсновногоЯзыка()));
Запрос.УстановитьПараметр("СинонимЗаявки", НСтр("ru='Заявка на замену'", ОбщегоНазначения.КодОсновногоЯзыка()));
Запрос.УстановитьПараметр("СинонимОтгрузкиТоваров", НСтр("ru='Отгрузка товаров клиенту'", ОбщегоНазначения.КодОсновногоЯзыка()));
Выборка = Запрос.Выполнить().Выбрать();
ТекстПоЗаказам = "";
ОдноОснование = Выборка.Количество() = 1;
Пока Выборка.Следующий() Цикл
Если ЗначениеЗаполнено(Выборка.НомерПоДаннымКлиента) И ЗначениеЗаполнено(Выборка.ДатаПоДаннымКлиента) Тогда
ТекстПоЗаказам = ТекстПоЗаказам + ", " +
СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
НСтр("ru = '%1 № %2 от %3'", ОбщегоНазначения.КодОсновногоЯзыка()),
Выборка.Синоним, Выборка.НомерПоДаннымКлиента, Формат(Выборка.ДатаПоДаннымКлиента, "ДЛФ=DD"));
ДатаПоЗаказам = Выборка.ДатаПоДаннымКлиента;
НомерПоЗаказам = Выборка.НомерПоДаннымКлиента;
Иначе
НомерНаПечать = ПрефиксацияОбъектовКлиентСервер.НомерНаПечать(Выборка.Номер);
ЗаголовокДокумента = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
НСтр("ru = '%1 № %2 от %3'", ОбщегоНазначения.КодОсновногоЯзыка()),
Выборка.Синоним, НомерНаПечать, Формат(Выборка.Дата, "ДЛФ=DD"));
ТекстПоЗаказам = ТекстПоЗаказам + ", " + ЗаголовокДокумента;
ДатаПоЗаказам = Выборка.Дата;
НомерПоЗаказам = ?(ОдноОснование,ПрефиксацияОбъектовКлиентСервер.НомерНаПечать(Выборка.Номер),"");
КонецЕсли;
КонецЦикла;
СтруктураОснование.Основание = СокрЛП(Сред(ТекстПоЗаказам, 3));
СтруктураОснование.ОснованиеДата = ?(ОдноОснование, ДатаПоЗаказам, "");
СтруктураОснование.ОснованиеНомер = НомерПоЗаказам;
КонецЕсли;
КонецЕсли;
Возврат СтруктураОснование;
КонецФункции
Функция ТекстЗапросаГрафикОплаты()
Возврат "
|ВЫБРАТЬ
| ЭтапыГрафикаОплаты.Ссылка КАК Документ,
| ЭтапыГрафикаОплаты.НомерСтроки КАК НомерСтроки,
| ЭтапыГрафикаОплаты.ВариантОплаты КАК ВариантОплаты,
| ЭтапыГрафикаОплаты.ДатаПлатежа КАК ДатаПлатежа,
| ЭтапыГрафикаОплаты.СуммаПлатежа КАК СуммаПлатежа
|ИЗ
| Документ.РеализацияТоваровУслуг.ЭтапыГрафикаОплаты КАК ЭтапыГрафикаОплаты
| ВНУТРЕННЕЕ СОЕДИНЕНИЕ ОбъектыРасчетов КАК ОбъектыРасчетов
| ПО (ОбъектыРасчетов.ОбъектРасчетов = ЭтапыГрафикаОплаты.Ссылка)
| И ОбъектыРасчетов.ТребуетсяГрафик";
КонецФункции
Функция ТекстЗапросаВТТоварыРаспоряжениеНакладнаяОтгружено()
Возврат "
|ВЫБРАТЬ РАЗРЕШЕННЫЕ
| ДокументТовары.Номенклатура КАК Номенклатура,
| ДокументТовары.Характеристика КАК Характеристика,
| СУММА(ДокументТовары.Количество) КАК Количество,
| СУММА(ДокументТовары.СуммаСНДС) КАК СуммаСНДС,
| ДокументТовары.Серия КАК Серия,
| ДокументТовары.Склад КАК Склад,
| ВтДокументы.ДокументСсылка КАК Ссылка
|ПОМЕСТИТЬ ВТТоварыРаспоряженияОтгружено
|ИЗ
| Документ.РеализацияТоваровУслуг.Товары КАК ДокументТовары
| ВНУТРЕННЕЕ СОЕДИНЕНИЕ ВтДокументы КАК ВтДокументы
| ПО (ВтДокументы.ДокументСсылка = ДокументТовары.Ссылка)
|ГДЕ
| ВтДокументы.Проведен
| И (НЕ ДокументТовары.Ссылка.РеализацияПоЗаказам
| ИЛИ ЕСТЬNULL(ДокументТовары.ЗаказКлиента.ЭтоЗаказКакСчет, НЕ &ИспользоватьРасширенныеВозможностиЗаказаКлиента))
|
|СГРУППИРОВАТЬ ПО
| ДокументТовары.Номенклатура,
| ДокументТовары.Характеристика,
| ДокументТовары.Серия,
| ДокументТовары.Склад,
| ВтДокументы.ДокументСсылка;";
КонецФункции
Функция ПолучитьРезультатЗапросаПоОстаткамЗаказов(ДанныеОтбора,
ПараметрыЗаполнения,
СкладРеализации = Неопределено,
МассивЗаказов = Неопределено)
Запрос = Новый Запрос;
Запрос.УстановитьПараметр("МассивЗаказов", МассивЗаказов);
Запрос.УстановитьПараметр("Партнер", ДанныеОтбора.Партнер);
Запрос.УстановитьПараметр("Контрагент", ДанныеОтбора.Контрагент);
Запрос.УстановитьПараметр("Договор", ДанныеОтбора.Договор);
Запрос.УстановитьПараметр("Организация", ДанныеОтбора.Организация);
Запрос.УстановитьПараметр("Сделка", ДанныеОтбора.Сделка);
Запрос.УстановитьПараметр("Соглашение", ДанныеОтбора.Соглашение);
Запрос.УстановитьПараметр("ВалютаВзаиморасчетов", ДанныеОтбора.ВалютаВзаиморасчетов);
Запрос.УстановитьПараметр("НалогообложениеНДС", ДанныеОтбора.НалогообложениеНДС);
Запрос.УстановитьПараметр("ЦенаВключаетНДС", ДанныеОтбора.ЦенаВключаетНДС);
Запрос.УстановитьПараметр("ВернутьМногооборотнуюТару", ДанныеОтбора.ВернутьМногооборотнуюТару);
Запрос.УстановитьПараметр("ТребуетсяЗалогЗаТару", ДанныеОтбора.ТребуетсяЗалогЗаТару);
Запрос.УстановитьПараметр("ПорядокРасчетов", ДанныеОтбора.ПорядокРасчетов);
Запрос.УстановитьПараметр("Регистратор", ДанныеОтбора.Ссылка);
Запрос.УстановитьПараметр("СкладРеализации", СкладРеализации);
Запрос.УстановитьПараметр("ОтобратьПоЗаказу", МассивЗаказов <> Неопределено);
Запрос.УстановитьПараметр("ХозяйственнаяОперация", ДанныеОтбора.ХозяйственнаяОперация);
Запрос.УстановитьПараметр("ТекущаяДата", НачалоДня(ТекущаяДатаСеанса()));
Запрос.УстановитьПараметр("ИспользоватьСоглашенияСКлиентами",
ПолучитьФункциональнуюОпцию("ИспользоватьСоглашенияСКлиентами"));
Запрос.УстановитьПараметр("НаправлениеДеятельности", ДанныеОтбора.НаправлениеДеятельности);
Запрос.УстановитьПараметр("ИспользоватьНаправленияДеятельности",
ПолучитьФункциональнуюОпцию("ИспользоватьУчетДоходовПоНаправлениямДеятельности"));
НалогообложениеНДСЭкспорт = ДанныеОтбора.НалогообложениеНДС = Перечисления.ТипыНалогообложенияНДС.ПродажаНаЭкспорт
Или ДанныеОтбора.НалогообложениеНДС = Перечисления.ТипыНалогообложенияНДС.ЭкспортСырьевыхТоваровУслуг
Или ДанныеОтбора.НалогообложениеНДС = Перечисления.ТипыНалогообложенияНДС.ЭкспортНесырьевыхТоваров;
Запрос.УстановитьПараметр("НалогообложениеНДСЭкспорт", НалогообложениеНДСЭкспорт);
ИспользоватьРасширенныеВозможностиЗаказаКлиента = Неопределено;
ПараметрыЗаполнения.Свойство("ИспользоватьРасширенныеВозможностиЗаказаКлиента",
ИспользоватьРасширенныеВозможностиЗаказаКлиента);
Если ИспользоватьРасширенныеВозможностиЗаказаКлиента = Неопределено Тогда
ИспользоватьРасширенныеВозможностиЗаказаКлиента = ПолучитьФункциональнуюОпцию("ИспользоватьРасширенныеВозможностиЗаказаКлиента");
КонецЕсли;
Запрос.УстановитьПараметр("ЭтоЗаказКакСчет", Не ИспользоватьРасширенныеВозможностиЗаказаКлиента);
ХозяйственныеОперацииРаспоряжений = Новый Массив();
Если ДанныеОтбора.ХозяйственнаяОперация = Перечисления.ХозяйственныеОперации.РеализацияКлиенту
Или ДанныеОтбора.ХозяйственнаяОперация =
Перечисления.ХозяйственныеОперации.РеализацияКлиентуРеглУчет
Или ДанныеОтбора.ХозяйственнаяОперация =
Перечисления.ХозяйственныеОперации.РеализацияБезПереходаПраваСобственности
Или ДанныеОтбора.ХозяйственнаяОперация =
Перечисления.ХозяйственныеОперации.ПереходПраваСобственности Тогда
ХозяйственныеОперацииРаспоряжений.Добавить(
Перечисления.ХозяйственныеОперации.РеализацияКлиенту);
ХозяйственныеОперацииРаспоряжений.Добавить(
Перечисления.ХозяйственныеОперации.ВозвратТоваровОтКлиента);
ХозяйственныеОперацииРаспоряжений.Добавить(
Перечисления.ХозяйственныеОперации.ВозвратОтРозничногоПокупателя);
ХозяйственныеОперацииРаспоряжений.Добавить(
Перечисления.ХозяйственныеОперации.РеализацияБезПереходаПраваСобственности);
ХозяйственныеОперацииРаспоряжений.Добавить(
Перечисления.ХозяйственныеОперации.ОтгрузкаТоваровКлиенту);
ХозяйственныеОперацииРаспоряжений.Добавить(
Перечисления.ХозяйственныеОперации.ВводОстатковОтгруженныхТоваров);
ИначеЕсли ДанныеОтбора.ХозяйственнаяОперация = Перечисления.ХозяйственныеОперации.ПередачаНаКомиссию Тогда
ХозяйственныеОперацииРаспоряжений.Добавить(Перечисления.ХозяйственныеОперации.ПередачаНаКомиссию);
ХозяйственныеОперацииРаспоряжений.Добавить(Перечисления.ХозяйственныеОперации.ВозвратОтКомиссионера);
КонецЕсли;
Запрос.УстановитьПараметр("ХозяйственныеОперацииРаспоряжений", ХозяйственныеОперацииРаспоряжений);
ВариантОформления = Неопределено;
ПараметрыЗаполнения.Свойство("ВариантОформления", ВариантОформления);
МассивВариантовОформления = Новый Массив;
Если ЗначениеЗаполнено(ВариантОформления) Тогда
МассивВариантовОформления.Добавить(ВариантОформления);
Иначе
МассивВариантовОформления.Добавить(Перечисления.ВариантыОформленияПродажи.РеализацияТоваровУслуг);
МассивВариантовОформления.Добавить(Перечисления.ВариантыОформленияПродажи.АктНаПередачуПрав);
КонецЕсли;
Запрос.УстановитьПараметр("МассивВариантовОформления", МассивВариантовОформления);
РеализацияТоваровУслугЛокализация.УстановитьПараметрыОсобенностиУчетаНоменклатуры(ПараметрыЗаполнения, Запрос.Параметры);
Если ТипЗнч(ДанныеОтбора) = Тип("Структура")
И ДанныеОтбора.Свойство("ТоварыРеализации") Тогда
Запрос.УстановитьПараметр("ТоварыРеализации", ДанныеОтбора.ТоварыРеализации);
Иначе
ТоварыРеализации = Новый ТаблицаЗначений;
ТоварыРеализации.Колонки.Добавить("ЗаказКлиента", Новый ОписаниеТипов("ДокументСсылка.ЗаказКлиента"));
ТоварыРеализации.Колонки.Добавить("Номенклатура", Новый ОписаниеТипов("СправочникСсылка.Номенклатура"));
ТоварыРеализации.Колонки.Добавить("Характеристика", Новый ОписаниеТипов("СправочникСсылка.ХарактеристикиНоменклатуры"));
ТоварыРеализации.Колонки.Добавить("КодСтроки", Новый ОписаниеТипов("Число", Новый КвалификаторыЧисла(10, 0)));
ТоварыРеализации.Колонки.Добавить("Количество", ОбщегоНазначенияУТ.ОписаниеТипаКоличественногоПоля());
ТоварыРеализации.Колонки.Добавить("СуммаВзаиморасчетов", ОбщегоНазначенияУТ.ОписаниеТипаДенежногоПоля());
ТоварыРеализации.Колонки.Добавить("Склад", Новый ОписаниеТипов("СправочникСсылка.Склады"));
ТоварыРеализации.Колонки.Добавить("НомерСтроки", Новый ОписаниеТипов("Число", Новый КвалификаторыЧисла(10, 0)));
ТоварыРеализации.Колонки.Добавить("Упаковка", Новый ОписаниеТипов("СправочникСсылка.УпаковкиЕдиницыИзмерения"));
ТоварыРеализации.Колонки.Добавить("Серия", Новый ОписаниеТипов("СправочникСсылка.СерииНоменклатуры"));
ТоварыРеализации.Колонки.Добавить("ВидЦены", Новый ОписаниеТипов("СправочникСсылка.ВидыЦен"));
ТоварыРеализации.Колонки.Добавить("КоличествоВЗаказе", ОбщегоНазначенияУТ.ОписаниеТипаКоличественногоПоля());
ТоварыРеализации.Колонки.Добавить("Цена", ОбщегоНазначенияУТ.ОписаниеТипаДенежногоПоля());
ТоварыРеализации.Колонки.Добавить("СтавкаНДС", Новый ОписаниеТипов("СправочникСсылка.СтавкиНДС"));
ТоварыРеализации.Колонки.Добавить("Сумма", ОбщегоНазначенияУТ.ОписаниеТипаДенежногоПоля());
ТоварыРеализации.Колонки.Добавить("СуммаНДС", ОбщегоНазначенияУТ.ОписаниеТипаДенежногоПоля());
ТоварыРеализации.Колонки.Добавить("СуммаНДСРегл", ОбщегоНазначенияУТ.ОписаниеТипаДенежногоПоля());
ТоварыРеализации.Колонки.Добавить("СуммаНДСУпр", ОбщегоНазначенияУТ.ОписаниеТипаДенежногоПоля());
ТоварыРеализации.Колонки.Добавить("СуммаСНДС", ОбщегоНазначенияУТ.ОписаниеТипаДенежногоПоля());
ТоварыРеализации.Колонки.Добавить("ПроцентРучнойСкидки", Новый ОписаниеТипов("Число", Новый КвалификаторыЧисла(5, 2)));
ТоварыРеализации.Колонки.Добавить("СуммаРучнойСкидки", ОбщегоНазначенияУТ.ОписаниеТипаДенежногоПоля());
ТоварыРеализации.Колонки.Добавить("ПроцентАвтоматическойСкидки", Новый ОписаниеТипов("Число", Новый КвалификаторыЧисла(5, 2)));
ТоварыРеализации.Колонки.Добавить("СуммаАвтоматическойСкидки", ОбщегоНазначенияУТ.ОписаниеТипаДенежногоПоля());
ТоварыРеализации.Колонки.Добавить("СуммаБонусныхБалловКСписанию", ОбщегоНазначенияУТ.ОписаниеТипаДенежногоПоля());
ТоварыРеализации.Колонки.Добавить("СуммаБонусныхБалловКСписаниюВВалюте", ОбщегоНазначенияУТ.ОписаниеТипаДенежногоПоля());
ТоварыРеализации.Колонки.Добавить("СуммаНачисленныхБонусныхБалловВВалюте", ОбщегоНазначенияУТ.ОписаниеТипаДенежногоПоля());
ТоварыРеализации.Колонки.Добавить("НоменклатураНабора", Новый ОписаниеТипов("СправочникСсылка.Номенклатура"));
ТоварыРеализации.Колонки.Добавить("ХарактеристикаНабора", Новый ОписаниеТипов("СправочникСсылка.ХарактеристикиНоменклатуры"));
ТоварыРеализации.Колонки.Добавить("Подразделение", Новый ОписаниеТипов("СправочникСсылка.СтруктураПредприятия"));
ТоварыРеализации.Колонки.Добавить("КлючСвязи", Новый ОписаниеТипов("Число", Новый КвалификаторыЧисла(10, 0)));
Запрос.УстановитьПараметр("ТоварыРеализации", ТоварыРеализации);
КонецЕсли;
Запрос.Текст =
"ВЫБРАТЬ
| ВЫРАЗИТЬ(ТоварыРеализации.КодСтроки КАК ЧИСЛО(10, 0)) КАК КодСтроки,
| ТоварыРеализации.ЗаказКлиента КАК ЗаказКлиента,
| ВЫРАЗИТЬ(ТоварыРеализации.Номенклатура КАК Справочник.Номенклатура) КАК Номенклатура,
| ВЫРАЗИТЬ(ТоварыРеализации.Характеристика КАК Справочник.ХарактеристикиНоменклатуры) КАК Характеристика,
| ТоварыРеализации.Количество КАК Количество,
| ВЫРАЗИТЬ(ТоварыРеализации.Склад КАК Справочник.Склады) КАК Склад,
| ТоварыРеализации.НомерСтроки КАК НомерСтроки,
| ВЫРАЗИТЬ(ТоварыРеализации.Упаковка КАК Справочник.УпаковкиЕдиницыИзмерения) КАК Упаковка,
| ТоварыРеализации.Серия КАК Серия,
| ТоварыРеализации.ВидЦены КАК ВидЦены,
| ТоварыРеализации.Цена КАК Цена,
| ТоварыРеализации.СтавкаНДС КАК СтавкаНДС,
| ТоварыРеализации.Сумма КАК Сумма,
| ТоварыРеализации.СуммаНДС КАК СуммаНДС,
| ТоварыРеализации.СуммаНДСРегл КАК СуммаНДСРегл,
| ТоварыРеализации.СуммаНДСУпр КАК СуммаНДСУпр,
| ТоварыРеализации.СуммаСНДС КАК СуммаСНДС,
| ТоварыРеализации.ПроцентРучнойСкидки КАК ПроцентРучнойСкидки,
| ТоварыРеализации.СуммаРучнойСкидки КАК СуммаРучнойСкидки,
| ТоварыРеализации.ПроцентАвтоматическойСкидки КАК ПроцентАвтоматическойСкидки,
| ТоварыРеализации.СуммаАвтоматическойСкидки КАК СуммаАвтоматическойСкидки,
| ТоварыРеализации.СуммаБонусныхБалловКСписанию КАК СуммаБонусныхБалловКСписанию,
| ТоварыРеализации.СуммаБонусныхБалловКСписаниюВВалюте КАК СуммаБонусныхБалловКСписаниюВВалюте,
| ТоварыРеализации.СуммаНачисленныхБонусныхБалловВВалюте КАК СуммаНачисленныхБонусныхБалловВВалюте,
| ТоварыРеализации.НоменклатураНабора КАК НоменклатураНабора,
| ТоварыРеализации.ХарактеристикаНабора КАК ХарактеристикаНабора,
| ТоварыРеализации.Подразделение КАК Подразделение,
| ТоварыРеализации.КлючСвязи КАК КлючСвязи
|ПОМЕСТИТЬ ВтТоварыРеализации
|ИЗ
| &ТоварыРеализации КАК ТоварыРеализации
|;
|
|
|ВЫБРАТЬ
| ВтТоварыРеализации.КодСтроки КАК КодСтроки,
| ВтТоварыРеализации.ЗаказКлиента КАК ЗаказКлиента,
| ВтТоварыРеализации.Номенклатура КАК Номенклатура,
| ВтТоварыРеализации.Характеристика КАК Характеристика,
| СУММА(ВтТоварыРеализации.Количество) КАК Количество,
| ВтТоварыРеализации.Серия КАК Серия,
| ВтТоварыРеализации.Упаковка КАК Упаковка
|ПОМЕСТИТЬ ВтТоварыРеализацииПоЗаказу
|ИЗ
| ВтТоварыРеализации КАК ВтТоварыРеализации
|ГДЕ
| ВЫБОР
| КОГДА &ХозяйственнаяОперация = ЗНАЧЕНИЕ(Перечисление.ХозяйственныеОперации.ПереходПраваСобственности)
| ТОГДА ИСТИНА
| ИНАЧЕ
| ВтТоварыРеализации.КодСтроки <> 0
| КОНЕЦ
|
|СГРУППИРОВАТЬ ПО
| ВтТоварыРеализации.КодСтроки,
| ВтТоварыРеализации.ЗаказКлиента,
| ВтТоварыРеализации.Номенклатура,
| ВтТоварыРеализации.Характеристика,
| ВтТоварыРеализации.Серия,
| ВтТоварыРеализации.Упаковка
|;
|
|
|ВЫБРАТЬ
| &Регистратор КАК ЗаказКлиента,
| &ПорядокРасчетов КАК ПорядокРасчетов,
| ТоварыРеализации.Номенклатура КАК Номенклатура,
| ТоварыРеализации.Характеристика КАК Характеристика,
| ТоварыРеализации.КодСтроки КАК КодСтроки,
| ТоварыРеализации.Количество КАК Количество,
| ТоварыРеализации.Сумма КАК СуммаВзаиморасчетов,
| ТоварыРеализации.Склад КАК Склад,
| ТоварыРеализации.НомерСтроки КАК НомерСтроки,
| ТоварыРеализации.Упаковка КАК Упаковка,
| ТоварыРеализации.Серия КАК Серия,
| ТоварыРеализации.ВидЦены КАК ВидЦены,
| ТоварыРеализации.Количество КАК КоличествоВЗаказе,
| ТоварыРеализации.Цена КАК Цена,
| ТоварыРеализации.СтавкаНДС КАК СтавкаНДС,
| ТоварыРеализации.Сумма КАК Сумма,
| ТоварыРеализации.СуммаНДС КАК СуммаНДС,
| ТоварыРеализации.СуммаНДСРегл КАК СуммаНДСРегл,
| ТоварыРеализации.СуммаНДСУпр КАК СуммаНДСУпр,
| ТоварыРеализации.СуммаСНДС КАК СуммаСНДС,
| ТоварыРеализации.ПроцентРучнойСкидки КАК ПроцентРучнойСкидки,
| ТоварыРеализации.СуммаРучнойСкидки КАК СуммаРучнойСкидки,
| ТоварыРеализации.ПроцентАвтоматическойСкидки КАК ПроцентАвтоматическойСкидки,
| ТоварыРеализации.СуммаАвтоматическойСкидки КАК СуммаАвтоматическойСкидки,
| ТоварыРеализации.СуммаБонусныхБалловКСписанию КАК СуммаБонусныхБалловКСписанию,
| ТоварыРеализации.СуммаБонусныхБалловКСписаниюВВалюте КАК СуммаБонусныхБалловКСписаниюВВалюте,
| ТоварыРеализации.СуммаНачисленныхБонусныхБалловВВалюте КАК СуммаНачисленныхБонусныхБалловВВалюте,
| ТоварыРеализации.НоменклатураНабора КАК НоменклатураНабора,
| ТоварыРеализации.ХарактеристикаНабора КАК ХарактеристикаНабора,
| ТоварыРеализации.Подразделение КАК Подразделение,
| ТоварыРеализации.КлючСвязи КАК КлючСвязи,
| СправочникНоменклатуры.ТипНоменклатуры КАК ТипНоменклатуры,
| СправочникНоменклатуры.КодТНВЭД КАК КодТНВЭД,
| Склады.ИспользоватьОрдернуюСхемуПриОтгрузке = ИСТИНА
| И Склады.ДатаНачалаОрдернойСхемыПриОтгрузке <= &ТекущаяДата КАК ИспользуетсяОрдернаяСхемаПриОтгрузке
|ПОМЕСТИТЬ ВтТоварыРеализацииБезЗаказа
|ИЗ
| ВтТоварыРеализации КАК ТоварыРеализации
| ЛЕВОЕ СОЕДИНЕНИЕ Справочник.Номенклатура КАК СправочникНоменклатуры
| ПО (СправочникНоменклатуры.Ссылка = ТоварыРеализации.Номенклатура)
| ЛЕВОЕ СОЕДИНЕНИЕ Справочник.Склады КАК Склады
| ПО (Склады.Ссылка = ТоварыРеализации.Склад)
|ГДЕ
| ТоварыРеализации.КодСтроки = 0
|;
|
|
|ВЫБРАТЬ
| ЗаказКлиента.Ссылка КАК Ссылка,
| ЗаказКлиента.ЭтоЗаказКакСчет КАК ЭтоЗаказКакСчет
|ПОМЕСТИТЬ ВТЗаказы
|ИЗ
| Документ.ЗаказКлиента КАК ЗаказКлиента
|ГДЕ
| ВЫБОР
| КОГДА &ОтобратьПоЗаказу
| ТОГДА ЗаказКлиента.Ссылка В (&МассивЗаказов)
| ИНАЧЕ ЗаказКлиента.Партнер = &Партнер
| И ЗаказКлиента.Контрагент = &Контрагент
| И (ЗаказКлиента.Договор = &Договор
| ИЛИ &ИспользоватьСоглашенияСКлиентами
| И НЕ ЗаказКлиента.Соглашение.ИспользуютсяДоговорыКонтрагентов)
| И ЗаказКлиента.Организация = &Организация
| И ЗаказКлиента.ХозяйственнаяОперация В (&ХозяйственныеОперацииРаспоряжений)
| И (НЕ &ИспользоватьСоглашенияСКлиентами
| ИЛИ ЗаказКлиента.Соглашение = &Соглашение)
| И ЗаказКлиента.Сделка = &Сделка
| И (ЗаказКлиента.Валюта = &ВалютаВзаиморасчетов
| ИЛИ &ХозяйственнаяОперация = ЗНАЧЕНИЕ(Перечисление.ХозяйственныеОперации.ПередачаНаКомиссию))
| И ВЫБОР
| КОГДА ЗаказКлиента.НалогообложениеНДС В (ЗНАЧЕНИЕ(Перечисление.ТипыНалогообложенияНДС.ЭкспортСырьевыхТоваровУслуг), ЗНАЧЕНИЕ(Перечисление.ТипыНалогообложенияНДС.ЭкспортНесырьевыхТоваров))
| ТОГДА ЗНАЧЕНИЕ(Перечисление.ТипыНалогообложенияНДС.ПродажаНаЭкспорт)
| ИНАЧЕ
| ЗаказКлиента.НалогообложениеНДС
| КОНЕЦ = &НалогообложениеНДС
| И ЗаказКлиента.ЦенаВключаетНДС = &ЦенаВключаетНДС
| И (ЗаказКлиента.ВернутьМногооборотнуюТару = &ВернутьМногооборотнуюТару
| ИЛИ &ХозяйственнаяОперация = ЗНАЧЕНИЕ(Перечисление.ХозяйственныеОперации.ПереходПраваСобственности))
| И (ЗаказКлиента.ТребуетсяЗалогЗаТару = &ТребуетсяЗалогЗаТару
| ИЛИ &ХозяйственнаяОперация = ЗНАЧЕНИЕ(Перечисление.ХозяйственныеОперации.ПереходПраваСобственности))
| И (НЕ &ИспользоватьНаправленияДеятельности
| ИЛИ ЗаказКлиента.НаправлениеДеятельности = &НаправлениеДеятельности)
| КОНЕЦ
|
|ОБЪЕДИНИТЬ ВСЕ
|
|ВЫБРАТЬ
| ВЫБОР
| КОГДА ОтгрузкаТовары.Ссылка.Исправление
| ТОГДА ОтгрузкаТовары.Ссылка.ИсправляемыйДокумент
| ИНАЧЕ
| ОтгрузкаТовары.Ссылка
| КОНЕЦ КАК Ссылка,
| ВЫБОР
| КОГДА ОтгрузкаТовары.ЗаказКлиента ССЫЛКА Документ.ЗаказКлиента
| ТОГДА ВЫРАЗИТЬ(ОтгрузкаТовары.ЗаказКлиента КАК Документ.ЗаказКлиента).ЭтоЗаказКакСчет
| КОГДА ОтгрузкаТовары.ЗаказКлиента ССЫЛКА Документ.ЗаявкаНаВозвратТоваровОтКлиента
| ТОГДА ВЫРАЗИТЬ(ОтгрузкаТовары.ЗаказКлиента КАК Документ.ЗаявкаНаВозвратТоваровОтКлиента).ЭтоЗаказКакСчет
| ИНАЧЕ
| ЛОЖЬ
| КОНЕЦ КАК ЭтоЗаказКакСчет
|ИЗ
| Документ.ОтгрузкаТоваровКлиенту.Товары КАК ОтгрузкаТовары
|ГДЕ
| ВЫБОР
| КОГДА ОтгрузкаТовары.ЗаказКлиента В (
| ЗНАЧЕНИЕ(Документ.ЗаказКлиента.ПустаяСсылка),
| ЗНАЧЕНИЕ(Документ.ОтгрузкаТоваровКлиенту.ПустаяСсылка),
| ЗНАЧЕНИЕ(Документ.ЗаявкаНаВозвратТоваровОтКлиента.ПустаяСсылка),
| НЕОПРЕДЕЛЕНО
| )
| ТОГДА ИСТИНА
| КОГДА ОтгрузкаТовары.ЗаказКлиента ССЫЛКА Документ.ЗаказКлиента
| ТОГДА ВЫРАЗИТЬ(ОтгрузкаТовары.ЗаказКлиента КАК Документ.ЗаказКлиента).ЭтоЗаказКакСчет
| КОГДА ОтгрузкаТовары.ЗаказКлиента ССЫЛКА Документ.ЗаявкаНаВозвратТоваровОтКлиента
| ТОГДА ВЫРАЗИТЬ(ОтгрузкаТовары.ЗаказКлиента КАК Документ.ЗаявкаНаВозвратТоваровОтКлиента).ЭтоЗаказКакСчет
| ИНАЧЕ
| ЛОЖЬ
| КОНЕЦ
| И ВЫБОР
| КОГДА &ОтобратьПоЗаказу
| ТОГДА ОтгрузкаТовары.Ссылка В (&МассивЗаказов)
| ИНАЧЕ ОтгрузкаТовары.Ссылка.Партнер = &Партнер
| И ОтгрузкаТовары.Ссылка.Контрагент = &Контрагент
| И ОтгрузкаТовары.Ссылка.Договор = &Договор
| И ОтгрузкаТовары.Ссылка.Организация = &Организация
| И ОтгрузкаТовары.Ссылка.ХозяйственнаяОперация В (&ХозяйственныеОперацииРаспоряжений)
| И (НЕ &ИспользоватьСоглашенияСКлиентами
| ИЛИ ОтгрузкаТовары.Ссылка.Соглашение = &Соглашение)
| И ОтгрузкаТовары.Ссылка.Сделка = &Сделка
| И ОтгрузкаТовары.Ссылка.Валюта = &ВалютаВзаиморасчетов
| И ВЫБОР
| КОГДА ОтгрузкаТовары.Ссылка.НалогообложениеНДС В (
| ЗНАЧЕНИЕ(Перечисление.ТипыНалогообложенияНДС.ЭкспортСырьевыхТоваровУслуг),
| ЗНАЧЕНИЕ(Перечисление.ТипыНалогообложенияНДС.ЭкспортНесырьевыхТоваров)
| )
| ТОГДА ЗНАЧЕНИЕ(Перечисление.ТипыНалогообложенияНДС.ПродажаНаЭкспорт)
| ИНАЧЕ ОтгрузкаТовары.Ссылка.НалогообложениеНДС
| КОНЕЦ = &НалогообложениеНДС
| И &ЦенаВключаетНДС = ИСТИНА
| И (НЕ &ИспользоватьНаправленияДеятельности
| ИЛИ ОтгрузкаТовары.Ссылка.НаправлениеДеятельности = &НаправлениеДеятельности)
| КОНЕЦ
|
|ОБЪЕДИНИТЬ ВСЕ
|
|ВЫБРАТЬ
| ЗаказКлиента.Ссылка,
| ЗаказКлиента.ЭтоЗаказКакСчет
|ИЗ
| Документ.ЗаявкаНаВозвратТоваровОтКлиента КАК ЗаказКлиента
|ГДЕ
| ВЫБОР
| КОГДА &ОтобратьПоЗаказу
| ТОГДА ЗаказКлиента.Ссылка В (&МассивЗаказов)
| ИНАЧЕ ЗаказКлиента.Партнер = &Партнер
| И ЗаказКлиента.Контрагент = &Контрагент
| И (ЗаказКлиента.Договор = &Договор
| ИЛИ &ИспользоватьСоглашенияСКлиентами
| И НЕ ЗаказКлиента.Соглашение.ИспользуютсяДоговорыКонтрагентов)
| И ЗаказКлиента.Организация = &Организация
| И ЗаказКлиента.ХозяйственнаяОперация В (&ХозяйственныеОперацииРаспоряжений)
| И (НЕ &ИспользоватьСоглашенияСКлиентами
| ИЛИ ЗаказКлиента.Соглашение = &Соглашение)
| И ЗаказКлиента.Сделка = &Сделка
| И (ЗаказКлиента.Валюта = &ВалютаВзаиморасчетов
| ИЛИ &ХозяйственнаяОперация = ЗНАЧЕНИЕ(Перечисление.ХозяйственныеОперации.ПередачаНаКомиссию))
| И ВЫБОР
| КОГДА ЗаказКлиента.НалогообложениеНДС В (ЗНАЧЕНИЕ(Перечисление.ТипыНалогообложенияНДС.ЭкспортСырьевыхТоваровУслуг), ЗНАЧЕНИЕ(Перечисление.ТипыНалогообложенияНДС.ЭкспортНесырьевыхТоваров))
| ТОГДА ЗНАЧЕНИЕ(Перечисление.ТипыНалогообложенияНДС.ПродажаНаЭкспорт)
| ИНАЧЕ ЗаказКлиента.НалогообложениеНДС
| КОНЕЦ = &НалогообложениеНДС
| И ЗаказКлиента.ЦенаВключаетНДС = &ЦенаВключаетНДС
| И (ЗаказКлиента.ВернутьМногооборотнуюТару = &ВернутьМногооборотнуюТару
| ИЛИ &ХозяйственнаяОперация = ЗНАЧЕНИЕ(Перечисление.ХозяйственныеОперации.ПереходПраваСобственности))
| И (ЗаказКлиента.ТребуетсяЗалогЗаТару = &ТребуетсяЗалогЗаТару
| ИЛИ &ХозяйственнаяОперация = ЗНАЧЕНИЕ(Перечисление.ХозяйственныеОперации.ПереходПраваСобственности))
| И (НЕ &ИспользоватьНаправленияДеятельности
| ИЛИ ЗаказКлиента.НаправлениеДеятельности = &НаправлениеДеятельности)
| КОНЕЦ
|
|ОБЪЕДИНИТЬ ВСЕ
|
|ВЫБРАТЬ РАЗЛИЧНЫЕ
| ВводОстатковТоваров.Партия КАК Ссылка,
| ЛОЖЬ КАК ЭтоЗаказКакСчет
|ИЗ
| Документ.ВводОстатковТоваров КАК ВводОстатковТоваров
| ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.РеестрДокументов КАК РеестрДокументов
| ПО ВводОстатковТоваров.Ссылка = РеестрДокументов.СторнируемыйДокумент
| И РеестрДокументов.Проведен
| И НЕ РеестрДокументов.ДополнительнаяЗапись
|ГДЕ
| ВЫБОР
| КОГДА &ОтобратьПоЗаказу
| ТОГДА ВводОстатковТоваров.Партия В (&МассивЗаказов)
| ИНАЧЕ ВводОстатковТоваров.Партнер = &Партнер
| И ВводОстатковТоваров.Контрагент = &Контрагент
| И ВводОстатковТоваров.Договор = &Договор
| И ВводОстатковТоваров.Организация = &Организация
| И ВводОстатковТоваров.ХозяйственнаяОперация В (&ХозяйственныеОперацииРаспоряжений)
| И ВводОстатковТоваров.ЦенаВключаетНДС = &ЦенаВключаетНДС
| И ВводОстатковТоваров.Валюта = &ВалютаВзаиморасчетов
| И ВЫБОР
| КОГДА ВводОстатковТоваров.Партия.НалогообложениеНДС В (ЗНАЧЕНИЕ(Перечисление.ТипыНалогообложенияНДС.ЭкспортСырьевыхТоваровУслуг), ЗНАЧЕНИЕ(Перечисление.ТипыНалогообложенияНДС.ЭкспортНесырьевыхТоваров))
| ТОГДА ЗНАЧЕНИЕ(Перечисление.ТипыНалогообложенияНДС.ПродажаНаЭкспорт)
| ИНАЧЕ ВводОстатковТоваров.Партия.НалогообложениеНДС
| КОНЕЦ = &НалогообложениеНДС
| КОНЕЦ
| И ВводОстатковТоваров.Проведен
| И РеестрДокументов.Ссылка ЕСТЬ NULL
|
|ИНДЕКСИРОВАТЬ ПО
| Ссылка
|;
|
|
|ВЫБРАТЬ
| ОтгрузкаТовары.ЗаказКлиента КАК Распоряжение,
| ОтгрузкаТовары.Ссылка КАК ОтгрузкаТоваров
|ПОМЕСТИТЬ ВТОтгрузкиТоваровПоРаспоряжениям
|ИЗ
| Документ.ОтгрузкаТоваровКлиенту.Товары КАК ОтгрузкаТовары
|ГДЕ
| ОтгрузкаТовары.Ссылка.ОтгрузкаПоЗаказам
| И НЕ ОтгрузкаТовары.ЗаказКлиента В(
| ЗНАЧЕНИЕ(Документ.ЗаказКлиента.ПустаяСсылка),
| ЗНАЧЕНИЕ(Документ.ОтгрузкаТоваровКлиенту.ПустаяСсылка),
| ЗНАЧЕНИЕ(Документ.ЗаявкаНаВозвратТоваровОтКлиента.ПустаяСсылка),
| НЕОПРЕДЕЛЕНО
| )
| И ВЫБОР
| КОГДА ОтгрузкаТовары.ЗаказКлиента ССЫЛКА Документ.ЗаказКлиента
| ТОГДА НЕ ВЫРАЗИТЬ(ОтгрузкаТовары.ЗаказКлиента КАК Документ.ЗаказКлиента).ЭтоЗаказКакСчет
| КОГДА ОтгрузкаТовары.ЗаказКлиента ССЫЛКА Документ.ЗаявкаНаВозвратТоваровОтКлиента
| ТОГДА НЕ ВЫРАЗИТЬ(ОтгрузкаТовары.ЗаказКлиента КАК Документ.ЗаявкаНаВозвратТоваровОтКлиента).ЭтоЗаказКакСчет
| ИНАЧЕ
| ИСТИНА
| КОНЕЦ
| И &ОтобратьПоЗаказу
| И ОтгрузкаТовары.Ссылка В (&МассивЗаказов)
|;
|
|
| ВЫБРАТЬ
| РаспоряженияОформленоОбороты.Распоряжение КАК Распоряжение,
| РаспоряженияОформленоОбороты.Номенклатура КАК Номенклатура,
| РаспоряженияОформленоОбороты.Характеристика КАК Характеристика,
| РаспоряженияОформленоОбороты.КодСтроки КАК КодСтроки,
| РаспоряженияОформленоОбороты.ОтгруженоКоличествоОборот
| + РаспоряженияОформленоОбороты.ОприходованоДоППСКоличествоОборот
| - РаспоряженияОформленоОбороты.СписаноДоППСКоличествоОборот
| - РаспоряженияОформленоОбороты.ОформленоКоличествоОборот
| - РаспоряженияОформленоОбороты.ПринятоКоличествоОборот КАК КОформлению,
| РаспоряженияОформленоОбороты.ОтгруженоСуммаОборот
| + РаспоряженияОформленоОбороты.ОприходованоДоППССуммаОборот
| - РаспоряженияОформленоОбороты.СписаноДоППССуммаОборот
| - РаспоряженияОформленоОбороты.ОформленоСуммаОборот
| - РаспоряженияОформленоОбороты.ПринятоСуммаОборот КАК Сумма,
| РаспоряженияОформленоОбороты.ОформленоСчетовФактурСуммаНДСРеглОборот
| - РаспоряженияОформленоОбороты.ОформленоСуммаНДСРеглОборот КАК СуммаНДСРегл,
| РаспоряженияОформленоОбороты.ОформленоСчетовФактурСуммаНДСУпрОборот
| - РаспоряженияОформленоОбороты.ОформленоСуммаНДСУпрОборот КАК СуммаНДСУпр
| ПОМЕСТИТЬ ВТРаспоряженияОформленоОтгрузкиПоРаспоряжениям
| ИЗ
| #РаспоряженияНаОтгрузкуОборотыРазвернутая1 КАК РаспоряженияОформленоОбороты
| ГДЕ
| &ХозяйственнаяОперация = ЗНАЧЕНИЕ(Перечисление.ХозяйственныеОперации.ПереходПраваСобственности)
| И (РаспоряженияОформленоОбороты.ОтгруженоКоличествоОборот
| + РаспоряженияОформленоОбороты.ОприходованоДоППСКоличествоОборот
| - РаспоряженияОформленоОбороты.СписаноДоППСКоличествоОборот
| - РаспоряженияОформленоОбороты.ОформленоКоличествоОборот
| - РаспоряженияОформленоОбороты.ПринятоКоличествоОборот <> 0
| ИЛИ РаспоряженияОформленоОбороты.ОтгруженоСуммаОборот
| + РаспоряженияОформленоОбороты.ОприходованоДоППССуммаОборот
| - РаспоряженияОформленоОбороты.СписаноДоППССуммаОборот
| - РаспоряженияОформленоОбороты.ОформленоСуммаОборот
| - РаспоряженияОформленоОбороты.ПринятоСуммаОборот <> 0
| ИЛИ РаспоряженияОформленоОбороты.ОформленоСчетовФактурСуммаНДСРеглОборот
| - РаспоряженияОформленоОбороты.ОформленоСуммаНДСРеглОборот <> 0
| ИЛИ РаспоряженияОформленоОбороты.ОформленоСчетовФактурСуммаНДСУпрОборот
| - РаспоряженияОформленоОбороты.ОформленоСуммаНДСУпрОборот <> 0)
|;
|
|
|ВЫБРАТЬ
| ТаблицаЗаказы.ЗаказКлиента КАК ЗаказКлиента,
| ТаблицаЗаказы.Номенклатура КАК Номенклатура,
| ТаблицаЗаказы.Характеристика КАК Характеристика,
| ТаблицаЗаказы.КодСтроки КАК КодСтроки,
| ТаблицаЗаказы.Склад КАК Склад,
| СправочникНоменклатуры.КодТНВЭД КАК КодТНВЭД,
| СУММА(ТаблицаЗаказы.КОформлению) КАК Количество,
| СУММА(ТаблицаЗаказы.Сумма) КАК Сумма,
| СУММА(ТаблицаЗаказы.СуммаНДСРегл) КАК СуммаНДСРегл,
| СУММА(ТаблицаЗаказы.СуммаНДСУпр) КАК СуммаНДСУпр
|ПОМЕСТИТЬ ТаблицаОстатки
|ИЗ
| (ВЫБРАТЬ
| РаспоряженияНаОтгрузкуИВозвратОбороты.Распоряжение КАК ЗаказКлиента,
| РаспоряженияНаОтгрузкуИВозвратОбороты.Номенклатура КАК Номенклатура,
| РаспоряженияНаОтгрузкуИВозвратОбороты.Характеристика КАК Характеристика,
| РаспоряженияНаОтгрузкуИВозвратОбороты.КодСтроки КАК КодСтроки,
| МАКСИМУМ(РаспоряженияНаОтгрузкуИВозвратОбороты.Склад) КАК Склад,
| СУММА(РаспоряженияНаОтгрузкуИВозвратОбороты.КОтгрузкеКоличество
| - РаспоряженияНаОтгрузкуИВозвратОбороты.ОтгруженоКоличество) КАК КОформлению,
| СУММА(РаспоряженияНаОтгрузкуИВозвратОбороты.КОтгрузкеСумма
| - РаспоряженияНаОтгрузкуИВозвратОбороты.ОтгруженоСумма) КАК Сумма,
| СУММА(РаспоряженияНаОтгрузкуИВозвратОбороты.ОформленоСчетовФактурСуммаНДСРегл
| - РаспоряженияНаОтгрузкуИВозвратОбороты.ОформленоСуммаНДСРегл) КАК СуммаНДСРегл,
| СУММА(РаспоряженияНаОтгрузкуИВозвратОбороты.ОформленоСчетовФактурСуммаНДСУпр
| - РаспоряженияНаОтгрузкуИВозвратОбороты.ОформленоСуммаНДСУпр) КАК СуммаНДСУпр
| ИЗ
| (
| ВЫБРАТЬ
| ТаблицаОбороты.Распоряжение КАК Распоряжение,
| ТаблицаОбороты.Номенклатура КАК Номенклатура,
| ТаблицаОбороты.Характеристика КАК Характеристика,
| ТаблицаОбороты.КодСтроки КАК КодСтроки,
| ТаблицаОбороты.Склад КАК Склад,
| ВЫБОР
| КОГДА ТаблицаОбороты.Показатель = ЗНАЧЕНИЕ(Перечисление.ПоказателиРаспоряженийНаОтгрузкуИВозврат.КОтгрузке)
| ТОГДА ТаблицаОбороты.КоличествоОборот
| ИНАЧЕ
| 0
| КОНЕЦ КАК КОтгрузкеКоличество,
| ВЫБОР
| КОГДА ТаблицаОбороты.Показатель = ЗНАЧЕНИЕ(Перечисление.ПоказателиРаспоряженийНаОтгрузкуИВозврат.КОтгрузке)
| ТОГДА ТаблицаОбороты.СуммаОборот
| ИНАЧЕ
| 0
| КОНЕЦ КАК КОтгрузкеСумма,
| ВЫБОР
| КОГДА ТаблицаОбороты.Показатель = ЗНАЧЕНИЕ(Перечисление.ПоказателиРаспоряженийНаОтгрузкуИВозврат.Отгружено)
| ТОГДА ТаблицаОбороты.КоличествоОборот
| ИНАЧЕ
| 0
| КОНЕЦ КАК ОтгруженоКоличество,
| ВЫБОР
| КОГДА ТаблицаОбороты.Показатель = ЗНАЧЕНИЕ(Перечисление.ПоказателиРаспоряженийНаОтгрузкуИВозврат.Отгружено)
| ТОГДА ТаблицаОбороты.СуммаОборот
| ИНАЧЕ
| 0
| КОНЕЦ КАК ОтгруженоСумма,
| ВЫБОР
| КОГДА ТаблицаОбороты.Показатель = ЗНАЧЕНИЕ(Перечисление.ПоказателиРаспоряженийНаОтгрузкуИВозврат.Оформлено)
| ТОГДА ТаблицаОбороты.СуммаНДСУпрОборот
| ИНАЧЕ
| 0
| КОНЕЦ КАК ОформленоСуммаНДСУпр,
| ВЫБОР
| КОГДА ТаблицаОбороты.Показатель = ЗНАЧЕНИЕ(Перечисление.ПоказателиРаспоряженийНаОтгрузкуИВозврат.Оформлено)
| ТОГДА ТаблицаОбороты.СуммаНДСРеглОборот
| ИНАЧЕ
| 0
| КОНЕЦ КАК ОформленоСуммаНДСРегл,
| ВЫБОР
| КОГДА ТаблицаОбороты.Показатель = ЗНАЧЕНИЕ(Перечисление.ПоказателиРаспоряженийНаОтгрузкуИВозврат.ОформленоСчетовФактур)
| ТОГДА ТаблицаОбороты.СуммаНДСУпрОборот
| ИНАЧЕ
| 0
| КОНЕЦ КАК ОформленоСчетовФактурСуммаНДСУпр,
| ВЫБОР
| КОГДА ТаблицаОбороты.Показатель = ЗНАЧЕНИЕ(Перечисление.ПоказателиРаспоряженийНаОтгрузкуИВозврат.ОформленоСчетовФактур)
| ТОГДА ТаблицаОбороты.СуммаНДСРеглОборот
| ИНАЧЕ
| 0
| КОНЕЦ КАК ОформленоСчетовФактурСуммаНДСРегл
| ИЗ
| РегистрНакопления.РаспоряженияНаОтгрузкуИВозврат.Обороты(
| ,
| ,
| ,
| (Распоряжение, &ЭтоЗаказКакСчет) В
| (ВЫБРАТЬ
| ВТЗаказы.Ссылка,
| ВТЗаказы.ЭтоЗаказКакСчет
| ИЗ
| ВТЗаказы)
| И ВЫБОР
| КОГДА ВЫРАЗИТЬ(&СкладРеализации КАК Справочник.Склады).ЭтоГруппа
| ТОГДА Склад В ИЕРАРХИИ (&СкладРеализации)
| ИЛИ Склад = ЗНАЧЕНИЕ(Справочник.Склады.ПустаяСсылка)
| ИНАЧЕ
| Склад В (
| ЗНАЧЕНИЕ(Справочник.Склады.ПустаяСсылка),
| &СкладРеализации
| )
| КОНЕЦ
| И Номенклатура.ВариантОформленияПродажи В (&МассивВариантовОформления)
| И (&НеОтбиратьПоОсобенностямУчета
| ИЛИ Номенклатура.ОсобенностьУчета В (&ОсобенностиУчетаНоменклатуры)
| И Показатель В (
| ЗНАЧЕНИЕ(Перечисление.ПоказателиРаспоряженийНаОтгрузкуИВозврат.КОтгрузке),
| ЗНАЧЕНИЕ(Перечисление.ПоказателиРаспоряженийНаОтгрузкуИВозврат.Отгружено),
| ЗНАЧЕНИЕ(Перечисление.ПоказателиРаспоряженийНаОтгрузкуИВозврат.Оформлено),
| ЗНАЧЕНИЕ(Перечисление.ПоказателиРаспоряженийНаОтгрузкуИВозврат.ОформленоСчетовФактур)
| )
| )
| ) КАК ТаблицаОбороты
| ) КАК РаспоряженияНаОтгрузкуИВозвратОбороты
| ГДЕ
| &ХозяйственнаяОперация <> ЗНАЧЕНИЕ(Перечисление.ХозяйственныеОперации.ПереходПраваСобственности)
|
| СГРУППИРОВАТЬ ПО
| РаспоряженияНаОтгрузкуИВозвратОбороты.Распоряжение,
| РаспоряженияНаОтгрузкуИВозвратОбороты.Номенклатура,
| РаспоряженияНаОтгрузкуИВозвратОбороты.Характеристика,
| РаспоряженияНаОтгрузкуИВозвратОбороты.КодСтроки
|
| ИМЕЮЩИЕ
| СУММА(РаспоряженияНаОтгрузкуИВозвратОбороты.КОтгрузкеКоличество
| - РаспоряженияНаОтгрузкуИВозвратОбороты.ОтгруженоКоличество) <> 0
| ИЛИ СУММА(РаспоряженияНаОтгрузкуИВозвратОбороты.КОтгрузкеСумма
| - РаспоряженияНаОтгрузкуИВозвратОбороты.ОтгруженоСумма) <> 0
| ИЛИ СУММА(РаспоряженияНаОтгрузкуИВозвратОбороты.ОформленоСчетовФактурСуммаНДСРегл
| - РаспоряженияНаОтгрузкуИВозвратОбороты.ОформленоСуммаНДСРегл) <> 0
| ИЛИ СУММА(РаспоряженияНаОтгрузкуИВозвратОбороты.ОформленоСчетовФактурСуммаНДСУпр
| - РаспоряженияНаОтгрузкуИВозвратОбороты.ОформленоСуммаНДСУпр) <> 0
|
| ОБЪЕДИНИТЬ ВСЕ
|
| ВЫБРАТЬ
| РаспоряженияНаОтгрузкуИВозвратОбороты.Распоряжение КАК ЗаказКлиента,
| РаспоряженияНаОтгрузкуИВозвратОбороты.Номенклатура КАК Номенклатура,
| РаспоряженияНаОтгрузкуИВозвратОбороты.Характеристика КАК Характеристика,
| РаспоряженияНаОтгрузкуИВозвратОбороты.КодСтроки КАК КодСтроки,
| ЗНАЧЕНИЕ(Справочник.Склады.ПустаяСсылка) КАК Склад,
| СУММА(РаспоряженияНаОтгрузкуИВозвратОбороты.ОтгруженоКоличество
| + РаспоряженияНаОтгрузкуИВозвратОбороты.ОприходованоДоППСКоличество
| - РаспоряженияНаОтгрузкуИВозвратОбороты.СписаноДоППСКоличество
| - РаспоряженияНаОтгрузкуИВозвратОбороты.ПринятоКоличество
| - РаспоряженияНаОтгрузкуИВозвратОбороты.ОформленоКоличество) КАК КОформлению,
| СУММА(РаспоряженияНаОтгрузкуИВозвратОбороты.ОтгруженоСумма
| + РаспоряженияНаОтгрузкуИВозвратОбороты.ОприходованоДоППССумма
| - РаспоряженияНаОтгрузкуИВозвратОбороты.СписаноДоППССумма
| - РаспоряженияНаОтгрузкуИВозвратОбороты.ПринятоСумма
| - РаспоряженияНаОтгрузкуИВозвратОбороты.ОформленоСумма) КАК Сумма,
| СУММА(РаспоряженияНаОтгрузкуИВозвратОбороты.ОформленоСчетовФактурСуммаНДСРегл
| - РаспоряженияНаОтгрузкуИВозвратОбороты.ОформленоСуммаНДСРегл) КАК СуммаНДСРегл,
| СУММА(РаспоряженияНаОтгрузкуИВозвратОбороты.ОформленоСчетовФактурСуммаНДСУпр
| - РаспоряженияНаОтгрузкуИВозвратОбороты.ОформленоСуммаНДСУпр) КАК СуммаНДСУпр
| ИЗ
| #РаспоряженияНаОтгрузкуОборотыРазвернутая2 КАК РаспоряженияНаОтгрузкуИВозвратОбороты
| ГДЕ
| &ХозяйственнаяОперация = ЗНАЧЕНИЕ(Перечисление.ХозяйственныеОперации.ПереходПраваСобственности)
|
| СГРУППИРОВАТЬ ПО
| РаспоряженияНаОтгрузкуИВозвратОбороты.Распоряжение,
| РаспоряженияНаОтгрузкуИВозвратОбороты.Номенклатура,
| РаспоряженияНаОтгрузкуИВозвратОбороты.Характеристика,
| РаспоряженияНаОтгрузкуИВозвратОбороты.КодСтроки
|
| ИМЕЮЩИЕ
| СУММА(РаспоряженияНаОтгрузкуИВозвратОбороты.ОтгруженоКоличество
| + РаспоряженияНаОтгрузкуИВозвратОбороты.ОприходованоДоППСКоличество
| - РаспоряженияНаОтгрузкуИВозвратОбороты.СписаноДоППСКоличество
| - РаспоряженияНаОтгрузкуИВозвратОбороты.ПринятоКоличество
| - РаспоряженияНаОтгрузкуИВозвратОбороты.ОформленоКоличество) <> 0
| ИЛИ СУММА(РаспоряженияНаОтгрузкуИВозвратОбороты.ОтгруженоСумма
| + РаспоряженияНаОтгрузкуИВозвратОбороты.ОприходованоДоППССумма
| - РаспоряженияНаОтгрузкуИВозвратОбороты.СписаноДоППССумма
| - РаспоряженияНаОтгрузкуИВозвратОбороты.ПринятоСумма
| - РаспоряженияНаОтгрузкуИВозвратОбороты.ОформленоСумма) <> 0
| ИЛИ СУММА(РаспоряженияНаОтгрузкуИВозвратОбороты.ОформленоСчетовФактурСуммаНДСРегл
| - РаспоряженияНаОтгрузкуИВозвратОбороты.ОформленоСуммаНДСРегл) <> 0
| ИЛИ СУММА(РаспоряженияНаОтгрузкуИВозвратОбороты.ОформленоСчетовФактурСуммаНДСУпр
| - РаспоряженияНаОтгрузкуИВозвратОбороты.ОформленоСуммаНДСУпр) <> 0
|
| ОБЪЕДИНИТЬ ВСЕ
|
| ВЫБРАТЬ
| РаспоряженияОтгружено.Распоряжение КАК ЗаказКлиента,
| РаспоряженияОтгружено.Номенклатура КАК Номенклатура,
| РаспоряженияОтгружено.Характеристика КАК Характеристика,
| РаспоряженияОтгружено.КодСтроки КАК КодСтроки,
| ЗНАЧЕНИЕ(Справочник.Склады.ПустаяСсылка) КАК Склад,
| ВЫБОР
| КОГДА РаспоряженияОтгружено.ОтгруженоКоличество < ЕСТЬNULL(РаспоряженияОформленоОбороты.КОформлению, 0)
| ТОГДА РаспоряженияОтгружено.ОтгруженоКоличество
| ИНАЧЕ
| ЕСТЬNULL(РаспоряженияОформленоОбороты.КОформлению, 0)
| КОНЕЦ КАК КОформлению,
| ВЫБОР
| КОГДА РаспоряженияОтгружено.ОтгруженоСумма < ЕСТЬNULL(РаспоряженияОформленоОбороты.Сумма, 0)
| ТОГДА РаспоряженияОтгружено.ОтгруженоСумма
| ИНАЧЕ
| ЕСТЬNULL(РаспоряженияОформленоОбороты.Сумма, 0)
| КОНЕЦ КАК Сумма,
| ЕСТЬNULL(РаспоряженияОформленоОбороты.СуммаНДСРегл, 0) КАК СуммаНДСРегл,
| ЕСТЬNULL(РаспоряженияОформленоОбороты.СуммаНДСУпр, 0) КАК СуммаНДСУпр
| ИЗ
| #РаспоряженияНаОтгрузкуДвиженияРазвернутая3 КАК РаспоряженияОтгружено
| ЛЕВОЕ СОЕДИНЕНИЕ ВТРаспоряженияОформленоОтгрузкиПоРаспоряжениям КАК РаспоряженияОформленоОбороты
| ПО РаспоряженияОтгружено.Распоряжение = РаспоряженияОформленоОбороты.Распоряжение
| И РаспоряженияОтгружено.Номенклатура = РаспоряженияОформленоОбороты.Номенклатура
| И РаспоряженияОтгружено.Характеристика = РаспоряженияОформленоОбороты.Характеристика
| И РаспоряженияОтгружено.КодСтроки = РаспоряженияОформленоОбороты.КодСтроки
| ГДЕ
| &ХозяйственнаяОперация = ЗНАЧЕНИЕ(Перечисление.ХозяйственныеОперации.ПереходПраваСобственности)
| И (ВЫБОР
| КОГДА РаспоряженияОтгружено.ОтгруженоКоличество < ЕСТЬNULL(РаспоряженияОформленоОбороты.КОформлению, 0)
| ТОГДА РаспоряженияОтгружено.ОтгруженоКоличество
| ИНАЧЕ
| ЕСТЬNULL(РаспоряженияОформленоОбороты.КОформлению, 0)
| КОНЕЦ <> 0
| ИЛИ ВЫБОР
| КОГДА РаспоряженияОтгружено.ОтгруженоСумма < ЕСТЬNULL(РаспоряженияОформленоОбороты.Сумма, 0)
| ТОГДА РаспоряженияОтгружено.ОтгруженоСумма
| ИНАЧЕ
| ЕСТЬNULL(РаспоряженияОформленоОбороты.Сумма, 0)
| КОНЕЦ <> 0
| ИЛИ ЕСТЬNULL(РаспоряженияОформленоОбороты.СуммаНДСРегл, 0) <> 0
| ИЛИ ЕСТЬNULL(РаспоряженияОформленоОбороты.СуммаНДСУпр, 0) <> 0)
|
| ОБЪЕДИНИТЬ ВСЕ
|
| ВЫБРАТЬ
| РаспоряженияДвижения.Распоряжение КАК ЗаказКлиента,
| РаспоряженияДвижения.Номенклатура КАК Номенклатура,
| РаспоряженияДвижения.Характеристика КАК Характеристика,
| РаспоряженияДвижения.КодСтроки КАК КодСтроки,
| РаспоряженияДвижения.Склад КАК Склад,
| РаспоряженияДвижения.Количество КАК КОформлению,
| РаспоряженияДвижения.Сумма КАК Сумма,
| РаспоряженияДвижения.СуммаНДСРегл КАК СуммаНДСРегл,
| РаспоряженияДвижения.СуммаНДСУпр КАК СуммаНДСУпр
| ИЗ
| РегистрНакопления.РаспоряженияНаОтгрузкуИВозврат КАК РаспоряженияДвижения
| ГДЕ
| РаспоряженияДвижения.Регистратор = &Регистратор
| И ВЫБОР
| КОГДА &ХозяйственнаяОперация <> ЗНАЧЕНИЕ(Перечисление.ХозяйственныеОперации.ПереходПраваСобственности)
| ТОГДА РаспоряженияДвижения.Показатель = ЗНАЧЕНИЕ(Перечисление.ПоказателиРаспоряженийНаОтгрузкуИВозврат.Отгружено)
| ИНАЧЕ
| РаспоряженияДвижения.Показатель = ЗНАЧЕНИЕ(Перечисление.ПоказателиРаспоряженийНаОтгрузкуИВозврат.Оформлено)
| КОНЕЦ
| И (РаспоряженияДвижения.Распоряжение, &ЭтоЗаказКакСчет) В
| (ВЫБРАТЬ
| ВТЗаказы.Ссылка,
| ВТЗаказы.ЭтоЗаказКакСчет
| ИЗ
| ВТЗаказы)
| И РаспоряженияДвижения.Активность
| И ВЫБОР
| КОГДА &СкладРеализации = ЗНАЧЕНИЕ(Справочник.Склады.ПустаяСсылка)
| ТОГДА ИСТИНА
| КОГДА ВЫРАЗИТЬ(&СкладРеализации КАК Справочник.Склады).ЭтоГруппа
| ТОГДА РаспоряженияДвижения.Склад В ИЕРАРХИИ (&СкладРеализации)
| ИЛИ РаспоряженияДвижения.Склад = ЗНАЧЕНИЕ(Справочник.Склады.ПустаяСсылка)
| ИНАЧЕ РаспоряженияДвижения.Склад В (ЗНАЧЕНИЕ(Справочник.Склады.ПустаяСсылка), &СкладРеализации)
| КОНЕЦ
| И РаспоряженияДвижения.Номенклатура.ВариантОформленияПродажи В(&МассивВариантовОформления)
| И (&НеОтбиратьПоОсобенностямУчета
| ИЛИ РаспоряженияДвижения.Номенклатура.ОсобенностьУчета В (&ОсобенностиУчетаНоменклатуры))
|
| ОБЪЕДИНИТЬ ВСЕ
|
| ВЫБРАТЬ
| ЗаказКлиентаТовары.Ссылка,
| ЗаказКлиентаТовары.Номенклатура,
| ЗаказКлиентаТовары.Характеристика,
| ЗаказКлиентаТовары.КодСтроки,
| ЗаказКлиентаТовары.Склад,
| ЗаказКлиентаТовары.Количество,
| ЗаказКлиентаТовары.СуммаСНДС,
| 0,
| 0
| ИЗ
| Документ.ЗаказКлиента.Товары КАК ЗаказКлиентаТовары
| ГДЕ
| (ЗаказКлиентаТовары.Ссылка, &ЭтоЗаказКакСчет, ИСТИНА) В
| (ВЫБРАТЬ
| ВТЗаказы.Ссылка,
| ВТЗаказы.ЭтоЗаказКакСчет,
| ВТЗаказы.ЭтоЗаказКакСчет
| ИЗ
| ВТЗаказы)
| И ЗаказКлиентаТовары.Номенклатура.ВариантОформленияПродажи В(&МассивВариантовОформления)
| И (&НеОтбиратьПоОсобенностямУчета
| ИЛИ ЗаказКлиентаТовары.Номенклатура.ОсобенностьУчета В (&ОсобенностиУчетаНоменклатуры))
| И НЕ ЗаказКлиентаТовары.Отменено
| И НЕ ЗаказКлиентаТовары.Ссылка.ПометкаУдаления
| И ВЫБОР
| КОГДА ВЫРАЗИТЬ(&СкладРеализации КАК Справочник.Склады).ЭтоГруппа
| ТОГДА ЗаказКлиентаТовары.Склад В ИЕРАРХИИ (&СкладРеализации)
| ИЛИ ЗаказКлиентаТовары.Склад = ЗНАЧЕНИЕ(Справочник.Склады.ПустаяСсылка)
| ИНАЧЕ ЗаказКлиентаТовары.Склад В (ЗНАЧЕНИЕ(Справочник.Склады.ПустаяСсылка), &СкладРеализации)
| КОНЕЦ
|
| ОБЪЕДИНИТЬ ВСЕ
|
| ВЫБРАТЬ
| ЗаказКлиентаТовары.Ссылка,
| ЗаказКлиентаТовары.Номенклатура,
| ЗаказКлиентаТовары.Характеристика,
| ЗаказКлиентаТовары.КодСтроки,
| ЗаказКлиентаТовары.Склад,
| ЗаказКлиентаТовары.Количество,
| ЗаказКлиентаТовары.СуммаСНДС,
| 0,
| 0
| ИЗ
| Документ.ЗаявкаНаВозвратТоваровОтКлиента.ЗаменяющиеТовары КАК ЗаказКлиентаТовары
| ГДЕ
| (ЗаказКлиентаТовары.Ссылка, &ЭтоЗаказКакСчет, ИСТИНА) В
| (ВЫБРАТЬ
| ВТЗаказы.Ссылка,
| ВТЗаказы.ЭтоЗаказКакСчет,
| ВТЗаказы.ЭтоЗаказКакСчет
| ИЗ
| ВТЗаказы)
| И ЗаказКлиентаТовары.Номенклатура.ВариантОформленияПродажи В(&МассивВариантовОформления)
| И (&НеОтбиратьПоОсобенностямУчета
| ИЛИ ЗаказКлиентаТовары.Номенклатура.ОсобенностьУчета В (&ОсобенностиУчетаНоменклатуры))
| И НЕ ЗаказКлиентаТовары.Отменено
| И НЕ ЗаказКлиентаТовары.Ссылка.ПометкаУдаления) КАК ТаблицаЗаказы
| ЛЕВОЕ СОЕДИНЕНИЕ Справочник.Номенклатура КАК СправочникНоменклатуры
| ПО (СправочникНоменклатуры.Ссылка = ТаблицаЗаказы.Номенклатура)
|
|СГРУППИРОВАТЬ ПО
| ТаблицаЗаказы.ЗаказКлиента,
| ТаблицаЗаказы.Номенклатура,
| ТаблицаЗаказы.Характеристика,
| ТаблицаЗаказы.КодСтроки,
| ТаблицаЗаказы.Склад,
| СправочникНоменклатуры.КодТНВЭД
|
|ИМЕЮЩИЕ
| СУММА(ТаблицаЗаказы.КОформлению) > 0
|
|ИНДЕКСИРОВАТЬ ПО
| Номенклатура,
| Характеристика,
| КодСтроки,
| ЗаказКлиента
|;
|
|
|ВЫБРАТЬ
| Распоряжение КАК Ссылка,
| МАКСИМУМ(Регистратор) КАК ИсправлениеСсылка
|ПОМЕСТИТЬ ТаблицаИсправлений
|ИЗ
| РегистрНакопления.РаспоряженияНаОтгрузкуИВозврат
|ГДЕ
| Распоряжение В
| (ВЫБРАТЬ
| Ссылка
| ИЗ
| ВТЗаказы)
| И ТИПЗНАЧЕНИЯ(Регистратор) = ТИП(Документ.ОтгрузкаТоваровКлиенту)
| И ТИПЗНАЧЕНИЯ(Распоряжение) = ТИП(Документ.ОтгрузкаТоваровКлиенту)
|СГРУППИРОВАТЬ ПО
| Распоряжение
|;
|
|
|ВЫБРАТЬ
| СтавкиНДСНоменклатуры.Номенклатура,
| СтавкиНДСНоменклатуры.СтавкаНДС КАК СтавкаНДС
|ПОМЕСТИТЬ СтавкиНДСНоменклатуры
|ИЗ
| РегистрСведений.СтавкиНДСНоменклатуры.СрезПоследних(
| &Дата,
| (Страна = &СтранаРегистрации
| ИЛИ Страна = ЗНАЧЕНИЕ(Справочник.СтраныМира.ПустаяСсылка))
| И Номенклатура В (ВЫБРАТЬ
| Номенклатура
| ИЗ
| ТаблицаОстатки)
| ) КАК СтавкиНДСНоменклатуры
|;
|
|
|ВЫБРАТЬ
| ОсновныеСтавкиНДС.СтавкаНДС КАК СтавкаНДС
|ПОМЕСТИТЬ ОсновныеСтавкиНДС
|ИЗ
| РегистрСведений.ОсновныеСтавкиНДС.СрезПоследних(
| &Дата,
| Страна = &СтранаРегистрации
| ) КАК ОсновныеСтавкиНДС
|;
|
|
|ВЫБРАТЬ
| ТаблицаОстатки.ЗаказКлиента КАК ЗаказКлиента,
| ЗаказТовары.Ссылка.ПорядокРасчетов КАК ПорядокРасчетов,
| ТаблицаОстатки.Номенклатура КАК Номенклатура,
| ЗаказТовары.НоменклатураПартнера КАК НоменклатураПартнера,
| ТаблицаОстатки.Характеристика КАК Характеристика,
| ТаблицаОстатки.КодСтроки КАК КодСтроки,
| ТаблицаОстатки.Количество КАК Количество,
| ТаблицаОстатки.Сумма КАК СуммаВзаиморасчетов,
| ТаблицаОстатки.Склад КАК Склад,
| ВЫБОР
| КОГДА &ХозяйственнаяОперация = ЗНАЧЕНИЕ(Перечисление.ХозяйственныеОперации.ПереходПраваСобственности)
| ТОГДА ТаблицаОстатки.Количество
| ИНАЧЕ 0
| КОНЕЦ КАК КоличествоВПути,
| ЕСТЬNULL(НакладнаяТовары.Количество, 0) КАК КоличествоВНакладной,
| ЗаказТовары.НомерСтроки КАК НомерСтроки,
| ЗаказТовары.Ссылка.Сделка КАК Сделка,
| ЗаказТовары.ДатаОтгрузки КАК ДатаОтгрузки,
| ЕСТЬNULL(НакладнаяТовары.Упаковка, ЗаказТовары.Упаковка) КАК Упаковка,
| ЗаказТовары.Серия КАК Серия,
| ЗаказТовары.ВидЦены КАК ВидЦены,
| ЗаказТовары.Количество КАК КоличествоВЗаказе,
| ЗаказТовары.Цена КАК Цена,
| ЗаказТовары.СтавкаНДС КАК СтавкаНДС,
| ВЫБОР
| КОГДА &НалогообложениеНДСЭкспорт
| ТОГДА ТаблицаОстатки.КодТНВЭД
| ИНАЧЕ ЗНАЧЕНИЕ(Справочник.КлассификаторТНВЭД.ПустаяСсылка)
| КОНЕЦ КАК КодТНВЭД,
| ЗаказТовары.Сумма КАК Сумма,
| ЗаказТовары.СуммаНДС КАК СуммаНДС,
| ТаблицаОстатки.СуммаНДСРегл КАК СуммаНДСРегл,
| ТаблицаОстатки.СуммаНДСУпр КАК СуммаНДСУпр,
| ЗаказТовары.СуммаСНДС КАК СуммаСНДС,
| ЗаказТовары.ПроцентРучнойСкидки КАК ПроцентРучнойСкидки,
| ЗаказТовары.СуммаРучнойСкидки КАК СуммаРучнойСкидки,
| ЗаказТовары.ПроцентАвтоматическойСкидки КАК ПроцентАвтоматическойСкидки,
| ЗаказТовары.СуммаАвтоматическойСкидки КАК СуммаАвтоматическойСкидки,
| ЗаказТовары.СуммаБонусныхБалловКСписанию КАК СуммаБонусныхБалловКСписанию,
| ЗаказТовары.СуммаБонусныхБалловКСписаниюВВалюте КАК СуммаБонусныхБалловКСписаниюВВалюте,
| ЗаказТовары.СуммаНачисленныхБонусныхБалловВВалюте КАК СуммаНачисленныхБонусныхБалловВВалюте,
| ЗаказТовары.Номенклатура.ТипНоменклатуры КАК ТипНоменклатуры,
| ЗаказТовары.НоменклатураНабора КАК НоменклатураНабора,
| ЗаказТовары.ХарактеристикаНабора КАК ХарактеристикаНабора,
| ЗаказТовары.Подразделение КАК Подразделение,
| ЗаказТовары.КлючСвязи КАК КлючСвязи,
| ВЫБОР
| КОГДА ЕСТЬNULL(НакладнаяТовары.Упаковка, ЗаказТовары.Упаковка) = ЗНАЧЕНИЕ(Справочник.УпаковкиЕдиницыИзмерения.ПустаяСсылка)
| ТОГДА 1
| ИНАЧЕ ЕСТЬNULL(ЕСТЬNULL(&ТекстЗапросаКоэффициентУпаковки1, &ТекстЗапросаКоэффициентУпаковки2), 1)
| КОНЕЦ КАК Коэффициент,
| ТаблицаОстатки.Количество /
| ЕСТЬNULL(
| ЕСТЬNULL(&ТекстЗапросаКоэффициентУпаковки1, &ТекстЗапросаКоэффициентУпаковки2),
| 1) КАК КоличествоУпаковок,
| ЗаказТовары.СрокПоставки КАК СрокПоставки,
| ЗаказТовары.ВариантОбеспечения КАК ВариантОбеспечения,
| ВЫБОР
| КОГДА ЗаказТовары.Обособленно
| ТОГДА ТаблицаОстатки.ЗаказКлиента.Назначение
| ИНАЧЕ ЗНАЧЕНИЕ(Справочник.Назначения.ПустаяСсылка)
| КОНЕЦ КАК Назначение,
| ЗаказТоварыСклад.ИспользоватьОрдернуюСхемуПриОтгрузке = ИСТИНА
| И ЗаказТоварыСклад.ДатаНачалаОрдернойСхемыПриОтгрузке <=
| &ТекущаяДата КАК ОрдернаяСхемаПриОтгрузке,
| ВЫБОР
| КОГДА ЗаказТовары.Номенклатура.ТипНоменклатуры В (ЗНАЧЕНИЕ(Перечисление.ТипыНоменклатуры.Услуга), ЗНАЧЕНИЕ(Перечисление.ТипыНоменклатуры.Работа))
| ТОГДА ЛОЖЬ
| ИНАЧЕ ЗаказТоварыСклад.ИспользоватьОрдернуюСхемуПриОтгрузке = ИСТИНА
| И ЗаказТоварыСклад.ДатаНачалаОрдернойСхемыПриОтгрузке <= &ТекущаяДата
| КОНЕЦ КАК ПроверятьОтгрузку
|ИЗ
| ТаблицаОстатки КАК ТаблицаОстатки
| ВНУТРЕННЕЕ СОЕДИНЕНИЕ Документ.ЗаказКлиента.Товары КАК ЗаказТовары
| ПО ТаблицаОстатки.Номенклатура = ЗаказТовары.Номенклатура
| И ТаблицаОстатки.Характеристика = ЗаказТовары.Характеристика
| И ТаблицаОстатки.КодСтроки = ЗаказТовары.КодСтроки
| И ТаблицаОстатки.ЗаказКлиента = ЗаказТовары.Ссылка
| ЛЕВОЕ СОЕДИНЕНИЕ Справочник.Склады КАК ЗаказТоварыСклад
| ПО (ЗаказТоварыСклад.Ссылка = ЗаказТовары.Склад)
| ЛЕВОЕ СОЕДИНЕНИЕ ВтТоварыРеализацииПоЗаказу КАК НакладнаяТовары
| ПО ТаблицаОстатки.Номенклатура = НакладнаяТовары.Номенклатура
| И ТаблицаОстатки.Характеристика = НакладнаяТовары.Характеристика
| И ТаблицаОстатки.КодСтроки = НакладнаяТовары.КодСтроки
| И ТаблицаОстатки.ЗаказКлиента = НакладнаяТовары.ЗаказКлиента
|
|ОБЪЕДИНИТЬ ВСЕ
|
|ВЫБРАТЬ
| ТаблицаОстатки.ЗаказКлиента КАК ЗаказКлиента,
| ЗНАЧЕНИЕ(Перечисление.ПорядокРасчетов.ПустаяСсылка) КАК ПорядокРасчетов,
| ТаблицаОстатки.Номенклатура КАК Номенклатура,
| ЗНАЧЕНИЕ(Справочник.НоменклатураКонтрагентов.ПустаяСсылка) КАК НоменклатураПартнера,
| ТаблицаОстатки.Характеристика КАК Характеристика,
| ТаблицаОстатки.КодСтроки КАК КодСтроки,
| ТаблицаОстатки.Количество КАК Количество,
| ТаблицаОстатки.Сумма КАК СуммаВзаиморасчетов,
| ТаблицаОстатки.Склад КАК Склад,
| ТаблицаОстатки.Количество КАК КоличествоВПути,
| ЕСТЬNULL(НакладнаяТовары.Количество, 0) КАК КоличествоВНакладной,
| ОтгрузкаТовары.НомерСтроки КАК НомерСтроки,
| ОтгрузкаТовары.Ссылка.Сделка КАК Сделка,
| ОтгрузкаТовары.Ссылка.Дата КАК ДатаОтгрузки,
| ЕСТЬNULL(НакладнаяТовары.Упаковка, ОтгрузкаТовары.Упаковка) КАК Упаковка,
| ОтгрузкаТовары.Серия КАК Серия,
| ОтгрузкаТовары.ВидЦены КАК ВидЦены,
| ОтгрузкаТовары.Количество КАК КоличествоВЗаказе,
| ВЫБОР
| КОГДА ОтгрузкаТовары.Упаковка = ЗНАЧЕНИЕ(Справочник.УпаковкиЕдиницыИзмерения.ПустаяСсылка)
| ТОГДА ТаблицаОстатки.Сумма / ТаблицаОстатки.Количество
| ИНАЧЕ
| ТаблицаОстатки.Сумма / ТаблицаОстатки.Количество
| * &ТекстЗапросаКоэффициентУпаковки4
| КОНЕЦ КАК Цена,
| &СтавкаНДСОтгрузкаТоваровБезРаспоряжения КАК СтавкаНДС,
| ВЫБОР
| КОГДА &НалогообложениеНДСЭкспорт
| ТОГДА ТаблицаОстатки.КодТНВЭД
| ИНАЧЕ ЗНАЧЕНИЕ(Справочник.КлассификаторТНВЭД.ПустаяСсылка)
| КОНЕЦ КАК КодТНВЭД,
| ТаблицаОстатки.Сумма КАК Сумма,
| 0 КАК СуммаНДС,
| ТаблицаОстатки.СуммаНДСРегл КАК СуммаНДСРегл,
| ТаблицаОстатки.СуммаНДСУпр КАК СуммаНДСУпр,
| ТаблицаОстатки.Сумма КАК СуммаСНДС,
| 0 КАК ПроцентРучнойСкидки,
| 0 КАК СуммаРучнойСкидки,
| 0 КАК ПроцентАвтоматическойСкидки,
| 0 КАК СуммаАвтоматическойСкидки,
| 0 КАК СуммаБонусныхБалловКСписанию,
| 0 КАК СуммаБонусныхБалловКСписаниюВВалюте,
| 0 КАК СуммаНачисленныхБонусныхБалловВВалюте,
| ТаблицаОстатки.Номенклатура.ТипНоменклатуры КАК ТипНоменклатуры,
| ОтгрузкаТовары.НоменклатураНабора КАК НоменклатураНабора,
| ОтгрузкаТовары.ХарактеристикаНабора КАК ХарактеристикаНабора,
| ОтгрузкаТовары.Ссылка.Подразделение КАК Подразделение,
| 0 КАК КлючСвязи,
| ВЫБОР
| КОГДА ЕСТЬNULL(НакладнаяТовары.Упаковка, ОтгрузкаТовары.Упаковка) = ЗНАЧЕНИЕ(Справочник.УпаковкиЕдиницыИзмерения.ПустаяСсылка)
| ТОГДА 1
| ИНАЧЕ ЕСТЬNULL(ЕСТЬNULL(&ТекстЗапросаКоэффициентУпаковки1, &ТекстЗапросаКоэффициентУпаковки4), 1)
| КОНЕЦ КАК Коэффициент,
| ТаблицаОстатки.Количество /
| ЕСТЬNULL(
| ЕСТЬNULL(&ТекстЗапросаКоэффициентУпаковки1, &ТекстЗапросаКоэффициентУпаковки4),
| 1) КАК КоличествоУпаковок,
| ОтгрузкаТовары.СрокПоставки КАК СрокПоставки,
| ЗНАЧЕНИЕ(Перечисление.ВариантыОбеспечения.ПустаяСсылка) КАК ВариантОбеспечения,
| ВЫБОР
| КОГДА ОтгрузкаТовары.Обособленно
| ТОГДА ОтгрузкаТовары.Назначение
| ИНАЧЕ ЗНАЧЕНИЕ(Справочник.Назначения.ПустаяСсылка)
| КОНЕЦ КАК Назначение,
| ОтгрузкаТовары.Склад.ИспользоватьОрдернуюСхемуПриОтгрузке = ИСТИНА
| И ОтгрузкаТовары.Склад.ДатаНачалаОрдернойСхемыПриОтгрузке <=
| &ТекущаяДата КАК ОрдернаяСхемаПриОтгрузке,
| ОтгрузкаТовары.Склад.ИспользоватьОрдернуюСхемуПриОтгрузке = ИСТИНА
| И ОтгрузкаТовары.Склад.ДатаНачалаОрдернойСхемыПриОтгрузке <=
| &ТекущаяДата КАК ПроверятьОтгрузку
|ИЗ
| ТаблицаОстатки КАК ТаблицаОстатки
| ВНУТРЕННЕЕ СОЕДИНЕНИЕ ТаблицаИсправлений КАК ТаблицаИсправлений
| ПО ТаблицаОстатки.ЗаказКлиента = ТаблицаИсправлений.Ссылка
| ВНУТРЕННЕЕ СОЕДИНЕНИЕ Документ.ОтгрузкаТоваровКлиенту.Товары КАК ОтгрузкаТовары
| ПО ТаблицаОстатки.Номенклатура = ОтгрузкаТовары.Номенклатура
| И ТаблицаОстатки.Характеристика = ОтгрузкаТовары.Характеристика
| И ТаблицаОстатки.КодСтроки = ОтгрузкаТовары.КодСтроки
| И ТаблицаИсправлений.ИсправлениеСсылка = ОтгрузкаТовары.Ссылка
| ЛЕВОЕ СОЕДИНЕНИЕ ВтТоварыРеализацииПоЗаказу КАК НакладнаяТовары
| ПО ТаблицаОстатки.Номенклатура = НакладнаяТовары.Номенклатура
| И ТаблицаОстатки.Характеристика = НакладнаяТовары.Характеристика
| И ТаблицаОстатки.КодСтроки = НакладнаяТовары.КодСтроки
| И ТаблицаОстатки.ЗаказКлиента = НакладнаяТовары.ЗаказКлиента
| ЛЕВОЕ СОЕДИНЕНИЕ СтавкиНДСНоменклатуры КАК СтавкиНДСНоменклатуры
| ПО СтавкиНДСНоменклатуры.Номенклатура = ОтгрузкаТовары.Номенклатура
| ЛЕВОЕ СОЕДИНЕНИЕ ОсновныеСтавкиНДС КАК ОсновныеСтавкиНДС
| ПО ИСТИНА
|
|ОБЪЕДИНИТЬ ВСЕ
|
|ВЫБРАТЬ
| ТаблицаОстатки.ЗаказКлиента КАК ЗаказКлиента,
| Заказ.ПорядокРасчетов КАК ПорядокРасчетов,
| ТаблицаОстатки.Номенклатура КАК Номенклатура,
| ЗНАЧЕНИЕ(Справочник.НоменклатураКонтрагентов.ПустаяСсылка) КАК НоменклатураПартнера,
| ТаблицаОстатки.Характеристика КАК Характеристика,
| ТаблицаОстатки.КодСтроки КАК КодСтроки,
| ТаблицаОстатки.Количество КАК Количество,
| ТаблицаОстатки.Сумма КАК СуммаВзаиморасчетов,
| ТаблицаОстатки.Склад КАК Склад,
| 0 КАК КоличествоВПути,
| ЕСТЬNULL(НакладнаяТовары.Количество, 0) КАК КоличествоВНакладной,
| ЗаказТовары.НомерСтроки КАК НомерСтроки,
| Заказ.Сделка КАК Сделка,
| ЗаказТовары.ДатаОтгрузки КАК ДатаОтгрузки,
| ЕСТЬNULL(НакладнаяТовары.Упаковка, ЗаказТовары.Упаковка) КАК Упаковка,
| ЗаказТовары.Серия КАК Серия,
| ЗаказТовары.ВидЦены КАК ВидЦены,
| ЗаказТовары.Количество КАК КоличествоВЗаказе,
| ЗаказТовары.Цена КАК Цена,
| ЗаказТовары.СтавкаНДС КАК СтавкаНДС,
| ВЫБОР
| КОГДА &НалогообложениеНДСЭкспорт
| ТОГДА ТаблицаОстатки.КодТНВЭД
| ИНАЧЕ ЗНАЧЕНИЕ(Справочник.КлассификаторТНВЭД.ПустаяСсылка)
| КОНЕЦ КАК КодТНВЭД,
| ЗаказТовары.Сумма КАК Сумма,
| ЗаказТовары.СуммаНДС КАК СуммаНДС,
| ТаблицаОстатки.СуммаНДСРегл КАК СуммаНДСРегл,
| ТаблицаОстатки.СуммаНДСУпр КАК СуммаНДСУпр,
| ЗаказТовары.СуммаСНДС КАК СуммаСНДС,
| ЗаказТовары.ПроцентРучнойСкидки КАК ПроцентРучнойСкидки,
| ЗаказТовары.СуммаРучнойСкидки КАК СуммаРучнойСкидки,
| ЗаказТовары.ПроцентАвтоматическойСкидки КАК ПроцентАвтоматическойСкидки,
| ЗаказТовары.СуммаАвтоматическойСкидки КАК СуммаАвтоматическойСкидки,
| ЗаказТовары.СуммаБонусныхБалловКСписанию КАК СуммаБонусныхБалловКСписанию,
| ЗаказТовары.СуммаБонусныхБалловКСписаниюВВалюте КАК СуммаБонусныхБалловКСписаниюВВалюте,
| ЗаказТовары.СуммаНачисленныхБонусныхБалловВВалюте КАК СуммаНачисленныхБонусныхБалловВВалюте,
| ЗаказТовары.Номенклатура.ТипНоменклатуры КАК ТипНоменклатуры,
| ЗаказТовары.НоменклатураНабора КАК НоменклатураНабора,
| ЗаказТовары.ХарактеристикаНабора КАК ХарактеристикаНабора,
| ЗаказТовары.Подразделение КАК Подразделение,
| ЗаказТовары.КлючСвязи КАК КлючСвязи,
| ВЫБОР
| КОГДА ЕСТЬNULL(НакладнаяТовары.Упаковка, ЗаказТовары.Упаковка) = ЗНАЧЕНИЕ(Справочник.УпаковкиЕдиницыИзмерения.ПустаяСсылка)
| ТОГДА 1
| ИНАЧЕ ЕСТЬNULL(ЕСТЬNULL(&ТекстЗапросаКоэффициентУпаковки1, &ТекстЗапросаКоэффициентУпаковки2), 1)
| КОНЕЦ КАК Коэффициент,
| ТаблицаОстатки.Количество /
| ЕСТЬNULL(
| ЕСТЬNULL(&ТекстЗапросаКоэффициентУпаковки1, &ТекстЗапросаКоэффициентУпаковки2),
| 1) КАК КоличествоУпаковок,
| ЗаказТовары.СрокПоставки КАК СрокПоставки,
| ЗаказТовары.ВариантОбеспечения КАК ВариантОбеспечения,
| ВЫБОР
| КОГДА ЗаказТовары.Обособленно
| ТОГДА ТаблицаОстатки.ЗаказКлиента.Назначение
| ИНАЧЕ ЗНАЧЕНИЕ(Справочник.Назначения.ПустаяСсылка)
| КОНЕЦ КАК Назначение,
| Заказ.Склад.ИспользоватьОрдернуюСхемуПриОтгрузке = ИСТИНА
| И Заказ.Склад.ДатаНачалаОрдернойСхемыПриОтгрузке <=
| &ТекущаяДата КАК ОрдернаяСхемаПриОтгрузке,
| ВЫБОР
| КОГДА ЗаказТовары.Номенклатура.ТипНоменклатуры В (ЗНАЧЕНИЕ(Перечисление.ТипыНоменклатуры.Услуга), ЗНАЧЕНИЕ(Перечисление.ТипыНоменклатуры.Работа))
| ТОГДА ЛОЖЬ
| ИНАЧЕ ЗаказТовары.Склад.ИспользоватьОрдернуюСхемуПриОтгрузке = ИСТИНА
| И ЗаказТовары.Склад.ДатаНачалаОрдернойСхемыПриОтгрузке <= &ТекущаяДата
| КОНЕЦ КАК ПроверятьОтгрузку
|ИЗ
| ТаблицаОстатки КАК ТаблицаОстатки
| ВНУТРЕННЕЕ СОЕДИНЕНИЕ Документ.ЗаявкаНаВозвратТоваровОтКлиента.ЗаменяющиеТовары КАК ЗаказТовары
| ПО ТаблицаОстатки.Номенклатура = ЗаказТовары.Номенклатура
| И ТаблицаОстатки.Характеристика = ЗаказТовары.Характеристика
| И ТаблицаОстатки.КодСтроки = ЗаказТовары.КодСтроки
| И ТаблицаОстатки.ЗаказКлиента = ЗаказТовары.Ссылка
| ЛЕВОЕ СОЕДИНЕНИЕ Документ.ЗаявкаНаВозвратТоваровОтКлиента КАК Заказ
| ПО (Заказ.Ссылка = ЗаказТовары.Ссылка)
| ЛЕВОЕ СОЕДИНЕНИЕ ВтТоварыРеализацииПоЗаказу КАК НакладнаяТовары
| ПО ТаблицаОстатки.Номенклатура = НакладнаяТовары.Номенклатура
| И ТаблицаОстатки.Характеристика = НакладнаяТовары.Характеристика
| И ТаблицаОстатки.КодСтроки = НакладнаяТовары.КодСтроки
| И ТаблицаОстатки.ЗаказКлиента = НакладнаяТовары.ЗаказКлиента
|
|ОБЪЕДИНИТЬ ВСЕ
|
|ВЫБРАТЬ
| ТаблицаОстатки.ЗаказКлиента КАК ЗаказКлиента,
| ЗНАЧЕНИЕ(Перечисление.ПорядокРасчетов.ПустаяСсылка) КАК ПорядокРасчетов,
| ТаблицаОстатки.Номенклатура КАК Номенклатура,
| ЗНАЧЕНИЕ(Справочник.НоменклатураКонтрагентов.ПустаяСсылка) КАК НоменклатураПартнера,
| ТаблицаОстатки.Характеристика КАК Характеристика,
| ТаблицаОстатки.КодСтроки КАК КодСтроки,
| МАКСИМУМ(ТаблицаОстатки.Количество) КАК Количество,
| МАКСИМУМ(ТаблицаОстатки.Сумма) КАК СуммаВзаиморасчетов,
| ЗНАЧЕНИЕ(Справочник.Склады.ПустаяСсылка) КАК Склад,
| МАКСИМУМ(ТаблицаОстатки.Количество) КАК КоличествоВПути,
| СУММА(ЕСТЬNULL(НакладнаяТовары.Количество, 0)) КАК КоличествоВНакладной,
| МАКСИМУМ(ЕСТЬNULL(ОтгрузкаТовары.НомерСтроки, 0)) КАК НомерСтроки,
| МАКСИМУМ(ЕСТЬNULL(ОтгрузкаТовары.Ссылка.Сделка, ЗНАЧЕНИЕ(Справочник.СделкиСКлиентами.ПустаяСсылка))) КАК Сделка,
| МАКСИМУМ(ЕСТЬNULL(ОтгрузкаТовары.Ссылка.Дата, ДАТАВРЕМЯ(1, 1, 1))) КАК ДатаОтгрузки,
| ТаблицаОстатки.Номенклатура.ЕдиницаИзмерения КАК Упаковка,
| МАКСИМУМ(ВЫБОР
| КОГДА ОтгрузкаТовары.Серия ЕСТЬ НЕ NULL И ОтгрузкаТовары.Серия <> ЗНАЧЕНИЕ(Справочник.СерииНоменклатуры.ПустаяСсылка)
| ТОГДА ОтгрузкаТовары.Серия
| КОГДА ОприходованиеТовары.Серия ЕСТЬ НЕ NULL И ОприходованиеТовары.Серия <> ЗНАЧЕНИЕ(Справочник.СерииНоменклатуры.ПустаяСсылка)
| ТОГДА ОприходованиеТовары.Серия
| ИНАЧЕ
| ЗНАЧЕНИЕ(Справочник.СерииНоменклатуры.ПустаяСсылка)
| КОНЕЦ) КАК Серия,
| ЗНАЧЕНИЕ(Справочник.ВидыЦен.ПустаяСсылка) КАК ВидЦены,
| 0 КАК КоличествоВЗаказе,
| МАКСИМУМ(ВЫБОР
| КОГДА ТаблицаОстатки.Количество = 0
| ТОГДА 0
| ИНАЧЕ
| ТаблицаОстатки.Сумма / ТаблицаОстатки.Количество
| КОНЕЦ) КАК Цена,
| МАКСИМУМ(ВЫБОР
| КОГДА ОтгрузкаТовары.Ссылка ЕСТЬ NULL
| ТОГДА ЗНАЧЕНИЕ(Справочник.СтавкиНДС.ПустаяСсылка)
| ИНАЧЕ
| &СтавкаНДСОтгрузкаТоваровБезРаспоряжения
| КОНЕЦ) КАК СтавкаНДС,
| ВЫБОР
| КОГДА &НалогообложениеНДСЭкспорт
| ТОГДА ТаблицаОстатки.КодТНВЭД
| ИНАЧЕ ЗНАЧЕНИЕ(Справочник.КлассификаторТНВЭД.ПустаяСсылка)
| КОНЕЦ КАК КодТНВЭД,
| МАКСИМУМ(ТаблицаОстатки.Сумма) КАК Сумма,
| 0 КАК СуммаНДС,
| МАКСИМУМ(ТаблицаОстатки.СуммаНДСРегл) КАК СуммаНДСРегл,
| МАКСИМУМ(ТаблицаОстатки.СуммаНДСУпр) КАК СуммаНДСУпр,
| МАКСИМУМ(ТаблицаОстатки.Сумма) КАК СуммаСНДС,
| 0 КАК ПроцентРучнойСкидки,
| 0 КАК СуммаРучнойСкидки,
| 0 КАК ПроцентАвтоматическойСкидки,
| 0 КАК СуммаАвтоматическойСкидки,
| 0 КАК СуммаБонусныхБалловКСписанию,
| 0 КАК СуммаБонусныхБалловКСписаниюВВалюте,
| 0 КАК СуммаНачисленныхБонусныхБалловВВалюте,
| ТаблицаОстатки.Номенклатура.ТипНоменклатуры КАК ТипНоменклатуры,
| МАКСИМУМ(ЕСТЬNULL(ОтгрузкаТовары.НоменклатураНабора, ЗНАЧЕНИЕ(Справочник.Номенклатура.ПустаяСсылка))) КАК НоменклатураНабора,
| МАКСИМУМ(ЕСТЬNULL(ОтгрузкаТовары.ХарактеристикаНабора, ЗНАЧЕНИЕ(Справочник.ХарактеристикиНоменклатуры.ПустаяСсылка))) КАК ХарактеристикаНабора,
| МАКСИМУМ(ЕСТЬNULL(ОтгрузкаТовары.Ссылка.Подразделение, ЗНАЧЕНИЕ(Справочник.СтруктураПредприятия.ПустаяСсылка))) КАК Подразделение,
| 0 КАК КлючСвязи,
| 1 КАК Коэффициент,
| МАКСИМУМ(ТаблицаОстатки.Количество) КАК КоличествоУпаковок,
| МАКСИМУМ(ЕСТЬNULL(ОтгрузкаТовары.СрокПоставки, 0)) КАК СрокПоставки,
| ЗНАЧЕНИЕ(Перечисление.ВариантыОбеспечения.ПустаяСсылка) КАК ВариантОбеспечения,
| ЗНАЧЕНИЕ(Справочник.Назначения.ПустаяСсылка) КАК Назначение,
| МАКСИМУМ(ВЫБОР
| КОГДА ОтгрузкаТовары.Склад ЕСТЬ NULL
| ТОГДА ЛОЖЬ
| ИНАЧЕ
| ОтгрузкаТовары.Склад.ИспользоватьОрдернуюСхемуПриОтгрузке = ИСТИНА
| И ОтгрузкаТовары.Склад.ДатаНачалаОрдернойСхемыПриОтгрузке <= &ТекущаяДата
| КОНЕЦ) КАК ОрдернаяСхемаПриОтгрузке,
| МАКСИМУМ(ВЫБОР
| КОГДА ОтгрузкаТовары.Склад ЕСТЬ NULL
| ТОГДА ЛОЖЬ
| ИНАЧЕ
| ОтгрузкаТовары.Склад.ИспользоватьОрдернуюСхемуПриОтгрузке = ИСТИНА
| И ОтгрузкаТовары.Склад.ДатаНачалаОрдернойСхемыПриОтгрузке <= &ТекущаяДата
| КОНЕЦ) КАК ПроверятьОтгрузку
|ИЗ
| ТаблицаОстатки КАК ТаблицаОстатки
| ЛЕВОЕ СОЕДИНЕНИЕ Документ.ОтгрузкаТоваровКлиенту.Товары КАК ОтгрузкаТовары
| ПО ТаблицаОстатки.Номенклатура = ОтгрузкаТовары.Номенклатура
| И ТаблицаОстатки.Характеристика = ОтгрузкаТовары.Характеристика
| И ТаблицаОстатки.КодСтроки = ОтгрузкаТовары.КодСтроки
| И ОтгрузкаТовары.КодСтроки = 0
| И ТаблицаОстатки.ЗаказКлиента = ОтгрузкаТовары.ЗаказКлиента
| И ОтгрузкаТовары.Ссылка.Проведен
| ЛЕВОЕ СОЕДИНЕНИЕ Документ.ОприходованиеИзлишковОтгруженныхТоваров.Товары КАК ОприходованиеТовары
| ПО ТаблицаОстатки.Номенклатура = ОприходованиеТовары.Номенклатура
| И ТаблицаОстатки.Характеристика = ОприходованиеТовары.Характеристика
| И ТаблицаОстатки.ЗаказКлиента = ОприходованиеТовары.Распоряжение
| И ОприходованиеТовары.Ссылка.Проведен
| ЛЕВОЕ СОЕДИНЕНИЕ ВтТоварыРеализацииПоЗаказу КАК НакладнаяТовары
| ПО ТаблицаОстатки.Номенклатура = НакладнаяТовары.Номенклатура
| И ТаблицаОстатки.Характеристика = НакладнаяТовары.Характеристика
| И ТаблицаОстатки.КодСтроки = НакладнаяТовары.КодСтроки
| И ТаблицаОстатки.ЗаказКлиента = НакладнаяТовары.ЗаказКлиента
| ЛЕВОЕ СОЕДИНЕНИЕ СтавкиНДСНоменклатуры КАК СтавкиНДСНоменклатуры
| ПО СтавкиНДСНоменклатуры.Номенклатура = ТаблицаОстатки.Номенклатура
| ЛЕВОЕ СОЕДИНЕНИЕ ОсновныеСтавкиНДС КАК ОсновныеСтавкиНДС
| ПО ИСТИНА
|ГДЕ
| ТаблицаОстатки.КодСтроки = 0
| И ЕСТЬNULL(ОтгрузкаТовары.Ссылка, ОприходованиеТовары.Ссылка) ЕСТЬ НЕ NULL
|
|СГРУППИРОВАТЬ ПО
| ТаблицаОстатки.ЗаказКлиента,
| ТаблицаОстатки.Номенклатура,
| ТаблицаОстатки.Характеристика,
| ТаблицаОстатки.КодСтроки,
| ВЫБОР
| КОГДА &НалогообложениеНДСЭкспорт
| ТОГДА ТаблицаОстатки.КодТНВЭД
| ИНАЧЕ ЗНАЧЕНИЕ(Справочник.КлассификаторТНВЭД.ПустаяСсылка)
| КОНЕЦ
|
|ОБЪЕДИНИТЬ ВСЕ
|
|ВЫБРАТЬ
| ТаблицаОстатки.ЗаказКлиента КАК ЗаказКлиента,
| ЗНАЧЕНИЕ(Перечисление.ПорядокРасчетов.ПустаяСсылка) КАК ПорядокРасчетов,
| ТаблицаОстатки.Номенклатура КАК Номенклатура,
| ЗНАЧЕНИЕ(Справочник.НоменклатураКонтрагентов.ПустаяСсылка) КАК НоменклатураПартнера,
| ТаблицаОстатки.Характеристика КАК Характеристика,
| ТаблицаОстатки.КодСтроки КАК КодСтроки,
| ТаблицаОстатки.Количество КАК Количество,
| ТаблицаОстатки.Сумма КАК СуммаВзаиморасчетов,
| ТаблицаОстатки.Склад КАК Склад,
| ТаблицаОстатки.Количество КАК КоличествоВПути,
| ЕСТЬNULL(НакладнаяТовары.Количество, 0) КАК КоличествоВНакладной,
| ВводОстатковТовары.НомерСтроки КАК НомерСтроки,
| ЗНАЧЕНИЕ(Справочник.СделкиСКлиентами.ПустаяСсылка) КАК Сделка,
| ВводОстатковТовары.Ссылка.Дата КАК ДатаОтгрузки,
| ЕСТЬNULL(НакладнаяТовары.Упаковка, ВводОстатковТовары.Упаковка) КАК Упаковка,
| ВводОстатковТовары.Серия КАК Серия,
| ЗНАЧЕНИЕ(Справочник.ВидыЦен.ПустаяСсылка) КАК ВидЦены,
| ВводОстатковТовары.Количество КАК КоличествоВЗаказе,
| ВЫБОР
| КОГДА ВводОстатковТовары.Упаковка = ЗНАЧЕНИЕ(Справочник.УпаковкиЕдиницыИзмерения.ПустаяСсылка)
| ТОГДА ТаблицаОстатки.Сумма / ТаблицаОстатки.Количество
| ИНАЧЕ
| ТаблицаОстатки.Сумма / ТаблицаОстатки.Количество
| * &ТекстЗапросаКоэффициентУпаковки5
| КОНЕЦ КАК Цена,
| &СтавкаНДСВводОстатковТоваров КАК СтавкаНДС,
| ВЫБОР
| КОГДА &НалогообложениеНДСЭкспорт
| ТОГДА ТаблицаОстатки.КодТНВЭД
| ИНАЧЕ ЗНАЧЕНИЕ(Справочник.КлассификаторТНВЭД.ПустаяСсылка)
| КОНЕЦ КАК КодТНВЭД,
| ТаблицаОстатки.Сумма КАК Сумма,
| 0 КАК СуммаНДС,
| ТаблицаОстатки.СуммаНДСРегл КАК СуммаНДСРегл,
| ТаблицаОстатки.СуммаНДСУпр КАК СуммаНДСУпр,
| ТаблицаОстатки.Сумма КАК СуммаСНДС,
| 0 КАК ПроцентРучнойСкидки,
| 0 КАК СуммаРучнойСкидки,
| 0 КАК ПроцентАвтоматическойСкидки,
| 0 КАК СуммаАвтоматическойСкидки,
| 0 КАК СуммаБонусныхБалловКСписанию,
| 0 КАК СуммаБонусныхБалловКСписаниюВВалюте,
| 0 КАК СуммаНачисленныхБонусныхБалловВВалюте,
| ТаблицаОстатки.Номенклатура.ТипНоменклатуры КАК ТипНоменклатуры,
| ЗНАЧЕНИЕ(Справочник.Номенклатура.ПустаяСсылка) КАК НоменклатураНабора,
| ЗНАЧЕНИЕ(Справочник.ХарактеристикиНоменклатуры.ПустаяСсылка) КАК ХарактеристикаНабора,
| ВводОстатковТовары.Ссылка.Подразделение КАК Подразделение,
| 0 КАК КлючСвязи,
| ВЫБОР
| КОГДА ЕСТЬNULL(НакладнаяТовары.Упаковка, ВводОстатковТовары.Упаковка) = ЗНАЧЕНИЕ(Справочник.УпаковкиЕдиницыИзмерения.ПустаяСсылка)
| ТОГДА 1
| ИНАЧЕ ЕСТЬNULL(ЕСТЬNULL(&ТекстЗапросаКоэффициентУпаковки1, &ТекстЗапросаКоэффициентУпаковки5), 1)
| КОНЕЦ КАК Коэффициент,
| ТаблицаОстатки.Количество /
| ЕСТЬNULL(
| ЕСТЬNULL(&ТекстЗапросаКоэффициентУпаковки1, &ТекстЗапросаКоэффициентУпаковки5),
| 1) КАК КоличествоУпаковок,
| ДАТАВРЕМЯ(1, 1, 1) КАК СрокПоставки,
| ЗНАЧЕНИЕ(Перечисление.ВариантыОбеспечения.ПустаяСсылка) КАК ВариантОбеспечения,
| ЗНАЧЕНИЕ(Справочник.Назначения.ПустаяСсылка) КАК Назначение,
| ЛОЖЬ КАК ОрдернаяСхемаПриОтгрузке,
| ЛОЖЬ КАК ПроверятьОтгрузку
|ИЗ
| ТаблицаОстатки КАК ТаблицаОстатки
| ВНУТРЕННЕЕ СОЕДИНЕНИЕ Документ.ВводОстатковТоваров.Товары КАК ВводОстатковТовары
| ПО ТаблицаОстатки.Номенклатура = ВводОстатковТовары.Номенклатура
| И ТаблицаОстатки.Характеристика = ВводОстатковТовары.Характеристика
| И ТаблицаОстатки.КодСтроки = ВводОстатковТовары.КодСтроки
| И ТаблицаОстатки.ЗаказКлиента = ВводОстатковТовары.Ссылка.Партия
| И ВводОстатковТовары.Ссылка.Проведен
| ЛЕВОЕ СОЕДИНЕНИЕ ВтТоварыРеализацииПоЗаказу КАК НакладнаяТовары
| ПО ТаблицаОстатки.Номенклатура = НакладнаяТовары.Номенклатура
| И ТаблицаОстатки.Характеристика = НакладнаяТовары.Характеристика
| И ТаблицаОстатки.КодСтроки = НакладнаяТовары.КодСтроки
| И ТаблицаОстатки.ЗаказКлиента = НакладнаяТовары.ЗаказКлиента
| ЛЕВОЕ СОЕДИНЕНИЕ СтавкиНДСНоменклатуры КАК СтавкиНДСНоменклатуры
| ПО СтавкиНДСНоменклатуры.Номенклатура = ВводОстатковТовары.Номенклатура
| ЛЕВОЕ СОЕДИНЕНИЕ ОсновныеСтавкиНДС КАК ОсновныеСтавкиНДС
| ПО ИСТИНА
| ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.РеестрДокументов КАК РеестрДокументов
| ПО ВводОстатковТовары.Ссылка = РеестрДокументов.СторнируемыйДокумент
| И РеестрДокументов.Проведен
| И НЕ РеестрДокументов.ДополнительнаяЗапись
|ГДЕ
| РеестрДокументов.Ссылка ЕСТЬ NULL
|
|ОБЪЕДИНИТЬ ВСЕ
|
|ВЫБРАТЬ
| ТоварыРеализации.ЗаказКлиента,
| ТоварыРеализации.ПорядокРасчетов,
| ТоварыРеализации.Номенклатура,
| ЗНАЧЕНИЕ(Справочник.НоменклатураКонтрагентов.ПустаяСсылка),
| ТоварыРеализации.Характеристика,
| ТоварыРеализации.КодСтроки,
| ТоварыРеализации.Количество,
| ТоварыРеализации.Сумма,
| ТоварыРеализации.Склад,
| 0,
| ТоварыРеализации.Количество,
| ТоварыРеализации.НомерСтроки,
| НЕОПРЕДЕЛЕНО,
| НЕОПРЕДЕЛЕНО,
| ТоварыРеализации.Упаковка,
| ТоварыРеализации.Серия,
| ТоварыРеализации.ВидЦены,
| 0,
| ТоварыРеализации.Цена,
| ТоварыРеализации.СтавкаНДС,
| ВЫБОР
| КОГДА &НалогообложениеНДСЭкспорт
| ТОГДА ТоварыРеализации.КодТНВЭД
| ИНАЧЕ ЗНАЧЕНИЕ(Справочник.КлассификаторТНВЭД.ПустаяСсылка)
| КОНЕЦ,
| ТоварыРеализации.Сумма,
| ТоварыРеализации.СуммаНДС,
| ТоварыРеализации.СуммаНДСРегл,
| ТоварыРеализации.СуммаНДСУпр,
| ТоварыРеализации.СуммаСНДС,
| ТоварыРеализации.ПроцентРучнойСкидки,
| ТоварыРеализации.СуммаРучнойСкидки,
| ТоварыРеализации.ПроцентАвтоматическойСкидки,
| ТоварыРеализации.СуммаАвтоматическойСкидки,
| ТоварыРеализации.СуммаБонусныхБалловКСписанию,
| ТоварыРеализации.СуммаБонусныхБалловКСписаниюВВалюте,
| ТоварыРеализации.СуммаНачисленныхБонусныхБалловВВалюте,
| ТоварыРеализации.ТипНоменклатуры,
| ТоварыРеализации.НоменклатураНабора,
| ТоварыРеализации.ХарактеристикаНабора,
| ТоварыРеализации.Подразделение,
| ТоварыРеализации.КлючСвязи,
| ВЫБОР
| КОГДА ТоварыРеализации.Упаковка = ЗНАЧЕНИЕ(Справочник.УпаковкиЕдиницыИзмерения.ПустаяСсылка)
| ТОГДА 1
| ИНАЧЕ ЕСТЬNULL(&ТекстЗапросаКоэффициентУпаковки3, 1)
| КОНЕЦ,
| ТоварыРеализации.Количество / ЕСТЬNULL(&ТекстЗапросаКоэффициентУпаковки3, 1),
| НЕОПРЕДЕЛЕНО,
| НЕОПРЕДЕЛЕНО,
| ЗНАЧЕНИЕ(Справочник.Назначения.ПустаяСсылка),
| ТоварыРеализации.ИспользуетсяОрдернаяСхемаПриОтгрузке,
| ВЫБОР
| КОГДА ТоварыРеализации.ТипНоменклатуры В (ЗНАЧЕНИЕ(Перечисление.ТипыНоменклатуры.Услуга), ЗНАЧЕНИЕ(Перечисление.ТипыНоменклатуры.Работа))
| ТОГДА ЛОЖЬ
| ИНАЧЕ ТоварыРеализации.ИспользуетсяОрдернаяСхемаПриОтгрузке
| КОНЕЦ
|ИЗ
| ВтТоварыРеализацииБезЗаказа КАК ТоварыРеализации
|
|УПОРЯДОЧИТЬ ПО
| ТаблицаОстатки.ЗаказКлиента,
| ЗаказТовары.НомерСтроки
|;
|
|
|ВЫБРАТЬ ПЕРВЫЕ 1
| ЗаказКлиентаТовары.НомерСтроки КАК НомерСтроки
|ИЗ
| Документ.ЗаказКлиента.Товары КАК ЗаказКлиентаТовары
|ГДЕ
| ЗаказКлиентаТовары.Ссылка В(&МассивЗаказов)
| И ЗаказКлиентаТовары.Номенклатура.ВариантОформленияПродажи В(&МассивВариантовОформления)
| И ЗаказКлиентаТовары.ВариантОбеспечения = ЗНАЧЕНИЕ(Перечисление.ВариантыОбеспечения.Отгрузить)
| И НЕ ЗаказКлиентаТовары.Отменено
| И ЗаказКлиентаТовары.Ссылка.Проведен
|
|ОБЪЕДИНИТЬ ВСЕ
|
|ВЫБРАТЬ ПЕРВЫЕ 1
| ОтгрузкаТовары.НомерСтроки
|ИЗ
| Документ.ОтгрузкаТоваровКлиенту.Товары КАК ОтгрузкаТовары
|ГДЕ
| ОтгрузкаТовары.Ссылка В(&МассивЗаказов)
| И ОтгрузкаТовары.Номенклатура.ВариантОформленияПродажи В(&МассивВариантовОформления)
| И ОтгрузкаТовары.Ссылка.Проведен
|
|ОБЪЕДИНИТЬ ВСЕ
|
|ВЫБРАТЬ ПЕРВЫЕ 1
| ЗаказКлиентаТовары.НомерСтроки
|ИЗ
| Документ.ЗаявкаНаВозвратТоваровОтКлиента.ЗаменяющиеТовары КАК ЗаказКлиентаТовары
|ГДЕ
| ЗаказКлиентаТовары.Ссылка В(&МассивЗаказов)
| И ЗаказКлиентаТовары.Номенклатура.ВариантОформленияПродажи В(&МассивВариантовОформления)
| И ЗаказКлиентаТовары.ВариантОбеспечения = ЗНАЧЕНИЕ(Перечисление.ВариантыОбеспечения.Отгрузить)
| И НЕ ЗаказКлиентаТовары.Отменено
| И ЗаказКлиентаТовары.Ссылка.Проведен
|;
|
|
|ВЫБРАТЬ
| ЗаказКлиента.Ссылка КАК Ссылка
|ПОМЕСТИТЬ ДокументыОтгрузки
|ИЗ
| Документ.ЗаказКлиента КАК ЗаказКлиента
|ГДЕ
| ВЫБОР
| КОГДА &ОтобратьПоЗаказу
| ТОГДА ЗаказКлиента.Ссылка В (&МассивЗаказов)
| ИЛИ ЗаказКлиента.Ссылка = &Регистратор
| ИНАЧЕ ЗаказКлиента.Партнер = &Партнер
| И ЗаказКлиента.Контрагент = &Контрагент
| И (ЗаказКлиента.Договор = &Договор
| ИЛИ &ИспользоватьСоглашенияСКлиентами
| И НЕ ЗаказКлиента.Соглашение.ИспользуютсяДоговорыКонтрагентов)
| И ЗаказКлиента.Организация = &Организация
| И ЗаказКлиента.ХозяйственнаяОперация В (&ХозяйственныеОперацииРаспоряжений)
| И (НЕ &ИспользоватьСоглашенияСКлиентами
| ИЛИ ЗаказКлиента.Соглашение = &Соглашение)
| И ЗаказКлиента.Сделка = &Сделка
| И (&ХозяйственнаяОперация = ЗНАЧЕНИЕ(Перечисление.ХозяйственныеОперации.ПередачаНаКомиссию)
| ИЛИ ЗаказКлиента.Валюта = &ВалютаВзаиморасчетов)
| И ВЫБОР
| КОГДА ЗаказКлиента.НалогообложениеНДС В (ЗНАЧЕНИЕ(Перечисление.ТипыНалогообложенияНДС.ЭкспортСырьевыхТоваровУслуг), ЗНАЧЕНИЕ(Перечисление.ТипыНалогообложенияНДС.ЭкспортНесырьевыхТоваров))
| ТОГДА ЗНАЧЕНИЕ(Перечисление.ТипыНалогообложенияНДС.ПродажаНаЭкспорт)
| ИНАЧЕ ЗаказКлиента.НалогообложениеНДС
| КОНЕЦ = &НалогообложениеНДС
| И ЗаказКлиента.ЦенаВключаетНДС = &ЦенаВключаетНДС
| И ЗаказКлиента.ВернутьМногооборотнуюТару = &ВернутьМногооборотнуюТару
| И (НЕ &ИспользоватьНаправленияДеятельности
| ИЛИ ЗаказКлиента.НаправлениеДеятельности = &НаправлениеДеятельности)
| КОНЕЦ
| И ВЫБОР
| КОГДА ВЫРАЗИТЬ(&СкладРеализации КАК Справочник.Склады).ЭтоГруппа
| ТОГДА ЗаказКлиента.Склад В ИЕРАРХИИ (&СкладРеализации)
| ИЛИ ЗаказКлиента.Склад = ЗНАЧЕНИЕ(Справочник.Склады.ПустаяСсылка)
| ИНАЧЕ ЗаказКлиента.Склад В (ЗНАЧЕНИЕ(Справочник.Склады.ПустаяСсылка), &СкладРеализации)
| ИЛИ ВЫРАЗИТЬ(ЗаказКлиента.Склад КАК Справочник.Склады).ЭтоГруппа
| КОНЕЦ
| И &ХозяйственнаяОперация <> ЗНАЧЕНИЕ(Перечисление.ХозяйственныеОперации.ПереходПраваСобственности)
|
|ОБЪЕДИНИТЬ ВСЕ
|
|ВЫБРАТЬ
| ВЫБОР
| КОГДА ОтгрузкаШапка.ОтгрузкаПоЗаказам
| ТОГДА ОтгрузкаТовары.ЗаказКлиента
| ИНАЧЕ ОтгрузкаШапка.Ссылка
| КОНЕЦ КАК Ссылка
|ИЗ
| Документ.ОтгрузкаТоваровКлиенту.Товары КАК ОтгрузкаТовары
| ВНУТРЕННЕЕ СОЕДИНЕНИЕ Документ.ОтгрузкаТоваровКлиенту КАК ОтгрузкаШапка
| ПО ОтгрузкаТовары.Ссылка = ОтгрузкаШапка.Ссылка
|ГДЕ
| ВЫБОР
| КОГДА &ОтобратьПоЗаказу
| ТОГДА ОтгрузкаШапка.Ссылка В (&МассивЗаказов)
| ИЛИ ОтгрузкаШапка.Ссылка = &Регистратор
| ИНАЧЕ ОтгрузкаШапка.Партнер = &Партнер
| И ОтгрузкаШапка.Контрагент = &Контрагент
| И ОтгрузкаШапка.Договор = &Договор
| И ОтгрузкаШапка.Организация = &Организация
| И ОтгрузкаШапка.ХозяйственнаяОперация В (&ХозяйственныеОперацииРаспоряжений)
| И (НЕ &ИспользоватьСоглашенияСКлиентами
| ИЛИ ОтгрузкаШапка.Соглашение = &Соглашение)
| И ОтгрузкаШапка.Сделка = &Сделка
| И ОтгрузкаШапка.Валюта = &ВалютаВзаиморасчетов
| И (НЕ &ИспользоватьНаправленияДеятельности
| ИЛИ ОтгрузкаШапка.НаправлениеДеятельности = &НаправлениеДеятельности)
| КОНЕЦ
| И ВЫБОР
| КОГДА ВЫРАЗИТЬ(&СкладРеализации КАК Справочник.Склады).ЭтоГруппа
| ТОГДА ОтгрузкаШапка.Склад В ИЕРАРХИИ (&СкладРеализации)
| ИЛИ ОтгрузкаШапка.Склад = ЗНАЧЕНИЕ(Справочник.Склады.ПустаяСсылка)
| ИНАЧЕ ОтгрузкаШапка.Склад В (ЗНАЧЕНИЕ(Справочник.Склады.ПустаяСсылка), &СкладРеализации)
| ИЛИ ВЫРАЗИТЬ(ОтгрузкаШапка.Склад КАК Справочник.Склады).ЭтоГруппа
| КОНЕЦ
| И &ХозяйственнаяОперация <> ЗНАЧЕНИЕ(Перечисление.ХозяйственныеОперации.ПереходПраваСобственности)
|
|ОБЪЕДИНИТЬ ВСЕ
|
|ВЫБРАТЬ
| ЗаявкаНаВозвратТоваровОтКлиента.Ссылка
|ИЗ
| Документ.ЗаявкаНаВозвратТоваровОтКлиента КАК ЗаявкаНаВозвратТоваровОтКлиента
|ГДЕ
| ВЫБОР
| КОГДА &ОтобратьПоЗаказу
| ТОГДА ЗаявкаНаВозвратТоваровОтКлиента.Ссылка В (&МассивЗаказов)
| ИЛИ ЗаявкаНаВозвратТоваровОтКлиента.Ссылка = &Регистратор
| ИНАЧЕ ЗаявкаНаВозвратТоваровОтКлиента.Партнер = &Партнер
| И ЗаявкаНаВозвратТоваровОтКлиента.Контрагент = &Контрагент
| И (ЗаявкаНаВозвратТоваровОтКлиента.Договор = &Договор
| ИЛИ &ИспользоватьСоглашенияСКлиентами
| И НЕ ЗаявкаНаВозвратТоваровОтКлиента.Соглашение.ИспользуютсяДоговорыКонтрагентов)
| И ЗаявкаНаВозвратТоваровОтКлиента.Организация = &Организация
| И ЗаявкаНаВозвратТоваровОтКлиента.ХозяйственнаяОперация В (&ХозяйственныеОперацииРаспоряжений)
| И (НЕ &ИспользоватьСоглашенияСКлиентами
| ИЛИ ЗаявкаНаВозвратТоваровОтКлиента.Соглашение = &Соглашение)
| И ЗаявкаНаВозвратТоваровОтКлиента.Сделка = &Сделка
| И (&ХозяйственнаяОперация = ЗНАЧЕНИЕ(Перечисление.ХозяйственныеОперации.ПередачаНаКомиссию)
| ИЛИ ЗаявкаНаВозвратТоваровОтКлиента.Валюта = &ВалютаВзаиморасчетов)
| И ЗаявкаНаВозвратТоваровОтКлиента.НалогообложениеНДС = &НалогообложениеНДС
| И ЗаявкаНаВозвратТоваровОтКлиента.ЦенаВключаетНДС = &ЦенаВключаетНДС
| И ЗаявкаНаВозвратТоваровОтКлиента.ВернутьМногооборотнуюТару = &ВернутьМногооборотнуюТару
| И (НЕ &ИспользоватьНаправленияДеятельности
| ИЛИ ЗаявкаНаВозвратТоваровОтКлиента.НаправлениеДеятельности = &НаправлениеДеятельности)
| КОНЕЦ
| И ВЫБОР
| КОГДА ВЫРАЗИТЬ(&СкладРеализации КАК Справочник.Склады).ЭтоГруппа
| ТОГДА ЗаявкаНаВозвратТоваровОтКлиента.Склад В ИЕРАРХИИ (&СкладРеализации)
| ИЛИ ЗаявкаНаВозвратТоваровОтКлиента.Склад = ЗНАЧЕНИЕ(Справочник.Склады.ПустаяСсылка)
| ИНАЧЕ ЗаявкаНаВозвратТоваровОтКлиента.Склад В (ЗНАЧЕНИЕ(Справочник.Склады.ПустаяСсылка), &СкладРеализации)
| КОНЕЦ
| И &ХозяйственнаяОперация <> ЗНАЧЕНИЕ(Перечисление.ХозяйственныеОперации.ПереходПраваСобственности)
|
|ОБЪЕДИНИТЬ ВСЕ
|
|ВЫБРАТЬ
| РеализацияТоваровУслуг.Ссылка
|ИЗ
| Документ.РеализацияТоваровУслуг КАК РеализацияТоваровУслуг
|ГДЕ
| ВЫБОР
| КОГДА &ОтобратьПоЗаказу
| ТОГДА РеализацияТоваровУслуг.Ссылка В (&МассивЗаказов)
| ИЛИ РеализацияТоваровУслуг.Ссылка = &Регистратор
| ИНАЧЕ РеализацияТоваровУслуг.Партнер = &Партнер
| И РеализацияТоваровУслуг.Контрагент = &Контрагент
| И РеализацияТоваровУслуг.Договор = &Договор
| И РеализацияТоваровУслуг.Организация = &Организация
| И РеализацияТоваровУслуг.ХозяйственнаяОперация В (&ХозяйственныеОперацииРаспоряжений)
| И (НЕ &ИспользоватьСоглашенияСКлиентами
| ИЛИ РеализацияТоваровУслуг.Соглашение = &Соглашение)
| И РеализацияТоваровУслуг.Сделка = &Сделка
| И (&ХозяйственнаяОперация = ЗНАЧЕНИЕ(Перечисление.ХозяйственныеОперации.ПередачаНаКомиссию)
| ИЛИ РеализацияТоваровУслуг.Валюта = &ВалютаВзаиморасчетов)
| И РеализацияТоваровУслуг.НалогообложениеНДС = &НалогообложениеНДС
| И РеализацияТоваровУслуг.ЦенаВключаетНДС = &ЦенаВключаетНДС
| И РеализацияТоваровУслуг.ВернутьМногооборотнуюТару = &ВернутьМногооборотнуюТару
| И (НЕ &ИспользоватьНаправленияДеятельности
| ИЛИ РеализацияТоваровУслуг.НаправлениеДеятельности = &НаправлениеДеятельности)
| КОНЕЦ
| И РеализацияТоваровУслуг.Ссылка = &Регистратор
| И ВЫБОР
| КОГДА ВЫРАЗИТЬ(&СкладРеализации КАК Справочник.Склады).ЭтоГруппа
| ТОГДА РеализацияТоваровУслуг.Склад В ИЕРАРХИИ (&СкладРеализации)
| ИЛИ РеализацияТоваровУслуг.Склад = ЗНАЧЕНИЕ(Справочник.Склады.ПустаяСсылка)
| ИНАЧЕ РеализацияТоваровУслуг.Склад В (ЗНАЧЕНИЕ(Справочник.Склады.ПустаяСсылка), &СкладРеализации)
| КОНЕЦ
| И &ХозяйственнаяОперация <> ЗНАЧЕНИЕ(Перечисление.ХозяйственныеОперации.ПереходПраваСобственности)
|
|ИНДЕКСИРОВАТЬ ПО
| Ссылка
|;
|
|
|ВЫБРАТЬ
| Номенклатура.Ссылка КАК Ссылка
|ПОМЕСТИТЬ НоменклатураСВариантомОформления
|ИЗ
| Справочник.Номенклатура КАК Номенклатура
|ГДЕ
| Номенклатура.ВариантОформленияПродажи В(&МассивВариантовОформления)
| И (&НеОтбиратьПоОсобенностямУчета
| ИЛИ Номенклатура.ОсобенностьУчета В (&ОсобенностиУчетаНоменклатуры))
|
|ИНДЕКСИРОВАТЬ ПО
| Ссылка
|;
|
|
|ВЫБРАТЬ
| ВТЗаказы.Ссылка КАК Ссылка,
| ВТЗаказы.ЭтоЗаказКакСчет КАК ЭтоЗаказКакСчет
|ПОМЕСТИТЬ ВТЗаказыВсе
|ИЗ
| ВТЗаказы КАК ВТЗаказы
|
|ОБЪЕДИНИТЬ ВСЕ
|
|ВЫБРАТЬ
| ВТОтгрузкиТоваровПоРаспоряжениям.Распоряжение КАК Ссылка,
| ВЫБОР
| КОГДА ВТОтгрузкиТоваровПоРаспоряжениям.Распоряжение ССЫЛКА Документ.ЗаказКлиента
| ТОГДА ВЫРАЗИТЬ(ВТОтгрузкиТоваровПоРаспоряжениям.Распоряжение КАК Документ.ЗаказКлиента).ЭтоЗаказКакСчет
| КОГДА ВТОтгрузкиТоваровПоРаспоряжениям.Распоряжение ССЫЛКА Документ.ЗаявкаНаВозвратТоваровОтКлиента
| ТОГДА ВЫРАЗИТЬ(ВТОтгрузкиТоваровПоРаспоряжениям.Распоряжение КАК Документ.ЗаявкаНаВозвратТоваровОтКлиента).ЭтоЗаказКакСчет
| ИНАЧЕ
| ЛОЖЬ
| КОНЕЦ КАК ЭтоЗаказКакСчет
|ИЗ
| ВТОтгрузкиТоваровПоРаспоряжениям КАК ВТОтгрузкиТоваровПоРаспоряжениям
|;
|
|
|ВЫБРАТЬ
| РаспоряженияОтгруженоОбороты.Регистратор КАК Регистратор,
| РаспоряженияОтгруженоОбороты.Распоряжение КАК Распоряжение,
| РаспоряженияОтгруженоОбороты.Номенклатура КАК Номенклатура,
| РаспоряженияОтгруженоОбороты.Характеристика КАК Характеристика,
| РаспоряженияОтгруженоОбороты.КодСтроки КАК КодСтроки,
| РаспоряженияОтгруженоОбороты.Склад КАК Склад,
| РаспоряженияОтгруженоОбороты.Серия КАК Серия,
| РаспоряженияОтгруженоОбороты.ОтгруженоКоличество КАК ОтгруженоКоличество
|ПОМЕСТИТЬ ВТ_РаспоряженияНаОтгрузкуОтгружено
|ИЗ
| #РаспоряженияНаОтгрузкуДвиженияРазвернутая4 КАК РаспоряженияОтгруженоОбороты
|;
|
|
|ВЫБРАТЬ
| ТаблицаЗаказы.ЗаказКлиента КАК ЗаказКлиента,
| ТаблицаЗаказы.Номенклатура КАК Номенклатура,
| ТаблицаЗаказы.Характеристика КАК Характеристика,
| ТаблицаЗаказы.Склад КАК Склад,
| ТаблицаЗаказы.ОрдернаяСхемаПриОтгрузке КАК ОрдернаяСхемаПриОтгрузке,
| ТаблицаЗаказы.Серия КАК Серия,
| ТаблицаЗаказы.Назначение КАК Назначение,
| СУММА(ТаблицаЗаказы.КоличествоСобирается) КАК КоличествоСобирается,
| СУММА(ТаблицаЗаказы.Количество) КАК Количество
|ИЗ
| (ВЫБРАТЬ
| ТоварыКОтгрузкеОстатки.ДокументОтгрузки КАК ЗаказКлиента,
| ТоварыКОтгрузкеОстатки.Номенклатура КАК Номенклатура,
| ТоварыКОтгрузкеОстатки.Характеристика КАК Характеристика,
| ТоварыКОтгрузкеОстатки.Склад КАК Склад,
| ВЫБОР
| КОГДА ТоварыКОтгрузкеОстатки.Склад.ИспользоватьОрдернуюСхемуПриОтгрузке = ИСТИНА
| И ТоварыКОтгрузкеОстатки.Склад.ДатаНачалаОрдернойСхемыПриОтгрузке <= &ТекущаяДата
| ТОГДА ИСТИНА
| ИНАЧЕ ЛОЖЬ
| КОНЕЦ КАК ОрдернаяСхемаПриОтгрузке,
| ТоварыКОтгрузкеОстатки.Серия КАК Серия,
| ТоварыКОтгрузкеОстатки.Назначение КАК Назначение,
| ТоварыКОтгрузкеОстатки.СобираетсяПриход КАК КоличествоСобирается,
| ТоварыКОтгрузкеОстатки.КОтгрузкеРасход + ТоварыКОтгрузкеОстатки.СобраноПриход КАК Количество
| ИЗ
| РегистрНакопления.ТоварыКОтгрузке.ОстаткиИОбороты(
| ,
| ,
| ,
| ,
| ДокументОтгрузки В
| (ВЫБРАТЬ
| ДокументыОтгрузки.Ссылка
| ИЗ
| ДокументыОтгрузки)
| И Номенклатура В
| (ВЫБРАТЬ
| НоменклатураСВариантомОформления.Ссылка
| ИЗ
| НоменклатураСВариантомОформления)) КАК ТоварыКОтгрузкеОстатки
|
| ОБЪЕДИНИТЬ ВСЕ
|
| ВЫБРАТЬ
| ТоварыКОтгрузкеОстатки.ДокументОтгрузки,
| ТоварыКОтгрузкеОстатки.Номенклатура,
| ТоварыКОтгрузкеОстатки.Характеристика,
| ТоварыКОтгрузкеОстатки.Склад,
| (ТоварыКОтгрузкеОстатки.Склад.ИспользоватьОрдернуюСхемуПриОтгрузке = ИСТИНА
| И ТоварыКОтгрузкеОстатки.Склад.ДатаНачалаОрдернойСхемыПриОтгрузке <= &ТекущаяДата),
| ТоварыКОтгрузкеОстатки.Серия,
| ТоварыКОтгрузкеОстатки.Назначение,
| ТоварыКОтгрузкеОстатки.СобираетсяПриход,
| - ТоварыКОтгрузкеОстатки.КОтгрузкеПриход
| ИЗ
| РегистрНакопления.ТоварыКОтгрузке.ОстаткиИОбороты(
| ,
| ,
| Регистратор,
| ,
| ДокументОтгрузки В
| (ВЫБРАТЬ
| ДокументыОтгрузки.Ссылка
| ИЗ
| ДокументыОтгрузки)
| И Номенклатура В
| (ВЫБРАТЬ
| НоменклатураСВариантомОформления.Ссылка
| ИЗ
| НоменклатураСВариантомОформления)) КАК ТоварыКОтгрузкеОстатки
| ГДЕ ТоварыКОтгрузкеОстатки.Регистратор ССЫЛКА Документ.АктОРасхожденияхПослеОтгрузки
|
| ОБЪЕДИНИТЬ ВСЕ
|
| ВЫБРАТЬ
| ЗаказыОстатки.Распоряжение,
| ЗаказыОстатки.Номенклатура,
| ЗаказыОстатки.Характеристика,
| ЗаказыОстатки.Склад,
| ВЫБОР
| КОГДА ТаблицаСкладов.ИспользоватьОрдернуюСхемуПриОтгрузке = ИСТИНА
| И ТаблицаСкладов.ДатаНачалаОрдернойСхемыПриОтгрузке <= &ТекущаяДата
| ТОГДА ИСТИНА
| ИНАЧЕ ЛОЖЬ
| КОНЕЦ,
| ЗаказыОстатки.Серия,
| ВЫБОР
| КОГДА ЗаказТовары.Обособленно
| ТОГДА ЗаказТовары.Ссылка.Назначение
| КОГДА ЗаказТоварыЗамена.Обособленно
| ТОГДА ЗаказТоварыЗамена.Ссылка.Назначение
| ИНАЧЕ ЗНАЧЕНИЕ(Справочник.Назначения.ПустаяСсылка)
| КОНЕЦ,
| 0,
| -ЗаказыОстатки.ОтгруженоКоличество
| ИЗ
| ВТ_РаспоряженияНаОтгрузкуОтгружено КАК ЗаказыОстатки
| ЛЕВОЕ СОЕДИНЕНИЕ Справочник.Склады КАК ТаблицаСкладов
| ПО ЗаказыОстатки.Склад = ТаблицаСкладов.Ссылка
| ЛЕВОЕ СОЕДИНЕНИЕ Документ.ЗаказКлиента.Товары КАК ЗаказТовары
| ПО ЗаказыОстатки.Номенклатура = ЗаказТовары.Номенклатура
| И ЗаказыОстатки.Характеристика = ЗаказТовары.Характеристика
| И ЗаказыОстатки.КодСтроки = ЗаказТовары.КодСтроки
| И ЗаказыОстатки.Распоряжение = ЗаказТовары.Ссылка
| ЛЕВОЕ СОЕДИНЕНИЕ Документ.ЗаявкаНаВозвратТоваровОтКлиента.ЗаменяющиеТовары КАК ЗаказТоварыЗамена
| ПО ЗаказыОстатки.Номенклатура = ЗаказТоварыЗамена.Номенклатура
| И ЗаказыОстатки.Характеристика = ЗаказТоварыЗамена.Характеристика
| И ЗаказыОстатки.КодСтроки = ЗаказТоварыЗамена.КодСтроки
| И ЗаказыОстатки.Распоряжение = ЗаказТоварыЗамена.Ссылка
| ГДЕ
| ЗаказыОстатки.Регистратор <> &Регистратор) КАК ТаблицаЗаказы
|
|СГРУППИРОВАТЬ ПО
| ТаблицаЗаказы.ЗаказКлиента,
| ТаблицаЗаказы.Номенклатура,
| ТаблицаЗаказы.Характеристика,
| ТаблицаЗаказы.Склад,
| ТаблицаЗаказы.ОрдернаяСхемаПриОтгрузке,
| ТаблицаЗаказы.Серия,
| ТаблицаЗаказы.Назначение
|
|ИМЕЮЩИЕ
| (СУММА(ТаблицаЗаказы.Количество) > 0
| ИЛИ СУММА(ТаблицаЗаказы.КоличествоСобирается) > 0)
|";
ПараметрыФормированияТаблицы = РегистрыНакопления.РаспоряженияНаОтгрузкуИВозврат.НовыйПараметрыФормированияРазвернутойТаблицы();
ПараметрыФормированияТаблицы.ТекстУсловия =
" Распоряжение В
| (ВЫБРАТЬ
| Распоряжение
| ИЗ
| ВТОтгрузкиТоваровПоРаспоряжениям)
| И Номенклатура.ВариантОформленияПродажи В (&МассивВариантовОформления)
| И (&НеОтбиратьПоОсобенностямУчета
| ИЛИ Номенклатура.ОсобенностьУчета В (&ОсобенностиУчетаНоменклатуры))";
ПараметрыФормированияТаблицы.Группировка = "Распоряжение, Номенклатура, Характеристика, КодСтроки";
ПараметрыФормированияТаблицы.Показатели =
"Отгружено, ОприходованоДоППС, СписаноДоППС, Оформлено, Принято, ОформленоСчетовФактур";
ПараметрыФормированияТаблицы.Ресурсы = "Количество, Сумма, СуммаНДСРегл, СуммаНДСУпр";
РаспоряженияНаОтгрузкуОборотыРазвернутая1 =
РегистрыНакопления.РаспоряженияНаОтгрузкуИВозврат.ТекстЗапросаРазвернутаяТаблица(
ПараметрыФормированияТаблицы);
Запрос.Текст = СтрЗаменить(Запрос.Текст,
"#РаспоряженияНаОтгрузкуОборотыРазвернутая1",
РаспоряженияНаОтгрузкуОборотыРазвернутая1);
ПараметрыФормированияТаблицы = РегистрыНакопления.РаспоряженияНаОтгрузкуИВозврат.НовыйПараметрыФормированияРазвернутойТаблицы();
ПараметрыФормированияТаблицы.ТекстУсловия =
"(Распоряжение, &ЭтоЗаказКакСчет) В
| (ВЫБРАТЬ
| ВТЗаказы.Ссылка,
| ВТЗаказы.ЭтоЗаказКакСчет
| ИЗ
| ВТЗаказы)
| И Номенклатура.ВариантОформленияПродажи В (&МассивВариантовОформления)
| И Номенклатура.ТипНоменклатуры = ЗНАЧЕНИЕ(Перечисление.ТипыНоменклатуры.Товар)
| И (&НеОтбиратьПоОсобенностямУчета
| ИЛИ Номенклатура.ОсобенностьУчета В (&ОсобенностиУчетаНоменклатуры))
|";
ПараметрыФормированияТаблицы.Группировка = "Распоряжение, Номенклатура, Характеристика, КодСтроки";
ПараметрыФормированияТаблицы.Показатели =
"Отгружено, ОприходованоДоППС, СписаноДоППС, Оформлено, КПриемке, Принято, ОформленоСчетовФактур";
ПараметрыФормированияТаблицы.Ресурсы = "Количество, Сумма, СуммаНДСРегл, СуммаНДСУпр";
ПараметрыФормированияТаблицы.ФизическаяТаблица = Истина;
РаспоряженияНаОтгрузкуОборотыРазвернутая2 =
РегистрыНакопления.РаспоряженияНаОтгрузкуИВозврат.ТекстЗапросаРазвернутаяТаблица(
ПараметрыФормированияТаблицы);
Запрос.Текст = СтрЗаменить(Запрос.Текст,
"#РаспоряженияНаОтгрузкуОборотыРазвернутая2",
РаспоряженияНаОтгрузкуОборотыРазвернутая2);
ПараметрыФормированияТаблицы = РегистрыНакопления.РаспоряженияНаОтгрузкуИВозврат.НовыйПараметрыФормированияРазвернутойТаблицы();
ПараметрыФормированияТаблицы.ТекстУсловия =
"(Регистратор, Распоряжение) В
| (ВЫБРАТЬ
| ОтгрузкаТоваров,
| Распоряжение
| ИЗ
| ВТОтгрузкиТоваровПоРаспоряжениям)
| И НЕ Сторно
| И Номенклатура.ВариантОформленияПродажи В (&МассивВариантовОформления)
| И Номенклатура.ТипНоменклатуры = ЗНАЧЕНИЕ(Перечисление.ТипыНоменклатуры.Товар)
| И (&НеОтбиратьПоОсобенностямУчета
| ИЛИ Номенклатура.ОсобенностьУчета В (&ОсобенностиУчетаНоменклатуры))";
ПараметрыФормированияТаблицы.Группировка = "Распоряжение, Номенклатура, Характеристика, КодСтроки";
ПараметрыФормированияТаблицы.Показатели = "Отгружено";
ПараметрыФормированияТаблицы.Ресурсы = "Количество, Сумма";
ПараметрыФормированияТаблицы.ФизическаяТаблица = Истина;
РаспоряженияНаОтгрузкуДвиженияРазвернутая3 =
РегистрыНакопления.РаспоряженияНаОтгрузкуИВозврат.ТекстЗапросаРазвернутаяТаблица(
ПараметрыФормированияТаблицы);
Запрос.Текст = СтрЗаменить(Запрос.Текст,
"#РаспоряженияНаОтгрузкуДвиженияРазвернутая3",
РаспоряженияНаОтгрузкуДвиженияРазвернутая3);
ПараметрыФормированияТаблицы = РегистрыНакопления.РаспоряженияНаОтгрузкуИВозврат.НовыйПараметрыФормированияРазвернутойТаблицы();
ПараметрыФормированияТаблицы.ТекстУсловия =
"(Распоряжение, &ЭтоЗаказКакСчет) В
| (ВЫБРАТЬ
| Ссылка,
| ЭтоЗаказКакСчет
| ИЗ
| ВТЗаказыВсе)
| И ВЫБОР
| КОГДА ВЫРАЗИТЬ(&СкладРеализации КАК Справочник.Склады).ЭтоГруппа
| ТОГДА Склад В ИЕРАРХИИ (&СкладРеализации)
| ИЛИ Склад = ЗНАЧЕНИЕ(Справочник.Склады.ПустаяСсылка)
| ИНАЧЕ Склад В (ЗНАЧЕНИЕ(Справочник.Склады.ПустаяСсылка), &СкладРеализации)
| КОНЕЦ
| И Номенклатура В
| (ВЫБРАТЬ
| НоменклатураСВариантомОформления.Ссылка
| ИЗ
| НоменклатураСВариантомОформления)";
ПараметрыФормированияТаблицы.Группировка =
"Регистратор, Распоряжение, Номенклатура, Характеристика, КодСтроки, Склад, Серия";
ПараметрыФормированияТаблицы.Показатели = "Отгружено";
ПараметрыФормированияТаблицы.Ресурсы = "Количество";
ПараметрыФормированияТаблицы.ФизическаяТаблица = Истина;
РаспоряженияНаОтгрузкуДвиженияРазвернутая4 =
РегистрыНакопления.РаспоряженияНаОтгрузкуИВозврат.ТекстЗапросаРазвернутаяТаблица(
ПараметрыФормированияТаблицы);
Запрос.Текст = СтрЗаменить(Запрос.Текст,
"#РаспоряженияНаОтгрузкуДвиженияРазвернутая4",
РаспоряженияНаОтгрузкуДвиженияРазвернутая4);
Если ЗначениеЗаполнено(ДанныеОтбора.Организация) Тогда
ОрганизацияДляРасчетаСтавкиНДС = ДанныеОтбора.Организация;
ИначеЕсли ТипЗнч(МассивЗаказов) = Тип("Массив") И МассивЗаказов.Количество() > 0 Тогда
ОрганизацияДляРасчетаСтавкиНДС = ОбщегоНазначения.ЗначениеРеквизитаОбъекта(МассивЗаказов[0], "Организация");
КонецЕсли;
Запрос.Текст = СтрЗаменить(Запрос.Текст,
"&СтавкаНДСОтгрузкаТоваровБезРаспоряжения",
УчетНДСУП.ТекстЗапросаСтавкаНДС(
"ОтгрузкаТовары.Ссылка.НалогообложениеНДС",
"ОтгрузкаТовары.Номенклатура",
"&ВернутьМногооборотнуюТару"));
Запрос.Текст = СтрЗаменить(Запрос.Текст,
"&СтавкаНДСВводОстатковТоваров",
УчетНДСУП.ТекстЗапросаСтавкаНДС(
"ВводОстатковТовары.Ссылка.Партия.НалогообложениеНДС",
"ВводОстатковТовары.Номенклатура",
"&ВернутьМногооборотнуюТару"));
УчетНДСУП.УстановитьПараметрыЗапросаСтавкиНДС(
Запрос.Параметры,
ОрганизацияДляРасчетаСтавкиНДС,
?(ЗначениеЗаполнено(ДанныеОтбора.Ссылка),
ДанныеОтбора.Ссылка.Дата,
НачалоДня(ТекущаяДатаСеанса())));
Запрос.УстановитьПараметр("СтранаРегистрации",
ЗначениеНастроекКлиентСерверПовтИсп.СтранаРегистрацииОрганизации(ОрганизацияДляРасчетаСтавкиНДС));
Запрос.Текст = СтрЗаменить(Запрос.Текст, "&ТекстЗапросаКоэффициентУпаковки1",
Справочники.УпаковкиЕдиницыИзмерения.ТекстЗапросаКоэффициентаУпаковки(
"НакладнаяТовары.Упаковка",
"НакладнаяТовары.Номенклатура"));
Запрос.Текст = СтрЗаменить(Запрос.Текст, "&ТекстЗапросаКоэффициентУпаковки2",
Справочники.УпаковкиЕдиницыИзмерения.ТекстЗапросаКоэффициентаУпаковки(
"ЗаказТовары.Упаковка",
"ЗаказТовары.Номенклатура"));
Запрос.Текст = СтрЗаменить(Запрос.Текст, "&ТекстЗапросаКоэффициентУпаковки3",
Справочники.УпаковкиЕдиницыИзмерения.ТекстЗапросаКоэффициентаУпаковки(
"ТоварыРеализации.Упаковка",
"ТоварыРеализации.Номенклатура"));
Запрос.Текст = СтрЗаменить(Запрос.Текст, "&ТекстЗапросаКоэффициентУпаковки4",
Справочники.УпаковкиЕдиницыИзмерения.ТекстЗапросаКоэффициентаУпаковки(
"ОтгрузкаТовары.Упаковка",
"ОтгрузкаТовары.Номенклатура"));
Запрос.Текст = СтрЗаменить(Запрос.Текст, "&ТекстЗапросаКоэффициентУпаковки5",
Справочники.УпаковкиЕдиницыИзмерения.ТекстЗапросаКоэффициентаУпаковки(
"ВводОстатковТовары.Упаковка",
"ВводОстатковТовары.Номенклатура"));
УстановитьПривилегированныйРежим(Истина);
Возврат Запрос.ВыполнитьПакет();
КонецФункции
Функция СуммыПоЗаказам(СсылкаОбъект, ЗначенияРеквизитов = Неопределено) Экспорт
Запрос = Новый Запрос;
Запрос.Текст = "
|ВЫБРАТЬ
| Товары.ЗаказКлиента КАК Заказ,
| Товары.СуммаСНДС КАК Сумма,
| Товары.СуммаВзаиморасчетов КАК СуммаВзаиморасчетов,
| Товары.Номенклатура КАК Номенклатура,
| Товары.КодСтроки КАК КодСтроки,
| &ВернутьМногооборотнуюТару КАК ВернутьМногооборотнуюТару,
| &ТребуетсяЗалогЗаТару КАК ТребуетсяЗалогЗаТару,
| &ЗаказШапки КАК ЗаказШапка,
| &ПоЗаказам КАК ПоЗаказам
|ПОМЕСТИТЬ ВТТовары
|ИЗ &ТаблицаЗначений КАК Товары
|ГДЕ &УсловиеСсылка
|;
|ВЫБРАТЬ
| ВложенныйЗапрос.Заказ КАК Заказ,
| ЕСТЬNULL(ВложенныйЗапрос.Заказ.Дата, ДАТАВРЕМЯ(1,1,1)) КАК ДатаЗаказа,
| ЕСТЬNULL(ВложенныйЗапрос.Заказ.ДатаСогласования, ДАТАВРЕМЯ(1,1,1)) КАК ДатаСогласования,
| ВложенныйЗапрос.СверхЗаказа КАК СверхЗаказа,
| СУММА(ВложенныйЗапрос.СуммаПлатежа) КАК СуммаПлатежа,
| СУММА(ВложенныйЗапрос.СуммаВзаиморасчетов) КАК СуммаВзаиморасчетов,
| СУММА(ВложенныйЗапрос.СуммаЗалогаЗаТару) КАК СуммаЗалогаЗаТару,
| СУММА(ВложенныйЗапрос.СуммаВзаиморасчетовПоТаре) КАК СуммаВзаиморасчетовПоТаре
|ИЗ (ВЫБРАТЬ
| ВЫБОР КОГДА ЕСТЬNULL(Товары.Заказ.Номер, """") = """"
| ТОГДА Товары.ЗаказШапка
| ИНАЧЕ Товары.Заказ
| КОНЕЦ КАК Заказ,
| ЛОЖЬ КАК СверхЗаказа,
| ВЫБОР
| КОГДА Товары.Номенклатура.ТипНоменклатуры <> ЗНАЧЕНИЕ(Перечисление.ТипыНоменклатуры.МногооборотнаяТара)
| ИЛИ НЕ Товары.ВернутьМногооборотнуюТару
| ТОГДА Товары.Сумма
| ИНАЧЕ 0
| КОНЕЦ КАК СуммаПлатежа,
| ВЫБОР
| КОГДА Товары.Номенклатура.ТипНоменклатуры <> ЗНАЧЕНИЕ(Перечисление.ТипыНоменклатуры.МногооборотнаяТара)
| ИЛИ НЕ Товары.ВернутьМногооборотнуюТару
| ТОГДА Товары.СуммаВзаиморасчетов
| ИНАЧЕ 0
| КОНЕЦ КАК СуммаВзаиморасчетов,
| ВЫБОР
| КОГДА Товары.Номенклатура.ТипНоменклатуры = ЗНАЧЕНИЕ(Перечисление.ТипыНоменклатуры.МногооборотнаяТара)
| И Товары.ТребуетсяЗалогЗаТару
| ТОГДА Товары.Сумма
| ИНАЧЕ 0
| КОНЕЦ КАК СуммаЗалогаЗаТару,
| ВЫБОР
| КОГДА Товары.Номенклатура.ТипНоменклатуры = ЗНАЧЕНИЕ(Перечисление.ТипыНоменклатуры.МногооборотнаяТара)
| И Товары.ТребуетсяЗалогЗаТару
| ТОГДА Товары.СуммаВзаиморасчетов
| ИНАЧЕ 0
| КОНЕЦ КАК СуммаВзаиморасчетовПоТаре
| ИЗ ВТТовары КАК Товары
| ГДЕ
| Товары.КодСтроки <> 0
|
| ОБЪЕДИНИТЬ ВСЕ
|
| ВЫБРАТЬ
| ВЫБОР КОГДА ЕСТЬNULL(Товары.Заказ.Номер, """") = """"
| ТОГДА Товары.ЗаказШапка
| ИНАЧЕ Товары.Заказ
| КОНЕЦ КАК Заказ,
| Товары.ПоЗаказам КАК СверхЗаказа,
| ВЫБОР
| КОГДА Товары.Номенклатура.ТипНоменклатуры <> ЗНАЧЕНИЕ(Перечисление.ТипыНоменклатуры.МногооборотнаяТара)
| ИЛИ НЕ Товары.ВернутьМногооборотнуюТару
| ТОГДА Товары.Сумма
| ИНАЧЕ 0
| КОНЕЦ КАК СуммаПлатежа,
| ВЫБОР
| КОГДА Товары.Номенклатура.ТипНоменклатуры <> ЗНАЧЕНИЕ(Перечисление.ТипыНоменклатуры.МногооборотнаяТара)
| ИЛИ НЕ Товары.ВернутьМногооборотнуюТару
| ТОГДА Товары.СуммаВзаиморасчетов
| ИНАЧЕ 0
| КОНЕЦ КАК СуммаВзаиморасчетов,
| ВЫБОР
| КОГДА Товары.Номенклатура.ТипНоменклатуры = ЗНАЧЕНИЕ(Перечисление.ТипыНоменклатуры.МногооборотнаяТара)
| И Товары.ТребуетсяЗалогЗаТару
| ТОГДА Товары.Сумма
| ИНАЧЕ 0
| КОНЕЦ КАК СуммаЗалогаЗаТару,
| ВЫБОР
| КОГДА Товары.Номенклатура.ТипНоменклатуры = ЗНАЧЕНИЕ(Перечисление.ТипыНоменклатуры.МногооборотнаяТара)
| И Товары.ТребуетсяЗалогЗаТару
| ТОГДА Товары.СуммаВзаиморасчетов
| ИНАЧЕ 0
| КОНЕЦ КАК СуммаВзаиморасчетовПоТаре
| ИЗ ВТТовары КАК Товары
| ГДЕ
| Товары.КодСтроки = 0) КАК ВложенныйЗапрос
|СГРУППИРОВАТЬ ПО
| ВложенныйЗапрос.Заказ,
| ВложенныйЗапрос.СверхЗаказа,
| ЕСТЬNULL(ВложенныйЗапрос.Заказ.Дата, ДАТАВРЕМЯ(1,1,1)),
| ЕСТЬNULL(ВложенныйЗапрос.Заказ.ДатаСогласования, ДАТАВРЕМЯ(1,1,1))
|;";
Если ЗначенияРеквизитов = Неопределено Тогда
Запрос.Текст = СтрЗаменить(Запрос.Текст, "&Таблица", "Документ.ЗаказКлиента.Товары");
Запрос.Текст = СтрЗаменить(Запрос.Текст, "&ВернутьМногооборотнуюТару", "Товары.Ссылка.ВернутьМногооборотнуюТару");
Запрос.Текст = СтрЗаменить(Запрос.Текст, "&ТребуетсяЗалогЗаТару", "Товары.Ссылка.ТребуетсяЗалогЗаТару");
Запрос.Текст = СтрЗаменить(Запрос.Текст, "&ЗаказШапки", "Товары.Ссылка.ЗаказКлиента");
Запрос.Текст = СтрЗаменить(Запрос.Текст, "&ПоЗаказам", "Товары.Ссылка.РеализацияПоЗаказам");
Запрос.Текст = СтрЗаменить(Запрос.Текст, "&УсловиеСсылка", "Товары.Ссылка = &Ссылка");
Запрос.УстановитьПараметр("Ссылка",СсылкаОбъект);
Иначе
Запрос.Текст = СтрЗаменить(Запрос.Текст, "&УсловиеСсылка", "ИСТИНА");
Для Каждого КлючЗначение Из ЗначенияРеквизитов Цикл
Запрос.УстановитьПараметр(КлючЗначение.Ключ, КлючЗначение.Значение);
КонецЦикла;
КонецЕсли;
Возврат Запрос.Выполнить().Выгрузить();
КонецФункции
Функция ТекстЗапросаТоварыПереданные() Экспорт
ТекстЗапроса =
"ВЫБРАТЬ
| ТоварыНакладной.НомерСтроки КАК НомерСтроки,
| ТоварыНакладной.Номенклатура КАК Номенклатура,
| ТоварыНакладной.Характеристика КАК Характеристика,
| ТоварыНакладной.Серия КАК Серия,
| ТоварыНакладной.СтатусУказанияСерий КАК СтатусУказанияСерий,
| ТоварыНакладной.Назначение КАК Назначение,
| ТоварыНакладной.НомерГТД КАК НомерГТД,
| ТоварыНакладной.Количество КАК Количество
|ПОМЕСТИТЬ ВтТоварыНакладной
|ИЗ
| &Товары КАК ТоварыНакладной
|;
|
|
|ВЫБРАТЬ
| МИНИМУМ(ВтТоварыНакладной.НомерСтроки) КАК НомерСтроки,
| ВтТоварыНакладной.Номенклатура,
| ВтТоварыНакладной.Характеристика,
| ВЫБОР
| КОГДА ВтТоварыНакладной.СтатусУказанияСерий <> 0
| И &ХозяйственнаяОперация В (
| ЗНАЧЕНИЕ(Перечисление.ХозяйственныеОперации.РеализацияЧерезКомиссионера),
| ЗНАЧЕНИЕ(Перечисление.ХозяйственныеОперации.РеализацияЧерезКомиссионераБезПереходаПраваСобственности))
| И НЕ ВтПолитикиУчетаСерий.УчетСерийВПереданныхНаКомиссиюТоваров
| ТОГДА ЗНАЧЕНИЕ(Справочник.СерииНоменклатуры.ПустаяСсылка)
| ИНАЧЕ ВтТоварыНакладной.Серия
| КОНЕЦ КАК Серия,
| ВЫБОР
| КОГДА ВтТоварыНакладной.СтатусУказанияСерий <> 0
| И &ХозяйственнаяОперация В (
| ЗНАЧЕНИЕ(Перечисление.ХозяйственныеОперации.РеализацияЧерезКомиссионера),
| ЗНАЧЕНИЕ(Перечисление.ХозяйственныеОперации.РеализацияЧерезКомиссионераБезПереходаПраваСобственности))
| И НЕ ВтПолитикиУчетаСерий.УчетСерийВПереданныхНаКомиссиюТоваров
| ТОГДА ИСТИНА
| ИНАЧЕ ЛОЖЬ
| КОНЕЦ КАК РазныйУчетСерий,
| ВтТоварыНакладной.Назначение,
| ВтТоварыНакладной.НомерГТД,
| СУММА(ВтТоварыНакладной.Количество) КАК Количество
|ПОМЕСТИТЬ ТоварыНакладной
|ИЗ
| ВтТоварыНакладной КАК ВтТоварыНакладной
| ЛЕВОЕ СОЕДИНЕНИЕ Справочник.Номенклатура КАК ВтНоменклатура
| ПО ВтТоварыНакладной.Номенклатура = ВтНоменклатура.Ссылка
| ЛЕВОЕ СОЕДИНЕНИЕ Справочник.ВидыНоменклатуры КАК ВтВидыНоменклатуры
| ПО ВтНоменклатура.ВидНоменклатуры = ВтВидыНоменклатуры.Ссылка
| ЛЕВОЕ СОЕДИНЕНИЕ Справочник.ПолитикиУчетаСерий КАК ВтПолитикиУчетаСерий
| ПО ВтВидыНоменклатуры.ПолитикаУчетаСерий = ВтПолитикиУчетаСерий.Ссылка
|
|СГРУППИРОВАТЬ ПО
| ВтТоварыНакладной.Номенклатура,
| ВтТоварыНакладной.Характеристика,
| ВЫБОР
| КОГДА ВтТоварыНакладной.СтатусУказанияСерий <> 0
| И &ХозяйственнаяОперация В (
| ЗНАЧЕНИЕ(Перечисление.ХозяйственныеОперации.РеализацияЧерезКомиссионера),
| ЗНАЧЕНИЕ(Перечисление.ХозяйственныеОперации.РеализацияЧерезКомиссионераБезПереходаПраваСобственности))
| И НЕ ВтПолитикиУчетаСерий.УчетСерийВПереданныхНаКомиссиюТоваров
| ТОГДА ЗНАЧЕНИЕ(Справочник.СерииНоменклатуры.ПустаяСсылка)
| ИНАЧЕ ВтТоварыНакладной.Серия
| КОНЕЦ,
| ВЫБОР
| КОГДА ВтТоварыНакладной.СтатусУказанияСерий <> 0
| И &ХозяйственнаяОперация В (
| ЗНАЧЕНИЕ(Перечисление.ХозяйственныеОперации.РеализацияЧерезКомиссионера),
| ЗНАЧЕНИЕ(Перечисление.ХозяйственныеОперации.РеализацияЧерезКомиссионераБезПереходаПраваСобственности))
| И НЕ ВтПолитикиУчетаСерий.УчетСерийВПереданныхНаКомиссиюТоваров
| ТОГДА ИСТИНА
| ИНАЧЕ ЛОЖЬ
| КОНЕЦ,
| ВтТоварыНакладной.Назначение,
| ВтТоварыНакладной.НомерГТД
|;
|
|
|ВЫБРАТЬ РАЗРЕШЕННЫЕ
| КлючиАналитики.Ссылка КАК Ссылка
|ПОМЕСТИТЬ КлючиАналитики
|ИЗ
| Справочник.КлючиАналитикиУчетаНоменклатуры КАК КлючиАналитики
|ГДЕ
| КлючиАналитики.МестоХранения = &Договор
|;
|
|
|ВЫБРАТЬ РАЗРЕШЕННЫЕ
| ТоварыПереданныеОстатки.АналитикаУчетаНоменклатуры КАК АналитикаУчетаНоменклатуры,
| ТоварыПереданныеОстатки.НомерГТД КАК НомерГТД,
| ТоварыПереданныеОстатки.КоличествоОстаток КАК КоличествоОстаток
|ПОМЕСТИТЬ ТоварыПереданныеОстаток
|ИЗ
| РегистрНакопления.ТоварыОрганизаций.Остатки(&Период, АналитикаУчетаНоменклатуры В
| (ВЫБРАТЬ
| КлючиАналитики.Ссылка
| ИЗ
| КлючиАналитики КАК КлючиАналитики)
| И Организация = &Организация) КАК ТоварыПереданныеОстатки
|;
|
|
|ВЫБРАТЬ РАЗРЕШЕННЫЕ
| ТоварыПереданные.АналитикаУчетаНоменклатуры КАК АналитикаУчетаНоменклатуры,
| ТоварыПереданные.НомерГТД КАК НомерГТД,
| ТоварыПереданные.КоличествоОстаток КАК КоличествоОстаток,
| ВЫБОР
| КОГДА ТоварыПереданные.КоличествоОстаток < 0
| ТОГДА -1
| ИНАЧЕ 1
| КОНЕЦ КАК Знак
|ПОМЕСТИТЬ ТоварыПереданныеОстатокЗнак
|ИЗ
| РегистрНакопления.ТоварыОрганизаций.Остатки(, АналитикаУчетаНоменклатуры В
| (ВЫБРАТЬ
| КлючиАналитики.Ссылка
| ИЗ
| КлючиАналитики КАК КлючиАналитики)
| И Организация = &Организация) КАК ТоварыПереданные
|;
|
|
|
|ВЫБРАТЬ РАЗРЕШЕННЫЕ
| ТоварыПереданные.АналитикаУчетаНоменклатуры КАК АналитикаУчетаНоменклатуры,
| ТоварыПереданные.НомерГТД КАК НомерГТД,
| СУММА(ТоварыПереданные.КоличествоОстаток) КАК КоличествоОстаток
|ПОМЕСТИТЬ ТоварыПереданные
|ИЗ
| (ВЫБРАТЬ
| ТоварыПереданные.АналитикаУчетаНоменклатуры,
| ТоварыПереданные.НомерГТД,
| ВЫБОР
| КОГДА ЕСТЬNULL(Остатки.КоличествоОстаток * Остатки.Знак, 0) < ТоварыПереданные.КоличествоОстаток * ЕСТЬNULL(Остатки.Знак, 1)
| ТОГДА ЕСТЬNULL(Остатки.КоличествоОстаток, 0)
| ИНАЧЕ ТоварыПереданные.КоличествоОстаток
| КОНЕЦ КАК КоличествоОстаток
| ИЗ
| ТоварыПереданныеОстаток КАК ТоварыПереданные
| ЛЕВОЕ СОЕДИНЕНИЕ ТоварыПереданныеОстатокЗнак КАК Остатки
| ПО ТоварыПереданные.АналитикаУчетаНоменклатуры = Остатки.АналитикаУчетаНоменклатуры
| И ТоварыПереданные.НомерГТД = Остатки.НомерГТД
|
| ОБЪЕДИНИТЬ ВСЕ
|
| ВЫБРАТЬ
| ТоварыПереданныеРегистратор.АналитикаУчетаНоменклатуры,
| ТоварыПереданныеРегистратор.НомерГТД,
| ТоварыПереданныеРегистратор.Количество
| ИЗ
| РегистрНакопления.ТоварыОрганизаций КАК ТоварыПереданныеРегистратор
| ГДЕ
| ТоварыПереданныеРегистратор.Регистратор = &Регистратор
| И ТоварыПереданныеРегистратор.Активность
| И ТоварыПереданныеРегистратор.АналитикаУчетаНоменклатуры В
| (ВЫБРАТЬ
| КлючиАналитики.Ссылка
| ИЗ
| КлючиАналитики КАК КлючиАналитики)
| И ТоварыПереданныеРегистратор.Организация = &Организация) КАК ТоварыПереданные
|СГРУППИРОВАТЬ ПО
| ТоварыПереданные.АналитикаУчетаНоменклатуры,
| ТоварыПереданные.НомерГТД
|
|ИМЕЮЩИЕ
| СУММА(ТоварыПереданные.КоличествоОстаток) > 0
|;
|
|
|ВЫБРАТЬ РАЗРЕШЕННЫЕ
| ЕСТЬNULL(КлючиАналитики.Номенклатура, ЗНАЧЕНИЕ(Справочник.Номенклатура.ПустаяСсылка)) КАК Номенклатура,
| ЕСТЬNULL(КлючиАналитики.Характеристика, ЗНАЧЕНИЕ(Справочник.ХарактеристикиНоменклатуры.ПустаяСсылка)) КАК
| Характеристика,
| ВЫБОР
| КОГДА вт_Номенклатура.ТипНоменклатуры = ЗНАЧЕНИЕ(Перечисление.ТипыНоменклатуры.МногооборотнаяТара)
| ТОГДА ЗНАЧЕНИЕ(Справочник.Назначения.ПустаяСсылка)
| ИНАЧЕ КлючиАналитики.Назначение
| КОНЕЦ КАК Назначение,
| ЕСТЬNULL(КлючиАналитики.Серия, ЗНАЧЕНИЕ(Справочник.СерииНоменклатуры.ПустаяСсылка)) КАК Серия,
| ТоварыПереданные.НомерГТД КАК НомерГТД,
| ТоварыПереданные.НомерГТД.СтранаПроисхождения КАК СтранаПроисхождения,
| СУММА(ТоварыПереданные.КоличествоОстаток) КАК КоличествоОстаток
|ПОМЕСТИТЬ ТоварыПереданныеГруппировка
|ИЗ
| ТоварыПереданные КАК ТоварыПереданные
| ЛЕВОЕ СОЕДИНЕНИЕ Справочник.КлючиАналитикиУчетаНоменклатуры КАК КлючиАналитики
| ПО ТоварыПереданные.АналитикаУчетаНоменклатуры = КлючиАналитики.Ссылка
| ЛЕВОЕ СОЕДИНЕНИЕ Справочник.Номенклатура КАК вт_Номенклатура
| ПО КлючиАналитики.Номенклатура = вт_Номенклатура.Ссылка
|СГРУППИРОВАТЬ ПО
| ЕСТЬNULL(КлючиАналитики.Номенклатура, ЗНАЧЕНИЕ(Справочник.Номенклатура.ПустаяСсылка)),
| ЕСТЬNULL(КлючиАналитики.Характеристика, ЗНАЧЕНИЕ(Справочник.ХарактеристикиНоменклатуры.ПустаяСсылка)),
| ВЫБОР
| КОГДА вт_Номенклатура.ТипНоменклатуры = ЗНАЧЕНИЕ(Перечисление.ТипыНоменклатуры.МногооборотнаяТара)
| ТОГДА ЗНАЧЕНИЕ(Справочник.Назначения.ПустаяСсылка)
| ИНАЧЕ КлючиАналитики.Назначение
| КОНЕЦ,
| ЕСТЬNULL(КлючиАналитики.Серия, ЗНАЧЕНИЕ(Справочник.СерииНоменклатуры.ПустаяСсылка)),
| ТоварыПереданные.НомерГТД,
| ТоварыПереданные.НомерГТД.СтранаПроисхождения
|;
|
|
|ВЫБРАТЬ
| ТоварыПереданныеГруппировка.Номенклатура КАК Номенклатура,
| ТоварыПереданныеГруппировка.Характеристика КАК Характеристика,
| ТоварыПереданныеГруппировка.Назначение КАК Назначение,
| ТоварыПереданныеГруппировка.Серия КАК Серия,
| ЕСТЬNULL(ТоварыНакладной.РазныйУчетСерий, ЛОЖЬ) КАК РазныйУчетСерий,
| ТоварыПереданныеГруппировка.НомерГТД КАК НомерГТД,
| ТоварыПереданныеГруппировка.СтранаПроисхождения КАК СтранаПроисхождения,
| ТоварыПереданныеГруппировка.КоличествоОстаток КАК КоличествоОстаток,
| ТоварыПереданныеГруппировка.КоличествоОстаток - ЕСТЬNULL(ТоварыНакладной.Количество, 0) КАК КоличествоОсталосьПодобрать,
| ЕСТЬNULL(ТоварыНакладной.Количество, 0) КАК КоличествоПодобрано,
| ЕСТЬNULL(ТоварыНакладной.Количество, 0) КАК КоличествоВНакладной
|
|ИЗ
| ТоварыПереданныеГруппировка КАК ТоварыПереданныеГруппировка
| ЛЕВОЕ СОЕДИНЕНИЕ ТоварыНакладной КАК ТоварыНакладной
| ПО ТоварыПереданныеГруппировка.Номенклатура = ТоварыНакладной.Номенклатура
| И ТоварыПереданныеГруппировка.Характеристика = ТоварыНакладной.Характеристика
| И ТоварыПереданныеГруппировка.Назначение = ТоварыНакладной.Назначение
| И ТоварыПереданныеГруппировка.Серия = ТоварыНакладной.Серия
| И ТоварыПереданныеГруппировка.НомерГТД = ТоварыНакладной.НомерГТД
|
|УПОРЯДОЧИТЬ ПО
| ЕСТЬNULL(ТоварыНакладной.НомерСтроки, 99999)
|";
Возврат ТекстЗапроса;
КонецФункции
Функция ОбработчикДействий(ХозяйственнаяОперация = Неопределено) Экспорт
Обработчик = Документы.РеализацияТоваровУслуг;
Возврат Обработчик;
КонецФункции
#КонецОбласти
#Область ПодакцизныеТовары
Функция ОперацииОблагаемыеАкцизом()
ОблагаемыеОперации = Новый Массив;
ОблагаемыеОперации.Добавить(Перечисления.ХозяйственныеОперации.РеализацияКлиенту);
ОблагаемыеОперации.Добавить(Перечисления.ХозяйственныеОперации.РеализацияКлиентуРеглУчет);
Возврат ОблагаемыеОперации;
КонецФункции
#КонецОбласти
#Область ТекущиеДела
Процедура ПриЗаполненииСпискаТекущихДел(ТекущиеДела) Экспорт
ИмяФормы = "Обработка.ЖурналДокументовПродажи.Форма.КОформлениюНакладных";
ИмяФормыРеализация = "Документ.РеализацияТоваровУслуг.Форма.ФормаСписка";
ОбщиеПараметрыЗапросов = ТекущиеДелаСлужебный.ОбщиеПараметрыЗапросов();
Доступность =
ОбщиеПараметрыЗапросов.ЭтоПолноправныйПользователь
И (ПравоДоступа("Добавление", Метаданные.Документы.РеализацияТоваровУслуг)
ИЛИ ПравоДоступа("Изменение", Метаданные.Документы.РеализацияТоваровУслуг))
И ПравоДоступа("Просмотр", Метаданные.Документы.РеализацияТоваровУслуг)
И ПравоДоступа("Чтение", Метаданные.Документы.ЗаявкаНаВозвратТоваровОтКлиента)
И ПравоДоступа("Чтение", Метаданные.РегистрыСведений.РаспоряженияНаОтгрузкуИВозвратКВыполнению);
Если НЕ Доступность Тогда
Возврат;
КонецЕсли;
ДоступностьРаспоряжений =
ПравоДоступа("Добавление", Метаданные.Документы.РеализацияТоваровУслуг)
И ПолучитьФункциональнуюОпцию("ИспользоватьРасширенныеВозможностиЗаказаКлиента");
ДоступностьСтатусов =
ПолучитьФункциональнуюОпцию("ИспользоватьСтатусыРеализацийТоваровУслуг");
ДоступностьВПути = ПолучитьФункциональнуюОпцию("ИспользоватьОтгрузкуБезПереходаПраваСобственности2_0");
Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ РАЗРЕШЕННЫЕ
| &ДоступностьРаспоряжений1,
| &ДоступностьВПути1,
| КОЛИЧЕСТВО(РАЗЛИЧНЫЕ ДанныеПоДокументам.РеализацииТоваровИУслугКПредоплате) КАК РеализацииТоваровИУслугКПредоплате
|ИЗ
| (ВЫБРАТЬ
| &ДоступностьРаспоряжений2,
| &ДоступностьВПути2,
| NULL КАК РеализацииТоваровИУслугКПредоплате
| ИЗ
| (ВЫБРАТЬ
| РаспоряженияНаОтгрузкуИВозвратКВыполнению.Распоряжение КАК Ссылка,
| НЕОПРЕДЕЛЕНО КАК Склад,
| НЕОПРЕДЕЛЕНО КАК Номенклатура,
| НЕОПРЕДЕЛЕНО КАК Характеристика,
| НЕОПРЕДЕЛЕНО КАК Серия
| ИЗ
| РегистрСведений.РаспоряженияНаОтгрузкуИВозвратКВыполнению КАК РаспоряженияНаОтгрузкуИВозвратКВыполнению
| ГДЕ
| (РаспоряженияНаОтгрузкуИВозвратКВыполнению.Распоряжение ССЫЛКА Документ.ЗаказКлиента
| ИЛИ РаспоряженияНаОтгрузкуИВозвратКВыполнению.Распоряжение ССЫЛКА Документ.ЗаявкаНаВозвратТоваровОтКлиента)
| И РаспоряженияНаОтгрузкуИВозвратКВыполнению.СостояниеКОформлению <> ЗНАЧЕНИЕ(Перечисление.СостояниеОформленияДокументовПоРаспоряжению.Оформлены)
| И РаспоряженияНаОтгрузкуИВозвратКВыполнению.Распоряжение ЕСТЬ НЕ NULL
| И НЕ РаспоряженияНаОтгрузкуИВозвратКВыполнению.ХозяйственнаяОперация В(&ХозяйственныеОперации)
|
| ОБЪЕДИНИТЬ ВСЕ
|
| ВЫБРАТЬ
| ТоварыКОтгрузке.ДокументОтгрузки,
| ТоварыКОтгрузке.Склад,
| ТоварыКОтгрузке.Номенклатура,
| ТоварыКОтгрузке.Характеристика,
| ТоварыКОтгрузке.Серия
| ИЗ
| РегистрНакопления.ТоварыКОтгрузке.ОстаткиИОбороты(
| ,
| ,
| ,
| ,
| (ДокументОтгрузки ССЫЛКА Документ.ЗаказКлиента
| ИЛИ ДокументОтгрузки ССЫЛКА Документ.ЗаявкаНаВозвратТоваровОтКлиента
| ИЛИ ДокументОтгрузки ССЫЛКА Документ.РеализацияТоваровУслуг)) КАК ТоварыКОтгрузке
| ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.ТоварыКОтгрузке.ОстаткиИОбороты(
| ,
| ,
| ,
| ,
| (ДокументОтгрузки ССЫЛКА Документ.ЗаказКлиента
| ИЛИ ДокументОтгрузки ССЫЛКА Документ.ЗаявкаНаВозвратТоваровОтКлиента
| ИЛИ ДокументОтгрузки ССЫЛКА Документ.РеализацияТоваровУслуг)) КАК ТоварыКОтгрузкеОстаткиИОбороты
| ПО ТоварыКОтгрузке.ДокументОтгрузки = ТоварыКОтгрузкеОстаткиИОбороты.ДокументОтгрузки
| И ТоварыКОтгрузке.Склад = ТоварыКОтгрузкеОстаткиИОбороты.Склад
| ГДЕ
| НЕ ЕСТЬNULL(ТоварыКОтгрузке.ДокументОтгрузки.ХозяйственнаяОперация, ЗНАЧЕНИЕ(Перечисление.ХозяйственныеОперации.ПустаяСсылка)) В(&ХозяйственныеОперации)
| И (ТоварыКОтгрузке.КОтгрузкеКонечныйОстаток - ТоварыКОтгрузке.СобраноКонечныйОстаток > 0
| ИЛИ ТоварыКОтгрузке.КОформлениюКонечныйОстаток > 0)
| И ТоварыКОтгрузке.Склад.ИспользоватьОрдернуюСхемуПриОтгрузке
| И ТоварыКОтгрузке.ДокументОтгрузки.Ссылка ЕСТЬ НЕ NULL
| И ТоварыКОтгрузке.Склад.ДатаНачалаОрдернойСхемыПриОтгрузке <= &ТекущаяДата) КАК ЗаказыКОформлению
|
| ОБЪЕДИНИТЬ
|
| ВЫБРАТЬ РАЗЛИЧНЫЕ
| &ДоступностьРаспоряжений3,
| &ДоступностьВПути3,
| NULL
| ИЗ
| Документ.РеализацияТоваровУслуг КАК РеализацияТоваровУслуг
| ГДЕ
| РеализацияТоваровУслуг.Статус = ЗНАЧЕНИЕ(Перечисление.СтатусыРеализацийТоваровУслуг.ВПути)
| И РеализацияТоваровУслуг.Менеджер = &Пользователь
| И НЕ РеализацияТоваровУслуг.ПометкаУдаления
|
| ОБЪЕДИНИТЬ
|
| ВЫБРАТЬ РАЗЛИЧНЫЕ
| &ДоступностьРаспоряжений3,
| &ДоступностьВПути4,
| РеализацияТоваровУслуг.Ссылка
| ИЗ
| Документ.РеализацияТоваровУслуг КАК РеализацияТоваровУслуг
| ГДЕ
| РеализацияТоваровУслуг.Статус = ЗНАЧЕНИЕ(Перечисление.СтатусыРеализацийТоваровУслуг.КПредоплате)
| И РеализацияТоваровУслуг.Менеджер = &Пользователь
| И НЕ РеализацияТоваровУслуг.ПометкаУдаления) КАК ДанныеПоДокументам";
ХозяйственныеОперацииПередач = Новый Массив;
ХозяйственныеОперацииПередач.Добавить(Перечисления.ХозяйственныеОперации.ВозвратОтХранителя);
ХозяйственныеОперацииПередач.Добавить(Перечисления.ХозяйственныеОперации.ПередачаНаХранениеСПравомПродажи);
Запрос.УстановитьПараметр("ДатаОтгрузкиРеализация", Новый Граница(КонецДня(ОбщиеПараметрыЗапросов.ТекущаяДата), ВидГраницы.Включая));
Запрос.УстановитьПараметр("ХозяйственныеОперации", ХозяйственныеОперацииПередач);
Запрос.Текст = СтрЗаменить(Запрос.Текст, "&ДоступностьРаспоряжений1,", ?(ДоступностьРаспоряжений, "КОЛИЧЕСТВО(РАЗЛИЧНЫЕ ДанныеПоДокументам.РаспоряженияНаОформлениеРеализацийТоваровИУслугВсегоВРаботе) КАК РаспоряженияНаОформлениеРеализацийТоваровИУслугВсегоВРаботе,", ""));
Запрос.Текст = СтрЗаменить(Запрос.Текст, "&ДоступностьРаспоряжений2,", ?(ДоступностьРаспоряжений, "ЗаказыКОформлению.Ссылка КАК РаспоряженияНаОформлениеРеализацийТоваровИУслугВсегоВРаботе,", ""));
Запрос.Текст = СтрЗаменить(Запрос.Текст, "&ДоступностьРаспоряжений3,", ?(ДоступностьРаспоряжений, "NULL,", ""));
Запрос.Текст = СтрЗаменить(Запрос.Текст, "&ДоступностьВПути1,", ?(ДоступностьВПути, "КОЛИЧЕСТВО(РАЗЛИЧНЫЕ ДанныеПоДокументам.РеализацииТоваровИУслугВПути) КАК РеализацииТоваровИУслугВПути,", ""));
Запрос.Текст = СтрЗаменить(Запрос.Текст, "&ДоступностьВПути2,", ?(ДоступностьВПути, "NULL КАК РеализацииТоваровИУслугВПути,", ""));
Запрос.Текст = СтрЗаменить(Запрос.Текст, "&ДоступностьВПути3,", ?(ДоступностьВПути, "РеализацияТоваровУслуг.Ссылка,", ""));
Запрос.Текст = СтрЗаменить(Запрос.Текст, "&ДоступностьВПути4,", ?(ДоступностьВПути, "NULL,", ""));
Результат = ТекущиеДелаСлужебный.ЧисловыеПоказателиТекущихДел(Запрос, ОбщиеПараметрыЗапросов);
ДелоРодитель = ТекущиеДела.Добавить();
ДелоРодитель.Идентификатор = "ДокументыРеализацииТоваровИУслуг";
ДелоРодитель.Представление = НСтр("ru = 'Документы реализации товаров и услуг'");
ДелоРодитель.Владелец = Метаданные.Подсистемы.Продажи;
ЕстьРаспоряжения = Ложь;
Если ДоступностьРаспоряжений Тогда
ПараметрыОтбора = Новый Структура;
ПараметрыОтбора.Вставить("Статус", Перечисления.СтатусыРеализацийТоваровУслуг.Отгружено);
ПараметрыОтбора.Вставить("Склад", Справочники.Склады.ПустаяСсылка());
ПараметрыОтбора.Вставить("ДатаОтгрузки", ОбщиеПараметрыЗапросов.ТекущаяДата);
ПараметрыОтбора.Вставить("Менеджер", ОбщиеПараметрыЗапросов.Пользователь);
ПараметрыФормы = Новый Структура;
ПараметрыФормы.Вставить("СтруктураБыстрогоОтбора", ПараметрыОтбора);
ПараметрыФормы.Вставить("ИмяТекущейСтраницы", "ГруппаКОформлению");
Дело = ТекущиеДела.Добавить();
Дело.Идентификатор = "РаспоряженияНаОформлениеРеализацийТоваровИУслугВсегоВРаботе";
Дело.ЕстьДела = Результат.РаспоряженияНаОформлениеРеализацийТоваровИУслугВсегоВРаботе > 0;
Дело.Представление = НСтр("ru = 'Распоряжения на оформление в работе'");
Дело.Количество = Результат.РаспоряженияНаОформлениеРеализацийТоваровИУслугВсегоВРаботе;
Дело.Важное = Ложь;
Дело.Форма = ИмяФормы;
Дело.ПараметрыФормы = ПараметрыФормы;
Дело.Владелец = "ДокументыРеализацииТоваровИУслуг";
Если Результат.РаспоряженияНаОформлениеРеализацийТоваровИУслугВсегоВРаботе > 0 Тогда
ЕстьРаспоряжения = Истина;
КонецЕсли;
КонецЕсли;
ЕстьДокументыВПути = Ложь;
Если ДоступностьВПути Тогда
ПараметрыОтбора = Новый Структура;
ПараметрыОтбора.Вставить("Статус", Перечисления.СтатусыРеализацийТоваровУслуг.ВПути);
ПараметрыОтбора.Вставить("Менеджер", ОбщиеПараметрыЗапросов.Пользователь);
ПараметрыОтбора.Вставить("ВариантОформленияПродажи", Перечисления.ВариантыОформленияПродажи.ПустаяСсылка());
ПараметрыФормы = Новый Структура;
ПараметрыФормы.Вставить("СтруктураБыстрогоОтбора", ПараметрыОтбора);
Дело = ТекущиеДела.Добавить();
Дело.Идентификатор = "РеализацииТоваровИУслугВПути";
Дело.ЕстьДела = Результат.РеализацииТоваровИУслугВПути > 0;
Дело.Представление = НСтр("ru = 'Реализации в пути'");
Дело.Количество = Результат.РеализацииТоваровИУслугВПути;
Дело.Важное = Ложь;
Дело.Форма = ИмяФормыРеализация;
Дело.ПараметрыФормы = ПараметрыФормы;
Дело.Владелец = "ДокументыРеализацииТоваровИУслуг";
ЕстьДокументыВПути = Дело.ЕстьДела;
КонецЕсли;
ЕстьДокументыКПредоплате = Ложь;
Если ДоступностьСтатусов Тогда
ПараметрыОтбора = Новый Структура;
ПараметрыОтбора.Вставить("Статус", Перечисления.СтатусыРеализацийТоваровУслуг.КПредоплате);
ПараметрыОтбора.Вставить("Менеджер", ОбщиеПараметрыЗапросов.Пользователь);
ПараметрыОтбора.Вставить("ВариантОформленияПродажи", Перечисления.ВариантыОформленияПродажи.ПустаяСсылка());
ПараметрыФормы = Новый Структура;
ПараметрыФормы.Вставить("СтруктураБыстрогоОтбора", ПараметрыОтбора);
Дело = ТекущиеДела.Добавить();
Дело.Идентификатор = "РеализацииТоваровИУслугКПредоплате";
Дело.ЕстьДела = Результат.РеализацииТоваровИУслугКПредоплате > 0;
Дело.Представление = НСтр("ru = 'Реализации к предоплате'");
Дело.Количество = Результат.РеализацииТоваровИУслугКПредоплате;
Дело.Важное = Ложь;
Дело.Форма = ИмяФормыРеализация;
Дело.ПараметрыФормы = ПараметрыФормы;
Дело.Владелец = "ДокументыРеализацииТоваровИУслуг";
ЕстьДокументыКПредоплате = Дело.ЕстьДела;
КонецЕсли;
Если ЕстьРаспоряжения
Или ЕстьДокументыВПути
Или ЕстьДокументыКПредоплате Тогда
ДелоРодитель.ЕстьДела = Истина;
КонецЕсли;
КонецПроцедуры
#КонецОбласти
#Область ОбновлениеИнформационнойБазы
Функция СтатусыДокументаИзменяемыеИзСписка() Экспорт
Таблица = ОбщегоНазначенияУТ.ТаблицаСтатусовИзменяемыхИзСписка();
Если ПолучитьФункциональнуюОпцию("ИспользоватьСтатусыРеализацийТоваровУслуг") Тогда
ОбщегоНазначенияУТ.ДобавитьСтрокуВТаблицуСтатусовИзменяемыхИзСписка(Таблица, Перечисления.СтатусыРеализацийТоваровУслуг.КПредоплате);
Если ПолучитьФункциональнуюОпцию("ИспользоватьОтгрузкуБезПереходаПраваСобственности2_0") Тогда
ОбщегоНазначенияУТ.ДобавитьСтрокуВТаблицуСтатусовИзменяемыхИзСписка(Таблица, Перечисления.СтатусыРеализацийТоваровУслуг.ВПути);
КонецЕсли;
ОбщегоНазначенияУТ.ДобавитьСтрокуВТаблицуСтатусовИзменяемыхИзСписка(Таблица, Перечисления.СтатусыРеализацийТоваровУслуг.Отгружено);
КонецЕсли;
Возврат Таблица;
КонецФункции
Функция ТекстЗапросаТаблицаРеестрДокументов(Запрос, ТекстыЗапроса, Регистры, ДокументОбъект = Неопределено)
ИмяРегистра = "РеестрДокументов";
Если НЕ ПроведениеДокументов.ТребуетсяТаблицаДляДвижений(ИмяРегистра, Регистры) Тогда
Возврат "";
КонецЕсли;
ТекстЗапроса =
"ВЫБРАТЬ
| ДанныеДокумента.Ссылка КАК Ссылка,
| ДанныеДокумента.Дата КАК ДатаДокументаИБ,
| ДанныеДокумента.Номер КАК НомерДокументаИБ,
| &ИдентификаторМетаданных КАК ТипСсылки,
| ДанныеДокумента.Организация КАК Организация,
| ДанныеДокумента.ХозяйственнаяОперация КАК ХозяйственнаяОперация,
| ДанныеДокумента.Партнер КАК Партнер,
| ДанныеДокумента.Контрагент КАК Контрагент,
| ДанныеДокумента.Договор КАК Договор,
| ДанныеДокумента.НаправлениеДеятельности КАК НаправлениеДеятельности,
| ДанныеДокумента.Склад КАК МестоХранения,
| ДанныеДокумента.Подразделение КАК Подразделение,
| ДанныеДокумента.Менеджер КАК Ответственный,
| ДанныеДокумента.Автор КАК Автор,
| ВЫРАЗИТЬ(ДанныеДокумента.Комментарий КАК Строка (100)) КАК Комментарий,
| ДанныеДокумента.Валюта КАК Валюта,
| ДанныеДокумента.СуммаДокумента КАК Сумма,
| ДанныеДокумента.Статус КАК Статус,
| ДанныеДокумента.Проведен КАК Проведен,
| ДанныеДокумента.ПометкаУдаления КАК ПометкаУдаления,
| ЛОЖЬ КАК ДополнительнаяЗапись,
| ВЫБОР
| КОГДА ДанныеДокумента.Договор = ЗНАЧЕНИЕ(Справочник.ДоговорыКонтрагентов.ПустаяСсылка)
| ТОГДА """"
| ИНАЧЕ &ИнформацияПоДоговору
| КОНЕЦ КАК Дополнительно,
| ДанныеДокумента.Дата КАК ДатаОтраженияВУчете,
| ВЫБОР
| КОГДА ДанныеДокумента.ДатаКомиссионера <> ДАТАВРЕМЯ(1,1,1)
| ТОГДА ДанныеДокумента.ДатаКомиссионера
| ИНАЧЕ
| ДанныеДокумента.Дата
| КОНЕЦ КАК ДатаПервичногоДокумента,
| ВЫБОР
| КОГДА ДанныеДокумента.НомерКомиссионера <> """"
| ТОГДА ДанныеДокумента.НомерКомиссионера
| ИНАЧЕ
| &НомерНаПечать
| КОНЕЦ КАК НомерПервичногоДокумента,
| ДанныеДокумента.НаименованиеДокументаКомиссионера КАК НаименованиеПервичногоДокумента,
| НЕОПРЕДЕЛЕНО КАК Приоритет
|ИЗ
| Документ.РеализацияТоваровУслуг КАК ДанныеДокумента
|ГДЕ
| ДанныеДокумента.Ссылка = &Ссылка";
Если НЕ ДокументОбъект = Неопределено Тогда
ТекстЗапроса = СтрЗаменить(ТекстЗапроса, "Документ.РеализацияТоваровУслуг", "ДанныеДокументаШапка");
Иначе
ШаблонИнформацияПоДоговору = "ru = 'По договору %1'";
ТекстЗапроса = СтрЗаменить(ТекстЗапроса, "&ИнформацияПоДоговору", """" + ШаблонИнформацияПоДоговору + """");
ТекстЗапроса = СтрЗаменить(ТекстЗапроса, "%1", """" + " + ВЫРАЗИТЬ("""""""" КАК СТРОКА(1)) +
|ВЫРАЗИТЬ(ДанныеДокумента.Договор.Наименование КАК СТРОКА(150)) + ВЫРАЗИТЬ("""""""" КАК СТРОКА(1)) + "
+ """");
ТекстЗапроса = СтрЗаменить(ТекстЗапроса, "&НомерНаПечать", "ДанныеДокумента.Номер");
КонецЕсли;
ТекстыЗапроса.Добавить(ТекстЗапроса, ИмяРегистра);
Возврат ТекстЗапроса;
КонецФункции
#КонецОбласти
#Область ФормированиеГиперссылкиВЖурналеПродаж
Функция ТекстЗапросаЗаказыКОформлению(Организация = Неопределено, Склад = Неопределено) Экспорт
ПараметрыФормированияТаблицы = РегистрыНакопления.РаспоряженияНаОтгрузкуИВозврат.НовыйПараметрыФормированияРазвернутойТаблицы();
ПараметрыФормированияТаблицы.ПараметрыВиртуальнойТаблицы =
"&Склад В (Склад, ЗНАЧЕНИЕ(Справочник.Склады.ПустаяСсылка)
| И (Распоряжение ССЫЛКА Документ.ЗаказКлиента
| ИЛИ Распоряжение ССЫЛКА Документ.ЗаявкаНаВозвратТоваровОтКлиента)";
ПараметрыФормированияТаблицы.Группировка = "Распоряжение, Склад";
ПараметрыФормированияТаблицы.Показатели = "КОтгрузке";
ПараметрыФормированияТаблицы.Ресурсы = "Количество";
РаспоряженияНаОтгрузкуОборотыРазвернутая =
РегистрыНакопления.РаспоряженияНаОтгрузкуИВозврат.ТекстЗапросаРазвернутаяТаблица(
ПараметрыФормированияТаблицы);
ТекстЗапроса =
"ВЫБРАТЬ РАЗРЕШЕННЫЕ ПЕРВЫЕ 1
| ЗаказыКОформлению.Ссылка КАК Ссылка
|ИЗ
| (ВЫБРАТЬ ПЕРВЫЕ 1
| РаспоряженияНаОтгрузку.Распоряжение КАК Ссылка,
| РаспоряженияНаОтгрузку.Склад
| ИЗ
| #РаспоряженияНаОтгрузкуОборотыРазвернутая КАК РаспоряженияНаОтгрузку
| ГДЕ
| РаспоряженияНаОтгрузку.КОтгрузкеКоличествоОборот > 0
| И &УсловиеОтбораОрганизацияЗаказы
|
| ОБЪЕДИНИТЬ ВСЕ
|
| ВЫБРАТЬ ПЕРВЫЕ 1
| ТоварыКОтгрузке.ДокументОтгрузки,
| ТоварыКОтгрузке.Склад
| ИЗ
| РегистрНакопления.ТоварыКОтгрузке.Остатки(
| ,
| (Склад = &Склад
| ИЛИ &Склад = ЗНАЧЕНИЕ(Справочник.Склады.ПустаяСсылка))
| И Склад.ИспользоватьОрдернуюСхемуПриОтгрузке
| И Склад.ДатаНачалаОрдернойСхемыПриОтгрузке <= &ТекущаяДата
| И (ДокументОтгрузки ССЫЛКА Документ.ЗаказКлиента
| ИЛИ ДокументОтгрузки ССЫЛКА Документ.ЗаявкаНаВозвратТоваровОтКлиента
| ИЛИ ДокументОтгрузки ССЫЛКА Документ.РеализацияТоваровУслуг)) КАК ТоварыКОтгрузке
| ГДЕ
| (ТоварыКОтгрузке.КОтгрузкеОстаток - ТоварыКОтгрузке.СобраноОстаток > 0
| ИЛИ ТоварыКОтгрузке.КОформлениюОстаток > 0)
| И &УсловиеОтбораОрганизацияТоварыКОтгрузке
| ) КАК ЗаказыКОформлению
|ГДЕ
| НЕ ЗаказыКОформлению.Ссылка ЕСТЬ NULL";
ТекстЗапроса = СтрЗаменить(ТекстЗапроса,
"#РаспоряженияНаОтгрузкуОборотыРазвернутая",
РаспоряженияНаОтгрузкуОборотыРазвернутая);
Если ЗначениеЗаполнено(Организация) Тогда
УсловиеОтбора = "
| ВЫБОР
| КОГДА РаспоряженияНаОтгрузку.Распоряжение ССЫЛКА Документ.ЗаказКлиента
| ТОГДА ВЫРАЗИТЬ(РаспоряженияНаОтгрузку.Распоряжение КАК Документ.ЗаказКлиента).Организация
| КОГДА РаспоряженияНаОтгрузку.Распоряжение ССЫЛКА Документ.ЗаявкаНаВозвратТоваровОтКлиента
| ТОГДА ВЫРАЗИТЬ(РаспоряженияНаОтгрузку.Распоряжение КАК Документ.ЗаявкаНаВозвратТоваровОтКлиента).Организация
| КОНЕЦ = &Организация";
ТекстЗапроса = СтрЗаменить(ТекстЗапроса,"&УсловиеОтбораОрганизацияЗаказы", УсловиеОтбора);
УсловиеОтбора = "
| ВЫБОР
| КОГДА ТоварыКОтгрузке.ДокументОтгрузки ССЫЛКА Документ.ЗаказКлиента
| ТОГДА ВЫРАЗИТЬ(ТоварыКОтгрузке.ДокументОтгрузки КАК Документ.ЗаказКлиента).Организация
| КОГДА ТоварыКОтгрузке.ДокументОтгрузки ССЫЛКА Документ.ЗаявкаНаВозвратТоваровОтКлиента
| ТОГДА ВЫРАЗИТЬ(ТоварыКОтгрузке.ДокументОтгрузки КАК Документ.ЗаявкаНаВозвратТоваровОтКлиента).Организация
| КОГДА ТоварыКОтгрузке.ДокументОтгрузки ССЫЛКА Документ.РеализацияТоваровУслуг
| ТОГДА ВЫРАЗИТЬ(ТоварыКОтгрузке.ДокументОтгрузки КАК Документ.РеализацияТоваровУслуг).Организация
| КОНЕЦ = &Организация";
ТекстЗапроса = СтрЗаменить(ТекстЗапроса,"&УсловиеОтбораОрганизацияТоварыКОтгрузке", УсловиеОтбора);
Иначе
ТекстЗапроса = СтрЗаменить(ТекстЗапроса,"И &УсловиеОтбораОрганизацияЗаказы", "");
ТекстЗапроса = СтрЗаменить(ТекстЗапроса,"И &УсловиеОтбораОрганизацияТоварыКОтгрузке", "");
КонецЕсли;
Возврат ТекстЗапроса
КонецФункции
Функция ЕстьЗаказыКОформлению(Организация = Неопределено, Склад = Неопределено) Экспорт
ТекстЗапроса = ТекстЗапросаЗаказыКОформлению(Организация, Склад);
Запрос = Новый Запрос;
Запрос.Текст = ТекстЗапроса;
Запрос.УстановитьПараметр("Организация", Организация);
Запрос.УстановитьПараметр("Склад", Склад);
Запрос.УстановитьПараметр("ТекущаяДата", ТекущаяДатаСеанса());
Возврат Не Запрос.Выполнить().Пустой();
КонецФункции
Функция СформироватьГиперссылкуКОформлению(Параметры) Экспорт
Организация = Параметры.Организация;
Склад = Параметры.Склад;
ПоказыватьЗаказы = ПолучитьФункциональнуюОпцию("ИспользоватьРасширенныеВозможностиЗаказаКлиента")
И ПравоДоступа("Чтение", Метаданные.РегистрыНакопления.РаспоряженияНаОтгрузкуИВозврат)
И ПравоДоступа("Чтение", Метаданные.РегистрыНакопления.ТоварыКОтгрузке);
Гиперссылка = Неопределено;
ТекстГиперссылки = НСтр("ru = 'Накладные'");
Если ПоказыватьЗаказы Тогда
Гиперссылка = Новый ФорматированнаяСтрока(ТекстГиперссылки,,ЦветаСтиля.НезаполненноеПолеТаблицы,,
ИмяФормыСпискаРеализацияТоваровУслуг());
КонецЕсли;
Если ПоказыватьЗаказы И ЕстьЗаказыКОформлению(Организация, Склад) Тогда
Гиперссылка = Новый ФорматированнаяСтрока(ТекстГиперссылки,,,,
ИмяФормыСпискаРеализацияТоваровУслуг());
КонецЕсли;
Возврат Гиперссылка;
КонецФункции
Функция ИмяФормыСпискаРеализацияТоваровУслуг() Экспорт
Возврат "Обработка.ЖурналДокументовПродажи.Форма.КОформлениюНакладных";
КонецФункции
#КонецОбласти
Функция ПолучитьСуммуЗалогаПоТаре(Товары) Экспорт
Запрос = Новый Запрос("
|ВЫБРАТЬ
| ВЫРАЗИТЬ(Товары.Номенклатура КАК Справочник.Номенклатура) КАК Номенклатура,
| Товары.СуммаСНДС КАК СуммаСНДС
|ПОМЕСТИТЬ
| Товары
|ИЗ
| &Товары КАК Товары
|;
|ВЫБРАТЬ
| ЕСТЬNULL(СУММА(Товары.СуммаСНДС),0) КАК Сумма
|ИЗ
| Товары КАК Товары
|ГДЕ
| Товары.Номенклатура.ТипНоменклатуры = ЗНАЧЕНИЕ(Перечисление.ТипыНоменклатуры.МногооборотнаяТара)
|");
Запрос.УстановитьПараметр("Товары", Товары.Выгрузить(,"Номенклатура,СуммаСНДС"));
Выгрузка = Запрос.Выполнить().Выгрузить();
СуммаИтого = Выгрузка[0].Сумма;
Возврат СуммаИтого;
КонецФункции
#КонецОбласти
#КонецЕсли