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