Программное создание контрагентов

1. autogen 26.12.13 23:41 Сейчас в теме
Господа, давеча решил вступить в ваши ряды. Молча гуглил и курил маны.
Однако столкнулся с проблемой:
В ТиС 9.2 Контрагенты хранятся не только в справочнике Контрагенты. Они дополнительно разделены по справочникам ЮрЛица, ФизЛица..
При добавлении нового контрагента, кроме самомго Спр.Контрагенты он автоматически добавляется в соответствующий справочник (ЮрЛица).

В справочнике Контрагенты нет реквизитов, они подтягиваются из ЮрЛица.

Пишу модуль:
Создаю в справочнике Контрагенты новый элемент. Даю имя, код.
Создаю в справочнике ЮрЛица элемент с таким же наименованием, заполняю реквизиты.
Однако при открытии в справочнике Контрагенты карточки контрагента - реквизиты не подтягиваются (они пустые).

Изколошматил модуль формы вдоль и поперёк. Но так и не понял.
Прошу совета или ценной ссылки на "почитать".
По теме из базы знаний
Ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. awk 741 27.12.13 01:35 Сейчас в теме
(1) autogen,
1. А как связан контрагент и юр. лицо? Наверное через реквизит или через владельца юр.лица. Вот его-то при записи ты и забыл выставить.
3. autogen 27.12.13 02:13 Сейчас в теме
(2) awk, спасибо. Только что разобрался.
Может кому пригодится, выложу код:
контр = создатьОбъект("Справочник.Контрагенты");  
		Если контр.НайтиПоНаименованию("Покупатели") = 1 Тогда
	    	Покупашки = контр.ТекущийЭлемент();
	    	Если Покупашки.ЭтоГруппа() = 1 Тогда
	        	контр.ИспользоватьРодителя(Покупашки);
				КонтраИД = "Фирма Рога и Копыта";
				Если контр.НайтиПоНаименованию(КонтраИД) = 1 Тогда
					Сообщить("Дубль в справочнике Контрагенты"); //Едем лесом, не добавляем нового контрагента  
				Иначе
	            	контр.Новый();
					контр.Наименование = КонтраИД; 
					контр.УстановитьНовыйКод();
				КонецЕсли;
	    	Иначе
	        	Сообщить("Нет такой группы контрагентов.");
	    	КонецЕсли;
		КонецЕсли; 
	
	
         Объект = СоздатьОбъект("Справочник.ЮрЛица"); //ищем или создаём своё юр.лицо 
         Если Объект.НайтиПоНаименованию(КонтраИД) = 0 Тогда //если не нашли, тогда новый 
			Объект.Новый();
			Объект.Наименование       = КонтраИД; 
	         Объект.ПолнНаименование   = "ПолнНаименованиеЮрЛица"; 
	         Объект.ИНН                = "ИННЮрЛица"; 
	         Объект.Телефоны           = "ТелефоныЮрЛица"; 
	         Объект.ОКПО               = "ОКПО";  
		Иначе  //Если нашли, то меняем реквизиты, если надо.
	         Объект.ПолнНаименование   = "Измененный"; 
	         Объект.ИНН                = "ИННЮрЛица"; 
	         Объект.Телефоны           = "ТелефоныЮрЛица"; 
	         Объект.ОКПО               = "ОКПО";    
		КонецЕсли;	 
			  
			 Объект.Записать();
         	контр.ЮрФизЛицо = Объект.ТекущийЭлемент();
         	контр.Записать();
Показать


Единственное, сейчас разбираюсь как по умолчанию установить валюту и основной договор.
Может есть мылии по этому поводу?
4. awk 741 27.12.13 02:47 Сейчас в теме
(3) autogen, Основной договор - это реквизит контрагента, да и валюта то же реквизит. Может быть валюта реквизит периодический, тогда надо что-то типа: контр.ИспользоватьПериод(ТекущаяДАта())

Я тис лет пять уже не видел.
5. tdr1225 37 27.12.13 10:41 Сейчас в теме
(3) Разберись, как работает процедура ПриЗаписи() в форме элемента справочника Контрагенты. Там все найдешь.
Оставьте свое сообщение

Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот