#Если Сервер Или ТолстыйКлиентОбычноеПриложение Или ВнешнееСоединение Тогда
Процедура ЗаполнитьДокументНаОснованииПартнера(Основание)
РеквизитыПартнера = ОбщегоНазначения.ЗначенияРеквизитовОбъекта(Основание, "Поставщик, Конкурент");
Если Не РеквизитыПартнера.Поставщик И Не РеквизитыПартнера.Конкурент Тогда
ВызватьИсключение НСтр("ru = 'Ввод на основании ""Регистрация цен поставщика"" возможен только для поставщика и конкурента!'");
КонецЕсли;
Партнер = Основание;
КонецПроцедуры
Процедура ЗаполнитьДокументНаОснованииСоглашенияСПоставщиком(Основание)
Запрос = Новый Запрос("
|ВЫБРАТЬ
| СоглашениеСПоставщиком.Партнер КАК Партнер,
| СоглашениеСПоставщиком.Ссылка КАК Соглашение
|ИЗ
| Справочник.СоглашенияСПоставщиками КАК СоглашениеСПоставщиком
|ГДЕ
| СоглашениеСПоставщиком.Ссылка = &Ссылка
|");
Запрос.УстановитьПараметр("Ссылка", Основание);
Выборка = Запрос.Выполнить().Выбрать();
Выборка.Следующий();
ЗаполнитьЗначенияСвойств(ЭтотОбъект, Выборка);
КонецПроцедуры
Процедура ЗаполнитьДокументПоОтбору(Знач ДанныеЗаполнения)
Если ДанныеЗаполнения.Свойство("Соглашение") Тогда
Соглашение = ДанныеЗаполнения.Соглашение;
ЗаполнитьДокументНаОснованииСоглашенияСПоставщиком(Соглашение);
ИначеЕсли ДанныеЗаполнения.Свойство("Партнер") Тогда
ЗаполнитьДокументНаОснованииПартнера(ДанныеЗаполнения.Партнер);
КонецЕсли;
КонецПроцедуры
Процедура ИнициализироватьДокумент(ДанныеЗаполнения = Неопределено)
Ответственный = Пользователи.ТекущийПользователь();
КонецПроцедуры
#Область ОбработчикиСобытий
Процедура ПередЗаписью(Отказ, РежимЗаписи, РежимПроведения)
Если ОбменДанными.Загрузка Тогда
Возврат;
КонецЕсли;
ОбновлениеИнформационнойБазы.ПроверитьОбъектОбработан(ЭтотОбъект);
ПроведениеДокументов.ПередЗаписьюДокумента(ЭтотОбъект, РежимЗаписи, РежимПроведения);
Если РежимЗаписи = РежимЗаписиДокумента.Проведение Тогда
НоменклатураПартнеровСервер.ЗаполнитьПустоеСопоставлениеВНоменклатуреПартнераПоНоменклатуреИБ(Товары, Отказ);
КонецЕсли;
КонецПроцедуры
Процедура ПриЗаписи(Отказ)
Если ОбменДанными.Загрузка Тогда
Возврат;
КонецЕсли;
ПроведениеДокументов.ПриЗаписиДокумента(ЭтотОбъект, Отказ);
КонецПроцедуры
Процедура ОбработкаЗаполнения(ДанныеЗаполнения, СтандартнаяОбработка)
ТипДанныхЗаполнения = ТипЗнч(ДанныеЗаполнения);
Если ТипДанныхЗаполнения = Тип("Структура") Тогда
ЗаполнитьДокументПоОтбору(ДанныеЗаполнения);
ИначеЕсли ТипДанныхЗаполнения = Тип("СправочникСсылка.Партнеры") Тогда
ЗаполнитьДокументНаОснованииПартнера(ДанныеЗаполнения);
ИначеЕсли ТипДанныхЗаполнения = Тип("СправочникСсылка.СоглашенияСПоставщиками") Тогда
ЗаполнитьДокументНаОснованииСоглашенияСПоставщиком(ДанныеЗаполнения);
ИначеЕсли ТипДанныхЗаполнения = Тип("ДокументСсылка.ЗаказПоставщику")
Или ТипДанныхЗаполнения = Тип("ДокументСсылка.ПриемкаТоваровНаХранение")
Или ТипДанныхЗаполнения = Тип("ДокументСсылка.ПриобретениеТоваровУслуг") Тогда
Документы.РегистрацияЦенНоменклатурыПоставщика.ЗаполнитьРегистрациюЦенПоДокументуЗакупки(ДанныеЗаполнения, ЭтотОбъект);
ИначеЕсли ТипДанныхЗаполнения = Тип("ДокументСсылка.ПоступлениеТоваровНаСклад") Тогда
Документы.РегистрацияЦенНоменклатурыПоставщика.ЗаполнитьПоПоступлениюТоваров(ДанныеЗаполнения, ЭтотОбъект);
Иначе
РегистрацияЦенНоменклатурыПоставщикаЛокализация.ОбработкаЗаполнения(ЭтотОбъект, ДанныеЗаполнения, СтандартнаяОбработка);
КонецЕсли;
ИнициализироватьДокумент(ДанныеЗаполнения);
КонецПроцедуры
Процедура ОбработкаПроведения(Отказ, РежимПроведения)
ПроведениеДокументов.ОбработкаПроведенияДокумента(ЭтотОбъект, Отказ);
КонецПроцедуры
Процедура ОбработкаУдаленияПроведения(Отказ)
ПроведениеДокументов.ОбработкаУдаленияПроведенияДокумента(ЭтотОбъект, Отказ);
КонецПроцедуры
Процедура ПриКопировании(ОбъектКопирования)
ИнициализироватьДокумент();
КонецПроцедуры
#КонецОбласти
Процедура ЗаполнитьНаборыЗначенийДоступа(Таблица) Экспорт
Строка = Таблица.Добавить();
Строка.ЗначениеДоступа = Партнер;
КонецПроцедуры
#КонецЕсли