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