#Если Сервер Или ТолстыйКлиентОбычноеПриложение Или ВнешнееСоединение Тогда
#Область ПрограммныйИнтерфейс
#Область Проведение
Процедура ЗарегистрироватьУчетныеМеханизмы(МеханизмыДокумента) Экспорт
МеханизмыДокумента.Добавить("Взаиморасчеты");
МеханизмыДокумента.Добавить("Закупки");
МеханизмыДокумента.Добавить("Обеспечение");
МеханизмыДокумента.Добавить("РеестрДокументов");
МеханизмыДокумента.Добавить("АдресныйСклад");
МеханизмыДокумента.Добавить("ЦеныИСкидки");
МеханизмыДокумента.Добавить("СуммыДокументовВВалютахУчета");
КонецПроцедуры
#КонецОбласти
Процедура ЗадатьОписаниеЗаполняемыхРеквизитовПоСтатистике(ОписаниеРеквизитов) Экспорт
Параметры = ЗаполнениеОбъектовПоСтатистике.ПараметрыЗаполняемыхРеквизитов();
Параметры.РазрезыСбораСтатистики.ИспользоватьВсегда = "Автор";
Параметры.РазрезыСбораСтатистики.ИспользоватьТолькоЗаполненные = "Партнер, Соглашение";
Параметры.ЗаполнятьПриУсловии.ПоляОбъектаЗаполнены = "Автор";
ЗаполнениеОбъектовПоСтатистике.ДобавитьОписаниеЗаполняемыхРеквизитов(ОписаниеРеквизитов,
"Организация", Параметры);
Параметры = ЗаполнениеОбъектовПоСтатистике.ПараметрыЗаполняемыхРеквизитов();
Параметры.РазрезыСбораСтатистики.ИспользоватьВсегда = "Автор, ДокументОснование, Менеджер";
Параметры.ЗаполнятьПриУсловии.ПоляОбъектаЗаполнены = "Автор";
ЗаполнениеОбъектовПоСтатистике.ДобавитьОписаниеЗаполняемыхРеквизитов(ОписаниеРеквизитов,
"Подразделение", Параметры);
Параметры = ЗаполнениеОбъектовПоСтатистике.ПараметрыЗаполняемыхРеквизитов();
Параметры.РазрезыСбораСтатистики.ИспользоватьВсегда = "Автор";
Параметры.РазрезыСбораСтатистики.ИспользоватьТолькоЗаполненные = "Партнер, Соглашение";
Параметры.ЗаполнятьПриУсловии.ПоляОбъектаЗаполнены = "Автор";
ЗаполнениеОбъектовПоСтатистике.ДобавитьОписаниеЗаполняемыхРеквизитов(ОписаниеРеквизитов,
"Склад", Параметры);
Параметры = ЗаполнениеОбъектовПоСтатистике.ПараметрыЗаполняемыхРеквизитов();
Параметры.РазрезыСбораСтатистики.ИспользоватьВсегда = "Организация";
Параметры.РазрезыСбораСтатистики.ИспользоватьТолькоЗаполненные = "Договор, Валюта";
Параметры.ЗаполнятьПриУсловии.ПоляОбъектаЗаполнены = "Организация";
ЗаполнениеОбъектовПоСтатистике.ДобавитьОписаниеЗаполняемыхРеквизитов(ОписаниеРеквизитов,
"БанковскийСчет", Параметры);
Параметры = ЗаполнениеОбъектовПоСтатистике.ПараметрыЗаполняемыхРеквизитов();
Параметры.РазрезыСбораСтатистики.ИспользоватьВсегда = "Автор, Организация";
Параметры.РазрезыСбораСтатистики.ИспользоватьТолькоЗаполненные = "Валюта";
Параметры.ЗаполнятьПриУсловии.ПоляОбъектаЗаполнены = "Автор, Организация";
ЗаполнениеОбъектовПоСтатистике.ДобавитьОписаниеЗаполняемыхРеквизитов(ОписаниеРеквизитов,
"Касса", Параметры);
Параметры = ЗаполнениеОбъектовПоСтатистике.ПараметрыЗаполняемыхРеквизитов();
Параметры.РазрезыСбораСтатистики.ИспользоватьВсегда = "Автор";
Параметры.ЗаполнятьПриУсловии.ПоляОбъектаЗаполнены = "Автор";
ЗаполнениеОбъектовПоСтатистике.ДобавитьОписаниеЗаполняемыхРеквизитов(ОписаниеРеквизитов,
"ХозяйственнаяОперация", Параметры);
КонецПроцедуры
Процедура ПриОпределенииНастроекВерсионированияОбъектов(Настройки) Экспорт
КонецПроцедуры
Функция ТекстЗапросаРеквизитыДоставки() Экспорт
ТекстЗапросаРаспоряжения =
"ВЫБРАТЬ
| ДанныеДокумента.Ссылка КАК Ссылка,
| ДанныеДокумента.Ссылка.Договор КАК Договор,
| ДанныеДокумента.Склад КАК Склад
|ИЗ
| Документ.ЗаказПоставщику.Товары КАК ДанныеДокумента
|ГДЕ
| ДанныеДокумента.Ссылка В (&Ссылки)
| И ДанныеДокумента.Ссылка.Статус В (
| ЗНАЧЕНИЕ(Перечисление.СтатусыЗаказовПоставщикам.Подтвержден),
| ЗНАЧЕНИЕ(Перечисление.СтатусыЗаказовПоставщикам.Закрыт))
| И НЕ ДанныеДокумента.Отменено
| И ДанныеДокумента.Номенклатура.ТипНоменклатуры В (
| ЗНАЧЕНИЕ(Перечисление.ТипыНоменклатуры.Товар),
| ЗНАЧЕНИЕ(Перечисление.ТипыНоменклатуры.МногооборотнаяТара))
| И &ЭтоРаспоряжение
|
|СГРУППИРОВАТЬ ПО
| ДанныеДокумента.Ссылка,
| ДанныеДокумента.Ссылка.Договор,
| ДанныеДокумента.Склад";
ТекстЗапроса =
"ВЫБРАТЬ
| ИсточникДанныхДоставки.Номер КАК Номер,
| ИсточникДанныхДоставки.Проведен КАК Проведен,
| ИсточникДанныхДоставки.Ссылка КАК Ссылка,
| ИсточникДанныхДоставки.Дата КАК Дата,
| ИсточникДанныхДоставки.Партнер КАК ПолучательОтправитель,
| ИсточникДанныхДоставки.ПеревозчикПартнер КАК Перевозчик,
| ИсточникДанныхДоставки.СпособДоставки КАК СпособДоставки,
| ИсточникДанныхДоставки.ЗонаДоставки КАК Зона,
|
| ВЫБОР КОГДА ИсточникДанныхДоставки.СпособДоставки = ЗНАЧЕНИЕ(Перечисление.СпособыДоставки.СиламиПеревозчикаДоПунктаПередачи)
| ТОГДА ИсточникДанныхДоставки.АдресДоставкиПеревозчика
| ИНАЧЕ ИсточникДанныхДоставки.АдресДоставки
| КОНЕЦ КАК Адрес,
|
| ВЫБОР КОГДА ИсточникДанныхДоставки.СпособДоставки = ЗНАЧЕНИЕ(Перечисление.СпособыДоставки.СиламиПеревозчикаДоПунктаПередачи)
| ТОГДА ИсточникДанныхДоставки.АдресДоставкиПеревозчикаЗначенияПолей
| ИНАЧЕ ИсточникДанныхДоставки.АдресДоставкиЗначенияПолей
| КОНЕЦ КАК АдресЗначенияПолей,
|
| ИсточникДанныхДоставки.ВремяДоставкиС КАК ВремяС,
| ИсточникДанныхДоставки.ВремяДоставкиПо КАК ВремяПо,
| ИсточникДанныхДоставки.ДополнительнаяИнформацияПоДоставке
| КАК ДополнительнаяИнформация,
| Распоряжения.Склад КАК Склад,
| ИСТИНА КАК ДоставитьПолностью,
| ИсточникДанныхДоставки.ОсобыеУсловияПеревозки КАК ОсобыеУсловияПеревозки,
| ИсточникДанныхДоставки.ОсобыеУсловияПеревозкиОписание КАК ОсобыеУсловияПеревозкиОписание,
| ЛОЖЬ КАК РазбиватьРасходныеОрдераПоРаспоряжениям
|ИЗ
| &ВтРаспоряжения КАК Распоряжения
| ВНУТРЕННЕЕ СОЕДИНЕНИЕ Документ.ЗаказПоставщику КАК ИсточникДанныхДоставки
| ПО ИсточникДанныхДоставки.Ссылка = Распоряжения.Ссылка
|
| ЛЕВОЕ СОЕДИНЕНИЕ Справочник.ДоговорыКонтрагентов КАК ДоговорКонтрагента
| ПО ДоговорКонтрагента.Ссылка = Распоряжения.Договор
|
|ГДЕ
| ДоговорКонтрагента.Ссылка ЕСТЬ NULL
| ИЛИ НЕ ДоговорКонтрагента.СпособДоставки В (&ИспользуемыеСпособыДоставки)
|
|ОБЪЕДИНИТЬ ВСЕ
|
|ВЫБРАТЬ
| ВЫБОР
| КОГДА ИсточникДанныхДоставки.Ссылка В (&ДоговораРаспоряженияНаПоступление)
| ТОГДА ИсточникДанныхДоставки.Номер
| ИНАЧЕ
| Распоряжения.Ссылка.Номер
| КОНЕЦ КАК Номер,
| ВЫБОР
| КОГДА ИсточникДанныхДоставки.Ссылка В (&ДоговораРаспоряженияНаПоступление)
| ТОГДА ИСТИНА
| ИНАЧЕ
| Распоряжения.Ссылка.Проведен
| КОНЕЦ КАК Проведен,
| ВЫБОР
| КОГДА ИсточникДанныхДоставки.Ссылка В (&ДоговораРаспоряженияНаПоступление)
| ТОГДА ИсточникДанныхДоставки.Ссылка
| ИНАЧЕ
| Распоряжения.Ссылка
| КОНЕЦ КАК Ссылка,
| ВЫБОР
| КОГДА ИсточникДанныхДоставки.Ссылка В (&ДоговораРаспоряженияНаПоступление)
| ТОГДА ИсточникДанныхДоставки.Дата
| ИНАЧЕ
| Распоряжения.Ссылка.Дата
| КОНЕЦ КАК Дата,
| ИсточникДанныхДоставки.Партнер КАК ПолучательОтправитель,
| ИсточникДанныхДоставки.ПеревозчикПартнер КАК Перевозчик,
| ВЫБОР
| КОГДА ИсточникДанныхДоставки.СпособДоставки = ЗНАЧЕНИЕ(Перечисление.СпособыДоставки.СиламиПеревозчика)
| И НЕ &ИспользоватьЗаданияНаПеревозкуДляУчетаДоставкиПеревозчиками
| ТОГДА ЗНАЧЕНИЕ(Перечисление.СпособыДоставки.Самовывоз)
| ИНАЧЕ ИсточникДанныхДоставки.СпособДоставки
| КОНЕЦ КАК СпособДоставки,
| ИсточникДанныхДоставки.ЗонаДоставки КАК Зона,
| ВЫБОР
| КОГДА ИсточникДанныхДоставки.СпособДоставки = ЗНАЧЕНИЕ(Перечисление.СпособыДоставки.СиламиПеревозчикаПоАдресу)
| ТОГДА ИсточникДанныхДоставки.АдресДоставкиПеревозчика
| ИНАЧЕ ИсточникДанныхДоставки.АдресДоставки
| КОНЕЦ КАК Адрес,
| ВЫБОР
| КОГДА ИсточникДанныхДоставки.СпособДоставки = ЗНАЧЕНИЕ(Перечисление.СпособыДоставки.СиламиПеревозчикаПоАдресу)
| ТОГДА ИсточникДанныхДоставки.АдресДоставкиПеревозчикаЗначенияПолей
| ИНАЧЕ ИсточникДанныхДоставки.АдресДоставкиЗначенияПолей
| КОНЕЦ КАК АдресЗначенияПолей,
| ИсточникДанныхДоставки.ВремяДоставкиС КАК ВремяС,
| ИсточникДанныхДоставки.ВремяДоставкиПо КАК ВремяПо,
| ИсточникДанныхДоставки.ДополнительнаяИнформацияПоДоставке КАК ДополнительнаяИнформация,
| Распоряжения.Склад КАК Склад,
| ЛОЖЬ КАК ДоставитьПолностью,
| ЛОЖЬ КАК ОсобыеУсловияПеревозки,
| """" КАК ОсобыеУсловияПеревозкиОписание,
| ЛОЖЬ КАК РазбиватьРасходныеОрдераПоРаспоряжениям
|ИЗ
| &ВтРаспоряжения КАК Распоряжения
| ВНУТРЕННЕЕ СОЕДИНЕНИЕ Справочник.ДоговорыКонтрагентов КАК ИсточникДанныхДоставки
| ПО ИсточникДанныхДоставки.Ссылка = Распоряжения.Договор
|ГДЕ
| ИсточникДанныхДоставки.СпособДоставки В (&ИспользуемыеСпособыДоставки)";
ТекстЗапроса = СтрЗаменить(ТекстЗапроса, "&ВтРаспоряжения", "(" + ТекстЗапросаРаспоряжения + ")");
Возврат ТекстЗапроса;
КонецФункции
Функция ТекстЗапросаТоварыКДоставке() Экспорт
ТекстЗапроса =
"ВЫБРАТЬ
| Т.Ссылка,
| Т.Склад,
| Т.Номенклатура,
| Т.Характеристика,
| ЗНАЧЕНИЕ(Справочник.СерииНоменклатуры.ПустаяСсылка) КАК Серия,
| Т.Назначение,
| СУММА(Т.Количество) КАК Количество
|ИЗ
| Документ.ЗаказПоставщику.Товары КАК Т
|ГДЕ
| Т.Ссылка В(&Ссылки)
|
|СГРУППИРОВАТЬ ПО
| Т.Ссылка,
| Т.Склад,
| Т.Номенклатура,
| Т.Характеристика,
| Т.Назначение";
Возврат ТекстЗапроса;
КонецФункции
#Область СозданиеНаОсновании
Процедура ДобавитьКомандыСозданияНаОсновании(КомандыСозданияНаОсновании, Параметры) Экспорт
Документы.ДоверенностьВыданная.ДобавитьКомандуСоздатьНаОсновании(КомандыСозданияНаОсновании);
Документы.ЗаявкаНаРасходованиеДенежныхСредств.ДобавитьКомандуСоздатьНаОсновании(КомандыСозданияНаОсновании);
Документы.ПриобретениеТоваровУслуг.ДобавитьКомандуСоздатьНаОснованииЗаказа(КомандыСозданияНаОсновании);
Документы.РасходныйКассовыйОрдер.ДобавитьКомандуСоздатьНаОсновании(КомандыСозданияНаОсновании);
КомандаСоздатьНаОсновании = Документы.РегистрацияЦенНоменклатурыПоставщика.ДобавитьКомандуСоздатьНаОсновании(КомандыСозданияНаОсновании);
Если КомандаСоздатьНаОсновании <> Неопределено Тогда
КомандаСоздатьНаОсновании.Представление = НСтр("ru = 'Регистрация цен поставщика'");
КонецЕсли;
Документы.СписаниеБезналичныхДенежныхСредств.ДобавитьКомандуСоздатьНаОсновании(КомандыСозданияНаОсновании);
Документы.УстановкаЦенНоменклатуры.ДобавитьКомандуСоздатьНаОсновании(КомандыСозданияНаОсновании);
БизнесПроцессы.Задание.ДобавитьКомандуСоздатьНаОсновании(КомандыСозданияНаОсновании);
Если ПравоДоступа("Добавление", Метаданные.БизнесПроцессы.СогласованиеЗакупки) Тогда
КомандаСоздатьНаОсновании = КомандыСозданияНаОсновании.Добавить();
КомандаСоздатьНаОсновании.Менеджер = Метаданные.БизнесПроцессы.СогласованиеЗакупки.ПолноеИмя();
КомандаСоздатьНаОсновании.Представление = НСтр("ru = 'Согласование заказа поставщику'");
КомандаСоздатьНаОсновании.РежимЗаписи = "Проводить";
КомандаСоздатьНаОсновании.ФункциональныеОпции = "ИспользоватьСогласованиеЗаказовПоставщикам";
КонецЕсли;
Документы.ПоручениеЭкспедитору.ДобавитьКомандуСоздатьНаОсновании(КомандыСозданияНаОсновании);
Документы.ПриемкаТоваровНаХранение.ДобавитьКомандуСоздатьНаОснованииЗаказа(КомандыСозданияНаОсновании);
Документы.УпаковочныйЛист.ДобавитьКомандуСоздатьНаОсновании(КомандыСозданияНаОсновании);
Документы.ПоступлениеУслугВПодразделение.ДобавитьКомандуСоздатьНаОсновании(КомандыСозданияНаОсновании);
Справочники.Претензии.ДобавитьКомандуСоздатьНаОсновании(КомандыСозданияНаОсновании);
ТорговыеПредложенияПереопределяемый.ДобавитьКомандуПоискаТорговыхПредложений(КомандыСозданияНаОсновании);
СервисДоставкиПереопределяемый.ДобавитьКомандуСоздатьНаОсновании(КомандыСозданияНаОсновании, Параметры);
КонецПроцедуры
Функция ДобавитьКомандуСоздатьНаОсновании(КомандыСозданияНаОсновании) Экспорт
Если ПравоДоступа("Добавление", Метаданные.Документы.ЗаказПоставщику) Тогда
КомандаСоздатьНаОсновании = КомандыСозданияНаОсновании.Добавить();
КомандаСоздатьНаОсновании.Менеджер = Метаданные.Документы.ЗаказПоставщику.ПолноеИмя();
КомандаСоздатьНаОсновании.Представление = ОбщегоНазначенияУТ.ПредставлениеОбъекта(Метаданные.Документы.ЗаказПоставщику);
КомандаСоздатьНаОсновании.РежимЗаписи = "Проводить";
КомандаСоздатьНаОсновании.ФункциональныеОпции = "ИспользоватьЗаказыПоставщикам";
Возврат КомандаСоздатьНаОсновании;
КонецЕсли;
Возврат Неопределено;
КонецФункции
Функция ДобавитьКомандуСоздатьНаОснованииЗаказыПоставщикам(КомандыСозданияНаОсновании) Экспорт
Если ПравоДоступа("Добавление", Метаданные.Документы.ЗаказПоставщику) Тогда
КомандаСоздатьНаОсновании = КомандыСозданияНаОсновании.Добавить();
КомандаСоздатьНаОсновании.Обработчик = "СозданиеНаОснованииУТКлиент.СозданиеЗаказовПоставщикамНаОсновании";
КомандаСоздатьНаОсновании.Идентификатор = "СозданиеЗаказовПоставщикамНаОсновании";
КомандаСоздатьНаОсновании.Представление = НСтр("ru = 'Заказы поставщикам'");
КомандаСоздатьНаОсновании.РежимЗаписи = "Проводить";
КомандаСоздатьНаОсновании.ФункциональныеОпции = "ИспользоватьЗаказыПоставщикам";
Возврат КомандаСоздатьНаОсновании;
КонецЕсли;
Возврат Неопределено;
КонецФункции
Функция ДобавитьКомандуСоздатьОбеспечивающийЗаказ(КомандыСозданияНаОсновании) Экспорт
Если ПравоДоступа("Добавление", Метаданные.Документы.ЗаказПоставщику) Тогда
КомандаСоздатьНаОсновании = КомандыСозданияНаОсновании.Добавить();
КомандаСоздатьНаОсновании.Менеджер = Метаданные.Документы.ЗаказПоставщику.ПолноеИмя();
КомандаСоздатьНаОсновании.Обработчик = "СозданиеНаОснованииУТКлиент.СоздатьОбеспечивающийЗаказ";
КомандаСоздатьНаОсновании.Представление = ОбщегоНазначенияУТ.ПредставлениеОбъекта(
Метаданные.Документы.ЗаказПоставщику);
КомандаСоздатьНаОсновании.РежимЗаписи = "Проводить";
КомандаСоздатьНаОсновании.ФункциональныеОпции = "ИспользоватьЗаказыПоставщикам";
ПараметрыСоздания = ОбеспечениеВДокументахСервер.ПараметрыСозданияОбеспечивающегоЗаказа(
КомандаСоздатьНаОсновании.ДополнительныеПараметры);
ПараметрыСоздания.ИмяМенеджераДокумента = "ЗаказПоставщику";
ПараметрыСоздания.ИмяФормы = "Документ.ЗаказПоставщику.ФормаОбъекта";
Возврат КомандаСоздатьНаОсновании;
КонецЕсли;
Возврат Неопределено;
КонецФункции
Функция ПараметрыСозданияНаОснованииОбеспечивающегоЗаказа() Экспорт
ПараметрыТаблицыТовары = ОбеспечениеВДокументахСервер.ПараметрыОтбораТоваровДляСозданияОбеспечивающиегоЗаказа();
ПараметрыТаблицыТовары.ТипыНоменклатуры.Добавить(Перечисления.ТипыНоменклатуры.Товар);
ПараметрыТаблицыТовары.ТипыНоменклатуры.Добавить(Перечисления.ТипыНоменклатуры.МногооборотнаяТара);
ПараметрыТаблицыТовары.ТипыНоменклатуры.Добавить(Перечисления.ТипыНоменклатуры.Работа);
ПараметрыТаблицыТовары.ТипыНоменклатуры.Добавить(Перечисления.ТипыНоменклатуры.Услуга);
ПараметрыТаблицыТовары.ОдинСклад = Истина;
Возврат ПараметрыТаблицыТовары;
КонецФункции
#КонецОбласти
Процедура ДобавитьКомандыОтчетов(КомандыОтчетов, Параметры) Экспорт
КомандаОтчет = Отчеты.АнализПричинОтменыЗаказовПоставщикамПоДокументу.ДобавитьКомандуОтчета(КомандыОтчетов);
Если КомандаОтчет <> Неопределено Тогда
КомандаОтчет.ВидимостьВФормах = "ФормаДокумента,СписокДокументов";
КонецЕсли;
КомандаОтчет = Отчеты.АнализЦенПоставщиков.ДобавитьКомандуОтчета(КомандыОтчетов);
Если КомандаОтчет <> Неопределено Тогда
КомандаОтчет.ВидимостьВФормах = "ФормаДокумента,СписокДокументов";
КонецЕсли;
КомандаОтчет = ВзаиморасчетыСервер.КарточкаРасчетовСПоставщиком_ДобавитьКомандуОтчетаПоДокументам(КомандыОтчетов);
Если КомандаОтчет <> Неопределено Тогда
КомандаОтчет.ВидимостьВФормах = "ФормаДокумента,СписокДокументов";
КонецЕсли;
КомандаОтчет = Отчеты.ОтклоненияОтУсловийЗакупок.ДобавитьКомандуОтчета(КомандыОтчетов);
Если КомандаОтчет <> Неопределено Тогда
КомандаОтчет.ВидимостьВФормах = "ФормаДокумента,СписокДокументов";
КонецЕсли;
Отчеты.РезультатыСогласованияЗакупки.ДобавитьКомандуОтчетаПоДокументу(КомандыОтчетов);
КомандаОтчет = Отчеты.СостояниеВыполненияДокументов.ДобавитьКомандуСостояниеВыполненияДокументЗакупки(КомандыОтчетов);
Если КомандаОтчет <> Неопределено Тогда
КомандаОтчет.Порядок = 1;
КомандаОтчет.ВидимостьВФормах = "ФормаДокумента,СписокДокументов";
КонецЕсли;
КомандаОтчет = ВзаиморасчетыСервер.ЗадолженностьПоставщикам_ДобавитьКомандуОтчетаПоДокументам(КомандыОтчетов);
Если КомандаОтчет <> Неопределено Тогда
КомандаОтчет.ВидимостьВФормах = "ФормаДокумента,СписокДокументов";
КонецЕсли;
КомандаОтчет = Отчеты.СостояниеВыполненияДокументов.ДобавитьКомандуСостояниеВыполненияДокументЗакупки(КомандыОтчетов);
Если КомандаОтчет <> Неопределено Тогда
КомандаОтчет.ВидимостьВФормах = "ФормаСпискаДокументов";
КомандаОтчет.Порядок = 1;
КонецЕсли;
КомандаОтчет = ВзаиморасчетыСервер.ЗадолженностьПоставщикам_ДобавитьКомандуОтчетаПоДокументам(КомандыОтчетов);
Если КомандаОтчет <> Неопределено Тогда
КомандаОтчет.ВидимостьВФормах = "ФормаСпискаДокументов";
КомандаОтчет.Важность = "Обычное";
КомандаОтчет.Порядок = 1;
КонецЕсли;
КомандаОтчет = ВзаиморасчетыСервер.КарточкаРасчетовСПоставщиком_ДобавитьКомандуОтчетаПоДокументам(КомандыОтчетов);
Если КомандаОтчет <> Неопределено Тогда
КомандаОтчет.ВидимостьВФормах = "ФормаСпискаДокументов";
КомандаОтчет.Важность = "Обычное";
КомандаОтчет.Порядок = 2;
КонецЕсли;
КомандаОтчет = Отчеты.ОтклоненияОтУсловийЗакупок.ДобавитьКомандуОтчета(КомандыОтчетов);
Если КомандаОтчет <> Неопределено Тогда
КомандаОтчет.ВидимостьВФормах = "ФормаСпискаДокументов";
КомандаОтчет.Важность = "СмТакже";
КомандаОтчет.Порядок = 1;
КонецЕсли;
КомандаОтчет = Отчеты.АнализПричинОтменыЗаказовПоставщикамПоДокументу.ДобавитьКомандуОтчета(КомандыОтчетов);
Если КомандаОтчет <> Неопределено Тогда
КомандаОтчет.ВидимостьВФормах = "ФормаСпискаДокументов";
КомандаОтчет.Важность = "СмТакже";
КомандаОтчет.Порядок = 2;
КонецЕсли;
КомандаОтчет = Отчеты.АнализЦенПоставщиков.ДобавитьКомандуОтчета(КомандыОтчетов);
Если КомандаОтчет <> Неопределено Тогда
КомандаОтчет.ВидимостьВФормах = "ФормаСпискаДокументов";
КомандаОтчет.Важность = "СмТакже";
КомандаОтчет.Порядок = 3;
КонецЕсли;
КонецПроцедуры
Процедура ДобавитьКомандыЗаполнения(КомандыЗаполнения, Параметры) Экспорт
КонецПроцедуры
Процедура ЗаполнитьИменаРеквизитовПоХозяйственнойОперации(ХозяйственнаяОперация, МассивВсехРеквизитов, МассивРеквизитовОперации) Экспорт
МассивВсехРеквизитов = Новый Массив;
МассивВсехРеквизитов.Добавить("ЗакупкаПодДеятельность");
МассивВсехРеквизитов.Добавить("НалогообложениеНДС");
МассивВсехРеквизитов.Добавить("ВернутьМногооборотнуюТару");
МассивВсехРеквизитов.Добавить("СрокВозвратаМногооборотнойТары");
МассивВсехРеквизитов.Добавить("ТребуетсяЗалогЗаТару");
МассивВсехРеквизитов.Добавить("Товары.СписатьНаРасходы");
МассивВсехРеквизитов.Добавить("Товары.СтатьяРасходов");
МассивВсехРеквизитов.Добавить("Товары.АналитикаРасходов");
МассивВсехРеквизитов.Добавить("Товары.ПроцентРучнойСкидки");
МассивВсехРеквизитов.Добавить("Товары.СуммаРучнойСкидки");
МассивВсехРеквизитов.Добавить("Товары.Цена");
МассивВсехРеквизитов.Добавить("Товары.Сумма");
МассивВсехРеквизитов.Добавить("Товары.СуммаСНДС");
МассивВсехРеквизитов.Добавить("Товары.ВидЦеныПоставщика");
ХозОперацииЗакупкаУПоставщика = ЗакупкиСервер.ХозяйственныеОперацииПоОсновной(
Перечисления.ХозяйственныеОперации.ЗакупкаУПоставщика);
ХозОперацииЗакупкаВСтранахЕАЭС = ЗакупкиСервер.ХозяйственныеОперацииПоОсновной(
Перечисления.ХозяйственныеОперации.ЗакупкаВСтранахЕАЭС);
ХозОперацииЗакупкаПоИмпорту = ЗакупкиСервер.ХозяйственныеОперацииПоОсновной(
Перечисления.ХозяйственныеОперации.ЗакупкаПоИмпорту);
МассивРеквизитовОперации = Новый Массив;
Если ХозОперацииЗакупкаУПоставщика.Найти(ХозяйственнаяОперация) <> Неопределено
Или Не ЗначениеЗаполнено(ХозяйственнаяОперация) Тогда
МассивРеквизитовОперации.Добавить("ЗакупкаПодДеятельность");
МассивРеквизитовОперации.Добавить("НалогообложениеНДС");
МассивРеквизитовОперации.Добавить("ВернутьМногооборотнуюТару");
МассивРеквизитовОперации.Добавить("СрокВозвратаМногооборотнойТары");
МассивРеквизитовОперации.Добавить("ТребуетсяЗалогЗаТару");
МассивРеквизитовОперации.Добавить("Товары.СтатьяРасходов");
МассивРеквизитовОперации.Добавить("Товары.АналитикаРасходов");
МассивРеквизитовОперации.Добавить("Товары.СписатьНаРасходы");
МассивРеквизитовОперации.Добавить("Товары.ПроцентРучнойСкидки");
МассивРеквизитовОперации.Добавить("Товары.СуммаРучнойСкидки");
МассивРеквизитовОперации.Добавить("Товары.Цена");
МассивРеквизитовОперации.Добавить("Товары.Сумма");
МассивРеквизитовОперации.Добавить("Товары.СуммаСНДС");
МассивРеквизитовОперации.Добавить("Товары.ВидЦеныПоставщика");
ИначеЕсли ХозяйственнаяОперация = Перечисления.ХозяйственныеОперации.ПриемНаКомиссию Тогда
МассивРеквизитовОперации.Добавить("НалогообложениеНДС");
МассивРеквизитовОперации.Добавить("Товары.Цена");
МассивРеквизитовОперации.Добавить("Товары.Сумма");
МассивРеквизитовОперации.Добавить("Товары.СуммаСНДС");
МассивРеквизитовОперации.Добавить("Товары.ВидЦеныПоставщика");
ИначеЕсли ХозяйственнаяОперация = Перечисления.ХозяйственныеОперации.ПриемНаХранениеСПравомПродажи Тогда
МассивРеквизитовОперации.Добавить("НалогообложениеНДС");
МассивРеквизитовОперации.Добавить("Товары.Цена");
МассивРеквизитовОперации.Добавить("Товары.Сумма");
МассивРеквизитовОперации.Добавить("Товары.СуммаСНДС");
МассивРеквизитовОперации.Добавить("Товары.ВидЦеныПоставщика");
ИначеЕсли ХозОперацииЗакупкаПоИмпорту.Найти(ХозяйственнаяОперация) <> Неопределено Тогда
МассивРеквизитовОперации.Добавить("ЗакупкаПодДеятельность");
МассивРеквизитовОперации.Добавить("Товары.СписатьНаРасходы");
МассивРеквизитовОперации.Добавить("Товары.СтатьяРасходов");
МассивРеквизитовОперации.Добавить("Товары.АналитикаРасходов");
МассивРеквизитовОперации.Добавить("Товары.ПроцентРучнойСкидки");
МассивРеквизитовОперации.Добавить("Товары.СуммаРучнойСкидки");
МассивРеквизитовОперации.Добавить("Товары.Цена");
МассивРеквизитовОперации.Добавить("Товары.Сумма");
МассивРеквизитовОперации.Добавить("Товары.СуммаСНДС");
МассивРеквизитовОперации.Добавить("Товары.ВидЦеныПоставщика");
ИначеЕсли ХозОперацииЗакупкаВСтранахЕАЭС.Найти(ХозяйственнаяОперация) <> Неопределено Тогда
МассивРеквизитовОперации.Добавить("ЗакупкаПодДеятельность");
МассивРеквизитовОперации.Добавить("ВернутьМногооборотнуюТару");
МассивРеквизитовОперации.Добавить("СрокВозвратаМногооборотнойТары");
МассивРеквизитовОперации.Добавить("ТребуетсяЗалогЗаТару");
МассивРеквизитовОперации.Добавить("Товары.СписатьНаРасходы");
МассивРеквизитовОперации.Добавить("Товары.СтатьяРасходов");
МассивРеквизитовОперации.Добавить("Товары.АналитикаРасходов");
МассивРеквизитовОперации.Добавить("Товары.ПроцентРучнойСкидки");
МассивРеквизитовОперации.Добавить("Товары.СуммаРучнойСкидки");
МассивРеквизитовОперации.Добавить("Товары.Цена");
МассивРеквизитовОперации.Добавить("Товары.Сумма");
МассивРеквизитовОперации.Добавить("Товары.СуммаСНДС");
МассивРеквизитовОперации.Добавить("Товары.ВидЦеныПоставщика");
КонецЕсли;
КонецПроцедуры
Функция РеквизитыДокумента(ДокументСсылка) Экспорт
Запрос = Новый Запрос("
|ВЫБРАТЬ
| СУММА(ТаблицаТовары.СуммаВзаиморасчетов) КАК СуммаВзаиморасчетов
|ПОМЕСТИТЬ ТаблицаСуммСверхЗаказа
|ИЗ
| Документ.ПриобретениеТоваровУслуг.Товары КАК ТаблицаТовары
|ГДЕ
| ТаблицаТовары.Ссылка.Проведен
| И ТаблицаТовары.ЗаказПоставщику = &ДокументСсылка
| И ТаблицаТовары.КодСтроки = 0
|;
|
|
|ВЫБРАТЬ
| ДанныеДокумента.Дата КАК Дата,
| ДанныеДокумента.Организация КАК Организация,
| ДанныеДокумента.Партнер КАК Партнер,
| ДанныеДокумента.Контрагент КАК Контрагент,
| ДанныеДокумента.Валюта КАК ВалютаВзаиморасчетов,
| ДанныеДокумента.ХозяйственнаяОперация КАК ХозяйственнаяОперация,
| ДанныеДокумента.СуммаДокумента КАК СуммаДокумента,
| ДанныеДокумента.Договор КАК Договор,
| ДанныеДокумента.ПорядокРасчетов КАК ПорядокРасчетов,
| ДанныеДокумента.НаправлениеДеятельности КАК НаправлениеДеятельности,
| ДанныеДокумента.СуммаДокумента
| + ЕСТЬNULL(ТаблицаСуммСверхЗаказа.СуммаВзаиморасчетов, 0)
| КАК СуммаВзаиморасчетов,
| ДанныеДокумента.Проведен КАК Проведен
|ИЗ
| Документ.ЗаказПоставщику КАК ДанныеДокумента
| ЛЕВОЕ СОЕДИНЕНИЕ ТаблицаСуммСверхЗаказа КАК ТаблицаСуммСверхЗаказа
| ПО (ИСТИНА)
|ГДЕ
| ДанныеДокумента.Ссылка = &ДокументСсылка");
Запрос.УстановитьПараметр("ДокументСсылка", ДокументСсылка);
Выборка = Запрос.Выполнить().Выбрать();
Если Выборка.Следующий() Тогда
Дата = Выборка.Дата;
Организация = Выборка.Организация;
Партнер = Выборка.Партнер;
Контрагент = Выборка.Контрагент;
Договор = Выборка.Договор;
НаправлениеДеятельности = Выборка.НаправлениеДеятельности;
ПорядокРасчетов = Выборка.ПорядокРасчетов;
ВалютаВзаиморасчетов = Выборка.ВалютаВзаиморасчетов;
ХозяйственнаяОперация = ?(ЗначениеЗаполнено(Выборка.ХозяйственнаяОперация), Выборка.ХозяйственнаяОперация, Перечисления.ХозяйственныеОперации.ЗакупкаУПоставщика);
СуммаДокумента = Выборка.СуммаДокумента;
СуммаВзаиморасчетов = ?(Выборка.Проведен, Выборка.СуммаВзаиморасчетов, 0);
Иначе
Дата = Дата(1,1,1);
Организация = Справочники.Организации.ПустаяСсылка();
Партнер = Справочники.Партнеры.ПустаяСсылка();
Контрагент = Справочники.Контрагенты.ПустаяСсылка();
Договор = Справочники.ДоговорыКонтрагентов.ПустаяСсылка();
НаправлениеДеятельности = Справочники.НаправленияДеятельности.ПустаяСсылка();
ПорядокРасчетов = Перечисления.ПорядокРасчетов.ПустаяСсылка();
ВалютаВзаиморасчетов = Справочники.Валюты.ПустаяСсылка();
ХозяйственнаяОперация = Перечисления.ХозяйственныеОперации.ЗакупкаУПоставщика;
СуммаДокумента = 0;
СуммаВзаиморасчетов = 0;
КонецЕсли;
СтруктураРеквизитов = Новый Структура();
СтруктураРеквизитов.Вставить("Дата", Дата);
СтруктураРеквизитов.Вставить("Организация", Организация);
СтруктураРеквизитов.Вставить("Партнер", Партнер);
СтруктураРеквизитов.Вставить("Контрагент", Контрагент);
СтруктураРеквизитов.Вставить("Договор", Договор);
СтруктураРеквизитов.Вставить("НаправлениеДеятельности", НаправлениеДеятельности);
СтруктураРеквизитов.Вставить("ПорядокРасчетов", ПорядокРасчетов);
СтруктураРеквизитов.Вставить("ВалютаВзаиморасчетов", ВалютаВзаиморасчетов);
СтруктураРеквизитов.Вставить("ХозяйственнаяОперация", ХозяйственнаяОперация);
СтруктураРеквизитов.Вставить("СуммаДокумента", СуммаДокумента);
СтруктураРеквизитов.Вставить("СуммаВзаиморасчетов", СуммаВзаиморасчетов);
Возврат СтруктураРеквизитов;
КонецФункции
Функция СформироватьЗапросПроверкиПриСменеСтатуса(МассивДокументов, НовыйСтатус, ДополнительныеПараметры) Экспорт
ЗначениеНовогоСтатуса = Перечисления.СтатусыЗаказовПоставщикам[НовыйСтатус];
Если ДополнительныеПараметры <> Неопределено И ДополнительныеПараметры.Свойство("КонтрольВыполненияЗаказа") Тогда
ТекстЗапроса = ЗакупкиСервер.ТекстЗапросаКонтрольЗаказаПослеПроведения();
ТекстЗапроса = ТекстЗапроса +
"ВЫБРАТЬ
| ТаблицаДокументов.Ссылка КАК Ссылка,
| ПРЕДСТАВЛЕНИЕ(ТаблицаДокументов.Ссылка) КАК Представление,
| ПРЕДСТАВЛЕНИЕ(ТаблицаДокументов.Статус) КАК ПредставлениеТекущегоСтатуса,
| ПРЕДСТАВЛЕНИЕ(&Статус) КАК ПредставлениеНовогоСтатуса,
| ВЫБОР
| КОГДА ТаблицаДокументов.Статус = &Статус
| ТОГДА ИСТИНА
| ИНАЧЕ ЛОЖЬ
| КОНЕЦ КАК СтатусСовпадает,
| ТаблицаДокументов.Проведен КАК Проведен,
| ТаблицаДокументов.ПометкаУдаления КАК ПометкаУдаления,
| ИСТИНА КАК ЗаписьПроведением,
| ЕСТЬNULL(СостоянияДокументовEDI.ТекущийСтатус, ЗНАЧЕНИЕ(Перечисление.СтатусыЗаказаEDI.ПустаяСсылка)) КАК СтатусEDI,
| ВЫБОР КОГДА втОстаткиПоЗаказам.ЗаказПоставщику ЕСТЬ NULL
| ТОГДА ЛОЖЬ
| ИНАЧЕ ИСТИНА
| КОНЕЦ КАК ЕстьОстаткиПоЗаказу
|ИЗ
| Документ.ЗаказПоставщику КАК ТаблицаДокументов
|ЛЕВОЕ СОЕДИНЕНИЕ
| втОстаткиПоЗаказам
|ПО
| ТаблицаДокументов.Ссылка = втОстаткиПоЗаказам.ЗаказПоставщику
|ЛЕВОЕ СОЕДИНЕНИЕ
| РегистрСведений.СостоянияДокументовEDI КАК СостоянияДокументовEDI
|ПО
| ТаблицаДокументов.Ссылка = СостоянияДокументовEDI.ПрикладнойОбъект
|ГДЕ
| ТаблицаДокументов.Ссылка В (&МассивДокументов)
|";
Иначе
ТекстЗапроса =
"ВЫБРАТЬ
| ТаблицаДокументов.Ссылка КАК Ссылка,
| ПРЕДСТАВЛЕНИЕ(ТаблицаДокументов.Ссылка) КАК Представление,
| ПРЕДСТАВЛЕНИЕ(ТаблицаДокументов.Статус) КАК ПредставлениеТекущегоСтатуса,
| ПРЕДСТАВЛЕНИЕ(&Статус) КАК ПредставлениеНовогоСтатуса,
| ВЫБОР
| КОГДА ТаблицаДокументов.Статус = &Статус
| ТОГДА ИСТИНА
| ИНАЧЕ ЛОЖЬ
| КОНЕЦ КАК СтатусСовпадает,
| ТаблицаДокументов.Проведен КАК Проведен,
| ТаблицаДокументов.ПометкаУдаления КАК ПометкаУдаления,
| ЕСТЬNULL(СостоянияДокументовEDI.ТекущийСтатус, ЗНАЧЕНИЕ(Перечисление.СтатусыЗаказаEDI.ПустаяСсылка)) КАК СтатусEDI,
| ИСТИНА КАК ЗаписьПроведением
|ИЗ
| Документ.ЗаказПоставщику КАК ТаблицаДокументов
| ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.СостоянияДокументовEDI КАК СостоянияДокументовEDI
| ПО ТаблицаДокументов.Ссылка = СостоянияДокументовEDI.ПрикладнойОбъект
|ГДЕ
| ТаблицаДокументов.Ссылка В(&МассивДокументов)
|";
КонецЕсли;
КонтролироватьПоступление = ПолучитьФункциональнуюОпцию("НеЗакрыватьЗаказыПоставщикамБезПолногоПоступления");
КонтролироватьРасчеты = ПолучитьФункциональнуюОпцию("НеЗакрыватьЗаказыПоставщикамБезПолнойОплаты");
ИспользоватьСтатусы = ПолучитьФункциональнуюОпцию("ИспользоватьСтатусыЗаказовПоставщикам");
Запрос = Новый Запрос(ТекстЗапроса);
Запрос.УстановитьПараметр("Статус", ЗначениеНовогоСтатуса);
Запрос.УстановитьПараметр("МассивДокументов", МассивДокументов);
Запрос.УстановитьПараметр("КонтролироватьПоступление", КонтролироватьПоступление);
Запрос.УстановитьПараметр("КонтролироватьРасчеты", КонтролироватьРасчеты);
Запрос.УстановитьПараметр("ИспользоватьСтатусы", ИспользоватьСтатусы);
Возврат Запрос;
КонецФункции
Функция ПроверкаПередСменойСтатуса(ВыборкаПроверки, НовыйСтатус, ДополнительныеПараметры) Экспорт
Отказ = Ложь;
Если ДополнительныеПараметры = Неопределено Тогда
Возврат Не Отказ;
КонецЕсли;
Если ДополнительныеПараметры.Свойство("КонтрольВыполненияЗаказа")
И ВыборкаПроверки.ЕстьОстаткиПоЗаказу Тогда
ТекстОшибки = НСтр("ru='У документа %Документ% статус ""%Статус%"" не установлен, т.к. заказ поставлен не полностью'");
ТекстОшибки = СтрЗаменить(ТекстОшибки, "%Документ%", ВыборкаПроверки.Ссылка);
ТекстОшибки = СтрЗаменить(ТекстОшибки, "%Статус%", ВыборкаПроверки.ПредставлениеНовогоСтатуса);
ОбщегоНазначенияКлиентСервер.СообщитьПользователю(ТекстОшибки, ВыборкаПроверки.Ссылка);
Отказ = Истина;
КонецЕсли;
СервисEDIУТ.ПроверитьКорректностьСтатусовСтатусамEDI(ВыборкаПроверки, НовыйСтатус, Отказ);
Возврат Не Отказ;
КонецФункции
Функция ПравоДоступаДобавление() Экспорт
Возврат ПравоДоступа("Добавление", Метаданные.Документы.ЗаказПоставщику);
КонецФункции
#Область РасчетСостояний
Процедура РассчитатьСостояние(
Знач ЗаказПоставщику,
Знач Договор,
СостояниеРасчетов,
ПроверитьЗаданияКОтражениюСостоянияЗаказов = Ложь) Экспорт
ЗаполнитьЗначенияСвойств(СостояниеРасчетов, ВзаиморасчетыКлиентСервер.СтруктураСостоянияРасчетов(Ложь));
Если НЕ ЗначениеЗаполнено(ЗаказПоставщику) Тогда
Возврат;
КонецЕсли;
ТекстЗапроса =
"ВЫБРАТЬ
| ВТ.Ссылка КАК Ссылка,
| ВТ.Проведен КАК Проведен,
| ВТ.Статус КАК Статус,
| ВТ.СуммаДокумента КАК СуммаДокумента,
| ВТ.ПорядокРасчетов КАК ПорядокРасчетов,
| ВТ.ОбъектРасчетов КАК ОбъектРасчетов
|ПОМЕСТИТЬ ВТ_ДокументЗаказ
|ИЗ
| Документ.ЗаказПоставщику КАК ВТ
|ГДЕ
| ВТ.Ссылка = &ЗаказПоставщику
|;
|
|ВЫБРАТЬ
| ВЫБОР
| КОГДА (НЕ ДокументЗаказ.Проведен)
| ТОГДА ЗНАЧЕНИЕ(Перечисление.СостоянияЗаказовПоставщикам.ПустаяСсылка)
| ИНАЧЕ
| ЕСТЬNULL(СостоянияЗаказовПоставщикам.Состояние, ЗНАЧЕНИЕ(Перечисление.СостоянияЗаказовПоставщикам.Закрыт))
| КОНЕЦ КАК Состояние,
| ВЫБОР
| КОГДА (НЕ ДокументЗаказ.Проведен)
| ТОГДА ЛОЖЬ
| КОГДА (ДокументЗаказ.Статус = ЗНАЧЕНИЕ(Перечисление.СтатусыЗаказовПоставщикам.Закрыт) И &ИспользоватьСтатусы)
| ТОГДА ЛОЖЬ
| КОГДА СостоянияЗаказовПоставщикам.ДатаСобытия <> ДАТАВРЕМЯ(1, 1, 1)
| И &ТекущаяДата > СостоянияЗаказовПоставщикам.ДатаСобытия
| ТОГДА ИСТИНА
| ИНАЧЕ ЛОЖЬ
| КОНЕЦ КАК СостояниеПросрочено,
| ЕСТЬNULL(СостоянияЗаказовПоставщикам.СуммаОплаты,0) КАК СуммаОплаты,
| ЕСТЬNULL(СостоянияЗаказовПоставщикам.ПроцентОплаты,0) КАК ПроцентОплаты,
| ЕСТЬNULL(СостоянияЗаказовПоставщикам.СуммаПоступления,0) КАК СуммаПоступления,
| ЕСТЬNULL(СостоянияЗаказовПоставщикам.ПроцентПоступления,0) КАК ПроцентПоступления,
| ЕСТЬNULL(СостоянияЗаказовПоставщикам.ЕстьРасхожденияОрдерНакладная, ЛОЖЬ) КАК ЕстьРасхожденияОрдерНакладная,
| ЕСТЬNULL(СостоянияЗаказовПоставщикам.ПроцентДолга,0) КАК ПроцентДолга
| ,&ПолеЕстьЗаданияКОтражениюСостоянияЗаказов
|ИЗ
| ВТ_ДокументЗаказ КАК ДокументЗаказ
|ЛЕВОЕ СОЕДИНЕНИЕ
| РегистрСведений.СостоянияЗаказовПоставщикам КАК СостоянияЗаказовПоставщикам
|ПО
| СостоянияЗаказовПоставщикам.Заказ = ДокументЗаказ.Ссылка
|ГДЕ
| &ПроверитьЗаданияКОтражениюСостоянияЗаказов
|";
ТекстЗапросаЕстьЗадания = "ВЫБРАТЬ ЛОЖЬ КАК ЕстьЗаданияКОтражениюСостоянияЗаказов";
Если ПроверитьЗаданияКОтражениюСостоянияЗаказов Тогда
ТекстЗапроса = СтрЗаменить(ТекстЗапроса,
",&ПолеЕстьЗаданияКОтражениюСостоянияЗаказов",
", ЛОЖЬ КАК ЕстьЗаданияКОтражениюСостоянияЗаказов");
ТекстЗапросаЕстьЗадания = СостоянияДокументов.ТекстЗапросаЕстьЗаданияКОтражениюСостоянияЗаказов("&ЗаказПоставщику");
ТекстЗапроса = СтрЗаменить(ТекстЗапроса,
"&ПроверитьЗаданияКОтражениюСостоянияЗаказов",
СтрШаблон("НЕ ИСТИНА В
| (%1)", ТекстЗапросаЕстьЗадания));
Иначе
ТекстЗапроса = СтрЗаменить(ТекстЗапроса, ",&ПолеЕстьЗаданияКОтражениюСостоянияЗаказов", "");
ТекстЗапроса = СтрЗаменить(ТекстЗапроса, "&ПроверитьЗаданияКОтражениюСостоянияЗаказов", "ИСТИНА");
КонецЕсли;
ТекстЗапросаРасчеты = "ВЫБРАТЬ 0 КАК СуммаДолга, 0 КАК СуммаКОплате";
Если ПравоДоступа("Чтение", Метаданные.РегистрыНакопления.РасчетыСКлиентами) Тогда
ТекстЗапросаРасчеты = "
|ВЫБРАТЬ
| ВЫБОР
| КОГДА
| ДокументЗаказ.Проведен И
| ((ДокументЗаказ.Статус <> ЗНАЧЕНИЕ(Перечисление.СтатусыЗаказовПоставщикам.НеСогласован) И ДокументЗаказ.СуммаДокумента > 0)
| ИЛИ НЕ (ДокументЗаказ.ПорядокРасчетов = ЗНАЧЕНИЕ(Перечисление.ПорядокРасчетов.ПоЗаказам)
| ИЛИ ДокументЗаказ.ПорядокРасчетов = ЗНАЧЕНИЕ(Перечисление.ПорядокРасчетов.ПоЗаказамНакладным)))
| ТОГДА
| ВЫРАЗИТЬ (ЕСТЬNULL(РасчетыСПоставщикамиОстатки.СуммаОстаток, 0) КАК ЧИСЛО(31,2))
| ИНАЧЕ
| 0
| КОНЕЦ КАК СуммаДолга,
| ВЫБОР
| КОГДА
| ДокументЗаказ.Проведен
| И (ДокументЗаказ.ПорядокРасчетов = ЗНАЧЕНИЕ(Перечисление.ПорядокРасчетов.ПоДоговорамКонтрагентов)
| ИЛИ ДокументЗаказ.ПорядокРасчетов = ЗНАЧЕНИЕ(Перечисление.ПорядокРасчетов.ПоДоговорамНакладным))
| ТОГДА
| ЕСТЬNULL(-РасчетыСПоставщикамиОстатки.КОплатеОстаток,0)
| ИНАЧЕ
| 0
| КОНЕЦ КАК СуммаКОплате
|ИЗ
| ВТ_ДокументЗаказ КАК ДокументЗаказ
|ЛЕВОЕ СОЕДИНЕНИЕ
| РегистрНакопления.РасчетыСКлиентами.Остатки(,
| ОбъектРасчетов В (ВЫБРАТЬ ВТ.ОбъектРасчетов ИЗ ВТ_ДокументЗаказ КАК ВТ)
| ) КАК РасчетыСПоставщикамиОстатки
|ПО
| ДокументЗаказ.ОбъектРасчетов = РасчетыСПоставщикамиОстатки.ОбъектРасчетов
|";
КонецЕсли;
УстановитьПривилегированныйРежим(Истина);
ТекстыЗапроса = Новый Массив;
ТекстыЗапроса.Добавить(ТекстЗапроса);
ТекстыЗапроса.Добавить(ТекстЗапросаРасчеты);
ТекстыЗапроса.Добавить(ТекстЗапросаЕстьЗадания);
ТекстЗапроса = СтрСоединить(ТекстыЗапроса, ОбщегоНазначения.РазделительПакетаЗапросов());
Запрос = Новый Запрос;
Запрос.Текст = ТекстЗапроса;
Запрос.УстановитьПараметр("ЗаказПоставщику", ЗаказПоставщику);
Запрос.УстановитьПараметр("ТекущаяДата", НачалоДня(ТекущаяДатаСеанса()));
Запрос.УстановитьПараметр("ИспользоватьСтатусы", ПолучитьФункциональнуюОпцию("ИспользоватьСтатусыЗаказовПоставщикам"));
РезультатыЗапроса = Запрос.ВыполнитьПакет();
РезультатСостояний = РезультатыЗапроса[1];
Если НЕ РезультатСостояний.Пустой() Тогда
ВыборкаСостояний = РезультатСостояний.Выбрать();
Если ВыборкаСостояний.Следующий() Тогда
ЗаполнитьЗначенияСвойств(СостояниеРасчетов, ВыборкаСостояний);
КонецЕсли;
ВыборкаРасчетов = РезультатыЗапроса[2].Выбрать();
Если ВыборкаРасчетов.Следующий() Тогда
ЗаполнитьЗначенияСвойств(СостояниеРасчетов, ВыборкаРасчетов);
КонецЕсли;
ИначеЕсли ПроверитьЗаданияКОтражениюСостоянияЗаказов Тогда
ВыборкаЕстьЗадания = РезультатыЗапроса[3].Выбрать();
Если ВыборкаЕстьЗадания.Следующий() Тогда
ЗаполнитьЗначенияСвойств(СостояниеРасчетов, ВыборкаЕстьЗадания);
КонецЕсли;
КонецЕсли;
КонецПроцедуры
Функция ТекстЗапросаДляРасчетаСостоянийЗаказов() Экспорт
ТекстЗапроса = "
|ВЫБРАТЬ
| ЗаказыОстатки.ЗаказПоставщику КАК ЗаказПоставщику,
| СУММА(ЗаказыОстатки.КОформлениюКонечныйОстаток) КАК КОформлениюОстаток,
| СУММА(ЗаказыОстатки.ЗаказаноКонечныйОстаток) КАК ЗаказаноОстаток,
| СУММА(ЗаказыОстатки.ЗаказаноРасход) КАК ЗаказаноРасход
|
|ПОМЕСТИТЬ ВТЗаказыПоставщикамОстатки
|
|ИЗ (ВЫБРАТЬ
| ЗаказыПоставщикамОстатки.ЗаказПоставщику КАК ЗаказПоставщику,
| ЗаказыПоставщикамОстатки.Номенклатура КАК Номенклатура,
| ЗаказыПоставщикамОстатки.Характеристика КАК Характеристика,
| ЗаказыПоставщикамОстатки.Склад КАК Склад,
| ВЫБОР
| КОГДА ЗаказыПоставщикамОстатки.Номенклатура.ЕдиницаИзмерения.ТипИзмеряемойВеличины В (&МерныеТипыВеличин)
| ТОГДА ВЫБОР
| КОГДА ЗаказыПоставщикамОстатки.КОформлениюКонечныйОстаток <= ЗаказыПоставщикамОстатки.КОформлениюПриход
| * (&ДопустимоеОтклонениеОтгрузкиПриемкиМерныхТоваров / 100)
| И ЗаказыПоставщикамОстатки.КОформлениюКонечныйОстаток >= -(ЗаказыПоставщикамОстатки.КОформлениюПриход
| * (&ДопустимоеОтклонениеОтгрузкиПриемкиМерныхТоваров / 100))
| ТОГДА 0
| ИНАЧЕ ЕСТЬNULL(ЗаказыПоставщикамОстатки.КОформлениюКонечныйОстаток, 0)
| КОНЕЦ
| ИНАЧЕ ЕСТЬNULL(ЗаказыПоставщикамОстатки.КОформлениюКонечныйОстаток, 0)
| КОНЕЦ КАК КОформлениюКонечныйОстаток,
|
| ВЫБОР
| КОГДА ЗаказыПоставщикамОстатки.Номенклатура.ЕдиницаИзмерения.ТипИзмеряемойВеличины В (&МерныеТипыВеличин)
| ТОГДА ВЫБОР
| КОГДА ЗаказыПоставщикамОстатки.ЗаказаноКонечныйОстаток <= ЗаказыПоставщикамОстатки.КОформлениюПриход
| * (&ДопустимоеОтклонениеОтгрузкиПриемкиМерныхТоваров / 100)
| И ЗаказыПоставщикамОстатки.ЗаказаноКонечныйОстаток >= -(ЗаказыПоставщикамОстатки.КОформлениюПриход
| * (&ДопустимоеОтклонениеОтгрузкиПриемкиМерныхТоваров / 100))
| ТОГДА 0
| ИНАЧЕ ЕСТЬNULL(ЗаказыПоставщикамОстатки.ЗаказаноКонечныйОстаток, 0)
| КОНЕЦ
| ИНАЧЕ ЕСТЬNULL(ЗаказыПоставщикамОстатки.ЗаказаноКонечныйОстаток, 0)
| КОНЕЦ КАК ЗаказаноКонечныйОстаток,
| ЗаказыПоставщикамОстатки.ЗаказаноРасход КАК ЗаказаноРасход
|
| ИЗ РегистрНакопления.ЗаказыПоставщикам.ОстаткиИОбороты(,,,,
| ЗаказПоставщику В (&МассивЗаказов)) КАК ЗаказыПоставщикамОстатки) КАК ЗаказыОстатки
|СГРУППИРОВАТЬ ПО
| ЗаказыОстатки.ЗаказПоставщику
|;
|
|
|ВЫБРАТЬ
| ТоварыОстатки.ДокументПоступления КАК ДокументПоступления,
| СУММА(ТоварыОстатки.КПоступлениюОстаток) КАК КПоступлениюКонечныйОстаток,
| СУММА(ТоварыОстатки.КПоступлениюРасход) КАК КПоступлениюРасход,
| СУММА(ВЫБОР КОГДА ТоварыОстатки.КПоступлениюОстаток > 0
| ИЛИ ТоварыОстатки.КОформлениюПоступленийПоНакладнымКонечныйОстаток > 0 ТОГДА 1 ИНАЧЕ 0 КОНЕЦ) КАК КПоступлениюНоменклатураРасхождения,
| СУММА(ТоварыОстатки.КОформлениюПоступленийПоОрдерамКонечныйОстаткок) <> 0 КАК ЕстьРасхожденияОрдерНакладная
|
|ПОМЕСТИТЬ ВТТоварыКПоступлениюОстатки
|
|ИЗ (ВЫБРАТЬ
| ТоварыКПоступлениюОстатки.ДокументПоступления КАК ДокументПоступления,
| ТоварыКПоступлениюОстатки.Номенклатура КАК Номенклатура,
| ТоварыКПоступлениюОстатки.Характеристика КАК Характеристика,
| ТоварыКПоступлениюОстатки.Склад КАК Склад,
| ТоварыКПоступлениюОстатки.Серия КАК Серия,
| ВЫБОР
| КОГДА ТоварыКПоступлениюОстатки.Номенклатура.ЕдиницаИзмерения.ТипИзмеряемойВеличины В (&МерныеТипыВеличин)
| ТОГДА ВЫБОР
| КОГДА ТоварыКПоступлениюОстатки.КОформлениюОрдеровКонечныйОстаток <= ТоварыКПоступлениюОстатки.КОформлениюОрдеровПриход
| * (&ДопустимоеОтклонениеОтгрузкиПриемкиМерныхТоваров / 100)
| И ТоварыКПоступлениюОстатки.КОформлениюОрдеровКонечныйОстаток >= -(ТоварыКПоступлениюОстатки.КОформлениюОрдеровПриход
| * (&ДопустимоеОтклонениеОтгрузкиПриемкиМерныхТоваров / 100))
| ТОГДА 0
| ИНАЧЕ ЕСТЬNULL(ТоварыКПоступлениюОстатки.КОформлениюОрдеровКонечныйОстаток, 0)
| КОНЕЦ
| ИНАЧЕ ЕСТЬNULL(ТоварыКПоступлениюОстатки.КОформлениюОрдеровКонечныйОстаток, 0)
| КОНЕЦ КАК КПоступлениюОстаток,
| ТоварыКПоступлениюОстатки.КОформлениюОрдеровРасход КАК КПоступлениюРасход,
| ТоварыКПоступлениюОстатки.КОформлениюПоступленийПоОрдерамКонечныйОстаток КАК КОформлениюПоступленийПоОрдерамКонечныйОстаткок,
| ТоварыКПоступлениюОстатки.КОформлениюПоступленийПоНакладнымКонечныйОстаток КАК КОформлениюПоступленийПоНакладнымКонечныйОстаток
|
|ИЗ РегистрНакопления.ТоварыКПоступлению.ОстаткиИОбороты(,,,,
| ДокументПоступления В (&МассивЗаказов)) КАК ТоварыКПоступлениюОстатки) КАК ТоварыОстатки
|СГРУППИРОВАТЬ ПО
| ТоварыОстатки.ДокументПоступления
|;
|
|
|ВЫБРАТЬ
|ВЫБОР
|
| КОГДА
| НЕ ДокументЗаказПоставщику.Проведен
| ТОГДА
| ЗНАЧЕНИЕ(Перечисление.СостоянияЗаказовПоставщикам.ПустаяСсылка)
|
| КОГДА
| ДокументЗаказПоставщику.Статус = ЗНАЧЕНИЕ(Перечисление.СтатусыЗаказовПоставщикам.НеСогласован)
| ТОГДА
| ЗНАЧЕНИЕ(Перечисление.СостоянияЗаказовПоставщикам.ОжидаетсяСогласование)
|
| КОГДА
| (ДокументЗаказПоставщику.ПорядокРасчетов = ЗНАЧЕНИЕ(Перечисление.ПорядокРасчетов.ПоЗаказам)
| ИЛИ ДокументЗаказПоставщику.ПорядокРасчетов = ЗНАЧЕНИЕ(Перечисление.ПорядокРасчетов.ПоЗаказамНакладным))
| И ДокументЗаказПоставщику.СуммаАвансаДоПодтверждения > 0
| И ЕСТЬNULL(СостояниеВзаиморасчетов.ОплаченоПоЗаказу, 0) < ДокументЗаказПоставщику.СуммаАвансаДоПодтверждения
| И (ЕСТЬNULL(СостояниеВзаиморасчетов.ОсталосьОплатить, 0) < 0 ИЛИ СостояниеВзаиморасчетов.Заказ ЕСТЬ NULL)
| ТОГДА
| ЗНАЧЕНИЕ(Перечисление.СостоянияЗаказовПоставщикам.ОжидаетсяАвансДоПодтверждения)
|
| КОГДА
| ДокументЗаказПоставщику.Статус = ЗНАЧЕНИЕ(Перечисление.СтатусыЗаказовПоставщикам.Согласован)
| И ДокументЗаказПоставщику.СуммаДокумента > 0
| И (ЕСТЬNULL(СостояниеВзаиморасчетов.ОплаченоПоЗаказу, 0) >= ДокументЗаказПоставщику.СуммаАвансаДоПодтверждения
| ИЛИ НЕ ДокументЗаказПоставщику.ПорядокРасчетов В (ЗНАЧЕНИЕ(Перечисление.ПорядокРасчетов.ПоЗаказам), ЗНАЧЕНИЕ(Перечисление.ПорядокРасчетов.ПоЗаказамНакладным)))
| ТОГДА
| ЗНАЧЕНИЕ(Перечисление.СостоянияЗаказовПоставщикам.ОжидаетсяПодтверждение)
|
| КОГДА
| (ДокументЗаказПоставщику.ПорядокРасчетов = ЗНАЧЕНИЕ(Перечисление.ПорядокРасчетов.ПоЗаказам)
| ИЛИ ДокументЗаказПоставщику.ПорядокРасчетов = ЗНАЧЕНИЕ(Перечисление.ПорядокРасчетов.ПоЗаказамНакладным))
| И (ДокументЗаказПоставщику.Статус = ЗНАЧЕНИЕ(Перечисление.СтатусыЗаказовПоставщикам.Согласован) ИЛИ &НеИспользоватьСтатусыЗаказовПоставщикам
| ИЛИ ДокументЗаказПоставщику.Статус = ЗНАЧЕНИЕ(Перечисление.СтатусыЗаказовПоставщикам.Подтвержден))
| И ДокументЗаказПоставщику.СуммаПредоплатыДоПоступления > 0
| И ЕСТЬNULL(СостояниеВзаиморасчетов.ОплаченоПоЗаказу, 0) < ДокументЗаказПоставщику.СуммаПредоплатыДоПоступления + ДокументЗаказПоставщику.СуммаАвансаДоПодтверждения
| И (ЕСТЬNULL(СостояниеВзаиморасчетов.ОсталосьОплатить, 0) < 0 ИЛИ СостояниеВзаиморасчетов.Заказ ЕСТЬ NULL)
| ТОГДА
| ЗНАЧЕНИЕ(Перечисление.СостоянияЗаказовПоставщикам.ОжидаетсяПредоплатаДоПоступления)
|
| КОГДА
| ДокументЗаказПоставщику.Статус = ЗНАЧЕНИЕ(Перечисление.СтатусыЗаказовПоставщикам.Подтвержден)
| И ДокументЗаказПоставщику.СуммаДокумента > 0
| И (ЕСТЬNULL(СостояниеВзаиморасчетов.ОплаченоПоЗаказу, 0) >= ДокументЗаказПоставщику.СуммаПредоплатыДоПоступления + ДокументЗаказПоставщику.СуммаАвансаДоПодтверждения
| ИЛИ ЕСТЬNULL(СостояниеВзаиморасчетов.СуммаЗаказа, 0) + ЕСТЬNULL(СостояниеВзаиморасчетов.ОсталосьОплатить, 0) >= ДокументЗаказПоставщику.СуммаПредоплатыДоПоступления + ДокументЗаказПоставщику.СуммаАвансаДоПодтверждения
| ИЛИ НЕ ДокументЗаказПоставщику.ПорядокРасчетов В (ЗНАЧЕНИЕ(Перечисление.ПорядокРасчетов.ПоЗаказам), ЗНАЧЕНИЕ(Перечисление.ПорядокРасчетов.ПоЗаказамНакладным)))
| И ЕСТЬNULL(ЗаказыПоставщикамОстатки.ЗаказаноРасход, 0) = 0
| И ЕСТЬNULL(ТоварыКПоступлениюОстатки.КПоступлениюРасход,0) = 0
| ТОГДА
| ЗНАЧЕНИЕ(Перечисление.СостоянияЗаказовПоставщикам.ГотовКПоступлению)
|
| КОГДА
| (ДокументЗаказПоставщику.Статус = ЗНАЧЕНИЕ(Перечисление.СтатусыЗаказовПоставщикам.Подтвержден) ИЛИ &НеИспользоватьСтатусыЗаказовПоставщикам)
| И ДокументЗаказПоставщику.СуммаДокумента > 0
| И (ЕСТЬNULL(СостояниеВзаиморасчетов.ОплаченоПоЗаказу, 0) >= ДокументЗаказПоставщику.СуммаПредоплатыДоПоступления + ДокументЗаказПоставщику.СуммаАвансаДоПодтверждения
| ИЛИ ЕСТЬNULL(СостояниеВзаиморасчетов.СуммаЗаказа, 0) + ЕСТЬNULL(СостояниеВзаиморасчетов.ОсталосьОплатить, 0) >= ДокументЗаказПоставщику.СуммаПредоплатыДоПоступления + ДокументЗаказПоставщику.СуммаАвансаДоПодтверждения
| ИЛИ НЕ ДокументЗаказПоставщику.ПорядокРасчетов В (ЗНАЧЕНИЕ(Перечисление.ПорядокРасчетов.ПоЗаказам), ЗНАЧЕНИЕ(Перечисление.ПорядокРасчетов.ПоЗаказамНакладным)))
| И (ЕСТЬNULL(ЗаказыПоставщикамОстатки.КОформлениюОстаток, 0) <> 0
| ИЛИ ЕСТЬNULL(ТоварыКПоступлениюОстатки.КПоступлениюКонечныйОстаток,0) <> 0
| ИЛИ ЕСТЬNULL(ТоварыКПоступлениюОстатки.КПоступлениюНоменклатураРасхождения,0) <> 0)
| ТОГДА
| ЗНАЧЕНИЕ(Перечисление.СостоянияЗаказовПоставщикам.ОжидаетсяПоступление)
|
| КОГДА
| (ДокументЗаказПоставщику.ПорядокРасчетов = ЗНАЧЕНИЕ(Перечисление.ПорядокРасчетов.ПоЗаказам)
| ИЛИ ДокументЗаказПоставщику.ПорядокРасчетов = ЗНАЧЕНИЕ(Перечисление.ПорядокРасчетов.ПоЗаказамНакладным))
| И (ДокументЗаказПоставщику.Статус = ЗНАЧЕНИЕ(Перечисление.СтатусыЗаказовПоставщикам.Подтвержден) ИЛИ &НеИспользоватьСтатусыЗаказовПоставщикам)
| И ДокументЗаказПоставщику.СуммаДокумента - ДокументЗаказПоставщику.СуммаАвансаДоПодтверждения - ДокументЗаказПоставщику.СуммаПредоплатыДоПоступления > 0
| И ЕСТЬNULL(СостояниеВзаиморасчетов.ОсталосьОплатить, 0) < 0
| И ЕСТЬNULL(ЗаказыПоставщикамОстатки.КОформлениюОстаток, 0) = 0
| ТОГДА
| ЗНАЧЕНИЕ(Перечисление.СостоянияЗаказовПоставщикам.ОжидаетсяОплатаПослеПоступления)
|
| КОГДА
| ДокументЗаказПоставщику.Статус <> ЗНАЧЕНИЕ(Перечисление.СтатусыЗаказовПоставщикам.Закрыт) И &КонтролироватьЗакрытиеЗаказа
| ТОГДА
| ЗНАЧЕНИЕ(Перечисление.СостоянияЗаказовПоставщикам.ГотовКЗакрытию)
|
| КОГДА
| ДокументЗаказПоставщику.Статус В (ЗНАЧЕНИЕ(Перечисление.СтатусыЗаказовПоставщикам.Закрыт),ЗНАЧЕНИЕ(Перечисление.СтатусыЗаказовПоставщикам.Подтвержден))
| ТОГДА
| ЗНАЧЕНИЕ(Перечисление.СостоянияЗаказовПоставщикам.Закрыт)
|КОНЕЦ КАК Состояние,
|ВЫБОР
|
| КОГДА
| НЕ ДокументЗаказПоставщику.Проведен
| ТОГДА
| ДАТАВРЕМЯ(1,1,1)
|
| КОГДА
| ДокументЗаказПоставщику.Статус = ЗНАЧЕНИЕ(Перечисление.СтатусыЗаказовПоставщикам.НеСогласован)
| ТОГДА
| ДокументЗаказПоставщику.ДатаСогласования
|
| КОГДА
| (ДокументЗаказПоставщику.ПорядокРасчетов = ЗНАЧЕНИЕ(Перечисление.ПорядокРасчетов.ПоЗаказам)
| ИЛИ ДокументЗаказПоставщику.ПорядокРасчетов = ЗНАЧЕНИЕ(Перечисление.ПорядокРасчетов.ПоЗаказамНакладным))
| И (ДокументЗаказПоставщику.Статус = ЗНАЧЕНИЕ(Перечисление.СтатусыЗаказовПоставщикам.Согласован) ИЛИ &НеИспользоватьСтатусыЗаказовПоставщикам)
| И ДокументЗаказПоставщику.СуммаАвансаДоПодтверждения > 0
| И ЕСТЬNULL(СостояниеВзаиморасчетов.ОплаченоПоЗаказу, 0) < ДокументЗаказПоставщику.СуммаАвансаДоПодтверждения
| И (ЕСТЬNULL(СостояниеВзаиморасчетов.ОсталосьОплатить, 0) < 0 ИЛИ СостояниеВзаиморасчетов.Заказ ЕСТЬ NULL)
| ТОГДА
| ДатыАктуальностиРасчетов.ДатаАктуальности
|
| КОГДА
| ДокументЗаказПоставщику.Статус = ЗНАЧЕНИЕ(Перечисление.СтатусыЗаказовПоставщикам.Согласован)
| И ДокументЗаказПоставщику.СуммаДокумента > 0
| И (ЕСТЬNULL(СостояниеВзаиморасчетов.ОплаченоПоЗаказу, 0) >= ДокументЗаказПоставщику.СуммаАвансаДоПодтверждения
| ИЛИ НЕ ДокументЗаказПоставщику.ПорядокРасчетов В (ЗНАЧЕНИЕ(Перечисление.ПорядокРасчетов.ПоЗаказам), ЗНАЧЕНИЕ(Перечисление.ПорядокРасчетов.ПоЗаказамНакладным)))
| ТОГДА
| ДокументЗаказПоставщику.ДатаПервогоПоступления
|
| КОГДА
| (ДокументЗаказПоставщику.ПорядокРасчетов = ЗНАЧЕНИЕ(Перечисление.ПорядокРасчетов.ПоЗаказам)
| ИЛИ ДокументЗаказПоставщику.ПорядокРасчетов = ЗНАЧЕНИЕ(Перечисление.ПорядокРасчетов.ПоЗаказамНакладным))
| И (ДокументЗаказПоставщику.Статус = ЗНАЧЕНИЕ(Перечисление.СтатусыЗаказовПоставщикам.Подтвержден) ИЛИ &НеИспользоватьСтатусыЗаказовПоставщикам)
| И ДокументЗаказПоставщику.СуммаПредоплатыДоПоступления > 0
| И ЕСТЬNULL(СостояниеВзаиморасчетов.ОплаченоПоЗаказу, 0) < ДокументЗаказПоставщику.СуммаПредоплатыДоПоступления + ДокументЗаказПоставщику.СуммаАвансаДоПодтверждения
| И (ЕСТЬNULL(СостояниеВзаиморасчетов.ОсталосьОплатить, 0) < 0 ИЛИ СостояниеВзаиморасчетов.Заказ ЕСТЬ NULL)
| ТОГДА
| ДатыАктуальностиРасчетов.ДатаАктуальности
|
| КОГДА
| (ДокументЗаказПоставщику.Статус = ЗНАЧЕНИЕ(Перечисление.СтатусыЗаказовПоставщикам.Подтвержден)
| ИЛИ &НеИспользоватьСтатусыЗаказовПоставщикам)
| И (ЕСТЬNULL(СостояниеВзаиморасчетов.ОплаченоПоЗаказу, 0) >= ДокументЗаказПоставщику.СуммаПредоплатыДоПоступления + ДокументЗаказПоставщику.СуммаАвансаДоПодтверждения
| ИЛИ ЕСТЬNULL(СостояниеВзаиморасчетов.СуммаЗаказа, 0) + ЕСТЬNULL(СостояниеВзаиморасчетов.ОсталосьОплатить, 0) >= ДокументЗаказПоставщику.СуммаПредоплатыДоПоступления + ДокументЗаказПоставщику.СуммаАвансаДоПодтверждения
| ИЛИ НЕ ДокументЗаказПоставщику.ПорядокРасчетов В (ЗНАЧЕНИЕ(Перечисление.ПорядокРасчетов.ПоЗаказам), ЗНАЧЕНИЕ(Перечисление.ПорядокРасчетов.ПоЗаказамНакладным)))
| И ЕСТЬNULL(ЗаказыПоставщикамОстатки.ЗаказаноОстаток, 0) <> 0 ИЛИ ЕСТЬNULL(ЗаказыПоставщикамОстатки.КОформлениюОстаток, 0) <> 0
| ТОГДА
|
| ЕСТЬNULL(ДатыПоступленияЗаказовПоставщикам.МинимальнаяДатаПоступления, ДокументЗаказПоставщику.ДатаПервогоПоступления)
|
| КОГДА
| (ДокументЗаказПоставщику.ПорядокРасчетов = ЗНАЧЕНИЕ(Перечисление.ПорядокРасчетов.ПоЗаказам)
| ИЛИ ДокументЗаказПоставщику.ПорядокРасчетов = ЗНАЧЕНИЕ(Перечисление.ПорядокРасчетов.ПоЗаказамНакладным))
| И (ДокументЗаказПоставщику.Статус = ЗНАЧЕНИЕ(Перечисление.СтатусыЗаказовПоставщикам.Подтвержден) ИЛИ &НеИспользоватьСтатусыЗаказовПоставщикам)
| И ДокументЗаказПоставщику.СуммаДокумента - ДокументЗаказПоставщику.СуммаАвансаДоПодтверждения - ДокументЗаказПоставщику.СуммаПредоплатыДоПоступления > 0
| И ЕСТЬNULL(СостояниеВзаиморасчетов.ОсталосьОплатить, 0) < 0
| ТОГДА
| ДатыАктуальностиРасчетов.ДатаАктуальности
| ИНАЧЕ
| ДАТАВРЕМЯ(1,1,1)
|КОНЕЦ КАК ДатаСобытия,
|
|ВЫБОР
| КОГДА ДокументЗаказПоставщику.ХозяйственнаяОперация <> ЗНАЧЕНИЕ(Перечисление.ХозяйственныеОперации.ПриемНаКомиссию)
| ТОГДА ЕСТЬNULL(СостояниеВзаиморасчетов.СуммаОплаты, 0)
| ИНАЧЕ 0
|КОНЕЦ КАК СуммаОплаты,
|
|ВЫБОР
| КОГДА ДокументЗаказПоставщику.ХозяйственнаяОперация <> ЗНАЧЕНИЕ(Перечисление.ХозяйственныеОперации.ПриемНаКомиссию)
| ТОГДА ЕСТЬNULL(СостояниеВзаиморасчетов.ПроцентОплаты, 0)
| ИНАЧЕ 0
|КОНЕЦ КАК ПроцентОплаты,
|
|ВЫБОР
| КОГДА ДокументЗаказПоставщику.ХозяйственнаяОперация = ЗНАЧЕНИЕ(Перечисление.ХозяйственныеОперации.ПриемНаКомиссию)
| ТОГДА ЕСТЬNULL(ОплаченоПоЗаказам.КПоступлениюРасход, 0)
| ИНАЧЕ ЕСТЬNULL(СостояниеВзаиморасчетов.СуммаПоступления, 0)
|КОНЕЦ КАК СуммаПоступления,
|
|ВЫБОР
| КОГДА ДокументЗаказПоставщику.ХозяйственнаяОперация = ЗНАЧЕНИЕ(Перечисление.ХозяйственныеОперации.ПриемНаКомиссию)
| И ДокументЗаказПоставщику.СуммаДокумента > 0
| ТОГДА ВЫРАЗИТЬ(ЕСТЬNULL(ОплаченоПоЗаказам.КПоступлениюРасход, 0) * 100 / ДокументЗаказПоставщику.СуммаДокумента КАК ЧИСЛО(20, 10))
| ИНАЧЕ ЕСТЬNULL(СостояниеВзаиморасчетов.ПроцентПоступления, 0)
|КОНЕЦ КАК ПроцентПоступления,
|
|ЕСТЬNULL(СостояниеВзаиморасчетов.СуммаДолга, 0) КАК СуммаДолга,
|
|ЕСТЬNULL(СостояниеВзаиморасчетов.ПроцентДолга, 0) КАК ПроцентДолга,
| ЕСТЬNULL(ТоварыКПоступлениюОстатки.ЕстьРасхожденияОрдерНакладная, ЛОЖЬ) КАК ЕстьРасхожденияОрдерНакладная,
| ДокументЗаказПоставщику.Ссылка КАК Заказ
|ИЗ
| Документ.ЗаказПоставщику КАК ДокументЗаказПоставщику
|ЛЕВОЕ СОЕДИНЕНИЕ
| ВтСостояниеВзаиморасчетов КАК СостояниеВзаиморасчетов
|ПО
| ДокументЗаказПоставщику.Ссылка = СостояниеВзаиморасчетов.Заказ
|ЛЕВОЕ СОЕДИНЕНИЕ
| ОплаченоПоЗаказам КАК ОплаченоПоЗаказам
|ПО
| ДокументЗаказПоставщику.Ссылка = ОплаченоПоЗаказам.ЗаказПоставщику
|ЛЕВОЕ СОЕДИНЕНИЕ
| ВТЗаказыПоставщикамОстатки КАК ЗаказыПоставщикамОстатки
|ПО
| ДокументЗаказПоставщику.Ссылка = ЗаказыПоставщикамОстатки.ЗаказПоставщику
|ЛЕВОЕ СОЕДИНЕНИЕ
| ВТТоварыКПоступлениюОстатки КАК ТоварыКПоступлениюОстатки
|ПО
| ДокументЗаказПоставщику.Ссылка = ТоварыКПоступлениюОстатки.ДокументПоступления
|ЛЕВОЕ СОЕДИНЕНИЕ
| ДатыАктуальностиЗаказовПоставщикам КАК ДатыАктуальностиРасчетов
|ПО
| ДокументЗаказПоставщику.Ссылка = ДатыАктуальностиРасчетов.ОбъектРасчетов
|ЛЕВОЕ СОЕДИНЕНИЕ
| ДатыПоступленияЗаказовПоставщикам КАК ДатыПоступленияЗаказовПоставщикам
|ПО
| ДокументЗаказПоставщику.Ссылка = ДатыПоступленияЗаказовПоставщикам.ЗаказПоставщику
|ГДЕ
| ДокументЗаказПоставщику.Ссылка В (&МассивЗаказов)
|
|";
Возврат ТекстЗапроса;
КонецФункции
#КонецОбласти
Функция СтруктураСостояниеВыполненияДокумента() Экспорт
СтруктураСостояние = Отчеты.СостояниеВыполненияДокументов.ИнициализироватьСтруктуруСостояниеВыполненияДокумента();
СтруктураСостояние.Вставить("ВыводитьТаблицуРасчетыСПоставщиками", 1);
СтруктураСостояние.Вставить("ВыводитьТаблицуЗаказано", 2);
СтруктураСостояние.Вставить("ВыводитьТаблицыПоступление", 3);
СтруктураСостояние.Вставить("ВыводитьТаблицыОтмененоПоступление", 4);
СтруктураСостояние.Вставить("ЭтоЗаказ", Истина);
СтруктураСостояние.Вставить("ЕстьСуммовыеПоказателиПоступления", Истина);
СтруктураСостояние.Вставить("ЕстьПричиныОтменыПоступления", ПолучитьФункциональнуюОпцию("ИспользоватьПричиныОтменыЗаказовПоставщикам"));
Возврат СтруктураСостояние
КонецФункции
Функция ПорядокОбработкиДокументаПриИзмененииНаправленияДеятельности(Форма) Экспорт
ПорядокОбработкиДокумента = НаправленияДеятельностиСервер.ПорядокОбработкиДокументаПриИзмененииНаправленияДеятельности();
ПорядокОбработкиДокумента.ИменаТабличныхЧастейДляОчисткиНекорректныхНазначений = "Товары";
ТаблицаУсловий = НаправленияДеятельностиСервер.УсловияОбработкиНазначенийВСтроках("ТипНоменклатуры");
ПорядокОбработкиДокумента.УсловияОбработкиСтрок.Вставить("Товары", ТаблицаУсловий);
Возврат ПорядокОбработкиДокумента;
КонецФункции
Функция МакетФормыВыбораНазначений() Экспорт
МакетФормы = Справочники.Назначения.МакетФормыВыбораНазначений();
ШаблонНазначения = Справочники.Назначения.ДобавитьШаблонНазначений(МакетФормы);
ШаблонНазначения.НаправлениеДеятельности = "Объект.НаправлениеДеятельности";
ШаблонНазначения.УсловиеИспользования = "Объект.ХозяйственнаяОперация = ЗНАЧЕНИЕ(Перечисление.ХозяйственныеОперации.ЗакупкаУПоставщика)";
ШаблонНазначенияБезАгентскойЗакупки = Справочники.Назначения.ДобавитьШаблонНазначений(МакетФормы);
ШаблонНазначенияБезАгентскойЗакупки.НаправлениеДеятельности = "Объект.НаправлениеДеятельности";
ШаблонНазначенияБезАгентскойЗакупки.ТипыНазначений.Удалить(ШаблонНазначенияБезАгентскойЗакупки.ТипыНазначений.Найти(Перечисления.ТипыНазначений.ПоставкаПодПринципала));
ШаблонНазначенияБезАгентскойЗакупки.УсловиеИспользования = "Объект.ХозяйственнаяОперация <> ЗНАЧЕНИЕ(Перечисление.ХозяйственныеОперации.ЗакупкаУПоставщика)";
ОписаниеКолонок = Справочники.Назначения.ДобавитьОписаниеКолонок(МакетФормы, "ОбеспечениеЗаказовПоВалюте", Истина, "Объект.Товары.Назначение");
ОписаниеКолонок.Колонки.НайтиПоЗначению("Потребность").Пометка = Истина;
ОписаниеКолонок.УсловиеИспользования = "Объект.Товары.Номенклатура.ТипНоменклатуры <> ЗНАЧЕНИЕ(Перечисление.ТипыНоменклатуры.Работа)";
ОписаниеКолонок.ПутиКДанным.Номенклатура = "Объект.Товары.Номенклатура";
ОписаниеКолонок.ПутиКДанным.Характеристика = "Объект.Товары.Характеристика";
ОписаниеКолонок.ПутиКДанным.Склад = "Объект.Товары.Склад";
ОписаниеКолонок.ПутиКДанным.Валюта = "Объект.Валюта";
ОписаниеКолонок = Справочники.Назначения.ДобавитьОписаниеКолонок(МакетФормы, "ОбеспечениеЗаказовРаботамиПоВалюте", Истина, "Объект.Товары.Назначение");
ОписаниеКолонок.Колонки.НайтиПоЗначению("Потребность").Пометка = Истина;
ОписаниеКолонок.УсловиеИспользования = "Объект.Товары.ТипНоменклатуры = ЗНАЧЕНИЕ(Перечисление.ТипыНоменклатуры.Работа)";
ОписаниеКолонок.ПутиКДанным.Номенклатура = "Объект.Товары.Номенклатура";
ОписаниеКолонок.ПутиКДанным.Характеристика = "Объект.Товары.Характеристика";
ОписаниеКолонок.ПутиКДанным.Подразделение = "Объект.Товары.Подразделение";
ОписаниеКолонок.ПутиКДанным.Валюта = "Объект.Валюта";
Возврат МакетФормы;
КонецФункции
Функция ХозяйственныеОперацииДокумента(ПроверятьФункциональныеОпции) Экспорт
ИспользоватьКомиссиюПриЗакупках = Истина;
ИспользоватьТоварыВПутиОтПоставщиков = Истина;
ИспользоватьИмпортныеЗакупки = Истина;
ИспользоватьВвозТоваровИзТаможенногоСоюза = Истина;
ИспользоватьНеотфактурованныеПоставки = Истина;
ИспользоватьОтветственноеХранениеВПроцессеЗакупки = Ложь;
ИспользоватьОтветственноеХранениеВПроцессеЗакупки = Истина;
Если ПроверятьФункциональныеОпции Тогда
ИспользоватьКомиссиюПриЗакупках = ПолучитьФункциональнуюОпцию("ИспользоватьКомиссиюПриЗакупках");
ИспользоватьТоварыВПутиОтПоставщиков = ПолучитьФункциональнуюОпцию("ИспользоватьТоварыВПутиОтПоставщиков");
ИспользоватьИмпортныеЗакупки = ПолучитьФункциональнуюОпцию("ИспользоватьИмпортныеЗакупки");
ИспользоватьВвозТоваровИзТаможенногоСоюза = ПолучитьФункциональнуюОпцию("ИспользоватьВвозТоваровИзТаможенногоСоюза");
ИспользоватьНеотфактурованныеПоставки = ПолучитьФункциональнуюОпцию("ИспользоватьНеотфактурованныеПоставки");
ИспользоватьОтветственноеХранениеВПроцессеЗакупки = Ложь;
ИспользоватьОтветственноеХранениеВПроцессеЗакупки = ПолучитьФункциональнуюОпцию(
"ИспользоватьОтветственноеХранениеВПроцессеЗакупки");
КонецЕсли;
Операции = Новый Массив();
Операции.Добавить(Перечисления.ХозяйственныеОперации.ЗакупкаУПоставщика);
Если ИспользоватьТоварыВПутиОтПоставщиков Тогда
Операции.Добавить(Перечисления.ХозяйственныеОперации.ЗакупкаУПоставщикаТоварыВПути);
КонецЕсли;
Если ИспользоватьНеотфактурованныеПоставки Тогда
Операции.Добавить(Перечисления.ХозяйственныеОперации.ЗакупкаУПоставщикаФактуровкаПоставки);
КонецЕсли;
Если ИспользоватьИмпортныеЗакупки Тогда
Операции.Добавить(Перечисления.ХозяйственныеОперации.ЗакупкаПоИмпорту);
КонецЕсли;
Если ИспользоватьИмпортныеЗакупки
И ИспользоватьТоварыВПутиОтПоставщиков Тогда
Операции.Добавить(Перечисления.ХозяйственныеОперации.ЗакупкаПоИмпортуТоварыВПути);
КонецЕсли;
Если ИспользоватьВвозТоваровИзТаможенногоСоюза Тогда
Операции.Добавить(Перечисления.ХозяйственныеОперации.ЗакупкаВСтранахЕАЭС);
КонецЕсли;
Если ИспользоватьВвозТоваровИзТаможенногоСоюза
И ИспользоватьТоварыВПутиОтПоставщиков Тогда
Операции.Добавить(Перечисления.ХозяйственныеОперации.ЗакупкаВСтранахЕАЭСТоварыВПути);
КонецЕсли;
Если ИспользоватьВвозТоваровИзТаможенногоСоюза
И ИспользоватьНеотфактурованныеПоставки Тогда
Операции.Добавить(Перечисления.ХозяйственныеОперации.ЗакупкаВСтранахЕАЭСФактуровкаПоставки);
КонецЕсли;
Если ИспользоватьКомиссиюПриЗакупках Тогда
Операции.Добавить(Перечисления.ХозяйственныеОперации.ПриемНаКомиссию);
КонецЕсли;
Если ИспользоватьОтветственноеХранениеВПроцессеЗакупки Тогда
Операции.Добавить(Перечисления.ХозяйственныеОперации.ПриемНаХранениеСПравомПродажи);
КонецЕсли;
Возврат Операции;
КонецФункции
Функция ПараметрыЗаполненияНалогообложенияНДСЗакупки(Объект) Экспорт
ПараметрыЗаполнения = УчетНДСУПКлиентСервер.ПараметрыЗаполненияНалогообложенияНДСЗакупки();
ПараметрыЗаполнения.Контрагент = Объект.Контрагент;
ПараметрыЗаполнения.Договор = Объект.Договор;
ПараметрыЗаполнения.Период = Объект.Дата;
ХозОперацииЗакупкаУПоставщика = ЗакупкиСервер.ХозяйственныеОперацииПоОсновной(
Перечисления.ХозяйственныеОперации.ЗакупкаУПоставщика);
ХозОперацииЗакупкаВСтранахЕАЭС = ЗакупкиСервер.ХозяйственныеОперацииПоОсновной(
Перечисления.ХозяйственныеОперации.ЗакупкаВСтранахЕАЭС);
ХозОперацииЗакупкаПоИмпорту = ЗакупкиСервер.ХозяйственныеОперацииПоОсновной(
Перечисления.ХозяйственныеОперации.ЗакупкаПоИмпорту);
Если ХозОперацииЗакупкаУПоставщика.Найти(Объект.ХозяйственнаяОперация) <> Неопределено Тогда
ПараметрыЗаполнения.ПриобретениеТоваров = Истина;
ПараметрыЗаполнения.ПриобретениеРабот = Истина;
ПараметрыЗаполнения.ПриобретениеНаСтатьи = Истина;
ИначеЕсли ХозОперацииЗакупкаВСтранахЕАЭС.Найти(Объект.ХозяйственнаяОперация) <> Неопределено Тогда
ПараметрыЗаполнения.ВвозТоваровИзТаможенногоСоюза = Истина;
ИначеЕсли ХозОперацииЗакупкаПоИмпорту.Найти(Объект.ХозяйственнаяОперация) <> Неопределено Тогда
ПараметрыЗаполнения.ИмпортТоваров = Истина;
ИначеЕсли Объект.ХозяйственнаяОперация = Перечисления.ХозяйственныеОперации.ПриемНаХранениеСПравомПродажи Тогда
ПараметрыЗаполнения.ПриемНаХранение = Истина;
ИначеЕсли Объект.ХозяйственнаяОперация = Перечисления.ХозяйственныеОперации.ПриемНаКомиссию Тогда
ПараметрыЗаполнения.ПриемНаКомиссию = Истина;
КонецЕсли;
Возврат ПараметрыЗаполнения;
КонецФункции
Функция ПараметрыЗаполненияВидаДеятельностиНДС(Объект) Экспорт
ПараметрыЗаполнения = УчетНДСУПКлиентСервер.ПараметрыЗаполненияВидаДеятельностиНДС();
ПараметрыЗаполнения.Организация = Объект.Организация;
ПараметрыЗаполнения.Склад = Объект.Склад;
ПараметрыЗаполнения.Договор = Объект.Договор;
ПараметрыЗаполнения.Дата = Объект.Дата;
ПараметрыЗаполнения.НаправлениеДеятельности = Объект.НаправлениеДеятельности;
ПараметрыЗаполнения.Подразделение = Объект.Подразделение;
ХозОперацииЗакупкаУПоставщика = ЗакупкиСервер.ХозяйственныеОперацииПоОсновной(
Перечисления.ХозяйственныеОперации.ЗакупкаУПоставщика);
ХозОперацииЗакупкаВСтранахЕАЭС = ЗакупкиСервер.ХозяйственныеОперацииПоОсновной(
Перечисления.ХозяйственныеОперации.ЗакупкаВСтранахЕАЭС);
ХозОперацииЗакупкаПоИмпорту = ЗакупкиСервер.ХозяйственныеОперацииПоОсновной(
Перечисления.ХозяйственныеОперации.ЗакупкаПоИмпорту);
Если ХозОперацииЗакупкаУПоставщика.Найти(Объект.ХозяйственнаяОперация) <> Неопределено Тогда
ПараметрыЗаполнения.ПриобретениеТоваров = Истина;
ПараметрыЗаполнения.ПриобретениеРабот = Истина;
ПараметрыЗаполнения.ПриобретениеНаСтатьи = Истина;
ИначеЕсли ХозОперацииЗакупкаВСтранахЕАЭС.Найти(Объект.ХозяйственнаяОперация) <> Неопределено
Или ХозОперацииЗакупкаПоИмпорту.Найти(Объект.ХозяйственнаяОперация) <> Неопределено Тогда
ПараметрыЗаполнения.ПриобретениеТоваров = Истина;
КонецЕсли;
Возврат ПараметрыЗаполнения;
КонецФункции
Функция ПараметрыВыбораСтатейИАналитик(ХозяйственнаяОперация) Экспорт
МассивПаметровВыбора = Новый Массив;
#Область ТоварыСтатьяРасходов
ПараметрыВыбора = ДоходыИРасходыСервер.ПараметрыВыбораСтатьиИАналитики();
ПараметрыВыбора.ПутьКДанным = "Объект.Товары";
ПараметрыВыбора.Статья = "СтатьяРасходов";
Если НоменклатураСервер.СписокХозяйственныхОперацийИсключающихУслугиИРаботы().НайтиПоЗначению(ХозяйственнаяОперация) <> Неопределено Тогда
ПараметрыВыбора.ДоступностьПоОперации = Ложь;
КонецЕсли;
ПараметрыВыбора.ВыборСтатьиРасходов = Истина;
ПараметрыВыбора.АналитикаРасходов = "АналитикаРасходов";
ПараметрыВыбора.ЭлементыФормы.Статья.Добавить("ТоварыСтатьяРасходов");
ПараметрыВыбора.ЭлементыФормы.АналитикаРасходов.Добавить("ТоварыАналитикаРасходов");
ПараметрыВыбора.УсловияДоступностиСтатьиВСтроках.Вставить("СписатьНаРасходы", Истина);
МассивПаметровВыбора.Добавить(ПараметрыВыбора);
#КонецОбласти
Возврат МассивПаметровВыбора;
КонецФункции
Функция ПараметрыВзаиморасчеты(ДанныеЗаполнения = Неопределено) Экспорт
Если ОбщегоНазначения.ЗначениеСсылочногоТипа(ДанныеЗаполнения) Тогда
СтруктураДанныеЗаполнения = ОбщегоНазначения.ЗначенияРеквизитовОбъекта(
ДанныеЗаполнения,
"ХозяйственнаяОперация");
ХозяйственнаяОперация = СтруктураДанныеЗаполнения.ХозяйственнаяОперация;
ИначеЕсли ДанныеЗаполнения = Неопределено Тогда
ХозяйственнаяОперация = Неопределено;
Иначе
ХозяйственнаяОперация = ДанныеЗаполнения.ХозяйственнаяОперация;
КонецЕсли;
СтруктураПараметров = ВзаиморасчетыСервер.ПараметрыМеханизма();
СтруктураПараметров.ЭтоЗаказ = Истина;
СтруктураПараметров.ТипРасчетов = Перечисления.ТипыРасчетовСПартнерами.РасчетыСПоставщиком;
СтруктураПараметров.ИзменяетПланОплаты = ХозяйственнаяОперация = Перечисления.ХозяйственныеОперации.ЗакупкаУПоставщика
ИЛИ ХозяйственнаяОперация = Перечисления.ХозяйственныеОперации.ЗакупкаУПоставщикаТоварыВПути
ИЛИ ХозяйственнаяОперация = Перечисления.ХозяйственныеОперации.ЗакупкаУПоставщикаФактуровкаПоставки
ИЛИ ХозяйственнаяОперация = Перечисления.ХозяйственныеОперации.ЗакупкаПоИмпорту
ИЛИ ХозяйственнаяОперация = Перечисления.ХозяйственныеОперации.ЗакупкаПоИмпортуТоварыВПути
ИЛИ ХозяйственнаяОперация = Перечисления.ХозяйственныеОперации.ЗакупкаВСтранахЕАЭС
ИЛИ ХозяйственнаяОперация = Перечисления.ХозяйственныеОперации.ЗакупкаВСтранахЕАЭСТоварыВПути
ИЛИ ХозяйственнаяОперация = Перечисления.ХозяйственныеОперации.ЗакупкаВСтранахЕАЭСФактуровкаПоставки;
СтруктураПараметров.ИзменяетПланОтгрузкиПоставки = ХозяйственнаяОперация = Перечисления.ХозяйственныеОперации.ПриемНаКомиссию
ИЛИ ХозяйственнаяОперация = Перечисления.ХозяйственныеОперации.ЗакупкаУПоставщика
ИЛИ ХозяйственнаяОперация = Перечисления.ХозяйственныеОперации.ЗакупкаУПоставщикаТоварыВПути
ИЛИ ХозяйственнаяОперация = Перечисления.ХозяйственныеОперации.ЗакупкаУПоставщикаФактуровкаПоставки
ИЛИ ХозяйственнаяОперация = Перечисления.ХозяйственныеОперации.ЗакупкаПоИмпорту
ИЛИ ХозяйственнаяОперация = Перечисления.ХозяйственныеОперации.ЗакупкаПоИмпортуТоварыВПути
ИЛИ ХозяйственнаяОперация = Перечисления.ХозяйственныеОперации.ЗакупкаВСтранахЕАЭС
ИЛИ ХозяйственнаяОперация = Перечисления.ХозяйственныеОперации.ЗакупкаВСтранахЕАЭСТоварыВПути
ИЛИ ХозяйственнаяОперация = Перечисления.ХозяйственныеОперации.ЗакупкаВСтранахЕАЭСФактуровкаПоставки;
СтруктураПараметров.КурсЧислитель = "";
СтруктураПараметров.КурсЗнаменатель = "";
СтруктураПараметров.ПутьКДаннымТЧ = "Объект.Товары";
СтруктураПараметров.ПутьКДаннымТЧЭтапыОплаты = "Объект.ЭтапыГрафикаОплаты";
СтруктураПараметров.НадписьЭтапыОплаты = "Форма.НадписьЭтапыОплаты";
СтруктураПараметров.ДатаСогласования = "Объект.ДатаСогласования";
СтруктураПараметров.ДатаОтгрузки = "Объект.Товары.ДатаОтгрузки";
СтруктураПараметров.ОтгружатьОднойДатой = "Объект.ПоступлениеОднойДатой";
СтруктураПараметров.БанковскийСчетОрганизации = "Объект.БанковскийСчет";
СтруктураПараметров.БанковскийСчетКонтрагента = "";
СтруктураПараметров.ИдентификаторПлатежа = "";
СтруктураПараметров.Менеджер = "Объект.Менеджер";
СтруктураПараметров.СуммаДокументаФорма = "Форма.СуммаЗаказаноСЗалоговойТарой";
СтруктураПараметров.СуммаЗалогаЗаТаруФорма = "Форма.СуммаЗалогаЗаТару";
СтруктураПараметров.ИсточникСуммТабличнаяЧасть = Истина;
СтруктураПараметров.ЭлементыФормы.НадписьЭтапы = "ДекорацияЭтапыОплаты";
СтруктураПараметров.ЭлементыФормы.НадписьРасчеты = "ДекорацияСостояниеРасчетов";
СтруктураПараметров.ЭлементыФормы.ЗачетОплаты = "ЗачетОплатыФорма";
СтруктураПараметров.ЭлементыФормы.ГруппаФинансовогоУчета = "ГруппаФинансовогоУчета";
СтруктураПараметров.ЭлементыФормы.НаправлениеДеятельности = "НаправлениеДеятельности";
СтруктураПараметров.НомерВходящегоДокумента = "Объект.НомерПоДаннымПоставщика";
СтруктураПараметров.ДатаВходящегоДокумента = "Объект.ДатаПоДаннымПоставщика";
СтруктураПараметров.ОбъектРасчетов = "Объект.ОбъектРасчетов";
СтруктураПараметров.ВернутьМногооборотнуюТару = "Объект.ВернутьМногооборотнуюТару";
СтруктураПараметров.ТребуетсяЗалогЗаТару = "Объект.ТребуетсяЗалогЗаТару";
СтруктураПараметров.ОперацияССамозанятым = "Объект.ОперацияССамозанятым";
Возврат СтруктураПараметров;
КонецФункции
#Область ДляВызоваИзДругихПодсистем
Процедура ПриЗаполненииОграниченияДоступа(Ограничение) Экспорт
Ограничение.Текст =
"РазрешитьЧтениеИзменение
|ГДЕ
| ЗначениеРазрешено(Организация)
| И ЗначениеРазрешено(Партнер)
| И ЗначениеРазрешено(Склад)
| И ЗначениеРазрешено(Подразделение)";
КонецПроцедуры
Процедура ЗаполнитьТаблицуПараметровБлокировкиРеквизитовEDI(ТаблицаПараметров) Экспорт
Для Каждого СтрокаТаблицы Из ТаблицаПараметров Цикл
БлокируемыеЭлементы = Новый СписокЗначений;
Если СтрокаТаблицы.ИмяРеквизита = "Покупатель" Тогда
БлокируемыеЭлементы.Добавить("Партнер");
БлокируемыеЭлементы.Добавить("Контрагент");
ИначеЕсли СтрокаТаблицы.ИмяРеквизита = "Поставщик" Тогда
БлокируемыеЭлементы.Добавить("Организация");
ИначеЕсли СтрокаТаблицы.ИмяРеквизита = "ПоставщикБанковскийСчет" Тогда
ИначеЕсли СтрокаТаблицы.ИмяРеквизита = "ВариантУказанияНоменклатурыВЗаказе" Тогда
ИначеЕсли СтрокаТаблицы.ИмяРеквизита = "Валюта" Тогда
БлокируемыеЭлементы.Добавить("Валюта");
ИначеЕсли СтрокаТаблицы.ИмяРеквизита = "ЦенаВключаетНДС" Тогда
БлокируемыеЭлементы.Добавить("ЦенаВключаетНДС");
ИначеЕсли СтрокаТаблицы.ИмяРеквизита = "СуммаДокумента" Тогда
БлокируемыеЭлементы.Добавить("ЗакрытьЗаказ");
БлокируемыеЭлементы.Добавить("Соглашение");
БлокируемыеЭлементы.Добавить("Договор");
БлокируемыеЭлементы.Добавить("ТоварыВставитьСтроки");
БлокируемыеЭлементы.Добавить("ТоварыКонтекстноеМенюВставитьСтроки");
БлокируемыеЭлементы.Добавить("ТоварыПоискПоШтрихкоду");
БлокируемыеЭлементы.Добавить("ТоварыЗагрузитьДанныеИзТСД");
БлокируемыеЭлементы.Добавить("ТоварыПодобратьНоменклатуру");
БлокируемыеЭлементы.Добавить("ТоварыДополнитьМногооборотнойТарой");
БлокируемыеЭлементы.Добавить("ТоварыЗагрузитьИзВнешнегоФайла");
БлокируемыеЭлементы.Добавить("ТоварыОтменитьВыделенныеСтроки");
БлокируемыеЭлементы.Добавить("ТоварыОтменитьНепоставленныеСтроки");
БлокируемыеЭлементы.Добавить("ТоварыЗаполнитьЦеныПоСоглашению");
БлокируемыеЭлементы.Добавить("ТоварыЗаполнитьЦеныВыделенныхСтрокПоВидуЦеныПоставщика");
БлокируемыеЭлементы.Добавить("ТоварыСкорректироватьЦеныПоПоступлениям");
БлокируемыеЭлементы.Добавить("ТоварыНазначитьРучнуюСкидкуВыделенныхСтрок");
БлокируемыеЭлементы.Добавить("ТоварыОтменитьРучныеСкидки");
БлокируемыеЭлементы.Добавить("ТоварыОтменено");
БлокируемыеЭлементы.Добавить("ХозяйственнаяОперация");
ИначеЕсли СтрокаТаблицы.ИмяРеквизита = "ОтгружатьЗаказЦеликом" Тогда
БлокируемыеЭлементы.Добавить("ПоступлениеОднойДатой");
ИначеЕсли СтрокаТаблицы.ИмяРеквизита = "ПлановаяДатаПоставки" Тогда
БлокируемыеЭлементы.Добавить("ДатаПоступления");
ИначеЕсли СтрокаТаблицы.ИмяРеквизита = "Товары" Тогда
БлокируемыеЭлементы.Добавить("Товары");
ИначеЕсли СтрокаТаблицы.ИмяРеквизита = "СпособДоставки" Тогда
БлокируемыеЭлементы.Добавить("СпособДоставки");
ИначеЕсли СтрокаТаблицы.ИмяРеквизита = "АдресДоставки" Тогда
БлокируемыеЭлементы.Добавить("ПеревозчикПартнер");
БлокируемыеЭлементы.Добавить("АдресДоставкиДляПоставщика");
БлокируемыеЭлементы.Добавить("АдресДоставкиПеревозчика");
БлокируемыеЭлементы.Добавить("АдресПоставщика");
БлокируемыеЭлементы.Добавить("ЗонаДоставки");
БлокируемыеЭлементы.Добавить("ВремяДоставкиС");
БлокируемыеЭлементы.Добавить("ВремяДоставкиПо");
БлокируемыеЭлементы.Добавить("ДополнительнаяИнформацияПоДоставке");
БлокируемыеЭлементы.Добавить("ДополнитьИнформациюПоДоставкеКонтактами");
БлокируемыеЭлементы.Добавить("ОсобыеУсловияПеревозки");
БлокируемыеЭлементы.Добавить("ОсобыеУсловияПеревозкиОписание");
БлокируемыеЭлементы.Добавить("АдресДоставкиДляПоставщика2");
ИначеЕсли СтрокаТаблицы.ИмяРеквизита = "НалогообложениеНДС" Тогда
БлокируемыеЭлементы.Добавить("НалогообложениеНДС");
ИначеЕсли СтрокаТаблицы.ИмяРеквизита = "Товары.ПокупательНоменклатура" Тогда
БлокируемыеЭлементы.Добавить("ТоварыЗаполнитьНоменклатуруПоНоменклатуреПартнера");
БлокируемыеЭлементы.Добавить("ТоварыНоменклатура");
ИначеЕсли СтрокаТаблицы.ИмяРеквизита = "Товары.ПокупательУпаковка" Тогда
БлокируемыеЭлементы.Добавить("ТоварыУпаковка");
ИначеЕсли СтрокаТаблицы.ИмяРеквизита = "Товары.ПокупательКоличество" Тогда
ИначеЕсли СтрокаТаблицы.ИмяРеквизита = "Товары.ПокупательКоличествоУпаковок" Тогда
БлокируемыеЭлементы.Добавить("ТоварыКоличествоУпаковок");
ИначеЕсли СтрокаТаблицы.ИмяРеквизита = "Товары.ПоставщикНоменклатура" Тогда
БлокируемыеЭлементы.Добавить("ТоварыНоменклатураПартнера");
БлокируемыеЭлементы.Добавить("ТоварыХарактеристика");
ИначеЕсли СтрокаТаблицы.ИмяРеквизита = "Товары.ПоставщикУпаковка" Тогда
ИначеЕсли СтрокаТаблицы.ИмяРеквизита = "Товары.ПоставщикКоличество" Тогда
ИначеЕсли СтрокаТаблицы.ИмяРеквизита = "Товары.ПоставщикКоличествоУпаковок" Тогда
ИначеЕсли СтрокаТаблицы.ИмяРеквизита = "Товары.Цена" Тогда
БлокируемыеЭлементы.Добавить("ТоварыВидЦеныПоставщика");
БлокируемыеЭлементы.Добавить("ТоварыЦена");
ИначеЕсли СтрокаТаблицы.ИмяРеквизита = "Товары.Сумма" Тогда
БлокируемыеЭлементы.Добавить("ТоварыСумма");
БлокируемыеЭлементы.Добавить("ТоварыСуммаСНДС");
ИначеЕсли СтрокаТаблицы.ИмяРеквизита = "Товары.СуммаСкидки" Тогда
БлокируемыеЭлементы.Добавить("ТоварыПроцентРучнойСкидки");
БлокируемыеЭлементы.Добавить("ТоварыСуммаРучнойСкидки");
ИначеЕсли СтрокаТаблицы.ИмяРеквизита = "Товары.СтавкаНДС" Тогда
БлокируемыеЭлементы.Добавить("ТоварыСтавкаНДС");
ИначеЕсли СтрокаТаблицы.ИмяРеквизита = "Товары.СуммаНДС" Тогда
БлокируемыеЭлементы.Добавить("ТоварыСуммаНДС");
ИначеЕсли СтрокаТаблицы.ИмяРеквизита = "Товары.СрокПоставки" Тогда
БлокируемыеЭлементы.Добавить("ЗаполнитьДатуПоступленияДляВыделенныхСтрок");
БлокируемыеЭлементы.Добавить("ТоварыДатаПоступления");
БлокируемыеЭлементы.Добавить("ЖелаемаяДатаПоступления");
БлокируемыеЭлементы.Добавить("ПоступлениеОднойДатой");
БлокируемыеЭлементы.Добавить("ДатаПоступления");
ИначеЕсли СтрокаТаблицы.ИмяРеквизита = "ЭтапыГрафикаОплаты.ВариантОплаты" Тогда
ИначеЕсли СтрокаТаблицы.ИмяРеквизита = "ЭтапыГрафикаОплаты.ФормаОплаты" Тогда
ИначеЕсли СтрокаТаблицы.ИмяРеквизита = "ЭтапыГрафикаОплаты.ДатаПлатежа" Тогда
ИначеЕсли СтрокаТаблицы.ИмяРеквизита = "ЭтапыГрафикаОплаты.ПроцентПлатежа" Тогда
ИначеЕсли СтрокаТаблицы.ИмяРеквизита = "ЭтапыГрафикаОплаты.СуммаПлатежа" Тогда
ИначеЕсли СтрокаТаблицы.ИмяРеквизита = "ЭтапыГрафикаОплаты.Сдвиг" Тогда
КонецЕсли;
СтрокаТаблицы.БлокируемыеЭлементы = БлокируемыеЭлементы;
КонецЦикла;
КонецПроцедуры
#КонецОбласти
#КонецОбласти
#КонецЕсли
#Область ОбработчикиСобытий
Процедура ОбработкаПолученияФормы(ВидФормы, Параметры, ВыбраннаяФорма, ДополнительнаяИнформация, СтандартнаяОбработка)
Если ВидФормы = "ФормаСписка" Тогда
Если Не ПравоДоступа("Чтение", Метаданные.РегистрыСведений.СостоянияЗаказовПоставщикам)
Или Не ПравоДоступа("Чтение", Метаданные.РегистрыСведений.СостоянияПоОбъектамУчетаЭДО) Тогда
СтандартнаяОбработка = Ложь;
ВыбраннаяФорма = "ФормаСписка";
КонецЕсли;
КонецЕсли;
КонецПроцедуры
#КонецОбласти
#Если Сервер Или ТолстыйКлиентОбычноеПриложение Или ВнешнееСоединение Тогда
#Область СлужебныеПроцедурыИФункции
#Область Проведение
Функция ДополнительныеИсточникиДанныхДляДвижений(ИмяРегистра) Экспорт
ИсточникиДанных = Новый Соответствие;
Возврат ИсточникиДанных;
КонецФункции
Функция ДанныеДокументаДляПроведения(Документ, Регистры, ДопПараметры = Неопределено) Экспорт
Если ДопПараметры = Неопределено Тогда
ДопПараметры = ПроведениеДокументов.ДопПараметрыИнициализироватьДанныеДокументаДляПроведения();
КонецЕсли;
Если ТипЗнч(Документ) = Тип("ДокументОбъект.ЗаказПоставщику") Тогда
ДокументОбъект = Документ;
ДокументСсылка = Документ.Ссылка;
Иначе
ДокументОбъект = Документ.ПолучитьОбъект();
ДокументСсылка = Документ;
КонецЕсли;
Запрос = Новый Запрос;
ТекстыЗапроса = Новый СписокЗначений;
ПолучитьДанныеДокумента(Запрос, ДокументСсылка);
Если Не ДопПараметры.ПолучитьТекстыЗапроса Тогда
ЗаполнитьПараметрыИнициализации(Запрос, ДокументСсылка);
СформироватьСуммыДокументаВВалютахУчета(Запрос, ТекстыЗапроса, Регистры, ДокументОбъект);
ТекстЗапросаТаблицаЗаказыПоставщикам(Запрос, ТекстыЗапроса, Регистры, ДокументОбъект);
ТекстЗапросаТаблицаЦеныНоменклатурыПоставщиков(Запрос, ТекстыЗапроса, Регистры, ДокументОбъект);
ТекстЗапросаТаблицаРеестрДокументов(Запрос, ТекстыЗапроса, Регистры);
КонецЕсли;
ОтразитьРаспределениеЗапасовДвижения(Запрос, ТекстыЗапроса, Регистры);
ДобавитьТекстыОтраженияВзаиморасчетов(Запрос, ТекстыЗапроса, Регистры, ДокументОбъект);
ЗапланироватьПоступлениеТоваров(Запрос, ТекстыЗапроса, Регистры, ДокументОбъект);
Возврат ПроведениеДокументов.ИнициализироватьДанныеДокументаДляПроведения(Запрос, ТекстыЗапроса, ДопПараметры);
КонецФункции
Процедура ЗаполнитьПараметрыИнициализации(Запрос, ДокументСсылка)
Запрос.УстановитьПараметр("Ссылка", ДокументСсылка);
Запрос.Текст =
"ВЫБРАТЬ
| ЗаказПоставщику.Дата КАК Период,
| ЗаказПоставщику.Валюта КАК Валюта,
| ЗаказПоставщику.ВалютаСоглашения КАК ВалютаСоглашения,
| ЗаказПоставщику.ЦенаВключаетНДС КАК ЦенаВключаетНДС,
| ЗаказПоставщику.ЦенаВключаетНДССоглашения КАК ЦенаВключаетНДССоглашения,
| ЗаказПоставщику.Статус КАК Статус,
| ЗаказПоставщику.Партнер КАК Партнер,
| ЗаказПоставщику.Контрагент КАК Контрагент,
| ЗаказПоставщику.Организация КАК Организация,
| ЗаказПоставщику.ХозяйственнаяОперация КАК ХозяйственнаяОперация,
| ЗаказПоставщику.Соглашение КАК Соглашение,
| ЗаказПоставщику.РегистрироватьЦеныПоставщика КАК РегистрироватьЦеныПоставщика,
| ЗаказПоставщику.ВариантПриемкиТоваров КАК ВариантПриемкиТоваров,
| ЗаказПоставщику.Договор КАК Договор,
| ЗаказПоставщику.ДоговорПредставление КАК ДоговорПредставление,
| ЗаказПоставщику.ВернутьМногооборотнуюТару КАК ВернутьМногооборотнуюТару,
| ЗаказПоставщику.ТребуетсяЗалогЗаТару КАК ТребуетсяЗалогЗаТару,
| ЗаказПоставщику.НаправлениеДеятельности КАК НаправлениеДеятельности,
| ЗаказПоставщику.Склад КАК Склад,
| ЗаказПоставщику.Номер КАК Номер,
| ЗаказПоставщику.Менеджер КАК Менеджер,
| ЗаказПоставщику.Автор КАК Автор,
| ЗаказПоставщику.Комментарий КАК Комментарий,
| ЗаказПоставщику.СуммаДокумента КАК СуммаДокумента,
| ЗаказПоставщику.Проведен КАК Проведен,
| ЗаказПоставщику.ПометкаУдаления КАК ПометкаУдаления,
| ЗаказПоставщику.ДатаПоДаннымПоставщика КАК ДатаПоДаннымПоставщика,
| ЗаказПоставщику.НомерПоДаннымПоставщика КАК НомерПоДаннымПоставщика,
| ЗаказПоставщику.Подразделение КАК Подразделение,
| ЗаказПоставщику.Приоритет КАК Приоритет
|
|ИЗ ДанныеДокументаШапка КАК ЗаказПоставщику";
Реквизиты = Запрос.Выполнить().Выбрать();
Реквизиты.Следующий();
Запрос.УстановитьПараметр("Период", Реквизиты.Период);
Запрос.УстановитьПараметр("Валюта", Реквизиты.Валюта);
Запрос.УстановитьПараметр("Статус", Реквизиты.Статус);
Запрос.УстановитьПараметр("ЗаказПоставщику", ДокументСсылка);
Запрос.УстановитьПараметр("Организация", Реквизиты.Организация);
Запрос.УстановитьПараметр("ЦенаВключаетНДС", Реквизиты.ЦенаВключаетНДС);
Запрос.УстановитьПараметр("ХозяйственнаяОперация", Реквизиты.ХозяйственнаяОперация);
Запрос.УстановитьПараметр("РегистрироватьЦеныПоставщика", Реквизиты.РегистрироватьЦеныПоставщика);
Запрос.УстановитьПараметр("Валюта", Реквизиты.Валюта);
Запрос.УстановитьПараметр("ВалютаСоглашения", Реквизиты.ВалютаСоглашения);
Запрос.УстановитьПараметр("Соглашение", Реквизиты.Соглашение);
Запрос.УстановитьПараметр("Договор", Реквизиты.Договор);
Запрос.УстановитьПараметр("ЦенаВключаетНДССоглашения", Реквизиты.ЦенаВключаетНДССоглашения);
Запрос.УстановитьПараметр("ВернутьМногооборотнуюТару", Реквизиты.ВернутьМногооборотнуюТару);
Запрос.УстановитьПараметр("ТребуетсяЗалогЗаТару", Реквизиты.ТребуетсяЗалогЗаТару);
Запрос.УстановитьПараметр("Партнер", Реквизиты.Партнер);
Запрос.УстановитьПараметр("Приоритет", Реквизиты.Приоритет);
Запрос.УстановитьПараметр("Автор", Реквизиты.Автор);
Запрос.УстановитьПараметр("Склад", Реквизиты.Склад);
Запрос.УстановитьПараметр("Номер", Реквизиты.Номер);
Запрос.УстановитьПараметр("Менеджер", Реквизиты.Менеджер);
Запрос.УстановитьПараметр("Комментарий", Реквизиты.Комментарий);
Запрос.УстановитьПараметр("СуммаДокумента", Реквизиты.СуммаДокумента);
Запрос.УстановитьПараметр("НаправлениеДеятельности", Реквизиты.НаправлениеДеятельности);
Запрос.УстановитьПараметр("Проведен", Реквизиты.Проведен);
Запрос.УстановитьПараметр("ПометкаУдаления", Реквизиты.ПометкаУдаления);
Запрос.УстановитьПараметр("ДатаПоДаннымПоставщика", Реквизиты.ДатаПоДаннымПоставщика);
Запрос.УстановитьПараметр("НомерПоДаннымПоставщика", Реквизиты.НомерПоДаннымПоставщика);
Запрос.УстановитьПараметр("Подразделение", Реквизиты.Подразделение);
Запрос.УстановитьПараметр("Контрагент", Реквизиты.Контрагент);
Запрос.УстановитьПараметр("ИдентификаторМетаданных", ОбщегоНазначения.ИдентификаторОбъектаМетаданных(ТипЗнч(ДокументСсылка)));
Если ЗначениеЗаполнено(Реквизиты.Договор) Тогда
ШаблонСтроки = "ru = 'По договору ""%1""'";
ИнформацияПоДоговору = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(ШаблонСтроки, Реквизиты.ДоговорПредставление);
КонецЕсли;
Запрос.УстановитьПараметр("ИнформацияПоДоговору", ИнформацияПоДоговору);
Запрос.УстановитьПараметр("ВариантПриемкиТоваров", Реквизиты.ВариантПриемкиТоваров);
КонецПроцедуры
Процедура ПолучитьДанныеДокумента(Запрос, ДокументСсылка)
СписокЗапросов = Новый Массив;
ТекстЗапросаДанныеДокументаШапка(СписокЗапросов);
ТекстЗапросаДанныеДокументаТаблицаТовары(СписокЗапросов);
ТекстЗапросаДанныеДокументаТаблицаЭтапыГрафикаОплаты(СписокЗапросов);
ТекстЗапроса = СтрСоединить(СписокЗапросов, ОбщегоНазначения.РазделительПакетаЗапросов());
Запрос.Текст = ТекстЗапроса;
Запрос.МенеджерВременныхТаблиц = Новый МенеджерВременныхТаблиц();
Запрос.УстановитьПараметр("Ссылка", ДокументСсылка);
Запрос.Выполнить();
КонецПроцедуры
Процедура ТекстЗапросаДанныеДокументаШапка(СписокЗапросов)
ТекстЗапросаШапка = "ВЫБРАТЬ
| ДанныеШапки.Ссылка КАК Ссылка,
| ДанныеШапки.Дата КАК Дата,
| ДанныеШапки.Валюта КАК Валюта,
| ДанныеШапки.Соглашение.Валюта КАК ВалютаСоглашения,
| ДанныеШапки.ЦенаВключаетНДС КАК ЦенаВключаетНДС,
| ЕСТЬNULL(ДанныеШапки.Соглашение.ЦенаВключаетНДС, ЛОЖЬ) КАК ЦенаВключаетНДССоглашения,
| ДанныеШапки.Статус КАК Статус,
| ДанныеШапки.Партнер КАК Партнер,
| ДанныеШапки.Контрагент КАК Контрагент,
| ДанныеШапки.Организация КАК Организация,
| ДанныеШапки.ХозяйственнаяОперация КАК ХозяйственнаяОперация,
| ДанныеШапки.Соглашение КАК Соглашение,
| ДанныеШапки.РегистрироватьЦеныПоставщика КАК РегистрироватьЦеныПоставщика,
| ДанныеШапки.ВариантПриемкиТоваров КАК ВариантПриемкиТоваров,
| ДанныеШапки.Договор КАК Договор,
| ПРЕДСТАВЛЕНИЕ(ДанныеШапки.Договор) КАК ДоговорПредставление,
| ДанныеШапки.ВернутьМногооборотнуюТару КАК ВернутьМногооборотнуюТару,
| ДанныеШапки.ТребуетсяЗалогЗаТару КАК ТребуетсяЗалогЗаТару,
| ДанныеШапки.НаправлениеДеятельности КАК НаправлениеДеятельности,
| ДанныеШапки.Склад КАК Склад,
| ДанныеШапки.Номер КАК Номер,
| ДанныеШапки.Менеджер КАК Менеджер,
| ДанныеШапки.Автор КАК Автор,
| ДанныеШапки.Комментарий КАК Комментарий,
| ДанныеШапки.СуммаДокумента КАК СуммаДокумента,
| ДанныеШапки.Проведен КАК Проведен,
| ДанныеШапки.ПометкаУдаления КАК ПометкаУдаления,
| ДанныеШапки.ДатаПоДаннымПоставщика КАК ДатаПоДаннымПоставщика,
| ДанныеШапки.НомерПоДаннымПоставщика КАК НомерПоДаннымПоставщика,
| ДанныеШапки.Подразделение КАК Подразделение,
| ДанныеШапки.Приоритет КАК Приоритет,
| ДанныеШапки.ОбъектРасчетов КАК ОбъектРасчетов,
| ДанныеШапки.Договор.ВариантОформленияЗакупок КАК ДоговорВариантОформленияЗакупок,
| ДанныеШапки.ПорядокРасчетов КАК ПорядокРасчетов,
| ДанныеШапки.ФормаОплаты КАК ФормаОплаты
|ПОМЕСТИТЬ ДанныеДокументаШапка
|ИЗ
| Документ.ЗаказПоставщику КАК ДанныеШапки
|ГДЕ
| ДанныеШапки.Ссылка = &Ссылка
|
|ИНДЕКСИРОВАТЬ ПО
| Ссылка";
СписокЗапросов.Добавить(ТекстЗапросаШапка);
КонецПроцедуры
Процедура ТекстЗапросаДанныеДокументаТаблицаТовары(СписокЗапросов)
ТекстЗапросаТаблицаТовары = "ВЫБРАТЬ
| ТаблицаТовары.НомерСтроки КАК НомерСтроки,
| ТаблицаТовары.Ссылка КАК Ссылка,
| ТаблицаТовары.НоменклатураПартнера КАК НоменклатураПартнера,
| ТаблицаТовары.Номенклатура КАК Номенклатура,
| ТаблицаТовары.Характеристика КАК Характеристика,
| ТаблицаТовары.Упаковка КАК Упаковка,
| ТаблицаТовары.КоличествоУпаковок КАК КоличествоУпаковок,
| ТаблицаТовары.Количество КАК Количество,
| ТаблицаТовары.ДатаПоступления КАК ДатаПоступления,
| ТаблицаТовары.ВидЦеныПоставщика КАК ВидЦеныПоставщика,
| ТаблицаТовары.Цена КАК Цена,
| ТаблицаТовары.Сумма КАК Сумма,
| ТаблицаТовары.ПроцентРучнойСкидки КАК ПроцентРучнойСкидки,
| ТаблицаТовары.СуммаРучнойСкидки КАК СуммаРучнойСкидки,
| ТаблицаТовары.СтавкаНДС КАК СтавкаНДС,
| ТаблицаТовары.СуммаНДС КАК СуммаНДС,
| ТаблицаТовары.СуммаСНДС КАК СуммаСНДС,
| ТаблицаТовары.КодСтроки КАК КодСтроки,
| ТаблицаТовары.Отменено КАК Отменено,
| ТаблицаТовары.СтатьяРасходов КАК СтатьяРасходов,
| ТаблицаТовары.АналитикаРасходов КАК АналитикаРасходов,
| ТаблицаТовары.ПричинаОтмены КАК ПричинаОтмены,
| ТаблицаТовары.Склад КАК Склад,
| ТаблицаТовары.Назначение КАК Назначение,
| ТаблицаТовары.Подразделение КАК Подразделение,
| ТаблицаТовары.СписатьНаРасходы КАК СписатьНаРасходы,
| ТаблицаТовары.ИдентификаторСтроки КАК ИдентификаторСтроки,
| ТаблицаТовары.ДатаОтгрузки КАК ДатаОтгрузки,
| ТаблицаТовары.Номенклатура.ТипНоменклатуры КАК НоменклатураТипНоменклатуры
|
|ПОМЕСТИТЬ ДанныеДокументаТаблицаТовары
|ИЗ
| Документ.ЗаказПоставщику.Товары КАК ТаблицаТовары
|ГДЕ
| ТаблицаТовары.Ссылка = &Ссылка
|
|ИНДЕКСИРОВАТЬ ПО
| Ссылка";
СписокЗапросов.Добавить(ТекстЗапросаТаблицаТовары);
КонецПроцедуры
Процедура ТекстЗапросаДанныеДокументаТаблицаЭтапыГрафикаОплаты(СписокЗапросов)
ТекстЗапросаТаблицаЭтапыГрафикаОплаты = "ВЫБРАТЬ
| ТаблицаЭтапыГрафикаОплаты.НомерСтроки КАК НомерСтроки,
| ТаблицаЭтапыГрафикаОплаты.Ссылка КАК Ссылка,
| ТаблицаЭтапыГрафикаОплаты.ВариантОплаты КАК ВариантОплаты,
| ТаблицаЭтапыГрафикаОплаты.ДатаПлатежа КАК ДатаПлатежа,
| ТаблицаЭтапыГрафикаОплаты.ПроцентПлатежа КАК ПроцентПлатежа,
| ТаблицаЭтапыГрафикаОплаты.СуммаПлатежа КАК СуммаПлатежа,
| ТаблицаЭтапыГрафикаОплаты.ПроцентЗалогаЗаТару КАК ПроцентЗалогаЗаТару,
| ТаблицаЭтапыГрафикаОплаты.СуммаЗалогаЗаТару КАК СуммаЗалогаЗаТару,
| ТаблицаЭтапыГрафикаОплаты.Сдвиг КАК Сдвиг,
| ТаблицаЭтапыГрафикаОплаты.ВариантОтсчета КАК ВариантОтсчета
|ПОМЕСТИТЬ ДанныеДокументаТаблицаЭтапыГрафикаОплаты
|ИЗ
| Документ.ЗаказПоставщику.ЭтапыГрафикаОплаты КАК ТаблицаЭтапыГрафикаОплаты
|ГДЕ
| ТаблицаЭтапыГрафикаОплаты.Ссылка = &Ссылка
|
|ИНДЕКСИРОВАТЬ ПО
| Ссылка";
СписокЗапросов.Добавить(ТекстЗапросаТаблицаЭтапыГрафикаОплаты);
КонецПроцедуры
Процедура СформироватьСуммыДокументаВВалютахУчета(Запрос, ТекстыЗапроса, Регистры = Неопределено, ДокументОбъект = Неопределено) Экспорт
ТекстЗапросаДанных =
"ВЫБРАТЬ
| ""Товары"" КАК ИсточникДанных,
| ЛОЖЬ КАК РаспределятьОбщуюСумму,
| ДанныеДокумента.Ссылка КАК Ссылка,
| ДанныеДокумента.Дата КАК Дата,
| ДанныеДокумента.Организация КАК Организация,
| ДанныеДокумента.Валюта КАК ВалютаДокумента,
| НЕОПРЕДЕЛЕНО КАК ВалютаВзаиморасчетов,
| ДАТАВРЕМЯ(1,1,1) КАК ПериодБазыНДС,
| ДанныеДокумента.Дата КАК ДатаКурса,
|
| ТаблицаДокумента.НомерСтроки КАК НомерСтроки,
| ТаблицаДокумента.ИдентификаторСтроки КАК ИдентификаторСтроки,
| ТаблицаДокумента.СуммаСНДС - ТаблицаДокумента.СуммаНДС КАК СуммаБезНДС,
| ТаблицаДокумента.СтавкаНДС КАК СтавкаНДС,
| ТаблицаДокумента.СуммаНДС КАК СуммаНДС,
| 0 КАК СуммаВзаиморасчетов,
| 0 КАК СуммаНДСВзаиморасчетов,
| 0 КАК СуммаБезНДСРегл,
| 0 КАК СуммаБезНДСУпр,
|
| ВЫБОР
| КОГДА ДанныеДокумента.ХозяйственнаяОперация В (
| ЗНАЧЕНИЕ(Перечисление.ХозяйственныеОперации.ПриемНаКомиссию),
| ЗНАЧЕНИЕ(Перечисление.ХозяйственныеОперации.ПриемНаХранениеСПравомПродажи))
| ТОГДА ЛОЖЬ
| КОГДА ТаблицаДокумента.НоменклатураТипНоменклатуры = ЗНАЧЕНИЕ(Перечисление.ТипыНоменклатуры.МногооборотнаяТара)
| И ДанныеДокумента.ВернутьМногооборотнуюТару
| И НЕ ДанныеДокумента.ТребуетсяЗалогЗаТару
| ТОГДА ЛОЖЬ
| ИНАЧЕ ИСТИНА
| КОНЕЦ КАК ОтражаетсяВРасчетах,
| ДанныеДокумента.ОбъектРасчетов КАК ОбъектРасчетов,
| ЛОЖЬ КАК ПересчитыватьПоДаннымРасчетов
|
|ИЗ
| ДанныеДокументаТаблицаТовары КАК ТаблицаДокумента
| ЛЕВОЕ СОЕДИНЕНИЕ ДанныеДокументаШапка КАК ДанныеДокумента
| ПО ТаблицаДокумента.Ссылка = ДанныеДокумента.Ссылка
|
|ГДЕ
| ТаблицаДокумента.Ссылка В (&Ссылка)
| И НЕ ТаблицаДокумента.Отменено
|";
Если ДокументОбъект = Неопределено Тогда
ТекстЗапросаДанных = СтрЗаменить(ТекстЗапросаДанных, "ДанныеДокументаТаблицаТовары", "Документ.ЗаказПоставщику.Товары");
ТекстЗапросаДанных = СтрЗаменить(ТекстЗапросаДанных, "ДанныеДокументаШапка", "Документ.ЗаказПоставщику");
ТекстЗапросаДанных = СтрЗаменить(ТекстЗапросаДанных, "ТаблицаДокумента.НоменклатураТипНоменклатуры", "ТаблицаДокумента.Номенклатура.ТипНоменклатуры");
КонецЕсли;
РегистрыСведений.СуммыДокументовВВалютахУчета.СформироватьПоДаннымДокумента(Запрос, ТекстыЗапроса, Регистры, ТекстЗапросаДанных);
КонецПроцедуры
Функция ТекстЗапросаТаблицаЗаказыПоставщикам(Запрос, ТекстыЗапроса, Регистры, ДокументОбъект = Неопределено)
ИмяРегистра = "ЗаказыПоставщикам";
Если НЕ ПроведениеДокументов.ТребуетсяТаблицаДляДвижений(ИмяРегистра, Регистры) Тогда
Возврат "";
КонецЕсли;
ТекстЗапроса = "
|ВЫБРАТЬ
| ТаблицаТовары.НомерСтроки КАК НомерСтроки,
| ЗНАЧЕНИЕ(ВидДвиженияНакопления.Приход) КАК ВидДвижения,
| &Период КАК Период,
| ТаблицаТовары.Ссылка КАК ЗаказПоставщику,
| ТаблицаТовары.Номенклатура КАК Номенклатура,
| ТаблицаТовары.Характеристика КАК Характеристика,
| ТаблицаТовары.КодСтроки КАК КодСтроки,
| ВЫБОР КОГДА ТаблицаТовары.НоменклатураТипНоменклатуры В
| (ЗНАЧЕНИЕ(Перечисление.ТипыНоменклатуры.Товар), ЗНАЧЕНИЕ(Перечисление.ТипыНоменклатуры.МногооборотнаяТара)) ТОГДА
| ТаблицаТовары.Склад
| ИНАЧЕ НЕОПРЕДЕЛЕНО
| КОНЕЦ КАК Склад,
| ВЫБОР КОГДА (НЕ ТаблицаТовары.Отменено)
| И &Статус В (ЗНАЧЕНИЕ(Перечисление.СтатусыЗаказовПоставщикам.Подтвержден),
| ЗНАЧЕНИЕ(Перечисление.СтатусыЗаказовПоставщикам.Закрыт)) ТОГДА
| ТаблицаТовары.Количество
| ИНАЧЕ 0
| КОНЕЦ КАК КОформлению,
| ТаблицаТовары.Количество КАК Заказано,
| НЕОПРЕДЕЛЕНО КАК ПричинаОтмены
|ИЗ
| ДанныеДокументаТаблицаТовары КАК ТаблицаТовары
|ГДЕ
| ТаблицаТовары.Ссылка = &Ссылка
|
|ОБЪЕДИНИТЬ ВСЕ
|
|ВЫБРАТЬ
| ТаблицаТовары.НомерСтроки КАК НомерСтроки,
| ЗНАЧЕНИЕ(ВидДвиженияНакопления.Приход) КАК ВидДвижения,
| &Период КАК Период,
| ТаблицаТовары.Ссылка КАК ЗаказПоставщику,
| ТаблицаТовары.Номенклатура КАК Номенклатура,
| ТаблицаТовары.Характеристика КАК Характеристика,
| ТаблицаТовары.КодСтроки КАК КодСтроки,
| ВЫБОР КОГДА ТаблицаТовары.НоменклатураТипНоменклатуры В
| (ЗНАЧЕНИЕ(Перечисление.ТипыНоменклатуры.Товар), ЗНАЧЕНИЕ(Перечисление.ТипыНоменклатуры.МногооборотнаяТара)) ТОГДА
| ТаблицаТовары.Склад
| ИНАЧЕ НЕОПРЕДЕЛЕНО
| КОНЕЦ КАК Склад,
| 0 КАК КОформлению,
| -ТаблицаТовары.Количество КАК Заказано,
| ТаблицаТовары.ПричинаОтмены КАК ПричинаОтмены
|ИЗ
| ДанныеДокументаТаблицаТовары КАК ТаблицаТовары
|ГДЕ
| ТаблицаТовары.Ссылка = &Ссылка
| И ТаблицаТовары.Отменено
|";
Если ДокументОбъект = Неопределено Тогда
ТекстЗапроса = СтрЗаменить(ТекстЗапроса, "ДанныеДокументаТаблицаТовары", "Документ.ЗаказПоставщику.Товары");
ТекстЗапроса = СтрЗаменить(ТекстЗапроса, "ТаблицаТовары.НоменклатураТипНоменклатуры", "ТаблицаТовары.Номенклатура.ТипНоменклатуры");
КонецЕсли;
ТекстыЗапроса.Добавить(ТекстЗапроса, ИмяРегистра);
Возврат ТекстЗапроса;
КонецФункции
Процедура ЗапланироватьПоступлениеТоваров(Запрос, ТекстыЗапроса, Регистры, ДокументОбъект)
Если НЕ (ДокументОбъект.Статус = Перечисления.СтатусыЗаказовПоставщикам.Подтвержден
ИЛИ ДокументОбъект.Статус = Перечисления.СтатусыЗаказовПоставщикам.Закрыт) Тогда
Возврат;
КонецЕсли;
ТекстЗапросаДокумента =
"ВЫБРАТЬ
| ИсточникДанных.Ссылка КАК Ссылка,
| НЕОПРЕДЕЛЕНО КАК Накладная,
| ЛОЖЬ КАК Исправление,
| НЕОПРЕДЕЛЕНО КАК ИсправляемыйДокумент,
| ИсточникДанных.Ссылка КАК Заказ,
| ШапкаДокумента.Договор КАК Договор,
| ШапкаДокумента.Соглашение КАК Соглашение,
| ШапкаДокумента.ВариантПриемкиТоваров КАК ВариантПриемкиТоваров,
| ИсточникДанных.ДатаПоступления КАК Дата,
| ИсточникДанных.Номенклатура КАК Номенклатура,
| ИсточникДанных.Характеристика КАК Характеристика,
| ИсточникДанных.Назначение КАК Назначение,
| 0 КАК СтатусУказанияСерий,
| ЗНАЧЕНИЕ(Справочник.СерииНоменклатуры.ПустаяСсылка) КАК Серия,
| ЛОЖЬ КАК СверхЗаказа,
| ИсточникДанных.Склад КАК Склад,
| ШапкаДокумента.Партнер КАК Отправитель,
| ШапкаДокумента.ХозяйственнаяОперация КАК ХозяйственнаяОперация,
| ИсточникДанных.Количество КАК Количество,
| ЛОЖЬ КАК ЭтоНакладная,
| ЛОЖЬ КАК ПоступлениеПоЗаказам
|ИЗ
| ДанныеДокументаТаблицаТовары КАК ИсточникДанных
| ЛЕВОЕ СОЕДИНЕНИЕ ДанныеДокументаШапка КАК ШапкаДокумента
| ПО ИсточникДанных.Ссылка = ШапкаДокумента.Ссылка
|ГДЕ
| (НЕ ИсточникДанных.СписатьНаРасходы
| ИЛИ (ИсточникДанных.Номенклатура.ТипНоменклатуры В
| (ЗНАЧЕНИЕ(Перечисление.ТипыНоменклатуры.Услуга),
| ЗНАЧЕНИЕ(Перечисление.ТипыНоменклатуры.Работа))
| И ШапкаДокумента.ДоговорВариантОформленияЗакупок = ЗНАЧЕНИЕ(Перечисление.ВариантыОформленияЗакупок.НеотфактурованныеПоставкиТоваровИУслуг)
| И ШапкаДокумента.ХозяйственнаяОперация В (ЗНАЧЕНИЕ(Перечисление.ХозяйственныеОперации.ЗакупкаУПоставщикаФактуровкаПоставки),
| ЗНАЧЕНИЕ(Перечисление.ХозяйственныеОперации.ЗакупкаВСтранахЕАЭСФактуровкаПоставки))))
| И НЕ ИсточникДанных.Отменено";
СкладыСервер.ЗапланироватьПоступлениеТоваров(Запрос, ТекстыЗапроса, Регистры, ТекстЗапросаДокумента,, Истина);
КонецПроцедуры
Функция ТекстЗапросаВременнаяТаблицаКурсыВалют(Запрос, ТекстыЗапроса)
ИмяРегистра = "ВременнаяТаблицаКурсыВалют";
ТекстЗапроса = "
|ВЫБРАТЬ
| ОтносительныеКурсыВалютСрезПоследних.Валюта КАК Валюта,
| ОтносительныеКурсыВалютСрезПоследних.КурсЧислитель КАК КурсЧислитель,
| ОтносительныеКурсыВалютСрезПоследних.КурсЗнаменатель КАК КурсЗнаменатель
|ПОМЕСТИТЬ ВременнаяТаблицаКурсыВалют
|ИЗ
| РегистрСведений.ОтносительныеКурсыВалют.СрезПоследних(&Период, БазоваяВалюта В (ВЫБРАТЬ
| БазоваяВалютаПоУмолчанию.Значение КАК Значение
| ИЗ
| Константа.БазоваяВалютаПоУмолчанию КАК БазоваяВалютаПоУмолчанию)) КАК
| ОтносительныеКурсыВалютСрезПоследних
|ИНДЕКСИРОВАТЬ ПО
| Валюта
|";
ТекстыЗапроса.Добавить(ТекстЗапроса, ИмяРегистра);
Возврат ТекстЗапроса;
КонецФункции
Функция ТекстЗапросаВременнаяТаблицаТовары(Запрос, ТекстыЗапроса)
ИмяРегистра = "ВременнаяТаблицаТовары";
ТекстЗапроса = "
|ВЫБРАТЬ
| Товары.НоменклатураПартнера КАК НоменклатураПартнера,
| Товары.Номенклатура КАК Номенклатура,
| Товары.Характеристика КАК Характеристика,
| Товары.ВидЦеныПоставщика КАК ВидЦеныПоставщика,
| Товары.Упаковка КАК Упаковка,
| Товары.СтавкаНДС КАК СтавкаНДС,
| Товары.Цена КАК Цена
|ПОМЕСТИТЬ
| ВременнаяТаблицаТовары
|ИЗ
| ДанныеДокументаТаблицаТовары КАК Товары
|ГДЕ
| &РегистрироватьЦеныПоставщика
|";
ТекстыЗапроса.Добавить(ТекстЗапроса, ИмяРегистра);
Возврат ТекстЗапроса;
КонецФункции
Функция ТекстЗапросаТоварыСРазличнымиУпаковкамиЦенами(Запрос, ТекстыЗапроса)
ИмяРегистра = "ТоварыСРазличнымиУпаковкамиЦенами";
Если НЕ ПроведениеДокументов.ЕстьТаблицаЗапроса("ВременнаяТаблицаТовары", ТекстыЗапроса) Тогда
ТекстЗапросаВременнаяТаблицаТовары(Запрос, ТекстыЗапроса);
КонецЕсли;
ТекстЗапроса = "
|ВЫБРАТЬ
| Товары.Номенклатура КАК Номенклатура,
| Товары.Характеристика КАК Характеристика,
| Товары.ВидЦеныПоставщика КАК ВидЦеныПоставщика,
| СРЕДНЕЕ(
| Товары.Цена / ВЫБОР
| КОГДА
| Товары.Упаковка <> ЗНАЧЕНИЕ(Справочник.УпаковкиЕдиницыИзмерения.ПустаяСсылка)
| ТОГДА
| &ТекстЗапросаКоэффициентУпаковки
| ИНАЧЕ
| 1
| КОНЕЦ
| ) КАК ЦенаЗаБазовуюЕдиницу,
| КОЛИЧЕСТВО(РАЗЛИЧНЫЕ Товары.Упаковка) КАК КоличествоРазличныхУпаковок
|ПОМЕСТИТЬ
| ТоварыСРазличнымиУпаковкамиЦенами
|ИЗ
| ВременнаяТаблицаТовары КАК Товары
|СГРУППИРОВАТЬ ПО
| Номенклатура,
| Характеристика,
| ВидЦеныПоставщика
|";
ТекстЗапроса = СтрЗаменить(ТекстЗапроса,
"&ТекстЗапросаКоэффициентУпаковки",
Справочники.УпаковкиЕдиницыИзмерения.ТекстЗапросаКоэффициентаУпаковки(
"Товары.Упаковка",
"Товары.Номенклатура"));
ТекстыЗапроса.Добавить(ТекстЗапроса, ИмяРегистра);
Возврат ТекстЗапроса;
КонецФункции
Функция ТекстЗапросаТаблицаЦеныНоменклатурыПоставщиков(Запрос, ТекстыЗапроса, Регистры, ДокументОбъект)
ИмяРегистра = "ЦеныНоменклатурыПоставщиков";
Если НЕ ПроведениеДокументов.ТребуетсяТаблицаДляДвижений(ИмяРегистра, Регистры) Тогда
Возврат "";
КонецЕсли;
Если НЕ (ДокументОбъект.РегистрироватьЦеныПоставщика) Тогда
Возврат "";
КонецЕсли;
Если НЕ ПроведениеДокументов.ЕстьТаблицаЗапроса("ВременнаяТаблицаКурсыВалют", ТекстыЗапроса) Тогда
ТекстЗапросаВременнаяТаблицаКурсыВалют(Запрос, ТекстыЗапроса);
КонецЕсли;
Если НЕ ПроведениеДокументов.ЕстьТаблицаЗапроса("ВременнаяТаблицаТовары", ТекстыЗапроса) Тогда
ТекстЗапросаВременнаяТаблицаТовары(Запрос, ТекстыЗапроса);
КонецЕсли;
Если НЕ ПроведениеДокументов.ЕстьТаблицаЗапроса("ТоварыСРазличнымиУпаковкамиЦенами", ТекстыЗапроса) Тогда
ТекстЗапросаТоварыСРазличнымиУпаковкамиЦенами(Запрос, ТекстыЗапроса);
КонецЕсли;
ТекстЗапроса = "
|ВЫБРАТЬ
| МАКСИМУМ(Товары.НоменклатураПартнера) КАК НоменклатураПартнера,
| Товары.Номенклатура КАК Номенклатура,
| Товары.Характеристика КАК Характеристика,
| Товары.ВидЦеныПоставщика КАК ВидЦеныПоставщика,
| Товары.ВидЦеныПоставщика.Валюта КАК Валюта,
| &Период КАК Период,
| &Партнер КАК Партнер,
| МИНИМУМ(ВЫБОР
| КОГДА
| ТоварыСРазличнымиУпаковкамиЦенами.КоличествоРазличныхУпаковок > 1
| ТОГДА
| ЗНАЧЕНИЕ(Справочник.УпаковкиЕдиницыИзмерения.ПустаяСсылка)
| ИНАЧЕ
| Товары.Упаковка
| КОНЕЦ
| ) КАК Упаковка,
| ВЫРАЗИТЬ(СРЕДНЕЕ(ВЫБОР
| КОГДА
| ТоварыСРазличнымиУпаковкамиЦенами.КоличествоРазличныхУпаковок > 1
| ТОГДА
| ТоварыСРазличнымиУпаковкамиЦенами.ЦенаЗаБазовуюЕдиницу
| ИНАЧЕ
| Товары.Цена
| КОНЕЦ
| * ВЫБОР
| КОГДА
| &ЦенаВключаетНДС И НЕ Товары.ВидЦеныПоставщика.ЦенаВключаетНДС
| ТОГДА ВЫБОР
| КОГДА Товары.СтавкаНДС = ЗНАЧЕНИЕ(Справочник.СтавкиНДС.ПустаяСсылка)
| ТОГДА 1
| ИНАЧЕ 100 / (100 + Товары.СтавкаНДС.Ставка)
| КОНЕЦ
| КОГДА НЕ &ЦенаВключаетНДС
| И Товары.ВидЦеныПоставщика.ЦенаВключаетНДС
| ТОГДА (Товары.СтавкаНДС.Ставка + 100) / 100
| ИНАЧЕ 1
| КОНЕЦ
| * ВЫБОР
| КОГДА
| &Валюта <> Товары.ВидЦеныПоставщика.Валюта
| ТОГДА
| ВЫБОР
| КОГДА ЕСТЬNULL(КурсыВалютыЦены.КурсЗнаменатель, 0) > 0
| И ЕСТЬNULL(КурсыВалютыЦены.КурсЧислитель, 0) > 0
| И ЕСТЬNULL(КурсыВалюты.КурсЗнаменатель, 0) > 0
| И ЕСТЬNULL(КурсыВалюты.КурсЧислитель, 0) > 0
| ТОГДА
| (КурсыВалюты.КурсЧислитель * КурсыВалютыЦены.КурсЗнаменатель)
| / (КурсыВалютыЦены.КурсЧислитель * КурсыВалюты.КурсЗнаменатель)
| ИНАЧЕ
| 0
| КОНЕЦ
| ИНАЧЕ
| 1
| КОНЕЦ) КАК ЧИСЛО(31,2)) КАК Цена
|ИЗ
| ВременнаяТаблицаТовары КАК Товары
|ЛЕВОЕ СОЕДИНЕНИЕ
| ТоварыСРазличнымиУпаковкамиЦенами КАК ТоварыСРазличнымиУпаковкамиЦенами
|ПО
| Товары.Номенклатура = ТоварыСРазличнымиУпаковкамиЦенами.Номенклатура
| И Товары.Характеристика = ТоварыСРазличнымиУпаковкамиЦенами.Характеристика
| И Товары.ВидЦеныПоставщика = ТоварыСРазличнымиУпаковкамиЦенами.ВидЦеныПоставщика
|ЛЕВОЕ СОЕДИНЕНИЕ
| ВременнаяТаблицаКурсыВалют КАК КурсыВалюты
|ПО
| КурсыВалюты.Валюта = &Валюта
|ЛЕВОЕ СОЕДИНЕНИЕ
| ВременнаяТаблицаКурсыВалют КАК КурсыВалютыЦены
|ПО
| КурсыВалютыЦены.Валюта = Товары.ВидЦеныПоставщика.Валюта
|ГДЕ
| НЕ Товары.ВидЦеныПоставщика = ЗНАЧЕНИЕ(Справочник.ВидыЦенПоставщиков.ПустаяСсылка)
|СГРУППИРОВАТЬ ПО
| Товары.Номенклатура,
| Товары.Характеристика,
| Товары.ВидЦеныПоставщика,
| Товары.ВидЦеныПоставщика.Валюта
|";
ТекстыЗапроса.Добавить(ТекстЗапроса, ИмяРегистра);
Возврат ТекстЗапроса;
КонецФункции
Функция АдаптированныйТекстЗапросаДвиженийПоРегистру(ИмяРегистра) Экспорт
Запрос = Новый Запрос();
ТекстыЗапроса = Новый СписокЗначений;
ПолноеИмяДокумента = "Документ.ЗаказПоставщику";
СинонимТаблицыДокумента = "";
ВЗапросеЕстьИсточник = Истина;
ЗначенияПараметров = Новый Структура();
ЗначенияПараметров.Вставить("ВариантПриемкиТоваровКонстанта", Константы.ВариантПриемкиТоваров.Получить());
ЗначенияПараметров.Вставить("ИдентификаторМетаданных",
ОбщегоНазначения.ИдентификаторОбъектаМетаданных(ПолноеИмяДокумента));
ПереопределениеРасчетаПараметров = Новый Структура;
ПереопределениеРасчетаПараметров.Вставить("ИнформацияПоДоговору", """""");
ПереопределениеРасчетаПараметров.Вставить("НомерПоДаннымПоставщика", """""");
ПереопределениеРасчетаПараметров.Вставить("ДокументПоступления",
"ВЫБОР
|КОГДА ЕСТЬNULL(ТаблицаТовары.Ссылка.Договор.ВариантПриемкиТоваров, ЗНАЧЕНИЕ(Перечисление.ВариантыПриемкиТоваров.ПустаяСсылка)) = ЗНАЧЕНИЕ(Перечисление.ВариантыПриемкиТоваров.ПустаяСсылка)
| И &ВариантПриемкиТоваровКонстанта В (ЗНАЧЕНИЕ(Перечисление.ВариантыПриемкиТоваров.ПоДоговорамБезЗаказовИНакладных),
| ЗНАЧЕНИЕ(Перечисление.ВариантыПриемкиТоваров.ПоДоговорамПослеЗаказовИлиНакладных))
| ИЛИ ТаблицаТовары.Ссылка.Договор.ВариантПриемкиТоваров В (ЗНАЧЕНИЕ(Перечисление.ВариантыПриемкиТоваров.ПоДоговорамБезЗаказовИНакладных),
| ЗНАЧЕНИЕ(Перечисление.ВариантыПриемкиТоваров.ПоДоговорамПослеЗаказовИлиНакладных))
|ТОГДА
| ТаблицаТовары.Ссылка.Договор
|КОГДА ЕСТЬNULL(ТаблицаТовары.Ссылка.Договор.ВариантПриемкиТоваров, ЗНАЧЕНИЕ(Перечисление.ВариантыПриемкиТоваров.ПустаяСсылка)) = ЗНАЧЕНИЕ(Перечисление.ВариантыПриемкиТоваров.ПустаяСсылка)
| И &ВариантПриемкиТоваровКонстанта = ЗНАЧЕНИЕ(Перечисление.ВариантыПриемкиТоваров.РазделенаПоЗаказамИНакладным)
| ИЛИ ТаблицаТовары.Ссылка.Договор.ВариантПриемкиТоваров = ЗНАЧЕНИЕ(Перечисление.ВариантыПриемкиТоваров.РазделенаПоЗаказамИНакладным)
|ТОГДА
| ТаблицаТовары.Ссылка
|
|КОГДА ЕСТЬNULL(ТаблицаТовары.Ссылка.Соглашение.ВариантПриемкиТоваров, ЗНАЧЕНИЕ(Перечисление.ВариантыПриемкиТоваров.ПустаяСсылка)) = ЗНАЧЕНИЕ(Перечисление.ВариантыПриемкиТоваров.ПустаяСсылка)
| И &ВариантПриемкиТоваровКонстанта В (ЗНАЧЕНИЕ(Перечисление.ВариантыПриемкиТоваров.НеРазделенаПоЗаказамИНакладным),
| ЗНАЧЕНИЕ(Перечисление.ВариантыПриемкиТоваров.МожетПроисходитьБезЗаказовИНакладных))
| ИЛИ ТаблицаТовары.Ссылка.Соглашение.ВариантПриемкиТоваров В (ЗНАЧЕНИЕ(Перечисление.ВариантыПриемкиТоваров.НеРазделенаПоЗаказамИНакладным),
| ЗНАЧЕНИЕ(Перечисление.ВариантыПриемкиТоваров.МожетПроисходитьБезЗаказовИНакладных))
|ТОГДА
| ТаблицаТовары.Ссылка.Соглашение
|КОГДА ЕСТЬNULL(ТаблицаТовары.Ссылка.Соглашение.ВариантПриемкиТоваров, ЗНАЧЕНИЕ(Перечисление.ВариантыПриемкиТоваров.ПустаяСсылка)) = ЗНАЧЕНИЕ(Перечисление.ВариантыПриемкиТоваров.ПустаяСсылка)
| И &ВариантПриемкиТоваровКонстанта = ЗНАЧЕНИЕ(Перечисление.ВариантыПриемкиТоваров.РазделенаПоЗаказамИНакладным)
| ИЛИ ТаблицаТовары.Ссылка.Соглашение.ВариантПриемкиТоваров = ЗНАЧЕНИЕ(Перечисление.ВариантыПриемкиТоваров.РазделенаПоЗаказамИНакладным)
|ТОГДА
| ТаблицаТовары.Ссылка
|
|ИНАЧЕ
| НЕОПРЕДЕЛЕНО
|КОНЕЦ");
ПереопределениеРасчетаПараметров.Вставить("НакладнаяЯвляетсяРаспоряжением",
"ТаблицаТовары.Ссылка.ВариантПриемкиТоваров = ЗНАЧЕНИЕ(Перечисление.ВариантыПриемкиТоваров.РазделенаТолькоПоНакладным)");
ПереопределениеРасчетаПараметров.Вставить("ВариантПриемкиТоваров",
"ТаблицаТовары.Ссылка.ВариантПриемкиТоваров");
Если ИмяРегистра = "ЗаказыПоставщикам" Тогда
ТекстЗапроса = ТекстЗапросаТаблицаЗаказыПоставщикам(Запрос, ТекстыЗапроса, ИмяРегистра);
СинонимТаблицыДокумента = "ТаблицаТовары";
ИначеЕсли ИмяРегистра = "РеестрДокументов" Тогда
ТекстЗапроса = ТекстЗапросаТаблицаРеестрДокументов(Запрос, ТекстыЗапроса, ИмяРегистра);
ВЗапросеЕстьИсточник = Ложь;
Иначе
ТекстИсключения = НСтр("ru = 'В документе %ПолноеИмяДокумента% не реализована адаптация текста запроса формирования движений по регистру %ИмяРегистра%.'");
ТекстИсключения = СтрЗаменить(ТекстИсключения, "%ПолноеИмяДокумента%", ПолноеИмяДокумента);
ТекстИсключения = СтрЗаменить(ТекстИсключения, "%ИмяРегистра%", ИмяРегистра);
ВызватьИсключение ТекстИсключения;
КонецЕсли;
Если ИмяРегистра = "РеестрДокументов" Тогда
ТекстЗапроса = ОбновлениеИнформационнойБазыУТ.АдаптироватьЗапросПроведенияПоНезависимомуРегистру(
ТекстЗапроса,
ПолноеИмяДокумента,
СинонимТаблицыДокумента,
ВЗапросеЕстьИсточник,
ПереопределениеРасчетаПараметров);
Иначе
ТекстЗапроса = ОбновлениеИнформационнойБазыУТ.АдаптироватьЗапросМеханизмаПроведения(
ТекстЗапроса,
ПолноеИмяДокумента,
СинонимТаблицыДокумента,
ПереопределениеРасчетаПараметров);
КонецЕсли;
Результат = ОбновлениеИнформационнойБазыУТ.РезультатАдаптацииЗапроса();
Результат.ЗначенияПараметров = ЗначенияПараметров;
Результат.ТекстЗапроса = ТекстЗапроса;
Возврат Результат;
КонецФункции
Функция ТекстЗапросаТаблицаРеестрДокументов(Запрос, ТекстыЗапроса, Регистры)
ИмяРегистра = "РеестрДокументов";
Если НЕ ПроведениеДокументов.ТребуетсяТаблицаДляДвижений(ИмяРегистра, Регистры) Тогда
Возврат "";
КонецЕсли;
ТекстЗапроса =
"ВЫБРАТЬ
| &Ссылка КАК Ссылка,
| &Период КАК ДатаДокументаИБ,
| &Номер КАК НомерДокументаИБ,
| &ИдентификаторМетаданных КАК ТипСсылки,
| &Организация КАК Организация,
| &ХозяйственнаяОперация КАК ХозяйственнаяОперация,
| &Партнер КАК Партнер,
| &Контрагент КАК Контрагент,
| &Договор КАК Договор,
| &НаправлениеДеятельности КАК НаправлениеДеятельности,
| &Склад КАК МестоХранения,
| &Подразделение КАК Подразделение,
| &Менеджер КАК Ответственный,
| &Автор КАК Автор,
| &Комментарий КАК Комментарий,
| &Валюта КАК Валюта,
| &СуммаДокумента КАК Сумма,
| &Статус КАК Статус,
| &Проведен КАК Проведен,
| &ПометкаУдаления КАК ПометкаУдаления,
| ЛОЖЬ КАК ДополнительнаяЗапись,
| &ИнформацияПоДоговору КАК Дополнительно,
| &ДатаПоДаннымПоставщика КАК ДатаПервичногоДокумента,
| ЛОЖЬ КАК СторноИсправление,
| НЕОПРЕДЕЛЕНО КАК СторнируемыйДокумент,
| НЕОПРЕДЕЛЕНО КАК ИсправляемыйДокумент,
| &НомерПоДаннымПоставщика КАК НомерПервичногоДокумента,
| &Период КАК ДатаОтраженияВУчете,
| &Приоритет КАК Приоритет";
ТекстыЗапроса.Добавить(ТекстЗапроса, ИмяРегистра);
Возврат ТекстЗапроса;
КонецФункции
Процедура ДобавитьТекстыОтраженияВзаиморасчетов(Запрос, ТекстыЗапроса, Регистры, ДокументОбъект)
#Область НаправленияДеятельности
ИмяРегистра = "ВременнаяТаблицаНаправленияДеятельности";
ТекстЗапросаНаправленияДеятельности =
"ВЫБРАТЬ
| ДанныеДокументаШапка.ОбъектРасчетов КАК ОбъектРасчетов
|ИЗ
| ДанныеДокументаШапка КАК ДанныеДокументаШапка";
ТекстЗапросаНаправленияДеятельности = ВзаиморасчетыСервер.ПолучитьТаблицуНаправленийДеятельности(ТекстЗапросаНаправленияДеятельности);
ТекстыЗапроса.Добавить(ТекстЗапросаНаправленияДеятельности, ИмяРегистра);
#КонецОбласти
Если НЕ (ДокументОбъект.Статус <> Перечисления.СтатусыЗаказовПоставщикам.НеСогласован
И НЕ(ДокументОбъект.ХозяйственнаяОперация = Перечисления.ХозяйственныеОперации.ПриемНаКомиссию
ИЛИ ДокументОбъект.ХозяйственнаяОперация = Перечисления.ХозяйственныеОперации.ПриемНаХранениеСПравомПродажи)) Тогда
ТекстПланыОплат = "";
Иначе
ТекстПланыОплат =
"ВЫБРАТЬ
| Таблица.Ссылка КАК Ссылка,
| ДанныеДокументаШапка.Организация КАК Организация,
| ДанныеДокументаШапка.Партнер КАК Партнер,
|
| ДанныеДокументаШапка.ОбъектРасчетов КАК ОбъектРасчетов,
| ДанныеДокументаШапка.Дата КАК ДатаРегистратора,
| ДанныеДокументаШапка.Номер КАК НомерРегистратора,
| ДанныеДокументаШапка.ПорядокРасчетов КАК ПорядокРасчетов,
| ДанныеДокументаШапка.Валюта КАК ВалютаВзаиморасчетов,
| ДанныеДокументаШапка.Валюта КАК ВалютаДокумента,
| ЗНАЧЕНИЕ(Перечисление.ХозяйственныеОперации.ПланированиеПоЗаказуПоставщику) КАК ХозяйственнаяОперация,
| ДанныеДокументаШапка.ФормаОплаты КАК ФормаОплаты,
|
| Таблица.ДатаПлатежа КАК ДатаПлатежа,
| Таблица.ВариантОплаты КАК ВариантОплаты,
| ВЫБОР КОГДА ДанныеДокументаШапка.ТребуетсяЗалогЗаТару ТОГДА
| Таблица.СуммаПлатежа + Таблица.СуммаЗалогаЗаТару
| ИНАЧЕ
| Таблица.СуммаПлатежа
| КОНЕЦ КАК КОплате
|
|ИЗ
| ДанныеДокументаТаблицаЭтапыГрафикаОплаты КАК Таблица
| ЛЕВОЕ СОЕДИНЕНИЕ ДанныеДокументаШапка КАК ДанныеДокументаШапка
| ПО Таблица.Ссылка = ДанныеДокументаШапка.Ссылка";
КонецЕсли;
Если НЕ (ДокументОбъект.ХозяйственнаяОперация <> Перечисления.ХозяйственныеОперации.ПриемНаХранениеСПравомПродажи
И (ДокументОбъект.Статус = Перечисления.СтатусыЗаказовПоставщикам.Согласован
Или ДокументОбъект.Статус = Перечисления.СтатусыЗаказовПоставщикам.Подтвержден
Или ДокументОбъект.Статус = Перечисления.СтатусыЗаказовПоставщикам.Закрыт)) Тогда
ТекстПланыПоставок = "";
Иначе
ТекстПланыПоставок =
"ВЫБРАТЬ
| Таблица.Ссылка КАК Ссылка,
| ДанныеДокументаШапка.Организация КАК Организация,
| ДанныеДокументаШапка.Партнер КАК Партнер,
|
| ДанныеДокументаШапка.ОбъектРасчетов КАК ОбъектРасчетов,
| ДанныеДокументаШапка.Дата КАК ДатаРегистратора,
| ДанныеДокументаШапка.Номер КАК НомерРегистратора,
| ДанныеДокументаШапка.ПорядокРасчетов КАК ПорядокРасчетов,
| ДанныеДокументаШапка.Валюта КАК ВалютаВзаиморасчетов,
| ДанныеДокументаШапка.Валюта КАК ВалютаДокумента,
| ЗНАЧЕНИЕ(Перечисление.ХозяйственныеОперации.ПланированиеПоЗаказуПоставщику) КАК ХозяйственнаяОперация,
|
| Таблица.ДатаПоступления КАК ДатаПоступления,
| Таблица.СуммаСНДС КАК УвеличитьКПоступлению
|ИЗ
| ДанныеДокументаТаблицаТовары КАК Таблица
| ЛЕВОЕ СОЕДИНЕНИЕ ДанныеДокументаШапка КАК ДанныеДокументаШапка
| ПО Таблица.Ссылка = ДанныеДокументаШапка.Ссылка
|ГДЕ
| НЕ Таблица.Отменено
| И (Таблица.НоменклатураТипНоменклатуры <> ЗНАЧЕНИЕ(Перечисление.ТипыНоменклатуры.МногооборотнаяТара)
| ИЛИ ДанныеДокументаШапка.ТребуетсяЗалогЗаТару
| ИЛИ НЕ ДанныеДокументаШапка.ВернутьМногооборотнуюТару)";
КонецЕсли;
ВзаиморасчетыСервер.ПроведениеЗаказаПоставщику(Запрос, ТекстыЗапроса, Регистры, ТекстПланыОплат, ТекстПланыПоставок);
ВзаиморасчетыСервер.ПроведениеРасчетыСПоставщикамиПланОплат(Запрос, ТекстыЗапроса, Регистры, ТекстПланыОплат);
ВзаиморасчетыСервер.ПроведениеРасчетыСПоставщикамиПланПоставок(Запрос, ТекстыЗапроса, Регистры, ТекстПланыПоставок);
КонецПроцедуры
Процедура ОтразитьРаспределениеЗапасовДвижения(Запрос, ТекстыЗапроса, Регистры)
ТекстЗапросаТабЧасть =
"ВЫБРАТЬ
| ТабЧасть.Ссылка КАК Ссылка,
| ТабЧасть.Ссылка.Дата КАК Период,
| ТабЧасть.Номенклатура КАК Номенклатура,
| ТабЧасть.Характеристика КАК Характеристика,
|
| ВЫБОР КОГДА ТабЧасть.Номенклатура.ТипНоменклатуры = ЗНАЧЕНИЕ(Перечисление.ТипыНоменклатуры.Работа) ТОГДА
| ТабЧасть.Подразделение
| ИНАЧЕ
| ТабЧасть.Склад
| КОНЕЦ КАК Склад,
|
| ТабЧасть.Назначение КАК Назначение,
| ТабЧасть.Количество КАК Количество,
|
| ВЫБОР
| КОГДА ТабЧасть.Номенклатура.ТипНоменклатуры = ЗНАЧЕНИЕ(Перечисление.ТипыНоменклатуры.Работа)
| И ТабЧасть.Ссылка.ХозяйственнаяОперация В(
| ЗНАЧЕНИЕ(Перечисление.ХозяйственныеОперации.ЗакупкаУПоставщикаФактуровкаПоставки),
| ЗНАЧЕНИЕ(Перечисление.ХозяйственныеОперации.ЗакупкаВСтранахЕАЭСФактуровкаПоставки))
| ИЛИ ТабЧасть.Номенклатура.ТипНоменклатуры В(
| ЗНАЧЕНИЕ(Перечисление.ТипыНоменклатуры.Товар),
| ЗНАЧЕНИЕ(Перечисление.ТипыНоменклатуры.МногооборотнаяТара))
| И ТабЧасть.Склад.ИспользоватьОрдернуюСхемуПриПоступлении
| И ТабЧасть.ДатаПоступления >= ТабЧасть.Склад.ДатаНачалаОрдернойСхемыПриПоступлении
| ИЛИ ТабЧасть.Номенклатура.ТипНоменклатуры В(
| ЗНАЧЕНИЕ(Перечисление.ТипыНоменклатуры.Товар),
| ЗНАЧЕНИЕ(Перечисление.ТипыНоменклатуры.МногооборотнаяТара))
| И ТабЧасть.Ссылка.ХозяйственнаяОперация В(
| ЗНАЧЕНИЕ(Перечисление.ХозяйственныеОперации.ЗакупкаУПоставщикаТоварыВПути),
| ЗНАЧЕНИЕ(Перечисление.ХозяйственныеОперации.ЗакупкаУПоставщикаФактуровкаПоставки),
| ЗНАЧЕНИЕ(Перечисление.ХозяйственныеОперации.ЗакупкаВСтранахЕАЭСТоварыВПути),
| ЗНАЧЕНИЕ(Перечисление.ХозяйственныеОперации.ЗакупкаВСтранахЕАЭСФактуровкаПоставки),
| ЗНАЧЕНИЕ(Перечисление.ХозяйственныеОперации.ЗакупкаПоИмпортуТоварыВПути))
| ТОГДА
| ВЫБОР
| КОГДА
| ТабЧасть.Ссылка.ВариантПриемкиТоваров В(
| ЗНАЧЕНИЕ(Перечисление.ВариантыПриемкиТоваров.НеРазделенаПоЗаказамИНакладным),
| ЗНАЧЕНИЕ(Перечисление.ВариантыПриемкиТоваров.МожетПроисходитьБезЗаказовИНакладных),
| ЗНАЧЕНИЕ(Перечисление.ВариантыПриемкиТоваров.НеРазделенаПоНакладным))
| ТОГДА ТабЧасть.Ссылка.Соглашение
| КОГДА ТабЧасть.Ссылка.ВариантПриемкиТоваров В(
| ЗНАЧЕНИЕ(Перечисление.ВариантыПриемкиТоваров.ПоДоговорамБезЗаказовИНакладных),
| ЗНАЧЕНИЕ(Перечисление.ВариантыПриемкиТоваров.ПоДоговорамПослеЗаказовИлиНакладных),
| ЗНАЧЕНИЕ(Перечисление.ВариантыПриемкиТоваров.ПоДоговорамПослеНакладных))
| ТОГДА ТабЧасть.Ссылка.Договор
| ИНАЧЕ ТабЧасть.Ссылка
| КОНЕЦ
| ИНАЧЕ ТабЧасть.Ссылка
| КОНЕЦ КАК Заказ,
|
| ТабЧасть.ДатаПоступления КАК ДатаПоступления,
|
| ТабЧасть.Ссылка.Статус В(
| ЗНАЧЕНИЕ(Перечисление.СтатусыЗаказовПоставщикам.Подтвержден),
| ЗНАЧЕНИЕ(Перечисление.СтатусыЗаказовПоставщикам.Закрыт)
| ) КАК ДоступенДляРасхода,
|
| ЛОЖЬ КАК ПоГрафику,
| НЕОПРЕДЕЛЕНО КАК РаспоряжениеВГрафике,
| 0 КАК КоличествоВГрафике
|ИЗ
| Документ.ЗаказПоставщику.Товары КАК ТабЧасть
|ГДЕ
| НЕ ТабЧасть.СписатьНаРасходы
| И НЕ ТабЧасть.Отменено";
РаспределениеЗапасовДвижения.ЗапланироватьПриходЗапаса(Запрос, ТекстыЗапроса, Регистры, ТекстЗапросаТабЧасть, Ложь);
КонецПроцедуры
#КонецОбласти
#Область Печать
Процедура ДобавитьКомандыПечати(КомандыПечати) Экспорт
КомандаПечати = КомандыПечати.Добавить();
КомандаПечати.МенеджерПечати = "Обработка.ПечатьЗаказовНаТоварыУслуги";
КомандаПечати.Идентификатор = "ЗаказПоставщику";
КомандаПечати.Представление = НСтр("ru = 'Заказ поставщику'");
КомандаПечати.ПроверкаПроведенияПередПечатью = Истина;
КомандаПечати.ДополнительныеПараметры.Вставить("Тип", "ЗаказПоставщику");
Если ПолучитьФункциональнуюОпцию("ИспользоватьНоменклатуруПартнеров") Тогда
КомандаПечати = КомандыПечати.Добавить();
КомандаПечати.МенеджерПечати = "Обработка.ПечатьЗаказовНаТоварыУслуги";
КомандаПечати.Идентификатор = "ЗаказПоставщику";
КомандаПечати.Представление = НСтр("ru = 'Заказ поставщику по данным поставщика'");
КомандаПечати.ПроверкаПроведенияПередПечатью = Истина;
КомандаПечати.ДополнительныеПараметры.Вставить("Тип", "ЗаказПоставщикуПоДаннымПоставщика");
КонецЕсли;
КонецПроцедуры
Функция ПолучитьДанныеДляПечатнойФормыЗаказаНаТоварыУслуги(МассивОбъектов, ПараметрыПечати, КодЯзыка = Неопределено) Экспорт
Запрос = Новый Запрос();
ТекстЗапроса =
"ВЫБРАТЬ
| Документы.Ссылка КАК Ссылка,
| Документы.Номер КАК Номер,
| Документы.Дата КАК Дата,
| Документы.Организация КАК Организация,
| Документы.Организация КАК Заказчик,
|
| ВЫБОР КОГДА
| Документы.НалогообложениеНДС В (ЗНАЧЕНИЕ(Перечисление.ТипыНалогообложенияНДС.ПродажаОблагаетсяНДС),
| ЗНАЧЕНИЕ(Перечисление.ТипыНалогообложенияНДС.ЭлектронныеУслуги))
| ТОГДА
| ИСТИНА
| ИНАЧЕ
| ЛОЖЬ
| КОНЕЦ КАК УчитыватьНДС,
| Документы.ЦенаВключаетНДС КАК ЦенаВключаетНДС,
| Документы.НалогообложениеНДС = ЗНАЧЕНИЕ(Перечисление.ТипыНалогообложенияНДС.ОблагаетсяНДСУПокупателя) КАК ОперацияОблагаетсяНДСУПокупателя,
|
| Документы.Организация.Префикс КАК Префикс,
| Документы.Контрагент КАК Контрагент,
| Документы.Контрагент КАК Исполнитель,
| Документы.БанковскийСчет КАК БанковскийСчет,
| Документы.БанковскийСчет.ТекстКорреспондента КАК БанковскийСчетТекстКорреспондента,
| Документы.Валюта КАК Валюта,
| Документы.Менеджер.ФизическоеЛицо КАК Менеджер,
| Документы.ДополнительнаяИнформация КАК ДополнительнаяИнформация,
|
| ВЫБОР Документы.СпособДоставки
| КОГДА ЗНАЧЕНИЕ(Перечисление.СпособыДоставки.СиламиПоставщикаДоНашегоСклада) ТОГДА
| Документы.АдресДоставкиДляПоставщика
| КОГДА ЗНАЧЕНИЕ(Перечисление.СпособыДоставки.СиламиПеревозчикаДоНашегоСклада) ТОГДА
| Документы.АдресДоставкиДляПоставщика
| КОГДА ЗНАЧЕНИЕ(Перечисление.СпособыДоставки.СиламиПеревозчикаДоПунктаПередачи) ТОГДА
| Документы.АдресДоставкиПеревозчика
| ИНАЧЕ
| """"
| КОНЕЦ КАК АдресДоставки,
|
| НЕОПРЕДЕЛЕНО КАК Грузоотправитель,
| НЕОПРЕДЕЛЕНО КАК Грузополучатель,
| ЛОЖЬ КАК ПоказыватьНДСВСтроках,
| ИСТИНА КАК ИспользоватьАвтоСкидки,
| &Тип КАК Тип,
| &ПредставлениеДокумента КАК ПредставлениеДокумента,
| &ПредставлениеВОшибке КАК ПредставлениеВОшибке
|
|ИЗ
| Документ.ЗаказПоставщику КАК Документы
|
|ГДЕ
| Документы.Ссылка В(&МассивОбъектов)
|
|УПОРЯДОЧИТЬ ПО
| Документы.МоментВремени
|;
|
|
|ВЫБРАТЬ
| НЕОПРЕДЕЛЕНО КАК Ссылка,
| НЕОПРЕДЕЛЕНО КАК НомерСтроки,
| НЕОПРЕДЕЛЕНО КАК ДатаПлатежа,
| НЕОПРЕДЕЛЕНО КАК ВариантОплаты,
| НЕОПРЕДЕЛЕНО КАК ПроцентПлатежа,
| НЕОПРЕДЕЛЕНО КАК СуммаПлатежа
|;
|
|
|ВЫБРАТЬ
| Товары.Ссылка КАК Ссылка,
| Товары.НомерСтроки КАК НомерСтроки,
| Товары.НоменклатураПартнера.Наименование КАК НаименованиеНоменклатурыИсполнителя,
| Товары.НоменклатураПартнера.Код КАК КодИсполнителя,
| Товары.НоменклатураПартнера.Артикул КАК АртикулИсполнителя,
| Товары.ВидЦеныПоставщика КАК ВидЦеныИсполнителя,
| Товары.Номенклатура КАК Номенклатура,
| Товары.Номенклатура.Код КАК Код,
| Товары.Номенклатура.Артикул КАК Артикул,
| ЕСТЬNULL(НоменклатураПредставления.НаименованиеПолное, Товары.Номенклатура.НаименованиеПолное) КАК НаименованиеПолное,
| Товары.ДатаПоступления КАК ДатаПоступления,
| ЕСТЬNULL(ХарактеристикиНоменклатурыПредставления.НаименованиеПолное, ЕСТЬNULL(Товары.Характеристика.НаименованиеПолное, """")) КАК Характеристика,
| """" КАК Содержание,
|
| Товары.КоличествоУпаковок КАК Количество,
|
| Товары.Цена КАК Цена,
| Товары.СуммаРучнойСкидки КАК СуммаСкидки,
| Товары.Сумма + Товары.СуммаРучнойСкидки КАК СуммаБезСкидки,
| Товары.Сумма КАК Сумма,
| Товары.СтавкаНДС КАК СтавкаНДС,
| Товары.СуммаНДС КАК СуммаНДС,
|
| ВЫБОР КОГДА Товары.Упаковка = ЗНАЧЕНИЕ(Справочник.УпаковкиЕдиницыИзмерения.ПустаяСсылка) ТОГДА
| ПРЕДСТАВЛЕНИЕ(Товары.Номенклатура.ЕдиницаИзмерения)
| ИНАЧЕ
| ПРЕДСТАВЛЕНИЕ(Товары.Упаковка)
| КОНЕЦ КАК ЕдиницаИзмерения,
|
| ВЫБОР КОГДА ЕСТЬNULL(&ТекстЗапросаКоэффициентУпаковки, 1) = 1 ТОГДА
| НЕОПРЕДЕЛЕНО
| ИНАЧЕ
| Товары.Упаковка.Наименование
| КОНЕЦ КАК Упаковка,
|
| ВЫБОР КОГДА Товары.Ссылка.ВернутьМногооборотнуюТару
| И Товары.Номенклатура.ТипНоменклатуры = ЗНАЧЕНИЕ(Перечисление.ТипыНоменклатуры.МногооборотнаяТара) ТОГДА
| ИСТИНА
| ИНАЧЕ
| ЛОЖЬ
| КОНЕЦ КАК ЭтоВозвратнаяТара
|
|ИЗ
| Документ.ЗаказПоставщику.Товары КАК Товары
| ЛЕВОЕ СОЕДИНЕНИЕ Справочник.Номенклатура.Представления КАК НоменклатураПредставления
| ПО (Товары.Номенклатура = НоменклатураПредставления.Ссылка
| И НоменклатураПредставления.КодЯзыка = &КодЯзыка)
| ЛЕВОЕ СОЕДИНЕНИЕ Справочник.ХарактеристикиНоменклатуры.Представления КАК ХарактеристикиНоменклатурыПредставления
| ПО (Товары.Характеристика = ХарактеристикиНоменклатурыПредставления.Ссылка
| И ХарактеристикиНоменклатурыПредставления.КодЯзыка = &КодЯзыка)
|
|ГДЕ
| Товары.Ссылка В(&МассивОбъектов)
| И Товары.Отменено = ЛОЖЬ
|
|УПОРЯДОЧИТЬ ПО
| НомерСтроки";
ТекстЗапроса = СтрЗаменить(ТекстЗапроса,
"&ТекстЗапросаКоэффициентУпаковки",
Справочники.УпаковкиЕдиницыИзмерения.ТекстЗапросаКоэффициентаУпаковки(
"Товары.Упаковка",
"Товары.Номенклатура"));
Запрос.Текст = ТекстЗапроса;
Запрос.УстановитьПараметр("МассивОбъектов", МассивОбъектов);
Запрос.УстановитьПараметр("Тип", ПараметрыПечати["Тип"]);
Запрос.УстановитьПараметр("ПредставлениеДокумента", НСтр("ru = 'Заказ поставщику'", ОбщегоНазначения.КодОсновногоЯзыка()));
Запрос.УстановитьПараметр("ПредставлениеВОшибке", Метаданные.Документы.ЗаказПоставщику.Представление());
Запрос.УстановитьПараметр("КодЯзыка", КодЯзыка);
ПакетРезультатовЗапроса = Запрос.ВыполнитьПакет();
СтруктураДанныхДляПечати = Новый Структура;
СтруктураДанныхДляПечати.Вставить("РезультатПоШапке", ПакетРезультатовЗапроса[0]);
СтруктураДанныхДляПечати.Вставить("РезультатПоЭтапамОплаты", ПакетРезультатовЗапроса[1]);
СтруктураДанныхДляПечати.Вставить("РезультатПоТабличнойЧасти", ПакетРезультатовЗапроса[2]);
Возврат СтруктураДанныхДляПечати;
КонецФункции
Процедура ЗаполнитьСтруктуруПолучателейПечатныхФорм(СтруктураДанныхОбъектаПечати) Экспорт
СтруктураДанныхОбъектаПечати.ОсновнойПолучатель = "Партнер";
СтруктураДанныхОбъектаПечати.МассивРеквизитовПолучателей.Добавить("Партнер");
Если ПолучитьФункциональнуюОпцию("ИспользоватьПартнеровИКонтрагентов") Тогда
СтруктураДанныхОбъектаПечати.МассивРеквизитовПолучателей.Добавить("Контрагент");
КонецЕсли;
СтруктураДанныхОбъектаПечати.МассивРеквизитовПолучателей.Добавить("КонтактноеЛицо");
КонецПроцедуры
#КонецОбласти
#Область ШаблоныСообщений
Процедура ПриПодготовкеШаблонаСообщения(Реквизиты, Вложения, ДополнительныеПараметры) Экспорт
КонецПроцедуры
Процедура ПриФормированииСообщения(Сообщение, ПредметСообщения, ДополнительныеПараметры) Экспорт
КонецПроцедуры
Процедура ПриЗаполненииТелефоновПолучателейВСообщении(ПолучателиSMS, ПредметСообщения) Экспорт
КонецПроцедуры
Процедура ПриЗаполненииПочтыПолучателейВСообщении(ПолучателиПисьма, ПредметСообщения) Экспорт
КонецПроцедуры
#КонецОбласти
#Область Прочее
Функция ТекстЗапросаТоварыДокумента(Отбор) Экспорт
ТекстЗапроса =
"ВЫБРАТЬ
| Таблица.Ссылка КАК ЗаказПоставщику,
| Таблица.Номенклатура КАК Номенклатура,
| Таблица.Характеристика КАК Характеристика,
| Таблица.Назначение КАК Назначение,
| Таблица.КодСтроки КАК КодСтроки,
| Таблица.Количество КАК Количество,
| Таблица.Цена КАК Цена,
| Таблица.Сумма КАК Сумма,
| Таблица.Упаковка КАК Упаковка,
| Таблица.Склад КАК Склад,
| ЕСТЬNULL(ДанныеУчета.КОформлению, 0) КАК КОформлению,
| ЕСТЬNULL(ДанныеУчета.Заказано, 0) КАК Заказано
|ИЗ
| Документ.ЗаказПоставщику.Товары КАК Таблица
| ЛЕВОЕ СОЕДИНЕНИЕ ВтДанныеУчета КАК ДанныеУчета
| ПО Таблица.Ссылка = ДанныеУчета.ЗаказПоставщику
| И Таблица.КодСтроки = ДанныеУчета.КодСтроки
|ГДЕ
| НЕ ДанныеУчета.ЗаказПоставщику ЕСТЬ NULL
| И &Отбор";
Если ЗначениеЗаполнено(Отбор) Тогда
ТекстОтбора = "";
Для Каждого КлючЗначение Из Отбор Цикл
ТекстОтбора =
ТекстОтбора
+ " И "
+ КлючЗначение.Ключ
+ " В(&"
+ КлючЗначение.Значение
+ ")";
КонецЦикла;
ТекстЗапроса = СтрЗаменить(ТекстЗапроса, "И &Отбор", ТекстОтбора);
Иначе
ТекстЗапроса = СтрЗаменить(ТекстЗапроса, "И &Отбор", "");
КонецЕсли;
Возврат ТекстЗапроса;
КонецФункции
Функция СуммыПоЗаказам(СсылкаОбъект, ЗначенияРеквизитов = Неопределено) Экспорт
Запрос = Новый Запрос;
Запрос.Текст = "
|ВЫБРАТЬ
| &Ссылка КАК Ссылка,
| &Дата КАК Дата,
| &ДатаСогласования КАК ДатаСогласования,
| Товары.СуммаСНДС КАК Сумма,
| ВЫРАЗИТЬ(Товары.Номенклатура КАК Справочник.Номенклатура) КАК Номенклатура,
| Товары.ДатаОтгрузки КАК ДатаОтгрузки,
| Товары.Отменено КАК Отменено,
| &ВернутьМногооборотнуюТару КАК ВернутьМногооборотнуюТару,
| &ТребуетсяЗалогЗаТару КАК ТребуетсяЗалогЗаТару
|ПОМЕСТИТЬ ВТТовары
|ИЗ &ТаблицаЗначений КАК Товары
|ГДЕ &УсловиеСсылка
|;
|ВЫБРАТЬ
| Товары.Ссылка КАК Заказ,
| Товары.Дата КАК Дата,
| Товары.ДатаСогласования КАК ДатаСогласования,
| Товары.ДатаОтгрузки КАК ДатаОтгрузки,
| СУММА(ВЫБОР
| КОГДА Товары.Номенклатура.ТипНоменклатуры <> ЗНАЧЕНИЕ(Перечисление.ТипыНоменклатуры.МногооборотнаяТара)
| ИЛИ НЕ Товары.ВернутьМногооборотнуюТару
| ТОГДА Товары.Сумма
| ИНАЧЕ 0
| КОНЕЦ) КАК СуммаПлатежа,
| 0 КАК СуммаВзаиморасчетов,
| СУММА(ВЫБОР
| КОГДА Товары.Номенклатура.ТипНоменклатуры = ЗНАЧЕНИЕ(Перечисление.ТипыНоменклатуры.МногооборотнаяТара)
| И Товары.ТребуетсяЗалогЗаТару
| ТОГДА Товары.Сумма
| ИНАЧЕ 0
| КОНЕЦ) КАК СуммаЗалогаЗаТару,
| 0 КАК СуммаВзаиморасчетовПоТаре
|ИЗ
| ВТТовары КАК Товары
|ГДЕ
| НЕ Товары.Отменено
|СГРУППИРОВАТЬ ПО
| Товары.ДатаОтгрузки,
| Товары.Ссылка,
| Товары.Дата,
| Товары.ДатаСогласования
|;";
Если ЗначенияРеквизитов = Неопределено Тогда
Запрос.Текст = СтрЗаменить(Запрос.Текст, "&ТаблицаЗначений", "Документ.ЗаказПоставщику.Товары");
Запрос.Текст = СтрЗаменить(Запрос.Текст, "&ВернутьМногооборотнуюТару", "Товары.Ссылка.ВернутьМногооборотнуюТару");
Запрос.Текст = СтрЗаменить(Запрос.Текст, "&ТребуетсяЗалогЗаТару", "Товары.Ссылка.ТребуетсяЗалогЗаТару");
Запрос.Текст = СтрЗаменить(Запрос.Текст, "&Дата", "Товары.Ссылка.Дата");
Запрос.Текст = СтрЗаменить(Запрос.Текст, "&ДатаСогласования", "Товары.Ссылка.ДатаСогласования");
Запрос.Текст = СтрЗаменить(Запрос.Текст, "&УсловиеСсылка", "Товары.Ссылка = &Ссылка");
Запрос.УстановитьПараметр("Ссылка",СсылкаОбъект);
Иначе
Запрос.Текст = СтрЗаменить(Запрос.Текст, "&УсловиеСсылка", "ИСТИНА");
Для Каждого КлючЗначение Из ЗначенияРеквизитов Цикл
Запрос.УстановитьПараметр(КлючЗначение.Ключ, КлючЗначение.Значение);
КонецЦикла;
КонецЕсли;
Возврат Запрос.Выполнить().Выгрузить();
КонецФункции
#КонецОбласти
#Область ТекущиеДела
Процедура ПриЗаполненииСпискаТекущихДел(ТекущиеДела) Экспорт
ИмяФормы = "Документ.ЗаказПоставщику.Форма.ФормаСпискаДокументов";
ОбщиеПараметрыЗапросов = ТекущиеДелаСлужебный.ОбщиеПараметрыЗапросов();
Доступность =
(ОбщиеПараметрыЗапросов.ЭтоПолноправныйПользователь
Или ПравоДоступа("Просмотр", Метаданные.Документы.ЗаказПоставщику))
И ПравоДоступа("Добавление", Метаданные.Документы.ЗаказПоставщику)
И ПравоДоступа("Чтение", Метаданные.РегистрыНакопления.РасчетыСПоставщиками)
И ПолучитьФункциональнуюОпцию("ИспользоватьЗаказыПоставщикам");
Если НЕ Доступность Тогда
Возврат;
КонецЕсли;
Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ РАЗРЕШЕННЫЕ
| КОЛИЧЕСТВО(РАЗЛИЧНЫЕ ДокументЗаказПоставщику.Ссылка) КАК ЗаказыПоставщикамВсегоВРаботе,
| КОЛИЧЕСТВО(РАЗЛИЧНЫЕ ВЫБОР
| КОГДА СостоянияЗаказовПоставщикам.ДатаСобытия <> ДАТАВРЕМЯ(1, 1, 1)
| И &ДатаАктуальности >= СостоянияЗаказовПоставщикам.ДатаСобытия ТОГДА
| СостоянияЗаказовПоставщикам.Заказ
| КОНЕЦ) КАК ЗаказыПоставщикамНаСегодня,
| КОЛИЧЕСТВО(РАЗЛИЧНЫЕ ВЫБОР
| КОГДА СостоянияЗаказовПоставщикам.ДатаСобытия <> ДАТАВРЕМЯ(1, 1, 1)
| И &ДатаАктуальности > СостоянияЗаказовПоставщикам.ДатаСобытия
| И СостоянияЗаказовПоставщикам.Состояние В (
| ЗНАЧЕНИЕ(Перечисление.СостоянияЗаказовПоставщикам.ОжидаетсяАвансДоПодтверждения),
| ЗНАЧЕНИЕ(Перечисление.СостоянияЗаказовПоставщикам.ОжидаетсяПредоплатаДоПоступления),
| ЗНАЧЕНИЕ(Перечисление.СостоянияЗаказовПоставщикам.ОжидаетсяОплатаПослеПоступления)) ТОГДА
| СостоянияЗаказовПоставщикам.Заказ
| КОНЕЦ) КАК ЗаказыПоставщикамПросроченаОплата,
| КОЛИЧЕСТВО(РАЗЛИЧНЫЕ ВЫБОР
| КОГДА СостоянияЗаказовПоставщикам.ДатаСобытия <> ДАТАВРЕМЯ(1, 1, 1)
| И &ДатаАктуальности > СостоянияЗаказовПоставщикам.ДатаСобытия
| И СостоянияЗаказовПоставщикам.Состояние В (
| ЗНАЧЕНИЕ(Перечисление.СостоянияЗаказовПоставщикам.ОжидаетсяСогласование),
| ЗНАЧЕНИЕ(Перечисление.СостоянияЗаказовПоставщикам.ОжидаетсяПодтверждение),
| ЗНАЧЕНИЕ(Перечисление.СостоянияЗаказовПоставщикам.ГотовКПоступлению),
| ЗНАЧЕНИЕ(Перечисление.СостоянияЗаказовПоставщикам.ОжидаетсяПоступление)) ТОГДА
| СостоянияЗаказовПоставщикам.Заказ
| КОНЕЦ) КАК ЗаказыПоставщикамПросроченоИсполнение
|ИЗ
| Документ.ЗаказПоставщику КАК ДокументЗаказПоставщику
| {ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.СостоянияЗаказовПоставщикам КАК СостоянияЗаказовПоставщикам
| ПО (СостоянияЗаказовПоставщикам.Заказ = ДокументЗаказПоставщику.Ссылка)}
|ГДЕ
| (НЕ (СостоянияЗаказовПоставщикам.Заказ ЕСТЬ NULL) ИЛИ НЕ ДокументЗаказПоставщику.Проведен)
| И ДокументЗаказПоставщику.Менеджер = &Пользователь
| И СостоянияЗаказовПоставщикам.Состояние <> ЗНАЧЕНИЕ(Перечисление.СостоянияЗаказовПоставщикам.Закрыт)
| И (НЕ ДокументЗаказПоставщику.ПометкаУдаления)";
Результат = ТекущиеДелаСлужебный.ЧисловыеПоказателиТекущихДел(Запрос, ОбщиеПараметрыЗапросов);
ДелоРодитель = ТекущиеДела.Добавить();
ДелоРодитель.Идентификатор = "ЗаказыПоставщикам";
ДелоРодитель.Представление = НСтр("ru = 'Заказы поставщикам'");
ДелоРодитель.Владелец = Метаданные.Подсистемы.Закупки;
ПараметрыОтбора = Новый Структура;
ПараметрыОтбора.Вставить("Состояние", "ВсеОткрытые");
ПараметрыОтбора.Вставить("Актуальность", "");
ПараметрыОтбора.Вставить("ДатаСобытия", ОбщиеПараметрыЗапросов.ПустаяДата);
ПараметрыОтбора.Вставить("Менеджер", ОбщиеПараметрыЗапросов.Пользователь);
ПараметрыОтбора.Вставить("Приоритет", "");
Дело = ТекущиеДела.Добавить();
Дело.Идентификатор = "ЗаказыПоставщикамВсегоВРаботе";
Дело.ЕстьДела = Результат.ЗаказыПоставщикамВсегоВРаботе > 0;
Дело.Представление = НСтр("ru = 'Всего заказов в работе'");
Дело.Количество = Результат.ЗаказыПоставщикамВсегоВРаботе;
Дело.Важное = Ложь;
Дело.Форма = ИмяФормы;
Дело.ПараметрыФормы = Новый Структура("СтруктураБыстрогоОтбора", ПараметрыОтбора);
Дело.Владелец = "ЗаказыПоставщикам";
ПараметрыОтбора = Новый Структура;
ПараметрыОтбора.Вставить("Состояние", "ВсеОткрытые");
ПараметрыОтбора.Вставить("Актуальность", "Сегодня");
ПараметрыОтбора.Вставить("ДатаСобытия", ОбщиеПараметрыЗапросов.ПустаяДата);
ПараметрыОтбора.Вставить("Менеджер", ОбщиеПараметрыЗапросов.Пользователь);
ПараметрыОтбора.Вставить("Приоритет", "");
Дело = ТекущиеДела.Добавить();
Дело.Идентификатор = "ЗаказыПоставщикамНаСегодня";
Дело.ЕстьДела = Результат.ЗаказыПоставщикамНаСегодня > 0;
Дело.Представление = НСтр("ru = 'На сегодня'");
Дело.Количество = Результат.ЗаказыПоставщикамНаСегодня;
Дело.Важное = Ложь;
Дело.Форма = ИмяФормы;
Дело.ПараметрыФормы = Новый Структура("СтруктураБыстрогоОтбора", ПараметрыОтбора);
Дело.Владелец = "ЗаказыПоставщикам";
ПараметрыОтбора = Новый Структура;
ПараметрыОтбора.Вставить("Состояние", "ВсеОжидающиеОплаты");
ПараметрыОтбора.Вставить("Актуальность", "Просрочен");
ПараметрыОтбора.Вставить("ДатаСобытия", ОбщиеПараметрыЗапросов.ПустаяДата);
ПараметрыОтбора.Вставить("Менеджер", ОбщиеПараметрыЗапросов.Пользователь);
ПараметрыОтбора.Вставить("Приоритет", "");
Дело = ТекущиеДела.Добавить();
Дело.Идентификатор = "ЗаказыПоставщикамПросроченаОплата";
Дело.ЕстьДела = Результат.ЗаказыПоставщикамПросроченаОплата > 0;
Дело.Представление = НСтр("ru = 'Просрочена оплата по заказам'");
Дело.Количество = Результат.ЗаказыПоставщикамПросроченаОплата;
Дело.Важное = Истина;
Дело.Форма = ИмяФормы;
Дело.ПараметрыФормы = Новый Структура("СтруктураБыстрогоОтбора", ПараметрыОтбора);
Дело.Владелец = "ЗаказыПоставщикам";
ПараметрыОтбора = Новый Структура;
ПараметрыОтбора.Вставить("Состояние", "ВсеОжидающиеИсполнения");
ПараметрыОтбора.Вставить("Актуальность", "Просрочен");
ПараметрыОтбора.Вставить("ДатаСобытия", ОбщиеПараметрыЗапросов.ПустаяДата);
ПараметрыОтбора.Вставить("Менеджер", ОбщиеПараметрыЗапросов.Пользователь);
ПараметрыОтбора.Вставить("Приоритет", "");
Дело = ТекущиеДела.Добавить();
Дело.Идентификатор = "ЗаказыПоставщикамПросроченоИсполнение";
Дело.ЕстьДела = Результат.ЗаказыПоставщикамПросроченоИсполнение > 0;
Дело.Представление = НСтр("ru = 'Просрочено исполнение заказов'");
Дело.Количество = Результат.ЗаказыПоставщикамПросроченоИсполнение;
Дело.Важное = Истина;
Дело.Форма = ИмяФормы;
Дело.ПараметрыФормы = Новый Структура("СтруктураБыстрогоОтбора", ПараметрыОтбора);
Дело.Владелец = "ЗаказыПоставщикам";
Если Результат.ЗаказыПоставщикамВсегоВРаботе > 0 Тогда
ДелоРодитель.ЕстьДела = Истина;
КонецЕсли;
КонецПроцедуры
Функция ЗаказЯвляетсяРаспоряжениемНаПриемкуТоваров(ЗаказПоставщику) Экспорт
УстановитьПривилегированныйРежим(Истина);
ВариантПриемкиТоваровЗаказа = ОбщегоНазначения.ЗначениеРеквизитаОбъекта(ЗаказПоставщику, "ВариантПриемкиТоваров");
Результат = Ложь;
Если Не ЗначениеЗаполнено(ВариантПриемкиТоваровЗаказа) Тогда
Результат = Константы.ВариантПриемкиТоваров.Получить() = Перечисления.ВариантыПриемкиТоваров.РазделенаПоЗаказамИНакладным;
ИначеЕсли ВариантПриемкиТоваровЗаказа = Перечисления.ВариантыПриемкиТоваров.РазделенаПоЗаказамИНакладным Тогда
Результат = Истина;
КонецЕсли;
Возврат Результат;
КонецФункции
#КонецОбласти
#Область ФормированиеГиперссылкиВЖурналеЗакупок
Функция ТекстЗапросаЗаказыПоставщикуВРаботе()
ТекстЗапроса =
"ВЫБРАТЬ РАЗРЕШЕННЫЕ ПЕРВЫЕ 1
| СостоянияЗаказовПоставщикам.Заказ,
| СостоянияЗаказовПоставщикам.Состояние
|ИЗ
| РегистрСведений.СостоянияЗаказовПоставщикам КАК СостоянияЗаказовПоставщикам
|ГДЕ
| СостоянияЗаказовПоставщикам.Состояние <> ЗНАЧЕНИЕ(Перечисление.СостоянияЗаказовПоставщикам.Закрыт)";
Возврат ТекстЗапроса
КонецФункции
Функция СформироватьГиперссылкуСмТакжеВРаботе(Параметры) Экспорт
Если Не (ПравоДоступа("Чтение", Метаданные.РегистрыСведений.СостоянияЗаказовПоставщикам)
И ПравоДоступа("Изменение", Метаданные.Документы.ЗаказПоставщику)
И ПолучитьФункциональнуюОпцию("ИспользоватьЗаказыПоставщикам")) Тогда
Возврат Неопределено;
КонецЕсли;
ТекстГиперссылки = НСтр("ru = 'Заказы поставщикам'");
Запрос = Новый Запрос(ТекстЗапросаЗаказыПоставщикуВРаботе());
ИмяФормыРабочееМестоЗаказПоставщику = "Документ.ЗаказПоставщику.Форма.ФормаСпискаДокументов";
Если Запрос.Выполнить().Пустой() Тогда
Возврат Новый ФорматированнаяСтрока(ТекстГиперссылки,,ЦветаСтиля.НезаполненноеПолеТаблицы,,
ИмяФормыРабочееМестоЗаказПоставщику);
Иначе
Возврат Новый ФорматированнаяСтрока(ТекстГиперссылки,,,,
ИмяФормыРабочееМестоЗаказПоставщику);
КонецЕсли;
КонецФункции
#КонецОбласти
#КонецОбласти
#КонецЕсли