#Область ОписаниеПеременных
&НаКлиенте
Перем ВыполняетсяЗакрытие;
#КонецОбласти
#Область ОбработчикиСобытийФормы
&НаСервере
Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)
УстановитьУсловноеОформление();
Если Параметры.Свойство("АвтоТест") Тогда
Возврат;
КонецЕсли;
Если Параметры.Свойство("РежимВыбора") И Параметры.РежимВыбора Тогда
ДляВыбора = Истина;
КонецЕсли;
УпрощенныйВводДоступен = ПартнерыИКонтрагенты.УпрощенныйВводДоступен();
ПравоИзмененияОбъекта = Истина;
ИспользоватьБизнесРегионы = ПолучитьФункциональнуюОпцию("ИспользоватьБизнесРегионы");
ФиксироватьПервичныйИнтерес = ПолучитьФункциональнуюОпцию("ФиксироватьПервичныйИнтерес");
ИспользуютсяТолькоПартнеры = ПолучитьФункциональнуюОпцию("ИспользоватьПартнеровКакКонтрагентов");
ИспользоватьДополнительныеРеквизиты = ПолучитьФункциональнуюОпцию("ИспользоватьДополнительныеРеквизитыИСведения");
ЭтоБазовая = ПолучитьФункциональнуюОпцию("БазоваяВерсия");
ПравоРедактированияСоставСегмента = ПравоДоступа("Изменение", Метаданные.РегистрыСведений.ПартнерыСегмента);
ОформитьБанковскиеСчетаПриСозданииНаСервере();
Элементы.СтраницыПомощника.ОтображениеСтраниц = ОтображениеСтраницФормы.Нет;
Элементы.СтраницыКомпанияЧастноеЛицо.ОтображениеСтраниц = ОтображениеСтраницФормы.Нет;
Элементы.СтраницыБудетСоздан.ОтображениеСтраниц = ОтображениеСтраницФормы.Нет;
Элементы.ДекорацияПервичнаяИнформацияЗагрузить.Видимость = Не ЭтоБазовая;
ОткрытьПослеСоздания = Истина;
ОсновнойМенеджер = Пользователи.ТекущийПользователь();
ВалютаРеглУчета = ЗначениеНастроекПовтИсп.БазоваяВалютаПоУмолчанию();
ВалютаДенежныхСредств = ВалютаРеглУчета;
ЕстьПравоВключенияВСегмент = СегментыСервер.ЕстьПравоИзмененияСоставаСегментов("Партнеры");
Элементы.Сегмент.Видимость = ЕстьПравоВключенияВСегмент;
Элементы.СегментЧастноеЛицо.Видимость = ЕстьПравоВключенияВСегмент;
Если Параметры.Свойство("ВернутьСсылкуНаКонтрагента") Тогда
ВернутьСсылкуНаКонтрагента = Параметры.ВернутьСсылкуНаКонтрагента;
КонецЕсли;
Если Параметры.Свойство("СписокОтборПоТипуПартнера") Тогда
Для каждого ЭлементСписка Из Параметры.СписокОтборПоТипуПартнера Цикл
Если ЭлементСписка.Значение <> "НашеПредприятие" Тогда
ЭтотОбъект[ЭлементСписка.Значение] = Истина;
КонецЕсли;
КонецЦикла;
ИначеЕсли Параметры.Свойство("ПараметрыВыбора") Тогда
Если Параметры.ПараметрыВыбора.Свойство("Клиент")
И Параметры.ПараметрыВыбора.Клиент Тогда
Клиент = Истина;
КонецЕсли;
Если Параметры.ПараметрыВыбора.Свойство("Поставщик")
И Параметры.ПараметрыВыбора.Поставщик Тогда
Поставщик = Истина;
КонецЕсли;
Если Параметры.ПараметрыВыбора.Свойство("Конкурент")
И Параметры.ПараметрыВыбора.Конкурент Тогда
Конкурент = Истина;
КонецЕсли;
Если Параметры.ПараметрыВыбора.Свойство("ПрочиеОтношения")
И Параметры.ПараметрыВыбора.ПрочиеОтношения Тогда
ПрочиеОтношения = Истина;
КонецЕсли;
Если Параметры.ПараметрыВыбора.Свойство("Перевозчик")
И Параметры.ПараметрыВыбора.Перевозчик Тогда
Перевозчик = Истина;
КонецЕсли;
Если Параметры.ПараметрыВыбора.Свойство("ОбслуживаетсяТорговымиПредставителями")
И Параметры.ПараметрыВыбора.ОбслуживаетсяТорговымиПредставителями Тогда
ОбслуживаетсяТорговымиПредставителями = Истина;
КонецЕсли;
КонецЕсли;
Если ОбслуживаетсяТорговымиПредставителями Тогда
Клиент = Истина;
КонецЕсли;
Если Перевозчик Тогда
Поставщик = Истина;
КонецЕсли;
ЗаполнитьЗначенияСвойств(ПартнерОбъектДопРеквизиты, ЭтотОбъект, "Клиент, Конкурент, Поставщик, ПрочиеОтношения");
ТребуетсяОбновлениеЭлементовДопРеквизитов = Истина;
ОбновитьЗависимыеРеквизитыПризнакаПартнера(ЭтотОбъект);
Если Параметры.Свойство("Основание") И ТипЗнч(Параметры.Основание) = Тип("Структура") Тогда
Если Параметры.Основание.Свойство("Наименование") Тогда
Если ИспользуютсяТолькоПартнеры Тогда
Название = Параметры.Основание["Наименование"];
Иначе
ПолноеНаименование = Параметры.Основание["Наименование"];
КонецЕсли;
ИначеЕсли Параметры.Основание.Свойство("Описание") Тогда
Если ИспользуютсяТолькоПартнеры Тогда
ПолноеЮридическоеНаименование = Параметры.Основание["Описание"];
Иначе
ПолноеНаименование = Параметры.Основание["Описание"];
КонецЕсли;
КонецЕсли;
Если Параметры.Основание.Свойство("АдресЭППартнера") Тогда
АдресЭППартнера = Параметры.Основание.АдресЭППартнера;
КонецЕсли;
Если Параметры.Основание.Свойство("СокращенноеНаименование") Тогда
ПолноеЮридическоеНаименование = Параметры.Основание.СокращенноеНаименование;
КонецЕсли;
Если Параметры.Основание.Свойство("ЮридическийАдрес") Тогда
ЮридическийАдрес = Параметры.Основание.ЮридическийАдрес;
ЗначенияПолейКонтактнойИнформацииСервер(ЮридическийАдрес,
ЮридическийАдресЗначенияПолей,
Справочники.ВидыКонтактнойИнформации.ЮрАдресКонтрагента);
УказыватьЮридическиеРеквизиты = Истина;
КонецЕсли;
Если УказыватьЮридическиеРеквизиты Тогда
НаименованиеКонтрагента = ?(ИспользуютсяТолькоПартнеры, ПолноеЮридическоеНаименование, ПолноеНаименование);
КонецЕсли;
ИначеЕсли Параметры.Свойство("КонтрагентОснование") И ТипЗнч(Параметры.КонтрагентОснование) = Тип("Структура") Тогда
ЗаполнитьНаОснованииКонтрагента(Параметры.КонтрагентОснование,Отказ);
Если Отказ Тогда
Возврат;
КонецЕсли;
ИначеЕсли Параметры.Свойство("ВводНовогоРозничногоПокупателя") И Параметры.ВводНовогоРозничногоПокупателя Тогда
ПриСозданииНовогоРозничногоПокупателя();
ИначеЕсли ЗначениеЗаполнено(Параметры.ОснованиеОбособленныйКонтрагент) Тогда
ПриСозданииНовогоГоловногоКонтрагента();
ИначеЕсли Не Параметры.Свойство("РаботаСКонтрагентамиСозданиеИзДосьеКонтрагента")
И Параметры.Свойство("ТекстЗаполнения")
И Не ПустаяСтрока(Параметры.ТекстЗаполнения) Тогда
Если ИспользуютсяТолькоПартнеры Тогда
ПолноеЮридическоеНаименование = Параметры.ТекстЗаполнения;
Иначе
ПолноеНаименование = Параметры.ТекстЗаполнения;
КонецЕсли;
КонецЕсли;
Взаимодействия.ПодготовитьОповещения(ЭтотОбъект,Параметры,Ложь);
ОбработатьЭлементыРедактированияКонтактнойИнформации();
ПартнерыИКонтрагентыЛокализация.ПриСозданииНаСервереФормаПомощникНового(ЭтотОбъект, Отказ, СтандартнаяОбработка);
УправлениеДоступом.ПриСозданииФормыЗначенияДоступа(ЭтотОбъект, "ГруппаДоступа",, Тип("СправочникСсылка.Партнеры"), Истина);
ИспользуютсяГруппыДоступаПартнеров = Справочники.ГруппыДоступаПартнеров.ИспользуютсяГруппыДоступа();
Если Не ИспользуютсяГруппыДоступаПартнеров Тогда
Элементы.ГруппаДоступаЧастноеЛицо.Видимость = Ложь;
КонецЕсли;
Если ИспользуютсяТолькоПартнеры Тогда
УказыватьЮридическиеРеквизиты = Не НаОснованииДанныхРозничногоПокупателя;
Элементы.СтраницыУказыватьЮрРеквизитыКонтрагентОснование.Видимость = Ложь;
Элементы.СтраницыУказыватьСоздаватьКонтрагентаОснование.Видимость = Ложь;
Элементы.РабочееНаименованиеЧастноеЛицо.Видимость = Ложь;
Элементы.СокрЮрНаименованиеКонтрагента.Видимость = Ложь;
Элементы.ЗаполнитьПоНаименованиюПоДаннымЕдиныхГосРеестров.Видимость = Ложь;
Элементы.ДействиеСКонтрагентом.Видимость = Ложь;
Элементы.УказатьБанковскийСчетКонтрагента.Заголовок = НСтр("ru = 'Указать данные банковского счета.'");
Элементы.СтраницыНаименованиеПартнера.ТекущаяСтраница = Элементы.СтраницаСокрЮрНаименование;
Элементы.ДействиеПоРезультатамНайдено.СписокВыбора.Удалить(1);
Элементы.ДействиеПоРезультатамНайдено.СписокВыбора.Получить(0).Представление = НСтр("ru = 'Не регистрировать нового контрагента, использовать найденного.'");
Элементы.ДействиеПоРезультатамНайдено.СписокВыбора.Получить(1).Представление = НСтр("ru = 'Продолжить регистрацию нового контрагента.'");
КонецЕсли;
ВидимостьСтраницПервичнаяИнформация();
УстановитьЗаголовки();
ОпределитьОбязательностьКонтактнойИнформации();
ДополнительныеПараметры = Новый Структура;
ДополнительныеПараметры.Вставить("ИмяЭлементаДляРазмещения", "ГруппаДополнительныеРеквизиты");
ДополнительныеПараметры.Вставить("ИмяЭлементаКоманднойПанели", "ИзменениеСоставаДопРеквизитов");
ДополнительныеПараметры.Вставить("Объект", ПартнерОбъектДопРеквизиты);
УправлениеСвойствами.ПриСозданииНаСервере(ЭтотОбъект, ДополнительныеПараметры);
ЮрФизЛицо = ТипЮрФизЛицаПартнера(ЭтоКомпания);
Если ПолучитьФункциональнуюОпцию("ИспользоватьМногострановойУчет") Тогда
Элементы.ВидЮрЛицо.СписокВыбора.Удалить(1);
КонецЕсли;
СобытияФорм.ПриСозданииНаСервере(ЭтотОбъект, Отказ, СтандартнаяОбработка);
КонецПроцедуры
&НаКлиенте
Процедура ПриОткрытии(Отказ)
ОтключитьОтметкуНезаполненного();
УправлениеСтраницамиПодвал();
КонецПроцедуры
&НаКлиенте
Процедура ПередЗакрытием(Отказ, ЗавершениеРаботы, ТекстПредупреждения, СтандартнаяОбработка)
Если Не ЗавершениеРаботы И Не ВыполняетсяЗакрытие Тогда
Если СозданиеВыполнено Тогда
Возврат;
КонецЕсли;
НеобходимостьВопроса = Ложь;
Если Элементы.СтраницыПомощника.ТекущаяСтраница = Элементы.СтраницаНайдено И ДействиеПоРезультатамНайдено = 0 Тогда
НеобходимостьВопроса = Ложь;
ИначеЕсли Элементы.СтраницыПомощника.ТекущаяСтраница <> Элементы.СтраницаПервичнаяИнформация Тогда
НеобходимостьВопроса = Истина;
Иначе
Если ЭтоКомпания = 0 Тогда
Если ЗначениеЗаполнено(Название) Или ЗначениеЗаполнено(ТелефонПартнера) Или ЗначениеЗаполнено(АдресЭППартнера) Тогда
НеобходимостьВопроса = Истина;
ИначеЕсли УказыватьЮридическиеРеквизиты И ВидКомпании = 1 Тогда
Если ЗначениеЗаполнено(НаименованиеКонтрагента) Тогда
НеобходимостьВопроса = Истина;
КонецЕсли
ИначеЕсли УказатьДанныеКонтактногоЛица И (ЗначениеЗаполнено(ФамилияКЛ) Или ЗначениеЗаполнено(ИмяКЛ) Или ЗначениеЗаполнено(ОтчествоКЛ)
Или ЗначениеЗаполнено(ТелефонКЛ) Или ЗначениеЗаполнено(АдресЭПКЛ) Или ЗначениеЗаполнено(МобильныйТелефонКЛ) Или
ЗначениеЗаполнено(Роль)) Тогда
НеобходимостьВопроса = Истина;
КонецЕсли;
Иначе
Если ЗначениеЗаполнено(ФамилияПартнера) Или ЗначениеЗаполнено(ИмяПартнера) Или ЗначениеЗаполнено(ОтчествоПартнера)
Или ЗначениеЗаполнено(АдресЭППартнераФизЛицо) Или ЗначениеЗаполнено(ТелефонПартнераФизЛицо) Тогда
НеобходимостьВопроса = Истина;
КонецЕсли;
КонецЕсли;
КонецЕсли;
Если НЕ НеобходимостьВопроса Тогда
НеобходимостьВопроса = ПартнерыИКонтрагентыЛокализацияКлиент.НеобходимостьВопросаПередЗакрытием(ЭтотОбъект);
КонецЕсли;
Если НеобходимостьВопроса Тогда
Отказ = Истина;
ПоказатьВопрос(Новый ОписаниеОповещения("ПередЗакрытиемЗавершение", ЭтотОбъект), НСтр("ru='Введенная информация будет потеряна. Все равно закрыть?'"),РежимДиалогаВопрос.ДаНет);
КонецЕсли;
КонецЕсли;
КонецПроцедуры
&НаКлиенте
Процедура ПередЗакрытиемЗавершение(РезультатВопроса, ДополнительныеПараметры) Экспорт
Ответ = РезультатВопроса;
Если Ответ = КодВозвратаДиалога.Да Тогда
ВыполняетсяЗакрытие = Истина;
Закрыть();
КонецЕсли;
КонецПроцедуры
#КонецОбласти
#Область ОбработчикиСобытийЭлементовШапкиФормы
#Область ОбработчикиКонтактнойИнформации
#Область КонтактнаяИнформацияКонтактногоЛица
&НаКлиенте
Процедура ТелефонКЛНачалоВыбора(Элемент, ДанныеВыбора, СтандартнаяОбработка)
СтандартнаяОбработка = Ложь;
ОбработкаСобытияЭлементаКИТелефон(
Элемент,
ПредопределенноеЗначение("Справочник.ВидыКонтактнойИнформации.ТелефонКонтактногоЛица"),
"ТелефонКЛ",
"ТелефонКЛЗначенияПолей",
"НачалоВыбора");
КонецПроцедуры
&НаКлиенте
Процедура ТелефонКЛПриИзменении(Элемент)
ОбработкаСобытияЭлементаКИТелефон(
Элемент,
ПредопределенноеЗначение("Справочник.ВидыКонтактнойИнформации.ТелефонКонтактногоЛица"),
"ТелефонКЛ",
"ТелефонКЛЗначенияПолей",
"ПриИзменении");
КонецПроцедуры
&НаКлиенте
Процедура ТелефонКЛОчистка(Элемент, СтандартнаяОбработка)
ОбработкаСобытияЭлементаКИТелефон(
Элемент,
ПредопределенноеЗначение("Справочник.ВидыКонтактнойИнформации.ТелефонКонтактногоЛица"),
"ТелефонКЛ",
"ТелефонКЛЗначенияПолей",
"Очистка");
КонецПроцедуры
&НаКлиенте
Процедура МобильныйТелефонКЛНачалоВыбора(Элемент, ДанныеВыбора, СтандартнаяОбработка)
СтандартнаяОбработка = Ложь;
ОбработкаСобытияЭлементаКИТелефон(
Элемент,
ПредопределенноеЗначение("Справочник.ВидыКонтактнойИнформации.МобильныйТелефонКонтактногоЛица"),
"МобильныйТелефонКЛ",
"МобильныйТелефонКЛЗначенияПолей",
"НачалоВыбора");
КонецПроцедуры
&НаКлиенте
Процедура МобильныйТелефонКЛПриИзменении(Элемент)
ОбработкаСобытияЭлементаКИТелефон(
Элемент,
ПредопределенноеЗначение("Справочник.ВидыКонтактнойИнформации.МобильныйТелефонКонтактногоЛица"),
"МобильныйТелефонКЛ",
"МобильныйТелефонКЛЗначенияПолей",
"ПриИзменении");
КонецПроцедуры
&НаКлиенте
Процедура МобильныйТелефонКЛОчистка(Элемент, СтандартнаяОбработка)
ОбработкаСобытияЭлементаКИТелефон(
Элемент,
ПредопределенноеЗначение("Справочник.ВидыКонтактнойИнформации.МобильныйТелефонКонтактногоЛица"),
"МобильныйТелефонКЛ",
"МобильныйТелефонКЛЗначенияПолей",
"Очистка");
КонецПроцедуры
&НаКлиенте
Процедура АдресЭПКЛПриИзменении(Элемент)
ОтключитьОтметкуНезаполненного();
КонецПроцедуры
#КонецОбласти
#Область КонтактнаяИнформацияКомпании
&НаКлиенте
Процедура ТелефонПартнераНачалоВыбора(Элемент, ДанныеВыбора, СтандартнаяОбработка)
СтандартнаяОбработка = Ложь;
ОбработкаСобытияЭлементаКИТелефон(
Элемент,
ПредопределенноеЗначение("Справочник.ВидыКонтактнойИнформации.ТелефонПартнера"),
"ТелефонПартнера",
"ТелефонПартнераЗначенияПолей",
"НачалоВыбора");
КонецПроцедуры
&НаКлиенте
Процедура ТелефонПартнераПриИзменении(Элемент)
ОбработкаСобытияЭлементаКИТелефон(
Элемент,
ПредопределенноеЗначение("Справочник.ВидыКонтактнойИнформации.ТелефонПартнера"),
"ТелефонПартнера",
"ТелефонПартнераЗначенияПолей",
"ПриИзменении");
КонецПроцедуры
&НаКлиенте
Процедура ТелефонПартнераОчистка(Элемент, СтандартнаяОбработка)
ОбработкаСобытияЭлементаКИТелефон(
Элемент,
ПредопределенноеЗначение("Справочник.ВидыКонтактнойИнформации.ТелефонПартнера"),
"ТелефонПартнера",
"ТелефонПартнераЗначенияПолей",
"Очистка");
КонецПроцедуры
&НаКлиенте
Процедура АдресЭППартнераПриИзменении(Элемент)
ОтключитьОтметкуНезаполненного();
КонецПроцедуры
&НаКлиенте
Процедура ФактическийАдресПриИзменении(Элемент)
ОбработкаСобытияЭлементаКИАдрес(Элемент,
ПредопределенноеЗначение("Справочник.ВидыКонтактнойИнформации.ФактАдресКонтрагента"),
"ФактическийАдрес",
"ФактическийАдресЗначенияПолей",
"ПриИзменении");
КонецПроцедуры
&НаКлиенте
Процедура ФактическийАдресНачалоВыбора(Элемент, ДанныеВыбора, СтандартнаяОбработка)
СтандартнаяОбработка = Ложь;
ОбработкаСобытияЭлементаКИАдрес(Элемент,
ПредопределенноеЗначение("Справочник.ВидыКонтактнойИнформации.ФактАдресКонтрагента"),
"ФактическийАдрес",
"ФактическийАдресЗначенияПолей",
"НачалоВыбора");
КонецПроцедуры
&НаКлиенте
Процедура ФактическийАдресОчистка(Элемент, СтандартнаяОбработка)
СтандартнаяОбработка = Ложь;
ОбработкаСобытияЭлементаКИАдрес(Элемент,
ПредопределенноеЗначение("Справочник.ВидыКонтактнойИнформации.ФактАдресКонтрагента"),
"ФактическийАдрес",
"ФактическийАдресЗначенияПолей",
"Очистка");
КонецПроцедуры
&НаКлиенте
Процедура ЮридическийАдресНачалоВыбора(Элемент, ДанныеВыбора, СтандартнаяОбработка)
СтандартнаяОбработка = Ложь;
ОбработкаСобытияЭлементаКИАдрес(Элемент,
ПредопределенноеЗначение("Справочник.ВидыКонтактнойИнформации.ЮрАдресКонтрагента"),
"ЮридическийАдрес",
"ЮридическийАдресЗначенияПолей",
"НачалоВыбора");
КонецПроцедуры
&НаКлиенте
Процедура ЮридическийАдресОчистка(Элемент, СтандартнаяОбработка)
СтандартнаяОбработка = Ложь;
ОбработкаСобытияЭлементаКИАдрес(Элемент,
ПредопределенноеЗначение("Справочник.ВидыКонтактнойИнформации.ЮрАдресКонтрагента"),
"ЮридическийАдрес",
"ЮридическийАдресЗначенияПолей",
"Очистка");
КонецПроцедуры
&НаКлиенте
Процедура ЮридическийАдресПриИзменении(Элемент)
СтандартнаяОбработка = Ложь;
ОбработкаСобытияЭлементаКИАдрес(Элемент,
ПредопределенноеЗначение("Справочник.ВидыКонтактнойИнформации.ЮрАдресКонтрагента"),
"ЮридическийАдрес",
"ЮридическийАдресЗначенияПолей",
"ПриИзменении");
КонецПроцедуры
#КонецОбласти
#Область КонтактнаяИнформацияЧастноеЛицо
&НаКлиенте
Процедура ТелефонПартнераФизЛицоНачалоВыбора(Элемент, ДанныеВыбора, СтандартнаяОбработка)
СтандартнаяОбработка = Ложь;
ОбработкаСобытияЭлементаКИТелефон(
Элемент,
ПредопределенноеЗначение("Справочник.ВидыКонтактнойИнформации.ТелефонПартнера"),
"ТелефонПартнераФизЛицо",
"ТелефонПартнераФизЛицоЗначенияПолей",
"НачалоВыбора");
КонецПроцедуры
&НаКлиенте
Процедура ТелефонПартнераФизЛицоПриИзменении(Элемент)
ОбработкаСобытияЭлементаКИТелефон(
Элемент,
ПредопределенноеЗначение("Справочник.ВидыКонтактнойИнформации.ТелефонПартнера"),
"ТелефонПартнераФизЛицо",
"ТелефонПартнераФизЛицоЗначенияПолей",
"ПриИзменении");
КонецПроцедуры
&НаКлиенте
Процедура ТелефонПартнераФизЛицоОчистка(Элемент, СтандартнаяОбработка)
ОбработкаСобытияЭлементаКИТелефон(
Элемент,
ПредопределенноеЗначение("Справочник.ВидыКонтактнойИнформации.ТелефонПартнера"),
"ТелефонПартнераФизЛицо",
"ТелефонПартнераФизЛицоЗначенияПолей",
"Очистка");
КонецПроцедуры
&НаКлиенте
Процедура ФактическийАдресЧастноеЛицоНачалоВыбора(Элемент, ДанныеВыбора, СтандартнаяОбработка)
СтандартнаяОбработка = Ложь;
ОбработкаСобытияЭлементаКИАдрес(Элемент,
ПредопределенноеЗначение("Справочник.ВидыКонтактнойИнформации.ФактАдресКонтрагента"),
"ФактическийАдрес",
"ФактическийАдресЗначенияПолей",
"НачалоВыбора");
КонецПроцедуры
&НаКлиенте
Процедура ФактическийАдресЧастноеЛицоОчистка(Элемент, СтандартнаяОбработка)
СтандартнаяОбработка = Ложь;
ОбработкаСобытияЭлементаКИАдрес(Элемент,
ПредопределенноеЗначение("Справочник.ВидыКонтактнойИнформации.ФактАдресКонтрагента"),
"ФактическийАдрес",
"ФактическийАдресЗначенияПолей",
"Очистка");
КонецПроцедуры
&НаКлиенте
Процедура ФактическийАдресЧастноеЛицоПриИзменении(Элемент)
ОбработкаСобытияЭлементаКИАдрес(Элемент,
ПредопределенноеЗначение("Справочник.ВидыКонтактнойИнформации.ФактАдресКонтрагента"),
"ФактическийАдрес",
"ФактическийАдресЗначенияПолей",
"ПриИзменении");
КонецПроцедуры
#КонецОбласти
#Область КонтактнаяИнформацияГоловногоКонтрагента
&НаКлиенте
Процедура ФактическийАдресГоловногоКонтрагентаПриИзменении(Элемент)
ОбработкаСобытияЭлементаКИАдрес(Элемент,
ПредопределенноеЗначение("Справочник.ВидыКонтактнойИнформации.ФактАдресКонтрагента"),
"ФактическийАдресГоловногоКонтрагента",
"ФактическийАдресГоловногоКонтрагентаЗначенияПолей",
"ПриИзменении");
КонецПроцедуры
&НаКлиенте
Процедура ФактическийАдресГоловногоКонтрагентаНачалоВыбора(Элемент, ДанныеВыбора, СтандартнаяОбработка)
СтандартнаяОбработка = Ложь;
ОбработкаСобытияЭлементаКИАдрес(Элемент,
ПредопределенноеЗначение("Справочник.ВидыКонтактнойИнформации.ФактАдресКонтрагента"),
"ФактическийАдресГоловногоКонтрагента",
"ФактическийАдресГоловногоКонтрагентаЗначенияПолей",
"НачалоВыбора");
КонецПроцедуры
&НаКлиенте
Процедура ФактическийАдресГоловногоКонтрагентаОчистка(Элемент, СтандартнаяОбработка)
СтандартнаяОбработка = Ложь;
ОбработкаСобытияЭлементаКИАдрес(Элемент,
ПредопределенноеЗначение("Справочник.ВидыКонтактнойИнформации.ФактАдресКонтрагента"),
"ФактическийАдресГоловногоКонтрагента",
"ФактическийАдресГоловногоКонтрагентаЗначенияПолей",
"Очистка");
КонецПроцедуры
&НаКлиенте
Процедура ЮридическийАдресГоловногоКонтрагентаПриИзменении(Элемент)
СтандартнаяОбработка = Ложь;
ОбработкаСобытияЭлементаКИАдрес(Элемент,
ПредопределенноеЗначение("Справочник.ВидыКонтактнойИнформации.ЮрАдресКонтрагента"),
"ЮридическийАдресГоловногоКонтрагента",
"ЮридическийАдресГоловногоКонтрагентаЗначенияПолей",
"ПриИзменении");
КонецПроцедуры
&НаКлиенте
Процедура ЮридическийАдресГоловногоКонтрагентаНачалоВыбора(Элемент, ДанныеВыбора, СтандартнаяОбработка)
СтандартнаяОбработка = Ложь;
ОбработкаСобытияЭлементаКИАдрес(Элемент,
ПредопределенноеЗначение("Справочник.ВидыКонтактнойИнформации.ЮрАдресКонтрагента"),
"ЮридическийАдресГоловногоКонтрагента",
"ЮридическийАдресГоловногоКонтрагентаЗначенияПолей",
"НачалоВыбора");
КонецПроцедуры
&НаКлиенте
Процедура ЮридическийАдресГоловногоКонтрагентаОчистка(Элемент, СтандартнаяОбработка)
СтандартнаяОбработка = Ложь;
ОбработкаСобытияЭлементаКИАдрес(Элемент,
ПредопределенноеЗначение("Справочник.ВидыКонтактнойИнформации.ЮрАдресКонтрагента"),
"ЮридическийАдресГоловногоКонтрагента",
"ЮридическийАдресГоловногоКонтрагентаЗначенияПолей",
"Очистка");
КонецПроцедуры
#КонецОбласти
#КонецОбласти
#Область ОбработчикиБанковскихРеквизитов
#Область БанковскийСчетПартнера
&НаКлиенте
Процедура УказатьБанковскийСчетКонтрагентаПриИзменении(Элемент)
УправлениеДоступностьюРасчетныйСчет(УказатьБанковскийСчетКонтрагента);
КонецПроцедуры
&НаКлиенте
Процедура НомерСчетаПриИзменении(Элемент)
НомерСчетаПриИзмененииКлиент();
КонецПроцедуры
&НаКлиенте
Процедура НомерСчетаОкончаниеВводаТекста(Элемент, Текст, ДанныеВыбора, Параметры, СтандартнаяОбработка)
ТекстСообщения = "";
ОчиститьСообщения();
Валютный = ВалютаДенежныхСредств <> ВалютаРеглУчета;
Текст = ВРег(СтрЗаменить(СтрЗаменить(СокрЛП(Текст), " ", ""), ".", ""));
Если Не ПустаяСтрока(Текст) И Не ИностранныйБанк И НЕ МеждународныеРеквизитыБанковскихСчетов
И Не ДенежныеСредстваКлиентСерверЛокализация.ПроверитьКорректностьНомераСчета(Текст, Валютный, ТекстСообщения) Тогда
ПартнерыИКонтрагентыКлиент.ВывестиСообщениеПользователю(ТекстСообщения, ИспользуютсяТолькоПартнеры, "НомерСчета");
КонецЕсли;
КонецПроцедуры
&НаКлиенте
Процедура ЭтоIBANПриИзменении(Элемент)
ПриИзмененииIBAN();
КонецПроцедуры
&НаКлиенте
Процедура БанкПриИзменении(Элемент)
ПриИзмененииБанка();
КонецПроцедуры
&НаКлиенте
Процедура СпособУказанияБанкаПриИзменении(Элемент)
ПриИзмененииРучноеИзменениеРеквизитовБанка()
КонецПроцедуры
&НаКлиенте
Процедура БанкВГруппеПриИзменении(Элемент)
ПриИзмененииБанка();
КонецПроцедуры
&НаКлиенте
Процедура БИКБанкаПриИзменении(Элемент)
ЗаполнитьОсновныеРеквизитыБанка(ЭтотОбъект)
КонецПроцедуры
&НаКлиенте
Процедура КоррСчетБанкаПриИзменении(Элемент)
ЗаполнитьОсновныеРеквизитыБанка(ЭтотОбъект)
КонецПроцедуры
&НаКлиенте
Процедура СчетВБанкеДляРасчетовПриИзменении(Элемент)
ЗаполнитьОсновныеРеквизитыБанка(ЭтотОбъект)
КонецПроцедуры
&НаКлиенте
Процедура НаименованиеБанкаПриИзменении(Элемент)
ЗаполнитьОсновныеРеквизитыБанка(ЭтотОбъект);
КонецПроцедуры
&НаКлиенте
Процедура СВИФТБанкаПриИзменении(Элемент)
ЗаполнитьОсновныеРеквизитыБанка(ЭтотОбъект)
КонецПроцедуры
&НаКлиенте
Процедура НаименованиеБанкаМеждународноеПриИзменении(Элемент)
ЗаполнитьОсновныеРеквизитыБанка(ЭтотОбъект);
КонецПроцедуры
&НаКлиенте
Процедура ВалютаДенежныхСредствПриИзменении(Элемент)
ОтключитьОтметкуНезаполненного();
УправлениеЭлементамиБанковскийСчет(ЭтотОбъект);
КонецПроцедуры
&НаКлиенте
Процедура ИспользуетсяБанкДляРасчетовПриИзменении(Элемент)
ПриИзмененииИспользуетсяБанкДляРасчетов();
КонецПроцедуры
&НаКлиенте
Процедура БанкДляРасчетовПриИзменении(Элемент)
ПриИзмененииБанкаДляРасчетов();
КонецПроцедуры
&НаКлиенте
Процедура СпособУказанияБанкаДляРасчетовПриИзменении(Элемент)
ПриИзмененииРучноеИзменениеРеквизитовБанкаДляРасчетов()
КонецПроцедуры
&НаКлиенте
Процедура БанкДляРасчетовВГруппеПриИзменении(Элемент)
ПриИзмененииБанкаДляРасчетов();
КонецПроцедуры
&НаКлиенте
Процедура БИКБанкаДляРасчетовПриИзменении(Элемент)
ЗаполнитьОсновныеРеквизитыБанкаДляРасчетов(ЭтотОбъект)
КонецПроцедуры
&НаКлиенте
Процедура НаименованиеБанкаДляРасчетовПриИзменении(Элемент)
ЗаполнитьОсновныеРеквизитыБанкаДляРасчетов(ЭтотОбъект)
КонецПроцедуры
&НаКлиенте
Процедура СВИФТБанкаДляРасчетовПриИзменении(Элемент)
ЗаполнитьОсновныеРеквизитыБанкаДляРасчетов(ЭтотОбъект)
КонецПроцедуры
&НаКлиенте
Процедура НаименованиеБанкаДляРасчетовМеждународноеПриИзменении(Элемент)
ЗаполнитьОсновныеРеквизитыБанкаДляРасчетов(ЭтотОбъект)
КонецПроцедуры
#КонецОбласти
#Область БанковскийСчетГоловногоКонтрагента
&НаКлиенте
Процедура УказатьБанковскийСчетГоловногоКонтрагентаПриИзменении(Элемент)
УправлениеДоступностьюРасчетныйСчет(УказатьБанковскийСчетГоловногоКонтрагента, Истина);
КонецПроцедуры
&НаКлиенте
Процедура НомерСчетаГоловнойКонтрагентПриИзменении(Элемент)
НомерСчетаПриИзмененииКлиент(Истина);
КонецПроцедуры
&НаКлиенте
Процедура НомерСчетаГоловнойКонтрагентОкончаниеВводаТекста(
Элемент,
Текст,
ДанныеВыбора,
Параметры,
СтандартнаяОбработка)
ТекстСообщения = "";
ОчиститьСообщения();
Валютный = (ВалютаДенежныхСредствГоловнойКонтрагент <> ВалютаРеглУчета);
Если НЕ ПустаяСтрока(Текст) И Не ИностранныйБанкГоловнойКонтрагент И НЕ МеждународныеРеквизитыБанковскихСчетов
И НЕ ДенежныеСредстваКлиентСерверЛокализация.ПроверитьКорректностьНомераСчета(Текст, Валютный, ТекстСообщения) Тогда
ПартнерыИКонтрагентыКлиент.ВывестиСообщениеПользователю(
ТекстСообщения, ИспользуютсяТолькоПартнеры, "НомерСчетаГоловнойКонтрагент");
КонецЕсли;
КонецПроцедуры
&НаКлиенте
Процедура ЭтоIBANГоловнойКонтрагентПриИзменении(Элемент)
ПриИзмененииIBAN(Истина);
КонецПроцедуры
&НаКлиенте
Процедура БанкГоловнойКонтрагентПриИзменении(Элемент)
ПриИзмененииБанка(Истина);
КонецПроцедуры
&НаКлиенте
Процедура СпособУказанияБанкаГоловнойКонтрагентПриИзменении(Элемент)
ПриИзмененииРучноеИзменениеРеквизитовБанка(Истина)
КонецПроцедуры
&НаКлиенте
Процедура БанкВГруппеГоловнойКонтрагентПриИзменении(Элемент)
ПриИзмененииБанка(Истина);
КонецПроцедуры
&НаКлиенте
Процедура БИКБанкаГоловнойКонтрагентПриИзменении(Элемент)
ЗаполнитьОсновныеРеквизитыБанка(ЭтотОбъект, Истина)
КонецПроцедуры
&НаКлиенте
Процедура КоррСчетБанкаГоловнойКонтрагентПриИзменении(Элемент)
ЗаполнитьОсновныеРеквизитыБанка(ЭтотОбъект, Истина)
КонецПроцедуры
&НаКлиенте
Процедура СчетВБанкеДляРасчетовГоловнойКонтрагентПриИзменении(Элемент)
ЗаполнитьОсновныеРеквизитыБанка(ЭтотОбъект, Истина)
КонецПроцедуры
&НаКлиенте
Процедура НаименованиеБанкаГоловнойКонтрагентПриИзменении(Элемент)
ЗаполнитьОсновныеРеквизитыБанка(ЭтотОбъект, Истина);
КонецПроцедуры
&НаКлиенте
Процедура СВИФТБанкаГоловнойКонтрагентПриИзменении(Элемент)
ЗаполнитьОсновныеРеквизитыБанка(ЭтотОбъект, Истина)
КонецПроцедуры
&НаКлиенте
Процедура НаименованиеБанкаМеждународноеГоловнойКонтрагентПриИзменении(Элемент)
ЗаполнитьОсновныеРеквизитыБанка(ЭтотОбъект, Истина);
КонецПроцедуры
&НаКлиенте
Процедура ВалютаДенежныхСредствГоловнойКонтрагентПриИзменении(Элемент)
ОтключитьОтметкуНезаполненного();
УправлениеЭлементамиБанковскийСчет(ЭтотОбъект, Истина);
КонецПроцедуры
&НаКлиенте
Процедура ИспользуетсяБанкДляРасчетовГоловнойКонтрагентПриИзменении(Элемент)
ПриИзмененииИспользуетсяБанкДляРасчетов(Истина);
КонецПроцедуры
&НаКлиенте
Процедура БанкДляРасчетовГоловнойКонтрагентПриИзменении(Элемент)
ПриИзмененииБанкаДляРасчетов(Истина);
КонецПроцедуры
&НаКлиенте
Процедура СпособУказанияБанкаДляРасчетовГоловнойКонтрагентПриИзменении(Элемент)
ПриИзмененииРучноеИзменениеРеквизитовБанкаДляРасчетов(Истина)
КонецПроцедуры
&НаКлиенте
Процедура БанкДляРасчетовВГруппеГоловнойКонтрагентПриИзменении(Элемент)
ПриИзмененииБанкаДляРасчетов(Истина);
КонецПроцедуры
&НаКлиенте
Процедура БИКБанкаДляРасчетовГоловнойКонтрагентПриИзменении(Элемент)
ЗаполнитьОсновныеРеквизитыБанкаДляРасчетов(ЭтотОбъект, Истина)
КонецПроцедуры
&НаКлиенте
Процедура НаименованиеБанкаДляРасчетовГоловнойКонтрагентПриИзменении(Элемент)
ЗаполнитьОсновныеРеквизитыБанкаДляРасчетов(ЭтотОбъект, Истина)
КонецПроцедуры
&НаКлиенте
Процедура СВИФТБанкаДляРасчетовГоловнойКонтрагентПриИзменении(Элемент)
ЗаполнитьОсновныеРеквизитыБанкаДляРасчетов(ЭтотОбъект, Истина)
КонецПроцедуры
&НаКлиенте
Процедура НаименованиеБанкаДляРасчетовМеждународноеГоловнойКонтрагентПриИзменении(Элемент)
ЗаполнитьОсновныеРеквизитыБанкаДляРасчетов(ЭтотОбъект, Истина)
КонецПроцедуры
#КонецОбласти
#КонецОбласти
#Область ОбработчикиСобытийЭлементовТаблицФормы
#Область ТаблицаНайдено
&НаКлиенте
Процедура ДеревоНайденоВыбор(Элемент, ВыбраннаяСтрока, Поле, СтандартнаяОбработка)
СтандартнаяОбработка = Ложь;
ТекущиеДанные = Элементы.ТаблицаНайдено.ТекущиеДанные;
Если ТекущиеДанные = Неопределено Тогда
Возврат;
КонецЕсли;
ПоказатьЗначение(Неопределено, ТекущиеДанные.Партнер);
КонецПроцедуры
&НаКлиенте
Процедура ДеревоНайденоПриАктивизацииСтроки(Элемент)
ПодключитьОбработчикОжидания("ЗаполнитьДеревоСравненияПартнеров", 0.2, Истина);
КонецПроцедуры
#КонецОбласти
#Область ДеревоСравненияПартнеров
&НаКлиенте
Процедура ДеревоСравненияПартнеровВыбор(Элемент, ВыбраннаяСтрока, Поле, СтандартнаяОбработка)
СтандартнаяОбработка = Ложь;
ТекущиеДанные = Элементы.ДеревоСравненияПартнеров.ТекущиеДанные;
Если ТекущиеДанные = Неопределено Тогда
Возврат;
КонецЕсли;
ПоказатьЗначение(Неопределено, ТекущиеДанные.НайденоПоСсылка);
КонецПроцедуры
#КонецОбласти
#Область ОбособленныеПодразделения
&НаКлиенте
Процедура ОбособленныеПодразделенияВыбор(Элемент, ВыбраннаяСтрока, Поле, СтандартнаяОбработка)
СтандартнаяОбработка = Ложь;
ТекущиеДанные = Элементы.ОбособленныеПодразделения.ТекущиеДанные;
Если ТекущиеДанные = Неопределено Тогда
Возврат;
КонецЕсли;
ПоказатьЗначение(Неопределено, ТекущиеДанные.Контрагент);
КонецПроцедуры
#КонецОбласти
#КонецОбласти
#Область ОбработчикиПрочихРеквизитов
#Область УниверсальныеОбработчикиСобытий
&НаКлиенте
Процедура Подключаемый_ОкончаниеВводаТекста(Элемент, Текст, ДанныеВыбора, Параметры, СтандартнаяОбработка)
ПартнерыИКонтрагентыЛокализацияКлиент.ОкончаниеВводаТекста_Контрагент(Элемент,
Текст,
ДанныеВыбора,
Параметры,
СтандартнаяОбработка,
ЭтотОбъект);
КонецПроцедуры
&НаКлиенте
Процедура Подключаемый_ПриИзмененииРеквизита(Элемент)
ПартнерыИКонтрагентыЛокализацияКлиент.ПриИзмененииРеквизита_Контрагент(
Элемент,
ЭтотОбъект);
КонецПроцедуры
&НаКлиенте
Процедура Подключаемый_ОбработкаНавигационнойСсылкиФормы(Элемент, НавигационнаяСсылкаФорматированнойСтроки, СтандартнаяОбработка)
СтандартнаяОбработка = Ложь;
ПартнерыИКонтрагентыЛокализацияКлиент.ОбработкаНавигационнойСсылкиФормы_Контрагент(Элемент,
НавигационнаяСсылкаФорматированнойСтроки,
СтандартнаяОбработка,
ЭтотОбъект);
КонецПроцедуры
&НаКлиенте
Процедура ПриОкончанииИзмененияРеквизитаЛокализации(ИмяЭлемента, ДополнительныеПараметры) Экспорт
Если ДополнительныеПараметры.ТребуетсяВызовСервера Тогда
ПриОкончанииИзмененияРеквизитаЛокализацииНаСервере(ИмяЭлемента, ДополнительныеПараметры.ПараметрыОбработки);
КонецЕсли;
КонецПроцедуры
&НаСервере
Процедура ПриОкончанииИзмененияРеквизитаЛокализацииНаСервере(ИмяЭлемента, ПараметрыОбработки)
ПартнерыИКонтрагентыЛокализация.ПриОкончанииИзмененияРеквизита_Контрагент(ИмяЭлемента, ЭтотОбъект);
ВидимостьСтраницПервичнаяИнформация();
КонецПроцедуры
#КонецОбласти
&НаКлиенте
Процедура ИННПриИзменении(Элемент)
ПартнерыИКонтрагентыЛокализацияКлиент.ПроверитьИНН(ЭтотОбъект);
КонецПроцедуры
&НаКлиенте
Процедура ОГРНПриИзменении(Элемент)
ПартнерыИКонтрагентыЛокализацияКлиент.ПроверитьОГРН(ЭтотОбъект);
КонецПроцедуры
&НаКлиенте
Процедура ОГРНИППриИзменении(Элемент)
ПартнерыИКонтрагентыЛокализацияКлиент.ПроверитьОГРН(ЭтотОбъект);
КонецПроцедуры
&НаКлиенте
Процедура ЭтоКомпанияПриИзменении(Элемент)
ВидимостьСтраницПервичнаяИнформация();
Элементы.ВидЮрЛицо.Доступность = УказыватьЮридическиеРеквизиты;
ЮрФизЛицо = ТипЮрФизЛицаПартнера(ЭтоКомпания);
КонецПроцедуры
&НаКлиенте
Процедура СокрЮрНаименованиеКонтрагентаПриИзменении(Элемент)
Подключаемый_ПриИзмененииРеквизита(Элемент);
ПартнерыИКонтрагентыКлиент.СокрЮрНаименованиеПриИзменении(НаименованиеКонтрагента, ПолноеЮридическоеНаименование);
КонецПроцедуры
&НаКлиенте
Процедура СокрЮридическоеНаименованиеТолькоПартнерыПриИзменении(Элемент)
Подключаемый_ПриИзмененииРеквизита(Элемент);
ПартнерыИКонтрагентыКлиент.СокрЮрНаименованиеПриИзменении(ПолноеНаименование, ПолноеЮридическоеНаименование);
Название = ПолноеНаименование;
ОтключитьОтметкуНезаполненного();
КонецПроцедуры
&НаКлиенте
Процедура ПубличноеНаименованиеПриИзменении(Элемент)
ОтключитьОтметкуНезаполненного();
КонецПроцедуры
&НаКлиенте
Процедура ДействиеПоРезультатамНайденоПриИзменении(Элемент)
УправлениеСтраницамиПодвал();
КонецПроцедуры
&НаКлиенте
Процедура ДействиеСКонтрагентомПриИзменении(Элемент)
УправлениеСтраницамиПодвал();
КонецПроцедуры
&НаКлиенте
Процедура ВидКомпанииПриИзменении(Элемент)
УправлениеДоступностьюПервичнаяИнформация();
ПартнерыИКонтрагентыЛокализацияКлиент.ПроверитьИНН(ЭтотОбъект, Истина);
КонецПроцедуры
&НаКлиенте
Процедура УказыватьЮридическиеРеквизитыЧастноеЛицоПриИзменении(Элемент)
ВидимостьСтраницПервичнаяИнформация();
Элементы.ВидЮрЛицо.Доступность = УказыватьЮридическиеРеквизиты;
КонецПроцедуры
&НаКлиенте
Процедура УказыватьЮридическиеРеквизитыПриИзменении(Элемент)
ВидимостьСтраницПервичнаяИнформация();
Элементы.ВидЮрЛицо.Доступность = УказыватьЮридическиеРеквизиты;
КонецПроцедуры
&НаКлиенте
Процедура УказатьДанныеКонтактногоЛицаПриИзменении(Элемент)
ОтключитьОтметкуНезаполненного();
УстановитьДоступностьДанныхКонтактногоЛица(ЭтотОбъект);
КонецПроцедуры
&НаКлиенте
Процедура КаналПервичногоИнтересаПриИзменении(Элемент)
УправлениеЭлементамиПервичногоИнтереса(ЭтотОбъект);
Если НЕ ЗначениеЗаполнено(КаналПервичногоИнтереса) Тогда
ИсточникПервичногоИнтереса = Неопределено;
КонецЕсли;
КонецПроцедуры
&НаКлиенте
Процедура ФлагПризнакПартнераПриИзменении(Элемент)
ЗаполнитьЗначенияСвойств(ПартнерОбъектДопРеквизиты, ЭтотОбъект, "Клиент, Конкурент, Поставщик, ПрочиеОтношения");
ТребуетсяОбновлениеЭлементовДопРеквизитов = Истина;
ОбновитьЗависимыеРеквизитыПризнакаПартнера(ЭтотОбъект);
КонецПроцедуры
&НаКлиенте
Процедура ГруппаДоступаПриИзменении(Элемент)
ОтключитьОтметкуНезаполненного();
КонецПроцедуры
&НаКлиенте
Процедура ГруппаДоступаЧастноеЛицоПриИзменении(Элемент)
ОтключитьОтметкуНезаполненного();
КонецПроцедуры
&НаКлиенте
Процедура БизнесРегионПриИзменении(Элемент)
Если ЗначениеЗаполнено(БизнесРегион) Тогда
ОсновнойМенеджерБизнесРегиона = ПартнерыИКонтрагентыВызовСервера.ОсновнойМенеджерБизнесРегиона(БизнесРегион);
Если ЗначениеЗаполнено(ОсновнойМенеджерБизнесРегиона) И ОсновнойМенеджерБизнесРегиона <> ОсновнойМенеджер Тогда
ТекстВопроса = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(НСтр("ru = 'Для выбранного бизнес-региона основным менеджером является %1. Установить его основным менеджером партнера?'"),ОсновнойМенеджерБизнесРегиона);
Результат = Неопределено;
ПоказатьВопрос(Новый ОписаниеОповещения("БизнесРегионПриИзмененииЗавершение", ЭтотОбъект, Новый Структура("ОсновнойМенеджерБизнесРегиона", ОсновнойМенеджерБизнесРегиона)), ТекстВопроса, РежимДиалогаВопрос.ДаНет);
КонецЕсли;
КонецЕсли;
КонецПроцедуры
&НаКлиенте
Процедура БизнесРегионПриИзмененииЗавершение(РезультатВопроса, ДополнительныеПараметры) Экспорт
ОсновнойМенеджерБизнесРегиона = ДополнительныеПараметры.ОсновнойМенеджерБизнесРегиона;
Результат = РезультатВопроса;
Если Результат = КодВозвратаДиалога.Да Тогда
ОсновнойМенеджер = ОсновнойМенеджерБизнесРегиона;
КонецЕсли;
КонецПроцедуры
&НаКлиенте
Процедура ФамилияКЛПриИзменении(Элемент)
ОтключитьОтметкуНезаполненного();
КонецПроцедуры
&НаКлиенте
Процедура ИмяКЛПриИзменении(Элемент)
ОтключитьОтметкуНезаполненного();
КонецПроцедуры
&НаКлиенте
Процедура УказатьДокументУдостоверяющийЛичностьПриИзменении(Элемент)
УстановитьДоступностьДанныхДокументаФизлица(ЭтотОбъект);
ОтключитьОтметкуНезаполненного();
КонецПроцедуры
&НаКлиенте
Процедура ВидДокументаПриИзменении(Элемент)
ОтключитьОтметкуНезаполненного();
КонецПроцедуры
&НаКлиенте
Процедура ВыбратьГоловногоКонтрагентаПриИзменении(Элемент)
ПартнерыИКонтрагентыЛокализацияКлиентСервер.УправлениеДоступностьюГоловнойКонтрагент(ЭтотОбъект);
КонецПроцедуры
&НаКлиенте
Процедура ПолноеНаименованиеГоловногоКонтрагентаПриИзменении(Элемент)
Подключаемый_ПриИзмененииРеквизита(Элемент);
ПартнерыИКонтрагентыКлиент.СокрЮрНаименованиеПриИзменении(
НаименованиеГоловнойКонтрагент, ПолноеНаименованиеГоловногоКонтрагента);
КонецПроцедуры
#КонецОбласти
#КонецОбласти
#Область ОбработчикиКомандФормы
&НаКлиенте
Процедура Подключаемый_ВыполнитьКомандуЛокализации(Команда)
ПартнерыИКонтрагентыЛокализацияКлиент.ВыполнитьКомандуЛокализации(Команда, ЭтотОбъект);
КонецПроцедуры
&НаКлиенте
Процедура ПродолжитьВыполнениеКомандыЛокализации(ИмяКоманды, ДополнительныеПараметры) Экспорт
Если ДополнительныеПараметры.ТребуетсяВызовСервера Тогда
ПродолжитьВыполнениеКомандыЛокализацииНаСервере(ИмяКоманды, ДополнительныеПараметры.ПараметрыОбработки);
КонецЕсли;
КонецПроцедуры
&НаСервере
Процедура ПродолжитьВыполнениеКомандыЛокализацииНаСервере(ИмяКоманды, ПараметрыОбработки)
ПартнерыИКонтрагентыЛокализация.ВыполнитьКомандуЛокализации(ЭтотОбъект, ИмяКоманды, ПараметрыОбработки);
Если ЗначениеЗаполнено(ПараметрыОбработки) И ПараметрыОбработки.Свойство("ИмяПроцедуры") Тогда
Если ПараметрыОбработки.ИмяПроцедуры = "ВидимостьСтраницПервичнаяИнформация" Тогда
ВидимостьСтраницПервичнаяИнформация();
КонецЕсли;
КонецЕсли;
КонецПроцедуры
&НаКлиенте
Процедура Далее(Команда)
ВыполнитьПереходПоСтраницам(Неопределено, Команда);
КонецПроцедуры
&НаКлиенте
Процедура Назад(Команда)
ВыполнитьПереходПоСтраницам(Неопределено, Команда);
КонецПроцедуры
&НаКлиенте
Процедура Отмена(Команда)
Закрыть();
КонецПроцедуры
&НаКлиенте
Процедура УстановитьЮридическийАдресРавнымФактическому(Команда)
Если Элементы.СтраницыПомощника.ТекущаяСтраница = Элементы.СтраницаДополнительныеСведения Тогда
ЮридическийАдрес = ФактическийАдрес;
ЮридическийАдресЗначенияПолей = ФактическийАдресЗначенияПолей;
Иначе
ЮридическийАдресГоловногоКонтрагента = ФактическийАдресГоловногоКонтрагента;
ЮридическийАдресГоловногоКонтрагентаЗначенияПолей = ФактическийАдресГоловногоКонтрагентаЗначенияПолей;
КонецЕсли;
КонецПроцедуры
&НаКлиенте
Процедура УстановитьВсе(Команда)
Для Каждого Стр Из ОбособленныеПодразделения Цикл
Стр.Выбран = Истина;
КонецЦикла;
КонецПроцедуры
&НаКлиенте
Процедура СнятьВсе(Команда)
Для Каждого Стр Из ОбособленныеПодразделения Цикл
Стр.Выбран = Ложь;
КонецЦикла;
КонецПроцедуры
&НаКлиенте
Процедура Подключаемый_ВыполнитьПереопределяемуюКоманду(Команда)
СобытияФормКлиент.ВыполнитьПереопределяемуюКоманду(ЭтотОбъект, Команда);
КонецПроцедуры
#КонецОбласти
#Область СлужебныеПроцедурыИФункции
#Область ФормированиеИтоговойИнформации
&НаСервере
Процедура ЗаполнитьИтоговуюИнформацию()
ИтоговаяИнформация = Справочники.Партнеры.ПолучитьМакет("Макет").ПолучитьТекст();
Если КлиентскоеПриложение.ТекущийВариантИнтерфейса() = ВариантИнтерфейсаКлиентскогоПриложения.Такси Тогда
ИтоговаяИнформация = СтрЗаменить(ИтоговаяИнформация, "#fcfaeb", "#ffffff");
КонецЕсли;
Если ДействиеПоРезультатамНайдено <> 0 Тогда
ИтоговаяИнформация = СтрЗаменить(ИтоговаяИнформация, "#PD#", "");
ИтоговаяИнформация = СтрЗаменить(ИтоговаяИнформация,"#TitlePartnerName#",
?(ИспользуютсяТолькоПартнеры, НСтр("ru = 'Сокращенное юр. наименование'"), НСтр("ru = 'Публичное наименование'")));
ИтоговаяИнформация = СтрЗаменить(ИтоговаяИнформация, "#PartnerName#", НаименованиеПартнера());
Если ЭтоКомпания = 1 Тогда
ИтоговаяИнформация = СтрЗаменить(ИтоговаяИнформация, "#DateOfBirth#", ?(ДатаРождения = Дата(1,1,1), "", Формат(ДатаРождения,"ДЛФ=D")));
ИтоговаяИнформация = СтрЗаменить(ИтоговаяИнформация, "#Gender#", ?(ЗначениеЗаполнено(Пол),Пол,""));
ИтоговаяИнформация = СтрЗаменить(ИтоговаяИнформация, "#IND#", "");
Иначе
ОбщегоНазначенияУТКлиентСервер.УдалитьИзСтрокиПодстроку(ИтоговаяИнформация, "#IND#");
КонецЕсли;
ИтоговаяИнформация = СтрЗаменить(ИтоговаяИнформация, "#WorkingNameOfThePartner#", ?(ЭтоКомпания = 0, Название,ФИО_ОднойСтрокой(ФамилияПартнера, ИмяПартнера, ОтчествоПартнера)));
Если ИспользуютсяТолькоПартнеры Тогда
ОбщегоНазначенияУТКлиентСервер.УдалитьИзСтрокиПодстроку(ИтоговаяИнформация, "#PC#");
Иначе
ИтоговаяИнформация = СтрЗаменить(ИтоговаяИнформация, "#Parent#", Родитель);
ИтоговаяИнформация = СтрЗаменить(ИтоговаяИнформация, "#PC#", "");
КонецЕсли;
ИтоговаяИнформация = СтрЗаменить(ИтоговаяИнформация, "#RelationshipType#", ПолучитьСтрокуТипОтношений());
ИтоговаяИнформация = СтрЗаменить(ИтоговаяИнформация, "#Email#", ?(ЭтоКомпания = 0, АдресЭППартнера, АдресЭППартнераФизЛицо));
ИтоговаяИнформация = СтрЗаменить(ИтоговаяИнформация, "#Phone#", ?(ЭтоКомпания = 0, ТелефонПартнера, ТелефонПартнераФизЛицо));
Если ИспользуютсяТолькоПартнеры И УказыватьЮридическиеРеквизиты Тогда
ОбщегоНазначенияУТКлиентСервер.УдалитьИзСтрокиПодстроку(ИтоговаяИнформация,"#AP#");
Иначе
Если ЭтоКомпания = 0 Тогда
ИтоговаяИнформация = СтрЗаменить(ИтоговаяИнформация, "#AddressName#", НСтр("ru = 'Фактический адрес'"));
Иначе
ИтоговаяИнформация = СтрЗаменить(ИтоговаяИнформация, "#AddressName#", НСтр("ru = 'Адрес проживания'"));
КонецЕсли;
ИтоговаяИнформация = СтрЗаменить(ИтоговаяИнформация, "#Address#", ФактическийАдрес);
ИтоговаяИнформация = СтрЗаменить(ИтоговаяИнформация, "#AP#", "");
КонецЕсли;
ИтоговаяИнформация = СтрЗаменить(ИтоговаяИнформация, "#Address#", ФактическийАдрес);
Если ПолучитьФункциональнуюОпцию("ИспользоватьГруппыДоступаПартнеров") Тогда
ИтоговаяИнформация = СтрЗаменить(ИтоговаяИнформация, "#AccessGroup#", ГруппаДоступа);
ИтоговаяИнформация = СтрЗаменить(ИтоговаяИнформация, "#AG#", "");
Иначе
ОбщегоНазначенияУТКлиентСервер.УдалитьИзСтрокиПодстроку(ИтоговаяИнформация,"#AG#");
КонецЕсли;
ИтоговаяИнформация = СтрЗаменить(ИтоговаяИнформация, "#ResponsibleManager#", ОсновнойМенеджер);
Если ПолучитьФункциональнуюОпцию("ИспользоватьБизнесРегионы") Тогда
ИтоговаяИнформация = СтрЗаменить(ИтоговаяИнформация, "#BusinessRegion#", БизнесРегион);
ИтоговаяИнформация = СтрЗаменить(ИтоговаяИнформация, "#BR#", "");
Иначе
ОбщегоНазначенияУТКлиентСервер.УдалитьИзСтрокиПодстроку(ИтоговаяИнформация, "#BR#");
КонецЕсли;
Если ПолучитьФункциональнуюОпцию("ФиксироватьПервичныйИнтерес") Тогда
ИтоговаяИнформация = СтрЗаменить(ИтоговаяИнформация, "#ChannelOfInitialRequest#", КаналПервичногоИнтереса);
ИтоговаяИнформация = СтрЗаменить(ИтоговаяИнформация, "#SourceOfInitialRequest#", ИсточникПервичногоИнтереса);
ИтоговаяИнформация = СтрЗаменить(ИтоговаяИнформация, "#IR#", "");
Иначе
ОбщегоНазначенияУТКлиентСервер.УдалитьИзСтрокиПодстроку(ИтоговаяИнформация, "#IR#");
КонецЕсли;
Если ЕстьПравоВключенияВСегмент И ПолучитьФункциональнуюОпцию("ИспользоватьСегментыПартнеров") Тогда
ИтоговаяИнформация = СтрЗаменить(ИтоговаяИнформация, "#Segment#", Сегмент);
ИтоговаяИнформация = СтрЗаменить(ИтоговаяИнформация, "#SG#", "");
Иначе
ОбщегоНазначенияУТКлиентСервер.УдалитьИзСтрокиПодстроку(ИтоговаяИнформация, "#SG#");
КонецЕсли;
Иначе
ОбщегоНазначенияУТКлиентСервер.УдалитьИзСтрокиПодстроку(ИтоговаяИнформация, "#PD#");
КонецЕсли;
Если (ИспользуютсяТолькоПартнеры Или ДействиеСКонтрагентом = 1) И УказыватьЮридическиеРеквизиты Тогда
ИННВывод = ?(ЭтоКомпания = 0, ИНН, ИННПартнерФизЛицо);
Если НЕ ЕстьДубльПоОснРеквизитам Тогда
Элементы.Далее2.Доступность =Истина;
ОбщегоНазначенияУТКлиентСервер.УдалитьИзСтрокиПодстроку(ИтоговаяИнформация, "#ID#");
ИтоговаяИнформация = СтрЗаменить(ИтоговаяИнформация, "#RepresentationOfTheTypeOfLegalEntityIndividual#", ПредставлениеТипаЮрФизЛица());
Если ИспользуютсяТолькоПартнеры Тогда
ОбщегоНазначенияУТКлиентСервер.УдалитьИзСтрокиПодстроку(ИтоговаяИнформация, "#AN#");
Иначе
ИтоговаяИнформация = СтрЗаменить(ИтоговаяИнформация, "#FullNameOfTheCounterparty#",
?(ЭтоКомпания = 0, ПолноеЮридическоеНаименование, ФИО_ОднойСтрокой(ФамилияПартнера, ИмяПартнера, ОтчествоПартнера)));
ИтоговаяИнформация = СтрЗаменить(ИтоговаяИнформация, "#AN#", "");
КонецЕсли;
Если ВидКомпании = 3 Тогда
ИтоговаяИнформация = СтрЗаменить(ИтоговаяИнформация, "#NameOfTheHeadCounterparty#",
?(ИспользуютсяТолькоПартнеры Или ВыбратьГоловногоКонтрагента = 0,
ГоловнойКонтрагент,
?(ВыбратьГоловногоКонтрагента = 1, НаименованиеГоловнойКонтрагент, "")));
ИтоговаяИнформация = СтрЗаменить(ИтоговаяИнформация, "#SGK#", "");
Иначе
ОбщегоНазначенияУТКлиентСервер.УдалитьИзСтрокиПодстроку(ИтоговаяИнформация, "#SGK#");
КонецЕсли;
ИтоговаяИнформация = СтрЗаменить(ИтоговаяИнформация, "#TIN#", ИННВывод);
ИтоговаяИнформация = СтрЗаменить(ИтоговаяИнформация, "#LegalAddress#", ЮридическийАдрес);
ИтоговаяИнформация = СтрЗаменить(ИтоговаяИнформация, "#PhysicalAddress#", ФактическийАдрес);
ИтоговаяИнформация = СтрЗаменить(ИтоговаяИнформация, "#RD#", "");
Если ЭтоКомпания = 1 И УказатьДокументУдостоверяющийЛичность Тогда
ИтоговаяИнформация = СтрЗаменить(ИтоговаяИнформация, "#DocumentKind#" ,ВидДокумента);
ИтоговаяИнформация = СтрЗаменить(ИтоговаяИнформация, "#DocumentSeries#", СерияДокумента);
ИтоговаяИнформация = СтрЗаменить(ИтоговаяИнформация, "#DocumentNumber#", НомерДокумента);
ИтоговаяИнформация = СтрЗаменить(ИтоговаяИнформация, "#DateOfIssue#", Формат(ДатаВыдачи,"ДЛФ=D"));
ИтоговаяИнформация = СтрЗаменить(ИтоговаяИнформация, "#ValidityPeriod#", Формат(СрокДействия,"ДЛФ=D"));
ИтоговаяИнформация = СтрЗаменить(ИтоговаяИнформация, "#IssuedBy#", КемВыданДокумент);
ИтоговаяИнформация = СтрЗаменить(ИтоговаяИнформация, "#IssuingAuthorityCode#",КодПодразделения);
ИтоговаяИнформация = СтрЗаменить(ИтоговаяИнформация, "#DD#", "");
Иначе
ОбщегоНазначенияУТКлиентСервер.УдалитьИзСтрокиПодстроку(ИтоговаяИнформация, "#DD#");
КонецЕсли;
Если УказатьБанковскийСчетКонтрагента Тогда
ИтоговаяИнформация = СтрЗаменить(ИтоговаяИнформация, "#AccountNumber#", НомерСчета);
ИтоговаяИнформация = СтрЗаменить(ИтоговаяИнформация, "#CashCurrency#", ВалютаДенежныхСредств);
Если Не ИностранныйБанк Тогда
ИтоговаяИнформация = СтрЗаменить(ИтоговаяИнформация, "#Bank#", НаименованиеБанка);
ИтоговаяИнформация = СтрЗаменить(ИтоговаяИнформация, "#CorrBankAccount#", КоррСчетБанка);
Если ИспользуетсяБанкДляРасчетов Тогда
ИтоговаяИнформация = СтрЗаменить(
ИтоговаяИнформация, "#BankForSettlements#", НаименованиеБанкаДляРасчетов);
ИтоговаяИнформация = СтрЗаменить(
ИтоговаяИнформация, "#OffsetBankAccountForSettlements#", КоррСчетБанкаДляРасчетов);
Иначе
ИтоговаяИнформация = СтрЗаменить(ИтоговаяИнформация, "#BankForSettlements#", "");
ИтоговаяИнформация = СтрЗаменить(ИтоговаяИнформация, "#OffsetBankAccountForSettlements#", "");
КонецЕсли;
Иначе
ИтоговаяИнформация = СтрЗаменить(ИтоговаяИнформация, "#Bank#",
СВИФТБанка + ", " + НаименованиеБанка + ", " + АдресБанка);
ВалютныйСчет = (ЗначениеЗаполнено(ВалютаДенежныхСредств)
И ВалютаДенежныхСредств <> ВалютаРеглУчета);
Если ВалютныйСчет Тогда
ИтоговаяИнформация = СтрЗаменить(ИтоговаяИнформация, "#CorrBankAccount#", СчетВБанкеДляРасчетов);
Иначе
ИтоговаяИнформация = СтрЗаменить(ИтоговаяИнформация, "#CorrBankAccount#", КоррСчетБанка);
КонецЕсли;
Если ИспользуетсяБанкДляРасчетов Тогда
ИтоговаяИнформация = СтрЗаменить(ИтоговаяИнформация, "#BankForSettlements#",
СВИФТБанкаДляРасчетов + ", " + НаименованиеБанкаДляРасчетов + ", " + АдресБанкаДляРасчетов);
ИтоговаяИнформация = СтрЗаменить(
ИтоговаяИнформация, "#OffsetBankAccountForSettlements#", КоррСчетБанкаДляРасчетов);
Иначе
ИтоговаяИнформация = СтрЗаменить(ИтоговаяИнформация, "#BankForSettlements#", "");
ИтоговаяИнформация = СтрЗаменить(ИтоговаяИнформация, "#OffsetBankAccountForSettlements#", "");
КонецЕсли;
КонецЕсли;
ИтоговаяИнформация = СтрЗаменить(ИтоговаяИнформация, "#BA#", "")
Иначе
ОбщегоНазначенияУТКлиентСервер.УдалитьИзСтрокиПодстроку(ИтоговаяИнформация, "#BA#");
КонецЕсли;
КонецЕсли;
Иначе
ОбщегоНазначенияУТКлиентСервер.УдалитьИзСтрокиПодстроку(ИтоговаяИнформация, "#RD#");
ОбщегоНазначенияУТКлиентСервер.УдалитьИзСтрокиПодстроку(ИтоговаяИнформация, "#ID#");
ОбщегоНазначенияУТКлиентСервер.УдалитьИзСтрокиПодстроку(ИтоговаяИнформация, "#DD#");
КонецЕсли;
Если ВидКомпании = 3 И Не ИспользуютсяТолькоПартнеры И ВыбратьГоловногоКонтрагента = 1 Тогда
ИтоговаяИнформация = СтрЗаменить(ИтоговаяИнформация, "#DHC#", "");
ИтоговаяИнформация = СтрЗаменить(ИтоговаяИнформация, "#FullNameOfTheHeadCounterparty#",
ПолноеНаименованиеГоловногоКонтрагента);
Если ЗначениеЗаполнено(ПартнерГоловногоКонтрагента) Тогда
ИтоговаяИнформация = СтрЗаменить(ИтоговаяИнформация, "#PartnerOfTheHeadCounterparty#", ПартнерГоловногоКонтрагента);
ИтоговаяИнформация = СтрЗаменить(ИтоговаяИнформация, "#PHC#", "");
Иначе
ОбщегоНазначенияУТКлиентСервер.УдалитьИзСтрокиПодстроку(ИтоговаяИнформация, "#PHC#");
КонецЕсли;
ИтоговаяИнформация = СтрЗаменить(ИтоговаяИнформация, "#LegalAddressOfMainCounterparty#",
ЮридическийАдресГоловногоКонтрагента);
ИтоговаяИнформация = СтрЗаменить(ИтоговаяИнформация, "#ActualAddressOfTheHeadCounterparty#",
ФактическийАдресГоловногоКонтрагента);
Если УказатьБанковскийСчетГоловногоКонтрагента Тогда
ИтоговаяИнформация = СтрЗаменить(ИтоговаяИнформация, "#AccountNumberOfTheHeadCounterparty#",
НомерСчетаГоловнойКонтрагент);
ИтоговаяИнформация = СтрЗаменить(ИтоговаяИнформация, "#CurrencyOfTheHeadCounterpartySFunds#",
ВалютаДенежныхСредствГоловнойКонтрагент);
Если Не ИностранныйБанкГоловнойКонтрагент Тогда
ИтоговаяИнформация = СтрЗаменить(
ИтоговаяИнформация, "#BankOfTheMainCounterparty#", НаименованиеБанкаГоловнойКонтрагент);
ИтоговаяИнформация = СтрЗаменить(ИтоговаяИнформация, "#CorrespondentBankAccountOfTheHeadCounterparty#",
КоррСчетБанкаГоловнойКонтрагент);
Если ИспользуетсяБанкДляРасчетовГоловнойКонтрагент Тогда
ИтоговаяИнформация = СтрЗаменить(ИтоговаяИнформация, "#BankForSettlementsOfTheMainCounterparty#",
НаименованиеБанкаДляРасчетовГоловнойКонтрагент);
ИтоговаяИнформация = СтрЗаменить(ИтоговаяИнформация,
"#CorrespondentAccountOfTheBankForTheCalculationsOfTheHeadContractor#", КоррСчетБанкаДляРасчетовГоловнойКонтрагент);
Иначе
ИтоговаяИнформация = СтрЗаменить(ИтоговаяИнформация, "#BankForSettlementsOfTheMainCounterparty#", "");
ИтоговаяИнформация = СтрЗаменить(
ИтоговаяИнформация, "#CorrespondentAccountOfTheBankForTheCalculationsOfTheHeadContractor#", "");
КонецЕсли;
Иначе
ИтоговаяИнформация = СтрЗаменить(ИтоговаяИнформация, "#BankOfTheMainCounterparty#",
СВИФТБанкаГоловнойКонтрагент + ", " + НаименованиеБанкаГоловнойКонтрагент + ", "
+ АдресБанкаГоловнойКонтрагент);
ИтоговаяИнформация = СтрЗаменить(
ИтоговаяИнформация, "#CorrespondentBankAccountOfTheHeadCounterparty#", КоррСчетБанкаГоловнойКонтрагент);
Если ИспользуетсяБанкДляРасчетовГоловнойКонтрагент Тогда
ИтоговаяИнформация = СтрЗаменить(ИтоговаяИнформация, "#BankForSettlementsOfTheMainCounterparty#",
СВИФТБанкаДляРасчетовГоловнойКонтрагент + ", " + НаименованиеБанкаДляРасчетовГоловнойКонтрагент
+ ", " + АдресБанкаДляРасчетовГоловнойКонтрагент);
ИтоговаяИнформация = СтрЗаменить(ИтоговаяИнформация,
"#CorrespondentAccountOfTheBankForTheCalculationsOfTheHeadContractor#", КоррСчетБанкаДляРасчетовГоловнойКонтрагент);
Иначе
ИтоговаяИнформация = СтрЗаменить(ИтоговаяИнформация, "#BankForSettlementsOfTheMainCounterparty#", "");
ИтоговаяИнформация = СтрЗаменить(
ИтоговаяИнформация, "#CorrespondentAccountOfTheBankForTheCalculationsOfTheHeadContractor#", "");
КонецЕсли;
КонецЕсли;
ИтоговаяИнформация = СтрЗаменить(ИтоговаяИнформация, "#BAHC#", "")
Иначе
ОбщегоНазначенияУТКлиентСервер.УдалитьИзСтрокиПодстроку(ИтоговаяИнформация, "#BAHC#");
КонецЕсли;
Иначе
ОбщегоНазначенияУТКлиентСервер.УдалитьИзСтрокиПодстроку(ИтоговаяИнформация, "#DHC#");
КонецЕсли;
Если ДействиеПоРезультатамНайдено <> 0 И ЭтоКомпания = 0 И УказатьДанныеКонтактногоЛица Тогда
ИтоговаяИнформация = СтрЗаменить(ИтоговаяИнформация, "#FULLNAME#",ФИО_ОднойСтрокой(ФамилияКЛ, ИмяКЛ, ОтчествоКЛ));
ИтоговаяИнформация = СтрЗаменить(ИтоговаяИнформация, "#EmailCP#" ,АдресЭПКЛ);
ИтоговаяИнформация = СтрЗаменить(ИтоговаяИнформация, "#PhoneCP#", ТелефонКЛ);
ИтоговаяИнформация = СтрЗаменить(ИтоговаяИнформация, "#MobilePhoneCP#", МобильныйТелефонКЛ);
Если ПолучитьФункциональнуюОпцию("ИспользоватьРолиКонтактныхЛицПартнеров") Тогда
ИтоговаяИнформация = СтрЗаменить(ИтоговаяИнформация, "#Role#", Роль);
ИтоговаяИнформация = СтрЗаменить(ИтоговаяИнформация, "#RCP#", "");
Иначе
ОбщегоНазначенияУТКлиентСервер.УдалитьИзСтрокиПодстроку(ИтоговаяИнформация, "#RCP#");
КонецЕсли;
ИтоговаяИнформация = СтрЗаменить(ИтоговаяИнформация, "#DCP#", "");
Иначе
ОбщегоНазначенияУТКлиентСервер.УдалитьИзСтрокиПодстроку(ИтоговаяИнформация, "#DCP#");
КонецЕсли;
ВидимостьСтраныРегистрации = (ИспользуютсяТолькоПартнеры ИЛИ УказыватьЮридическиеРеквизиты) И ВидКомпании = 1;
Если ВидимостьСтраныРегистрации Тогда
ИтоговаяИнформация = СтрЗаменить(ИтоговаяИнформация, "#CountryOfResidence#", СтранаРегистрации);
ИтоговаяИнформация = СтрЗаменить(ИтоговаяИнформация, "#RegistrationNumber#", РегистрационныйНомер);
ИтоговаяИнформация = СтрЗаменить(ИтоговаяИнформация, "#НалоговыйНомер#", НалоговыйНомер);
ИтоговаяИнформация = СтрЗаменить(ИтоговаяИнформация, "#NRI#", "");
Иначе
ОбщегоНазначенияУТКлиентСервер.УдалитьИзСтрокиПодстроку(ИтоговаяИнформация, "#NRI#");
КонецЕсли;
ПартнерыИКонтрагентыЛокализация.ЗаполнитьИтоговуюИнформацию(ИтоговаяИнформация, ЭтотОбъект);
НачалоТегHTML = СтрНайти(ИтоговаяИнформация, "<html");
Если НачалоТегHTML <> 0 Тогда
ИтоговаяИнформация = Прав(ИтоговаяИнформация, СтрДлина(ИтоговаяИнформация) - НачалоТегHTML + 1);
КонецЕсли;
КонецПроцедуры
&НаСервере
Функция ПолучитьСтрокуТипОтношений()
СтрокаТипОтношений = ?(Клиент,НСтр("ru = 'Клиент'"),"") + ?(Поставщик, НСтр("ru = ', Поставщик'"),"") + ?(Перевозчик, НСтр("ru = ', Перевозчик'"),"") + ?(Конкурент, НСтр("ru = ', Конкурент'"),"") + ?(ПрочиеОтношения, НСтр("ru = ', Прочие отношения'"),"");
Если Лев(СтрокаТипОтношений, 2) = ", " Тогда
СтрокаТипОтношений = Прав(СтрокаТипОтношений, СтрДлина(СтрокаТипОтношений)-2);
КонецЕсли;
Возврат СтрокаТипОтношений;
КонецФункции
&НаСервере
Функция НаименованиеПартнера()
Если ЭтоКомпания = 0 Тогда
Возврат ?(ИспользуютсяТолькоПартнеры, ПолноеЮридическоеНаименование, ПолноеНаименование)
Иначе
Возврат ФИО_ОднойСтрокой(ФамилияПартнера, ИмяПартнера, ОтчествоПартнера);
КонецЕсли;
КонецФункции
&НаСервере
Функция НаименованиеКонтрагента()
Если ЭтоКомпания = 0 Тогда
Возврат НаименованиеКонтрагента;
Иначе
Возврат ФИО_ОднойСтрокой(ФамилияПартнера, ИмяПартнера, ОтчествоПартнера);
КонецЕсли;
КонецФункции
&НаСервере
Функция ПредставлениеТипаЮрФизЛица()
Если ЭтоКомпания = 0 Тогда
Если ВидКомпании = 0 Тогда
Возврат НСтр("ru='Юридическое лицо'");
ИначеЕсли ВидКомпании = 1 Тогда
Возврат НСтр("ru='Юридическое лицо(за пределами РФ)'");
ИначеЕсли ВидКомпании = 2 Тогда
Возврат НСтр("ru='Индивидуальный предприниматель(ПБОЮЛ)'");
Иначе
Возврат НСтр("ru='Обособленное подразделение'");
КонецЕсли;
Иначе
Возврат НСтр("ru='Физическое лицо'");
КонецЕсли;
КонецФункции
&НаКлиентеНаСервереБезКонтекста
Функция ТипЮрФизЛицаПартнера(ЭтоКомпания)
Если ЭтоКомпания = 0 Тогда
Возврат ПредопределенноеЗначение("Перечисление.КомпанияЧастноеЛицо.Компания");
Иначе
Возврат ПредопределенноеЗначение("Перечисление.КомпанияЧастноеЛицо.ЧастноеЛицо");
КонецЕсли;
КонецФункции
#КонецОбласти
#Область УправлениеВидимостьюИДоступностьюЭлементовФормы
&НаКлиенте
Процедура УправлениеСтраницамиПодвал()
ПредыдущаяСтраницаПодвал = Элементы.СтраницыПодвал.ТекущаяСтраница;
Если Элементы.СтраницыПомощника.ТекущаяСтраница = Элементы.СтраницаПервичнаяИнформация Тогда
Элементы.СтраницыПодвал.ТекущаяСтраница = Элементы.СтраницаКнопкиДалее;
ИначеЕсли Элементы.СтраницыПомощника.ТекущаяСтраница = Элементы.СтраницаНайдено Тогда
Элементы.СтраницыПодвал.ТекущаяСтраница =
?(ДействиеПоРезультатамНайдено = 0 И (ИспользуютсяТолькоПартнеры Или ДействиеСКонтрагентом = 0),
Элементы.СтраницаКнопкиГотово,
Элементы.СтраницаКнопкиНазадДалее);
ИначеЕсли Элементы.СтраницыПомощника.ТекущаяСтраница = Элементы.СтраницаФинальная Тогда
Элементы.СтраницыПодвал.ТекущаяСтраница = Элементы.СтраницаКнопкиСоздать;
Иначе
Элементы.СтраницыПодвал.ТекущаяСтраница = Элементы.СтраницаКнопкиНазадДалее;
КонецЕсли;
Если ПредыдущаяСтраницаПодвал <> Элементы.СтраницыПодвал.ТекущаяСтраница Тогда
Если Элементы.СтраницыПодвал.ТекущаяСтраница = Элементы.СтраницаКнопкиДалее Тогда
Элементы.Далее.КнопкаПоУмолчанию = Истина;
ИначеЕсли Элементы.СтраницыПодвал.ТекущаяСтраница = Элементы.СтраницаКнопкиГотово Тогда
Элементы.Далее1.КнопкаПоУмолчанию = Истина;
ИначеЕсли Элементы.СтраницыПодвал.ТекущаяСтраница = Элементы.СтраницаКнопкиСоздать Тогда
Элементы.Далее2.КнопкаПоУмолчанию = Истина;
ИначеЕсли Элементы.СтраницыПодвал.ТекущаяСтраница = Элементы.СтраницаКнопкиНазадДалее Тогда
Элементы.Далее3.КнопкаПоУмолчанию = Истина;
КонецЕсли;
КонецЕсли;
КонецПроцедуры
&НаСервере
Процедура ВидимостьСтраницПервичнаяИнформация()
Если ЭтоКомпания = 0 Тогда
Элементы.СтраницыКомпанияЧастноеЛицо.ТекущаяСтраница = Элементы.СтраницаКомпания;
Иначе
Элементы.СтраницыКомпанияЧастноеЛицо.ТекущаяСтраница = Элементы.СтраницаФизическоеЛицо;
КонецЕсли;
Если Не НаОснованииКонтрагента Тогда
Если ИспользуютсяТолькоПартнеры Тогда
Элементы.СтраницыБудетСоздан.ТекущаяСтраница = Элементы.СтраницаБудетСозданКонтрагент;
Иначе
Элементы.СтраницыБудетСоздан.ТекущаяСтраница =
?(НЕ УказыватьЮридическиеРеквизиты , Элементы.СтраницаБудетСозданПартнер, Элементы.СтраницаБудетСозданПартнерИКонтрагент);
КонецЕсли;
КонецЕсли;
УправлениеДоступностьюПервичнаяИнформация();
КонецПроцедуры
&НаСервере
Процедура УправлениеДоступностьюПервичнаяИнформация()
Элементы.ВидЮрЛицо.Доступность = УказыватьЮридическиеРеквизиты;
Если НЕ (НаОснованииКонтрагента Или НаОснованииОбособленногоКонтрагента) Тогда
Если ЭтоКомпания = 0 Тогда
ОбщегоНазначенияУТКлиентСервер.УстановитьСвойствоЭлементаФормы(Элементы, "ГруппаРегистрационныеДанные",
"Доступность", УказыватьЮридическиеРеквизиты, Истина);
Если УказыватьЮридическиеРеквизиты Тогда
ПартнерыИКонтрагентыЛокализацияКлиентСервер.УправлениеЭлементамиЮридическихРеквизитов(ЭтотОбъект);
КонецЕсли;
Иначе
ОбщегоНазначенияУТКлиентСервер.УстановитьСвойствоЭлементаФормы(Элементы, "ГруппаДанныеКонтрагентаЧастноеЛицо",
"Доступность", УказыватьЮридическиеРеквизиты, Истина);
Если УказыватьЮридическиеРеквизиты Тогда
УстановитьДоступностьДанныхДокументаФизлица(ЭтотОбъект);
КонецЕсли;
КонецЕсли;
КонецЕсли;
УстановитьДоступностьДанныхКонтактногоЛица(ЭтотОбъект);
Элементы.ГруппаСтраницыДанныхРегистрацииКонтрагента.ТекущаяСтраница =
?((ИспользуютсяТолькоПартнеры ИЛИ УказыватьЮридическиеРеквизиты) И ВидКомпании = 1,
Элементы.ГруппаСтраницаИностраннойРегистрации, Элементы.ЛокализацияГруппаСтраницаРоссийскогоКонтрагента);
Элементы.АдресЭППартнера.АвтоВыборНезаполненного = АдресЭППартнераОбязателен;
Элементы.ТелефонПартнера.АвтоОтметкаНезаполненного = ТелефонПартнераОбязателен;
Элементы.АдресЭППартнераФизЛицо.АвтоВыборНезаполненного = АдресЭППартнераОбязателен;
Элементы.ТелефонПартнераФизЛицо.АвтоОтметкаНезаполненного = ТелефонПартнераОбязателен;
Элементы.ТелефонКЛ.АвтоОтметкаНезаполненного = ТелефонКонтактногоЛицаОбязателен;
Элементы.АдресЭПКЛ.АвтоОтметкаНезаполненного = АдресЭПКонтактногоЛицаОбязателен;
Элементы.МобильныйТелефонКЛ.АвтоОтметкаНезаполненного = МобильныйТелефонКонтактногоЛицаОбязателен;
ПартнерыИКонтрагентыЛокализацияКлиентСервер.УправлениеДоступностьюКонтрагент(ЭтотОбъект);
КонецПроцедуры
&НаКлиенте
Процедура УправлениеДоступностьюРасчетныйСчет(Доступен, ЭтоГоловнойКонтрагент=Ложь)
Постфикс = ?(ЭтоГоловнойКонтрагент, "ГоловнойКонтрагент", "");
МассивЭлементов = Новый Массив;
МассивЭлементов.Добавить("ГруппаДанныеБанковскогоСчета" + Постфикс);
МассивЭлементов.Добавить("НомерСчета" + Постфикс);
МассивЭлементов.Добавить("ВалютаДенежныхСредств" + Постфикс);
МассивЭлементов.Добавить("ДекорацияБИКБанка" + Постфикс);
МассивЭлементов.Добавить("БИКБанка" + Постфикс);
МассивЭлементов.Добавить("КоррСчетБанка" + Постфикс);
МассивЭлементов.Добавить("ДекорацияБанк" + Постфикс);
МассивЭлементов.Добавить("Банк" + Постфикс);
МассивЭлементов.Добавить("ИспользуетсяБанкДляРасчетов" + Постфикс);
МассивЭлементов.Добавить("ГруппаБанкДляРасчетов" + Постфикс);
МассивЭлементов.Добавить("ДекорацияБИКБанкаДляРасчетов" + Постфикс);
МассивЭлементов.Добавить("БИКБанкаДляРасчетов" + Постфикс);
МассивЭлементов.Добавить("КоррСчетБанкаДляРасчетов" + Постфикс);
МассивЭлементов.Добавить("ДекорацияБанкДляРасчетов" + Постфикс);
МассивЭлементов.Добавить("БанкДляРасчетов" + Постфикс);
ОбщегоНазначенияУТКлиентСервер.УстановитьСвойствоЭлементовФормы(Элементы, МассивЭлементов, "Доступность", Доступен);
КонецПроцедуры
&НаКлиентеНаСервереБезКонтекста
Процедура УправлениеДоступностьюДополнительныеСведения(Форма)
Элементы = Форма.Элементы;
ЭтоСозданиеКонтрагентаБезРегистрацииПартнера = Форма.ДействиеСКонтрагентом = 1
И Форма.ДействиеПоРезультатамНайдено = 0;
Элементы.ЮридическийАдрес.ТолькоПросмотр = (НЕ Форма.УказыватьЮридическиеРеквизиты И Форма.ЭтоКомпания = 0);
Элементы.ЮридическийАдресРавенФактическому.Доступность = (Форма.УказыватьЮридическиеРеквизиты);
Элементы.ЮридическийАдрес.АвтоОтметкаНезаполненного = Форма.УказыватьЮридическиеРеквизиты И Форма.ЮрАдресКонтрагентаОбязателен;
Элементы.ФактическийАдрес.АвтоОтметкаНезаполненного = (Форма.УказыватьЮридическиеРеквизиты И Форма.ФактАдресКонтрагентаОбязателен)
Или (Форма.АдресПартнераОбязателен И Не ЭтоСозданиеКонтрагентаБезРегистрацииПартнера) ;
Элементы.ФактическийАдресЧастноеЛицо.АвтоОтметкаНезаполненного = ТребуетсяУказаниеАдресаЧастногоЛица(Форма);
УправлениеЭлементамиПервичногоИнтереса(Форма);
ОбновитьЗависимыеРеквизитыПризнакаПартнера(Форма);
Если Форма.ЭтоКомпания = 0 Тогда
Элементы.ОсновнойМенеджер.Видимость = Не ЭтоСозданиеКонтрагентаБезРегистрацииПартнера;
Элементы.Родитель.Видимость = Не ЭтоСозданиеКонтрагентаБезРегистрацииПартнера;
Элементы.ГруппаДоступа.Видимость = Не ЭтоСозданиеКонтрагентаБезРегистрацииПартнера;
Элементы.БизнесРегион.Видимость = Не ЭтоСозданиеКонтрагентаБезРегистрацииПартнера;
Элементы.Сегмент.Видимость = Не ЭтоСозданиеКонтрагентаБезРегистрацииПартнера;
Если Форма.ИспользуютсяТолькоПартнеры Или ЭтоСозданиеКонтрагентаБезРегистрацииПартнера Тогда
Элементы.ФактическийАдрес.Заголовок = НСтр("ru = 'Фактический адрес контрагента'");
Элементы.ЮридическийАдрес.Заголовок = НСтр("ru = 'Юридический адрес контрагента'");
Иначе
Элементы.ФактическийАдрес.Заголовок = НСтр("ru = 'Фактический адрес партнера'");
Элементы.ЮридическийАдрес.Заголовок = НСтр("ru = 'Юридический адрес партнера'");
КонецЕсли;
Элементы.СтраницыДополнительныеСведения.ТекущаяСтраница = Элементы.СтраницаДополнительныеСведенияКомпания;
Элементы.СтраницыАдреса.ТекущаяСтраница = Элементы.СтраницаАдресаКомпания;
ВидимостьГоловногоКонтрагента = Форма.ИспользуютсяТолькоПартнеры
И Форма.ВидКомпании = 3;
МассивЭлементов = Новый Массив;
МассивЭлементов.Добавить("ГоловнойКонтрагентДопСведения");
МассивЭлементов.Добавить("КартинкаПредупреждениеГоловнойКонтрагентДопСведения");
МассивЭлементов.Добавить("ПредупреждениеГоловнойКонтрагентДопСведения");
ОбщегоНазначенияУТКлиентСервер.УстановитьСвойствоЭлементовФормы(
Элементы, МассивЭлементов, "Видимость", ВидимостьГоловногоКонтрагента);
Если ВидимостьГоловногоКонтрагента Тогда
ПартнерыИКонтрагентыЛокализацияКлиентСервер.УправлениеДоступностьюГоловнойКонтрагент(Форма);
КонецЕсли;
Иначе
Элементы.СтраницыДополнительныеСведения.ТекущаяСтраница = Элементы.СтраницаДополнительныеСведенияЧастноеЛицо;
Элементы.СтраницыАдреса.ТекущаяСтраница = Элементы.СтраницаАдресаЧастноеЛицо;
КонецЕсли;
КонецПроцедуры
&НаКлиентеНаСервереБезКонтекста
Процедура УстановитьДоступностьДанныхКонтактногоЛица(Форма)
СамообслуживаниеКлиентСервер.УправлениеДоступностьюГруппаКонтактногоЛицаПомощникНового(Форма);
КонецПроцедуры
&НаКлиентеНаСервереБезКонтекста
Процедура УстановитьДоступностьДанныхДокументаФизлица(Форма)
МассивЭлементов = Новый Массив;
МассивЭлементов.Добавить("ВидДокумента");
МассивЭлементов.Добавить("СерияДокумента");
МассивЭлементов.Добавить("НомерДокумента");
МассивЭлементов.Добавить("ДатаВыдачи");
МассивЭлементов.Добавить("СрокДействия");
МассивЭлементов.Добавить("КемВыданДокумент");
МассивЭлементов.Добавить("КодПодразделения");
ОбщегоНазначенияУТКлиентСервер.УстановитьСвойствоЭлементовФормы(Форма.Элементы, МассивЭлементов, "Доступность",
Форма.УказатьДокументУдостоверяющийЛичность);
КонецПроцедуры
&НаКлиентеНаСервереБезКонтекста
Процедура ОбновитьЗависимыеРеквизитыПризнакаПартнера(Форма)
Элементы = Форма.Элементы;
ЭтоСозданиеКонтрагентаБезРегистрацииПартнера = Форма.ДействиеСКонтрагентом = 1
И Форма.ДействиеПоРезультатамНайдено = 0;
Элементы.ГруппаТипОтношений.Видимость = Не ЭтоСозданиеКонтрагентаБезРегистрацииПартнера;
Элементы.ГруппаТипОтношенийДополнительно.Видимость = Не ЭтоСозданиеКонтрагентаБезРегистрацииПартнера;
Элементы.ОбслуживаетсяТорговымиПредставителями.Доступность = Форма.Клиент;
Если НЕ Форма.Клиент Тогда
Форма.ОбслуживаетсяТорговымиПредставителями = Ложь;
КонецЕсли;
Элементы.Перевозчик.Доступность = Форма.Поставщик;
Если НЕ Форма.Поставщик Тогда
Форма.Перевозчик = Ложь;
КонецЕсли;
КонецПроцедуры
&НаКлиентеНаСервереБезКонтекста
Процедура УправлениеЭлементамиПервичногоИнтереса(Форма)
ЭтоСозданиеКонтрагентаБезРегистрацииПартнера = Форма.ДействиеСКонтрагентом = 1
И Форма.ДействиеПоРезультатамНайдено = 0;
Элементы = Форма.Элементы;
ТолькоПросмотрЭлементов = Не ЗначениеЗаполнено(Форма.КаналПервичногоИнтереса);
Элементы.ИсточникПервичногоИнтереса.ТолькоПросмотр = ТолькоПросмотрЭлементов;
Элементы.ИсточникПервичногоИнтересаЧастноеЛицо.ТолькоПросмотр = ТолькоПросмотрЭлементов;
Элементы.КаналПервичногоИнтереса.Видимость = Не ЭтоСозданиеКонтрагентаБезРегистрацииПартнера;
Элементы.ИсточникПервичногоИнтереса.Видимость = Не ЭтоСозданиеКонтрагентаБезРегистрацииПартнера;
Элементы.ИсточникПервичногоИнтересаЧастноеЛицо.Видимость = Не ЭтоСозданиеКонтрагентаБезРегистрацииПартнера;
КонецПроцедуры
&НаКлиентеНаСервереБезКонтекста
Процедура УправлениеЭлементамиБанковскийСчет(Форма, ЭтоГоловнойКонтрагент=Ложь)
Постфикс = ?(ЭтоГоловнойКонтрагент, "ГоловнойКонтрагент", "");
ОбщегоНазначенияКлиентСервер.УстановитьСвойствоЭлементаФормы(Форма.Элементы,
"КоррСчетБанкаМеждународный" + Постфикс, "Видимость",
Не Форма.Элементы["ГруппаБанк" + Постфикс].Видимость И Форма.Элементы["КоррСчетБанка" + Постфикс].Видимость);
ОбщегоНазначенияКлиентСервер.УстановитьСвойствоЭлементаФормы(Форма.Элементы,
"СчетВБанкеДляРасчетовМеждународный" + Постфикс, "Видимость",
Не Форма.Элементы["ГруппаБанк" + Постфикс].Видимость
И Форма.Элементы["СчетВБанкеДляРасчетов" + Постфикс].Видимость);
ОбщегоНазначенияКлиентСервер.УстановитьСвойствоЭлементаФормы(Форма.Элементы,
"ОтступРеквизитыБанка" + Постфикс, "Ширина", ?(Форма["ИспользуетсяБанкДляРасчетов" + Постфикс], 12, 8));
ОбщегоНазначенияКлиентСервер.УстановитьСвойствоЭлементаФормы(Форма.Элементы,
"ГруппаБанк" + Постфикс, "ТолькоПросмотр", Форма["СпособУказанияБанка" + Постфикс] = "ВыборИзСправочника");
ОбщегоНазначенияКлиентСервер.УстановитьСвойствоЭлементаФормы(Форма.Элементы,
"ГруппаБанкМеждународный" + Постфикс, "ТолькоПросмотр",
Форма["СпособУказанияБанка" + Постфикс] = "ВыборИзСправочника");
ОбщегоНазначенияКлиентСервер.УстановитьСвойствоЭлементаФормы(Форма.Элементы,
"ГруппаБанкДляРасчетов" + Постфикс, "ТолькоПросмотр",
Форма["СпособУказанияБанкаДляРасчетов" + Постфикс] = "ВыборИзСправочника");
ОбщегоНазначенияКлиентСервер.УстановитьСвойствоЭлементаФормы(Форма.Элементы,
"ГруппаБанкДляРасчетовМеждународный" + Постфикс, "ТолькоПросмотр",
Форма["СпособУказанияБанкаДляРасчетов" + Постфикс] = "ВыборИзСправочника");
ОбщегоНазначенияКлиентСервер.УстановитьСвойствоЭлементаФормы(Форма.Элементы,
"БанкВГруппе" + Постфикс, "Доступность", Форма["СпособУказанияБанка" + Постфикс] = "ВыборИзСправочника");
ОбщегоНазначенияКлиентСервер.УстановитьСвойствоЭлементаФормы(Форма.Элементы,
"БанкДляРасчетовВГруппе" + Постфикс, "Доступность",
Форма["СпособУказанияБанкаДляРасчетов" + Постфикс] = "ВыборИзСправочника");
ОбщегоНазначенияКлиентСервер.УстановитьСвойствоЭлементаФормы(Форма.Элементы,
"СчетВБанкеДляРасчетов" + Постфикс, "Доступность", Форма["ИспользуетсяБанкДляРасчетов" + Постфикс]);
ОбщегоНазначенияКлиентСервер.УстановитьСвойствоЭлементаФормы(Форма.Элементы,
"БИКБанкаДляРасчетов" + Постфикс, "Доступность", Форма["ИспользуетсяБанкДляРасчетов" + Постфикс]);
ОбщегоНазначенияКлиентСервер.УстановитьСвойствоЭлементаФормы(Форма.Элементы,
"НаименованиеБанкаДляРасчетовМеждународное" + Постфикс, "Доступность",
Форма["ИспользуетсяБанкДляРасчетов" + Постфикс]);
ОбщегоНазначенияКлиентСервер.УстановитьСвойствоЭлементаФормы(Форма.Элементы,
"ГруппаВыборБанкаДляРасчетов" + Постфикс, "Видимость", Форма["ИспользуетсяБанкДляРасчетов" + Постфикс]);
Если Форма.МеждународныеРеквизитыБанковскихСчетов Тогда
ОбщегоНазначенияКлиентСервер.УстановитьСвойствоЭлементаФормы(Форма.Элементы,
"НомерСчета" + Постфикс, "Маска", "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!");
КонецЕсли;
ОбщегоНазначенияКлиентСервер.УстановитьСвойствоЭлементаФормы(Форма.Элементы,
"БИКБанка" + Постфикс, "Заголовок",
?(Форма["ИностранныйБанк" + Постфикс], НСтр("ru = 'Код'"), НСтр("ru = 'БИК'")));
ОбщегоНазначенияКлиентСервер.УстановитьСвойствоЭлементаФормы(Форма.Элементы,
"БИКБанкаДляРасчетов" + Постфикс, "Заголовок",
?(Форма["ИностранныйБанк" + Постфикс], НСтр("ru = 'Код'"), НСтр("ru = 'БИК'")));
ВалютныйСчет = (ЗначениеЗаполнено(Форма["ВалютаДенежныхСредств" + Постфикс])
И Форма["ВалютаДенежныхСредств" + Постфикс] <> Форма.ВалютаРеглУчета);
ОбщегоНазначенияКлиентСервер.УстановитьСвойствоЭлементаФормы(Форма.Элементы,
"КоррСчетБанка" + Постфикс, "Видимость", Не Форма["ИностранныйБанк" + Постфикс] И Не ВалютныйСчет);
ОбщегоНазначенияКлиентСервер.УстановитьСвойствоЭлементаФормы(Форма.Элементы,
"КоррСчетБанкаДляРасчетов" + Постфикс, "Видимость", Не Форма["ИностранныйБанк" + Постфикс] И Не ВалютныйСчет);
ОбщегоНазначенияКлиентСервер.УстановитьСвойствоЭлементаФормы(Форма.Элементы,
"СчетВБанкеДляРасчетов" + Постфикс, "Видимость", Не(Не Форма["ИностранныйБанк" + Постфикс] И Не ВалютныйСчет));
ОбщегоНазначенияКлиентСервер.УстановитьСвойствоЭлементаФормы(Форма.Элементы,
"СтранаБанкаМеждународный" + Постфикс, "Видимость", Не Форма.НациональныеРеквизитыБанковскихСчетов);
ОбщегоНазначенияКлиентСервер.УстановитьСвойствоЭлементаФормы(Форма.Элементы,
"НаименованиеБанкаДляРасчетов" + Постфикс, "Видимость", Не ВалютныйСчет);
ОбщегоНазначенияКлиентСервер.УстановитьСвойствоЭлементаФормы(Форма.Элементы,
"ГородБанкаДляРасчетов" + Постфикс, "Видимость", Не ВалютныйСчет);
ОбщегоНазначенияКлиентСервер.УстановитьСвойствоЭлементаФормы(Форма.Элементы,
"ЭтоIBAN" + Постфикс, "Видимость", Форма.МеждународныеРеквизитыБанковскихСчетов);
ОбщегоНазначенияКлиентСервер.УстановитьСвойствоЭлементаФормы(Форма.Элементы,
"ГруппаБанкМеждународный" + Постфикс, "Видимость", Форма.МеждународныеРеквизитыБанковскихСчетов);
ОбщегоНазначенияКлиентСервер.УстановитьСвойствоЭлементаФормы(Форма.Элементы,
"ГруппаБанкДляРасчетовМеждународный" + Постфикс, "Видимость", Форма.МеждународныеРеквизитыБанковскихСчетов);
ОбщегоНазначенияКлиентСервер.УстановитьСвойствоЭлементаФормы(Форма.Элементы,
"ГруппаБанкМеждународный" + Постфикс, "ОтображатьЗаголовок", Форма.НациональныеРеквизитыБанковскихСчетов);
ОбщегоНазначенияКлиентСервер.УстановитьСвойствоЭлементаФормы(Форма.Элементы,
"ГруппаБанкДляРасчетовМеждународный" + Постфикс, "ОтображатьЗаголовок",
Форма.НациональныеРеквизитыБанковскихСчетов);
ОбщегоНазначенияКлиентСервер.УстановитьСвойствоЭлементаФормы(Форма.Элементы,
"ГруппаБанк" + Постфикс, "ОтображатьЗаголовок",
Не(Не Форма.МеждународныеРеквизитыБанковскихСчетов И Форма.НациональныеРеквизитыБанковскихСчетов));
ОбщегоНазначенияКлиентСервер.УстановитьСвойствоЭлементаФормы(Форма.Элементы,
"ГруппаБанкДляРасчетов" + Постфикс, "ОтображатьЗаголовок",
Не(Не Форма.МеждународныеРеквизитыБанковскихСчетов И Форма.НациональныеРеквизитыБанковскихСчетов));
ОбщегоНазначенияКлиентСервер.УстановитьСвойствоЭлементаФормы(Форма.Элементы,
"ГруппаБанк" + Постфикс, "Видимость", Форма.НациональныеРеквизитыБанковскихСчетов);
ОбщегоНазначенияКлиентСервер.УстановитьСвойствоЭлементаФормы(Форма.Элементы,
"ГруппаБанкДляРасчетов" + Постфикс, "Видимость", Форма.НациональныеРеквизитыБанковскихСчетов);
ОбщегоНазначенияКлиентСервер.УстановитьСвойствоЭлементаФормы(Форма.Элементы,
"ГруппаБанк" + Постфикс, "ТолькоПросмотр", Форма["СпособУказанияБанка" + Постфикс] = "ВыборИзСправочника");
ОбщегоНазначенияКлиентСервер.УстановитьСвойствоЭлементаФормы(Форма.Элементы,
"ГруппаБанкМеждународный" + Постфикс, "ТолькоПросмотр",
Форма["СпособУказанияБанка" + Постфикс] = "ВыборИзСправочника");
ОбщегоНазначенияКлиентСервер.УстановитьСвойствоЭлементаФормы(Форма.Элементы,
"КоррСчетБанкаДляРасчетовМеждународный" + Постфикс, "Видимость",
Не Форма.НациональныеРеквизитыБанковскихСчетов);
ОбщегоНазначенияКлиентСервер.УстановитьСвойствоЭлементаФормы(Форма.Элементы,
"СтранаБанкаДляРасчетовМеждународный" + Постфикс, "Видимость", Не Форма.НациональныеРеквизитыБанковскихСчетов);
КонецПроцедуры
#КонецОбласти
#Область ПоискПоПервичнойИнформации
&НаСервере
Функция ПодзапросПоНазванию()
ТекстУсловияПоНеизвестномуПартнеруКонтрагент = " И (НЕ Контрагенты.Партнер.Предопределенный)";
ТекстУсловияПоНеизвестномуПартнеру = " И (НЕ Партнеры.Ссылка.Предопределенный)";
ТекстПодзапроса = "
|ВЫБРАТЬ РАЗРЕШЕННЫЕ
| Партнеры.Ссылка КАК Партнер,
| Партнеры.Ссылка КАК НайденоПоСсылка,
| ВЫБОР
| КОГДА Партнеры.Наименование ПОДОБНО &Название
| ТОГДА &СтрокаНаименование
| ИНАЧЕ &СтрокаНаименованиеПолное
| КОНЕЦ КАК НайденоВРеквизите
|ПОМЕСТИТЬ НайденоПоНазванию
|ИЗ
| Справочник.Партнеры КАК Партнеры
|ГДЕ
| Партнеры.Наименование ПОДОБНО &Название ИЛИ Партнеры.НаименованиеПолное ПОДОБНО &Название И &УсловиеПоНеизвестномуПартнеру";
Если Не ИспользуютсяТолькоПартнеры Тогда
ТекстПодзапроса = ТекстПодзапроса + "
|
|ОБЪЕДИНИТЬ ВСЕ
|";
ТекстПодзапроса = ТекстПодзапроса + "
|ВЫБРАТЬ
| Контрагенты.Партнер,
| Контрагенты.Ссылка,
| ВЫБОР
| КОГДА Контрагенты.Наименование ПОДОБНО &Название
| ТОГДА &СтрокаНаименование
| ИНАЧЕ &СтрокаНаименованиеПолное
| КОНЕЦ
|ИЗ
| Справочник.Контрагенты КАК Контрагенты
|ГДЕ
| (Контрагенты.Наименование ПОДОБНО &Название ИЛИ Контрагенты.НаименованиеПолное ПОДОБНО &Название) И
| Контрагенты.Партнер <> ЗНАЧЕНИЕ(Справочник.Партнеры.ПустаяСсылка) И &УсловиеПоНеизвестномуПартнеруКонтрагент";
КонецЕсли;
ТекстПодзапроса = ТекстПодзапроса + "
|;
|
|////////////////////////////////////////////////////////////////////////////////
|
|";
ТекстПодзапроса = СтрЗаменить(ТекстПодзапроса, "И &УсловиеПоНеизвестномуПартнеруКонтрагент", ?(НаОснованииКонтрагента, ТекстУсловияПоНеизвестномуПартнеруКонтрагент,""));
ТекстПодзапроса = СтрЗаменить(ТекстПодзапроса, "И &УсловиеПоНеизвестномуПартнеру", ?(НаОснованииКонтрагента, ТекстУсловияПоНеизвестномуПартнеру,""));
Возврат ТекстПодзапроса;
КонецФункции
&НаСервере
Функция ПодзапросПоАдресуЭлектроннойПочты()
ТекстУсловияПоНеизвестномуПартнеру = " И (НЕ ПартнерыКонтактнаяИнформация.Ссылка.Предопределенный)";
ТекстУсловияПоНеизвестномуПартнеруКЛ = " И (НЕ КонтактныеЛицаПартнеровКонтактнаяИнформация.Ссылка.Владелец.Предопределенный)";
ТекстЗапроса = "
|ВЫБРАТЬ РАЗРЕШЕННЫЕ
| ПартнерыКонтактнаяИнформация.Ссылка КАК Партнер,
| ПартнерыКонтактнаяИнформация.Ссылка КАК НайденоПоСсылка,
| &СтрокаEmail КАК НайденоВРеквизите,
| ПартнерыКонтактнаяИнформация.Вид КАК ВидКонтакта
|ПОМЕСТИТЬ НайденоПоАдресуЭП
|ИЗ
| Справочник.Партнеры.КонтактнаяИнформация КАК ПартнерыКонтактнаяИнформация
|ГДЕ
| ПартнерыКонтактнаяИнформация.АдресЭП В (&АдресаЭП) И &УсловиеПоНеизвестномуПартнеру
|
|ОБЪЕДИНИТЬ ВСЕ
|
|ВЫБРАТЬ
| КонтактныеЛицаПартнеровКонтактнаяИнформация.Ссылка.Владелец,
| КонтактныеЛицаПартнеровКонтактнаяИнформация.Ссылка,
| &СтрокаEmail,
| КонтактныеЛицаПартнеровКонтактнаяИнформация.Вид
|ИЗ
| Справочник.КонтактныеЛицаПартнеров.КонтактнаяИнформация КАК КонтактныеЛицаПартнеровКонтактнаяИнформация
|ГДЕ
| КонтактныеЛицаПартнеровКонтактнаяИнформация.АдресЭП В (&АдресаЭП) И &УсловиеПоНеизвестномуПартнеруКЛ
|;
|
|";
ТекстЗапроса = СтрЗаменить(ТекстЗапроса, "И &УсловиеПоНеизвестномуПартнеруКЛ", ?(НаОснованииКонтрагента, ТекстУсловияПоНеизвестномуПартнеруКЛ,""));
ТекстЗапроса = СтрЗаменить(ТекстЗапроса, "И &УсловиеПоНеизвестномуПартнеру", ?(НаОснованииКонтрагента, ТекстУсловияПоНеизвестномуПартнеру,""));
Возврат ТекстЗапроса;
КонецФункции
&НаСервере
Функция ПодзапросПоНомеруТелефона(МассивПредставленийТелефона)
ТекстЗапроса = "
|ВЫБРАТЬ РАЗРЕШЕННЫЕ
| ПартнерыКонтактнаяИнформация.Ссылка КАК Партнер,
| ПартнерыКонтактнаяИнформация.Ссылка КАК НайденоПоСсылка,
| &СтрокаТелефон КАК НайденоВРеквизите,
| ПартнерыКонтактнаяИнформация.Вид КАК ВидКонтакта
|ПОМЕСТИТЬ НайденоПоТелефону
|ИЗ
| Справочник.Партнеры.КонтактнаяИнформация КАК ПартнерыКонтактнаяИнформация
|ГДЕ
| (ПартнерыКонтактнаяИнформация.НомерТелефонаБезКодов В(&МассивНомеровТелефона)";
Для инд = 0 По МассивПредставленийТелефона.Количество()-1 Цикл
ТекстЗапроса = ТекстЗапроса + " ИЛИ ПартнерыКонтактнаяИнформация.Представление ПОДОБНО &ПредставлениеТелефона" + Строка(инд) + " " ;
КонецЦикла;
ТекстЗапроса = ТекстЗапроса + ")
| И (ПартнерыКонтактнаяИнформация.Тип = ЗНАЧЕНИЕ(Перечисление.ТипыКонтактнойИнформации.Телефон)
| ИЛИ ПартнерыКонтактнаяИнформация.Тип = ЗНАЧЕНИЕ(Перечисление.ТипыКонтактнойИнформации.Факс))";
Если НаОснованииКонтрагента Тогда
ТекстЗапроса = ТекстЗапроса + " И (НЕ ПартнерыКонтактнаяИнформация.Ссылка.Предопределенный)";
КонецЕсли;
ТекстЗапроса = ТекстЗапроса + "
|
|ОБЪЕДИНИТЬ ВСЕ
|
|ВЫБРАТЬ
| КонтактныеЛицаПартнеровКонтактнаяИнформация.Ссылка.Владелец,
| КонтактныеЛицаПартнеровКонтактнаяИнформация.Ссылка,
| &СтрокаТелефон,
| КонтактныеЛицаПартнеровКонтактнаяИнформация.Вид
|ИЗ
| Справочник.КонтактныеЛицаПартнеров.КонтактнаяИнформация КАК КонтактныеЛицаПартнеровКонтактнаяИнформация
|ГДЕ
| (КонтактныеЛицаПартнеровКонтактнаяИнформация.НомерТелефонаБезКодов В (&МассивНомеровТелефона)";
Для инд = 0 По МассивПредставленийТелефона.Количество()-1 Цикл
ТекстЗапроса = ТекстЗапроса + " ИЛИ КонтактныеЛицаПартнеровКонтактнаяИнформация.Представление ПОДОБНО &ПредставлениеТелефона" + Строка(инд) + " " ;
КонецЦикла;
ТекстЗапроса = ТекстЗапроса + ")
| И (КонтактныеЛицаПартнеровКонтактнаяИнформация.Тип = ЗНАЧЕНИЕ(Перечисление.ТипыКонтактнойИнформации.Телефон)
| ИЛИ КонтактныеЛицаПартнеровКонтактнаяИнформация.Тип = ЗНАЧЕНИЕ(Перечисление.ТипыКонтактнойИнформации.Факс))";
Если НаОснованииКонтрагента Тогда
ТекстЗапроса = ТекстЗапроса + " И (НЕ КонтактныеЛицаПартнеровКонтактнаяИнформация.Ссылка.Владелец.Предопределенный)";
КонецЕсли;
ТекстЗапроса = ТекстЗапроса + "
|;
|
|////////////////////////////////////////////////////////////////////////////////
|";
Возврат ТекстЗапроса;
КонецФункции
&НаСервере
Функция ПодзапросПоРегистрационномуНомеруВСтранеРегистрации()
ТекстУсловияПоНеизвестномуПартнеру = " И (НЕ Контрагенты.Партнер.Предопределенный)";
ТекстЗапроса = "
|ВЫБРАТЬ РАЗРЕШЕННЫЕ
| Контрагенты.Партнер КАК Партнер,
| Контрагенты.Ссылка КАК НайденоПоСсылка,
| &СтрокаРегистрационныйНомер КАК НайденоВРеквизите
|ПОМЕСТИТЬ КонтрагентыПоРегистрационномуНомеру
|ИЗ
| Справочник.Контрагенты КАК Контрагенты
|ГДЕ
| Контрагенты.РегистрационныйНомер = &РегистрационныйНомер И
| Контрагенты.Партнер <> ЗНАЧЕНИЕ(Справочник.Партнеры.ПустаяСсылка) И &УсловиеПоНеизвестномуПартнеру
|;
|
|";
ТекстЗапроса = СтрЗаменить(ТекстЗапроса, "И &УсловиеПоНеизвестномуПартнеру", ?(НаОснованииКонтрагента, ТекстУсловияПоНеизвестномуПартнеру,""));
Возврат ТекстЗапроса;
КонецФункции
&НаСервере
Процедура ДополнитьЗапросПоИНН(ТекстЗапроса, НаОснованииКонтрагента)
ТекстУсловияПоНеизвестномуПартнеру = " И (НЕ Контрагенты.Партнер.Предопределенный)";
ТекстЗапроса = ТекстЗапроса + "
|ВЫБРАТЬ РАЗРЕШЕННЫЕ
| Контрагенты.Партнер КАК Партнер,
| Контрагенты.Ссылка КАК НайденоПоСсылка,
| &СтрокаИНН КАК НайденоВРеквизите
|ПОМЕСТИТЬ КонтрагентыПоИНН
|ИЗ
| Справочник.Контрагенты КАК Контрагенты
|ГДЕ
| Контрагенты.ИНН = &ИНН И
| Контрагенты.Партнер <> ЗНАЧЕНИЕ(Справочник.Партнеры.ПустаяСсылка) " + ?(НаОснованииКонтрагента, ТекстУсловияПоНеизвестномуПартнеру,"") + "
|;
|
|////////////////////////////////////////////////////////////////////////////////";
КонецПроцедуры
&НаСервере
Функция ПодзапросПоНалоговомуНомеруВСтранеРегистрации()
ТекстУсловияПоНеизвестномуПартнеру = " И (НЕ Контрагенты.Партнер.Предопределенный)";
ТекстЗапроса = "
|ВЫБРАТЬ РАЗРЕШЕННЫЕ
| Контрагенты.Партнер КАК Партнер,
| Контрагенты.Ссылка КАК НайденоПоСсылка,
| &СтрокаНалоговыйНомер КАК НайденоВРеквизите
|ПОМЕСТИТЬ КонтрагентыПоНалоговомуНомеру
|ИЗ
| Справочник.Контрагенты КАК Контрагенты
|ГДЕ
| Контрагенты.НалоговыйНомер = &НалоговыйНомер И
| Контрагенты.Партнер <> ЗНАЧЕНИЕ(Справочник.Партнеры.ПустаяСсылка) И &УсловиеПоНеизвестномуПартнеру
|;
|
|";
ТекстЗапроса = СтрЗаменить(ТекстЗапроса, "И &УсловиеПоНеизвестномуПартнеру", ?(НаОснованииКонтрагента, ТекстУсловияПоНеизвестномуПартнеру,""));
Возврат ТекстЗапроса;
КонецФункции
&НаСервере
Функция ПодзапросПоДокументуУдостоверяющемуЛичность()
ТекстУсловияПоНеизвестномуПартнеру = " И (НЕ Партнеры.Предопределенный)";
ТекстЗапроса = "
|ВЫБРАТЬ РАЗРЕШЕННЫЕ
| ДокументыФизическихЛицСрезПоследних.Физлицо КАК Контрагент
|ПОМЕСТИТЬ КонтрагентыПоДокументамФизЛиц
|ИЗ
| РегистрСведений.ДокументыФизическихЛиц.СрезПоследних(&ТекущаяДата, Физлицо ССЫЛКА Справочник.Контрагенты) КАК ДокументыФизическихЛицСрезПоследних
|ГДЕ
| ДокументыФизическихЛицСрезПоследних.ВидДокумента = &ВидДокумента
| И ДокументыФизическихЛицСрезПоследних.Серия = &Серия
| И ДокументыФизическихЛицСрезПоследних.Номер = &Номер
|;
|
|
|ВЫБРАТЬ РАЗРЕШЕННЫЕ
| Партнеры.Ссылка КАК Партнер,
| Контрагенты.Ссылка КАК НайденоПоСсылка,
| &СтрокаДанныеДокумента КАК НайденоВРеквизите
|ПОМЕСТИТЬ КонтрагентыПоДокументу
|ИЗ
| КонтрагентыПоДокументамФизЛиц КАК КонтрагентыПоДокументамФизЛиц
| ВНУТРЕННЕЕ СОЕДИНЕНИЕ Справочник.Контрагенты КАК Контрагенты
| ПО КонтрагентыПоДокументамФизЛиц.Контрагент = Контрагенты.Ссылка
| ВНУТРЕННЕЕ СОЕДИНЕНИЕ Справочник.Партнеры КАК Партнеры
| ПО (Контрагенты.Партнер = Партнеры.Ссылка) И &УсловиеПоНеизвестномуПартнеру
|;
|
|";
ТекстЗапроса = СтрЗаменить(ТекстЗапроса, "И &УсловиеПоНеизвестномуПартнеру", ?(НаОснованииКонтрагента, ТекстУсловияПоНеизвестномуПартнеру,""));
Возврат ТекстЗапроса;
КонецФункции
&НаСервере
Функция ПодзапросПоФИО(Запрос)
МассивФИО = Новый Массив;
Если НЕ ПустаяСтрока(ФамилияПартнера)
И ЭтоКомпания = 1 Тогда
ДобавитьВМассивФИО(МассивФИО, ФамилияПартнера, ИмяПартнера, ОтчествоПартнера);
КонецЕсли;
Если НЕ ПустаяСтрока(ФамилияКЛ) Тогда
ДобавитьВМассивФИО(МассивФИО, ФамилияКЛ, ИмяКЛ, ОтчествоКЛ);
КонецЕсли;
ПодзапросПоКонтактнымЛицам = "";
ТекстУсловияПоНеизвестномуПартнеру = " И (НЕ КонтактныеЛицаПартнеров.Владелец.Предопределенный)";
Для Инд = 1 По МассивФИО.Количество() Цикл
ПодзапросПустой = ПустаяСтрока(ПодзапросПоКонтактнымЛицам);
Если Не ПодзапросПустой Тогда
ПодзапросПоКонтактнымЛицам = ПодзапросПоКонтактнымЛицам + "
|ОБЪЕДИНИТЬ ВСЕ"
КонецЕсли;
ПодзапросПоКонтактнымЛицам = ПодзапросПоКонтактнымЛицам + "
|
|ВЫБРАТЬ &ТекстРазрешенные,
| КонтактныеЛицаПартнеров.Владелец КАК Партнер,
| КонтактныеЛицаПартнеров.Ссылка КАК НайденоПоСсылка,
| &СтрокаНаименование КАК НайденоВРеквизите
| ,&ТекстПоместить
|ИЗ
| Справочник.КонтактныеЛицаПартнеров КАК КонтактныеЛицаПартнеров
|ГДЕ
| КонтактныеЛицаПартнеров.Наименование ПОДОБНО ФИО_X И &УсловиеПоНеизвестномуПартнеру
|";
ПодзапросПоКонтактнымЛицам = СтрЗаменить(ПодзапросПоКонтактнымЛицам, "&ТекстРазрешенные,", ?(Инд = 1,"РАЗРЕШЕННЫЕ",""));
ПодзапросПоКонтактнымЛицам = СтрЗаменить(ПодзапросПоКонтактнымЛицам, ",&ТекстПоместить", ?(ПодзапросПустой,"ПОМЕСТИТЬ НайденоПоФИОКонтактныхЛиц",""));
ПодзапросПоКонтактнымЛицам = СтрЗаменить(ПодзапросПоКонтактнымЛицам, "ФИО_X", "&ФИО_" + Строка(Инд));
ПодзапросПоКонтактнымЛицам = СтрЗаменить(ПодзапросПоКонтактнымЛицам, "И &УсловиеПоНеизвестномуПартнеру", ?(НаОснованииКонтрагента, ТекстУсловияПоНеизвестномуПартнеру,""));
Запрос.УстановитьПараметр("ФИО_" + Строка(Инд), МассивФИО[Инд-1]+"%")
КонецЦикла;
ПодзапросПоКонтактнымЛицам = ПодзапросПоКонтактнымЛицам + "
|;
|////////////////////////////////////////////////////////////////////////////////";
Возврат ПодзапросПоКонтактнымЛицам ;
КонецФункции
&НаСервере
Функция ПодзапросПоНаименованиюКонтрагента()
ТекстУсловияПоНеизвестномуПартнеру = " И (НЕ Контрагенты.Партнер.Предопределенный)";
ТекстЗапроса = "
|ВЫБРАТЬ РАЗРЕШЕННЫЕ
| Контрагенты.Партнер КАК Партнер,
| Контрагенты.Ссылка КАК НайденоПоСсылка,
| ВЫБОР
| КОГДА Контрагенты.Наименование ПОДОБНО &Название
| ТОГДА &СтрокаНаименование
| ИНАЧЕ &СтрокаНаименованиеПолное
| КОНЕЦ КАК НайденоВРеквизите
|ПОМЕСТИТЬ КонтрагентыПоНаименованию
|ИЗ
| Справочник.Контрагенты КАК Контрагенты
|ГДЕ
| Контрагенты.Наименование ПОДОБНО &НаименованиеКонтрагента ИЛИ Контрагенты.НаименованиеПолное ПОДОБНО &НаименованиеКонтрагента И &УсловиеПоНеизвестномуПартнеру
|;
|
|";
ТекстЗапроса = СтрЗаменить(ТекстЗапроса, "И &УсловиеПоНеизвестномуПартнеру", ?(НаОснованииКонтрагента, ТекстУсловияПоНеизвестномуПартнеру,""));
Возврат ТекстЗапроса;
КонецФункции
&НаСервере
Функция СводныйЗапрос(СтруктураПоиска)
СводныйЗапрос ="
|
|ВЫБРАТЬ
| НайденоПоНазванию.Партнер КАК Партнер,
| НайденоПоНазванию.НайденоПоСсылка КАК НайденоПоСсылка,
| НайденоПоНазванию.НайденоВРеквизите КАК НайденоВРеквизите,
| НЕОПРЕДЕЛЕНО КАК ВидКонтакта
|ПОМЕСТИТЬ НайденныеСовпадения
|ИЗ
| НайденоПоНазванию КАК НайденоПоНазванию
|";
Если СтруктураПоиска.РегистрационныйНомер Тогда
СводныйЗапрос = СводныйЗапрос + "
|
|ОБЪЕДИНИТЬ ВСЕ
|
|ВЫБРАТЬ
| КонтрагентыПоРегистрационномуНомеру.Партнер,
| КонтрагентыПоРегистрационномуНомеру.НайденоПоСсылка,
| КонтрагентыПоРегистрационномуНомеру.НайденоВРеквизите,
| НЕОПРЕДЕЛЕНО
|ИЗ
| КонтрагентыПоРегистрационномуНомеру КАК КонтрагентыПоРегистрационномуНомеру
|";
КонецЕсли;
Если СтруктураПоиска.НалоговыйНомер Тогда
СводныйЗапрос = СводныйЗапрос + "
|
|ОБЪЕДИНИТЬ ВСЕ
|
|ВЫБРАТЬ
| КонтрагентыПоНалоговомуНомеру.Партнер,
| КонтрагентыПоНалоговомуНомеру.НайденоПоСсылка,
| КонтрагентыПоНалоговомуНомеру.НайденоВРеквизите,
| НЕОПРЕДЕЛЕНО
|ИЗ
| КонтрагентыПоНалоговомуНомеру КАК КонтрагентыПоНалоговомуНомеру
|";
КонецЕсли;
Если СтруктураПоиска.АдресЭП Тогда
СводныйЗапрос = СводныйЗапрос + "
|
|ОБЪЕДИНИТЬ ВСЕ
|
|ВЫБРАТЬ
| НайденоПоАдресуЭП.Партнер,
| НайденоПоАдресуЭП.НайденоПоСсылка,
| НайденоПоАдресуЭП.НайденоВРеквизите,
| НайденоПоАдресуЭП.ВидКонтакта
|ИЗ
| НайденоПоАдресуЭП КАК НайденоПоАдресуЭП
|";
КонецЕсли;
Если СтруктураПоиска.НомерТелефона Тогда
СводныйЗапрос = СводныйЗапрос + "
|
|ОБЪЕДИНИТЬ ВСЕ
|
|ВЫБРАТЬ
| НайденоПоТелефону.Партнер,
| НайденоПоТелефону.НайденоПоСсылка,
| НайденоПоТелефону.НайденоВРеквизите,
| НайденоПоТелефону.ВидКонтакта
|ИЗ
| НайденоПоТелефону КАК НайденоПоТелефону
|";
КонецЕсли;
Если СтруктураПоиска.ФИО Тогда
СводныйЗапрос = СводныйЗапрос + "
|
|ОБЪЕДИНИТЬ ВСЕ
|
|ВЫБРАТЬ
| НайденоПоФИОКонтактныхЛиц.Партнер,
| НайденоПоФИОКонтактныхЛиц.НайденоПоСсылка,
| НайденоПоФИОКонтактныхЛиц.НайденоВРеквизите,
| НЕОПРЕДЕЛЕНО
|ИЗ
| НайденоПоФИОКонтактныхЛиц КАК НайденоПоФИОКонтактныхЛиц
|";
КонецЕсли;
Если СтруктураПоиска.НаименованиеКонтрагента Тогда
СводныйЗапрос = СводныйЗапрос + "
|
|ОБЪЕДИНИТЬ ВСЕ
|
|ВЫБРАТЬ
| КонтрагентыПоНаименованию.Партнер,
| КонтрагентыПоНаименованию.НайденоПоСсылка,
| КонтрагентыПоНаименованию.НайденоВРеквизите,
| НЕОПРЕДЕЛЕНО
|ИЗ
| КонтрагентыПоНаименованию КАК КонтрагентыПоНаименованию
|";
КонецЕсли;
Если СтруктураПоиска.ДокументКонтрагента Тогда
СводныйЗапрос = СводныйЗапрос + "
|
|ОБЪЕДИНИТЬ ВСЕ
|
|ВЫБРАТЬ
| КонтрагентыПоДокументу.Партнер,
| КонтрагентыПоДокументу.НайденоПоСсылка,
| КонтрагентыПоДокументу.НайденоВРеквизите,
| НЕОПРЕДЕЛЕНО
|ИЗ
| КонтрагентыПоДокументу КАК КонтрагентыПоДокументу
|";
КонецЕсли;
ПартнерыИКонтрагентыЛокализация.ДополнитьСводныйЗапросПоСтруктуреПоиска(СводныйЗапрос, СтруктураПоиска);
СводныйЗапрос = СводныйЗапрос + "
|ИНДЕКСИРОВАТЬ ПО
| Партнер,
| НайденоПоСсылка,
| НайденоВРеквизите
|;
|////////////////////////////////////////////////////////////////////////////////";
СводныйЗапрос = СводныйЗапрос + "
|ВЫБРАТЬ
| НайденныеСовпадения.Партнер КАК Партнер,
| КОЛИЧЕСТВО(НайденныеСовпадения.Партнер) КАК КоличествоНайденныхАналогов
|ПОМЕСТИТЬ СовпаденияПартнеры
|ИЗ
| НайденныеСовпадения КАК НайденныеСовпадения
|
|СГРУППИРОВАТЬ ПО
| НайденныеСовпадения.Партнер
|ИНДЕКСИРОВАТЬ ПО
| Партнер
|;
|
|
|ВЫБРАТЬ РАЗРЕШЕННЫЕ
| СовпаденияПартнеры.Партнер КАК Партнер,
| РеквизитыПартнера.Реквизит КАК Реквизит,
| ЕСТЬNULL(КонтактыПартнера.Вид, НЕОПРЕДЕЛЕНО) КАК ВидКонтакта,
| РеквизитыПартнера.Значение КАК ЗначениеСоздаваемого,
| РеквизитыПартнера.Порядок КАК ПорядокРеквизита,
| РеквизитыПартнера.Существенный КАК Существенный,
| ВЫБОР
| КОГДА РеквизитыПартнера.Реквизит = &СтрокаВидПартнера
| ТОГДА ПРЕДСТАВЛЕНИЕ(Партнеры.ЮрФизЛицо)
| КОГДА РеквизитыПартнера.Реквизит = &СтрокаНаименование
| ТОГДА Партнеры.Наименование
| КОГДА РеквизитыПартнера.Реквизит = &СтрокаНаименованиеПолное
| ТОГДА Партнеры.НаименованиеПолное
| КОГДА РеквизитыПартнера.Реквизит = &СтрокаEmail
| ТОГДА КонтактыПартнера.АдресЭП
| КОГДА РеквизитыПартнера.Реквизит = &СтрокаТелефон
| ТОГДА КонтактыПартнера.Представление
| ИНАЧЕ
| """"
| КОНЕЦ КАК Значение
|ПОМЕСТИТЬ ДанныеПартнеров
|ИЗ
| СовпаденияПартнеры КАК СовпаденияПартнеры
| ВНУТРЕННЕЕ СОЕДИНЕНИЕ Справочник.Партнеры КАК Партнеры
| ПО СовпаденияПартнеры.Партнер = Партнеры.Ссылка
| ВНУТРЕННЕЕ СОЕДИНЕНИЕ РеквизитыПартнера КАК РеквизитыПартнера
| ПО (ИСТИНА)
| ЛЕВОЕ СОЕДИНЕНИЕ Справочник.Партнеры.КонтактнаяИнформация КАК КонтактыПартнера
| ПО СовпаденияПартнеры.Партнер = КонтактыПартнера.Ссылка
| И (ВЫБОР
| КОГДА РеквизитыПартнера.Реквизит = &СтрокаEmail
| ТОГДА КонтактыПартнера.Тип = ЗНАЧЕНИЕ(Перечисление.ТипыКонтактнойИнформации.АдресЭлектроннойПочты)
| КОГДА РеквизитыПартнера.Реквизит = &СтрокаТелефон
| ТОГДА КонтактыПартнера.Тип = ЗНАЧЕНИЕ(Перечисление.ТипыКонтактнойИнформации.Телефон)
| ИЛИ КонтактыПартнера.Тип = ЗНАЧЕНИЕ(Перечисление.ТипыКонтактнойИнформации.Факс)
| ИНАЧЕ ЛОЖЬ
| КОНЕЦ)
|;
|
|
|ВЫБРАТЬ РАЗРЕШЕННЫЕ РАЗЛИЧНЫЕ
| НайденныеСовпадения.Партнер КАК Партнер,
| НайденныеСовпадения.НайденоПоСсылка КАК Контрагент
|ПОМЕСТИТЬ СовпадениеКонтрагенты
|ИЗ
| НайденныеСовпадения КАК НайденныеСовпадения
| ВНУТРЕННЕЕ СОЕДИНЕНИЕ Справочник.Контрагенты КАК Контрагенты
| ПО НайденныеСовпадения.НайденоПоСсылка = Контрагенты.Ссылка
|ГДЕ
| НЕ &ИспользуютсяТолькоПартнеры
|
|ОБЪЕДИНИТЬ ВСЕ
|
|ВЫБРАТЬ
| СовпаденияПартнеры.Партнер,
| Контрагенты.Ссылка
|ИЗ
| СовпаденияПартнеры КАК СовпаденияПартнеры
| ВНУТРЕННЕЕ СОЕДИНЕНИЕ Справочник.Контрагенты КАК Контрагенты
| ПО СовпаденияПартнеры.Партнер = Контрагенты.Партнер
|ГДЕ
| &ИспользуютсяТолькоПартнеры
|ИНДЕКСИРОВАТЬ ПО
| Партнер,
| Контрагент
|;
|
|
|ВЫБРАТЬ РАЗРЕШЕННЫЕ
| СовпадениеКонтрагенты.Партнер КАК Партнер,
| СовпадениеКонтрагенты.Контрагент КАК Контрагент,
| РеквизитыКонтрагента.Реквизит КАК Реквизит,
| НЕОПРЕДЕЛЕНО КАК ВидКонтакта,
| РеквизитыКонтрагента.Значение КАК ЗначениеСоздаваемого,
| РеквизитыКонтрагента.Порядок КАК ПорядокРеквизита,
| РеквизитыКонтрагента.Существенный КАК Существенный,
| ВЫБОР
| КОГДА РеквизитыКонтрагента.Реквизит = &СтрокаВидКонтрагента
| ТОГДА
| ВЫБОР КОГДА Контрагенты.ОбособленноеПодразделение
| ТОГДА &СтрокаОбособленноеПодразделение
| ИНАЧЕ ПРЕДСТАВЛЕНИЕ(Контрагенты.ЮрФизЛицо)
| КОНЕЦ
| КОГДА РеквизитыКонтрагента.Реквизит = &СтрокаНаименование
| ТОГДА Контрагенты.Наименование
| КОГДА РеквизитыКонтрагента.Реквизит = &СтрокаНаименованиеПолное
| ТОГДА Контрагенты.НаименованиеПолное
| КОГДА РеквизитыКонтрагента.Реквизит = &СтрокаРегистрационныйНомер
| ТОГДА Контрагенты.РегистрационныйНомер
| КОГДА РеквизитыКонтрагента.Реквизит = &СтрокаДанныеДокумента
| ТОГДА ДокументыФизЛиц.Представление
| ИНАЧЕ &ДопУсловия
| КОНЕЦ КАК Значение
|ПОМЕСТИТЬ ДанныеКонтрагентов
|ИЗ
| СовпадениеКонтрагенты КАК СовпадениеКонтрагенты
| ВНУТРЕННЕЕ СОЕДИНЕНИЕ Справочник.Контрагенты КАК Контрагенты
| ПО СовпадениеКонтрагенты.Контрагент = Контрагенты.Ссылка
| ВНУТРЕННЕЕ СОЕДИНЕНИЕ РеквизитыКонтрагента КАК РеквизитыКонтрагента
| ПО (ИСТИНА)
| ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ДокументыФизическихЛиц.СрезПоследних(&ТекущаяДата, Физлицо ССЫЛКА Справочник.Контрагенты) КАК ДокументыФизЛиц
| ПО СовпадениеКонтрагенты.Контрагент = ДокументыФизЛиц.ФизЛицо
| И РеквизитыКонтрагента.Реквизит = &СтрокаДанныеДокумента
| И ДокументыФизЛиц.ВидДокумента = &ВидДокумента
|;
|
|
|ВЫБРАТЬ РАЗЛИЧНЫЕ
| НайденныеСовпадения.Партнер КАК Партнер,
| НайденныеСовпадения.НайденоПоСсылка КАК КонтактноеЛицо
|ПОМЕСТИТЬ СовпадениеКонтактныеЛица
|ИЗ
| НайденныеСовпадения КАК НайденныеСовпадения
| ВНУТРЕННЕЕ СОЕДИНЕНИЕ Справочник.КонтактныеЛицаПартнеров КАК КонтактныеЛицаПартнеров
| ПО НайденныеСовпадения.НайденоПоСсылка = КонтактныеЛицаПартнеров.Ссылка
|ИНДЕКСИРОВАТЬ ПО
| Партнер,
| КонтактноеЛицо
|;
|
|
|ВЫБРАТЬ РАЗРЕШЕННЫЕ
| СовпадениеКонтактныеЛица.Партнер КАК Партнер,
| СовпадениеКонтактныеЛица.КонтактноеЛицо КАК КонтактноеЛицо,
| РеквизитыКонтактногоЛица.Реквизит КАК Реквизит,
| ЕСТЬNULL(КонтактыКонтактныхЛиц.Вид, НЕОПРЕДЕЛЕНО) КАК ВидКонтакта,
| РеквизитыКонтактногоЛица.Значение КАК ЗначениеСоздаваемого,
| РеквизитыКонтактногоЛица.Порядок КАК ПорядокРеквизита,
| РеквизитыКонтактногоЛица.Существенный КАК Существенный,
| ВЫБОР
| КОГДА РеквизитыКонтактногоЛица.Реквизит = &СтрокаНаименование
| ТОГДА КонтактныеЛицаПартнеров.Наименование
| КОГДА РеквизитыКонтактногоЛица.Реквизит = &СтрокаEmail
| ТОГДА КонтактыКонтактныхЛиц.АдресЭП
| КОГДА РеквизитыКонтактногоЛица.Реквизит = &СтрокаТелефон
| ТОГДА КонтактыКонтактныхЛиц.Представление
| ИНАЧЕ
| """"
| КОНЕЦ КАК Значение
|ПОМЕСТИТЬ ДанныеКонтактныхЛиц
|ИЗ
| СовпадениеКонтактныеЛица КАК СовпадениеКонтактныеЛица
| ВНУТРЕННЕЕ СОЕДИНЕНИЕ Справочник.КонтактныеЛицаПартнеров КАК КонтактныеЛицаПартнеров
| ПО СовпадениеКонтактныеЛица.КонтактноеЛицо = КонтактныеЛицаПартнеров.Ссылка
| ВНУТРЕННЕЕ СОЕДИНЕНИЕ РеквизитыКонтактногоЛица КАК РеквизитыКонтактногоЛица
| ПО (ИСТИНА)
| ЛЕВОЕ СОЕДИНЕНИЕ Справочник.КонтактныеЛицаПартнеров.КонтактнаяИнформация КАК КонтактыКонтактныхЛиц
| ПО СовпадениеКонтактныеЛица.КонтактноеЛицо = КонтактыКонтактныхЛиц.Ссылка
| И (ВЫБОР
| КОГДА РеквизитыКонтактногоЛица.Реквизит = &СтрокаEmail
| ТОГДА КонтактыКонтактныхЛиц.Тип = ЗНАЧЕНИЕ(Перечисление.ТипыКонтактнойИнформации.АдресЭлектроннойПочты)
| КОГДА РеквизитыКонтактногоЛица.Реквизит = &СтрокаТелефон
| ТОГДА КонтактыКонтактныхЛиц.Тип = ЗНАЧЕНИЕ(Перечисление.ТипыКонтактнойИнформации.Телефон)
| ИЛИ КонтактыКонтактныхЛиц.Тип = ЗНАЧЕНИЕ(Перечисление.ТипыКонтактнойИнформации.Факс)
| ИНАЧЕ ЛОЖЬ
| КОНЕЦ)
|;
|
|
|ВЫБРАТЬ РАЗРЕШЕННЫЕ
| СовпаденияПартнеры.Партнер КАК Партнер,
| СовпаденияПартнеры.КоличествоНайденныхАналогов КАК КоличествоНайденныхАналогов,
| Партнеры.ОсновнойМенеджер КАК ОсновнойМенеджер,
| Партнеры.Представление КАК Представление
|ИЗ
| СовпаденияПартнеры КАК СовпаденияПартнеры
| ВНУТРЕННЕЕ СОЕДИНЕНИЕ Справочник.Партнеры КАК Партнеры
| ПО СовпаденияПартнеры.Партнер = Партнеры.Ссылка
|;
|
|
|ВЫБРАТЬ
| ДанныеПартнеров.Партнер КАК Партнер,
| ДанныеПартнеров.Партнер КАК НайденоПоСсылка,
| ДанныеПартнеров.Значение КАК ЗначениеНайденного,
| ДанныеПартнеров.ЗначениеСоздаваемого КАК ЗначениеСоздаваемого,
| ДанныеПартнеров.Существенный КАК Существенный,
| 1 КАК ПорядокУзла,
| ДанныеПартнеров.ПорядокРеквизита КАК ПорядокРеквизита,
| ВЫБОР
| КОГДА ДанныеПартнеров.ВидКонтакта = НЕОПРЕДЕЛЕНО
| ТОГДА ДанныеПартнеров.Реквизит
| ИНАЧЕ ДанныеПартнеров.ВидКонтакта
| КОНЕЦ КАК Реквизит,
| ВЫБОР
| КОГДА НайденныеСовпадения.НайденоВРеквизите ЕСТЬ NULL
| ТОГДА ЛОЖЬ
| ИНАЧЕ ИСТИНА
| КОНЕЦ КАК Совпадение
|
|ИЗ
| ДанныеПартнеров КАК ДанныеПартнеров
| ЛЕВОЕ СОЕДИНЕНИЕ НайденныеСовпадения КАК НайденныеСовпадения
| ПО ДанныеПартнеров.Партнер = НайденныеСовпадения.Партнер
| И ДанныеПартнеров.Партнер = НайденныеСовпадения.НайденоПоСсылка
| И ДанныеПартнеров.Реквизит = НайденныеСовпадения.НайденоВРеквизите
| И ДанныеПартнеров.ВидКонтакта = НайденныеСовпадения.ВидКонтакта
|
|ОБЪЕДИНИТЬ ВСЕ
|
|ВЫБРАТЬ
| ДанныеКонтрагентов.Партнер,
| ДанныеКонтрагентов.Контрагент,
| ДанныеКонтрагентов.Значение,
| ДанныеКонтрагентов.ЗначениеСоздаваемого,
| ДанныеКонтрагентов.Существенный,
| 2,
| ДанныеКонтрагентов.ПорядокРеквизита,
| ДанныеКонтрагентов.Реквизит,
| ВЫБОР
| КОГДА НайденныеСовпадения.НайденоВРеквизите ЕСТЬ NULL
| ТОГДА ЛОЖЬ
| ИНАЧЕ ИСТИНА
| КОНЕЦ КАК Совпадение
|ИЗ
| ДанныеКонтрагентов КАК ДанныеКонтрагентов
| ЛЕВОЕ СОЕДИНЕНИЕ НайденныеСовпадения КАК НайденныеСовпадения
| ПО ДанныеКонтрагентов.Партнер = НайденныеСовпадения.Партнер
| И ДанныеКонтрагентов.Контрагент = НайденныеСовпадения.НайденоПоСсылка
| И ДанныеКонтрагентов.Реквизит = НайденныеСовпадения.НайденоВРеквизите
|
|ОБЪЕДИНИТЬ ВСЕ
|
|ВЫБРАТЬ
| ДанныеКонтактныхЛиц.Партнер,
| ДанныеКонтактныхЛиц.КонтактноеЛицо,
| ДанныеКонтактныхЛиц.Значение,
| ДанныеКонтактныхЛиц.ЗначениеСоздаваемого,
| ДанныеКонтактныхЛиц.Существенный,
| 3,
| ДанныеКонтактныхЛиц.ПорядокРеквизита,
| ВЫБОР
| КОГДА ДанныеКонтактныхЛиц.ВидКонтакта = НЕОПРЕДЕЛЕНО
| ТОГДА ДанныеКонтактныхЛиц.Реквизит
| ИНАЧЕ ДанныеКонтактныхЛиц.ВидКонтакта
| КОНЕЦ КАК Реквизит,
| ВЫБОР
| КОГДА НайденныеСовпадения.НайденоВРеквизите ЕСТЬ NULL
| ТОГДА ЛОЖЬ
| ИНАЧЕ ИСТИНА
| КОНЕЦ КАК Совпадение
|ИЗ
| ДанныеКонтактныхЛиц КАК ДанныеКонтактныхЛиц
| ЛЕВОЕ СОЕДИНЕНИЕ НайденныеСовпадения КАК НайденныеСовпадения
| ПО ДанныеКонтактныхЛиц.Партнер = НайденныеСовпадения.Партнер
| И ДанныеКонтактныхЛиц.КонтактноеЛицо = НайденныеСовпадения.НайденоПоСсылка
| И ДанныеКонтактныхЛиц.Реквизит = НайденныеСовпадения.НайденоВРеквизите
| И ДанныеКонтактныхЛиц.ВидКонтакта = НайденныеСовпадения.ВидКонтакта
|
|УПОРЯДОЧИТЬ ПО
| ПорядокУзла,
| ПорядокРеквизита
|ИТОГИ ПО
| Партнер,
| НайденоПоСсылка";
ПартнерыИКонтрагентыЛокализация.УстановитьДополнительныеУсловияСводногоЗапроса(СводныйЗапрос);
СводныйЗапрос = СтрЗаменить(СводныйЗапрос, "&ДопУсловия", """""");
Возврат СводныйЗапрос;
КонецФункции
&НаСервере
Процедура ВыполнитьПоискПоПервичнойИнформации()
ТекущийНайденныйПартнер = Справочники.Партнеры.ПустаяСсылка();
СтруктураПоиска = Новый Структура;
СтруктураПоиска.Вставить("НаименованиеКонтрагента", УказыватьЮридическиеРеквизиты И ЭтоКомпания = 0 И Не ИспользуютсяТолькоПартнеры);
СтруктураПоиска.Вставить("АдресЭП", ?(ЭтоКомпания = 0, Не ПустаяСтрока(АдресЭППартнера) Или (УказатьДанныеКонтактногоЛица
И Не ПустаяСтрока(АдресЭПКЛ)),Не ПустаяСтрока(АдресЭППартнераФизЛицо)));
СтруктураПоиска.Вставить("НомерТелефона", ?(ЭтоКомпания = 0,Не ПустаяСтрока(ТелефонПартнера) Или (УказатьДанныеКонтактногоЛица
И (Не ПустаяСтрока(ТелефонКЛ)Или Не ПустаяСтрока(МобильныйТелефонКЛ))),Не ПустаяСтрока(ТелефонПартнераФизЛицо)));
СтруктураПоиска.Вставить("ФИО", (ЭтоКомпания = 1) Или (ЭтоКомпания = 0 И УказатьДанныеКонтактногоЛица И Не ПустаяСтрока(ФамилияКЛ)));
СтруктураПоиска.Вставить("ДокументКонтрагента", (ЭтоКомпания = 1) И УказыватьЮридическиеРеквизиты И УказатьДокументУдостоверяющийЛичность);
СтруктураПоиска.Вставить("РегистрационныйНомер", (ИспользуютсяТолькоПартнеры Или УказыватьЮридическиеРеквизиты) И ВидКомпании = 1 И Не ПустаяСтрока(РегистрационныйНомер));
СтруктураПоиска.Вставить("НалоговыйНомер", (ИспользуютсяТолькоПартнеры Или УказыватьЮридическиеРеквизиты) И ВидКомпании = 1 И Не ПустаяСтрока(НалоговыйНомер));
СтруктураПоиска.Вставить("ИНН", (УказыватьЮридическиеРеквизиты И ЭтоКомпания = 0 И Не ПустаяСтрока(ИНН))
Или (ЭтоКомпания = 1 И Не ПустаяСтрока(ИННПартнерФизЛицо)));
ПартнерыИКонтрагентыЛокализация.ДополнитьСтруктуруПоиска(ЭтотОбъект, СтруктураПоиска);
МассивПредставленийТелефона = МассивПредставленийТелефонов();
Запрос = Новый Запрос;
ТекстЗапроса = ПодзапросПоНазванию();
Если СтруктураПоиска.АдресЭП Тогда
ТекстЗапроса = ТекстЗапроса + ПодзапросПоАдресуЭлектроннойПочты();
КонецЕсли;
Если СтруктураПоиска.НомерТелефона Тогда
ТекстЗапроса = ТекстЗапроса + ПодзапросПоНомеруТелефона(МассивПредставленийТелефона);
КонецЕсли;
Если СтруктураПоиска.ФИО Тогда
ТекстЗапроса = ТекстЗапроса + ПодзапросПоФио(Запрос);
КонецЕсли;
Если СтруктураПоиска.НаименованиеКонтрагента Тогда
ТекстЗапроса = ТекстЗапроса + ПодзапросПоНаименованиюКонтрагента();
КонецЕсли;
Если СтруктураПоиска.ДокументКонтрагента Тогда
ТекстЗапроса = ТекстЗапроса + ПодзапросПоДокументуУдостоверяющемуЛичность()
КонецЕсли;
Если СтруктураПоиска.РегистрационныйНомер Тогда
ТекстЗапроса = ТекстЗапроса + ПодзапросПоРегистрационномуНомеруВСтранеРегистрации();
КонецЕсли;
Если СтруктураПоиска.НалоговыйНомер Тогда
ТекстЗапроса = ТекстЗапроса + ПодзапросПоНалоговомуНомеруВСтранеРегистрации();
КонецЕсли;
Если СтруктураПоиска.ИНН Тогда
ДополнитьЗапросПоИНН(ТекстЗапроса, НаОснованииКонтрагента);
КонецЕсли;
ПартнерыИКонтрагентыЛокализация.ДополнитьТекстЗапросаПоиска(ТекстЗапроса, СтруктураПоиска, НаОснованииКонтрагента);
ТекстЗапроса = ТекстЗапроса + СводныйЗапрос(СтруктураПоиска);
НаименованиеПоиск = НаименованиеПартнера();
Если ЭтоКомпания = 0 Тогда
НаименованиеПоиск = "%" + НаименованиеПоиск + "%";
КонецЕсли;
Запрос.УстановитьПараметр("Название", НаименованиеПоиск);
Запрос.УстановитьПараметр("АдресаЭП", МассивАдресовЭлектроннойПочтыДляПоиска());
Запрос.УстановитьПараметр("МассивНомеровТелефона", МассивНомеровТелефонаДляПоиска());
Запрос.УстановитьПараметр("НаименованиеКонтрагента","%"+ПолноеЮридическоеНаименование+"%");
Запрос.УстановитьПараметр("ВидДокумента", ВидДокумента);
Запрос.УстановитьПараметр("Серия", СерияДокумента);
Запрос.УстановитьПараметр("Номер", НомерДокумента);
Запрос.УстановитьПараметр("ТекущаяДата", ТекущаяДатаСеанса());
Запрос.УстановитьПараметр("ИспользуютсяТолькоПартнеры", ИспользуютсяТолькоПартнеры);
Запрос.УстановитьПараметр("СтрокаОбособленноеПодразделение", НСтр("ru='Обособленное подразделение'"));
Запрос.УстановитьПараметр("РегистрационныйНомер", РегистрационныйНомер);
Запрос.УстановитьПараметр("НалоговыйНомер", НалоговыйНомер);
Запрос.УстановитьПараметр("ИНН", ?(ЭтоКомпания = 0, ИНН, ИННПартнерФизЛицо));
ПартнерыИКонтрагентыЛокализация.УстановитьПараметрыЗапросаПоиска(ЭтотОбъект, Запрос);
ПредставленияРеквизитов = Новый Структура;
ПредставленияРеквизитов.Вставить("СтрокаНаименование", НСтр("ru='Рабочее наименование'"));
ПредставленияРеквизитов.Вставить("СтрокаНаименованиеПолное",
?(ИспользуютсяТолькоПартнеры, НСтр("ru = 'Сокращенное юр. наименование'"), НСтр("ru='Публичное наименование'")));
ПредставленияРеквизитов.Вставить("СтрокаТелефон", НСтр("ru='Телефон'"));
ПредставленияРеквизитов.Вставить("СтрокаEmail", НСтр("ru='Email'"));
ПредставленияРеквизитов.Вставить("СтрокаДанныеДокумента", НСтр("ru='Документ контрагента'"));
ПредставленияРеквизитов.Вставить("СтрокаВидПартнера", НСтр("ru='Вид партнера'"));
ПредставленияРеквизитов.Вставить("СтрокаВидКонтрагента", НСтр("ru='Вид контрагента'"));
ПредставленияРеквизитов.Вставить("СтрокаРегистрационныйНомер", НСтр("ru='Регистрационный номер'"));
ПредставленияРеквизитов.Вставить("СтрокаНалоговыйНомер", НСтр("ru='Налоговый номер'"));
ПредставленияРеквизитов.Вставить("СтрокаИНН", НСтр("ru='ИНН'"));
ПартнерыИКонтрагентыЛокализация.ДополнитьПредставленияРеквизитовПоиска(ПредставленияРеквизитов);
Для Каждого ЭлементСтруктуры Из ПредставленияРеквизитов Цикл
Запрос.УстановитьПараметр(ЭлементСтруктуры.Ключ, ЭлементСтруктуры.Значение);
КонецЦикла;
РеквизитыИнформацииБезПоиска = Новый СписокЗначений;
МенеджерВременныхТаблиц = Новый МенеджерВременныхТаблиц;
ПоместитьВременныеТаблицыРеквизитовДанных(МенеджерВременныхТаблиц, ПредставленияРеквизитов, СтруктураПоиска, РеквизитыИнформацииБезПоиска);
Запрос.МенеджерВременныхТаблиц = МенеджерВременныхТаблиц;
Запрос.Текст = ТекстЗапроса;
Для Инд = 0 По МассивПредставленийТелефона.Количество()-1 Цикл
Запрос.УстановитьПараметр("ПредставлениеТелефона" + Строка(Инд), "%"+МассивПредставленийТелефона[Инд]+"%");
КонецЦикла;
РезультатЗапроса = Запрос.ВыполнитьПакет();
МенеджерВременныхТаблиц.Закрыть();
ЗаполнитьРезультатыНайдено(РезультатЗапроса, ПредставленияРеквизитов, РеквизитыИнформацииБезПоиска);
ПартнерыИКонтрагентыЛокализация.ВыполнитьПоискПоПервичнойИнформацииЗавершение(ЭтотОбъект, ПредставленияРеквизитов);
КонецПроцедуры
&НаСервере
Процедура ПоместитьВременныеТаблицыРеквизитовДанных(МенеджерВременныхТаблиц, ПредставленияРеквизитов, СтруктураПоиска, РеквизитыИнформацииБезПоиска)
РеквизитыПартнера = Новый ТаблицаЗначений;
РеквизитыПартнера.Колонки.Добавить("Реквизит", Новый ОписаниеТипов("Строка",, Новый КвалификаторыСтроки(100)));
РеквизитыПартнера.Колонки.Добавить("Значение", Новый ОписаниеТипов("Строка",, Новый КвалификаторыСтроки(300)));
РеквизитыПартнера.Колонки.Добавить("Порядок", Новый ОписаниеТипов("Число"));
РеквизитыПартнера.Колонки.Добавить("Существенный", Новый ОписаниеТипов("Булево"));
РеквизитыКонтрагента = РеквизитыПартнера.Скопировать();
РеквизитыКонтактногоЛица = РеквизитыПартнера.Скопировать();
Если Не ИспользуютсяТолькоПартнеры Тогда
РеквизитыИнформацииБезПоиска.Добавить(ПредставленияРеквизитов.СтрокаВидПартнера);
ДобавитьСтрокуВТаблицуРеквизитовДанных(РеквизитыПартнера, ПредставленияРеквизитов.СтрокаВидПартнера,
Строка(ТипЮрФизЛицаПартнера(ЭтоКомпания)), 1, Истина);
КонецЕсли;
НаименованиеПоиск = НаименованиеПартнера();
ДобавитьСтрокуВТаблицуРеквизитовДанных(РеквизитыПартнера, ПредставленияРеквизитов.СтрокаНаименованиеПолное,
НаименованиеПоиск, 2);
ДобавитьСтрокуВТаблицуРеквизитовДанных(РеквизитыПартнера, ПредставленияРеквизитов.СтрокаНаименование,
НаименованиеПоиск, 3);
Если СтруктураПоиска.АдресЭП Тогда
ДобавитьСтрокуВТаблицуРеквизитовДанных(РеквизитыПартнера, ПредставленияРеквизитов.СтрокаEmail,
?(ЭтоКомпания = 0, АдресЭППартнера, АдресЭППартнераФизЛицо), 4);
КонецЕсли;
Если СтруктураПоиска.НомерТелефона Тогда
ДобавитьСтрокуВТаблицуРеквизитовДанных(РеквизитыПартнера, ПредставленияРеквизитов.СтрокаТелефон,
?(ЭтоКомпания = 0, ТелефонПартнера, ТелефонПартнераФизЛицо), 5);
КонецЕсли;
РеквизитыИнформацииБезПоиска.Добавить(ПредставленияРеквизитов.СтрокаВидКонтрагента);
ДобавитьСтрокуВТаблицуРеквизитовДанных(РеквизитыКонтрагента, ПредставленияРеквизитов.СтрокаВидКонтрагента,
?(ИспользуютсяТолькоПартнеры Или УказыватьЮридическиеРеквизиты, ПартнерыИКонтрагентыЛокализацияКлиентСервер.ТипЮрФизЛицаКонтрагента(ЭтоКомпания, ВидКомпании), ""), 1, Истина);
Если Не ИспользуютсяТолькоПартнеры Тогда
ДобавитьСтрокуВТаблицуРеквизитовДанных(РеквизитыКонтрагента, ПредставленияРеквизитов.СтрокаНаименованиеПолное,
?(СтруктураПоиска.НаименованиеКонтрагента, ПолноеЮридическоеНаименование, ""), 2);
ДобавитьСтрокуВТаблицуРеквизитовДанных(РеквизитыКонтрагента, ПредставленияРеквизитов.СтрокаНаименование,
?(СтруктураПоиска.НаименованиеКонтрагента, ПолноеЮридическоеНаименование, ""), 3);
КонецЕсли;
Если СтруктураПоиска.ДокументКонтрагента Тогда
ДобавитьСтрокуВТаблицуРеквизитовДанных(РеквизитыКонтрагента, ПредставленияРеквизитов.СтрокаДанныеДокумента,
ПредставлениеДокументаФизическогоЛица(), 7);
КонецЕсли;
Если СтруктураПоиска.РегистрационныйНомер Тогда
ДобавитьСтрокуВТаблицуРеквизитовДанных(РеквизитыКонтрагента, ПредставленияРеквизитов.СтрокаРегистрационныйНомер,
РегистрационныйНомер, 8);
КонецЕсли;
Если СтруктураПоиска.НалоговыйНомер Тогда
ДобавитьСтрокуВТаблицуРеквизитовДанных(РеквизитыКонтрагента, ПредставленияРеквизитов.СтрокаНалоговыйНомер,
НалоговыйНомер, 8);
КонецЕсли;
Если СтруктураПоиска.ФИО Тогда
Если ЭтоКомпания = 0 Тогда
ТекущееФИО = ФИО_ОднойСтрокой(ФамилияКЛ, ИмяКЛ, ОтчествоКЛ);
Иначе
ТекущееФИО = ФИО_ОднойСтрокой(ФамилияПартнера, ИмяПартнера, ОтчествоПартнера);
КонецЕсли;
ДобавитьСтрокуВТаблицуРеквизитовДанных(РеквизитыКонтактногоЛица, ПредставленияРеквизитов.СтрокаНаименование, ТекущееФИО, 1);
КонецЕсли;
Если СтруктураПоиска.АдресЭП Тогда
ДобавитьСтрокуВТаблицуРеквизитовДанных(РеквизитыКонтактногоЛица, ПредставленияРеквизитов.СтрокаEmail,
?(ЭтоКомпания = 0 И УказатьДанныеКонтактногоЛица, АдресЭПКЛ, ""), 2);
КонецЕсли;
Если СтруктураПоиска.НомерТелефона Тогда
ДобавитьСтрокуВТаблицуРеквизитовДанных(РеквизитыКонтактногоЛица, ПредставленияРеквизитов.СтрокаТелефон,
?(ЭтоКомпания = 0 И УказатьДанныеКонтактногоЛица, ?(ПустаяСтрока(ТелефонКЛ), МобильныйТелефонКЛ, ТелефонКЛ), ""), 2);
КонецЕсли;
ПартнерыИКонтрагентыЛокализация.ПоместитьВременныеТаблицыРеквизитовКонтрагента(ПредставленияРеквизитов, СтруктураПоиска, РеквизитыИнформацииБезПоиска, РеквизитыКонтрагента, ЭтотОбъект);
Запрос = Новый Запрос;
Запрос.МенеджерВременныхТаблиц = МенеджерВременныхТаблиц;
Запрос.Текст = "
|ВЫБРАТЬ
| РеквизитыПартнера.Реквизит,
| РеквизитыПартнера.Значение,
| РеквизитыПартнера.Порядок,
| РеквизитыПартнера.Существенный
|ПОМЕСТИТЬ РеквизитыПартнера
|ИЗ
| &РеквизитыПартнера КАК РеквизитыПартнера
|;
|
|
|ВЫБРАТЬ
| РеквизитыКонтрагента.Реквизит,
| РеквизитыКонтрагента.Значение,
| РеквизитыКонтрагента.Порядок,
| РеквизитыКонтрагента.Существенный
|ПОМЕСТИТЬ РеквизитыКонтрагента
|ИЗ
| &РеквизитыКонтрагента КАК РеквизитыКонтрагента
|;
|
|
|ВЫБРАТЬ
| РеквизитыКонтактногоЛица.Реквизит,
| РеквизитыКонтактногоЛица.Значение,
| РеквизитыКонтактногоЛица.Порядок,
| РеквизитыКонтактногоЛица.Существенный
|ПОМЕСТИТЬ РеквизитыКонтактногоЛица
|ИЗ
| &РеквизитыКонтактногоЛица КАК РеквизитыКонтактногоЛица";
Запрос.УстановитьПараметр("РеквизитыПартнера", РеквизитыПартнера);
Запрос.УстановитьПараметр("РеквизитыКонтрагента", РеквизитыКонтрагента);
Запрос.УстановитьПараметр("РеквизитыКонтактногоЛица", РеквизитыКонтактногоЛица);
Запрос.Выполнить();
КонецПроцедуры
&НаСервереБезКонтекста
Процедура ДобавитьСтрокуВТаблицуРеквизитовДанных(ТаблицаРеквизитов, Реквизит, Значение, Порядок, Существенный = Ложь)
СтрокаРеквизита = ТаблицаРеквизитов.Добавить();
СтрокаРеквизита.Реквизит = Реквизит;
СтрокаРеквизита.Значение = Значение;
СтрокаРеквизита.Порядок = Порядок;
СтрокаРеквизита.Существенный = Существенный;
КонецПроцедуры
&НаСервере
Функция МассивАдресовЭлектроннойПочтыДляПоиска()
МассивАдресовЭП = Новый Массив;
Если ЭтоКомпания = 0 И НЕ ПустаяСтрока(АдресЭППартнера) Тогда
МассивАдресовЭП.Добавить(АдресЭППартнера);
КонецЕсли;
Если ЭтоКомпания = 0 И УказатьДанныеКонтактногоЛица И НЕ ПустаяСтрока(АдресЭПКЛ) Тогда
МассивАдресовЭП.Добавить(АдресЭПКЛ);
КонецЕсли;
Если ЭтоКомпания = 1 И НЕ ПустаяСтрока(АдресЭППартнераФизЛицо) Тогда
МассивАдресовЭП.Добавить(АдресЭППартнераФизЛицо);
КонецЕсли;
Возврат МассивАдресовЭП;
КонецФункции
&НаСервере
Функция МассивПредставленийТелефонов()
МассивПредставленийТелефонов = Новый Массив;
Если ЭтоКомпания = 0 Тогда
Если НЕ ПустаяСтрока(ТелефонПартнера) Тогда
МассивПредставленийТелефонов.Добавить(ТелефонПартнера);
КонецЕсли;
Если УказатьДанныеКонтактногоЛица Тогда
Если НЕ ПустаяСтрока(ТелефонКЛ) Тогда
МассивПредставленийТелефонов.Добавить(ТелефонКЛ);
КонецЕсли;
Если НЕ ПустаяСтрока(МобильныйТелефонКЛ) Тогда
МассивПредставленийТелефонов.Добавить(МобильныйТелефонКЛ);
КонецЕсли;
КонецЕсли;
Иначе
Если НЕ ПустаяСтрока(ТелефонПартнераФизЛицо) Тогда
МассивПредставленийТелефонов.Добавить(ТелефонПартнераФизЛицо);
КонецЕсли;
КонецЕсли;
Возврат МассивПредставленийТелефонов;
КонецФункции
&НаСервере
Функция МассивНомеровТелефонаДляПоиска()
МассивНомеровТелефона = Новый Массив;
Если ЭтоКомпания = 0 Тогда
Если НЕ ПустаяСтрока(ТелефонПартнера) Тогда
ДобавитьВМассивНомерТелефонаБезКодов(МассивНомеровТелефона,
ЗначенияПолейВСписокЗначений(ТелефонПартнераЗначенияПолей));
КонецЕсли;
Если УказатьДанныеКонтактногоЛица Тогда
Если НЕ ПустаяСтрока(ТелефонКЛ) Тогда
ДобавитьВМассивНомерТелефонаБезКодов(МассивНомеровТелефона,
ЗначенияПолейВСписокЗначений(ТелефонКЛЗначенияПолей));
КонецЕсли;
Если НЕ ПустаяСтрока(МобильныйТелефонКЛ) Тогда
ДобавитьВМассивНомерТелефонаБезКодов(МассивНомеровТелефона,
ЗначенияПолейВСписокЗначений(МобильныйТелефонКЛЗначенияПолей));
КонецЕсли;
КонецЕсли;
Иначе
Если НЕ ПустаяСтрока(ТелефонПартнераФизЛицо) Тогда
ДобавитьВМассивНомерТелефонаБезКодов(МассивНомеровТелефона,
ЗначенияПолейВСписокЗначений(ТелефонПартнераФизЛицоЗначенияПолей));
КонецЕсли;
КонецЕсли;
Возврат МассивНомеровТелефона;
КонецФункции
&НаСервере
Процедура ДобавитьВМассивНомерТелефонаБезКодов(МассивНомеров, СписокЗначенияПолей)
Для каждого ЭлементСписка Из СписокЗначенияПолей Цикл
Если ЭлементСписка.Представление = "НомерТелефона" И НЕ ПустаяСтрока(ЭлементСписка.Значение) Тогда
МассивНомеров.Добавить(УбратьРазделителиВНомерТелефона(ЭлементСписка.Значение));
Прервать;
КонецЕсли;
КонецЦикла;
КонецПроцедуры
&НаСервереБезКонтекста
Функция УбратьРазделителиВНомерТелефона(Знач НомерТелефона)
Поз = СтрНайти(НомерТелефона, ",");
Если Поз <> 0 Тогда
НомерТелефона = Лев(НомерТелефона, Поз-1);
КонецЕсли;
НомерТелефона = СтрЗаменить(НомерТелефона, "-", "");
НомерТелефона = СтрЗаменить(НомерТелефона, " ", "");
НомерТелефона = СтрЗаменить(НомерТелефона, "+", "");
Возврат НомерТелефона;
КонецФункции
&НаСервере
Процедура ДобавитьВМассивФИО(МассивФИО, Фамилия, Имя, Отчество)
СтрокаДляДобавления = ФИО_ОднойСтрокой(Фамилия, Имя, Отчество);
Если МассивФИО.Найти(СтрокаДляДобавления) = Неопределено Тогда
МассивФИО.Добавить(СтрокаДляДобавления);
КонецЕсли;
КонецПроцедуры
&НаСервере
Процедура ЗаполнитьРезультатыНайдено(РезультатЗапроса, ПредставленияРеквизитов, РеквизитыИнформацииБезПоиска)
ТаблицаНайдено.Очистить();
ЭлементыДереваДанных = ДеревоДанныхНайденныхПартнеров.ПолучитьЭлементы();
ЭлементыДереваДанных.Очистить();
КоличествоПакетов = РезультатЗапроса.Количество();
ТаблицаПартнеры = РезультатЗапроса[КоличествоПакетов -2].Выгрузить();
ВыборкаДанныеПартнеров = РезультатЗапроса[КоличествоПакетов -1].Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам);
Если ТаблицаПартнеры.Количество() = 0 Тогда
ДействиеПоРезультатамНайдено = 2;
ДействиеСКонтрагентом = ?(УказыватьЮридическиеРеквизиты, 1, 0);
Возврат;
КонецЕсли;
Пока ВыборкаДанныеПартнеров.Следующий() Цикл
Если Не ЗначениеЗаполнено(ВыборкаДанныеПартнеров.Партнер) Тогда
Продолжить;
КонецЕсли;
УзелПартнер = ЭлементыДереваДанных.Добавить();
УзелПартнер.Реквизит = НСтр("ru = 'Партнер'");
УзелПартнер.НайденоПоСсылка = ВыборкаДанныеПартнеров.Партнер;
СтрокаТаблицыПартнеры = ТаблицаПартнеры.Найти(ВыборкаДанныеПартнеров.Партнер, "Партнер");
СтрокаТаблицыНайдено = ТаблицаНайдено.Добавить();
ЗаполнитьЗначенияСвойств(СтрокаТаблицыНайдено, СтрокаТаблицыПартнеры);
Если СтрокаТаблицыНайдено.КоличествоНайденныхАналогов > 1 Тогда
СтрокаТаблицыНайдено.ПредставлениеПартнер = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
НСтр("ru = '%1 (Совпадений - %2)'"),
Строка(СтрокаТаблицыПартнеры.Партнер),
СтрокаТаблицыПартнеры.КоличествоНайденныхАналогов);
Иначе
СтрокаТаблицыНайдено.ПредставлениеПартнер = СтрокаТаблицыПартнеры.Представление;
КонецЕсли;
СтрокаТаблицыНайдено.ИдентификаторДереваДанных = УзелПартнер.ПолучитьИдентификатор();
ЭлементыУзлаПартнер = УзелПартнер.ПолучитьЭлементы();
УзелИнформации = Неопределено;
ПропуститьУзелКонтрагента = Ложь;
ВыборкаПодчиненнойСсылки = ВыборкаДанныеПартнеров.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам);
Пока ВыборкаПодчиненнойСсылки.Следующий() Цикл
ТипИнформации = ТипЗнч(ВыборкаПодчиненнойСсылки.НайденоПоСсылка);
Если ИспользуютсяТолькоПартнеры И ТипИнформации = Тип("СправочникСсылка.Контрагенты") Тогда
Если ПропуститьУзелКонтрагента Тогда
Продолжить;
КонецЕсли;
ПропуститьУзелКонтрагента = Истина;
Иначе
УзелИнформации = ЭлементыУзлаПартнер.Добавить();
УзелИнформации.НайденоПоСсылка = ВыборкаПодчиненнойСсылки.НайденоПоСсылка;
Если ТипИнформации = Тип("СправочникСсылка.КонтактныеЛицаПартнеров") Тогда
УзелИнформации.Реквизит = НСтр("ru = 'Информация о контактном лице'");
ИначеЕсли ТипИнформации = Тип("СправочникСсылка.Контрагенты") Или ИспользуютсяТолькоПартнеры Тогда
УзелИнформации.Реквизит = НСтр("ru = 'Информация о контрагенте'");
Иначе
УзелИнформации.Реквизит = НСтр("ru = 'Информация о партнере'");
КонецЕсли
КонецЕсли;
ЭлементыУзлаИнформации = УзелИнформации.ПолучитьЭлементы();
ВыборкаПодчиненныхДанных = ВыборкаПодчиненнойСсылки.Выбрать();
Пока ВыборкаПодчиненныхДанных.Следующий() Цикл
УзелДанных = ЭлементыУзлаИнформации.Добавить();
ЗаполнитьЗначенияСвойств(УзелДанных, ВыборкаПодчиненныхДанных);
Если ВыборкаПодчиненныхДанных.Совпадение Тогда
УзелДанных.Совпадение = Истина;
ИначеЕсли РеквизитыИнформацииБезПоиска.НайтиПоЗначению(ВыборкаПодчиненныхДанных.Реквизит) <> Неопределено Тогда
Если ВыборкаПодчиненныхДанных.ЗначениеНайденного <> ВыборкаПодчиненныхДанных.ЗначениеСоздаваемого
И ЗначениеЗаполнено(ВыборкаПодчиненныхДанных.ЗначениеСоздаваемого) Тогда
УзелДанных.Различие = ВыборкаПодчиненныхДанных.Существенный;
СтрокаТаблицыНайдено.Различие = Макс(СтрокаТаблицыНайдено.Различие, УзелДанных.Различие);
КонецЕсли;
Продолжить;
КонецЕсли;
УзелДанных.Различие = Не УзелДанных.Совпадение И ВыборкаПодчиненныхДанных.Существенный;
СтрокаТаблицыНайдено.Различие = Макс(СтрокаТаблицыНайдено.Различие, УзелДанных.Различие);
КонецЦикла;
КонецЦикла;
КонецЦикла;
ТаблицаНайдено.Сортировать("КоличествоНайденныхАналогов УБЫВ, ПредставлениеПартнер");
КонецПроцедуры
#КонецОбласти
#Область РаботаСКонтактнойИнформацией
&НаКлиенте
Процедура ОткрытьФормуВыбораКонтактнойИнформации(ВидКонтактнойИнформации, ИмяРеквизитаПредставление, ИмяРеквизитаЗначенияПолей, Заголовок = "")
ПараметрыОткрытия = УправлениеКонтактнойИнформациейКлиент.ПараметрыФормыКонтактнойИнформации(
ВидКонтактнойИнформации,
ЗначениеКонтактнойИнформацииJSON(ИмяРеквизитаЗначенияПолей),
ЭтотОбъект[ИмяРеквизитаПредставление]);
ПараметрыОткрытия.Вставить("ВидКонтактнойИнформации", ВидКонтактнойИнформации);
ПараметрыОткрытия.Вставить("ЗначенияПолей", ЭтотОбъект[ИмяРеквизитаЗначенияПолей]);
ПараметрыОткрытия.Вставить("Представление", ЭтотОбъект[ИмяРеквизитаПредставление]);
ПараметрыОткрытия.Вставить("Страна", СтранаРегистрации);
Если НЕ ПустаяСтрока(Заголовок) Тогда
ПараметрыОткрытия.Вставить("Заголовок", Заголовок);
КонецЕсли;
ДополнительныеПараметры = Новый Структура;
ДополнительныеПараметры.Вставить("ИмяРеквизитаПредставление", ИмяРеквизитаПредставление);
ДополнительныеПараметры.Вставить("ИмяРеквизитаЗначенияПолей", ИмяРеквизитаЗначенияПолей);
ОповещениеОкончанияРедактированияКИ = Новый ОписаниеОповещения("РедактированиеКонтактнойИнформацииЗавершение", ЭтотОбъект, ДополнительныеПараметры);
УправлениеКонтактнойИнформациейКлиент.ОткрытьФормуКонтактнойИнформации(ПараметрыОткрытия, ЭтотОбъект, ОповещениеОкончанияРедактированияКИ);
КонецПроцедуры
&НаКлиенте
Процедура РедактированиеКонтактнойИнформацииЗавершение(Результат, ДополнительныеПараметры) Экспорт
Если ТипЗнч(Результат) = Тип("Структура") Тогда
ЭтотОбъект[ДополнительныеПараметры.ИмяРеквизитаЗначенияПолей] = Результат.КонтактнаяИнформация;
ЭтотОбъект[ДополнительныеПараметры.ИмяРеквизитаПредставление] = Результат.Представление;
СохранитьВТаблицеЗначениеКонтактнойИнформации(Результат.Значение, ДополнительныеПараметры.ИмяРеквизитаЗначенияПолей);
ОтключитьОтметкуНезаполненного();
КонецЕсли;
КонецПроцедуры
&НаКлиенте
Функция КорректноВведенНомерТелефона(СписокЗначенияПолей)
НомерТелефона = "";
КодГорода = "";
КодСтраны = "";
Для каждого ЭлементСписка Из СписокЗначенияПолей Цикл
Если ЭлементСписка.Представление = "НомерТелефона" Тогда
НомерТелефона = ЭлементСписка.Значение;
КонецЕсли;
Если ЭлементСписка.Представление = "КодГорода" Тогда
КодГорода = ЭлементСписка.Значение;
КонецЕсли;
Если ЭлементСписка.Представление = "КодСтраны" Тогда
КодСтраны = ЭлементСписка.Значение;
КонецЕсли;
КонецЦикла;
Если НЕ ПустаяСтрока(КодСтраны) Тогда
КодСтраны = СокрЛП(КодСтраны);
Если ЛЕВ(КодСтраны,1)= "+" Тогда
КодСтраны = Прав(КодСтраны, СтрДлина(КодСтраны)-1);
КонецЕсли;
Если НЕ СтроковыеФункцииКлиентСервер.ТолькоЦифрыВСтроке(КодСтраны) Тогда
Возврат Ложь;
КонецЕсли;
КонецЕсли;
Если НЕ ПустаяСтрока(КодГорода) Тогда
Если НЕ СтроковыеФункцииКлиентСервер.ТолькоЦифрыВСтроке(КодГорода) Тогда
Возврат Ложь;
КонецЕсли;
КонецЕсли;
Если НЕ ПустаяСтрока(НомерТелефона) Тогда
Если НЕ СтроковыеФункцииКлиентСервер.ТолькоЦифрыВСтроке(НомерТелефона) Тогда
Возврат Ложь;
КонецЕсли;
КонецЕсли;
Возврат Истина;
КонецФункции
&НаСервере
&НаСервере
Процедура ОбработатьЭлементыРедактированияКонтактнойИнформации()
МассивВидовКИ = Новый Массив;
МассивВидовКИ.Добавить(Справочники.ВидыКонтактнойИнформации.МобильныйТелефонКонтактногоЛица);
МассивВидовКИ.Добавить(Справочники.ВидыКонтактнойИнформации.ТелефонКонтактногоЛица);
МассивВидовКИ.Добавить(Справочники.ВидыКонтактнойИнформации.ТелефонПартнера);
МассивВидовКИ.Добавить(Справочники.ВидыКонтактнойИнформации.ФактАдресКонтрагента);
МассивВидовКИ.Добавить(Справочники.ВидыКонтактнойИнформации.ЮрАдресКонтрагента);
Для Каждого ВидКИ Из МассивВидовКИ Цикл
ПараметрыВида = УправлениеКонтактнойИнформацией.ПараметрыВидаКонтактнойИнформации(ВидКИ);
Если ВидКИ = Справочники.ВидыКонтактнойИнформации.МобильныйТелефонКонтактногоЛица Тогда
Если ПараметрыВида.ВидРедактирования = "Диалог" Тогда
Элементы.МобильныйТелефонКЛ.РедактированиеТекста = Ложь;
Элементы.МобильныйТелефонКЛ.ЦветФона = WebЦвета.Кремовый;
КонецЕсли;
Если ПараметрыВида.НастройкиПроверки.ВводитьНомерПоМаске Тогда
Элементы.МобильныйТелефонКЛ.Маска = ПараметрыВида.НастройкиПроверки.МаскаНомераТелефона;
КонецЕсли;
ИначеЕсли ВидКИ = Справочники.ВидыКонтактнойИнформации.ТелефонКонтактногоЛица Тогда
Если ПараметрыВида.ВидРедактирования = "Диалог" Тогда
Элементы.ТелефонКЛ.РедактированиеТекста = Ложь;
Элементы.ТелефонКЛ.ЦветФона = WebЦвета.Кремовый;
КонецЕсли;
Если ПараметрыВида.НастройкиПроверки.ВводитьНомерПоМаске Тогда
Элементы.ТелефонКЛ.Маска = ПараметрыВида.НастройкиПроверки.МаскаНомераТелефона;
КонецЕсли;
ИначеЕсли ВидКИ = Справочники.ВидыКонтактнойИнформации.ТелефонПартнера Тогда
Если ПараметрыВида.ВидРедактирования = "Диалог" Тогда
Элементы.ТелефонПартнера.РедактированиеТекста = Ложь;
Элементы.ТелефонПартнера.ЦветФона = WebЦвета.Кремовый;
Элементы.ТелефонПартнераФизЛицо.РедактированиеТекста = Ложь;
Элементы.ТелефонПартнераФизЛицо.ЦветФона = WebЦвета.Кремовый;
КонецЕсли;
Если ПараметрыВида.НастройкиПроверки.ВводитьНомерПоМаске Тогда
Элементы.ТелефонПартнера.Маска = ПараметрыВида.НастройкиПроверки.МаскаНомераТелефона;
Элементы.ТелефонПартнераФизЛицо.Маска = ПараметрыВида.НастройкиПроверки.МаскаНомераТелефона;
КонецЕсли;
ИначеЕсли ВидКИ = Справочники.ВидыКонтактнойИнформации.ФактАдресКонтрагента Тогда
Если ПараметрыВида.ВидРедактирования = "Диалог" Тогда
Элементы.ФактическийАдрес.РедактированиеТекста = Ложь;
Элементы.ФактическийАдрес.ЦветФона = WebЦвета.Кремовый;
Элементы.ФактическийАдресЧастноеЛицо.РедактированиеТекста = Ложь;
Элементы.ФактическийАдресЧастноеЛицо.ЦветФона = WebЦвета.Кремовый;
КонецЕсли;
ИначеЕсли ВидКИ = Справочники.ВидыКонтактнойИнформации.ЮрАдресКонтрагента Тогда
Если ПараметрыВида.ВидРедактирования = "Диалог" Тогда
Элементы.ЮридическийАдрес.РедактированиеТекста = Ложь;
Элементы.ЮридическийАдрес.ЦветФона = WebЦвета.Кремовый;
КонецЕсли;
КонецЕсли;
КонецЦикла;
КонецПроцедуры
&НаКлиенте
Процедура ОбработкаСобытияЭлементаКИТелефон(Элемент, ВидКонтактнойИнформации, ИмяРеквизитаПредставление, ИмяРеквизитаЗначенияПолей, Событие)
Если Событие = "НачалоВыбора" Тогда
Если ЭтотОбъект[ИмяРеквизитаПредставление] <> Элемент.ТекстРедактирования Тогда
ЭтотОбъект[ИмяРеквизитаПредставление] = Элемент.ТекстРедактирования;
ЗначенияПолейКонтактнойИнформацииСервер(ЭтотОбъект[ИмяРеквизитаПредставление],
ЭтотОбъект[ИмяРеквизитаЗначенияПолей],
ПредопределенноеЗначение("Перечисление.ТипыКонтактнойИнформации.Телефон"));
КонецЕсли;
ИначеЕсли Событие = "Очистка" Тогда
ЭтотОбъект[ИмяРеквизитаПредставление] = "";
ЭтотОбъект[ИмяРеквизитаЗначенияПолей] = "";
УдалитьЗначениеКонтактнойИнформации(ИмяРеквизитаЗначенияПолей);
КонецЕсли;
Если Событие = "НачалоВыбора" Тогда
ОткрытьФормуВыбораКонтактнойИнформации(ВидКонтактнойИнформации,
ИмяРеквизитаПредставление,
ИмяРеквизитаЗначенияПолей);
ИначеЕсли Событие = "ПриИзменении" Тогда
ЗначенияПолейКонтактнойИнформацииСервер(ЭтотОбъект[ИмяРеквизитаПредставление],
ЭтотОбъект[ИмяРеквизитаЗначенияПолей],
ПредопределенноеЗначение("Перечисление.ТипыКонтактнойИнформации.Телефон"));
УдалитьЗначениеКонтактнойИнформации(ИмяРеквизитаЗначенияПолей);
Если НЕ КорректноВведенНомерТелефона(ЗначенияПолейВСписокЗначений(ЭтотОбъект[ИмяРеквизитаЗначенияПолей])) Тогда
ОткрытьФормуВыбораКонтактнойИнформации(ВидКонтактнойИнформации,
ИмяРеквизитаПредставление,
ИмяРеквизитаЗначенияПолей,
НСтр("ru='Уточните номер телефона.'"));
Иначе
ОтключитьОтметкуНезаполненного();
КонецЕсли;
КонецЕсли;
КонецПроцедуры
&НаКлиенте
Процедура ОбработкаСобытияЭлементаКИАдрес(Элемент, ВидКонтактнойИнформации, ИмяРеквизитаПредставление, ИмяРеквизитаЗначенияПолей, Событие)
Если Событие = "Очистка" Тогда
ЭтотОбъект[ИмяРеквизитаПредставление] = "";
ЭтотОбъект[ИмяРеквизитаЗначенияПолей] = "";
УдалитьЗначениеКонтактнойИнформации(ИмяРеквизитаЗначенияПолей);
КонецЕсли;
Если Событие = "НачалоВыбора" Тогда
ОткрытьФормуВыбораКонтактнойИнформации(ВидКонтактнойИнформации,
ИмяРеквизитаПредставление,
ИмяРеквизитаЗначенияПолей);
ИначеЕсли Событие = "ПриИзменении" Тогда
ЗначенияПолейКонтактнойИнформацииСервер(ЭтотОбъект[ИмяРеквизитаПредставление],
ЭтотОбъект[ИмяРеквизитаЗначенияПолей],
ВидКонтактнойИнформации);
УдалитьЗначениеКонтактнойИнформации(ИмяРеквизитаЗначенияПолей);
КонецЕсли;
КонецПроцедуры
&НаСервереБезКонтекста
Процедура ЗначенияПолейКонтактнойИнформацииСервер(Знач Представление, ЗначенияПолей, Знач ВидКонтактнойИнформации)
ПартнерыИКонтрагенты.ЗначенияПолейКонтактнойИнформации(Представление, ЗначенияПолей, ВидКонтактнойИнформации);
КонецПроцедуры
&НаКлиенте
Функция ЗначениеКонтактнойИнформацииJSON(ИмяРеквизитаЗначенияПолей)
ПараметрыПоиска = Новый Структура;
ПараметрыПоиска.Вставить("ИмяРеквизитаЗначениеПолей", ИмяРеквизитаЗначенияПолей);
НайденныеСтроки = ЗначенияПолейКонтактнойИнформацииJSON.НайтиСтроки(ПараметрыПоиска);
Если НайденныеСтроки.Количество() = 1 Тогда
Возврат НайденныеСтроки[0].ЗначениеJSON;
Иначе
Возврат ЭтотОбъект[ИмяРеквизитаЗначенияПолей];
КонецЕсли;
КонецФункции
&НаСервере
Функция ЗначениеКонтактнойИнформацииJSONСервер(ИмяРеквизитаЗначенияПолей)
ПараметрыПоиска = Новый Структура;
ПараметрыПоиска.Вставить("ИмяРеквизитаЗначениеПолей", ИмяРеквизитаЗначенияПолей);
НайденныеСтроки = ЗначенияПолейКонтактнойИнформацииJSON.НайтиСтроки(ПараметрыПоиска);
Если НайденныеСтроки.Количество() = 1 Тогда
Возврат НайденныеСтроки[0].ЗначениеJSON;
Иначе
Возврат УправлениеКонтактнойИнформацией.КонтактнаяИнформацияВJSON(ЭтотОбъект[ИмяРеквизитаЗначенияПолей]);
КонецЕсли;
КонецФункции
&НаКлиенте
Процедура СохранитьВТаблицеЗначениеКонтактнойИнформации(ЗначениеJSON, ИмяРеквизитаЗначенияПолей)
ПараметрыПоиска = Новый Структура;
ПараметрыПоиска.Вставить("ИмяРеквизитаЗначениеПолей", ИмяРеквизитаЗначенияПолей);
НайденныеСтроки = ЗначенияПолейКонтактнойИнформацииJSON.НайтиСтроки(ПараметрыПоиска);
Если НайденныеСтроки.Количество() = 0 Тогда
НайденнаяСтрока = ЗначенияПолейКонтактнойИнформацииJSON.Добавить();
НайденнаяСтрока.ИмяРеквизитаЗначениеПолей = ИмяРеквизитаЗначенияПолей;
Иначе
НайденнаяСтрока = НайденныеСтроки[0];
КонецЕсли;
НайденнаяСтрока.ЗначениеJSON = ЗначениеJSON;
КонецПроцедуры
&НаКлиенте
Процедура УдалитьЗначениеКонтактнойИнформации(ИмяРеквизитаЗначенияПолей)
ПараметрыПоиска = Новый Структура;
ПараметрыПоиска.Вставить("ИмяРеквизитаЗначениеПолей", ИмяРеквизитаЗначенияПолей);
НайденныеСтроки = ЗначенияПолейКонтактнойИнформацииJSON.НайтиСтроки(ПараметрыПоиска);
Если НайденныеСтроки.Количество() = 1 Тогда
ЗначенияПолейКонтактнойИнформацииJSON.Удалить(ЗначенияПолейКонтактнойИнформацииJSON.Индекс(НайденныеСтроки[0]));
КонецЕсли;
КонецПроцедуры
#КонецОбласти
#Область РаботаСБанковскимиСчетами
&НаСервере
Процедура ОформитьБанковскиеСчетаПриСозданииНаСервере()
МеждународныеРеквизитыБанковскихСчетов = ПолучитьФункциональнуюОпцию("МеждународныеРеквизитыБанковскихСчетов");
НациональныеРеквизитыБанковскихСчетов = ПолучитьФункциональнуюОпцию("НациональныеРеквизитыБанковскихСчетов");
Элементы.ГруппаОшибкаВНомереСчета.Видимость = Ложь;
Элементы.ГруппаОшибкаВНомереСчетаГоловнойКонтрагент.Видимость = Ложь;
СпособУказанияБанка = "РучноеЗаполнениеРеквизитов";
СпособУказанияБанкаДляРасчетов = "РучноеЗаполнениеРеквизитов";
СпособУказанияБанкаГоловнойКонтрагент = "РучноеЗаполнениеРеквизитов";
СпособУказанияБанкаДляРасчетовГоловнойКонтрагент = "РучноеЗаполнениеРеквизитов";
Элементы.Банк.ПодсказкаВвода = НСтр("ru = 'БИК или наименование'");
Элементы.БанкВГруппе.ПодсказкаВвода = НСтр("ru = 'БИК или наименование'");
Элементы.БанкДляРасчетов.ПодсказкаВвода = НСтр("ru = 'БИК или наименование'");
Элементы.БанкДляРасчетовВГруппе.ПодсказкаВвода = НСтр("ru = 'БИК или наименование'");
Элементы.БанкГоловнойКонтрагент.ПодсказкаВвода = НСтр("ru = 'БИК или наименование'");
Элементы.БанкВГруппеГоловнойКонтрагент.ПодсказкаВвода = НСтр("ru = 'БИК или наименование'");
Элементы.БанкДляРасчетовГоловнойКонтрагент.ПодсказкаВвода = НСтр("ru = 'БИК или наименование'");
Элементы.БанкДляРасчетовВГруппеГоловнойКонтрагент.ПодсказкаВвода = НСтр("ru = 'БИК или наименование'");
КонецПроцедуры
&НаКлиенте
Процедура ПриИзмененииIBAN(ЭтоГоловнойКонтрагент=Ложь)
Постфикс = ?(ЭтоГоловнойКонтрагент, "ГоловнойКонтрагент", "");
ДанныеСчета = ДенежныеСредстваКлиентСервер.НовыеДанныеБанковскогоСчета();
ДенежныеСредстваКлиентСервер.ЗаполнитьДанныеБанковскогоСчета(ДанныеСчета, ЭтотОбъект, Постфикс);
Элементы["ГруппаОшибкаВНомереСчета" + Постфикс].Видимость = Ложь;
ЭтотОбъект["ИностранныйБанк" + Постфикс] = ЭтоИностранныйБанк(ДанныеСчета);
Если ЭтотОбъект["ЭтоIBAN" + Постфикс] Тогда
ПроверитьIBAN(ЭтоГоловнойКонтрагент)
КонецЕсли;
Если Не ЭтотОбъект["ИностранныйБанк" + Постфикс] И Не ПустаяСтрока(ЭтотОбъект["НомерСчета" + Постфикс]) Тогда
ВалютаСчета = ПолучитьВалютуПоНомеруСчета(ЭтотОбъект["НомерСчета" + Постфикс]);
Если ЗначениеЗаполнено(ВалютаСчета) Тогда
ЭтотОбъект["ВалютаДенежныхСредств" + Постфикс] = ВалютаСчета;
КонецЕсли;
КонецЕсли;
ДенежныеСредстваКлиентЛокализация.ПроверитьНомерСчета(ЭтотОбъект, Постфикс, ДанныеСчета);
УправлениеЭлементамиБанковскийСчет(ЭтотОбъект, ЭтоГоловнойКонтрагент);
ЗаполнитьОсновныеРеквизитыБанка(ЭтотОбъект, ЭтоГоловнойКонтрагент);
ОтключитьОтметкуНезаполненного();
КонецПроцедуры
&НаКлиенте
Процедура ПриИзмененииИспользуетсяБанкДляРасчетов(ЭтоГоловнойКонтрагент=Ложь)
Постфикс = ?(ЭтоГоловнойКонтрагент, "ГоловнойКонтрагент", "");
Если ЭтотОбъект["ИспользуетсяБанкДляРасчетов" + Постфикс] Тогда
Элементы["СтраницаБанкДляРасчетов" + Постфикс].Заголовок = НСтр("ru = 'Ввести реквизиты банка вручную...'");
Иначе
ЭтотОбъект["БанкДляРасчетов" + Постфикс] = Неопределено;
ОчиститьБанковскиеРеквизиты(ЭтотОбъект, Истина, ЭтоГоловнойКонтрагент);
ЭтотОбъект["СпособУказанияБанкаДляРасчетов" + Постфикс] = "РучноеЗаполнениеРеквизитов";
КонецЕсли;
УправлениеЭлементамиБанковскийСчет(ЭтотОбъект, ЭтоГоловнойКонтрагент);
ЗаполнитьОсновныеРеквизитыБанка(ЭтотОбъект, ЭтоГоловнойКонтрагент);
КонецПроцедуры
&НаСервереБезКонтекста
Функция ПолучитьВалютуПоНомеруСчета(НомерСчета)
Возврат ДенежныеСредстваСерверЛокализация.ПолучитьВалютуПоНомеруСчета(НомерСчета);
КонецФункции
&НаСервереБезКонтекста
Функция АвтоНаименованиеБанковскогоСчета(НомерСчета, Банк, Валюта)
СтрокаНаименования = Прав(СокрЛП(НомерСчета), 4)
+ ?(ЗначениеЗаполнено(Банк), " в " + Строка(Банк), "")
+ " (" + Строка(Валюта) + ")";
Возврат Лев(СтрокаНаименования, 150);
КонецФункции
&НаКлиенте
Процедура ПроверитьIBAN(ЭтоГоловнойКонтрагент)
Постфикс = ?(ЭтоГоловнойКонтрагент, "ГоловнойКонтрагент", "");
Если ПустаяСтрока(ЭтотОбъект["НомерСчета" + Постфикс]) Тогда
Возврат;
КонецЕсли;
Если ДенежныеСредстваКлиентСервер.ПравильнаяДлинаIBAN(ЭтотОбъект["НомерСчета" + Постфикс]) Тогда
Если ДенежныеСредстваКлиентСервер.ВерныйКонтрольныйКлючIBAN(ЭтотОбъект["НомерСчета" + Постфикс]) Тогда
Если ЭтотОбъект["СпособУказанияБанка" + Постфикс] = "РучноеЗаполнениеРеквизитов" Тогда
SWIFT = ЭтотОбъект["СВИФТБанка" + Постфикс];
ИначеЕсли ЗначениеЗаполнено(Банк) Тогда
SWIFT = ДенежныеСредстваВызовСервера.SWIFT(ЭтотОбъект["Банк" + Постфикс]);
КонецЕсли;
Если ЗначениеЗаполнено(SWIFT) Тогда
Если ДенежныеСредстваКлиентСервер.НомерСчетаСоответствуетБанку(ЭтотОбъект["НомерСчета" + Постфикс], SWIFT) Тогда
Элементы["ГруппаОшибкаВНомереСчета" + Постфикс].Видимость = Ложь;
Иначе
Элементы["ОшибкаВНомереСчета" + Постфикс].Заголовок = НСтр("ru = 'IBAN не соответствует банку'");
Элементы["ГруппаОшибкаВНомереСчета" + Постфикс].Видимость = Истина;
КонецЕсли;
КонецЕсли;
Иначе
Элементы["ОшибкаВНомереСчета" + Постфикс].Заголовок = НСтр("ru = 'Номер счета введен некорректно'");
Элементы["ГруппаОшибкаВНомереСчета" + Постфикс].Видимость = Истина;
КонецЕсли
Иначе
Элементы["ОшибкаВНомереСчета" + Постфикс].Заголовок = НСтр("ru = 'Номер счета не соответствует формату IBAN'");
Элементы["ГруппаОшибкаВНомереСчета" + Постфикс].Видимость = Истина;
КонецЕсли;
КонецПроцедуры
&НаСервере
Процедура ОпределитьСтрануИБанкПоIBAN(ЭтоГоловнойКонтрагент)
Постфикс = ?(ЭтоГоловнойКонтрагент, "ГоловнойКонтрагент", "");
КодСтраны = ДенежныеСредстваКлиентСервер.КодСтраныIBAN(ЭтотОбъект["НомерСчета" + Постфикс]);
Страна = ДенежныеСредстваСервер.Страна(КодСтраны);
Если ЗначениеЗаполнено(Страна) Тогда
ЭтотОбъект["СтранаБанка" + Постфикс] = Страна;
НациональныйКодБанка = ДенежныеСредстваСервер.НациональныйКодБанка(ЭтотОбъект["НомерСчета" + Постфикс]);
НайденныйБанк = ДенежныеСредстваСервер.Банк(Страна, НациональныйКодБанка);
Если ЗначениеЗаполнено(НайденныйБанк) Тогда
ЭтотОбъект["Банк" + Постфикс] = НайденныйБанк;
ЭтотОбъект["СпособУказанияБанка" + Постфикс] = "ВыборИзСправочника";
ЗаполнитьРеквизитыБанкаПоБанку("Банк", ЭтотОбъект["Банк" + Постфикс], ЭтоГоловнойКонтрагент);
КонецЕсли;
КонецЕсли;
КонецПроцедуры
&НаСервере
Процедура ЗаполнитьРеквизитыБанкаПоБанку(ТипБанка, Банк = "", ЭтоГоловнойКонтрагент=Ложь)
Постфикс = ?(ЭтоГоловнойКонтрагент, "ГоловнойКонтрагент", "");
Если ТипБанка = "Банк" Тогда
СтруктураРеквизитов = РеквизитыБанка(ЭтоГоловнойКонтрагент);
РеквизитыБанка = ДенежныеСредстваСервер.БанковскиеРеквизиты(Банк, СтруктураРеквизитов);
ЗаполнитьЗначенияСвойств(ЭтотОбъект, РеквизитыБанка);
Если ЭтоГоловнойКонтрагент Тогда
СчетВБанкеДляРасчетовГоловнойКонтрагент = РеквизитыБанка.КоррСчетБанкаГоловнойКонтрагент;
СтранаБанкаГоловнойКонтрагент = ДенежныеСредстваСервер.СтранаБанкаПоКоду(РеквизитыБанка.КодСтраны);
Иначе
СчетВБанкеДляРасчетов = РеквизитыБанка.КоррСчетБанка;
СтранаБанка = ДенежныеСредстваСервер.СтранаБанкаПоКоду(РеквизитыБанка.КодСтраны);
КонецЕсли;
ИначеЕсли ТипБанка = "БанкДляРасчетов" Тогда
СтруктураРеквизитов = РеквизитыБанкаДляРасчетов(ЭтоГоловнойКонтрагент);
РеквизитыБанка = ДенежныеСредстваСервер.БанковскиеРеквизиты(Банк, СтруктураРеквизитов);
ЗаполнитьЗначенияСвойств(ЭтотОбъект, РеквизитыБанка);
Если ЭтоГоловнойКонтрагент Тогда
СтранаБанкаДляРасчетовГоловнойКонтрагент = ДенежныеСредстваСервер.СтранаБанкаПоКоду(РеквизитыБанка.КодСтраны);
Иначе
СтранаБанкаДляРасчетов = ДенежныеСредстваСервер.СтранаБанкаПоКоду(РеквизитыБанка.КодСтраны);
КонецЕсли;
ЗаполнитьОсновныеРеквизитыБанкаДляРасчетов(ЭтотОбъект, ЭтоГоловнойКонтрагент);
КонецЕсли;
КонецПроцедуры
&НаКлиентеНаСервереБезКонтекста
Функция РеквизитыБанка(ЭтоГоловнойКонтрагент)
РеквизитыБанка = Новый Структура;
Если ЭтоГоловнойКонтрагент Тогда
РеквизитыБанка.Вставить("БИКБанкаГоловнойКонтрагент", "БИК");
РеквизитыБанка.Вставить("НаименованиеБанкаГоловнойКонтрагент", "Наименование");
РеквизитыБанка.Вставить("КоррСчетБанкаГоловнойКонтрагент", "КоррСчет");
РеквизитыБанка.Вставить("ГородБанкаГоловнойКонтрагент", "Город");
РеквизитыБанка.Вставить("ГородБанкаМеждународныйГоловнойКонтрагент", "ГородМеждународный");
РеквизитыБанка.Вставить("АдресБанкаГоловнойКонтрагент", "Адрес");
РеквизитыБанка.Вставить("АдресБанкаМеждународныйГоловнойКонтрагент", "АдресМеждународный");
РеквизитыБанка.Вставить("БИКБанкаГоловнойКонтрагент", "Код");
РеквизитыБанка.Вставить("СВИФТБанкаГоловнойКонтрагент", "СВИФТБИК");
РеквизитыБанка.Вставить("НаименованиеБанкаМеждународноеГоловнойКонтрагент", "МеждународноеНаименование");
Иначе
РеквизитыБанка.Вставить("БИКБанка", "БИК");
РеквизитыБанка.Вставить("НаименованиеБанка", "Наименование");
РеквизитыБанка.Вставить("КоррСчетБанка", "КоррСчет");
РеквизитыБанка.Вставить("ГородБанка", "Город");
РеквизитыБанка.Вставить("ГородБанкаМеждународный", "ГородМеждународный");
РеквизитыБанка.Вставить("АдресБанка", "Адрес");
РеквизитыБанка.Вставить("АдресБанкаМеждународный", "АдресМеждународный");
РеквизитыБанка.Вставить("БИКБанка", "Код");
РеквизитыБанка.Вставить("СВИФТБанка" , "СВИФТБИК");
РеквизитыБанка.Вставить("НаименованиеБанкаМеждународное", "МеждународноеНаименование");
КонецЕсли;
Возврат РеквизитыБанка;
КонецФункции
&НаКлиентеНаСервереБезКонтекста
Функция РеквизитыБанкаДляРасчетов(ЭтоГоловнойКонтрагент)
РеквизитыБанка = Новый Структура;
Если ЭтоГоловнойКонтрагент Тогда
РеквизитыБанка.Вставить("БИКБанкаДляРасчетовГоловнойКонтрагент", "БИК");
РеквизитыБанка.Вставить("НаименованиеБанкаДляРасчетовГоловнойКонтрагент", "Наименование");
РеквизитыБанка.Вставить("КоррСчетБанкаДляРасчетовГоловнойКонтрагент", "КоррСчет");
РеквизитыБанка.Вставить("ГородБанкаДляРасчетовГоловнойКонтрагент", "Город");
РеквизитыБанка.Вставить("ГородБанкаДляРасчетовМеждународныйГоловнойКонтрагент", "ГородМеждународный");
РеквизитыБанка.Вставить("АдресБанкаДляРасчетовГоловнойКонтрагент", "Адрес");
РеквизитыБанка.Вставить("АдресБанкаДляРасчетовМеждународныйГоловнойКонтрагент", "АдресМеждународный");
РеквизитыБанка.Вставить("БИКБанкаДляРасчетовГоловнойКонтрагент", "Код");
РеквизитыБанка.Вставить("СВИФТБанкаДляРасчетовГоловнойКонтрагент", "СВИФТБИК");
РеквизитыБанка.Вставить("НаименованиеБанкаДляРасчетовМеждународноеГоловнойКонтрагент", "МеждународноеНаименование");
Иначе
РеквизитыБанка.Вставить("БИКБанкаДляРасчетов", "БИК");
РеквизитыБанка.Вставить("НаименованиеБанкаДляРасчетов", "Наименование");
РеквизитыБанка.Вставить("КоррСчетБанкаДляРасчетов", "КоррСчет");
РеквизитыБанка.Вставить("ГородБанкаДляРасчетов", "Город");
РеквизитыБанка.Вставить("ГородБанкаДляРасчетовМеждународный", "ГородМеждународный");
РеквизитыБанка.Вставить("АдресБанкаДляРасчетов", "Адрес");
РеквизитыБанка.Вставить("АдресБанкаДляРасчетовМеждународный", "АдресМеждународный");
РеквизитыБанка.Вставить("БИКБанкаДляРасчетов", "Код");
РеквизитыБанка.Вставить("СВИФТБанкаДляРасчетов" , "СВИФТБИК");
РеквизитыБанка.Вставить("НаименованиеБанкаДляРасчетовМеждународное", "МеждународноеНаименование");
КонецЕсли;
Возврат РеквизитыБанка;
КонецФункции
&НаКлиентеНаСервереБезКонтекста
Процедура ЗаполнитьОсновныеРеквизитыБанка(Форма, ЭтоГоловнойКонтрагент=Ложь)
Постфикс = ?(ЭтоГоловнойКонтрагент, "ГоловнойКонтрагент", "");
НеразрывныйПробел = Символ(160);
Форма.Элементы["СтраницаБанк" + Постфикс].Заголовок = "";
Если Не ЗначениеЗаполнено(Форма["Банк" + Постфикс])
И Форма["СпособУказанияБанка" + Постфикс] = "ВыборИзСправочника" Тогда
Форма.Элементы["СтраницаБанк" + Постфикс].Заголовок = НСтр("ru = 'Ввести реквизиты банка вручную...'");
Возврат
КонецЕсли;
ВыводимыеРеквизиты = Новый Массив;
ЕстьДанные = Ложь;
Если Форма["СпособУказанияБанка" + Постфикс] = "РучноеЗаполнениеРеквизитов" Тогда
Если Форма.НациональныеРеквизитыБанковскихСчетов Тогда
Если ЗначениеЗаполнено(Форма["НаименованиеБанка" + Постфикс]) Тогда
НаименованиеБанка = Форма["НаименованиеБанка" + Постфикс];
ЕстьДанные = Истина;
Иначе
НаименованиеБанка = НСтр("ru = '<не указано>'");
КонецЕсли;
Иначе
Если ЗначениеЗаполнено(Форма["НаименованиеБанкаМеждународное" + Постфикс]) Тогда
НаименованиеБанка = Форма["НаименованиеБанкаМеждународное" + Постфикс];
ЕстьДанные = Истина;
Иначе
НаименованиеБанка = НСтр("ru = '<не указано>'");
КонецЕсли;
КонецЕсли;
ВыводимыеРеквизиты.Добавить(СтрЗаменить(НаименованиеБанка, "", НеразрывныйПробел));
КонецЕсли;
Если Форма.НациональныеРеквизитыБанковскихСчетов Тогда
Если ЗначениеЗаполнено(Форма["БИКБанка" + Постфикс]) Тогда
БИКБанка = СокрЛП(Форма["БИКБанка" + Постфикс]);
ЕстьДанные = Истина;
Иначе
БИКБанка = НСтр("ru = '<не указан>'");
КонецЕсли;
ВыводимыеРеквизиты.Добавить(
Форма.Элементы["БИКБанка" + Постфикс].Заголовок + ":" + НеразрывныйПробел + БИКБанка);
КонецЕсли;
Если Форма.МеждународныеРеквизитыБанковскихСчетов Тогда
Если ЗначениеЗаполнено(Форма["СВИФТБанка" + Постфикс]) Тогда
СВИФТБанка = Форма["СВИФТБанка" + Постфикс];
ЕстьДанные = Истина;
Иначе
СВИФТБанка = НСтр("ru = '<не указан>'");
КонецЕсли;
ВыводимыеРеквизиты.Добавить(
СтрЗаменить(Форма.Элементы["СВИФТБанка" + Постфикс].Заголовок, " ", НеразрывныйПробел) + ":"
+ НеразрывныйПробел + СВИФТБанка);
КонецЕсли;
Если Форма["ИспользуетсяБанкДляРасчетов" + Постфикс] Тогда
Значение = ?(Форма.Элементы["КоррСчетБанка" + Постфикс].Видимость, Форма["КоррСчетБанка" + Постфикс],
Форма["СчетВБанкеДляРасчетов" + Постфикс]);
Если ЗначениеЗаполнено(Значение) Тогда
ЕстьДанные = Истина;
Иначе
Значение = НСтр("ru = '<не указан>'");
КонецЕсли;
ВыводимыеРеквизиты.Добавить(
СтрЗаменить(Форма.Элементы["КоррСчетБанка" + Постфикс].Заголовок, " ", НеразрывныйПробел) + ":"
+ НеразрывныйПробел + Значение);
КонецЕсли;
Если Форма["СпособУказанияБанка" + Постфикс] = "РучноеЗаполнениеРеквизитов" И НЕ ЕстьДанные Тогда
Форма.Элементы["СтраницаБанк" + Постфикс].Заголовок = НСтр("ru = 'Ввести реквизиты банка вручную...'");
Иначе
Форма.Элементы["СтраницаБанк" + Постфикс].Заголовок = СтрСоединить(ВыводимыеРеквизиты, "; ");
КонецЕсли;
КонецПроцедуры
&НаКлиентеНаСервереБезКонтекста
Процедура ЗаполнитьОсновныеРеквизитыБанкаДляРасчетов(Форма, ЭтоГоловнойКонтрагент=Ложь)
Постфикс = ?(ЭтоГоловнойКонтрагент, "ГоловнойКонтрагент", "");
НеразрывныйПробел = Символ(160);
Форма.Элементы["СтраницаБанкДляРасчетов" + Постфикс].Заголовок = "";
Если Не ЗначениеЗаполнено(Форма["БанкДляРасчетов" + Постфикс])
И Форма["СпособУказанияБанкаДляРасчетов" + Постфикс] = "ВыборИзСправочника" Тогда
Форма.Элементы["СтраницаБанкДляРасчетов" + Постфикс].Заголовок = НСтр("ru = 'Ввести реквизиты банка вручную...'");
Возврат
КонецЕсли;
ВыводимыеРеквизиты = Новый Массив;
ЕстьДанные = Ложь;
Если Форма["СпособУказанияБанкаДляРасчетов" + Постфикс] = "РучноеЗаполнениеРеквизитов" Тогда
Если Форма.НациональныеРеквизитыБанковскихСчетов Тогда
Если Не ПустаяСтрока(Форма["НаименованиеБанкаДляРасчетов" + Постфикс]) Тогда
НаименованиеБанкаДляРасчетов = СокрЛП(Форма["НаименованиеБанкаДляРасчетов" + Постфикс]);
ЕстьДанные = Истина;
Иначе
НаименованиеБанкаДляРасчетов = НСтр("ru = '<не указано>'");
КонецЕсли;
Иначе
Если Не ПустаяСтрока(Форма["НаименованиеБанкаДляРасчетовМеждународное" + Постфикс]) Тогда
НаименованиеБанкаДляРасчетов = СокрЛП(Форма["НаименованиеБанкаДляРасчетовМеждународное" + Постфикс]);
ЕстьДанные = Истина;
Иначе
НаименованиеБанкаДляРасчетов = НСтр("ru = '<не указано>'");
КонецЕсли;
КонецЕсли;
ВыводимыеРеквизиты.Добавить(СтрЗаменить(НаименованиеБанкаДляРасчетов, "", НеразрывныйПробел));
КонецЕсли;
Если Форма.НациональныеРеквизитыБанковскихСчетов Тогда
Если Не ПустаяСтрока(Форма["БИКБанкаДляРасчетов" + Постфикс]) Тогда
БИКБанкаДляРасчетов = СокрЛП(Форма["БИКБанкаДляРасчетов" + Постфикс]);
ЕстьДанные = Истина;
Иначе
БИКБанкаДляРасчетов = НСтр("ru = '<не указан>'");
КонецЕсли;
ВыводимыеРеквизиты.Добавить(Форма.Элементы["БИКБанкаДляРасчетов" + Постфикс].Заголовок + ":" + НеразрывныйПробел
+ СокрЛП(БИКБанкаДляРасчетов));
КонецЕсли;
Если Форма.МеждународныеРеквизитыБанковскихСчетов Тогда
Если Не ПустаяСтрока(Форма["СВИФТБанкаДляРасчетов" + Постфикс]) Тогда
СВИФТБанкаДляРасчетов = СокрЛП(Форма["СВИФТБанкаДляРасчетов" + Постфикс]);
ЕстьДанные = Истина;
Иначе
СВИФТБанкаДляРасчетов = НСтр("ru = '<не указан>'");
КонецЕсли;
ВыводимыеРеквизиты.Добавить(
СтрЗаменить(Форма.Элементы["СВИФТБанкаДляРасчетов" + Постфикс].Заголовок, " ", НеразрывныйПробел)
+ ":" + НеразрывныйПробел + СВИФТБанкаДляРасчетов);
КонецЕсли;
Если Форма["СпособУказанияБанкаДляРасчетов" + Постфикс] = "РучноеЗаполнениеРеквизитов" И НЕ ЕстьДанные Тогда
Форма.Элементы["СтраницаБанкДляРасчетов" + Постфикс].Заголовок = НСтр("ru = 'Ввести реквизиты банка вручную...'");
Иначе
Форма.Элементы["СтраницаБанкДляРасчетов" + Постфикс].Заголовок = СтрСоединить(ВыводимыеРеквизиты, "; ");
КонецЕсли;
КонецПроцедуры
&НаКлиенте
Процедура ПриИзмененииБанка(ЭтоГоловнойКонтрагент=Ложь)
Постфикс = ?(ЭтоГоловнойКонтрагент, "ГоловнойКонтрагент", "");
ПартнерыИКонтрагентыЛокализацияКлиент.ПриИзмененииБанкаЛокализация(ЭтотОбъект, Постфикс);
Если ЭтотОбъект["ЭтоIBAN" + Постфикс] Тогда
ПроверитьIBAN(ЭтоГоловнойКонтрагент)
КонецЕсли;
Элементы["Банк" + Постфикс].ПодсказкаВвода = "";
Если ЗначениеЗаполнено(ЭтотОбъект["Банк" + Постфикс]) Тогда
ЭтотОбъект["СпособУказанияБанка" + Постфикс] = "ВыборИзСправочника";
ЗаполнитьРеквизитыБанкаПоБанку("Банк", ЭтотОбъект["Банк" + Постфикс], ЭтоГоловнойКонтрагент);
УправлениеЭлементамиБанковскийСчет(ЭтотОбъект, ЭтоГоловнойКонтрагент);
ЗаполнитьОсновныеРеквизитыБанка(ЭтотОбъект, ЭтоГоловнойКонтрагент);
Иначе
ЭтотОбъект["СпособУказанияБанка" + Постфикс] = "РучноеЗаполнениеРеквизитов";
Элементы["СтраницаБанк" + Постфикс].Заголовок = НСтр("ru = 'Ввести реквизиты банка вручную...'");
УправлениеЭлементамиБанковскийСчет(ЭтотОбъект, ЭтоГоловнойКонтрагент);
КонецЕсли;
КонецПроцедуры
&НаКлиенте
Процедура ПриИзмененииРучноеИзменениеРеквизитовБанка(ЭтоГоловнойКонтрагент=Ложь)
Постфикс = ?(ЭтоГоловнойКонтрагент, "ГоловнойКонтрагент", "");
Если ЭтотОбъект["СпособУказанияБанка" + Постфикс] = "РучноеЗаполнениеРеквизитов" Тогда
Элементы["Банк" + Постфикс].ПодсказкаВвода = НСтр("ru = '<реквизиты банка введены вручную>'");
ЭтотОбъект["Банк" + Постфикс] = Неопределено;
Иначе
Элементы["Банк" + Постфикс].ПодсказкаВвода = "";
КонецЕсли;
РучноеИзменениеРеквизитовБанкаПриИзмененииНаСервере(ЭтоГоловнойКонтрагент);
УправлениеЭлементамиБанковскийСчет(ЭтотОбъект, ЭтоГоловнойКонтрагент);
КонецПроцедуры
&НаСервере
Процедура РучноеИзменениеРеквизитовБанкаПриИзмененииНаСервере(ЭтоГоловнойКонтрагент)
Постфикс = ?(ЭтоГоловнойКонтрагент, "ГоловнойКонтрагент", "");
Если ЭтотОбъект["СпособУказанияБанка" + Постфикс] = "ВыборИзСправочника" Тогда
ЗаполнитьРеквизитыБанкаПоБИК("Банк", ЭтотОбъект["БИКБанка" + Постфикс], ЭтоГоловнойКонтрагент);
КонецЕсли;
ЗаполнитьОсновныеРеквизитыБанка(ЭтотОбъект, ЭтоГоловнойКонтрагент);
КонецПроцедуры
&НаСервере
Функция ЗаполнитьРеквизитыБанкаПоБИК(ТипБанка, Знач БИК = "", ЭтоГоловнойКонтрагент=Ложь)
НашлиПоБИК = Ложь;
ЗаписьОБанке = Неопределено;
Если ТипБанка = "Банк" Тогда
ОчиститьБанковскиеРеквизиты(ЭтотОбъект, Ложь, ЭтоГоловнойКонтрагент);
Иначе
ОчиститьБанковскиеРеквизиты(ЭтотОбъект, Истина, ЭтоГоловнойКонтрагент);
КонецЕсли;
Если ЗначениеЗаполнено(БИК) Тогда
РаботаСБанками.ПолучитьДанныеКлассификатора(БИК,, ЗаписьОБанке);
Если ЗначениеЗаполнено(ЗаписьОБанке) Тогда
ЗаполнитьРеквизитыБанкаПоБанку(ТипБанка, ЗаписьОБанке, ЭтоГоловнойКонтрагент);
ЭтотОбъект[ТипБанка] = ЗаписьОБанке;
НашлиПоБИК = Истина;
КонецЕсли;
КонецЕсли;
Возврат НашлиПоБИК;
КонецФункции
&НаКлиенте
Процедура ПриИзмененииБанкаДляРасчетов(ЭтоГоловнойКонтрагент=Ложь)
Постфикс = ?(ЭтоГоловнойКонтрагент, "ГоловнойКонтрагент", "");
Элементы["БанкДляРасчетов" + Постфикс].ПодсказкаВвода = "";
Если ЗначениеЗаполнено(ЭтотОбъект["БанкДляРасчетов" + Постфикс]) Тогда
ЭтотОбъект["СпособУказанияБанкаДляРасчетов" + Постфикс] = "ВыборИзСправочника";
ЗаполнитьРеквизитыБанкаПоБанку("БанкДляРасчетов", ЭтотОбъект["БанкДляРасчетов" + Постфикс], ЭтоГоловнойКонтрагент);
ЗаполнитьОсновныеРеквизитыБанкаДляРасчетов(ЭтотОбъект, ЭтоГоловнойКонтрагент);
Иначе
Элементы["СтраницаБанкДляРасчетов" + Постфикс].Заголовок = НСтр("ru = 'Ввести реквизиты банка вручную...'")
КонецЕсли;
УправлениеЭлементамиБанковскийСчет(ЭтотОбъект, ЭтоГоловнойКонтрагент);
КонецПроцедуры
&НаКлиенте
Процедура ПриИзмененииРучноеИзменениеРеквизитовБанкаДляРасчетов(ЭтоГоловнойКонтрагент=Ложь)
Постфикс = ?(ЭтоГоловнойКонтрагент, "ГоловнойКонтрагент", "");
Если ЭтотОбъект["СпособУказанияБанкаДляРасчетов" + Постфикс] = "РучноеЗаполнениеРеквизитов" Тогда
Элементы["БанкДляРасчетов" + Постфикс].ПодсказкаВвода = НСтр("ru = '<реквизиты банка введены вручную>'");
ЭтотОбъект["БанкДляРасчетов" + Постфикс] = Неопределено;
Иначе
Элементы["БанкДляРасчетов" + Постфикс].ПодсказкаВвода = "";
КонецЕсли;
РучноеИзменениеРеквизитовБанкаДляРасчетовПриИзмененииНаСервере(ЭтоГоловнойКонтрагент);
УправлениеЭлементамиБанковскийСчет(ЭтотОбъект, ЭтоГоловнойКонтрагент);
КонецПроцедуры
&НаСервере
Процедура РучноеИзменениеРеквизитовБанкаДляРасчетовПриИзмененииНаСервере(ЭтоГоловнойКонтрагент)
Постфикс = ?(ЭтоГоловнойКонтрагент, "ГоловнойКонтрагент", "");
Если ЭтотОбъект["СпособУказанияБанкаДляРасчетов" + Постфикс] = "ВыборИзСправочника" Тогда
ЗаполнитьРеквизитыБанкаПоБИК("БанкДляРасчетов", БИКБанкаДляРасчетов, ЭтоГоловнойКонтрагент)
КонецЕсли;
Если Не ЭтотОбъект["БанкДляРасчетов" + Постфикс].Пустая() Тогда
ЗаполнитьРеквизитыБанкаПоБанку("БанкДляРасчетов", БанкДляРасчетов, ЭтоГоловнойКонтрагент);
КонецЕсли;
ЗаполнитьОсновныеРеквизитыБанкаДляРасчетов(ЭтотОбъект, ЭтоГоловнойКонтрагент);
КонецПроцедуры
&НаКлиенте
Процедура НомерСчетаПриИзмененииКлиент(ЭтоГоловнойКонтрагент = Ложь)
Постфикс = ?(ЭтоГоловнойКонтрагент, "ГоловнойКонтрагент", "");
Элементы["ГруппаОшибкаВНомереСчета" + Постфикс].Видимость = Ложь;
ЭтотОбъект["НомерСчета" + Постфикс] = ВРег(СтрЗаменить(
СтрЗаменить(СокрЛП(ЭтотОбъект["НомерСчета" + Постфикс]), " ", ""), ".", ""));
Если МеждународныеРеквизитыБанковскихСчетов Тогда
ЭтотОбъект["ИностранныйБанк" + Постфикс] = Истина;
Если Сред(ЭтотОбъект["НомерСчета" + Постфикс], 1, 4) = "IBAN" Тогда
ЭтотОбъект["НомерСчета" + Постфикс] = Сред(ЭтотОбъект["НомерСчета" + Постфикс], 5);
КонецЕсли;
Если ДенежныеСредстваКлиентСервер.ПравильнаяДлинаIBAN(ЭтотОбъект["НомерСчета" + Постфикс]) Тогда
ЭтотОбъект["ЭтоIBAN" + Постфикс] = Истина;
ОпределитьСтрануИБанкПоIBAN(ЭтоГоловнойКонтрагент);
Элементы["ГруппаОшибкаВНомереСчета" + Постфикс].Видимость = Ложь;
КонецЕсли;
Если ЭтотОбъект["ЭтоIBAN" + Постфикс] Тогда
ПроверитьIBAN(ЭтоГоловнойКонтрагент)
КонецЕсли;
КонецЕсли;
ЗаполнитьОсновныеРеквизитыБанка(ЭтотОбъект, ЭтоГоловнойКонтрагент);
Если Не ЭтотОбъект["ИностранныйБанк" + Постфикс] И Не ПустаяСтрока(ЭтотОбъект["НомерСчета" + Постфикс]) Тогда
ВалютаСчета = ПолучитьВалютуПоНомеруСчета(ЭтотОбъект["НомерСчета" + Постфикс]);
Если ЗначениеЗаполнено(ВалютаСчета) Тогда
ЭтотОбъект["ВалютаДенежныхСредств" + Постфикс] = ВалютаСчета;
КонецЕсли;
КонецЕсли;
УправлениеЭлементамиБанковскийСчет(ЭтотОбъект, ЭтоГоловнойКонтрагент);
ОтключитьОтметкуНезаполненного();
КонецПроцедуры
&НаКлиенте
Функция ЭтоИностранныйБанк(ДанныеСчета)
Возврат ДенежныеСредстваКлиентЛокализация.ЭтоИностранныйБанк(МеждународныеРеквизитыБанковскихСчетов, ДанныеСчета);
КонецФункции
&НаКлиентеНаСервереБезКонтекста
Процедура ОчиститьБанковскиеРеквизиты(Форма, ЭтоБанкДляРасчетов = Ложь, ЭтоГоловнойКонтрагент = Ложь)
Если Не ЭтоБанкДляРасчетов Тогда
СтруктураРеквизитов = РеквизитыБанка(ЭтоГоловнойКонтрагент);
Если ЭтоГоловнойКонтрагент Тогда
СтруктураРеквизитов.Вставить("СтранаБанкаГоловнойКонтрагент");
Иначе
СтруктураРеквизитов.Вставить("СтранаБанка");
КонецЕсли;
Иначе
СтруктураРеквизитов = РеквизитыБанкаДляРасчетов(ЭтоГоловнойКонтрагент);
Если ЭтоГоловнойКонтрагент Тогда
СтруктураРеквизитов.Вставить("СтранаБанкаДляРасчетовГоловнойКонтрагент");
Иначе
СтруктураРеквизитов.Вставить("СтранаБанкаДляРасчетов");
КонецЕсли;
КонецЕсли;
ДенежныеСредстваКлиентСервер.ОчиститьБанковскиеРеквизитыНаФорме(Форма, СтруктураРеквизитов);
КонецПроцедуры
#КонецОбласти
#Область ПереходыПоСтраницам
&НаКлиенте
Процедура ВыполнитьПереходПоСтраницам(Знач Оповещение, Команда)
Отказ = УсловияПереходаПоСтраницамНеВыполнены(Команда);
Если Не Отказ Тогда
ВыполнитьНеобходимыеДействияПриПереходеПоСтраницам(Новый ОписаниеОповещения("ВыполнитьПереходПоСтраницамЗавершение", ЭтотОбъект, Новый Структура("Оповещение", Оповещение)), Команда);
Возврат;
КонецЕсли;
ВыполнитьПереходПоСтраницамФрагмент(Оповещение);
КонецПроцедуры
&НаКлиенте
Процедура ВыполнитьПереходПоСтраницамЗавершение(Результат, ДополнительныеПараметры) Экспорт
Оповещение = ДополнительныеПараметры.Оповещение;
ВыполнитьПереходПоСтраницамФрагмент(Оповещение);
КонецПроцедуры
&НаКлиенте
Процедура ВыполнитьПереходПоСтраницамФрагмент(Знач Оповещение)
УправлениеСтраницамиПодвал();
ВыполнитьОбработкуОповещения(Оповещение);
КонецПроцедуры
&НаКлиенте
Функция УсловияПереходаПоСтраницамНеВыполнены(Команда)
Отказ = Ложь;
Если Команда.Имя = "Далее" Тогда
Если Элементы.СтраницыПомощника.ТекущаяСтраница = Элементы.СтраницаПервичнаяИнформация Тогда
Отказ = ПервичнаяИнформацияЗаполненаНеправильно();
ИначеЕсли Элементы.СтраницыПомощника.ТекущаяСтраница = Элементы.СтраницаДополнительныеСведения Тогда
Отказ = ДополнительныеСведенияЗаполненыНеправильно();
ИначеЕсли Элементы.СтраницыПомощника.ТекущаяСтраница = Элементы.СтраницаДополнительныеРеквизиты Тогда
Отказ = ДополнительныеРеквизитыЗаполненыНеправильно();
ИначеЕсли Элементы.СтраницыПомощника.ТекущаяСтраница = Элементы.СтраницаГоловнойКонтрагент Тогда
Отказ = СведенияГоловногоКонтрагентаЗаполненыНеправильно();
ИначеЕсли Элементы.СтраницыПомощника.ТекущаяСтраница = Элементы.СтраницаРасчетныйСчет Тогда
Отказ = РасчетныйСчетЗаполненНеправильно();
ИначеЕсли Элементы.СтраницыПомощника.ТекущаяСтраница = Элементы.СтраницаРасчетныйСчетГоловногоКонтрагента Тогда
Отказ = РасчетныйСчетГоловногоКонтрагентаЗаполненНеправильно();
КонецЕсли;
КонецЕсли;
Возврат Отказ;
КонецФункции
&НаКлиенте
Процедура ВыполнитьНеобходимыеДействияПриПереходеПоСтраницам(Знач Оповещение, Команда)
Если Команда.Имя = "Далее" Тогда
Если Элементы.СтраницыПомощника.ТекущаяСтраница = Элементы.СтраницаПервичнаяИнформация Тогда
ВыполнитьПоискПоПервичнойИнформации();
Если ТаблицаНайдено.Количество() > 0 Тогда
ПерейтиНаСтраницуНайденныхСовпадений();
Иначе
ПерейтиНаСтраницуДополнительныхСведений();
КонецЕсли;
ИначеЕсли Элементы.СтраницыПомощника.ТекущаяСтраница = Элементы.СтраницаНайдено Тогда
ВыборПользователяПоРезультатамНайдено(Новый ОписаниеОповещения("ВыполнитьНеобходимыеДействияПриПереходеПоСтраницамПослеВыбора", ЭтотОбъект, Новый Структура("Оповещение", Оповещение)));
Возврат;
ИначеЕсли Элементы.СтраницыПомощника.ТекущаяСтраница = Элементы.СтраницаДополнительныеСведения Тогда
Если ИспользоватьДополнительныеРеквизиты Тогда
Если ТребуетсяОбновлениеЭлементовДопРеквизитов Тогда
ОбновитьЭлементыДополнительныхРеквизитов();
ТребуетсяОбновлениеЭлементовДопРеквизитов = Ложь;
КонецЕсли;
Если Элементы.ГруппаДополнительныеРеквизиты.ПодчиненныеЭлементы.Количество() > 0 Тогда
ПерейтиНаСтраницуДополнительныхРеквизитов();
Иначе
ПерейтиНаСтраницуРасчетногоСчетаИлиФинальную();
КонецЕсли;
Иначе
ПерейтиНаСтраницуРасчетногоСчетаИлиФинальную();
КонецЕсли;
ИначеЕсли Элементы.СтраницыПомощника.ТекущаяСтраница = Элементы.СтраницаДополнительныеРеквизиты Тогда
ПерейтиНаСтраницуРасчетногоСчетаИлиФинальную();
ИначеЕсли Элементы.СтраницыПомощника.ТекущаяСтраница = Элементы.СтраницаРасчетныйСчет Тогда
Если ИспользуютсяТолькоПартнеры
Или (ДействиеСКонтрагентом = 1 И Не НаОснованииКонтрагента И УказыватьЮридическиеРеквизиты) Тогда
Если ВидКомпании = 3 И Не ИспользуютсяТолькоПартнеры Тогда
ПерейтиНаСтраницуВыбораГоловногоКонтрагента();
ИначеЕсли ВидКомпании = 0 И ПартнерыИКонтрагентыЛокализацияКлиент.НеобходимПоискНепривязанныхОбособленныхПодразделений(ЭтотОбъект) Тогда
ВыполнитьПоискНепривязанныхОбособленныхПодразделений();
Если ОбособленныеПодразделения.Количество() > 0 Тогда
ПерейтиНаСтраницуОбособленныхПодразделений();
КонецЕсли;
КонецЕсли;
КонецЕсли;
Если Элементы.СтраницыПомощника.ТекущаяСтраница = Элементы.СтраницаРасчетныйСчет Тогда
ПерейтиНаФинальнуюСтраницу();
КонецЕсли;
ИначеЕсли Элементы.СтраницыПомощника.ТекущаяСтраница = Элементы.СтраницаОбособленныеПодразделения Тогда
ПерейтиНаФинальнуюСтраницу();
ИначеЕсли Элементы.СтраницыПомощника.ТекущаяСтраница = Элементы.СтраницаГоловнойКонтрагент Тогда
Если ВыбратьГоловногоКонтрагента = 1 Тогда
ПерейтиНаСтраницуРасчетногоСчетаГоловногоКонтрагента();
Иначе
ПерейтиНаФинальнуюСтраницу();
КонецЕсли;
ИначеЕсли Элементы.СтраницыПомощника.ТекущаяСтраница = Элементы.СтраницаРасчетныйСчетГоловногоКонтрагента Тогда
ПерейтиНаФинальнуюСтраницу();
ИначеЕсли Элементы.СтраницыПомощника.ТекущаяСтраница = Элементы.СтраницаФинальная Тогда
СписокСозданных = Новый СписокЗначений;
ТребуетсяПереходНаСтраницуСовпадений = Ложь;
СоздатьПартнера(СписокСозданных, ТребуетсяПереходНаСтраницуСовпадений);
Если ТребуетсяПереходНаСтраницуСовпадений Тогда
ПерейтиНаСтраницуНайденныхСовпадений();
Возврат;
КонецЕсли;
Если СозданиеВыполнено Тогда
РеквизитыПартнера = Новый Структура;
Для Каждого ЭлементСписка Из СписокСозданных Цикл
Если ТипЗнч(ЭлементСписка.Значение) = Тип("СправочникСсылка.Партнеры") Тогда
РеквизитыПартнера.Вставить("Наименование", ЭлементСписка.Представление);
РеквизитыПартнера.Вставить("ОсновнойМенеджер", ОсновнойМенеджер);
КонецЕсли;
ПоказатьОповещениеПользователя("Создание", ЭлементСписка.Значение, ЭлементСписка.Представление);
КонецЦикла;
Если РеквизитыПартнера.Количество() = 0 Тогда
РеквизитыПартнера = ОбщегоНазначенияУТВызовСервера.ЗначенияРеквизитовОбъекта(ПартнерВыбор, "ОсновнойМенеджер, Наименование");
КонецЕсли;
ВыполнитьДействияЗакрытияФормы(Новый ОписаниеОповещения("ВыполнитьНеобходимыеДействияПриПереходеПоСтраницамЗавершение", ЭтотОбъект, Новый Структура("Оповещение", Оповещение)), РеквизитыПартнера, Истина);
Возврат;
КонецЕсли;
КонецЕсли;
Иначе
РазмерСписка = СтекПредыдущихСтраниц.Количество();
ИмяПредыдущейСтраницы = СтекПредыдущихСтраниц[РазмерСписка - 1].Значение;
Элементы.СтраницыПомощника.ТекущаяСтраница = Элементы[ИмяПредыдущейСтраницы];
СтекПредыдущихСтраниц.Удалить(РазмерСписка -1);
КонецЕсли;
ВыполнитьНеобходимыеДействияПриПереходеПоСтраницамФрагмент(Оповещение);
КонецПроцедуры
&НаКлиенте
Процедура ВыполнитьНеобходимыеДействияПриПереходеПоСтраницамПослеВыбора(Результат, ДополнительныеПараметры) Экспорт
Оповещение = ДополнительныеПараметры.Оповещение;
Если Результат Тогда
ВыполнитьОбработкуОповещения(Оповещение);
Возврат;
КонецЕсли;
Если ДействиеПоРезультатамНайдено = 0 Тогда
Если ФактАдресКонтрагентаОбязателен
Или ЮрАдресКонтрагентаОбязателен Тогда
ПерейтиНаСтраницуДополнительныхСведений();
Иначе
ПерейтиНаСтраницуРасчетногоСчетаКонтрагента();
КонецЕсли;
Иначе
ПерейтиНаСтраницуДополнительныхСведений();
КонецЕсли;
ВыполнитьНеобходимыеДействияПриПереходеПоСтраницамФрагмент(Оповещение);
КонецПроцедуры
&НаКлиенте
Процедура ВыполнитьНеобходимыеДействияПриПереходеПоСтраницамЗавершение(Результат, ДополнительныеПараметры) Экспорт
Оповещение = ДополнительныеПараметры.Оповещение;
ВыполнитьНеобходимыеДействияПриПереходеПоСтраницамФрагмент(Оповещение);
КонецПроцедуры
&НаКлиенте
Процедура ВыполнитьНеобходимыеДействияПриПереходеПоСтраницамФрагмент(Знач Оповещение)
ВыполнитьОбработкуОповещения(Оповещение);
КонецПроцедуры
&НаКлиенте
Процедура ПерейтиНаСтраницуРасчетногоСчетаИлиФинальную()
Если (ДействиеСКонтрагентом = 1 Или ИспользуютсяТолькоПартнеры) И УказыватьЮридическиеРеквизиты Тогда
ПерейтиНаСтраницуРасчетногоСчетаКонтрагента();
Иначе
ПерейтиНаФинальнуюСтраницу();
КонецЕсли;
КонецПроцедуры
&НаКлиенте
Процедура ПерейтиНаСтраницуНайденныхСовпадений()
СтекПредыдущихСтраниц.Добавить(Элементы.СтраницыПомощника.ТекущаяСтраница.Имя);
Элементы.СтраницыПомощника.ТекущаяСтраница = Элементы.СтраницаНайдено;
ТекущийЭлемент = Элементы.ТаблицаНайдено;
КонецПроцедуры
&НаКлиенте
Процедура ПерейтиНаСтраницуДополнительныхСведений()
Если ПустаяСтрока(ПолноеЮридическоеНаименование) И ЭтоКомпания = 1 И УказыватьЮридическиеРеквизиты Тогда
ПолноеЮридическоеНаименование = ФИО_ОднойСтрокой(ФамилияПартнера, ИмяПартнера, ОтчествоПартнера);
КонецЕсли;
Если НаОснованииДанныхРозничногоПокупателя Тогда
ЗаголовокДекорации = НСтр("ru = 'Укажите прочие доступные сведения о розничном покупателе %1:'");
ИначеЕсли ИспользуютсяТолькоПартнеры
Или ДействиеПоРезультатамНайдено = 0 Тогда
ЗаголовокДекорации = НСтр("ru = 'Укажите прочие доступные сведения о контрагенте %1:'");
Иначе
ЗаголовокДекорации = НСтр("ru = 'Укажите прочие доступные сведения о партнере %1:'");
КонецЕсли;
Если ЭтоКомпания = 0 Тогда
НаименованиеПартнераДляЗаголовка = ?(ИспользуютсяТолькоПартнеры, ПолноеНаименование, ПолноеЮридическоеНаименование);
Если ПустаяСтрока(Название) Тогда
Название = ПолноеНаименование;
КонецЕсли;
Если ВидКомпании = 3 И ИспользуютсяТолькоПартнеры Тогда
ЗаполнитьСписокВыбораГоловногоКонтрагента();
КонецЕсли;
Иначе
НаименованиеПартнераДляЗаголовка = ФИО_ОднойСтрокой(ФамилияПартнера, ИмяПартнера, ОтчествоПартнера);
КонецЕсли;
Название = ?(ПустаяСтрока(Название) Или ЭтоКомпания = 1, НаименованиеПартнераДляЗаголовка, Название);
Элементы.ДекорацияДополнительныеСведения.Заголовок =
СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(ЗаголовокДекорации, Название);
УправлениеДоступностьюДополнительныеСведения(ЭтотОбъект);
СтекПредыдущихСтраниц.Добавить(Элементы.СтраницыПомощника.ТекущаяСтраница.Имя);
Элементы.СтраницыПомощника.ТекущаяСтраница = Элементы.СтраницаДополнительныеСведения;
КонецПроцедуры
&НаКлиенте
Процедура ПерейтиНаСтраницуРасчетногоСчетаКонтрагента()
ЗаголовокДекорации = СтрЗаменить(
Элементы.ДекорацияБанковскиеСведения.Заголовок,
"#PartnerName#",
НаименованиеПартнераДляЗаголовка());
ОбщегоНазначенияУТКлиентСервер.УстановитьСвойствоЭлементаФормы(
Элементы,
"ДекорацияБанковскиеСведения",
"Заголовок",
ЗаголовокДекорации);
УправлениеДоступностьюРасчетныйСчет(УказатьБанковскийСчетКонтрагента);
УправлениеЭлементамиБанковскийСчет(ЭтотОбъект);
СтекПредыдущихСтраниц.Добавить(Элементы.СтраницыПомощника.ТекущаяСтраница.Имя);
Элементы.СтраницыПомощника.ТекущаяСтраница = Элементы.СтраницаРасчетныйСчет;
КонецПроцедуры
&НаКлиенте
Процедура ПерейтиНаСтраницуОбособленныхПодразделений()
Элементы.СтраницыПомощника.ТекущаяСтраница = Элементы.СтраницаОбособленныеПодразделения;
КонецПроцедуры
&НаКлиенте
Процедура ПерейтиНаСтраницуВыбораГоловногоКонтрагента()
УправлениеДоступностьюРасчетныйСчет(УказатьБанковскийСчетГоловногоКонтрагента, Истина);
ЗаполнитьСписокВыбораГоловногоКонтрагента();
ЗаполнитьСписокВыбораПартнераГоловногоКонтрагента();
ПартнерыИКонтрагентыЛокализацияКлиентСервер.УправлениеДоступностьюГоловнойКонтрагент(ЭтотОбъект);
СтекПредыдущихСтраниц.Добавить(Элементы.СтраницыПомощника.ТекущаяСтраница.Имя);
Элементы.СтраницыПомощника.ТекущаяСтраница = Элементы.СтраницаГоловнойКонтрагент;
КонецПроцедуры
&НаКлиенте
Процедура ПерейтиНаСтраницуРасчетногоСчетаГоловногоКонтрагента()
ЗаголовокДекорации = СтрЗаменить(
Элементы.ДекорацияБанковскиеСведенияГоловногоКонтрагента.Заголовок,
"#НаименованиеКонтрагента#",
НаименованиеГоловнойКонтрагент);
ОбщегоНазначенияУТКлиентСервер.УстановитьСвойствоЭлементаФормы(
Элементы,
"ДекорацияБанковскиеСведенияГоловногоКонтрагента",
"Заголовок",
ЗаголовокДекорации);
УправлениеДоступностьюРасчетныйСчет(Истина);
УправлениеЭлементамиБанковскийСчет(ЭтотОбъект, Истина);
СтекПредыдущихСтраниц.Добавить(Элементы.СтраницыПомощника.ТекущаяСтраница.Имя);
Элементы.СтраницыПомощника.ТекущаяСтраница = Элементы.СтраницаРасчетныйСчетГоловногоКонтрагента;
КонецПроцедуры
&НаКлиенте
Процедура ПерейтиНаФинальнуюСтраницу()
Если НаОснованииДанныхРозничногоПокупателя Тогда
ЗаголовокСтраницы = НСтр("ru = 'Проверьте введенные сведения, и нажмите кнопку ""Создать"" для регистрации нового розничного покупателя.'");
ЗаголовокДействия = НСтр("ru = 'Открыть форму вновь созданного розничного покупателя для указания дополнительной информации.'");
ИначеЕсли ИспользуютсяТолькоПартнеры Или ДействиеПоРезультатамНайдено = 0 Тогда
ЗаголовокСтраницы = НСтр("ru = 'Проверьте введенные сведения, и нажмите кнопку ""Создать"" для регистрации нового контрагента.'");
ЗаголовокДействия = НСтр("ru = 'Открыть форму вновь созданного контрагента для указания дополнительной информации.'");
Иначе
ЗаголовокСтраницы = НСтр("ru = 'Проверьте введенные сведения, и нажмите кнопку ""Создать"" для регистрации нового партнера.'");
ЗаголовокДействия = НСтр("ru = 'Открыть форму вновь созданного партнера для указания дополнительной информации.'");
КонецЕсли;
Элементы.ДекорацияФинальная.Заголовок = ЗаголовокСтраницы;
Элементы.ОткрытьПослеСоздания.Заголовок = ЗаголовокДействия;
ЗаполнитьИтоговуюИнформацию();
СтекПредыдущихСтраниц.Добавить(Элементы.СтраницыПомощника.ТекущаяСтраница.Имя);
Элементы.СтраницыПомощника.ТекущаяСтраница = Элементы.СтраницаФинальная;
КонецПроцедуры
&НаКлиенте
Процедура ПерейтиНаСтраницуДополнительныхРеквизитов()
ЗаголовокДекорации = СтрШаблон(НСтр("ru = 'Укажите дополнительные реквизиты %1:'"),
НаименованиеПартнераДляЗаголовка());
ОбщегоНазначенияУТКлиентСервер.УстановитьСвойствоЭлементаФормы(
Элементы,
"ДекорацияДополнительныеРеквизиты",
"Заголовок",
ЗаголовокДекорации);
СтекПредыдущихСтраниц.Добавить(Элементы.СтраницыПомощника.ТекущаяСтраница.Имя);
Элементы.СтраницыПомощника.ТекущаяСтраница = Элементы.СтраницаДополнительныеРеквизиты;
КонецПроцедуры
&НаКлиенте
Процедура ВопросПродолжениеВыбораПартнераЗавершение(Результат, ДополнительныеПараметры) Экспорт
Если Результат = КодВозвратаДиалога.Да Тогда
ВыполнитьДействияЗакрытияФормы(Неопределено, ДополнительныеПараметры.РеквизитыПартнера, ДополнительныеПараметры.СозданыНовыеОбъекты);
Возврат;
КонецЕсли;
КонецПроцедуры
#КонецОбласти
#Область ПроверкиВведеннойИнформации
&НаКлиенте
Функция ПервичнаяИнформацияЗаполненаНеправильно()
Отказ = Ложь;
ОчиститьСообщения();
Если ЭтоКомпания = 0 Тогда
Если ИспользуютсяТолькоПартнеры Тогда
Если ПустаяСтрока(ПолноеЮридическоеНаименование) Тогда
ПартнерыИКонтрагентыКлиент.ВывестиСообщениеПользователю(НСтр("ru = 'Не указано сокращенное юр. наименование партнера'"), ИспользуютсяТолькоПартнеры, "ПолноеЮридическоеНаименование");
Отказ = Истина;
КонецЕсли;
Иначе
Если ПустаяСтрока(ПолноеНаименование) Тогда
ПартнерыИКонтрагентыКлиент.ВывестиСообщениеПользователю(НСтр("ru = 'Не указано публичное наименование партнера'"), ИспользуютсяТолькоПартнеры, "ПолноеНаименование");
Отказ = Истина;
КонецЕсли;
КонецЕсли;
ИначеЕсли ЭтоКомпания = 1 Тогда
Если ПустаяСтрока(ФамилияПартнера) Тогда
ПартнерыИКонтрагентыКлиент.ВывестиСообщениеПользователю(НСтр("ru = 'Не указано фамилия партнера'"), ИспользуютсяТолькоПартнеры, "ФамилияПартнера");
Отказ = Истина;
КонецЕсли;
Если ПустаяСтрока(ИмяПартнера) Тогда
ПартнерыИКонтрагентыКлиент.ВывестиСообщениеПользователю(НСтр("ru = 'Не указано имя партнера'"), ИспользуютсяТолькоПартнеры, "ИмяПартнера");
Отказ = Истина;
КонецЕсли;
КонецЕсли;
ОбязательностьКонтактнойИнформацииОтработана = Ложь;
Если ЭтоКомпания = 0 Тогда
Если АдресЭППартнераОбязателен
И Не ЗначениеЗаполнено(АдресЭППартнера) Тогда
ПартнерыИКонтрагентыКлиент.ВывестиСообщениеПользователю(НСтр("ru = 'Необходимо указать адрес электронной почты партнера'"),ИспользуютсяТолькоПартнеры, "АдресЭППартнера");
Отказ = Истина;
ОбязательностьКонтактнойИнформацииОтработана = Истина;
КонецЕсли;
Если ТелефонПартнераОбязателен
И Не ЗначениеЗаполнено(ТелефонПартнера) Тогда
ПартнерыИКонтрагентыКлиент.ВывестиСообщениеПользователю(НСтр("ru = 'Необходимо указать телефон партнера'"),ИспользуютсяТолькоПартнеры, "ТелефонПартнера");
Отказ = Истина;
ОбязательностьКонтактнойИнформацииОтработана = Истина;
КонецЕсли;
Если УказатьДанныеКонтактногоЛица Тогда
Если АдресЭПКонтактногоЛицаОбязателен
И Не ЗначениеЗаполнено(АдресЭПКЛ) Тогда
ПартнерыИКонтрагентыКлиент.ВывестиСообщениеПользователю(НСтр("ru = 'Необходимо указать адрес электронной почты контактного лица'"), ИспользуютсяТолькоПартнеры, "АдресЭПКЛ");
Отказ = Истина;
ОбязательностьКонтактнойИнформацииОтработана = Истина;
КонецЕсли;
Если ТелефонКонтактногоЛицаОбязателен
И Не ЗначениеЗаполнено(ТелефонКЛ) Тогда
ПартнерыИКонтрагентыКлиент.ВывестиСообщениеПользователю(НСтр("ru = 'Необходимо указать телефон контактного лица'"), ИспользуютсяТолькоПартнеры, "ТелефонКЛ");
Отказ = Истина;
ОбязательностьКонтактнойИнформацииОтработана = Истина;
КонецЕсли;
Если МобильныйТелефонКонтактногоЛицаОбязателен
И Не ЗначениеЗаполнено(МобильныйТелефонКЛ) Тогда
ПартнерыИКонтрагентыКлиент.ВывестиСообщениеПользователю(НСтр("ru = 'Необходимо указать мобильный телефон контактного лица'"), ИспользуютсяТолькоПартнеры, "МобильныйТелефонКЛ");
Отказ = Истина;
ОбязательностьКонтактнойИнформацииОтработана = Истина;
КонецЕсли;
КонецЕсли;
Если Не ОбязательностьКонтактнойИнформацииОтработана
И ПустаяСтрока(АдресЭППартнера)
И ПустаяСтрока(ТелефонПартнера) Тогда
Если (УказатьДанныеКонтактногоЛица) Тогда
Если ПустаяСтрока(ТелефонКЛ) И ПустаяСтрока(МобильныйТелефонКЛ) И ПустаяСтрока(АдресЭПКЛ) Тогда
ПартнерыИКонтрагентыКлиент.ВывестиСообщениеПользователю(НСтр("ru = 'Необходимо указать хотя бы одно значение контактной информации'"),ИспользуютсяТолькоПартнеры, "АдресЭППартнера");
Отказ = Истина;
КонецЕсли;
Иначе
ПартнерыИКонтрагентыКлиент.ВывестиСообщениеПользователю(НСтр("ru = 'Необходимо указать хотя бы одно значение контактной информации'"),ИспользуютсяТолькоПартнеры, "АдресЭППартнера");
Отказ = Истина;
КонецЕсли;
КонецЕсли;
Иначе
Если (АдресЭППартнераОбязателен
Или ВариантОтправкиЭлектронногоЧека = ПредопределенноеЗначение("Перечисление.ВариантыОтправкиЭлектронногоЧекаПокупателю.ОтправитьEmail"))
И Не ЗначениеЗаполнено(АдресЭППартнераФизЛицо) Тогда
ПартнерыИКонтрагентыКлиент.ВывестиСообщениеПользователю(НСтр("ru = 'Необходимо указать адрес электронной почты партнера'"),ИспользуютсяТолькоПартнеры, "АдресЭППартнераФизЛицо");
Отказ = Истина;
ОбязательностьКонтактнойИнформацииОтработана = Истина;
КонецЕсли;
Если (ТелефонПартнераОбязателен
Или ВариантОтправкиЭлектронногоЧека = ПредопределенноеЗначение("Перечисление.ВариантыОтправкиЭлектронногоЧекаПокупателю.ОтправитьSMS"))
И Не ЗначениеЗаполнено(ТелефонПартнераФизЛицо) Тогда
ПартнерыИКонтрагентыКлиент.ВывестиСообщениеПользователю(НСтр("ru = 'Необходимо указать телефон партнера'"),ИспользуютсяТолькоПартнеры, "ТелефонПартнераФизЛицо");
Отказ = Истина;
ОбязательностьКонтактнойИнформацииОтработана = Истина;
КонецЕсли;
Если Не ОбязательностьКонтактнойИнформацииОтработана
И ПустаяСтрока(АдресЭППартнераФизЛицо) И ПустаяСтрока(ТелефонПартнераФизЛицо) Тогда
ПартнерыИКонтрагентыКлиент.ВывестиСообщениеПользователю(НСтр("ru = 'Необходимо указать хотя бы одно значение контактной информации'"),ИспользуютсяТолькоПартнеры, "АдресЭППартнераФизЛицо");
Отказ = Истина;
КонецЕсли;
КонецЕсли;
Если УказыватьЮридическиеРеквизиты Тогда
Если Не ИспользуютсяТолькоПартнеры И ЭтоКомпания = 0 Тогда
Если ПустаяСтрока(ПолноеЮридическоеНаименование) Тогда
ПартнерыИКонтрагентыКлиент.ВывестиСообщениеПользователю(НСтр("ru = 'Не указано сокращенное юр. наименование'"),ИспользуютсяТолькоПартнеры, "НаименованиеКонтрагента");
Отказ = Истина;
КонецЕсли;
КонецЕсли;
Если ЭтоКомпания = 1 И УказыватьЮридическиеРеквизиты И УказатьДокументУдостоверяющийЛичность Тогда
Если Не ЗначениеЗаполнено(ВидДокумента) Тогда
ПартнерыИКонтрагентыКлиент.ВывестиСообщениеПользователю(НСтр("ru = 'Не указано вид документа удостоверяющего личность'"),ИспользуютсяТолькоПартнеры, "ВидДокумента");
Отказ = Истина
КонецЕсли;
КонецЕсли;
КонецЕсли;
Если УказатьДанныеКонтактногоЛица И ЭтоКомпания = 0 Тогда
Если ПустаяСтрока(ФамилияКЛ) Тогда
ПартнерыИКонтрагентыКлиент.ВывестиСообщениеПользователю(НСтр("ru = 'Не указана фамилия контактного лица'"),ИспользуютсяТолькоПартнеры, "ФамилияКЛ");
Отказ = Истина;
КонецЕсли;
Если ПустаяСтрока(ИмяКл) Тогда
ПартнерыИКонтрагентыКлиент.ВывестиСообщениеПользователю(НСтр("ru = 'Не указано имя контактного лица'"),ИспользуютсяТолькоПартнеры, "ИмяКЛ");
Отказ = Истина;
КонецЕсли;
Если ПустаяСтрока(ТелефонКЛ) И ПустаяСтрока(АдресЭПКЛ) И ПустаяСтрока(МобильныйТелефонКЛ) Тогда
ПартнерыИКонтрагентыКлиент.ВывестиСообщениеПользователю(НСтр("ru = 'Необходимо указать хотя бы одно значение контактной информации контактного лица'"),ИспользуютсяТолькоПартнеры, "АдресЭПКЛ");
Отказ = Истина;
КонецЕсли;
КонецЕсли;
Если НЕ Отказ Тогда
Если НЕ ПустаяСтрока(АдресЭППартнера) И ЭтоКомпания = 0 Тогда
Если ОбщегоНазначенияУТКлиентСервер.ПроверитьЗаполнениеПочтовогоАдреса(АдресЭППартнера) Тогда
ПартнерыИКонтрагентыКлиент.ВывестиСообщениеПользователю(НСтр("ru = 'Неверный формат адреса электронной почты партнера'"), ИспользуютсяТолькоПартнеры, "АдресЭППартнера");
Отказ = Истина;
КонецЕсли;
КонецЕсли;
Если НЕ ПустаяСтрока(АдресЭППартнераФизЛицо) И ЭтоКомпания = 1 Тогда
Если ОбщегоНазначенияУТКлиентСервер.ПроверитьЗаполнениеПочтовогоАдреса(АдресЭППартнераФизЛицо) Тогда
ПартнерыИКонтрагентыКлиент.ВывестиСообщениеПользователю(НСтр("ru = 'Неверный формат адреса электронной почты партнера'"), ИспользуютсяТолькоПартнеры, "АдресЭППартнераФизЛицо");
Отказ = Истина;
КонецЕсли;
КонецЕсли;
Если УказатьДанныеКонтактногоЛица И НЕ ПустаяСтрока(АдресЭПКЛ) И ЭтоКомпания = 0 Тогда
Если ОбщегоНазначенияУТКлиентСервер.ПроверитьЗаполнениеПочтовогоАдреса(АдресЭПКЛ) Тогда
ПартнерыИКонтрагентыКлиент.ВывестиСообщениеПользователю(НСтр("ru = 'Неверный формат адреса электронной почты контактного лица'"), ИспользуютсяТолькоПартнеры, "АдресЭПКЛ");
Отказ = Истина;
КонецЕсли;
КонецЕсли;
Если ЭтоКомпания = 1 И УказыватьЮридическиеРеквизиты И УказатьДокументУдостоверяющийЛичность Тогда
Если Не ПустаяСтрока(СерияДокумента) Тогда
ТекстОшибки = "";
Отказ = Не ФизическиеЛицаКлиентСерверУТ.СерияДокументаУказанаПравильно(ВидДокумента, СерияДокумента, ТекстОшибки) Или Отказ;
Если Не ПустаяСтрока(ТекстОшибки) Тогда
ОбщегоНазначенияКлиентСервер.СообщитьПользователю(ТекстОшибки, , "СерияДокумента");
КонецЕсли;
КонецЕсли;
Если Не ПустаяСтрока(НомерДокумента) Тогда
ТекстОшибки = "";
Отказ = Не ФизическиеЛицаКлиентСерверУТ.НомерДокументаУказанПравильно(ВидДокумента, НомерДокумента, ТекстОшибки) Или Отказ;
Если Не ПустаяСтрока(ТекстОшибки) Тогда
ОбщегоНазначенияКлиентСервер.СообщитьПользователю(ТекстОшибки, , "НомерДокумента");
КонецЕсли;
КонецЕсли;
КонецЕсли;
КонецЕсли;
ПартнерыИКонтрагентыЛокализацияКлиент.ПервичнаяИнформацияЗаполненаНеправильно(ЭтотОбъект, Отказ);
Возврат Отказ;
КонецФункции
&НаКлиенте
Функция ДополнительныеСведенияЗаполненыНеправильно()
Отказ = Ложь;
ОчиститьСообщения();
Если ДействиеПоРезультатамНайдено <> 0 Тогда
Если Не Клиент И НЕ Поставщик И НЕ ПрочиеОтношения И НЕ Конкурент Тогда
ПартнерыИКонтрагентыКлиент.ВывестиСообщениеПользователю(НСтр("ru = 'Необходимо определить хотя бы один тип отношений'"),ИспользуютсяТолькоПартнеры, "Клиент");
Отказ = Истина;
КонецЕсли;
Если ИспользуютсяГруппыДоступаПартнеров
И ГруппаДоступа = ПредопределенноеЗначение("Справочник.ГруппыДоступаПартнеров.ПустаяСсылка") Тогда
ПартнерыИКонтрагентыКлиент.ВывестиСообщениеПользователю(НСтр("ru = 'Необходимо указать группу доступа'"),ИспользуютсяТолькоПартнеры, "ГруппаДоступа");
Отказ = Истина;
КонецЕсли;
Если ПустаяСтрока(Название) Тогда
ПартнерыИКонтрагентыКлиент.ВывестиСообщениеПользователю(НСтр("ru = 'Необходимо указать рабочее наименование'"),ИспользуютсяТолькоПартнеры, "Название");
Отказ = Истина;
КонецЕсли;
КонецЕсли;
Если ЭтоКомпания = 0 Тогда
Если УказыватьЮридическиеРеквизиты
И ЮрАдресКонтрагентаОбязателен
И Не ЗначениеЗаполнено(ЮридическийАдрес) Тогда
ПартнерыИКонтрагентыКлиент.ВывестиСообщениеПользователю(НСтр("ru = 'Необходимо указать юридический адрес'"),ИспользуютсяТолькоПартнеры, "ЮридическийАдрес");
Отказ = Истина;
КонецЕсли;
Если ((УказыватьЮридическиеРеквизиты И ФактАдресКонтрагентаОбязателен)
Или (ДействиеПоРезультатамНайдено <> 0 И АдресПартнераОбязателен))
И Не ЗначениеЗаполнено(ФактическийАдрес) Тогда
ПартнерыИКонтрагентыКлиент.ВывестиСообщениеПользователю(НСтр("ru = 'Необходимо указать фактический адрес'"),ИспользуютсяТолькоПартнеры, "ФактическийАдрес");
Отказ = Истина;
КонецЕсли;
Иначе
Если ТребуетсяУказаниеАдресаЧастногоЛица(ЭтотОбъект) Тогда
ПартнерыИКонтрагентыКлиент.ВывестиСообщениеПользователю(НСтр("ru = 'Необходимо указать адрес проживания'"), ИспользуютсяТолькоПартнеры, "ЮридическийАдрес");
Отказ = Истина;
КонецЕсли;
КонтактнаяИнформацияДляПроверки = Новый Соответствие;
КонтактнаяИнформацияДляПроверки.Вставить(ПредопределенноеЗначение("Перечисление.ТипыКонтактнойИнформации.АдресЭлектроннойПочты"), АдресЭППартнераФизЛицо);
КонтактнаяИнформацияДляПроверки.Вставить(ПредопределенноеЗначение("Перечисление.ТипыКонтактнойИнформации.Телефон"), ТелефонПартнераФизЛицо);
РозничныеПродажиКлиентСервер.ПроверитьУказаниеКонтактнойИнформацииПартнера(ВариантОтправкиЭлектронногоЧека, КонтактнаяИнформацияДляПроверки, Отказ);
КонецЕсли;
Возврат Отказ;
КонецФункции
&НаСервере
Функция ДополнительныеРеквизитыЗаполненыНеправильно()
Отказ = Ложь;
УправлениеСвойствами.ОбработкаПроверкиЗаполнения(ЭтотОбъект, Отказ, Новый Массив, ПартнерОбъектДопРеквизиты);
Возврат Отказ;
КонецФункции
&НаКлиенте
Функция СведенияГоловногоКонтрагентаЗаполненыНеправильно()
Отказ = Ложь;
ОчиститьСообщения();
Если ВыбратьГоловногоКонтрагента = 1 Тогда
Если ПустаяСтрока(ПолноеНаименованиеГоловногоКонтрагента) Тогда
ПартнерыИКонтрагентыКлиент.ВывестиСообщениеПользователю(НСтр("ru = 'Не указано сокращенное юр. наименование'"), ИспользуютсяТолькоПартнеры, "ПолноеНаименованиеГоловногоКонтрагента");
Отказ = Истина;
КонецЕсли;
КонецЕсли;
ПартнерыИКонтрагентыЛокализацияКлиент.СведенияГоловногоКонтрагентаЗаполненыНеправильно(ЭтотОбъект, Отказ);
Возврат Отказ;
КонецФункции
&НаКлиенте
Функция РасчетныйСчетЗаполненНеправильно()
Отказ = Ложь;
ОчиститьСообщения();
Если УказатьБанковскийСчетКонтрагента Тогда
Если ПустаяСтрока(НомерСчета) Тогда
ПартнерыИКонтрагентыКлиент.ВывестиСообщениеПользователю(НСтр("ru = 'Необходимо указать номер банковского счета'"), ИспользуютсяТолькоПартнеры, "НомерСчета");
Отказ = Истина;
КонецЕсли;
Если Не ЗначениеЗаполнено(ВалютаДенежныхСредств) Тогда
ТекстСообщения = НСтр("ru = 'В системе не указана ""Базовая валюта по умолчанию"". Для настройки необходимо перейти в раздел ""НСИ и администрирование""-""Предприятие""-""Валюты"".'");
ТекстСообщения = НСтр("ru = 'В системе не указана ""Валюта регламентированного учета"". Для настройки необходимо перейти в раздел ""НСИ и администрирование""-""Предприятие""-""Валюты"".'");
ПартнерыИКонтрагентыКлиент.ВывестиСообщениеПользователю(ТекстСообщения, ИспользуютсяТолькоПартнеры, "ВалютаДенежныхСредств");
Отказ = Истина;
КонецЕсли;
Если ПустаяСтрока(БИКБанка) И Не ИностранныйБанк Тогда
ПартнерыИКонтрагентыКлиент.ВывестиСообщениеПользователю(НСтр("ru = 'Необходимо указать БИК банка'"), ИспользуютсяТолькоПартнеры, "БИКБанка");
Отказ = Истина;
КонецЕсли;
Если ИспользуетсяБанкДляРасчетов Тогда
Если ПустаяСтрока(БИКБанкаДляРасчетов)
И Не ИностранныйБанк
И Не (ВалютаДенежныхСредств <> ВалютаРеглУчета) Тогда
ПартнерыИКонтрагентыКлиент.ВывестиСообщениеПользователю(НСтр("ru = 'Необходимо указать БИК банка для расчетов'"), ИспользуютсяТолькоПартнеры, "БИКБанкаДляРасчетов");
Отказ = Истина;
КонецЕсли;
КонецЕсли;
КонецЕсли;
Возврат Отказ;
КонецФункции
&НаКлиенте
Функция РасчетныйСчетГоловногоКонтрагентаЗаполненНеправильно()
Отказ = Ложь;
ОчиститьСообщения();
Если УказатьБанковскийСчетГоловногоКонтрагента Тогда
Если ПустаяСтрока(НомерСчетаГоловнойКонтрагент) Тогда
ПартнерыИКонтрагентыКлиент.ВывестиСообщениеПользователю(НСтр("ru = 'Необходимо указать номер банковского счета'"), ИспользуютсяТолькоПартнеры, "НомерСчетаГоловнойКонтрагент");
Отказ = Истина;
КонецЕсли;
Если Не ЗначениеЗаполнено(ВалютаДенежныхСредствГоловнойКонтрагент) Тогда
ПартнерыИКонтрагентыКлиент.ВывестиСообщениеПользователю(НСтр("ru = 'Необходимо указать валюту денежных средств'"), ИспользуютсяТолькоПартнеры, "ВалютаДенежныхСредствГоловнойКонтрагент");
Отказ = Истина;
КонецЕсли;
Если ПустаяСтрока(БИКБанкаГоловнойКонтрагент) И Не ИностранныйБанкГоловнойКонтрагент Тогда
ПартнерыИКонтрагентыКлиент.ВывестиСообщениеПользователю(НСтр("ru = 'Необходимо указать БИК банка'"), ИспользуютсяТолькоПартнеры, "БИКБанкаГоловнойКонтрагент");
Отказ = Истина;
КонецЕсли;
Если ИспользуетсяБанкДляРасчетовГоловнойКонтрагент Тогда
Если ПустаяСтрока(БИКБанкаДляРасчетовГоловнойКонтрагент)
И Не ИностранныйБанкГоловнойКонтрагент
И Не (ВалютаДенежныхСредствГоловнойКонтрагент <> ВалютаРеглУчета) Тогда
ПартнерыИКонтрагентыКлиент.ВывестиСообщениеПользователю(НСтр("ru = 'Необходимо указать БИК банка для расчетов'"), ИспользуютсяТолькоПартнеры, "БИКБанкаДляРасчетовГоловнойКонтрагент");
Отказ = Истина;
КонецЕсли;
КонецЕсли;
КонецЕсли;
Возврат Отказ;
КонецФункции
#КонецОбласти
#Область Прочее
&НаСервере
Процедура УстановитьУсловноеОформление()
УсловноеОформление.Элементы.Очистить();
Элемент = УсловноеОформление.Элементы.Добавить();
ПолеЭлемента = Элемент.Поля.Элементы.Добавить();
ПолеЭлемента.Поле = Новый ПолеКомпоновкиДанных(Элементы.АдресЭПКЛ.Имя);
ПолеЭлемента = Элемент.Поля.Элементы.Добавить();
ПолеЭлемента.Поле = Новый ПолеКомпоновкиДанных(Элементы.ТелефонКЛ.Имя);
ПолеЭлемента = Элемент.Поля.Элементы.Добавить();
ПолеЭлемента.Поле = Новый ПолеКомпоновкиДанных(Элементы.МобильныйТелефонКЛ.Имя);
ОтборЭлемента = Элемент.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
ОтборЭлемента.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("УказатьДанныеКонтактногоЛица");
ОтборЭлемента.ВидСравнения = ВидСравненияКомпоновкиДанных.Равно;
ОтборЭлемента.ПравоеЗначение = Истина;
ОтборЭлемента = Элемент.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
ОтборЭлемента.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("ТелефонКЛ");
ОтборЭлемента.ВидСравнения = ВидСравненияКомпоновкиДанных.Равно;
ОтборЭлемента = Элемент.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
ОтборЭлемента.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("МобильныйТелефонКЛ");
ОтборЭлемента.ВидСравнения = ВидСравненияКомпоновкиДанных.Равно;
ОтборЭлемента = Элемент.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
ОтборЭлемента.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("АдресЭПКЛ");
ОтборЭлемента.ВидСравнения = ВидСравненияКомпоновкиДанных.Равно;
Элемент.Оформление.УстановитьЗначениеПараметра("ОтметкаНезаполненного", Истина);
Элемент = УсловноеОформление.Элементы.Добавить();
ПолеЭлемента = Элемент.Поля.Элементы.Добавить();
ПолеЭлемента.Поле = Новый ПолеКомпоновкиДанных(Элементы.ИмяКЛ.Имя);
ОтборЭлемента = Элемент.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
ОтборЭлемента.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("УказатьДанныеКонтактногоЛица");
ОтборЭлемента.ВидСравнения = ВидСравненияКомпоновкиДанных.Равно;
ОтборЭлемента.ПравоеЗначение = Истина;
ОтборЭлемента = Элемент.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
ОтборЭлемента.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("ИмяКЛ");
ОтборЭлемента.ВидСравнения = ВидСравненияКомпоновкиДанных.Равно;
Элемент.Оформление.УстановитьЗначениеПараметра("ОтметкаНезаполненного", Истина);
Элемент = УсловноеОформление.Элементы.Добавить();
ПолеЭлемента = Элемент.Поля.Элементы.Добавить();
ПолеЭлемента.Поле = Новый ПолеКомпоновкиДанных(Элементы.ФамилияКЛ.Имя);
ОтборЭлемента = Элемент.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
ОтборЭлемента.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("УказатьДанныеКонтактногоЛица");
ОтборЭлемента.ВидСравнения = ВидСравненияКомпоновкиДанных.Равно;
ОтборЭлемента.ПравоеЗначение = Истина;
ОтборЭлемента = Элемент.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
ОтборЭлемента.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("ФамилияКЛ");
ОтборЭлемента.ВидСравнения = ВидСравненияКомпоновкиДанных.Равно;
Элемент.Оформление.УстановитьЗначениеПараметра("ОтметкаНезаполненного", Истина);
Элемент = УсловноеОформление.Элементы.Добавить();
ПолеЭлемента = Элемент.Поля.Элементы.Добавить();
ПолеЭлемента.Поле = Новый ПолеКомпоновкиДанных(Элементы.АдресЭППартнераФизЛицо.Имя);
ПолеЭлемента = Элемент.Поля.Элементы.Добавить();
ПолеЭлемента.Поле = Новый ПолеКомпоновкиДанных(Элементы.ТелефонПартнераФизЛицо.Имя);
ОтборЭлемента = Элемент.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
ОтборЭлемента.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("ЭтоКомпания");
ОтборЭлемента.ВидСравнения = ВидСравненияКомпоновкиДанных.Равно;
ОтборЭлемента.ПравоеЗначение = 1;
ОтборЭлемента = Элемент.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
ОтборЭлемента.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("АдресЭППартнераФизЛицо");
ОтборЭлемента.ВидСравнения = ВидСравненияКомпоновкиДанных.Равно;
ОтборЭлемента = Элемент.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
ОтборЭлемента.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("ТелефонПартнераФизЛицо");
ОтборЭлемента.ВидСравнения = ВидСравненияКомпоновкиДанных.Равно;
Элемент.Оформление.УстановитьЗначениеПараметра("ОтметкаНезаполненного", Истина);
Элемент = УсловноеОформление.Элементы.Добавить();
ПолеЭлемента = Элемент.Поля.Элементы.Добавить();
ПолеЭлемента.Поле = Новый ПолеКомпоновкиДанных(Элементы.АдресЭППартнера.Имя);
ПолеЭлемента = Элемент.Поля.Элементы.Добавить();
ПолеЭлемента.Поле = Новый ПолеКомпоновкиДанных(Элементы.ТелефонПартнера.Имя);
ОтборЭлемента = Элемент.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
ОтборЭлемента.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("ЭтоКомпания");
ОтборЭлемента.ВидСравнения = ВидСравненияКомпоновкиДанных.Равно;
ОтборЭлемента.ПравоеЗначение = 0;
ОтборЭлемента = Элемент.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
ОтборЭлемента.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("АдресЭППартнера");
ОтборЭлемента.ВидСравнения = ВидСравненияКомпоновкиДанных.Равно;
ОтборЭлемента = Элемент.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
ОтборЭлемента.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("ТелефонПартнера");
ОтборЭлемента.ВидСравнения = ВидСравненияКомпоновкиДанных.Равно;
ГруппаОтбора1 = Элемент.Отбор.Элементы.Добавить(Тип("ГруппаЭлементовОтбораКомпоновкиДанных"));
ГруппаОтбора1.ТипГруппы = ТипГруппыЭлементовОтбораКомпоновкиДанных.ГруппаИли;
ОтборЭлемента = ГруппаОтбора1.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
ОтборЭлемента.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("УказатьДанныеКонтактногоЛица");
ОтборЭлемента.ВидСравнения = ВидСравненияКомпоновкиДанных.Равно;
ОтборЭлемента.ПравоеЗначение = Ложь;
ГруппаОтбора2 = ГруппаОтбора1.Элементы.Добавить(Тип("ГруппаЭлементовОтбораКомпоновкиДанных"));
ГруппаОтбора2.ТипГруппы = ТипГруппыЭлементовОтбораКомпоновкиДанных.ГруппаИ;
ОтборЭлемента = ГруппаОтбора2.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
ОтборЭлемента.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("УказатьДанныеКонтактногоЛица");
ОтборЭлемента.ВидСравнения = ВидСравненияКомпоновкиДанных.Равно;
ОтборЭлемента.ПравоеЗначение = Истина;
ОтборЭлемента = ГруппаОтбора2.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
ОтборЭлемента.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("ТелефонКЛ");
ОтборЭлемента.ВидСравнения = ВидСравненияКомпоновкиДанных.Равно;
ОтборЭлемента = ГруппаОтбора2.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
ОтборЭлемента.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("МобильныйТелефонКЛ");
ОтборЭлемента.ВидСравнения = ВидСравненияКомпоновкиДанных.Равно;
ОтборЭлемента = ГруппаОтбора2.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
ОтборЭлемента.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("АдресЭПКЛ");
ОтборЭлемента.ВидСравнения = ВидСравненияКомпоновкиДанных.Равно;
Элемент.Оформление.УстановитьЗначениеПараметра("ОтметкаНезаполненного", Истина);
Элемент = УсловноеОформление.Элементы.Добавить();
ПолеЭлемента = Элемент.Поля.Элементы.Добавить();
ПолеЭлемента.Поле = Новый ПолеКомпоновкиДанных(Элементы.ГруппаДоступа.Имя);
ОтборЭлемента = Элемент.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
ОтборЭлемента.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("ИспользуютсяГруппыДоступаПартнеров");
ОтборЭлемента.ВидСравнения = ВидСравненияКомпоновкиДанных.Равно;
ОтборЭлемента.ПравоеЗначение = Истина;
ОтборЭлемента = Элемент.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
ОтборЭлемента.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("ГруппаДоступа");
ОтборЭлемента.ВидСравнения = ВидСравненияКомпоновкиДанных.Равно;
ОтборЭлемента.ПравоеЗначение = Справочники.ГруппыДоступаПартнеров.ПустаяСсылка();
Элемент.Оформление.УстановитьЗначениеПараметра("ОтметкаНезаполненного", Истина);
Элемент = УсловноеОформление.Элементы.Добавить();
ПолеЭлемента = Элемент.Поля.Элементы.Добавить();
ПолеЭлемента.Поле = Новый ПолеКомпоновкиДанных(Элементы.НомерСчета.Имя);
ОтборЭлемента = Элемент.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
ОтборЭлемента.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("УказатьБанковскийСчетКонтрагента");
ОтборЭлемента.ВидСравнения = ВидСравненияКомпоновкиДанных.Равно;
ОтборЭлемента.ПравоеЗначение = Истина;
ОтборЭлемента = Элемент.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
ОтборЭлемента.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("НомерСчета");
ОтборЭлемента.ВидСравнения = ВидСравненияКомпоновкиДанных.НеЗаполнено;
Элемент.Оформление.УстановитьЗначениеПараметра("ОтметкаНезаполненного", Истина);
Элемент = УсловноеОформление.Элементы.Добавить();
ПолеЭлемента = Элемент.Поля.Элементы.Добавить();
ПолеЭлемента.Поле = Новый ПолеКомпоновкиДанных(Элементы.ВалютаДенежныхСредств.Имя);
ОтборЭлемента = Элемент.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
ОтборЭлемента.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("ВалютаДенежныхСредств");
ОтборЭлемента.ВидСравнения = ВидСравненияКомпоновкиДанных.НеЗаполнено;
ОтборЭлемента = Элемент.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
ОтборЭлемента.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("УказатьБанковскийСчетКонтрагента");
ОтборЭлемента.ВидСравнения = ВидСравненияКомпоновкиДанных.Равно;
ОтборЭлемента.ПравоеЗначение = Истина;
Элемент.Оформление.УстановитьЗначениеПараметра("ОтметкаНезаполненного", Истина);
Элемент = УсловноеОформление.Элементы.Добавить();
ПолеЭлемента = Элемент.Поля.Элементы.Добавить();
ПолеЭлемента.Поле = Новый ПолеКомпоновкиДанных(Элементы.НомерСчетаГоловнойКонтрагент.Имя);
ОтборЭлемента = Элемент.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
ОтборЭлемента.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("УказатьБанковскийСчетГоловногоКонтрагента");
ОтборЭлемента.ВидСравнения = ВидСравненияКомпоновкиДанных.Равно;
ОтборЭлемента.ПравоеЗначение = Истина;
ОтборЭлемента = Элемент.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
ОтборЭлемента.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("НомерСчетаГоловнойКонтрагент");
ОтборЭлемента.ВидСравнения = ВидСравненияКомпоновкиДанных.НеЗаполнено;
Элемент.Оформление.УстановитьЗначениеПараметра("ОтметкаНезаполненного", Истина);
Элемент = УсловноеОформление.Элементы.Добавить();
ПолеЭлемента = Элемент.Поля.Элементы.Добавить();
ПолеЭлемента.Поле = Новый ПолеКомпоновкиДанных(Элементы.ВалютаДенежныхСредствГоловнойКонтрагент.Имя);
ОтборЭлемента = Элемент.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
ОтборЭлемента.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("ВалютаДенежныхСредствГоловнойКонтрагент");
ОтборЭлемента.ВидСравнения = ВидСравненияКомпоновкиДанных.НеЗаполнено;
ОтборЭлемента = Элемент.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
ОтборЭлемента.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("УказатьБанковскийСчетГоловногоКонтрагента");
ОтборЭлемента.ВидСравнения = ВидСравненияКомпоновкиДанных.Равно;
ОтборЭлемента.ПравоеЗначение = Истина;
Элемент.Оформление.УстановитьЗначениеПараметра("ОтметкаНезаполненного", Истина);
Элемент = УсловноеОформление.Элементы.Добавить();
ПолеЭлемента = Элемент.Поля.Элементы.Добавить();
ПолеЭлемента.Поле = Новый ПолеКомпоновкиДанных(Элементы.АдресЭППартнераТолькоПартнеры.Имя);
ПолеЭлемента = Элемент.Поля.Элементы.Добавить();
ПолеЭлемента.Поле = Новый ПолеКомпоновкиДанных(Элементы.ТелефонПартнераТолькоПартнеры.Имя);
ОтборЭлемента = Элемент.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
ОтборЭлемента.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("ЭтоКомпания");
ОтборЭлемента.ВидСравнения = ВидСравненияКомпоновкиДанных.Равно;
ОтборЭлемента.ПравоеЗначение = 0;
ОтборЭлемента = Элемент.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
ОтборЭлемента.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("АдресЭППартнера");
ОтборЭлемента.ВидСравнения = ВидСравненияКомпоновкиДанных.Равно;
ОтборЭлемента = Элемент.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
ОтборЭлемента.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("ТелефонПартнера");
ОтборЭлемента.ВидСравнения = ВидСравненияКомпоновкиДанных.Равно;
ГруппаОтбора1 = Элемент.Отбор.Элементы.Добавить(Тип("ГруппаЭлементовОтбораКомпоновкиДанных"));
ГруппаОтбора1.ТипГруппы = ТипГруппыЭлементовОтбораКомпоновкиДанных.ГруппаИли;
ОтборЭлемента = ГруппаОтбора1.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
ОтборЭлемента.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("УказатьДанныеКонтактногоЛица");
ОтборЭлемента.ВидСравнения = ВидСравненияКомпоновкиДанных.Равно;
ОтборЭлемента.ПравоеЗначение = Ложь;
ГруппаОтбора2 = ГруппаОтбора1.Элементы.Добавить(Тип("ГруппаЭлементовОтбораКомпоновкиДанных"));
ГруппаОтбора2.ТипГруппы = ТипГруппыЭлементовОтбораКомпоновкиДанных.ГруппаИ;
ОтборЭлемента = ГруппаОтбора2.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
ОтборЭлемента.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("МобильныйТелефонКЛ");
ОтборЭлемента.ВидСравнения = ВидСравненияКомпоновкиДанных.Равно;
ОтборЭлемента = ГруппаОтбора2.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
ОтборЭлемента.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("ТелефонКЛ");
ОтборЭлемента.ВидСравнения = ВидСравненияКомпоновкиДанных.Равно;
ОтборЭлемента = ГруппаОтбора2.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
ОтборЭлемента.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("АдресЭПКЛ");
ОтборЭлемента.ВидСравнения = ВидСравненияКомпоновкиДанных.Равно;
ОтборЭлемента = ГруппаОтбора2.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
ОтборЭлемента.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("УказатьДанныеКонтактногоЛица");
ОтборЭлемента.ВидСравнения = ВидСравненияКомпоновкиДанных.Равно;
ОтборЭлемента.ПравоеЗначение = Истина;
Элемент.Оформление.УстановитьЗначениеПараметра("ОтметкаНезаполненного", Истина);
Элемент = УсловноеОформление.Элементы.Добавить();
ПолеЭлемента = Элемент.Поля.Элементы.Добавить();
ПолеЭлемента.Поле = Новый ПолеКомпоновкиДанных(Элементы.ВидДокумента.Имя);
ОтборЭлемента = Элемент.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
ОтборЭлемента.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("ЭтоКомпания");
ОтборЭлемента.ВидСравнения = ВидСравненияКомпоновкиДанных.Равно;
ОтборЭлемента.ПравоеЗначение = 1;
ОтборЭлемента = Элемент.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
ОтборЭлемента.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("УказыватьЮридическиеРеквизиты");
ОтборЭлемента.ВидСравнения = ВидСравненияКомпоновкиДанных.Равно;
ОтборЭлемента.ПравоеЗначение = Истина;
ОтборЭлемента = Элемент.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
ОтборЭлемента.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("УказатьДокументУдостоверяющийЛичность");
ОтборЭлемента.ВидСравнения = ВидСравненияКомпоновкиДанных.Равно;
ОтборЭлемента.ПравоеЗначение = Истина;
ОтборЭлемента = Элемент.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
ОтборЭлемента.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("ВидДокумента");
ОтборЭлемента.ВидСравнения = ВидСравненияКомпоновкиДанных.НеЗаполнено;
Элемент.Оформление.УстановитьЗначениеПараметра("ОтметкаНезаполненного", Истина);
Элемент = УсловноеОформление.Элементы.Добавить();
ПолеЭлемента = Элемент.Поля.Элементы.Добавить();
ПолеЭлемента.Поле = Новый ПолеКомпоновкиДанных(Элементы.СокрЮрНаименованиеКонтрагента.Имя);
ОтборЭлемента = Элемент.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
ОтборЭлемента.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("НаОснованииКонтрагента");
ОтборЭлемента.ВидСравнения = ВидСравненияКомпоновкиДанных.Равно;
ОтборЭлемента.ПравоеЗначение = Истина;
Элемент.Оформление.УстановитьЗначениеПараметра("ОтметкаНезаполненного", Ложь);
Элемент = УсловноеОформление.Элементы.Добавить();
ПолеЭлемента = Элемент.Поля.Элементы.Добавить();
ПолеЭлемента.Поле = Новый ПолеКомпоновкиДанных(Элементы.ДеревоСравненияПартнеровЗначениеНайденного.Имя);
ОтборЭлемента = Элемент.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
ОтборЭлемента.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("ДеревоСравненияПартнеров.Различие");
ОтборЭлемента.ВидСравнения = ВидСравненияКомпоновкиДанных.Равно;
ОтборЭлемента.ПравоеЗначение = Истина;
Элемент.Оформление.УстановитьЗначениеПараметра("ЦветФона", ЦветаСтиля.ПолеСОшибкойФон);
Элемент = УсловноеОформление.Элементы.Добавить();
ПолеЭлемента = Элемент.Поля.Элементы.Добавить();
ПолеЭлемента.Поле = Новый ПолеКомпоновкиДанных(Элементы.ДеревоСравненияПартнеровЗначениеНайденного.Имя);
ОтборЭлемента = Элемент.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
ОтборЭлемента.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("ДеревоСравненияПартнеров.Совпадение");
ОтборЭлемента.ВидСравнения = ВидСравненияКомпоновкиДанных.Равно;
ОтборЭлемента.ПравоеЗначение = Истина;
Элемент.Оформление.УстановитьЗначениеПараметра("ЦветФона", ЦветаСтиля.ЦветФонаПолностьюОбеспечен);
ПартнерыИКонтрагентыЛокализация.УстановитьУсловноеОформление_ПомощникНового(ЭтотОбъект);
КонецПроцедуры
&НаСервере
Процедура ПриСозданииНовогоРозничногоПокупателя()
НаОснованииДанныхРозничногоПокупателя = Истина;
ЭтоКомпания = 1;
Клиент = Истина;
Элементы.ЭтоКомпания.Видимость = Ложь;
Элементы.ДекорацияПервичнаяИнформацияЗагрузить.Видимость = Ложь;
Элементы.СтраницыБудетСоздан.ТекущаяСтраница = Элементы.СтраницаБудетСозданПартнер;
Элементы.ГруппаТипОтношений.Видимость = Ложь;
Элементы.ГруппаЧастноеЛицоКонтрагент.Видимость =Ложь;
Заголовок = НСтр("ru = 'Помощник регистрации нового розничного покупателя'");
Элементы.ДействиеПоРезультатамНайдено.СписокВыбора[0].Представление = НСтр("ru = 'Не регистрировать нового розничного покупателя, использовать найденного'");
Элементы.ДействиеПоРезультатамНайдено.СписокВыбора[1].Представление = НСтр("ru = 'Продолжить регистрацию розничного покупателя и подчинить найденному'");
Элементы.ДействиеПоРезультатамНайдено.СписокВыбора[2].Представление = НСтр("ru = 'Продолжить регистрацию нового розничного покупателя'");
КонецПроцедуры
&НаСервере
Процедура ПриСозданииНовогоГоловногоКонтрагента()
НаОснованииОбособленногоКонтрагента = Истина;
КонтрагентОснование = Параметры.ОснованиеОбособленныйКонтрагент;
МассивЭлементов = Новый Массив;
МассивЭлементов.Добавить("ДекорацияПервичнаяИнформацияЗагрузить");
ОбщегоНазначенияУТКлиентСервер.УстановитьСвойствоЭлементовФормы(Элементы, МассивЭлементов, "Видимость", Ложь);
МассивЭлементов = Новый Массив;
МассивЭлементов.Добавить("ЭтоКомпания");
МассивЭлементов.Добавить("ГруппаВидКомпании");
ОбщегоНазначенияУТКлиентСервер.УстановитьСвойствоЭлементовФормы(Элементы, МассивЭлементов, "ТолькоПросмотр", Истина);
ПартнерыИКонтрагентыЛокализация.ПриСозданииНовогоГоловногоКонтрагента(ЭтотОбъект);
КонецПроцедуры
&НаКлиентеНаСервереБезКонтекста
Функция ФИО_ОднойСтрокой(Фамилия,Имя,Отчество)
Возврат СокрЛП(СокрЛП(Фамилия) + " " + СокрЛП(Имя) + " " + СокрЛП(Отчество));
КонецФункции
&НаСервере
Функция ПредставлениеДокументаФизическогоЛица()
ПредставлениеДокументаФизЛица = "";
Если Не ВидДокумента.Пустая() Тогда
ПредставлениеДокументаФизЛица = ""
+ ВидДокумента
+ ?(ЗначениеЗаполнено(СерияДокумента),
СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(НСтр("ru = ', серия: %1'"), СерияДокумента), "")
+ ?(ЗначениеЗаполнено(НомерДокумента),
СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(НСтр("ru = ', № %1'"), НомерДокумента), "")
+ ?(ЗначениеЗаполнено(ДатаВыдачи),
СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(НСтр("ru = ', выдан: %1 года'"), Формат(ДатаВыдачи,"ДЛФ=DD")), "")
+ ?(ЗначениеЗаполнено(СрокДействия),
СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(НСтр("ru = ', действует до: %1 года'"), Формат(СрокДействия,"ДЛФ=DD")), "")
+ ?(ЗначениеЗаполнено(КемВыданДокумент), ", " + КемВыданДокумент, "");
ПредставлениеДокументаФизЛица = ПредставлениеДокументаФизЛица + ?(ЗначениеЗаполнено(КодПодразделения) И ВидДокумента = Справочники.ВидыДокументовФизическихЛиц.ПаспортРФ,
СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(НСтр("ru = ', № подр. %1'"), КодПодразделения), "")
КонецЕсли;
Возврат ПредставлениеДокументаФизЛица;
КонецФункции
&НаСервере
Процедура ЗаполнитьСписокВыбораГоловногоКонтрагента()
ПартнерыИКонтрагентыЛокализация.ЗаполнитьСписокВыбораГоловногоКонтрагента(ЭтотОбъект);
КонецПроцедуры
&НаКлиенте
Процедура ЗаполнитьСписокВыбораПартнераГоловногоКонтрагента()
СписокВыбора = Элементы.ПартнерГоловногоКонтрагента.СписокВыбора;
СписокВыбора.Очистить();
Если ДействиеПоРезультатамНайдено = 0 Тогда
ПоискИерархииПоПартнеру = ПартнерВыбор;
Иначе
СписокВыбора.Добавить(
ПредопределенноеЗначение("Справочник.Партнеры.ПустаяСсылка"),
НСтр("ru ='<создаваемый партнер>'"));
ПоискИерархииПоПартнеру = Родитель;
КонецЕсли;
Если ЗначениеЗаполнено(ПоискИерархииПоПартнеру) Тогда
СписокПартнеров = СписокВозможныхПартнеровГоловныхКонтрагентов(ПоискИерархииПоПартнеру);
Для Каждого Элемент Из СписокПартнеров Цикл
СписокВыбора.Добавить(Элемент.Значение, Элемент.Представление);
КонецЦикла;
КонецЕсли;
РазмерСписка = СписокВыбора.Количество();
Если РазмерСписка = 1 Тогда
ПартнерГоловногоКонтрагента = СписокВыбора[0].Значение;
ИначеЕсли РазмерСписка = 0
Или (ЗначениеЗаполнено(ПартнерГоловногоКонтрагента)
И СписокВыбора.НайтиПоЗначению(ПартнерГоловногоКонтрагента) = Неопределено) Тогда
ПартнерГоловногоКонтрагента = Неопределено;
КонецЕсли;
КонецПроцедуры
&НаСервереБезКонтекста
Функция СписокВозможныхПартнеровГоловныхКонтрагентов(Партнер)
Список = Новый СписокЗначений;
ПартнерыИКонтрагенты.ЗаполнитьСписокПартнераСРодителями(Партнер, Список);
Возврат Список;
КонецФункции
&НаСервере
Процедура ВыполнитьПоискНепривязанныхОбособленныхПодразделений()
ПартнерыИКонтрагентыЛокализация.ВыполнитьПоискНепривязанныхОбособленныхПодразделений(ЭтотОбъект);
КонецПроцедуры
&НаКлиенте
Процедура ЗаполнитьДеревоСравненияПартнеров()
ТекущиеДанные = Элементы.ТаблицаНайдено.ТекущиеДанные;
Если ТекущиеДанные = Неопределено Тогда
Возврат;
КонецЕсли;
Если ТекущиеДанные.Партнер <> ТекущийНайденныйПартнер Тогда
УзелПартнера = ДеревоДанныхНайденныхПартнеров.НайтиПоИдентификатору(ТекущиеДанные.ИдентификаторДереваДанных);
ЭлементыУзлаПартнера = УзелПартнера.ПолучитьЭлементы();
ЭлементыДереваСравнения = ДеревоСравненияПартнеров.ПолучитьЭлементы();
ЭлементыДереваСравнения.Очистить();
СкопироватьУзелДанныхДереваФормы(ЭлементыДереваСравнения, ЭлементыУзлаПартнера);
Для Каждого ЭлементДерева Из ЭлементыДереваСравнения Цикл
Элементы.ДеревоСравненияПартнеров.Развернуть(ЭлементДерева.ПолучитьИдентификатор());
КонецЦикла;
ТекущийНайденныйПартнер = ТекущиеДанные.Партнер;
КонецЕсли;
КонецПроцедуры
&НаКлиенте
Процедура СкопироватьУзелДанныхДереваФормы(Приемник, Источник)
Для Каждого УзелИсточника Из Источник Цикл
УзелПриемника = Приемник.Добавить();
ЗаполнитьЗначенияСвойств(УзелПриемника, УзелИсточника);
ЭлементыИсточника = УзелИсточника.ПолучитьЭлементы();
Если ЭлементыИсточника.Количество() > 0 Тогда
СкопироватьУзелДанныхДереваФормы(УзелПриемника.ПолучитьЭлементы(), ЭлементыИсточника);
КонецЕсли;
КонецЦикла;
КонецПроцедуры
&НаСервере
Процедура ЗаписатьПартнераИСвязанныеДанные(СписокСозданных)
Если ДействиеПоРезультатамНайдено <> 0 Тогда
ОбъектПартнер = Справочники.Партнеры.СоздатьЭлемент();
ОбъектПартнер.Наименование = Название;
ОбъектПартнер.Родитель = Родитель;
ОбъектПартнер.БизнесРегион = БизнесРегион;
ОбъектПартнер.ГруппаДоступа = ГруппаДоступа;
ОбъектПартнер.ДатаРегистрации = ТекущаяДатаСеанса();
ОбъектПартнер.Клиент = Клиент;
ОбъектПартнер.Конкурент = Конкурент;
ОбъектПартнер.Поставщик = Поставщик;
ОбъектПартнер.ОбслуживаетсяТорговымиПредставителями = ОбслуживаетсяТорговымиПредставителями;
ОбъектПартнер.ПрочиеОтношения = ПрочиеОтношения;
ОбъектПартнер.ОсновнойМенеджер = ОсновнойМенеджер;
ОбъектПартнер.НаименованиеПолное = НаименованиеПартнера();
ОбъектПартнер.ЮрФизЛицо = ТипЮрФизЛицаПартнера(ЭтоКомпания);
ОбъектПартнер.Пол = Пол;
ОбъектПартнер.ДатаРождения = ДатаРождения;
ОбъектПартнер.Перевозчик = Перевозчик;
ОбъектПартнер.ВариантОтправкиЭлектронногоЧека = ВариантОтправкиЭлектронногоЧека;
Если НЕ ПустаяСтрока(ФактическийАдрес) Тогда
НоваяСтрокаКИ = ОбъектПартнер.КонтактнаяИнформация.Добавить();
НоваяСтрокаКИ.Тип = Перечисления.ТипыКонтактнойИнформации.Адрес;
НоваяСтрокаКИ.Вид = Справочники.ВидыКонтактнойИнформации.АдресПартнера;
НоваяСтрокаКИ.Представление = ФактическийАдрес;
НоваяСтрокаКИ.ЗначенияПолей = ФактическийАдресЗначенияПолей;
НоваяСтрокаКИ.Значение = ЗначениеКонтактнойИнформацииJSONСервер("ФактическийАдресЗначенияПолей");
КонецЕсли;
Если ЭтоКомпания = 0 Тогда
ИмяРеквизитаТелефон = "ТелефонПартнера";
ИмяРеквизитаТелефонЗначенияПолей = "ТелефонПартнераЗначенияПолей";
ИмяРеквизитаАдресЭП = "АдресЭППартнера";
Иначе
ИмяРеквизитаТелефон = "ТелефонПартнераФизЛицо";
ИмяРеквизитаТелефонЗначенияПолей = "ТелефонПартнераФизЛицоЗначенияПолей";
ИмяРеквизитаАдресЭП = "АдресЭППартнераФизЛицо";
КонецЕсли;
Если ЗначенияПолейВСписокЗначений(ЭтотОбъект[ИмяРеквизитаТелефонЗначенияПолей]).Количество()> 0 Тогда
НоваяСтрокаКИ = ОбъектПартнер.КонтактнаяИнформация.Добавить();
НоваяСтрокаКИ.Тип = Перечисления.ТипыКонтактнойИнформации.Телефон;
НоваяСтрокаКИ.Вид = Справочники.ВидыКонтактнойИнформации.ТелефонПартнера;
НоваяСтрокаКИ.Представление = ЭтотОбъект[ИмяРеквизитаТелефон];
НоваяСтрокаКИ.ЗначенияПолей = ЭтотОбъект[ИмяРеквизитаТелефонЗначенияПолей];
НоваяСтрокаКИ.Значение = ЗначениеКонтактнойИнформацииJSONСервер(ИмяРеквизитаТелефонЗначенияПолей);
КонецЕсли;
Если Не ПустаяСтрока(ЭтотОбъект[ИмяРеквизитаАдресЭП]) Тогда
НоваяСтрокаКИ = ОбъектПартнер.КонтактнаяИнформация.Добавить();
НоваяСтрокаКИ.Тип = Перечисления.ТипыКонтактнойИнформации.АдресЭлектроннойПочты;
НоваяСтрокаКИ.Вид = Справочники.ВидыКонтактнойИнформации.EmailПартнера;
НоваяСтрокаКИ.Представление = ЭтотОбъект[ИмяРеквизитаАдресЭП];
НоваяСтрокаКИ.Значение = УправлениеКонтактнойИнформацией.КонтактнаяИнформацияПоПредставлению(НоваяСтрокаКИ.Представление, НоваяСтрокаКИ.Вид);
НоваяСтрокаКИ.ЗначенияПолей = УправлениеКонтактнойИнформацией.КонтактнаяИнформацияВXML(НоваяСтрокаКИ.Значение, НоваяСтрокаКИ.Представление, НоваяСтрокаКИ.Вид);
НоваяСтрокаКИ.АдресЭП = ЭтотОбъект[ИмяРеквизитаАдресЭП];
Поз = СтрНайти(ЭтотОбъект[ИмяРеквизитаАдресЭП], "@");
Если Поз <> 0 Тогда
НоваяСтрокаКИ.ДоменноеИмяСервера = Сред(ЭтотОбъект[ИмяРеквизитаАдресЭП], Поз+1);
КонецЕсли;
КонецЕсли;
УправлениеСвойствами.ПередЗаписьюНаСервере(ЭтотОбъект, ПартнерОбъектДопРеквизиты);
ОбъектПартнер.ДополнительныеРеквизиты.Загрузить(ПартнерОбъектДопРеквизиты.ДополнительныеРеквизиты.Выгрузить());
ОбъектПартнер.Записать();
ПартнерВыбор = ОбъектПартнер.Ссылка;
СписокСозданных.Добавить(ПолучитьНавигационнуюСсылку(ПартнерВыбор), ОбъектПартнер.Наименование);
Если ПолучитьФункциональнуюОпцию("ФиксироватьПервичныйИнтерес") И ЗначениеЗаполнено(КаналПервичногоИнтереса) Тогда
УстановитьПривилегированныйРежим(Истина);
Запись = РегистрыСведений.ИсточникиПервичногоИнтереса.СоздатьМенеджерЗаписи();
Запись.Партнер = ПартнерВыбор;
Запись.КаналПервичногоИнтереса = КаналПервичногоИнтереса;
Запись.ИсточникПервичногоИнтереса = ИсточникПервичногоИнтереса;
Запись.Записать();
УстановитьПривилегированныйРежим(Ложь);
КонецЕсли;
Если ЗначениеЗаполнено(Сегмент)
И ЕстьПравоВключенияВСегмент
И ОбщегоНазначения.ЗначениеРеквизитаОбъекта(Сегмент, "СпособФормирования") = Перечисления.СпособыФормированияСегментов.ФормироватьВручную Тогда
СегментыСервер.ДобавитьПартнераВСегмент(Сегмент, ПартнерВыбор);
КонецЕсли;
Если ЭтоКомпания = 0 И УказатьДанныеКонтактногоЛица И НЕ ПустаяСтрока(ФамилияКЛ) Тогда
ОбъектКонтактноеЛицо = Справочники.КонтактныеЛицаПартнеров.СоздатьЭлемент();
ОбъектКонтактноеЛицо.Владелец = ПартнерВыбор;
ОбъектКонтактноеЛицо.ДатаРегистрацииСвязи = ТекущаяДатаСеанса();
ОбъектКонтактноеЛицо.Наименование = ФИО_ОднойСтрокой(ФамилияКЛ, ИмяКЛ, ОтчествоКЛ);
ОбъектКонтактноеЛицо.Автор = Пользователи.ТекущийПользователь();
Если Не Роль.Пустая() Тогда
СтрокаРоли = ОбъектКонтактноеЛицо.РолиКонтактногоЛица.Добавить();
СтрокаРоли.РольКонтактногоЛица = Роль;
КонецЕсли;
Если Не ПустаяСтрока(АдресЭПКЛ) Тогда
НоваяСтрокаКИ = ОбъектКонтактноеЛицо.КонтактнаяИнформация.Добавить();
НоваяСтрокаКИ.Тип = Перечисления.ТипыКонтактнойИнформации.АдресЭлектроннойПочты;
НоваяСтрокаКИ.Вид = Справочники.ВидыКонтактнойИнформации.EmailКонтактногоЛица;
НоваяСтрокаКИ.Представление = АдресЭПКЛ;
НоваяСтрокаКИ.Значение = УправлениеКонтактнойИнформацией.КонтактнаяИнформацияПоПредставлению(НоваяСтрокаКИ.Представление, НоваяСтрокаКИ.Вид);
НоваяСтрокаКИ.ЗначенияПолей = УправлениеКонтактнойИнформацией.КонтактнаяИнформацияВXML(НоваяСтрокаКИ.Значение, НоваяСтрокаКИ.Представление, НоваяСтрокаКИ.Вид);
НоваяСтрокаКИ.АдресЭП = АдресЭПКЛ;
Поз = СтрНайти(АдресЭПКЛ, "@");
Если Поз <> 0 Тогда
НоваяСтрокаКИ.ДоменноеИмяСервера = Сред(АдресЭПКЛ, Поз+1);
КонецЕсли;
КонецЕсли;
Если ЗначенияПолейВСписокЗначений(ТелефонКЛЗначенияПолей).Количество()> 0 Тогда
НоваяСтрокаКИ = ОбъектКонтактноеЛицо.КонтактнаяИнформация.Добавить();
НоваяСтрокаКИ.Тип = Перечисления.ТипыКонтактнойИнформации.Телефон;
НоваяСтрокаКИ.Вид = Справочники.ВидыКонтактнойИнформации.ТелефонКонтактногоЛица;
НоваяСтрокаКИ.Представление = ТелефонКЛ;
НоваяСтрокаКИ.ЗначенияПолей = ТелефонКЛЗначенияПолей;
НоваяСтрокаКИ.Значение = ЗначениеКонтактнойИнформацииJSONСервер("ТелефонКЛЗначенияПолей");
КонецЕсли;
Если ЗначенияПолейВСписокЗначений(МобильныйТелефонКЛЗначенияПолей).Количество()> 0 Тогда
НоваяСтрокаКИ = ОбъектКонтактноеЛицо.КонтактнаяИнформация.Добавить();
НоваяСтрокаКИ.Тип = Перечисления.ТипыКонтактнойИнформации.Телефон;
НоваяСтрокаКИ.Вид = Справочники.ВидыКонтактнойИнформации.МобильныйТелефонКонтактногоЛица;
НоваяСтрокаКИ.Представление = МобильныйТелефонКЛ;
НоваяСтрокаКИ.ЗначенияПолей = МобильныйТелефонКЛЗначенияПолей;
НоваяСтрокаКИ.Значение = ЗначениеКонтактнойИнформацииJSONСервер("МобильныйТелефонКЛЗначенияПолей");
КонецЕсли;
ОбъектКонтактноеЛицо.Записать();
СписокСозданных.Добавить(ПолучитьНавигационнуюСсылку(ОбъектКонтактноеЛицо.Ссылка), ОбъектКонтактноеЛицо.Наименование);
КонецЕсли;
КонецЕсли;
Если ИспользуютсяТолькоПартнеры Или (ДействиеСКонтрагентом = 1 И НЕ НаОснованииКонтрагента И УказыватьЮридическиеРеквизиты) Тогда
ОбъектКонтрагент = Справочники.Контрагенты.СоздатьЭлемент();
ОбъектКонтрагент.Наименование = ?(ИспользуютсяТолькоПартнеры, Название, НаименованиеКонтрагента());
ОбъектКонтрагент.ЮрФизЛицо = ПартнерыИКонтрагентыЛокализацияКлиентСервер.ТипЮрФизЛицаКонтрагента(ЭтоКомпания, ВидКомпании);
ОбъектКонтрагент.Партнер = ПартнерВыбор;
ОбъектКонтрагент.СтранаРегистрации = СтранаРегистрации;
ОбъектКонтрагент.НаименованиеПолное = ?(ЭтоКомпания = 0,ПолноеЮридическоеНаименование,ФИО_ОднойСтрокой(ФамилияПартнера, ИмяПартнера, ОтчествоПартнера));
ОбъектКонтрагент.РегистрационныйНомер = ?(ОбъектКонтрагент.ЮрФизЛицо = Перечисления.ЮрФизЛицо.ЮрЛицоНеРезидент, РегистрационныйНомер, "");
ОбъектКонтрагент.НалоговыйНомер = ?(ОбъектКонтрагент.ЮрФизЛицо = Перечисления.ЮрФизЛицо.ЮрЛицоНеРезидент, НалоговыйНомер, "");
ОбъектКонтрагент.ИНН = ИНН;
ОбъектКонтрагент.ИсторияНаименований.Загрузить(ИсторияНаименований.Выгрузить());
ПартнерыИКонтрагентыЛокализация.ДополнитьДанныеКонтрагентаПриЗаписи(ОбъектКонтрагент, ЭтотОбъект);
Если НЕ ПустаяСтрока(ФактическийАдрес) Тогда
НоваяСтрокаКИ = ОбъектКонтрагент.КонтактнаяИнформация.Добавить();
НоваяСтрокаКИ.Тип = Перечисления.ТипыКонтактнойИнформации.Адрес;
НоваяСтрокаКИ.Вид = Справочники.ВидыКонтактнойИнформации.ФактАдресКонтрагента;
НоваяСтрокаКИ.Представление = ФактическийАдрес;
НоваяСтрокаКИ.ЗначенияПолей = ФактическийАдресЗначенияПолей;
НоваяСтрокаКИ.Значение = ЗначениеКонтактнойИнформацииJSONСервер("ФактическийАдресЗначенияПолей");
Если ЭтоКомпания = 1
И ЮрАдресКонтрагентаОбязателен Тогда
НоваяСтрокаКИ = ОбъектКонтрагент.КонтактнаяИнформация.Добавить();
НоваяСтрокаКИ.Тип = Перечисления.ТипыКонтактнойИнформации.Адрес;
НоваяСтрокаКИ.Вид = Справочники.ВидыКонтактнойИнформации.ЮрАдресКонтрагента;
НоваяСтрокаКИ.Представление = ФактическийАдрес;
НоваяСтрокаКИ.ЗначенияПолей = ФактическийАдресЗначенияПолей;
НоваяСтрокаКИ.Значение = ЗначениеКонтактнойИнформацииJSONСервер("ФактическийАдресЗначенияПолей");
КонецЕсли;
КонецЕсли;
Если ИсторияКонтактнойИнформации.Количество() > 0 Тогда
ПартнерыИКонтрагенты.ВключитьХранениеИсторииИзменений("ЮрАдресКонтрагента");
ИсторияКонтактнойИнформации[0].Дата = Неопределено;
УправлениеКонтактнойИнформацией.УстановитьКонтактнуюИнформациюОбъекта(ОбъектКонтрагент, ИсторияКонтактнойИнформации);
ИначеЕсли НЕ ПустаяСтрока(ЮридическийАдрес) Тогда
НоваяСтрокаКИ = ОбъектКонтрагент.КонтактнаяИнформация.Добавить();
НоваяСтрокаКИ.Тип = Перечисления.ТипыКонтактнойИнформации.Адрес;
НоваяСтрокаКИ.Вид = Справочники.ВидыКонтактнойИнформации.ЮрАдресКонтрагента;
НоваяСтрокаКИ.Представление = ЮридическийАдрес;
НоваяСтрокаКИ.ЗначенияПолей = ЮридическийАдресЗначенияПолей;
НоваяСтрокаКИ.Значение = ЗначениеКонтактнойИнформацииJSONСервер("ЮридическийАдресЗначенияПолей");
КонецЕсли;
Если ЭтоКомпания = 0 И НЕ ПустаяСтрока(ТелефонПартнера) Тогда
Если ИспользуютсяТолькоПартнеры Тогда
НоваяСтрокаКИ = ОбъектКонтрагент.КонтактнаяИнформация.Добавить();
НоваяСтрокаКИ.Тип = Перечисления.ТипыКонтактнойИнформации.Телефон;
НоваяСтрокаКИ.Вид = Справочники.ВидыКонтактнойИнформации.ТелефонКонтрагента;
НоваяСтрокаКИ.Представление = ТелефонПартнера;
НоваяСтрокаКИ.ЗначенияПолей = ТелефонПартнераЗначенияПолей;
НоваяСтрокаКИ.Значение = ЗначениеКонтактнойИнформацииJSONСервер("ТелефонПартнераЗначенияПолей");
КонецЕсли;
КонецЕсли;
Если ЭтоКомпания = 1 И НЕ ПустаяСтрока(ТелефонПартнераФизЛицо) Тогда
НоваяСтрокаКИ = ОбъектКонтрагент.КонтактнаяИнформация.Добавить();
НоваяСтрокаКИ.Тип = Перечисления.ТипыКонтактнойИнформации.Телефон;
НоваяСтрокаКИ.Вид = Справочники.ВидыКонтактнойИнформации.ТелефонКонтрагента;
НоваяСтрокаКИ.Представление = ТелефонПартнераФизЛицо;
НоваяСтрокаКИ.ЗначенияПолей = ТелефонПартнераФизЛицоЗначенияПолей;
НоваяСтрокаКИ.Значение = ЗначениеКонтактнойИнформацииJSONСервер("ТелефонПартнераФизЛицоЗначенияПолей");
КонецЕсли;
Если ЭтоКомпания = 0 И ВидКомпании = 3 Тогда
ОбъектКонтрагент.ОбособленноеПодразделение = Истина;
Если ИспользуютсяТолькоПартнеры Или ВыбратьГоловногоКонтрагента = 0 Тогда
ОбъектКонтрагент.ГоловнойКонтрагент = ГоловнойКонтрагент;
ИначеЕсли ВыбратьГоловногоКонтрагента = 1 Тогда
ОбъектГоловнойКонтрагент = Справочники.Контрагенты.СоздатьЭлемент();
ОбъектГоловнойКонтрагент.Наименование = НаименованиеГоловнойКонтрагент;
ОбъектГоловнойКонтрагент.НаименованиеПолное = ПолноеНаименованиеГоловногоКонтрагента;
ОбъектГоловнойКонтрагент.ЮрФизЛицо = Перечисления.ЮрФизЛицо.ЮрЛицо;
ОбъектГоловнойКонтрагент.ИНН = ИНН;
ПартнерыИКонтрагентыЛокализация.ДополнитьДанныеГоловногоКонтрагентаПриЗаписи(ОбъектГоловнойКонтрагент, ЭтотОбъект);
ОбъектГоловнойКонтрагент.Партнер = ?(ЗначениеЗаполнено(ПартнерГоловногоКонтрагента),
ПартнерГоловногоКонтрагента, ПартнерВыбор);
Если НЕ ПустаяСтрока(ФактическийАдресГоловногоКонтрагента) Тогда
НоваяСтрокаКИ = ОбъектГоловнойКонтрагент.КонтактнаяИнформация.Добавить();
НоваяСтрокаКИ.Тип = Перечисления.ТипыКонтактнойИнформации.Адрес;
НоваяСтрокаКИ.Вид = Справочники.ВидыКонтактнойИнформации.ФактАдресКонтрагента;
НоваяСтрокаКИ.Представление = ФактическийАдресГоловногоКонтрагента;
НоваяСтрокаКИ.ЗначенияПолей = ФактическийАдресГоловногоКонтрагентаЗначенияПолей;
НоваяСтрокаКИ.Значение = ЗначениеКонтактнойИнформацииJSONСервер("ФактическийАдресГоловногоКонтрагентаЗначенияПолей");
КонецЕсли;
Если НЕ ПустаяСтрока(ЮридическийАдресГоловногоКонтрагента) Тогда
НоваяСтрокаКИ = ОбъектГоловнойКонтрагент.КонтактнаяИнформация.Добавить();
НоваяСтрокаКИ.Тип = Перечисления.ТипыКонтактнойИнформации.Адрес;
НоваяСтрокаКИ.Вид = Справочники.ВидыКонтактнойИнформации.ЮрАдресКонтрагента;
НоваяСтрокаКИ.Представление = ЮридическийАдресГоловногоКонтрагента;
НоваяСтрокаКИ.ЗначенияПолей = ЮридическийАдресГоловногоКонтрагентаЗначенияПолей;
НоваяСтрокаКИ.Значение = ЗначениеКонтактнойИнформацииJSONСервер("ЮридическийАдресГоловногоКонтрагентаЗначенияПолей");
КонецЕсли;
ОбъектГоловнойКонтрагент.Записать();
СписокСозданных.Добавить(ПолучитьНавигационнуюСсылку(ОбъектГоловнойКонтрагент.Ссылка), ОбъектГоловнойКонтрагент.Наименование);
ОбъектКонтрагент.ГоловнойКонтрагент = ОбъектГоловнойКонтрагент.Ссылка;
Если УказатьБанковскийСчетГоловногоКонтрагента Тогда
Валютный = (ВалютаДенежныхСредствГоловнойКонтрагент <> ВалютаРеглУчета);
БанковскийСчет = Справочники.БанковскиеСчетаКонтрагентов.СоздатьЭлемент();
БанковскийСчет.Владелец = ОбъектГоловнойКонтрагент.Ссылка;
БанковскийСчет.Наименование = АвтоНаименованиеБанковскогоСчета(
НомерСчетаГоловнойКонтрагент, БанкГоловнойКонтрагент, ВалютаДенежныхСредствГоловнойКонтрагент);
БанковскийСчет.ВалютаДенежныхСредств = ВалютаДенежныхСредствГоловнойКонтрагент;
БанковскийСчет.НомерСчета = НомерСчетаГоловнойКонтрагент;
БанковскийСчет.Банк = БанкГоловнойКонтрагент;
БанковскийСчет.БанкДляРасчетов = БанкДляРасчетовГоловнойКонтрагент;
БанковскийСчет.СчетВБанкеДляРасчетов = СчетВБанкеДляРасчетовГоловнойКонтрагент;
БанковскийСчет.ИностранныйБанк = ИностранныйБанкГоловнойКонтрагент;
БанковскийСчет.РучноеИзменениеРеквизитовБанка = СпособУказанияБанкаГоловнойКонтрагент = "РучноеЗаполнениеРеквизитов";
БанковскийСчет.РучноеИзменениеРеквизитовБанкаДляРасчетов =
(СпособУказанияБанкаДляРасчетовГоловнойКонтрагент = "РучноеЗаполнениеРеквизитов" И ИспользуетсяБанкДляРасчетовГоловнойКонтрагент);
БанковскийСчет.БИКБанка = БИКБанкаГоловнойКонтрагент;
БанковскийСчет.КоррСчетБанка = КоррСчетБанкаГоловнойКонтрагент;
БанковскийСчет.БИКБанкаДляРасчетов = БИКБанкаДляРасчетовГоловнойКонтрагент;
БанковскийСчет.НаименованиеБанка = НаименованиеБанкаГоловнойКонтрагент;
БанковскийСчет.НаименованиеБанкаДляРасчетов = НаименованиеБанкаДляРасчетовГоловнойКонтрагент;
БанковскийСчет.АдресБанка = АдресБанкаГоловнойКонтрагент;
БанковскийСчет.АдресБанкаДляРасчетов = АдресБанкаДляРасчетовГоловнойКонтрагент;
БанковскийСчет.СВИФТБанка = СВИФТБанкаГоловнойКонтрагент;
БанковскийСчет.СВИФТБанкаДляРасчетов = СВИФТБанкаДляРасчетовГоловнойКонтрагент;
БанковскийСчет.КоррСчетБанкаДляРасчетов = КоррСчетБанкаДляРасчетовГоловнойКонтрагент;
БанковскийСчет.НаименованиеБанкаМеждународное = НаименованиеБанкаМеждународноеГоловнойКонтрагент;
БанковскийСчет.ГородБанкаМеждународный = ГородБанкаМеждународныйГоловнойКонтрагент;
БанковскийСчет.АдресБанкаМеждународный = АдресБанкаМеждународныйГоловнойКонтрагент;
БанковскийСчет.СВИФТБанкаДляРасчетов = СВИФТБанкаДляРасчетовГоловнойКонтрагент;
БанковскийСчет.ЭтоIBAN = ЭтоIBANГоловнойКонтрагент;
БанковскийСчет.НаименованиеБанкаДляРасчетовМеждународное = НаименованиеБанкаДляРасчетовМеждународноеГоловнойКонтрагент;
БанковскийСчет.СтранаБанкаДляРасчетов = СтранаБанкаДляРасчетовГоловнойКонтрагент;
БанковскийСчет.ГородБанкаДляРасчетов = ГородБанкаДляРасчетовГоловнойКонтрагент;
БанковскийСчет.СВИФТБанкаДляРасчетов = СВИФТБанкаДляРасчетовГоловнойКонтрагент;
БанковскийСчет.ГородБанкаДляРасчетовМеждународный = ГородБанкаДляРасчетовМеждународныйГоловнойКонтрагент;
БанковскийСчет.АдресБанкаДляРасчетовМеждународный = АдресБанкаДляРасчетовМеждународныйГоловнойКонтрагент;
БанковскийСчет.Записать();
СписокСозданных.Добавить(ПолучитьНавигационнуюСсылку(БанковскийСчет.Ссылка), БанковскийСчет.Наименование);
КонецЕсли;
КонецЕсли;
КонецЕсли;
ОбъектКонтрагент.Записать();
КонтрагентВыбор = ОбъектКонтрагент.Ссылка;
СписокСозданных.Добавить(ПолучитьНавигационнуюСсылку(КонтрагентВыбор), ОбъектКонтрагент.Наименование);
Если УказатьБанковскийСчетКонтрагента Тогда
Валютный = (ВалютаДенежныхСредств <> ВалютаРеглУчета);
БанковскийСчет = Справочники.БанковскиеСчетаКонтрагентов.СоздатьЭлемент();
БанковскийСчет.Владелец = КонтрагентВыбор;
БанковскийСчет.Наименование = АвтоНаименованиеБанковскогоСчета(НомерСчета, Банк, ВалютаДенежныхСредств);
БанковскийСчет.ВалютаДенежныхСредств = ВалютаДенежныхСредств;
БанковскийСчет.НомерСчета = НомерСчета;
БанковскийСчет.Банк = Банк;
БанковскийСчет.БанкДляРасчетов = БанкДляРасчетов;
БанковскийСчет.СчетВБанкеДляРасчетов = СчетВБанкеДляРасчетов;
БанковскийСчет.ИностранныйБанк = ИностранныйБанк;
БанковскийСчет.РучноеИзменениеРеквизитовБанка = СпособУказанияБанка = "РучноеЗаполнениеРеквизитов";
БанковскийСчет.РучноеИзменениеРеквизитовБанкаДляРасчетов =
(СпособУказанияБанкаДляРасчетов = "РучноеЗаполнениеРеквизитов" И ИспользуетсяБанкДляРасчетов);
БанковскийСчет.БИКБанка = БИКБанка;
БанковскийСчет.КоррСчетБанка = КоррСчетБанка;
БанковскийСчет.БИКБанкаДляРасчетов = БИКБанкаДляРасчетов;
БанковскийСчет.НаименованиеБанка = НаименованиеБанка;
БанковскийСчет.СтранаБанка = СтранаБанка;
БанковскийСчет.ГородБанка = ГородБанка;
БанковскийСчет.НаименованиеБанкаДляРасчетов = НаименованиеБанкаДляРасчетов;
БанковскийСчет.АдресБанка = АдресБанка;
БанковскийСчет.АдресБанкаДляРасчетов = АдресБанкаДляРасчетов;
БанковскийСчет.СВИФТБанка = СВИФТБанка;
БанковскийСчет.НаименованиеБанкаМеждународное = НаименованиеБанкаМеждународное;
БанковскийСчет.ГородБанкаМеждународный = ГородБанкаМеждународный;
БанковскийСчет.АдресБанкаМеждународный = АдресБанкаМеждународный;
БанковскийСчет.СВИФТБанкаДляРасчетов = СВИФТБанкаДляРасчетов;
БанковскийСчет.КоррСчетБанкаДляРасчетов = КоррСчетБанкаДляРасчетов;
БанковскийСчет.ЭтоIBAN = ЭтоIBAN;
БанковскийСчет.НаименованиеБанкаДляРасчетовМеждународное = НаименованиеБанкаДляРасчетовМеждународное;
БанковскийСчет.СтранаБанкаДляРасчетов = СтранаБанкаДляРасчетов;
БанковскийСчет.ГородБанкаДляРасчетов = ГородБанкаДляРасчетов;
БанковскийСчет.СВИФТБанкаДляРасчетов = СВИФТБанкаДляРасчетов;
БанковскийСчет.ГородБанкаДляРасчетовМеждународный = ГородБанкаДляРасчетовМеждународный;
БанковскийСчет.АдресБанкаДляРасчетовМеждународный = АдресБанкаДляРасчетовМеждународный;
БанковскийСчет.Записать();
СписокСозданных.Добавить(ПолучитьНавигационнуюСсылку(БанковскийСчет.Ссылка), БанковскийСчет.Наименование);
КонецЕсли;
Если ЭтоКомпания = 1 И УказыватьЮридическиеРеквизиты И УказатьДокументУдостоверяющийЛичность Тогда
МенеджерЗаписи = РегистрыСведений.ДокументыФизическихЛиц.СоздатьМенеджерЗаписи();
МенеджерЗаписи.Активность = Истина;
МенеджерЗаписи.Период = ТекущаяДатаСеанса();
МенеджерЗаписи.Физлицо = КонтрагентВыбор;
МенеджерЗаписи.ВидДокумента = ВидДокумента;
МенеджерЗаписи.Серия = СерияДокумента;
МенеджерЗаписи.Номер = НомерДокумента;
МенеджерЗаписи.ДатаВыдачи = ДатаВыдачи;
МенеджерЗаписи.СрокДействия = СрокДействия;
МенеджерЗаписи.КемВыдан = КемВыданДокумент;
МенеджерЗаписи.КодПодразделения = КодПодразделения;
МенеджерЗаписи.ЯвляетсяДокументомУдостоверяющимЛичность = Истина;
МенеджерЗаписи.Записать();
КонецЕсли;
ПартнерыИКонтрагентыЛокализация.ПривязатьОбособленныеПодразделения(ЭтотОбъект);
КонецЕсли;
Если НаОснованииКонтрагента И ЗначениеЗаполнено(КонтрагентОснование) Тогда
ВыполнитьЗаписьКонтрагентаОснование(ПартнерВыбор, КонтрагентОснование);
КонецЕсли;
СозданиеВыполнено = Истина;
СегментыСервер.ПроверитьВхождениеПартнераВСегментыПриСоздании(ПартнерВыбор);
КонецПроцедуры
&НаКлиенте
Процедура ВыборПользователяПоРезультатамНайдено(Знач Оповещение1)
ПартнерВыбор = Неопределено;
ТекущиеДанные = Элементы.ТаблицаНайдено.ТекущиеДанные;
Если ТекущиеДанные = Неопределено Тогда
ВыполнитьОбработкуОповещения(Оповещение1, Истина);
Возврат;
КонецЕсли;
Если ДействиеПоРезультатамНайдено = 0 Тогда
ПартнерВыбор = ТекущиеДанные.Партнер;
Если ИспользуютсяТолькоПартнеры Или ДействиеСКонтрагентом = 0 Тогда
ОткрытьПослеСоздания = Ложь;
РеквизитыПартнера = Новый Структура;
РеквизитыПартнера.Вставить("ОсновнойМенеджер", ТекущиеДанные.ОсновнойМенеджер);
РеквизитыПартнера.Вставить("Наименование", ТекущиеДанные.Представление);
Если ТекущиеДанные.Различие Тогда
ДополнительныеПараметры = Новый Структура;
ДополнительныеПараметры.Вставить("РеквизитыПартнера", РеквизитыПартнера);
ДополнительныеПараметры.Вставить("СозданыНовыеОбъекты", Ложь);
Оповещение = Новый ОписаниеОповещения("ВопросПродолжениеВыбораПартнераЗавершение", ЭтотОбъект, ДополнительныеПараметры);
Если ИспользуютсяТолькоПартнеры Тогда
ТекстВопроса = НСтр("ru = 'Выбранный контрагент имеет существенное различие с введенными данными. Продолжить?'");
Иначе
ТекстВопроса = НСтр("ru = 'Выбранный партнер имеет существенное различие с введенными данными. Продолжить?'");
КонецЕсли;
ПоказатьВопрос(Оповещение, ТекстВопроса, РежимДиалогаВопрос.ДаНет, , КодВозвратаДиалога.Да);
Иначе
ВыполнитьДействияЗакрытияФормы(Новый ОписаниеОповещения("ВыборПользователяПоРезультатамНайденоЗавершение", ЭтотОбъект, Новый Структура("Оповещение1, ТекущиеДанные", Оповещение1, ТекущиеДанные)), РеквизитыПартнера, Ложь);
Возврат;
КонецЕсли;
ВыборПользователяПоРезультатамНайденоФрагмент(Оповещение1);
Возврат;
КонецЕсли;
ИначеЕсли ДействиеПоРезультатамНайдено = 1 Тогда
Родитель = ТекущиеДанные.Партнер;
КонецЕсли;
ВыполнитьОбработкуОповещения(Оповещение1, Ложь);
Возврат;
КонецПроцедуры
&НаКлиенте
Процедура ВыборПользователяПоРезультатамНайденоЗавершение(Результат, ДополнительныеПараметры) Экспорт
Оповещение1 = ДополнительныеПараметры.Оповещение1;
ТекущиеДанные = ДополнительныеПараметры.ТекущиеДанные;
ВыборПользователяПоРезультатамНайденоФрагмент(Оповещение1);
КонецПроцедуры
&НаКлиенте
Процедура ВыборПользователяПоРезультатамНайденоФрагмент(Знач Оповещение1)
ВыполнитьОбработкуОповещения(Оповещение1, Истина);
КонецПроцедуры
&НаКлиенте
Процедура ВыполнитьДействияЗакрытияФормы(Знач Оповещение, РеквизитыПартнера, СозданыНовыеОбъекты)
Если НаОснованииКонтрагента И ЗначениеЗаполнено(КонтрагентОснование) Тогда
Если Не СозданыНовыеОбъекты Тогда
ВыполнитьЗаписьКонтрагентаОснование(ПартнерВыбор, КонтрагентОснование);
КонецЕсли;
ОповеститьОбИзменении(КонтрагентОснование);
ИначеЕсли ОбъектОснование = Неопределено Тогда
Оповестить("ВыборПартнераНайдено",
Новый Структура("Партнер,ОсновнойМенеджер,Перевозчик", ПартнерВыбор, РеквизитыПартнера.ОсновнойМенеджер, Перевозчик));
Иначе
ВзаимодействияКлиент.КонтактПослеЗаписи(
ЭтотОбъект,
Новый Структура("Ссылка, Наименование", ПартнерВыбор, РеквизитыПартнера.Наименование),
Новый Структура,"Партнеры");
КонецЕсли;
Если ДляВыбора Тогда
Если ВернутьСсылкуНаКонтрагента Тогда
КонтрагентВыбор = ПолучитьКонтрагентаПартнераПоУмолчанию(ПартнерВыбор);
ОповеститьОВыборе(КонтрагентВыбор);
Иначе
ОповеститьОВыборе(ПартнерВыбор);
КонецЕсли;
ИначеЕсли НаОснованииОбособленногоКонтрагента Тогда
Если Не ЗначениеЗаполнено(КонтрагентВыбор) Тогда
КонтрагентВыбор = ПолучитьКонтрагентаПартнераПоУмолчанию(ПартнерВыбор);
КонецЕсли;
Закрыть(КонтрагентВыбор);
Иначе
Закрыть(ПартнерВыбор);
КонецЕсли;
Если ОткрытьПослеСоздания Тогда
Если Не СозданыНовыеОбъекты Или ДействиеПоРезультатамНайдено <> 0 Тогда
ПоказатьЗначение(Неопределено, ПартнерВыбор);
Возврат;
Иначе
ПоказатьЗначение(Неопределено, КонтрагентВыбор);
Возврат;
КонецЕсли;
КонецЕсли;
ВыполнитьДействияЗакрытияФормыФрагмент(Оповещение);
КонецПроцедуры
&НаКлиенте
Процедура ВыполнитьДействияЗакрытияФормыЗавершение(ДополнительныеПараметры) Экспорт
Оповещение = ДополнительныеПараметры.Оповещение;
ВыполнитьДействияЗакрытияФормыФрагмент(Оповещение);
КонецПроцедуры
&НаКлиенте
Процедура ВыполнитьДействияЗакрытияФормыФрагмент(Знач Оповещение)
ВыполнитьОбработкуОповещения(Оповещение);
КонецПроцедуры
&НаСервереБезКонтекста
Процедура ВыполнитьЗаписьКонтрагентаОснование(Партнер, Контрагент)
КонтрагентОбъект = Контрагент.ПолучитьОбъект();
КонтрагентОбъект.Партнер = Партнер;
КонтрагентОбъект.Записать();
КонецПроцедуры
&НаСервере
Процедура ЗаполнитьНаОснованииКонтрагента(ДанныеКонтрагента, Отказ)
НаОснованииКонтрагента = Истина;
Элементы.ЭтоКомпания.Доступность = Ложь;
Элементы.ДекорацияПервичнаяИнформацияЗагрузить.Видимость = Ложь;
Элементы.СтраницыУказыватьЮрРеквизитыКонтрагентОснование.ТекущаяСтраница = Элементы.СтраницаНаОснованииКонтрагента;
Элементы.СтраницыУказыватьСоздаватьКонтрагентаОснование.ТекущаяСтраница = Элементы.СтраницаНаОснованииКонтрагентаЧастноеЛицо;
Элементы.ГруппаЮридическиеДанные.ТолькоПросмотр = Истина;
Элементы.ГруппаЮридическиеДанные.Доступность = Истина;
Элементы.ГруппаНалоговыйНомерЧастногоЛица.ТолькоПросмотр = Истина;
Элементы.ГруппаДокументФизическогоЛица.ТолькоПросмотр = Истина;
Элементы.ГруппаДокументФизическогоЛица.Доступность = Истина;
ДанныеКонтрагента = Параметры.КонтрагентОснование;
Если ДанныеКонтрагента.Свойство("Ссылка") Тогда
КонтрагентОснование = ДанныеКонтрагента["Ссылка"];
ПартнерыИКонтрагентыЛокализация.ЗаполнитьДанныеКонтрагентаПоСсылке(ДанныеКонтрагента, Отказ);
Если Отказ Тогда
Возврат;
КонецЕсли;
КонецЕсли;
ДанныеКонтрагента.Вставить("ПолноеНаименование",ДанныеКонтрагента.ПолноеЮридическоеНаименование);
Если ДанныеКонтрагента.Свойство("ФактАдресКонтрагента") Тогда
ФактическийАдрес = ДанныеКонтрагента.ФактАдресКонтрагента.Представление;
ФактическийАдресЗначенияПолей = ДанныеКонтрагента.ФактАдресКонтрагента.ЗначенияПолей;
КонецЕсли;
Если ДанныеКонтрагента.ЮрФизЛицо = Перечисления.ЮрФизЛицо.ФизЛицо Тогда
ЭтоКомпания = 1;
ЗаполнитьЗначенияСвойств(ЭтотОбъект,ДанныеКонтрагента);
ФИО = СтроковыеФункцииКлиентСервер.РазложитьСтрокуВМассивПодстрок(СокрЛП(ДанныеКонтрагента.Название)," ");
КоличествоПодстрок = ФИО.Количество();
ФамилияПартнера = ?(КоличествоПодстрок > 0,ФИО[0],"");
ИмяПартнера = ?(КоличествоПодстрок > 1,ФИО[1],"");
ОтчествоПартнера = ?(КоличествоПодстрок > 2,ФИО[2],"");
Если ДанныеКонтрагента.Свойство("ТелефонКонтрагента") Тогда
ТелефонПартнераФизЛицо = ДанныеКонтрагента.ТелефонКонтрагента.Представление;
ТелефонПартнераФизЛицоЗначенияПолей = ДанныеКонтрагента.ТелефонКонтрагента.ЗначенияПолей;
КонецЕсли;
Если ДанныеКонтрагента.Свойство("EmailКонтрагента") Тогда
АдресЭППартнераФизЛицо = ДанныеКонтрагента.EmailКонтрагента.Представление;
КонецЕсли;
ИначеЕсли ДанныеКонтрагента.ЮрФизЛицо = Перечисления.ЮрФизЛицо.ИндивидуальныйПредприниматель Тогда
ЭтоКомпания = 0;
ВидКомпании = 2;
ЗаполнитьЗначенияСвойств(ЭтотОбъект,ДанныеКонтрагента);
Если ДанныеКонтрагента.Свойство("ТелефонКонтрагента") Тогда
ТелефонПартнера = ДанныеКонтрагента.ТелефонКонтрагента.Представление;
ТелефонПартнераЗначенияПолей = ДанныеКонтрагента.ТелефонКонтрагента.ЗначенияПолей;
КонецЕсли;
Если ДанныеКонтрагента.Свойство("EmailКонтрагента") Тогда
АдресЭППартнера = ДанныеКонтрагента.EmailКонтрагента.Представление;
КонецЕсли;
ИначеЕсли ДанныеКонтрагента.ЮрФизЛицо = Перечисления.ЮрФизЛицо.ЮрЛицоНеРезидент Тогда
ЭтоКомпания = 0;
ВидКомпании = 1;
ЗаполнитьЗначенияСвойств(ЭтотОбъект,ДанныеКонтрагента);
НаименованиеКонтрагента = Название;
Если ДанныеКонтрагента.Свойство("ЮрАдресКонтрагента") Тогда
ЮридическийАдрес = ДанныеКонтрагента.ЮрАдресКонтрагента.Представление;
ЮридическийАдресЗначенияПолей = ДанныеКонтрагента.ЮрАдресКонтрагента.ЗначенияПолей;
КонецЕсли;
Если ДанныеКонтрагента.Свойство("ТелефонКонтрагента") Тогда
ТелефонПартнера = ДанныеКонтрагента.ТелефонКонтрагента.Представление;
ТелефонПартнераЗначенияПолей = ДанныеКонтрагента.ТелефонКонтрагента.ЗначенияПолей;
КонецЕсли;
Если ДанныеКонтрагента.Свойство("EmailКонтрагента") Тогда
АдресЭППартнера = ДанныеКонтрагента.EmailКонтрагента.Представление;
КонецЕсли;
Иначе
ЭтоКомпания = 0;
ВидКомпании = ?(ДанныеКонтрагента.ОбособленноеПодразделение, 3, 0);
ЗаполнитьЗначенияСвойств(ЭтотОбъект,ДанныеКонтрагента);
НаименованиеКонтрагента = Название;
Если ДанныеКонтрагента.Свойство("ЮрАдресКонтрагента") Тогда
ЮридическийАдрес = ДанныеКонтрагента.ЮрАдресКонтрагента.Представление;
ЮридическийАдресЗначенияПолей = ДанныеКонтрагента.ЮрАдресКонтрагента.ЗначенияПолей;
КонецЕсли;
Если ДанныеКонтрагента.Свойство("ТелефонКонтрагента") Тогда
ТелефонПартнера = ДанныеКонтрагента.ТелефонКонтрагента.Представление;
ТелефонПартнераЗначенияПолей = ДанныеКонтрагента.ТелефонКонтрагента.ЗначенияПолей;
КонецЕсли;
Если ДанныеКонтрагента.Свойство("EmailКонтрагента") Тогда
АдресЭППартнера = ДанныеКонтрагента.EmailКонтрагента.Представление;
КонецЕсли;
КонецЕсли;
ПартнерыИКонтрагентыЛокализация.ЗаполнитьНаОснованииКонтрагента(ДанныеКонтрагента, ЭтотОбъект);
КонецПроцедуры
&НаСервереБезКонтекста
Функция ЗначенияПолейВСписокЗначений(РеквизитЗначенияПолей)
Если ПустаяСтрока(РеквизитЗначенияПолей) Тогда
Возврат Новый СписокЗначений;
КонецЕсли;
НомерТелефона = УправлениеКонтактнойИнформацией.НомерТелефонаКонтактнойИнформации(РеквизитЗначенияПолей);
Результат = Новый СписокЗначений;
Результат.Добавить("", "КодСтраны");
Результат.Добавить("", "КодГорода");
Результат.Добавить(НомерТелефона, "НомерТелефона");
Результат.Добавить("", "Добавочный");
Возврат Результат;
КонецФункции
&НаСервере
Процедура УстановитьЗаголовки()
ПартнерыИКонтрагенты.ЗаголовокРеквизитаВЗависимостиОтФОИспользоватьПартнеровКакКонтрагентов(
ЭтотОбъект, "", НСтр("ru = 'Помощник регистрации нового контрагента'"), ИспользуютсяТолькоПартнеры);
ПартнерыИКонтрагенты.ЗаголовокРеквизитаВЗависимостиОтФОИспользоватьПартнеровКакКонтрагентов(
ЭтотОбъект, "ДекорацияПервичнаяИнформация",
НСтр("ru = 'Укажите доступную вам на данный момент информацию о контрагенте'"), ИспользуютсяТолькоПартнеры);
ПартнерыИКонтрагенты.ЗаголовокРеквизитаВЗависимостиОтФОИспользоватьПартнеровКакКонтрагентов(
ЭтотОбъект, "УказатьДанныеКонтактногоЛица",
НСтр("ru = 'Указать данные контактного лица (будет создано контактное лицо контрагента)'"), ИспользуютсяТолькоПартнеры);
ПартнерыИКонтрагенты.ЗаголовокРеквизитаВЗависимостиОтФОИспользоватьПартнеровКакКонтрагентов(
ЭтотОбъект, "ФактическийАдрес",
НСтр("ru = 'Фактический адрес контрагента'"), ИспользуютсяТолькоПартнеры);
ПартнерыИКонтрагенты.ЗаголовокРеквизитаВЗависимостиОтФОИспользоватьПартнеровКакКонтрагентов(
ЭтотОбъект, "ЮридическийАдрес",
НСтр("ru = 'Юридический адрес контрагента'"), ИспользуютсяТолькоПартнеры);
ПартнерыИКонтрагенты.ЗаголовокРеквизитаВЗависимостиОтФОИспользоватьПартнеровКакКонтрагентов(
ЭтотОбъект, "ДекорацияНайдено",
НСтр("ru = 'Найдены контрагенты с совпадающими данными, примите решение о дальнейших действиях.'"), ИспользуютсяТолькоПартнеры);
ПартнерыИКонтрагенты.ЗаголовокРеквизитаВЗависимостиОтФОИспользоватьПартнеровКакКонтрагентов(
ЭтотОбъект, "ТаблицаНайдено",
НСтр("ru = 'Найденные контрагенты'"), ИспользуютсяТолькоПартнеры);
ПартнерыИКонтрагенты.ЗаголовокРеквизитаВЗависимостиОтФОИспользоватьПартнеровКакКонтрагентов(
ЭтотОбъект, "ДеревоСравненияПартнеров",
НСтр("ru = 'Сравнение контрагентов'"), ИспользуютсяТолькоПартнеры);
ПартнерыИКонтрагенты.ЗаголовокРеквизитаВЗависимостиОтФОИспользоватьПартнеровКакКонтрагентов(
ЭтотОбъект, "ДеревоСравненияПартнеровЗначениеНайденного",
НСтр("ru = 'Найденный контрагент'"), ИспользуютсяТолькоПартнеры);
ПартнерыИКонтрагенты.ЗаголовокРеквизитаВЗависимостиОтФОИспользоватьПартнеровКакКонтрагентов(
ЭтотОбъект, "ДеревоСравненияПартнеровЗначениеТекущего",
НСтр("ru = 'Создаваемый контрагент'"), ИспользуютсяТолькоПартнеры);
КонецПроцедуры
&НаСервере
Процедура ОпределитьОбязательностьКонтактнойИнформации()
Запрос = Новый Запрос;
Запрос.Текст = "
|ВЫБРАТЬ
| ВидыКонтактнойИнформации.Ссылка КАК Вид,
| ВидыКонтактнойИнформации.ОбязательноеЗаполнение КАК ОбязательностьЗаполнения
|ИЗ
| Справочник.ВидыКонтактнойИнформации КАК ВидыКонтактнойИнформации
|ГДЕ
| ВидыКонтактнойИнформации.Ссылка В (ЗНАЧЕНИЕ(Справочник.ВидыКонтактнойИнформации.ТелефонПартнера), ЗНАЧЕНИЕ(Справочник.ВидыКонтактнойИнформации.EmailПартнера), ЗНАЧЕНИЕ(Справочник.ВидыКонтактнойИнформации.АдресПартнера))
|;
|
|
|ВЫБРАТЬ
| ВидыКонтактнойИнформации.Ссылка КАК Вид,
| ВидыКонтактнойИнформации.ОбязательноеЗаполнение КАК ОбязательностьЗаполнения
|ИЗ
| Справочник.ВидыКонтактнойИнформации КАК ВидыКонтактнойИнформации
|ГДЕ
| ВидыКонтактнойИнформации.Ссылка В (ЗНАЧЕНИЕ(Справочник.ВидыКонтактнойИнформации.МобильныйТелефонКонтактногоЛица), ЗНАЧЕНИЕ(Справочник.ВидыКонтактнойИнформации.ТелефонКонтактногоЛица), ЗНАЧЕНИЕ(Справочник.ВидыКонтактнойИнформации.EmailКонтактногоЛица))
|;
|
|
|ВЫБРАТЬ
| ВидыКонтактнойИнформации.Ссылка КАК Вид,
| ВидыКонтактнойИнформации.ОбязательноеЗаполнение КАК ОбязательностьЗаполнения
|ИЗ
| Справочник.ВидыКонтактнойИнформации КАК ВидыКонтактнойИнформации
|ГДЕ
| ВидыКонтактнойИнформации.Ссылка В (ЗНАЧЕНИЕ(Справочник.ВидыКонтактнойИнформации.ФактАдресКонтрагента), ЗНАЧЕНИЕ(Справочник.ВидыКонтактнойИнформации.ЮрАдресКонтрагента))";
УстановитьПривилегированныйРежим(Истина);
Результат = Запрос.ВыполнитьПакет();
РезультатПартнеры = Результат[0];
ВыборкаПартнеры = РезультатПартнеры.Выбрать();
Пока ВыборкаПартнеры.Следующий() Цикл
Если ВыборкаПартнеры.Вид = Справочники.ВидыКонтактнойИнформации.ТелефонПартнера Тогда
ТелефонПартнераОбязателен = ВыборкаПартнеры.ОбязательностьЗаполнения;
ИначеЕсли ВыборкаПартнеры.Вид = Справочники.ВидыКонтактнойИнформации.АдресПартнера Тогда
АдресПартнераОбязателен = ВыборкаПартнеры.ОбязательностьЗаполнения;
ИначеЕсли ВыборкаПартнеры.Вид = Справочники.ВидыКонтактнойИнформации.EmailПартнера Тогда
АдресЭППартнераОбязателен = ВыборкаПартнеры.ОбязательностьЗаполнения;
КонецЕсли;
КонецЦикла;
РезультатКонтактныеЛица = Результат[1];
ВыборкаКонтактныеЛица = РезультатКонтактныеЛица.Выбрать();
Пока ВыборкаКонтактныеЛица.Следующий() Цикл
Если ВыборкаКонтактныеЛица.Вид = Справочники.ВидыКонтактнойИнформации.МобильныйТелефонКонтактногоЛица Тогда
МобильныйТелефонКонтактногоЛицаОбязателен = ВыборкаКонтактныеЛица.ОбязательностьЗаполнения;
ИначеЕсли ВыборкаКонтактныеЛица.Вид = Справочники.ВидыКонтактнойИнформации.ТелефонКонтактногоЛица Тогда
ТелефонКонтактногоЛицаОбязателен = ВыборкаКонтактныеЛица.ОбязательностьЗаполнения;
ИначеЕсли ВыборкаКонтактныеЛица.Вид = Справочники.ВидыКонтактнойИнформации.EmailКонтактногоЛица Тогда
АдресЭПКонтактногоЛицаОбязателен = ВыборкаКонтактныеЛица.ОбязательностьЗаполнения;
КонецЕсли;
КонецЦикла;
РезультатКонтрагенты = Результат[2];
ВыборкаКонтрагенты = РезультатКонтрагенты.Выбрать();
Пока ВыборкаКонтрагенты.Следующий() Цикл
Если ВыборкаКонтрагенты.Вид = Справочники.ВидыКонтактнойИнформации.ФактАдресКонтрагента Тогда
ФактАдресКонтрагентаОбязателен = ВыборкаКонтрагенты.ОбязательностьЗаполнения;
ИначеЕсли ВыборкаКонтрагенты.Вид = Справочники.ВидыКонтактнойИнформации.ЮрАдресКонтрагента Тогда
ЮрАдресКонтрагентаОбязателен= ВыборкаКонтрагенты.ОбязательностьЗаполнения;
КонецЕсли;
КонецЦикла;
КонецПроцедуры
&НаСервереБезКонтекста
Функция ПолучитьКонтрагентаПартнераПоУмолчанию(Партнер)
Возврат ПартнерыИКонтрагенты.ПолучитьКонтрагентаПартнераПоУмолчанию(Партнер);
КонецФункции
&НаКлиенте
Функция НаименованиеПартнераДляЗаголовка()
Если ЭтоКомпания = 0 Тогда
НаименованиеПартнераДляЗаголовка = ПолноеНаименование;
Иначе
НаименованиеПартнераДляЗаголовка = ФИО_ОднойСтрокой(ФамилияПартнера, ИмяПартнера, ОтчествоПартнера);
КонецЕсли;
Возврат НаименованиеПартнераДляЗаголовка;
КонецФункции
&НаКлиентеНаСервереБезКонтекста
Функция ТребуетсяУказаниеАдресаЧастногоЛица(Форма)
Если Форма.УказыватьЮридическиеРеквизиты
И (Форма.ЮрАдресКонтрагентаОбязателен
И Не ЗначениеЗаполнено(Форма.ЮридическийАдрес))
И ЗначениеЗаполнено(Форма.ФактическийАдрес) Тогда
Форма.ЮридическийАдрес = Форма.ФактическийАдрес;
Форма.ЮридическийАдресЗначенияПолей = Форма.ФактическийАдресЗначенияПолей;
КонецЕсли;
Возврат Не ЗначениеЗаполнено(Форма.ФактическийАдрес)
И (Форма.ФактАдресКонтрагентаОбязателен
Или Форма.АдресПартнераОбязателен
Или (Форма.УказыватьЮридическиеРеквизиты
И Форма.ЮрАдресКонтрагентаОбязателен));
КонецФункции
&НаСервере
Процедура СоздатьПартнера(СписокСозданных, ТребуетсяПереходНаСтраницуСовпадений)
Отказ = Ложь;
ПартнерыИКонтрагентыЛокализация.ПередСозданиемПартнераВФормеПомощникаНового(ЭтотОбъект, ПартнерыИКонтрагенты.ЮрФизЛицоПоДаннымФормыПомощникаНового(ЭтотОбъект), Отказ);
Если Отказ Тогда
ВыполнитьПоискПоПервичнойИнформации();
ТребуетсяПереходНаСтраницуСовпадений = Истина;
Возврат;
КонецЕсли;
НачатьТранзакцию();
Попытка
ЗаписатьПартнераИСвязанныеДанные(СписокСозданных);
ЗафиксироватьТранзакцию();
Исключение
ОтменитьТранзакцию();
ЗаписьЖурналаРегистрации(НСтр("ru = 'Создание нового партнера.'", ОбщегоНазначения.КодОсновногоЯзыка()),
УровеньЖурналаРегистрации.Ошибка,,, ПодробноеПредставлениеОшибки(ИнформацияОбОшибке()));
ВызватьИсключение КраткоеПредставлениеОшибки(ИнформацияОбОшибке());
КонецПопытки;
КонецПроцедуры
#КонецОбласти
#Область ДополнительныеРеквизиты
&НаСервере
Процедура ОбновитьЭлементыДополнительныхРеквизитов()
УправлениеСвойствами.ОбновитьЭлементыДополнительныхРеквизитов(ЭтотОбъект, ПартнерОбъектДопРеквизиты);
КонецПроцедуры
&НаКлиенте
Процедура Подключаемый_ПриИзмененииДополнительногоРеквизита(Элемент)
УправлениеСвойствамиКлиент.ОбновитьЗависимостиДополнительныхРеквизитов(ЭтотОбъект, ПартнерОбъектДопРеквизиты);
КонецПроцедуры
#КонецОбласти
#Область Локализация
&НаКлиенте
Процедура Подключаемый_НомерСчетаПриИзмененииЛокализация(Элемент)
ПриИзмененииНомераСчетаЛокализация();
КонецПроцедуры
&НаКлиенте
Процедура Подключаемый_НомерСчетаГоловнойКонтрагентПриИзмененииЛокализация(Элемент)
ПриИзмененииНомераСчетаЛокализация(Истина);
КонецПроцедуры
&НаКлиенте
Процедура ПриИзмененииНомераСчетаЛокализация(ЭтоГоловнойКонтрагент=Ложь)
Постфикс = ?(ЭтоГоловнойКонтрагент, "ГоловнойКонтрагент", "");
Элементы["ГруппаОшибкаВНомереСчета" + Постфикс].Видимость = Ложь;
ЭтотОбъект["НомерСчета" + Постфикс] = ВРег(СтрЗаменить(
СтрЗаменить(СокрЛП(ЭтотОбъект["НомерСчета" + Постфикс]), " ", ""), ".", ""));
ЭтоФорматСчетаРФ =
ДенежныеСредстваКлиентСерверЛокализация.СтрокаСоответствуетФорматуБанковскогоСчетаРФ(ЭтотОбъект["НомерСчета" + Постфикс]);
Если (ЭтоФорматСчетаРФ
И Не ЗначениеЗаполнено(ЭтотОбъект["СтранаБанка" + Постфикс]))
ИЛИ ЭтотОбъект["СтранаБанка" + Постфикс] = ПредопределенноеЗначение("Справочник.СтраныМира.Россия") Тогда
ЭтотОбъект["СтранаБанка" + Постфикс] = ПредопределенноеЗначение("Справочник.СтраныМира.Россия");
ЭтотОбъект["ИностранныйБанк" + Постфикс] = Ложь;
ЭтотОбъект["ЭтоIBAN" + Постфикс] = Ложь;
ЗаполнитьОсновныеРеквизитыБанка(ЭтотОбъект, ЭтоГоловнойКонтрагент);
Если Не ЭтотОбъект["ИностранныйБанк" + Постфикс] И Не ПустаяСтрока(ЭтотОбъект["НомерСчета" + Постфикс]) Тогда
ВалютаСчета = ПолучитьВалютуПоНомеруСчета(ЭтотОбъект["НомерСчета" + Постфикс]);
Если ЗначениеЗаполнено(ВалютаСчета) Тогда
ЭтотОбъект["ВалютаДенежныхСредств" + Постфикс] = ВалютаСчета;
КонецЕсли;
КонецЕсли;
ДанныеСчета = ДенежныеСредстваКлиентСервер.НовыеДанныеБанковскогоСчета();
ДенежныеСредстваКлиентСервер.ЗаполнитьДанныеБанковскогоСчета(ДанныеСчета, ЭтотОбъект, Постфикс);
ДенежныеСредстваКлиентЛокализация.ПроверитьНомерСчета(ЭтотОбъект, Постфикс, ДанныеСчета);
УправлениеЭлементамиБанковскийСчет(ЭтотОбъект, ЭтоГоловнойКонтрагент);
ОтключитьОтметкуНезаполненного();
Иначе
НомерСчетаПриИзмененииКлиент(ЭтоГоловнойКонтрагент);
КонецЕсли;
КонецПроцедуры
#КонецОбласти
#КонецОбласти
#Область Инициализация
ВыполняетсяЗакрытие = Ложь;
#Если НаСервере Тогда
Если Не ПодключеныОбработчикиЛокализация И ПолучитьФункциональнуюОпцию("ПоддержкаПлатежейРФ") Тогда
ПодключеныОбработчикиЛокализация = Истина;
ПодключаемыеОбработчикиСобытийЭлементов = Новый Соответствие;
ПодключаемыеОбработчикиСобытийЭлементов.Вставить("НомерСчета", "ПриИзменении");
ПодключаемыеОбработчикиСобытийЭлементов.Вставить("НомерСчетаГоловнойКонтрагент", "ПриИзменении");
Для каждого Обработчик Из ПодключаемыеОбработчикиСобытийЭлементов Цикл
Элементы[Обработчик.Ключ].УстановитьДействие(
Обработчик.Значение, "Подключаемый_" + Обработчик.Ключ + Обработчик.Значение + "Локализация");
КонецЦикла;
КонецЕсли;
#КонецЕсли
#КонецОбласти