Имя: Пароль:
1C
 
Как программно создать договор контрагента.
0 Klesk
 
20.09.06
11:37
Первый раз пишу в 1Cv8.
Импортирую контрагентов из excel. Надо записать договор, взял из формы справочника процедуру.

Процедура ПроверитьОсновнойДоговорКонтрагента(Контрагент, НовыйОсновнойДоговорУказан)

   

       НайденныйДоговорОбъект              = Справочники.ДоговорыКонтрагентов.СоздатьЭлемент();
       НайденныйДоговорОбъект.Наименование = "Основной договор";

       НайденныйДоговорОбъект.ВедениеВзаиморасчетов = ПолучитьЗначениеПоУмолчанию(глТекущийПользователь, "ОсновноеВедениеВзаиморасчетовПоДоговорам");
       Если ЗначениеНеЗаполнено(НайденныйДоговорОбъект.ВедениеВзаиморасчетов) Тогда
           НайденныйДоговорОбъект.ВедениеВзаиморасчетов = Перечисления.ВедениеВзаиморасчетовПоДоговорам.ПоЗаказам;
       КонецЕсли;

       НайденныйДоговорОбъект.ВалютаВзаиморасчетов = ПолучитьЗначениеПоУмолчанию(глТекущийПользователь, "ОсновнаяВалютаВзаиморасчетов");
       Если ЗначениеНеЗаполнено(НайденныйДоговорОбъект.ВалютаВзаиморасчетов) Тогда
           НайденныйДоговорОбъект.ВалютаВзаиморасчетов = Константы.ВалютаУправленческогоУчета.Получить();
       КонецЕсли;

       НайденныйДоговорОбъект.Организация = ПолучитьЗначениеПоУмолчанию(глТекущийПользователь, "ОсновнаяОрганизация");
       Если ЗначениеНеЗаполнено(НайденныйДоговорОбъект.Организация) Тогда
           Выборка = Справочники.Организации.Выбрать();
           Если Выборка.Следующий() Тогда
               НайденныйДоговорОбъект.Организация = Выборка.Ссылка;
           КонецЕсли;
       КонецЕсли;

       НайденныйДоговорОбъект.Владелец           = Контрагент;
       НайденныйДоговорОбъект.ВидУсловийДоговора = Перечисления.ВидыУсловийДоговоровВзаиморасчетов.БезДополнительныхУсловий;

       Если Контрагент.Покупатель Тогда
           НайденныйДоговорОбъект.ВидДоговора = Перечисления.ВидыДоговоровКонтрагентов.СПокупателем;
           НайденныйДоговорОбъект.ТипЦен      = Справочники.ТипыЦенНоменклатуры.ПустаяСсылка();
       ИначеЕсли Контрагент.Поставщик Тогда
           НайденныйДоговорОбъект.ВидДоговора = Перечисления.ВидыДоговоровКонтрагентов.СПоставщиком;
           НайденныйДоговорОбъект.ТипЦен      = Справочники.ТипыЦенНоменклатурыКонтрагентов.ПустаяСсылка();
       Иначе
           НайденныйДоговорОбъект.ВидДоговора = Перечисления.ВидыДоговоровКонтрагентов.Прочее;
       КонецЕсли;

       
       НайденныйДоговорОбъект.Записать();
!!!!!/////////////////////ОШИБКА:Вид договора "С поставщиком" может устанавливаться только когда у контрагента указано что он является поставщиком.
!!!!////////////////////////////////////////
       ОсновнойДоговорКонтрагента = НайденныйДоговорОбъект.Ссылка;
       НовыйОсновнойДоговорУказан = Истина;



КонецПроцедуры

Записываю элемент так:

НовыйКонтрагент=Справочники.Контрагенты.СоздатьЭлемент();
       НовыйКонтрагент.Родитель=Родитель;
       НовыйКонтрагент.Наименование=Зн;
       НовыйКонтрагент.НаименованиеПолное=Зн;
       НовыйКонтрагент.ЮрФизЛицо=Перечисления.ЮрФизЛицо.ЮрЛицо;
       НовыйКонтрагент.Поставщик=Истина;
       НовыйКонтрагент.НаименованиеПолное=Зн;
       НовыйКонтрагент.Записать();
       Состояние("Записано "+Ы+" Контрагентов");
       
       НовыйОсновнойДоговорУказан = Ложь;
       ПроверитьОсновнойДоговорКонтрагента(НовыйКонтрагент, НовыйОсновнойДоговорУказан);
   
Происходит ошибка: Вид договора "С поставщиком" может устанавливаться только когда у контрагента указано что он является поставщиком.    
в процедуре ПередЗаписью() формы справочника.
Как это правильно сделать?
Заранее спасибо.
1 АцкийМодер
 
20.09.06
11:40
Нужно сначала получить объект контрагента, поставить нужные галки, записать, потом создавать договор.
2 Klesk
 
20.09.06
11:49
(1) а как?
3 Salvador Limones
 
20.09.06
11:55
(2) Что как?
4 Бойс
 
20.09.06
11:57
(2) Групповая обработка справочников и документов
5 Klesk
 
20.09.06
12:01
(3) Можно небольшой пример?