Имя: Пароль:
1C
1С v8
Перекрестные ссылки в справочнике
0 Aleksey1989
 
20.02.13
14:17
Добрый день. Что-то никак не могу понять, как можно реализовать следующее:
Есть справочник "Контрагенты", у этого справочника есть реквизит "КонтактноеЛицо", который тоже имеет тип "СправочникСсылка".
В форме элемента справочника "Контрагенты" я создаю текстовое поле, в котором будет указываться наименование контактного лица, следовательно при записи элемента справочника "Контрагенты" должно создаваться контактное лицо и привязываться именно к этому справочнику.

На ум пока приходит вручную создание уникального идентификатора, м.б. есть более простые решения?
1 lxndr
 
20.02.13
14:20
Зачем текстовое поле?
2 Aleksey1989
 
20.02.13
14:23
(1) А каким оно должно быть? Суть в том, чтобы контактное лицо заводилось из той же формы, что и контрагент. Клиент не хочет открывать еще одну форму и в ней создавать контактное лицо. В какой-то CRM, кстати, этот механизм был реализован.
3 hhhh
 
20.02.13
14:25
(2) кнопка "Записать" в форме должна спасти гиганта мысли.
4 lxndr
 
20.02.13
14:25
Обработчик ПередЗаписью: создаешь КонтЛицо, записываешь, ссылку присваиваешь реквизиту контрагента
5 Aleksey1989
 
20.02.13
14:32
Вот такой код решает мою проблему:
&наСервере
Процедура СоздатьКонтрагента()

   Контрагент = Справочники.Контрагенты.СоздатьЭлемент();
   Контрагент.Наименование = Объект.КраткоеНаименованиеКонтрагента;
   Контрагент.НаименованиеПолное = Объект.ПолноеНаименованиеКонтрагента;
   Контрагент.ЮрФизЛицо = Объект.ЮрФизЛицо;
   Контрагент.Записать();
   
   КонтактноеЛицоКонтрагента = Справочники.КонтактныеЛица.СоздатьЭлемент();
   КонтактноеЛицоКонтрагента.Наименование = Объект.НаименованиеКонтактногоЛица;
   КонтактноеЛицоКонтрагента.Владелец = Контрагент.Ссылка;
   КонтактноеЛицоКонтрагента.Записать();
   
   Контрагент.КонтактноеЛицо = КонтактноеЛицоКонтрагента.Ссылка;
   Контрагент.Записать();
КонецПроцедуры
6 Aleksey1989
 
20.02.13
14:34
(5) + забыл сказать, создание контрагента будет не через форму справочника "Контрагенты", а через обработку.
7 mikecool
 
20.02.13
14:42
емнип, в типовой упп это уже реализовано
8 mikecool
 
20.02.13
14:43
+7 если ответственный не выбран, а введены ФИО - создается новый
9 lxndr
 
20.02.13
14:43
(7) ага, помощник ввода контров
Компьютер — устройство, разработанное для ускорения и автоматизации человеческих ошибок.