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