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