Версия для печати темы (https://pro1c.org.ua/index.php?s=a7234e832e41c2433a32b8de7e5c44fb&showtopic=5467)

Нажмите сюда для просмотра этой темы в обычном формате

Украинский 1С форум: всё про 1С 8.3, 1С 8.2, 1С 8.1, 1С 8.0, 1С 7.7 _ 1С Предприятие 8 _ Використання "УникальныйИдентификатор" для заповнення перехрестних посилань на прикладі підлеглих довідників

Автор: mister-x 25.11.11, 18:16

Нехай в нас є довідники: Контрагенты і підлеглий до нього - КонтактныеЛица. Див. мал.





У довіднику Контрагенты є реквізит ОсновноеКонтактноеЛицо, типу СправочникСсылка.КонтактныеЛица.



Крім того ну формі елементу довідника Контрагенты є реквізит форми Имя.



Потрібно при створенні нового елементу довідника Контрагенты (при його записі), заповнювати підлеглий довідник КонтактныеЛица значенням із поля Имя і одночасно прописувати його у реквізит ОсновноеКонтактноеЛицо довідника Контрагенты. Виходить система перехресних посилань між довідником-власником і підлеглим до нього довідником.

Отже, ця задача вирішуються так - у формі елементу довідника Контрагенты прописуємо код:

&НаСервере
Перем НоваяСсылка;


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

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


Результат на мал.






"По мотивам" відео Гильова, Насипова. Професійне програмування в 1С:Підприємство 8.х.

Украинский 1С форум: всё про 1С 8.3, 1С 8.2, 1С 8.1, 1С 8.0, 1С 7.7
https://pro1c.org.ua