#Если Сервер Или ТолстыйКлиентОбычноеПриложение Или ВнешнееСоединение Тогда
#Область ПрограммныйИнтерфейс
Процедура ПриОпределенииНастроекВерсионированияОбъектов(Настройки) Экспорт
КонецПроцедуры
Процедура ЗаполнитьИменаРеквизитовПоХозяйственнойОперации(ХозяйственнаяОперация, МассивВсехРеквизитов, МассивРеквизитовОперации) Экспорт
МассивВсехРеквизитов = Новый Массив;
МассивВсехРеквизитов.Добавить("СпособРасчетаВознаграждения");
МассивВсехРеквизитов.Добавить("ПроцентВознаграждения");
МассивВсехРеквизитов.Добавить("УдержатьВознаграждение");
МассивВсехРеквизитов.Добавить("ПроцентРучнойСкидки");
МассивВсехРеквизитов.Добавить("ПроцентРучнойНаценки");
МассивРеквизитовОперации = Новый Массив;
Если ХозяйственнаяОперация = Перечисления.ХозяйственныеОперации.ПриемНаКомиссию Тогда
МассивРеквизитовОперации.Добавить("СпособРасчетаВознаграждения");
МассивРеквизитовОперации.Добавить("ПроцентВознаграждения");
МассивРеквизитовОперации.Добавить("УдержатьВознаграждение");
ИначеЕсли ХозяйственнаяОперация = Перечисления.ХозяйственныеОперации.ОказаниеАгентскихУслуг Тогда
МассивРеквизитовОперации.Добавить("СпособРасчетаВознаграждения");
МассивРеквизитовОперации.Добавить("ПроцентВознаграждения");
МассивРеквизитовОперации.Добавить("УдержатьВознаграждение");
МассивРеквизитовОперации.Добавить("ТипыУслуг");
МассивРеквизитовОперации.Добавить("АгентскиеУслуги");
ИначеЕсли ХозяйственнаяОперация = Перечисления.ХозяйственныеОперации.ЗакупкаПоИмпорту
ИЛИ ХозяйственнаяОперация = Перечисления.ХозяйственныеОперации.ЗакупкаВСтранахЕАЭС Тогда
МассивРеквизитовОперации.Добавить("ПроцентРучнойСкидки");
МассивРеквизитовОперации.Добавить("ПроцентРучнойНаценки");
Иначе
МассивРеквизитовОперации.Добавить("ПроцентРучнойСкидки");
МассивРеквизитовОперации.Добавить("ПроцентРучнойНаценки");
КонецЕсли;
КонецПроцедуры
Функция УстановитьСтатус(Знач Соглашения, Знач Статус) Экспорт
МассивСсылок = Новый Массив();
КоличествоОбработанных = 0;
Для Каждого Соглашение Из Соглашения Цикл
Если ТипЗнч(Соглашение) = Тип("СтрокаГруппировкиДинамическогоСписка") Тогда
Продолжить;
КонецЕсли;
МассивСсылок.Добавить(Соглашение);
КонецЦикла;
Если МассивСсылок = 0 Тогда
Возврат КоличествоОбработанных;
КонецЕсли;
Запрос = Новый Запрос(
"ВЫБРАТЬ
| СоглашениеСПоставщиком.Ссылка КАК Ссылка,
| СоглашениеСПоставщиком.ПометкаУдаления КАК ПометкаУдаления,
| ВЫБОР
| КОГДА СоглашениеСПоставщиком.Статус = &Статус
| ТОГДА ИСТИНА
| ИНАЧЕ ЛОЖЬ
| КОНЕЦ КАК СтатусСовпадает
|ИЗ
| Справочник.СоглашенияСПоставщиками КАК СоглашениеСПоставщиком
|ГДЕ
| СоглашениеСПоставщиком.Ссылка В(&МассивСсылок)");
Запрос.УстановитьПараметр("МассивСсылок", МассивСсылок);
Запрос.УстановитьПараметр("Статус", Статус);
Выборка = Запрос.Выполнить().Выбрать();
Пока Выборка.Следующий() Цикл
Если Выборка.ПометкаУдаления Тогда
ТекстОшибки = НСтр("ru='Соглашение %Соглашение% помечено на удаление. Невозможно изменить статус'");
ТекстОшибки = СтрЗаменить(ТекстОшибки, "%Соглашение%", Выборка.Ссылка);
ОбщегоНазначенияКлиентСервер.СообщитьПользователю(ТекстОшибки, Выборка.Ссылка);
Продолжить;
КонецЕсли;
Если Выборка.СтатусСовпадает Тогда
ТекстОшибки = НСтр("ru='Соглашению %Соглашение% уже присвоен статус ""%Статус%""'");
ТекстОшибки = СтрЗаменить(ТекстОшибки, "%Соглашение%", Выборка.Ссылка);
ТекстОшибки = СтрЗаменить(ТекстОшибки, "%Статус%", Статус);
ОбщегоНазначенияКлиентСервер.СообщитьПользователю(ТекстОшибки, Выборка.Ссылка);
Продолжить;
КонецЕсли;
Попытка
ЗаблокироватьДанныеДляРедактирования(Выборка.Ссылка);
Исключение
ТекстОшибки = НСтр("ru='Не удалось заблокировать %Соглашение%. %ОписаниеОшибки%'");
ТекстОшибки = СтрЗаменить(ТекстОшибки, "%Соглашение%", Выборка.Ссылка);
ТекстОшибки = СтрЗаменить(ТекстОшибки, "%ОписаниеОшибки%", КраткоеПредставлениеОшибки(ИнформацияОбОшибке()));
ОбщегоНазначенияКлиентСервер.СообщитьПользователю(ТекстОшибки, Выборка.Ссылка);
КонецПопытки;
Объект = Выборка.Ссылка.ПолучитьОбъект();
Объект.Статус = Статус;
Если Статус = Перечисления.СтатусыСоглашенийСКлиентами.НеСогласовано Тогда
Если Объект.Согласован Тогда
Объект.Согласован = Ложь;
КонецЕсли;
КонецЕсли;
Если Не Объект.ПроверитьЗаполнение() Тогда
Продолжить;
КонецЕсли;
Попытка
Объект.Записать();
КоличествоОбработанных = КоличествоОбработанных + 1;
Исключение
ТекстОшибки = НСтр("ru='Не удалось записать %Соглашение%. %ОписаниеОшибки%'");
ТекстОшибки = СтрЗаменить(ТекстОшибки, "%Соглашение%", Выборка.Ссылка);
ТекстОшибки = СтрЗаменить(ТекстОшибки, "%ОписаниеОшибки%", КраткоеПредставлениеОшибки(ИнформацияОбОшибке()));
ОбщегоНазначенияКлиентСервер.СообщитьПользователю(ТекстОшибки, Выборка.Ссылка);
КонецПопытки
КонецЦикла;
Возврат КоличествоОбработанных;
КонецФункции
Функция СоглашениеИспользуетсяПриПриемке(Знач ВариантПриемкиТоваров) Экспорт
Если НЕ ЗначениеЗаполнено(ВариантПриемкиТоваров) Тогда
ВариантПриемкиТоваров = Константы.ВариантПриемкиТоваров.Получить();
КонецЕсли;
Результат = Ложь;
Если ВариантПриемкиТоваров = Перечисления.ВариантыПриемкиТоваров.НеРазделенаПоЗаказамИНакладным
Или ВариантПриемкиТоваров = Перечисления.ВариантыПриемкиТоваров.МожетПроисходитьБезЗаказовИНакладных
ИЛИ ВариантПриемкиТоваров = Перечисления.ВариантыПриемкиТоваров.НеРазделенаПоНакладным Тогда
Результат = Истина;
КонецЕсли;
Возврат Результат;
КонецФункции
Процедура ДобавитьКомандыПечати(КомандыПечати) Экспорт
КонецПроцедуры
Функция СоздатьСоглашениеПоУмолчанию(Знач Параметры) Экспорт
Соглашение = Справочники.СоглашенияСПоставщиками.СоздатьЭлемент();
Соглашение.Заполнить(Неопределено);
ЗаполнитьЗначенияСвойств(Соглашение, Параметры);
Соглашение.Дата = ТекущаяДатаСеанса();
Соглашение.Статус = Перечисления.СтатусыСоглашенийСПоставщиками.Действует;
Если НЕ ЗначениеЗаполнено(Соглашение.Наименование) Тогда
Соглашение.Наименование = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
НСтр("ru='Условия закупок с %1'"), Соглашение.Партнер);
КонецЕсли;
Если НЕ ЗначениеЗаполнено(Соглашение.ВариантПриемкиТоваров) ИЛИ ПолучитьФункциональнуюОпцию("ИспользоватьПоступлениеПоНесколькимЗаказам") Тогда
Соглашение.ВариантПриемкиТоваров = Перечисления.ВариантыПриемкиТоваров.НеРазделенаПоЗаказамИНакладным;
КонецЕсли;
Если НЕ ЗначениеЗаполнено(Соглашение.ОплатаВВалюте) Тогда
Соглашение.ОплатаВВалюте = Ложь;
КонецЕсли;
Соглашение.Записать();
Возврат Соглашение.Ссылка
КонецФункции
Функция ТекстЗапросаРеквизитыДоставки() Экспорт
ТекстЗапроса =
"ВЫБРАТЬ
| Шапка.Номер КАК Номер,
| ИСТИНА КАК Проведен,
| Шапка.Ссылка КАК Ссылка,
| Шапка.Дата КАК Дата,
| Шапка.Партнер КАК ПолучательОтправитель,
| Шапка.ПеревозчикПартнер КАК Перевозчик,
| ВЫБОР
| КОГДА Шапка.СпособДоставки = ЗНАЧЕНИЕ(Перечисление.СпособыДоставки.СиламиПеревозчика)
| И НЕ &ИспользоватьЗаданияНаПеревозкуДляУчетаДоставкиПеревозчиками
| ТОГДА ЗНАЧЕНИЕ(Перечисление.СпособыДоставки.Самовывоз)
| ИНАЧЕ Шапка.СпособДоставки
| КОНЕЦ КАК СпособДоставки,
| Шапка.ЗонаДоставки КАК Зона,
| ВЫБОР
| КОГДА Шапка.СпособДоставки = ЗНАЧЕНИЕ(Перечисление.СпособыДоставки.СиламиПеревозчикаПоАдресу)
| ТОГДА Шапка.АдресДоставкиПеревозчика
| ИНАЧЕ Шапка.АдресДоставки
| КОНЕЦ КАК Адрес,
| ВЫБОР
| КОГДА Шапка.СпособДоставки = ЗНАЧЕНИЕ(Перечисление.СпособыДоставки.СиламиПеревозчикаПоАдресу)
| ТОГДА Шапка.АдресДоставкиПеревозчикаЗначенияПолей
| ИНАЧЕ Шапка.АдресДоставкиЗначенияПолей
| КОНЕЦ КАК АдресЗначенияПолей,
| Шапка.ВремяДоставкиС КАК ВремяС,
| Шапка.ВремяДоставкиПо КАК ВремяПо,
| Шапка.ДополнительнаяИнформацияПоДоставке КАК ДополнительнаяИнформация,
| Шапка.Склад КАК Склад,
| ЛОЖЬ КАК ДоставитьПолностью,
| ЛОЖЬ КАК ОсобыеУсловияПеревозки,
| """" КАК ОсобыеУсловияПеревозкиОписание,
| ЛОЖЬ КАК РазбиватьРасходныеОрдераПоРаспоряжениям
|ИЗ
| Справочник.СоглашенияСПоставщиками КАК Шапка
|ГДЕ
| Шапка.Ссылка В(&Ссылки)";
Возврат ТекстЗапроса;
КонецФункции
Функция ТекстЗапросаТоварыКДоставке() Экспорт
ТекстЗапроса =
"ВЫБРАТЬ
| ТоварыКПоступлениюОстатки.ДокументПоступления КАК Ссылка,
| ТоварыКПоступлениюОстатки.Номенклатура КАК Номенклатура,
| ТоварыКПоступлениюОстатки.Характеристика КАК Характеристика,
| ТоварыКПоступлениюОстатки.Назначение КАК Назначение,
| ЗНАЧЕНИЕ(Справочник.СерииНоменклатуры.ПустаяСсылка) КАК Серия,
| ТоварыКПоступлениюОстатки.Склад КАК Склад,
| ТоварыКПоступлениюОстатки.КОформлениюОрдеровОстаток КАК Количество
|ИЗ
| РегистрНакопления.ТоварыКПоступлению.Остатки(, ДокументПоступления В (&Ссылки)) КАК ТоварыКПоступлениюОстатки";
Возврат ТекстЗапроса;
КонецФункции
Функция ДобавитьКомандуСоздатьНаОсновании(КомандыСозданияНаОсновании) Экспорт
МетаданныеОбъекта = Метаданные.Справочники.СоглашенияСПоставщиками;
Если ПравоДоступа("Добавление",МетаданныеОбъекта) И ПолучитьФункциональнуюОпцию("ИспользоватьСоглашенияСПоставщиками") Тогда
КомандаСоздатьНаОсновании = КомандыСозданияНаОсновании.Добавить();
КомандаСоздатьНаОсновании.Менеджер = МетаданныеОбъекта.ПолноеИмя();
КомандаСоздатьНаОсновании.Представление = ОбщегоНазначенияУТ.ПредставлениеОбъекта(МетаданныеОбъекта);
Возврат КомандаСоздатьНаОсновании;
КонецЕсли;
Возврат Неопределено;
КонецФункции
Процедура ЗадатьОписаниеЗаполняемыхРеквизитовПоСтатистике(ОписаниеРеквизитов) Экспорт
Параметры = ЗаполнениеОбъектовПоСтатистике.ПараметрыЗаполняемыхРеквизитов();
Параметры.РазрезыСбораСтатистики.ИспользоватьВсегда = "Менеджер";
ЗаполнениеОбъектовПоСтатистике.ДобавитьОписаниеЗаполняемыхРеквизитов(ОписаниеРеквизитов,
"ИспользуютсяДоговорыКонтрагентов,ПорядокРасчетов", Параметры);
КонецПроцедуры
#Область ДляВызоваИзДругихПодсистем
Процедура ПриЗаполненииОграниченияДоступа(Ограничение) Экспорт
Ограничение.Текст =
"РазрешитьЧтениеИзменение
|ГДЕ
| ЗначениеРазрешено(Партнер)
| И ЗначениеРазрешено(Склад, ПустаяСсылка КАК Истина)
| И ЗначениеРазрешено(Организация, ПустаяСсылка КАК Истина)";
КонецПроцедуры
#КонецОбласти
#КонецОбласти
#Область ОбработчикиСобытий
Процедура ОбработкаПолученияДанныхВыбора(ДанныеВыбора, Параметры, СтандартнаяОбработка)
СтандартнаяОбработка = Ложь;
Партнер = Справочники.Партнеры.ПустаяСсылка();
ХозяйственнаяОперация = Перечисления.ХозяйственныеОперации.ПустаяСсылка();
ДатаДокумента = ТекущаяДатаСеанса();
СтрокаПоиска = "";
ИспользуютсяДоговорыКонтрагентов = Неопределено;
Если Параметры.Отбор.Свойство("Партнер") Тогда
Партнер = Параметры.Отбор.Партнер;
КонецЕсли;
Если Не ЗначениеЗаполнено(Партнер) Тогда
Возврат;
КонецЕсли;
Если Параметры.Отбор.Свойство("Дата") Тогда
ДатаДокумента = Параметры.Отбор.Дата;
КонецЕсли;
Параметры.Свойство("СтрокаПоиска",СтрокаПоиска);
ТекстЗапроса = "
|ВЫБРАТЬ РАЗРЕШЕННЫЕ ПЕРВЫЕ 51
| СправочникСоглашениеСПоставщиком.Ссылка КАК Ссылка,
| СправочникСоглашениеСПоставщиком.Наименование КАК Наименование,
| СправочникСоглашениеСПоставщиком.Номер КАК Номер,
| СправочникСоглашениеСПоставщиком.Дата КАК Дата,
| ВЫБОР
| КОГДА
| СправочникСоглашениеСПоставщиком.ПометкаУдаления
| ТОГДА
| 0
| КОГДА
| СправочникСоглашениеСПоставщиком.Статус = ЗНАЧЕНИЕ(Перечисление.СтатусыСоглашенийСПоставщиками.Действует)
| ТОГДА
| 0
| КОГДА
| СправочникСоглашениеСПоставщиком.Статус = ЗНАЧЕНИЕ(Перечисление.СтатусыСоглашенийСПоставщиками.НеСогласовано)
| ТОГДА
| 1
| КОНЕЦ КАК ИндексКартинки,
|
| ВЫБОР
| КОГДА
| СправочникСоглашениеСПоставщиком.Статус = ЗНАЧЕНИЕ(Перечисление.СтатусыСоглашенийСПоставщиками.Действует)
| И ((СправочникСоглашениеСПоставщиком.ДатаНачалаДействия <> ДАТАВРЕМЯ(1,1,1) И
| СправочникСоглашениеСПоставщиком.ДатаНачалаДействия > &ДатаДокумента))
| ТОГДА
| ИСТИНА
| ИНАЧЕ
| ЛОЖЬ
| КОНЕЦ КАК СрокДействияНеНаступил,
|
| ВЫБОР
| КОГДА
| СправочникСоглашениеСПоставщиком.Статус = ЗНАЧЕНИЕ(Перечисление.СтатусыСоглашенийСПоставщиками.Действует)
| И ((СправочникСоглашениеСПоставщиком.ДатаОкончанияДействия <> ДАТАВРЕМЯ(1,1,1) И
| СправочникСоглашениеСПоставщиком.ДатаОкончанияДействия < &ДатаДокумента))
| ТОГДА
| ИСТИНА
| ИНАЧЕ
| ЛОЖЬ
| КОНЕЦ КАК СрокДействияИстек
|
|ИЗ
| Справочник.СоглашенияСПоставщиками КАК СправочникСоглашениеСПоставщиком
|ГДЕ
| СправочникСоглашениеСПоставщиком.Партнер = &Партнер
| И СправочникСоглашениеСПоставщиком.Статус <> ЗНАЧЕНИЕ(Перечисление.СтатусыСоглашенийСПоставщиками.Закрыто)
| И (СправочникСоглашениеСПоставщиком.Наименование ПОДОБНО &СтрокаПоиска СПЕЦСИМВОЛ ""~""
| ИЛИ СправочникСоглашениеСПоставщиком.Номер ПОДОБНО &СтрокаПоиска СПЕЦСИМВОЛ ""~"")
|";
Если Параметры.Отбор.Свойство("ХозяйственнаяОперация", ХозяйственнаяОперация) Тогда
Если ТипЗнч(ХозяйственнаяОперация) = Тип("ПеречислениеСсылка.ХозяйственныеОперации") Тогда
ТекстЗапроса = ТекстЗапроса + "
| И СправочникСоглашениеСПоставщиком.ХозяйственнаяОперация = &ХозяйственнаяОперация";
ИначеЕсли ТипЗнч(ХозяйственнаяОперация) = Тип("Массив") Тогда
ТекстЗапроса = ТекстЗапроса + "
| И СправочникСоглашениеСПоставщиком.ХозяйственнаяОперация В(&ХозяйственнаяОперация)";
КонецЕсли;
КонецЕсли;
Если Параметры.Отбор.Свойство("ИспользуютсяДоговорыКонтрагентов", ИспользуютсяДоговорыКонтрагентов) Тогда
Если ИспользуютсяДоговорыКонтрагентов <> Неопределено Тогда
ТекстЗапроса = ТекстЗапроса + "
| И СправочникСоглашениеСПоставщиком.ИспользуютсяДоговорыКонтрагентов = &ИспользуютсяДоговорыКонтрагентов";
КонецЕсли;
КонецЕсли;
ТекстЗапроса = ТекстЗапроса + "
|УПОРЯДОЧИТЬ ПО
| ДатаНачалаДействия ВОЗР,
| ДатаОкончанияДействия ВОЗР
|";
Запрос = Новый Запрос(ТекстЗапроса);
Запрос.УстановитьПараметр("Партнер", Партнер);
Запрос.УстановитьПараметр("ДатаДокумента", НачалоДня(ДатаДокумента));
Запрос.УстановитьПараметр("СтрокаПоиска", ОбщегоНазначения.СформироватьСтрокуДляПоискаВЗапросе(СтрокаПоиска) + "%");
Запрос.УстановитьПараметр("ХозяйственнаяОперация", ХозяйственнаяОперация);
Запрос.УстановитьПараметр("ИспользуютсяДоговорыКонтрагентов", ИспользуютсяДоговорыКонтрагентов);
РезультатЗапроса = Запрос.Выполнить();
Если Не РезультатЗапроса.Пустой() Тогда
ДанныеВыбора = Новый СписокЗначений();
Выборка = РезультатЗапроса.Выбрать();
Пока Выборка.Следующий() Цикл
Если ЗначениеЗаполнено(Выборка.Наименование) И
ЗначениеЗаполнено(Выборка.Дата) И
ЗначениеЗаполнено(Выборка.Номер) Тогда
Представление = НСтр("ru='%Наименование% (%Номер% от %Дата%)'");
Представление = СтрЗаменить(Представление,"%Наименование%", Выборка.Наименование);
Представление = СтрЗаменить(Представление,"%Номер%", Выборка.Номер);
Представление = СтрЗаменить(Представление,"%Дата%", Формат(Выборка.Дата, "ДЛФ=D"));
ИначеЕсли ЗначениеЗаполнено(Выборка.Наименование) И
ЗначениеЗаполнено(Выборка.Дата) Тогда
Представление = НСтр("ru='%Наименование% (от %Дата%)'");
Представление = СтрЗаменить(Представление,"%Наименование%", Выборка.Наименование);
Представление = СтрЗаменить(Представление,"%Дата%", Формат(Выборка.Дата, "ДЛФ=D"));
ИначеЕсли ЗначениеЗаполнено(Выборка.Наименование) И
ЗначениеЗаполнено(Выборка.Номер) Тогда
Представление = НСтр("ru='%Наименование% (%Номер%)'");
Представление = СтрЗаменить(Представление,"%Наименование%", Выборка.Наименование);
Представление = СтрЗаменить(Представление,"%Номер%", Выборка.Номер);
Иначе
Представление = НСтр("ru='%Наименование%'");
Представление = СтрЗаменить(Представление,"%Наименование%", Выборка.Наименование);
КонецЕсли;
Структура = Новый Структура();
Структура.Вставить("Значение", Выборка.Ссылка);
Если Выборка.СрокДействияНеНаступил Тогда
Структура.Вставить("Предупреждение", НСтр("ru='У соглашения не наступил срок действия.'"));
ИначеЕсли Выборка.СрокДействияИстек Тогда
Структура.Вставить("Предупреждение", НСтр("ru='У соглашения истек срок действия.'"));
КонецЕсли;
Если Выборка.ИндексКартинки = 0 Тогда
Картинка = БиблиотекаКартинок.СоглашениеСПоставщиком;
Иначе
Картинка = БиблиотекаКартинок.СоглашениеСПоставщикомНеСогласовано;
КонецЕсли;
ДанныеВыбора.Добавить(
Структура,
Представление,
,
Картинка);
КонецЦикла;
КонецЕсли;
КонецПроцедуры
#КонецОбласти
#Область СлужебныеПроцедурыИФункции
#Область СозданиеНаОсновании
Процедура ДобавитьКомандыСозданияНаОсновании(КомандыСозданияНаОсновании, Параметры) Экспорт
НоваяКоманда = Справочники.ДоговорыКонтрагентов.ДобавитьКомандуСоздатьНаОсновании(КомандыСозданияНаОсновании);
Если НоваяКоманда <> Неопределено Тогда
НоваяКоманда.ФункциональныеОпции = "ИспользоватьДоговорыСПоставщиками";
КонецЕсли;
НоваяКоманда = БизнесПроцессы.Задание.ДобавитьКомандуСоздатьНаОсновании(КомандыСозданияНаОсновании);
Если НоваяКоманда <> Неопределено Тогда
НоваяКоманда.РежимЗаписи = "";
КонецЕсли;
НоваяКоманда = Документы.ЗаказПоставщику.ДобавитьКомандуСоздатьНаОсновании(КомандыСозданияНаОсновании);
Если НоваяКоманда <> Неопределено Тогда
НоваяКоманда.РежимЗаписи = "";
КонецЕсли;
НоваяКоманда = Документы.ПриемкаТоваровНаХранение.ДобавитьКомандуСоздатьНаОсновании(КомандыСозданияНаОсновании);
Если НоваяКоманда <> Неопределено Тогда
НоваяКоманда.РежимЗаписи = "";
КонецЕсли;
НоваяКоманда = Документы.ПриобретениеТоваровУслуг.ДобавитьКомандуСоздатьНаОсновании(КомандыСозданияНаОсновании);
Если НоваяКоманда <> Неопределено Тогда
НоваяКоманда.РежимЗаписи = "";
КонецЕсли;
НоваяКоманда = Документы.РегистрацияЦенНоменклатурыПоставщика.ДобавитьКомандуСоздатьНаОсновании(КомандыСозданияНаОсновании);
Если НоваяКоманда <> Неопределено Тогда
НоваяКоманда.РежимЗаписи = "";
КонецЕсли;
КонецПроцедуры
#КонецОбласти
#Область ТекущиеДела
Процедура ПриЗаполненииСпискаТекущихДел(ТекущиеДела) Экспорт
ИмяФормы = "Справочник.СоглашенияСПоставщиками.Форма.ФормаСписка";
ОбщиеПараметрыЗапросов = ТекущиеДелаСлужебный.ОбщиеПараметрыЗапросов();
Доступность =
(ОбщиеПараметрыЗапросов.ЭтоПолноправныйПользователь
Или ПравоДоступа("Просмотр", Метаданные.Справочники.СоглашенияСПоставщиками))
И ПравоДоступа("Изменение", Метаданные.Справочники.СоглашенияСПоставщиками)
И ПолучитьФункциональнуюОпцию("ИспользоватьСоглашенияСПоставщиками");
Если НЕ Доступность Тогда
Возврат;
КонецЕсли;
Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ РАЗРЕШЕННЫЕ
| КОЛИЧЕСТВО(РАЗЛИЧНЫЕ ВЫБОР
| КОГДА СоглашениеСПоставщиком.Статус = ЗНАЧЕНИЕ(Перечисление.СтатусыСоглашенийСПоставщиками.НеСогласовано)
| ТОГДА СоглашениеСПоставщиком.Ссылка
| КОНЕЦ) КАК СоглашенияСПоставщикамиНаСогласовании,
| КОЛИЧЕСТВО(РАЗЛИЧНЫЕ ВЫБОР
| КОГДА СоглашениеСПоставщиком.Статус = ЗНАЧЕНИЕ(Перечисление.СтатусыСоглашенийСПоставщиками.НеСогласовано)
| И СоглашениеСПоставщиком.ДатаНачалаДействия <> ДАТАВРЕМЯ(1, 1, 1)
| И СоглашениеСПоставщиком.ДатаНачалаДействия < &ДатаАктуальности
| ТОГДА СоглашениеСПоставщиком.Ссылка
| КОГДА СоглашениеСПоставщиком.Статус = ЗНАЧЕНИЕ(Перечисление.СтатусыСоглашенийСПоставщиками.Действует)
| И СоглашениеСПоставщиком.ДатаОкончанияДействия <> ДАТАВРЕМЯ(1, 1, 1)
| И СоглашениеСПоставщиком.ДатаОкончанияДействия < &ДатаАктуальности
| ТОГДА СоглашениеСПоставщиком.Ссылка
| КОГДА СоглашениеСПоставщиком.Статус = ЗНАЧЕНИЕ(Перечисление.СтатусыСоглашенийСПоставщиками.Действует)
| И СоглашениеСПоставщиком.ДатаНачалаДействия <> ДАТАВРЕМЯ(1,1,1) И
| СоглашениеСПоставщиком.ДатаНачалаДействия > &ДатаАктуальности
| ТОГДА СоглашениеСПоставщиком.Ссылка
| ИНАЧЕ NULL
| КОНЕЦ) КАК СоглашенияСПоставщикамиПросроченные
|ИЗ
| Справочник.СоглашенияСПоставщиками КАК СоглашениеСПоставщиком
|ГДЕ
| СоглашениеСПоставщиком.Статус <> ЗНАЧЕНИЕ(Перечисление.СтатусыСоглашенийСПоставщиками.Закрыто)
| И СоглашениеСПоставщиком.Менеджер = &Пользователь
| И (НЕ СоглашениеСПоставщиком.ПометкаУдаления)";
Результат = ТекущиеДелаСлужебный.ЧисловыеПоказателиТекущихДел(Запрос, ОбщиеПараметрыЗапросов);
ДелоРодитель = ТекущиеДела.Добавить();
ДелоРодитель.Идентификатор = "СоглашенияСПоставщиками";
ДелоРодитель.Представление = НСтр("ru = 'Соглашения с поставщиками'");
ДелоРодитель.Владелец = Метаданные.Подсистемы.Закупки;
ПараметрыОтбора = Новый Структура;
ПараметрыОтбора.Вставить("Состояние", Перечисления.СостоянияСоглашенийСПоставщиками.ОжидаетсяСогласование);
ПараметрыОтбора.Вставить("Актуальность", "");
ПараметрыОтбора.Вставить("ДатаСобытия", ОбщиеПараметрыЗапросов.ПустаяДата);
ПараметрыОтбора.Вставить("Менеджер", ОбщиеПараметрыЗапросов.Пользователь);
Дело = ТекущиеДела.Добавить();
Дело.Идентификатор = "СоглашенияСПоставщикамиНаСогласовании";
Дело.ЕстьДела = Результат.СоглашенияСПоставщикамиНаСогласовании > 0;
Дело.Представление = НСтр("ru = 'Соглашения на согласовании'");
Дело.Количество = Результат.СоглашенияСПоставщикамиНаСогласовании;
Дело.Важное = Ложь;
Дело.Форма = ИмяФормы;
Дело.ПараметрыФормы = Новый Структура("СтруктураБыстрогоОтбора", ПараметрыОтбора);
Дело.Владелец = "СоглашенияСПоставщиками";
ПараметрыОтбора = Новый Структура;
ПараметрыОтбора.Вставить("Состояние", Неопределено);
ПараметрыОтбора.Вставить("Актуальность", "Просроченные");
ПараметрыОтбора.Вставить("ДатаСобытия", ОбщиеПараметрыЗапросов.ПустаяДата);
ПараметрыОтбора.Вставить("Менеджер", ОбщиеПараметрыЗапросов.Пользователь);
Дело = ТекущиеДела.Добавить();
Дело.Идентификатор = "СоглашенияСПоставщикамиПросроченные";
Дело.ЕстьДела = Результат.СоглашенияСПоставщикамиПросроченные > 0;
Дело.Представление = НСтр("ru = 'Просроченные соглашения'");
Дело.Количество = Результат.СоглашенияСПоставщикамиПросроченные;
Дело.Важное = Истина;
Дело.Форма = ИмяФормы;
Дело.ПараметрыФормы = Новый Структура("СтруктураБыстрогоОтбора", ПараметрыОтбора);
Дело.Владелец = "СоглашенияСПоставщиками";
Если Результат.СоглашенияСПоставщикамиНаСогласовании > 0
Или Результат.СоглашенияСПоставщикамиПросроченные > 0 Тогда
ДелоРодитель.ЕстьДела = Истина;
КонецЕсли;
КонецПроцедуры
#КонецОбласти
#Область Отчеты
Процедура ДобавитьКомандыОтчетов(КомандыОтчетов, Параметры) Экспорт
КомандаОтчет = Отчеты.ДействующиеРетроБонусыПоставщиков.ДобавитьКомандуОтчета(
КомандыОтчетов, Параметры, "ДействующиеРетроБонусыПоставщиковКонтекст");
Если КомандаОтчет <> Неопределено Тогда
Представление = НСтр("ru = 'Действующие ретро-бонусы поставщика'");
КомандаОтчет.Представление = Представление;
МассивХозОпераций = РетроБонусыКлиентСервер.ХозяйственныеОперацииЗакупки();
ПодключаемыеКоманды.ДобавитьУсловиеВидимостиКоманды(
КомандаОтчет,
"ХозяйственнаяОперация",
МассивХозОпераций,
ВидСравненияКомпоновкиДанных.ВСписке);
КонецЕсли;
КонецПроцедуры
#КонецОбласти
#Область ШаблоныСообщений
Процедура ПриПодготовкеШаблонаСообщения(Реквизиты, Вложения, ДополнительныеПараметры) Экспорт
КонецПроцедуры
Процедура ПриФормированииСообщения(Сообщение, ПредметСообщения, ДополнительныеПараметры) Экспорт
КонецПроцедуры
Процедура ПриЗаполненииТелефоновПолучателейВСообщении(ПолучателиSMS, ПредметСообщения) Экспорт
КонецПроцедуры
Процедура ПриЗаполненииПочтыПолучателейВСообщении(ПолучателиПисьма, ПредметСообщения) Экспорт
КонецПроцедуры
#КонецОбласти
#КонецОбласти
#КонецЕсли