1С 8.3 Создать основной договор
Данные > Примеры кода 1С > 1С 8.3 Типовые (БП3, ЗУП, УТ)
Перейти в раздел примеры кода 1С 8.3:

Данная функция создает и заполняет договор у конкретного контрагента. Делает его основным и добавляет необходимую запись в регистр сведений ОсновныеДоговорыКонтрагента.
Программное создание основного договора в Бухгалтерии Предприятия 1С 8.3:
Функция СоздатьОснДоговорБП(Организация, Контрагент, ВидДоговора, СделатьОсновным=Ложь) Экспорт
Дог = Справочники.ДоговорыКонтрагентов.СоздатьЭлемент();
Дог.Организация = Организация;
Дог.Владелец = Контрагент;
Дог.ВидДоговора = ВидДоговора;
Дог.ВалютаВзаиморасчетов = Константы.ВалютаРегламентированногоУчета.Получить();
Дог.Наименование = ВидДоговора;
Попытка
Дог.Записать();
Исключение
ТекстОшибки = СтрШаблон("Не удалось сохранить новый договор для контрагента %1
|по виду договора %2 для организации %3", Контрагент, ВидДоговора, Организация);
ОбщегоНазначенияКлиентСервер.СообщитьПользователю(ТекстОшибки);
Возврат Справочники.ДоговорыКонтрагентов.ПустаяСсылка();
КонецПопытки;
Если СделатьОсновным Тогда
Параметры = ОбщегоНазначения.ЗначенияРеквизитовОбъекта(Дог.Ссылка, "Организация, ВидДоговора, Владелец");
ЗаписьРС = РегистрыСведений.ОсновныеДоговорыКонтрагента.СоздатьМенеджерЗаписи();
ЗаписьРС.Организация = Параметры.Организация;
ЗаписьРС.Контрагент = Параметры.Владелец;
ЗаписьРС.ВидДоговора = Параметры.ВидДоговора;
ЗаписьРС.Договор = Дог;
Попытка
ЗаписьРС.Записать(Истина);
Исключение
ТекстОшибки = СтрШаблон("Не удалось указать договор %1 основным для контрагента %2", Дог, Контрагент);
ОбщегоНазначенияКлиентСервер.СообщитьПользователю(ТекстОшибки);
КонецПопытки;
КонецЕсли;
Возврат Дог.Ссылка;
КонецФункции
Дог = Справочники.ДоговорыКонтрагентов.СоздатьЭлемент();
Дог.Организация = Организация;
Дог.Владелец = Контрагент;
Дог.ВидДоговора = ВидДоговора;
Дог.ВалютаВзаиморасчетов = Константы.ВалютаРегламентированногоУчета.Получить();
Дог.Наименование = ВидДоговора;
Попытка
Дог.Записать();
Исключение
ТекстОшибки = СтрШаблон("Не удалось сохранить новый договор для контрагента %1
|по виду договора %2 для организации %3", Контрагент, ВидДоговора, Организация);
ОбщегоНазначенияКлиентСервер.СообщитьПользователю(ТекстОшибки);
Возврат Справочники.ДоговорыКонтрагентов.ПустаяСсылка();
КонецПопытки;
Если СделатьОсновным Тогда
Параметры = ОбщегоНазначения.ЗначенияРеквизитовОбъекта(Дог.Ссылка, "Организация, ВидДоговора, Владелец");
ЗаписьРС = РегистрыСведений.ОсновныеДоговорыКонтрагента.СоздатьМенеджерЗаписи();
ЗаписьРС.Организация = Параметры.Организация;
ЗаписьРС.Контрагент = Параметры.Владелец;
ЗаписьРС.ВидДоговора = Параметры.ВидДоговора;
ЗаписьРС.Договор = Дог;
Попытка
ЗаписьРС.Записать(Истина);
Исключение
ТекстОшибки = СтрШаблон("Не удалось указать договор %1 основным для контрагента %2", Дог, Контрагент);
ОбщегоНазначенияКлиентСервер.СообщитьПользователю(ТекстОшибки);
КонецПопытки;
КонецЕсли;
Возврат Дог.Ссылка;
КонецФункции
Программное создание договора в БП 2.1 РБ 1С 8.3:
&НаСервере
Функция ЗаписатьНовыйДоговор(СсылкаНаКонтрагента, ТекстНомерДоговора)
ДоговорыКонтрагентов = Справочники.ДоговорыКонтрагентов;
ДогСсылка = ПредопределенноеЗначение("Справочник.ДоговорыКонтрагентов.ПустаяСсылка");
ДогКонтр=ДоговорыКонтрагентов.СоздатьЭлемент();
ДогКонтр.Владелец = СсылкаНаКонтрагента;
ДогКонтр.Наименование = ТекстНомерДоговора;
ДогКонтр.Номер = ТекстНомерДоговора;
ДогКонтр.Организация = Объект.Организация;
ДогКонтр.ВидДоговора = Перечисления.ВидыДоговоровКонтрагентов.СПоставщиком;
ДогКонтр.ВалютаВзаиморасчетов = Константы.ВалютаРегламентированногоУчета.Получить();
ДогКонтр.Комментарий = "Создан автоматически т.к. не найден";
Попытка
ДогКонтр.Записать();
ДогСсылка = ДогКонтр.Ссылка;
Исключение
Сообщить("Ошибка записи договора "+СокрЛП(ТекстНомерДоговора)+" для "+СсылкаНаКонтрагента);
КонецПопытки;
Возврат ДогСсылка;
КонецФункции
Функция ЗаписатьНовыйДоговор(СсылкаНаКонтрагента, ТекстНомерДоговора)
ДоговорыКонтрагентов = Справочники.ДоговорыКонтрагентов;
ДогСсылка = ПредопределенноеЗначение("Справочник.ДоговорыКонтрагентов.ПустаяСсылка");
ДогКонтр=ДоговорыКонтрагентов.СоздатьЭлемент();
ДогКонтр.Владелец = СсылкаНаКонтрагента;
ДогКонтр.Наименование = ТекстНомерДоговора;
ДогКонтр.Номер = ТекстНомерДоговора;
ДогКонтр.Организация = Объект.Организация;
ДогКонтр.ВидДоговора = Перечисления.ВидыДоговоровКонтрагентов.СПоставщиком;
ДогКонтр.ВалютаВзаиморасчетов = Константы.ВалютаРегламентированногоУчета.Получить();
ДогКонтр.Комментарий = "Создан автоматически т.к. не найден";
Попытка
ДогКонтр.Записать();
ДогСсылка = ДогКонтр.Ссылка;
Исключение
Сообщить("Ошибка записи договора "+СокрЛП(ТекстНомерДоговора)+" для "+СсылкаНаКонтрагента);
КонецПопытки;
Возврат ДогСсылка;
КонецФункции
0
комментарии
____________________
Перепечатка текста и фотографий разрешена при наличии прямой ссылки на источник