Процедура СоздатьОбновитьДоговорКонтрагента(ДоговорПоСделке)
Если ЗначениеЗаполнено(ДоговорПоСделке.УД_ДоговорКонтрагента) Тогда
ДоговорКонтрагента_ = ДоговорПоСделке.УД_ДоговорКонтрагента;
Иначе
ЗапросДоговоры= Новый Запрос;
ЗапросДоговоры.УстановитьПараметр("Организация", ДоговорПоСделке.Организация);
ЗапросДоговоры.УстановитьПараметр("Контрагент", ДоговорПоСделке.Сделка.ОсновнойКлиент.Контрагент);
ЗапросДоговоры.УстановитьПараметр("Номер", ДоговорПоСделке.НомерДоговора);
ЗапросДоговоры.УстановитьПараметр("Дата", ДоговорПоСделке.ДатаДоговора);
ЗапросДоговоры.Текст=
"ВЫБРАТЬ
| Договор.Ссылка КАК Ссылка
|ИЗ
| Справочник.ДоговорыКонтрагентов КАК Договор
|ГДЕ
| Договор.Организация = &Организация
| И Договор.Владелец = &Контрагент
| И Договор.Номер = &Номер
| И Договор.Дата = &Дата";
ДоговорКонтрагента_= "";
ВыборкаДоговоры= ЗапросДоговоры.Выполнить().Выбрать();
Если ВыборкаДоговоры.Следующий() тогда
ДоговорКонтрагента_= ВыборкаДоговоры.Ссылка;
КонецЕсли;
КонецЕсли;
Если НЕ ЗначениеЗаполнено(ДоговорКонтрагента_) тогда
ДоговорКонтрагента_Объект= Справочники.ДоговорыКонтрагентов.СоздатьЭлемент();
ДоговорКонтрагента_Объект.Номер= ДоговорПоСделке.НомерДоговора;
ДоговорКонтрагента_Объект.Дата= ДоговорПоСделке.ДатаДоговора;
ДоговорКонтрагента_Объект.Владелец= ОсновнойКлиент.Контрагент;
ДоговорКонтрагента_Объект.Организация= Организация;
//
//ДоговорВДокументОбъект.Наименование= "ДДУ " + СокрЛП(ДоговорПоСделке.НомерДоговора) + " от " + Формат(ДоговорПоСделке.ДатаДоговора, "ДФ=dd.MM.yyyy");
//ДоговорВДокументОбъект.ВидДоговора= Перечисления.ВидыДоговоровКонтрагентов.Прочее;
// -------- заменено на:
Если СтрНайти(ЭтотОбъект.ТипДоговораПоСделке.Наименование, "ДКП") > 0 Тогда
ДоговорКонтрагента_Объект.Наименование= "ДКП " + СокрЛП(ДоговорПоСделке.НомерДоговора) + " от " + Формат(ДоговорПоСделке.ДатаДоговора, "ДФ=dd.MM.yyyy");
ДоговорКонтрагента_Объект.ВидДоговора= Перечисления.ВидыДоговоровКонтрагентов.СПокупателем;
Иначе
ДоговорКонтрагента_Объект.Наименование= "ДДУ " + СокрЛП(ДоговорПоСделке.НомерДоговора) + " от " + Формат(ДоговорПоСделке.ДатаДоговора, "ДФ=dd.MM.yyyy");
ДоговорКонтрагента_Объект.ВидДоговора= Перечисления.ВидыДоговоровКонтрагентов.Прочее;
КонецЕсли;
//*/
//TO DO
НоменклатурнаяГруппа= "";
Если Помещения.Количество() > 0 тогда
НоменклатурнаяГруппа= Помещения[0].НоменклатурнаяГруппа;
КонецЕсли;
ДоговорКонтрагента_Объект.ВалютаВзаиморасчетов= Константы.ВалютаРегламентированногоУчета.Получить();
ДоговорКонтрагента_Объект.бит_стр_ЭтоДоговорФинансированияСтроительстваИлиКуплиПродажиНедвижимости= Истина;
ДоговорКонтрагента_Объект.бит_ЦФО= Справочники.Подразделения.НайтиПоКоду("БП-000004");
Если ЗначениеЗаполнено(НоменклатурнаяГруппа) тогда
ДоговорКонтрагента_Объект.бит_Проект= НоменклатурнаяГруппа.бит_стр_Проект;
КонецЕсли;
ДоговорКонтрагента_Объект.бит_СуммаДоговора= Сумма;
ДоговорКонтрагента_Объект.СрокДействия= '20220630';
ДоговорКонтрагента_Объект.бит_ПредметДоговора= СокрЛП(ДоговорПоСделке.НомерДоговора);
ДоговорКонтрагента_Объект.бит_стр_ТипДоговораРеализацииНедвижимости= ДоговорПоСделке.ТипДоговора;
ДоговорКонтрагента_Объект.бит_стр_Строительство= НоменклатурнаяГруппа;
ДоговорКонтрагента_Объект.СпособВыставленияДокументов= Перечисления.СпособыВыставленияДокументов.Автоматически;
ДоговорКонтрагента_Объект.Записать();
ДоговорКонтрагента_= ДоговорКонтрагента_Объект.Ссылка;
ДоговорПоСделкеОбъект = ДоговорПоСделке.ПолучитьОбъект();
ДоговорПоСделкеОбъект.УД_ДоговорКонтрагента = ДоговорКонтрагента_;
ДоговорПоСделкеОбъект.Записать();
Иначе // Обновляем реквизиты договора контрагента, т.к. часто документ изменяют в течение первых нескольких дней
Если ЭтотОбъект.ДополнительныеСвойства.ДатаДоговора <> ДоговорПоСделке.ДатаДоговора Тогда
ДоговорКонтрагента_Объект= ДоговорКонтрагента_.ПолучитьОбъект();
ДоговорКонтрагента_Объект.Номер= ДоговорПоСделке.НомерДоговора;
ДоговорКонтрагента_Объект.Дата= ДоговорПоСделке.ДатаДоговора;
//ДоговорКонтрагента_Объект.Помещения.НоменклатурнаяГруппа= ДоговорПоСделке.НоменклатурнаяГруппа.Наименование; //Поиск группы
//ДоговорКонтрагента_Объект.Помещения.Номенклатура = ДоговорПоСделке.НоменклатурнаяГруппа;
НоменклатурнаяГруппа= "";
Если Помещения.Количество() > 0 тогда
НоменклатурнаяГруппа= Помещения[0].НоменклатурнаяГруппа;
КонецЕсли;
Если СтрНайти(ЭтотОбъект.ТипДоговораПоСделке.Наименование, "ДКП") > 0 Тогда
ДоговорКонтрагента_Объект.Наименование= "ДКП " + СокрЛП(ДоговорПоСделке.НомерДоговора) + " от " + Формат(ЭтотОбъект.ДополнительныеСвойства.ДатаДоговора, "ДФ=dd.MM.yyyy");
Иначе
ДоговорКонтрагента_Объект.Наименование= "ДДУ " + СокрЛП(ДоговорПоСделке.НомерДоговора) + " от " + Формат(ЭтотОбъект.ДополнительныеСвойства.ДатаДоговора, "ДФ=dd.MM.yyyy");
КонецЕсли;
ДоговорКонтрагента_Объект.Записать();
КонецЕсли;
КонецЕсли;
// Временное решение, пока не определимся как надо отражать корерктно в учете
КонецПроцедуры
При редактировании реквизитов в документе номенклатурная группа, номенклатура нужно чтоб данные так же менялись в другом документе .