Имя: Пароль:
1C
1С v8
Создание нового контрагента
0 neo1109
 
14.02.17
09:32
Рискну испытать насмешки и праведный гнев многомудрых форумчан )
Задача простая по своей сути, однако пока не знаю как реализовать.

в справочник Контрагенты добавлена отдельная форма элемента - специально для вида "ФизЛицо".
в справочнике ИнформационныеКарты есть поле ВладелецКарты типа справочник.Контрагенты. добавил кнопку "Новый" и вот надо по нажатии на нее создать нового контрагента, открыв при этом ту самую отдельную форму, по закрытию формы если новый элемент успешно создался - присвоить его полю ВладелецКарты.
что-то вроде:

НовыйКонтрагент = Справочники.Контрагенты.СоздатьЭлемент();
    ФормаНовогоКонтрагента = НовыйКонтрагент.ПолучитьФорму("ФормаЭлементаФизЛицо");
    ФормаНовогоКонтрагента.Открыть();
    ВладелецКарты = НовыйКонтрагент.Ссылка;

но этот код нерабочий. от слова "совсем".
1 Fish
 
14.02.17
09:33
Давай сначала. УФ или ОФ?
2 neo1109
 
14.02.17
09:35
НовыйКонтрагент = Справочники.Контрагенты.СоздатьЭлемент();
    ФормаНовогоКонтрагента = НовыйКонтрагент.ПолучитьФорму("ФормаЭлементаФизЛицо");
    ФормаНовогоКонтрагента.ОткрытьМодально();
    Попытка
        НовыйКонтрагент.Записать();
    Исключение
        Сообщить(ОписаниеОшибки());
        Возврат;
    КонецПопытки;
    ВладелецКарты = НовыйКонтрагент.Ссылка;

вот так - работает.

(1) сорри, ОФ. УТП для Казахстана, ред.2.0.10.
3 h-sp
 
14.02.17
10:41
(2) ну правильно всё.

ФормаНовогоКонтрагента.Открыть();

- это длительная операция, она выполняется параллельно с основным кодом, поэтому

ВладелецКарты = НовыйКонтрагент.Ссылка;

выполняется гораздо раньше, чем откроется форма.
Компьютеры — это как велосипед. Только для нашего сознания. Стив Джобс