#Если Сервер Или ТолстыйКлиентОбычноеПриложение Или ВнешнееСоединение Тогда
#Область ПрограммныйИнтерфейс
Процедура ПриОпределенииНастроекВерсионированияОбъектов(Настройки) Экспорт
КонецПроцедуры
Процедура ДобавитьКомандыПечати(КомандыПечати) Экспорт
КонецПроцедуры
Процедура ДобавитьКомандыСозданияНаОсновании(КомандыСозданияНаОсновании, Параметры) Экспорт
Справочники.ДоговорыКонтрагентов.ДобавитьКомандуСоздатьНаОсновании(КомандыСозданияНаОсновании);
Справочники.ДоговорыМеждуОрганизациями.ДобавитьКомандуСоздатьНаОсновании(КомандыСозданияНаОсновании);
Справочники.КонтактныеЛицаПартнеров.ДобавитьКомандуСоздатьНаОсновании(КомандыСозданияНаОсновании);
Справочники.Претензии.ДобавитьКомандуСоздатьНаОсновании(КомандыСозданияНаОсновании);
Справочники.СделкиСКлиентами.ДобавитьКомандуСоздатьНаОсновании(КомандыСозданияНаОсновании);
ИспользоватьИндивидуальныеСоглашенияСКлиентами = ПолучитьФункциональнуюОпцию("ИспользоватьИндивидуальныеСоглашенияСКлиентами");
Если ИспользоватьИндивидуальныеСоглашенияСКлиентами Тогда
Справочники.СоглашенияСКлиентами.ДобавитьКомандуСоздатьНаОсновании(КомандыСозданияНаОсновании);
КонецЕсли;
Справочники.СоглашенияСПоставщиками.ДобавитьКомандуСоздатьНаОсновании(КомандыСозданияНаОсновании);
Команда = Документы.ЗаказКлиента.ДобавитьКомандуСоздатьНаОсновании(КомандыСозданияНаОсновании);
Если Команда <> Неопределено Тогда
Команда.РежимЗаписи = "";
КонецЕсли;
Команда = Документы.ЗаказПоставщику.ДобавитьКомандуСоздатьНаОсновании(КомандыСозданияНаОсновании);
Если Команда <> Неопределено Тогда
Команда.РежимЗаписи = "";
КонецЕсли;
Команда = Документы.ЗаявкаНаВозвратТоваровОтКлиента.ДобавитьКомандуСоздатьНаОсновании(КомандыСозданияНаОсновании);
Если Команда <> Неопределено Тогда
Команда.РежимЗаписи = "";
КонецЕсли;
Команда = Документы.ПоручениеЭкспедитору.ДобавитьКомандуСоздатьНаОсновании(КомандыСозданияНаОсновании);
Если Команда <> Неопределено Тогда
Команда.РежимЗаписи = "";
КонецЕсли;
Команда = Документы.РегистрацияЦенНоменклатурыПоставщика.ДобавитьКомандуСоздатьНаОсновании(КомандыСозданияНаОсновании);
Если Команда <> Неопределено Тогда
Команда.РежимЗаписи = "";
КонецЕсли;
БизнесПроцессы.Задание.ДобавитьКомандуСоздатьНаОсновании(КомандыСозданияНаОсновании);
ПартнерыИКонтрагентыЛокализация.ДобавитьКомандыСозданияНаОсновании(КомандыСозданияНаОсновании, Параметры);
КонецПроцедуры
Процедура ПриНастройкеНачальногоЗаполненияЭлементов(Настройки) Экспорт
Настройки.ПриНачальномЗаполненииЭлемента = Истина;
КонецПроцедуры
Процедура ПриНачальномЗаполненииЭлементов(КодыЯзыков, Элементы, ТабличныеЧасти) Экспорт
КодОсновногоЯзыка = ОбщегоНазначения.КодОсновногоЯзыка();
#Область НашеПредприятие
Элемент = Элементы.Добавить();
Элемент.Код = "00-00000001";
Элемент.ИмяПредопределенныхДанных = "НашеПредприятие";
Элемент.Наименование = НСтр("ru = 'Наше предприятие'", КодОсновногоЯзыка);
Элемент.НаименованиеПолное = НСтр("ru = 'Наше предприятие'", КодОсновногоЯзыка);
Элемент.ЮрФизЛицо = Перечисления.КомпанияЧастноеЛицо.Компания;
Элемент.ДатаРегистрации = Дата("19800101000000");
Если ПолучитьФункциональнуюОпцию("ИспользоватьПартнеровКакКонтрагентов") Тогда
СсылкаНашеПредприятие = Справочники.Партнеры.НашеПредприятие;
МассивПартнеров = ПартнерыИКонтрагенты.ПолучитьВсехКонтрагентовПартнера(СсылкаНашеПредприятие);
Если МассивПартнеров.Количество() = 0 Тогда
Контрагент = Справочники.Контрагенты.СоздатьЭлемент();
Контрагент.Наименование = Элемент.Наименование;
Контрагент.НаименованиеПолное = Элемент.НаименованиеПолное;
Контрагент.ЮрФизЛицо = Перечисления.ЮрФизЛицо.ЮрЛицо;
Контрагент.Партнер = СсылкаНашеПредприятие;
Контрагент.Записать();
КонецЕсли;
КонецЕсли;
#КонецОбласти
#Область НеизвестныйПартнер
Элемент = Элементы.Добавить();
Элемент.Код = "00-00000002";
Элемент.ИмяПредопределенныхДанных = "НеизвестныйПартнер";
Элемент.Наименование = НСтр("ru = 'Неизвестный партнер'", КодОсновногоЯзыка);
Элемент.НаименованиеПолное = НСтр("ru = 'Неизвестный партнер'", КодОсновногоЯзыка);
Элемент.ЮрФизЛицо = Перечисления.КомпанияЧастноеЛицо.Компания;
Элемент.ДатаРегистрации = Дата("19800101000000");
Элемент.Клиент = Истина;
Элемент.Поставщик = Истина;
Элемент.ПрочиеОтношения = Истина;
#КонецОбласти
#Область РозничныйПокупатель
Элемент = Элементы.Добавить();
Элемент.Код = "00-00000003";
Элемент.ИмяПредопределенныхДанных = "РозничныйПокупатель";
Элемент.Наименование = НСтр("ru = 'Розничный покупатель'", КодОсновногоЯзыка);
Элемент.НаименованиеПолное = НСтр("ru = 'Розничный покупатель'", КодОсновногоЯзыка);
Элемент.ЮрФизЛицо = Перечисления.КомпанияЧастноеЛицо.ЧастноеЛицо;
Элемент.ДатаРегистрации = Дата("19800101000000");
Элемент.Клиент = Истина;
#КонецОбласти
КонецПроцедуры
Процедура ПриНачальномЗаполненииЭлемента(Объект, Данные, ДополнительныеПараметры) Экспорт
КонецПроцедуры
Функция УстановитьИПЛ(Ссылка, ВидЦен) Экспорт
РезультатОперации = Ложь;
СправочникОбъект = Ссылка.получитьОбъект();
Если ЗначениеЗаполнено(СправочникОбъект.ИндивидуальныйВидЦены) Тогда
РезультатОперации = Ложь;
ШаблонТекстаСообщения = НСтр("ru = 'Не произведена установка индивидуального виды цен для партнера ""%ОбъектНаименование%"" по причине: %Причина%'");
ТекстСообщения = СтрЗаменить(ШаблонТекстаСообщения, "%ОбъектНаименование%", СправочникОбъект.Наименование);
ТекстСообщения = СтрЗаменить(ТекстСообщения, "%Причина%", "у партнера уже установлен индивидуальный вид цен!");
ВызватьИсключение ТекстСообщения;
Иначе
СправочникОбъект.ИндивидуальныйВидЦены = ВидЦен;
УстановитьПривилегированныйРежим(Истина);
СправочникОбъект.Записать();
УстановитьПривилегированныйРежим(Ложь);
РезультатОперации = Истина;
КонецЕсли;
Возврат РезультатОперации;
КонецФункции
Функция УдалитьИПЛ(Ссылка) Экспорт
РезультатОперации = Ложь;
СправочникОбъект = Ссылка.получитьОбъект();
СправочникОбъект.ИндивидуальныйВидЦены = Справочники.ВидыЦен.ПустаяСсылка();
УстановитьПривилегированныйРежим(Истина);
СправочникОбъект.Записать();
УстановитьПривилегированныйРежим(Ложь);
РезультатОперации = Истина;
Возврат РезультатОперации;
КонецФункции
#Область ДляВызоваИзДругихПодсистем
Процедура ПриЗаполненииОграниченияДоступа(Ограничение) Экспорт
Ограничение.Текст =
"РазрешитьЧтениеИзменение
|ГДЕ
| ЗначениеРазрешено(Ссылка)";
Ограничение.ТекстДляВнешнихПользователей =
"ПрисоединитьДополнительныеТаблицы
|ЭтотСписок КАК ЭтотСписок
|
|ЛЕВОЕ СОЕДИНЕНИЕ Справочник.ВнешниеПользователи КАК ВнешниеПользователиПартнеры
| ПО ВнешниеПользователиПартнеры.ОбъектАвторизации = ЭтотСписок.Ссылка
|
|ЛЕВОЕ СОЕДИНЕНИЕ Справочник.КонтактныеЛицаПартнеров КАК КонтактныеЛицаПартнеров
| ПО КонтактныеЛицаПартнеров.Владелец = ЭтотСписок.Ссылка
|
|ЛЕВОЕ СОЕДИНЕНИЕ Справочник.ВнешниеПользователи КАК ВнешниеПользователиКонтактныеЛица
| ПО ВнешниеПользователиКонтактныеЛица.ОбъектАвторизации = КонтактныеЛицаПартнеров.Ссылка
|;
|РазрешитьЧтениеИзменение
|ГДЕ
| ЗначениеРазрешено(ВнешниеПользователиПартнеры.Ссылка)
| ИЛИ ЗначениеРазрешено(ВнешниеПользователиКонтактныеЛица.Ссылка)";
КонецПроцедуры
Процедура ОпределитьПараметрыЗагрузкиДанныхИзФайла(Параметры) Экспорт
Параметры.Заголовок = НСтр("ru = 'Контрагенты'");
Параметры.ТипДанныхКолонки.Вставить("РабочееНаименование", Новый ОписаниеТипов("Строка",, Новый КвалификаторыСтроки(100)));
Параметры.ТипДанныхКолонки.Вставить("ПубличноеНаименование", Новый ОписаниеТипов("Строка",, Новый КвалификаторыСтроки(250)));
Параметры.ТипДанныхКолонки.Вставить("НаименованиеМеждународное", Новый ОписаниеТипов("Строка",, Новый КвалификаторыСтроки(250)));
Параметры.ТипДанныхКолонки.Вставить("ОбособленноеПодразделение", Новый ОписаниеТипов("Булево"));
Параметры.ТипДанныхКолонки.Вставить("ГруппаДоступа", Новый ОписаниеТипов("СправочникСсылка.ГруппыДоступаПартнеров"));
Параметры.ТипДанныхКолонки.Вставить("ЮрФизЛицо", Новый ОписаниеТипов("ПеречислениеСсылка.ЮрФизЛицо"));
Параметры.ТипДанныхКолонки.Вставить("ГоловнойКонтрагент", Новый ОписаниеТипов("СправочникСсылка.Партнеры"));
Параметры.ТипДанныхКолонки.Вставить("ИНН", Метаданные.ОпределяемыеТипы.ИНН.Тип);
Параметры.ТипДанныхКолонки.Вставить("КПП", Новый ОписаниеТипов("Строка",, Новый КвалификаторыСтроки(9)));
Параметры.ТипДанныхКолонки.Вставить("КодПоОКПО", Новый ОписаниеТипов("Строка",, Новый КвалификаторыСтроки(10)));
Параметры.ТипДанныхКолонки.Вставить("СтранаРегистрации", Новый ОписаниеТипов("СправочникСсылка.СтраныМира"));
Параметры.ТипДанныхКолонки.Вставить("НалоговыйНомер", Новый ОписаниеТипов("Строка",, Новый КвалификаторыСтроки(50)));
Параметры.ТипДанныхКолонки.Вставить("Клиент", Новый ОписаниеТипов("Булево"));
Параметры.ТипДанныхКолонки.Вставить("Поставщик", Новый ОписаниеТипов("Булево"));
Параметры.ТипДанныхКолонки.Вставить("Конкурент", Новый ОписаниеТипов("Булево"));
Параметры.ТипДанныхКолонки.Вставить("ПрочиеОтношения", Новый ОписаниеТипов("Булево"));
Параметры.ТипДанныхКолонки.Вставить("ОбслуживаетсяТорговымиПредставителями", Новый ОписаниеТипов("Булево"));
Параметры.ТипДанныхКолонки.Вставить("Перевозчик", Новый ОписаниеТипов("Булево"));
Параметры.ТипДанныхКолонки.Вставить("Пол", Новый ОписаниеТипов("ПеречислениеСсылка.ПолФизическогоЛица"));
Параметры.ТипДанныхКолонки.Вставить("ДатаРождения", Новый ОписаниеТипов("Дата",,,,, Новый КвалификаторыДаты(ЧастиДаты.Дата)));
Параметры.ТипДанныхКолонки.Вставить("ВариантОтправкиЭлектронногоЧека", Новый ОписаниеТипов("ПеречислениеСсылка.ВариантыОтправкиЭлектронногоЧекаПокупателю"));
Параметры.ТипДанныхКолонки.Вставить("ЗонаДоставки", Новый ОписаниеТипов("СправочникСсылка.ЗоныДоставки"));
Параметры.ТипДанныхКолонки.Вставить("ВидЦен", Новый ОписаниеТипов("СправочникСсылка.ВидыЦен"));
МассивОбзятельныхКолонок = Новый Массив;
МассивОбзятельныхКолонок.Добавить("РабочееНаименование");
МассивОбзятельныхКолонок.Добавить("ПубличноеНаименование");
МассивОбзятельныхКолонок.Добавить("ЮрФизЛицо");
МассивОбзятельныхКолонок.Добавить("СтранаРегистрации");
Параметры.ОбязательныеКолонки = МассивОбзятельныхКолонок;
КонецПроцедуры
Процедура СопоставитьЗагружаемыеДанныеИзФайла(ЗагружаемыеДанные) Экспорт
Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ
| ДанныеДляСопоставления.РабочееНаименование КАК РабочееНаименование,
| ДанныеДляСопоставления.НалоговыйНомер КАК НалоговыйНомер,
| ДанныеДляСопоставления.ИНН КАК ИНН,
| ДанныеДляСопоставления.КПП КАК КПП,
| ДанныеДляСопоставления.Идентификатор КАК Идентификатор
|ПОМЕСТИТЬ ДанныеДляСопоставления
|ИЗ
| &ДанныеДляСопоставления КАК ДанныеДляСопоставления
|;
|
|
|ВЫБРАТЬ
| ДанныеДляСопоставления.Идентификатор КАК Идентификатор,
| Контрагенты.Партнер КАК ОбъектСопоставления,
| 1 КАК ПриоритетСопоставления
|ПОМЕСТИТЬ СопоставлениеПриоритеты
|ИЗ
| ДанныеДляСопоставления КАК ДанныеДляСопоставления
| ВНУТРЕННЕЕ СОЕДИНЕНИЕ Справочник.Контрагенты КАК Контрагенты
| ПО (Контрагенты.ИНН = ДанныеДляСопоставления.ИНН)
| И ДанныеДляСопоставления.КПП = Контрагенты.КПП
| И (ДанныеДляСопоставления.ИНН <> """")
|
|ОБЪЕДИНИТЬ ВСЕ
|
|ВЫБРАТЬ
| ДанныеДляСопоставления.Идентификатор,
| Контрагенты.Партнер,
| 2
|ИЗ
| ДанныеДляСопоставления КАК ДанныеДляСопоставления
| ВНУТРЕННЕЕ СОЕДИНЕНИЕ Справочник.Контрагенты КАК Контрагенты
| ПО ДанныеДляСопоставления.НалоговыйНомер = Контрагенты.НалоговыйНомер
| И (ДанныеДляСопоставления.НалоговыйНомер <> """")
|
|ОБЪЕДИНИТЬ ВСЕ
|
|ВЫБРАТЬ
| ДанныеДляСопоставления.Идентификатор,
| Контрагенты.Партнер,
| 3
|ИЗ
| ДанныеДляСопоставления КАК ДанныеДляСопоставления
| ВНУТРЕННЕЕ СОЕДИНЕНИЕ Справочник.Контрагенты КАК Контрагенты
| ПО ДанныеДляСопоставления.РабочееНаименование = Контрагенты.Наименование
|;
|
|
|ВЫБРАТЬ
| СопоставлениеПриоритеты.Идентификатор КАК Идентификатор,
| МИНИМУМ(СопоставлениеПриоритеты.ПриоритетСопоставления) КАК ПриоритетСопоставления
|ПОМЕСТИТЬ ОпределенныеПриоритеты
|ИЗ
| СопоставлениеПриоритеты КАК СопоставлениеПриоритеты
|
|СГРУППИРОВАТЬ ПО
| СопоставлениеПриоритеты.Идентификатор
|;
|
|
|ВЫБРАТЬ
| СопоставлениеПриоритеты.Идентификатор КАК Идентификатор,
| СопоставлениеПриоритеты.ОбъектСопоставления КАК ОбъектСопоставления
|ИЗ
| СопоставлениеПриоритеты КАК СопоставлениеПриоритеты
| ВНУТРЕННЕЕ СОЕДИНЕНИЕ ОпределенныеПриоритеты КАК ОпределенныеПриоритеты
| ПО СопоставлениеПриоритеты.Идентификатор = ОпределенныеПриоритеты.Идентификатор
| И СопоставлениеПриоритеты.ПриоритетСопоставления = ОпределенныеПриоритеты.ПриоритетСопоставления";
Запрос.УстановитьПараметр("ДанныеДляСопоставления", ЗагружаемыеДанные);
РезультатЗапроса = Запрос.Выполнить().Выбрать();
Пока РезультатЗапроса.Следующий() Цикл
Фильтр = Новый Структура("Идентификатор", РезультатЗапроса.Идентификатор);
Строки = ЗагружаемыеДанные.НайтиСтроки(Фильтр);
Для Каждого Строка Из Строки Цикл
Строка.ОбъектСопоставления = РезультатЗапроса.ОбъектСопоставления;
КонецЦикла;
КонецЦикла;
КонецПроцедуры
Процедура ЗагрузитьИзФайла(ЗагружаемыеДанные, ПараметрыЗагрузки, Отказ) Экспорт
Если ЗагружаемыеДанные.Количество() = 0 Тогда
Возврат;
КонецЕсли;
МассивСопоставленныхПартнеров = Новый Массив;
СопоставленныеПартнерыКонтрагенты = Новый Соответствие;
Для каждого СтрокаТаблицы Из ЗагружаемыеДанные Цикл
Если ЗначениеЗаполнено(СтрокаТаблицы.ОбъектСопоставления) Тогда
МассивСопоставленныхПартнеров.Добавить(СтрокаТаблицы.ОбъектСопоставления);
КонецЕсли;
КонецЦикла;
Если МассивСопоставленныхПартнеров.Количество() > 0 Тогда
Запрос = Новый Запрос;
Запрос.Текст = "
|ВЫБРАТЬ
| МАКСИМУМ(Контрагенты.Ссылка) КАК Контрагент,
| Контрагенты.Партнер КАК Партнер
|ИЗ
| Справочник.Контрагенты КАК Контрагенты
|ГДЕ
| Контрагенты.Партнер В(&МассивПартнеров)
| И НЕ Контрагенты.ПометкаУдаления
|
|СГРУППИРОВАТЬ ПО
| Контрагенты.Партнер";
Запрос.УстановитьПараметр("МассивПартнеров", МассивСопоставленныхПартнеров);
Выборка = Запрос.Выполнить().Выбрать();
Пока Выборка.Следующий() Цикл
СопоставленныеПартнерыКонтрагенты.Вставить(Выборка.Партнер, Выборка.Контрагент);
КонецЦикла;
КонецЕсли;
Для каждого СтрокаТаблицы Из ЗагружаемыеДанные Цикл
ОбъектСопоставленияЗаполнен = ЗначениеЗаполнено(СтрокаТаблицы.ОбъектСопоставления);
Если (ОбъектСопоставленияЗаполнен
И ПараметрыЗагрузки.ОбновлятьСуществующие = 0)
Или (Не ОбъектСопоставленияЗаполнен
И ПараметрыЗагрузки.СоздаватьНовые = 0) Тогда
СтрокаТаблицы.РезультатСопоставленияСтроки = "Пропущен";
Продолжить;
КонецЕсли;
УправлениеДоступом.ОтключитьОбновлениеКлючейДоступа(Истина);
НачатьТранзакцию();
Попытка
Если ОбъектСопоставленияЗаполнен Тогда
Блокировка = Новый БлокировкаДанных;
ЭлементБлокировки = Блокировка.Добавить("Справочник.Партнеры");
ЭлементБлокировки.УстановитьЗначение("Ссылка", СтрокаТаблицы.ОбъектСопоставления);
Блокировка.Заблокировать();
ПартнерОбъект = СтрокаТаблицы.ОбъектСопоставления.ПолучитьОбъект();
Если ПартнерОбъект = Неопределено Тогда
ОписаниеОшибки = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
НСтр("ru = 'Контрагент с наименованием %1 был сопоставлен, но больше не существует.'"), СтрокаТаблицы.РабочееНаименование);
СтрокаТаблицы.ОписаниеОшибки = ОписаниеОшибки;
СтрокаТаблицы.РезультатСопоставленияСтроки = "Пропущен";
Продолжить;
КонецЕсли;
КонтрагентПартнера = СопоставленныеПартнерыКонтрагенты.Получить(СтрокаТаблицы.ОбъектСопоставления);
Если КонтрагентПартнера = Неопределено Тогда
КонтрагентОбъект = Справочники.Контрагенты.СоздатьЭлемент();
Иначе
КонтрагентОбъект = КонтрагентПартнера.ПолучитьОбъект();
КонецЕсли;
СтрокаТаблицы.РезультатСопоставленияСтроки = "Обновлен";
Иначе
ПартнерОбъект = СоздатьЭлемент();
КонтрагентОбъект = Справочники.Контрагенты.СоздатьЭлемент();
СтрокаТаблицы.РезультатСопоставленияСтроки = "Создан";
КонецЕсли;
Если ЗначениеЗаполнено(СтрокаТаблицы.РабочееНаименование) Тогда
ПартнерОбъект.Наименование = СтрокаТаблицы.РабочееНаименование;
КонецЕсли;
Если ЗначениеЗаполнено(СтрокаТаблицы.ПубличноеНаименование) Тогда
ПартнерОбъект.НаименованиеПолное = СтрокаТаблицы.ПубличноеНаименование;
КонецЕсли;
Если ЗначениеЗаполнено(СтрокаТаблицы.ЮрФизЛицо) Тогда
Если СтрокаТаблицы.ЮрФизЛицо = Перечисления.ЮрФизЛицо.ЮрЛицо
Или СтрокаТаблицы.ЮрФизЛицо = Перечисления.ЮрФизЛицо.ЮрЛицоНеРезидент Тогда
ПартнерОбъект.ЮрФизЛицо = Перечисления.КомпанияЧастноеЛицо.Компания;
Иначе
ПартнерОбъект.ЮрФизЛицо = Перечисления.КомпанияЧастноеЛицо.ЧастноеЛицо;
КонецЕсли;
КонецЕсли;
Если ЗначениеЗаполнено(СтрокаТаблицы.ГоловнойКонтрагент) Тогда
ПартнерОбъект.Родитель = СтрокаТаблицы.ГоловнойКонтрагент;
КонецЕсли;
Если ОбщегоНазначенияКлиентСервер.ЕстьРеквизитИлиСвойствоОбъекта(СтрокаТаблицы, "ГруппаДоступа")
И ЗначениеЗаполнено(СтрокаТаблицы.ГруппаДоступа) Тогда
ПартнерОбъект.ГруппаДоступа = СтрокаТаблицы.ГруппаДоступа;
КонецЕсли;
Если ОбщегоНазначенияКлиентСервер.ЕстьРеквизитИлиСвойствоОбъекта(СтрокаТаблицы, "ВидЦен")
И ЗначениеЗаполнено(СтрокаТаблицы.ВидЦен) Тогда
ПартнерОбъект.ВидЦен = СтрокаТаблицы.ВидЦен;
КонецЕсли;
Если ЗначениеЗаполнено(СтрокаТаблицы.ДатаРождения) Тогда
ПартнерОбъект.ДатаРождения = СтрокаТаблицы.ДатаРождения;
КонецЕсли;
Если ЗначениеЗаполнено(СтрокаТаблицы.Пол) Тогда
ПартнерОбъект.Пол = СтрокаТаблицы.Пол;
КонецЕсли;
Если ЗначениеЗаполнено(СтрокаТаблицы.ДатаРождения) Тогда
ПартнерОбъект.ДатаРождения = СтрокаТаблицы.ДатаРождения;
КонецЕсли;
Если ОбщегоНазначенияКлиентСервер.ЕстьРеквизитИлиСвойствоОбъекта(СтрокаТаблицы, "ВариантОтправкиЭлектронногоЧека")
И ЗначениеЗаполнено(СтрокаТаблицы.ВариантОтправкиЭлектронногоЧека) Тогда
ПартнерОбъект.ВариантОтправкиЭлектронногоЧека = СтрокаТаблицы.ВариантОтправкиЭлектронногоЧека;
КонецЕсли;
Если ОбщегоНазначенияКлиентСервер.ЕстьРеквизитИлиСвойствоОбъекта(СтрокаТаблицы, "ЗонаДоставки")
И ЗначениеЗаполнено(СтрокаТаблицы.ЗонаДоставки) Тогда
ПартнерОбъект.ЗонаДоставки = СтрокаТаблицы.ЗонаДоставки;
КонецЕсли;
Если ОбщегоНазначенияКлиентСервер.ЕстьРеквизитИлиСвойствоОбъекта(СтрокаТаблицы, "Клиент") Тогда
ПартнерОбъект.Клиент = СтрокаТаблицы.Клиент;
КонецЕсли;
Если ОбщегоНазначенияКлиентСервер.ЕстьРеквизитИлиСвойствоОбъекта(СтрокаТаблицы, "Конкурент") Тогда
ПартнерОбъект.Конкурент = СтрокаТаблицы.Конкурент;
КонецЕсли;
Если ОбщегоНазначенияКлиентСервер.ЕстьРеквизитИлиСвойствоОбъекта(СтрокаТаблицы, "Поставщик") Тогда
ПартнерОбъект.Поставщик = СтрокаТаблицы.Поставщик;
КонецЕсли;
Если ОбщегоНазначенияКлиентСервер.ЕстьРеквизитИлиСвойствоОбъекта(СтрокаТаблицы, "ПрочиеОтношения") Тогда
ПартнерОбъект.ПрочиеОтношения = СтрокаТаблицы.ПрочиеОтношения;
КонецЕсли;
Если ОбщегоНазначенияКлиентСервер.ЕстьРеквизитИлиСвойствоОбъекта(СтрокаТаблицы, "ОбслуживаетсяТорговымиПредставителями") Тогда
ПартнерОбъект.ОбслуживаетсяТорговымиПредставителями = СтрокаТаблицы.ОбслуживаетсяТорговымиПредставителями;
КонецЕсли;
Если ОбщегоНазначенияКлиентСервер.ЕстьРеквизитИлиСвойствоОбъекта(СтрокаТаблицы, "Перевозчик") Тогда
ПартнерОбъект.Перевозчик = СтрокаТаблицы.Перевозчик;
КонецЕсли;
Если НЕ ПартнерОбъект.ПроверитьЗаполнение() Тогда
СтрокаТаблицы.РезультатСопоставленияСтроки = "Пропущен";
СообщенияПользователю = ПолучитьСообщенияПользователю(Истина);
Если СообщенияПользователю.Количество() > 0 Тогда
ТекстСообщений = "";
Для каждого СообщениеПользователю Из СообщенияПользователю Цикл
ТекстСообщений = ТекстСообщений + СообщениеПользователю.Текст + Символы.ПС;
КонецЦикла;
СтрокаТаблицы.ОписаниеОшибки = ТекстСообщений;
КонецЕсли;
ОтменитьТранзакцию();
Продолжить;
Иначе
ПартнерОбъект.Записать();
СтрокаТаблицы.ОбъектСопоставления = ПартнерОбъект.Ссылка;
КонтрагентОбъект.Партнер = ПартнерОбъект.Ссылка;
КонтрагентОбъект.Наименование = ПартнерОбъект.Наименование;
КонтрагентОбъект.НаименованиеПолное = ПартнерОбъект.НаименованиеПолное;
КонтрагентОбъект.Партнер = ПартнерОбъект.Ссылка;
Если ЗначениеЗаполнено(СтрокаТаблицы.ЮрФизЛицо) Тогда
КонтрагентОбъект.ЮрФизЛицо = СтрокаТаблицы.ЮрФизЛицо;
КонецЕсли;
КонтрагентОбъект.ОбособленноеПодразделение = СтрокаТаблицы.ОбособленноеПодразделение;
Если ЗначениеЗаполнено(СтрокаТаблицы.СтранаРегистрации) Тогда
КонтрагентОбъект.СтранаРегистрации = СтрокаТаблицы.СтранаРегистрации;
КонецЕсли;
Если ЗначениеЗаполнено(СтрокаТаблицы.НаименованиеМеждународное) Тогда
КонтрагентОбъект.НаименованиеМеждународное = СтрокаТаблицы.НаименованиеМеждународное;
КонецЕсли;
Если ЗначениеЗаполнено(СтрокаТаблицы.НалоговыйНомер) Тогда
КонтрагентОбъект.НалоговыйНомер = СтрокаТаблицы.НалоговыйНомер;
КонецЕсли;
Если ЗначениеЗаполнено(СтрокаТаблицы.РегистрационныйНомер) Тогда
КонтрагентОбъект.РегистрационныйНомер = СтрокаТаблицы.РегистрационныйНомер;
КонецЕсли;
Если ЗначениеЗаполнено(СтрокаТаблицы.ИНН) Тогда
КонтрагентОбъект.ИНН = СтрокаТаблицы.ИНН;
КонецЕсли;
Если ЗначениеЗаполнено(СтрокаТаблицы.КПП) Тогда
КонтрагентОбъект.КПП = СтрокаТаблицы.КПП;
КонецЕсли;
Если ЗначениеЗаполнено(СтрокаТаблицы.КодПоОКПО) Тогда
КонтрагентОбъект.КодПоОКПО = СтрокаТаблицы.КодПоОКПО;
КонецЕсли;
КонтрагентОбъект.Записать();
УправлениеДоступом.ОтключитьОбновлениеКлючейДоступа(Ложь);
ЗафиксироватьТранзакцию();
КонецЕсли;
Исключение
ОтменитьТранзакцию();
УправлениеДоступом.ОтключитьОбновлениеКлючейДоступа(Ложь, Ложь);
Причина = КраткоеПредставлениеОшибки(ИнформацияОбОшибке());
СтрокаТаблицы.РезультатСопоставленияСтроки = "Пропущен";
СтрокаТаблицы.ОписаниеОшибки = НСтр("ru = 'Невозможна запись данных по причине:'") + Символы.ПС + Причина;
КонецПопытки;
КонецЦикла;
КонецПроцедуры
#КонецОбласти
#КонецОбласти
#КонецЕсли
#Область ОбработчикиСобытий
Процедура ОбработкаПолученияДанныхВыбора(ДанныеВыбора, Параметры, СтандартнаяОбработка)
Результат = ПартнерыИКонтрагентыВызовСервера.ПартнерыДанныеВыбора(Параметры);
Если Результат <> Неопределено Тогда
СтандартнаяОбработка = ЛОЖЬ;
ДанныеВыбора = Результат;
КонецЕсли;
КонецПроцедуры
Процедура ОбработкаПолученияФормы(ВидФормы, Параметры, ВыбраннаяФорма, ДополнительнаяИнформация, СтандартнаяОбработка)
ИспользоватьПолнотекстовыйПоиск = ОбщегоНазначенияУТВызовСервера.ИспользуетсяПолнотекстовыйПоиск("ИспользоватьПолнотекстовыйПоиск");
Если ВидФормы = "ФормаОбъекта" Тогда
Если Параметры.Свойство("РежимВыбора") И Параметры.РежимВыбора Тогда
ВыбраннаяФорма = "ПомощникНового";
СтандартнаяОбработка = Ложь;
ИначеЕсли ПолучитьФункциональнуюОпцию("ИспользоватьПартнеровКакКонтрагентов") Тогда
ВыбраннаяФорма = "ФормаЭлементаРеквизитыКонтрагента";
СтандартнаяОбработка = Ложь;
КонецЕсли;
ИначеЕсли ВидФормы = "ФормаВыбора" И НЕ ИспользоватьПолнотекстовыйПоиск Тогда
ВыбраннаяФорма = "ФормаВыбораБезПолнотекстовогоПоиска";
СтандартнаяОбработка = Ложь;
ИначеЕсли ВидФормы = "ФормаСписка" И НЕ ИспользоватьПолнотекстовыйПоиск Тогда
ВыбраннаяФорма = "ФормаСпискаБезПолнотекстовогоПоиска";
СтандартнаяОбработка = Ложь;
КонецЕсли;
КонецПроцедуры
#КонецОбласти
#Если Сервер Или ТолстыйКлиентОбычноеПриложение Или ВнешнееСоединение Тогда
#Область СлужебныеПроцедурыИФункции
#Область Назначения
#КонецОбласти
#Область ОбновлениеИнформационнойБазы
Процедура ЗаполнитьПредопределенныхПартнеров() Экспорт
СправочникОбъект = Справочники.Партнеры.НашеПредприятие.ПолучитьОбъект();
СправочникОбъект.ДатаРегистрации = Дата(1980, 1, 1);
СправочникОбъект.НаименованиеПолное = НСтр("ru = 'Наше предприятие'");
СправочникОбъект.ЮрФизЛицо = Перечисления.КомпанияЧастноеЛицо.Компания;
СправочникОбъект.Записать();
Если ПолучитьФункциональнуюОпцию("ИспользоватьПартнеровКакКонтрагентов") Тогда
МассивПартнеров = ПартнерыИКонтрагенты.ПолучитьВсехКонтрагентовПартнера(СправочникОбъект.Ссылка);
Если МассивПартнеров.Количество() = 0 Тогда
Контрагент = Справочники.Контрагенты.СоздатьЭлемент();
Контрагент.Наименование = СправочникОбъект.Наименование;
Контрагент.НаименованиеПолное = СправочникОбъект.НаименованиеПолное;
Контрагент.ЮрФизЛицо = Перечисления.ЮрФизЛицо.ЮрЛицо;
Контрагент.Партнер = СправочникОбъект.Ссылка;
Контрагент.Записать();
КонецЕсли;
КонецЕсли;
СправочникОбъект = Справочники.Партнеры.РозничныйПокупатель.ПолучитьОбъект();
СправочникОбъект.Клиент = Истина;
СправочникОбъект.ДатаРегистрации = Дата(1980, 1, 1);
СправочникОбъект.НаименованиеПолное = НСтр("ru = 'Розничный покупатель'");
СправочникОбъект.ЮрФизЛицо = Перечисления.КомпанияЧастноеЛицо.ЧастноеЛицо;
СправочникОбъект.Записать();
СправочникОбъект = Справочники.Партнеры.НеизвестныйПартнер.ПолучитьОбъект();
СправочникОбъект.Клиент = Истина;
СправочникОбъект.Поставщик = Истина;
СправочникОбъект.ПрочиеОтношения = Истина;
СправочникОбъект.ДатаРегистрации = Дата(1980, 1, 1);
СправочникОбъект.НаименованиеПолное = НСтр("ru = 'Неизвестный партнер'");
СправочникОбъект.ЮрФизЛицо = Перечисления.КомпанияЧастноеЛицо.Компания;
СправочникОбъект.Записать();
КонецПроцедуры
#КонецОбласти
#Область Прочее
Процедура ЗаполнитьСтруктуруПолучателейПечатныхФорм(СтруктураДанныхОбъектаПечати) Экспорт
СтруктураДанныхОбъектаПечати.ОсновнойПолучатель = "Ссылка";
МассивРеквизитовПолучателей = СтруктураДанныхОбъектаПечати.МассивРеквизитовПолучателей;
МассивРеквизитовПолучателей.Добавить("Ссылка");
КонецПроцедуры
#КонецОбласти
#Область Отчеты
Процедура ДобавитьКомандыОтчетов(КомандыОтчетов, Параметры) Экспорт
КомандаОтчет = Отчеты.ДосьеПартнера.ДобавитьКомандуДосьеПартнера(КомандыОтчетов);
Если КомандаОтчет <> Неопределено Тогда
КомандаОтчет.ВидимостьВФормах = "ФормаЭлемента,ФормаСписка,ФормаСпискаБезПолнотекстовогоПоиска";
КонецЕсли;
КомандаОтчет = Отчеты.ВыполнениеУсловийСоглашенийСКлиентами.ДобавитьКомандуВыполнениеУсловийСоглашенийСКлиентамиПоПартнеру(КомандыОтчетов);
Если КомандаОтчет <> Неопределено Тогда
КомандаОтчет.ВидимостьВФормах = "ФормаЭлемента,ФормаСписка,ФормаСпискаБезПолнотекстовогоПоиска";
КонецЕсли;
КомандаОтчет = Отчеты.ВыручкаИСебестоимостьПродаж.ДобавитьКомандуПродажи(КомандыОтчетов);
Если КомандаОтчет <> Неопределено Тогда
КомандаОтчет.ВидимостьВФормах = "ФормаЭлемента,ФормаСписка,ФормаСпискаБезПолнотекстовогоПоиска,ФормаЭлементаРеквизитыКонтрагента";
КонецЕсли;
КомандаОтчет = ВзаиморасчетыСервер.КарточкаРасчетовСКлиентом_ДобавитьКомандуОтчета(КомандыОтчетов);
Если КомандаОтчет <> Неопределено Тогда
КомандаОтчет.ВидимостьВФормах = "ФормаЭлемента,ФормаСписка,ФормаСпискаБезПолнотекстовогоПоиска,ФормаЭлементаРеквизитыКонтрагента";
КонецЕсли;
КомандаОтчет = ВзаиморасчетыСервер.КарточкаРасчетовСПоставщиком_ДобавитьКомандуОтчета(КомандыОтчетов);
Если КомандаОтчет <> Неопределено Тогда
КомандаОтчет.ВидимостьВФормах = "ФормаЭлемента,ФормаСписка,ФормаСпискаБезПолнотекстовогоПоиска,ФормаЭлементаРеквизитыКонтрагента";
КонецЕсли;
КомандаОтчет = ВзаиморасчетыСервер.ВедомостьРасчетовСПартнерами_ДобавитьКомандуОтчета(КомандыОтчетов);
Если КомандаОтчет <> Неопределено Тогда
КомандаОтчет.ВидимостьВФормах = "ФормаЭлемента,ФормаСписка,ФормаСпискаБезПолнотекстовогоПоиска,ФормаЭлементаРеквизитыКонтрагента";
КонецЕсли;
КомандаОтчет = ВзаиморасчетыСервер.ЗадолженностьКлиентов_ДобавитьКомандуОтчета(КомандыОтчетов);
Если КомандаОтчет <> Неопределено Тогда
КомандаОтчет.ВидимостьВФормах = "ФормаЭлемента,ФормаСписка,ФормаСпискаБезПолнотекстовогоПоиска,ФормаЭлементаРеквизитыКонтрагента";
КонецЕсли;
КомандаОтчет = ВзаиморасчетыСервер.ЗадолженностьПоставщикам_ДобавитьКомандуОтчета(КомандыОтчетов);
Если КомандаОтчет <> Неопределено Тогда
КомандаОтчет.ВидимостьВФормах = "ФормаЭлемента,ФормаСписка,ФормаСпискаБезПолнотекстовогоПоиска,ФормаЭлементаРеквизитыКонтрагента";
КонецЕсли;
КомандаОтчет = Отчеты.УсловияЗакупок.ДобавитьКомандуОтчетаПоПоставщику(КомандыОтчетов);
Если КомандаОтчет <> Неопределено Тогда
КомандаОтчет.ВидимостьВФормах = "ФормаЭлемента,ФормаСписка,ФормаСпискаБезПолнотекстовогоПоиска,ФормаЭлементаРеквизитыКонтрагента";
КонецЕсли;
КомандаОтчет = Отчеты.УсловияПродаж.ДобавитьКомандуОтчетаПоПартнеру(КомандыОтчетов);
Если КомандаОтчет <> Неопределено Тогда
КомандаОтчет.ВидимостьВФормах = "ФормаЭлемента,ФормаСписка,ФормаСпискаБезПолнотекстовогоПоиска";
КонецЕсли;
КомандаОтчет = Отчеты.УсловияПродаж2_5.ДобавитьКомандуОтчетаПоПартнеру(КомандыОтчетов);
Если КомандаОтчет <> Неопределено Тогда
КомандаОтчет.ВидимостьВФормах = "ФормаЭлемента,ФормаСписка,ФормаСпискаБезПолнотекстовогоПоиска";
КонецЕсли;
КомандаОтчет = Отчеты.КонтактнаяИнформация.ДобавитьКомандуКонтактнаяИнформацияПоПартнерам(КомандыОтчетов);
Если КомандаОтчет <> Неопределено Тогда
КомандаОтчет.ВидимостьВФормах = "ФормаЭлемента,ФормаСписка,ФормаСпискаБезПолнотекстовогоПоиска";
КонецЕсли;
КомандаОтчет = Отчеты.КонтактнаяИнформация.ДобавитьКомандуКонтактнаяИнформацияКонтактныхЛиц(КомандыОтчетов);
Если КомандаОтчет <> Неопределено Тогда
КомандаОтчет.ВидимостьВФормах = "ФормаЭлемента,ФормаСписка,ФормаСпискаБезПолнотекстовогоПоиска";
КонецЕсли;
КомандаОтчет = ВариантыОтчетовУТПереопределяемый.ДобавитьКомандуВзаимодействияПоКонтакту(КомандыОтчетов);
Если КомандаОтчет <> Неопределено Тогда
КомандаОтчет.ВидимостьВФормах = "ФормаЭлемента,ФормаСписка,ФормаСпискаБезПолнотекстовогоПоиска";
КонецЕсли;
КомандаОтчет = ВариантыОтчетовУТПереопределяемый.ДобавитьКомандуСегментыПартнера(КомандыОтчетов);
Если КомандаОтчет <> Неопределено Тогда
КомандаОтчет.ВидимостьВФормах = "ФормаЭлемента,ФормаСписка,ФормаСпискаБезПолнотекстовогоПоиска";
КонецЕсли;
КомандаОтчет = Отчеты.ДействующиеРетроБонусыКлиента.ДобавитьКомандуОтчета(
КомандыОтчетов,
Параметры,
"ДействующиеРетроБонусыПоКлиентуКонтекст");
Если КомандаОтчет <> Неопределено Тогда
ПодключаемыеКоманды.ДобавитьУсловиеВидимостиКоманды(
КомандаОтчет,
"Клиент",
Истина,
ВидСравненияКомпоновкиДанных.Равно);
КомандаОтчет.ВидимостьВФормах = "ФормаЭлемента,ФормаСписка,ФормаСпискаБезПолнотекстовогоПоиска";
КонецЕсли;
КомандаОтчет = Отчеты.ДействующиеРетроБонусыПоставщиков.ДобавитьКомандуОтчета(
КомандыОтчетов, Параметры, "ДействующиеРетроБонусыПоставщиковКонтекст");
Если КомандаОтчет <> Неопределено Тогда
Представление = НСтр("ru = 'Действующие ретро-бонусы поставщика'");
КомандаОтчет.Представление = Представление;
ПодключаемыеКоманды.ДобавитьУсловиеВидимостиКоманды(
КомандаОтчет,
"Поставщик",
Истина,
ВидСравненияКомпоновкиДанных.Равно);
КонецЕсли;
ПартнерыИКонтрагентыЛокализация.ДобавитьКомандыОтчетов_Партнеры(КомандыОтчетов, Параметры);
КонецПроцедуры
#КонецОбласти
#Область ШаблоныСообщений
Процедура ПриПодготовкеШаблонаСообщения(Реквизиты, Вложения, ДополнительныеПараметры) Экспорт
КонецПроцедуры
Процедура ПриФормированииСообщения(Сообщение, ПредметСообщения, ДополнительныеПараметры) Экспорт
КонецПроцедуры
Процедура ПриЗаполненииТелефоновПолучателейВСообщении(ПолучателиSMS, ПредметСообщения) Экспорт
КонецПроцедуры
Процедура ПриЗаполненииПочтыПолучателейВСообщении(ПолучателиПисьма, ПредметСообщения) Экспорт
КонецПроцедуры
#КонецОбласти
#КонецОбласти
#КонецЕсли