Вход | Регистрация
 
1С:Предприятие :: 1С:Предприятие 8 общая

КД. ПКО через промежуточный справочник

КД. ПКО через промежуточный справочник
Я
   Радим1987
 
10.11.20 - 22:59
Всем привет, вопрос по КД.
код справочника "Физлицо" (источник) - соответствует коду справочника "Сотрудники" (приемника).
Собственно вопрос как настроить ПКО Физ лицо-Физлицо с использованием справочника "Сотрудники" (промежуточного справочника)
   hhhh
 
1 - 11.11.20 - 00:01
(0) зачем? делайте 2 ПКО: Физ лицо-Физлицо и Физлицо - Сотрудники
   Радим1987
 
2 - 11.11.20 - 01:01
Сделал Так

ПКО  СправочникСсылка.ФизическиеЛица (источник) →(С использованием справочника "Сотрудники")→ СправочникСсылка.ФизическиеЛица (приемник)
- Не создавать новый объект в приемнике, если он НЕ найден = ИСТИНА
- Автоматически генерировать номер или код, если он не задан

ПередВыгрузкой
 
ВходящиеДанные = Новый Структура("КодПоиска");

Запрос = Новый Запрос;
Запрос.Текст = 
    "ВЫБРАТЬ
    |    Водители.ТабельныйНомер КАК Код
    |ИЗ
    |    РегистрСведений.Водители.СрезПоследних(, Физлицо = &Ссылка) КАК Водители";

Запрос.УстановитьПараметр("Ссылка", Источник.Ссылка);

РезультатЗапроса = Запрос.Выполнить();

Если НЕ РезультатЗапроса.Пустой() Тогда     
    Выборка = РезультатЗапроса.Выбрать();
    Выборка.Следующий();             
    ВходящиеДанные.КодПоиска = СокрЛП(Выборка.Код);     
    Сообщить(Выборка.Код);      
Иначе
    Отказ = Истина;
КонецЕсли;


ПоляПоиска
 
Если Не СвойстваПоиска["ЭтоГруппа"] Тогда
    
    Если ЗначениеЗаполнено(СвойстваПоиска["КодПоиска"]) Тогда
        
        Запрос = Новый Запрос;
        Запрос.Текст = 
        "ВЫБРАТЬ
        |    ТекущиеКадровыеДанныеСотрудников.ФизическоеЛицо КАК ФизическоеЛицо
        |ИЗ
        |    РегистрСведений.ТекущиеКадровыеДанныеСотрудников КАК ТекущиеКадровыеДанныеСотрудников
        |ГДЕ
        |    ТекущиеКадровыеДанныеСотрудников.Сотрудник.Код = &КодПоиска";
        
        Запрос.УстановитьПараметр("КодПоиска", ПараметрыОбъекта["КодПоиска"]);     
        
        РезультатЗапроса = Запрос.Выполнить();
        
        ВыборкаДетальныеЗаписи = РезультатЗапроса.Выбрать();
        
        Если ВыборкаДетальныеЗаписи.Следующий() Тогда         
            СсылкаНаОбъект = ВыборкаДетальныеЗаписи.ФизическоеЛицо;           
        Иначе 
            ПрекратитьПоиск = Истина;          
        КонецЕсли;  
    КонецЕсли;
Иначе 
    СтрокаИменСвойствПоиска = "ЭтоГруппа, Наименование";   
КонецЕсли;



ПКС
- Код(источник) - Код(Приемник) Отключить = Истина;
- Наименование (источник) - Наименование (Приемник) Поиск = Истина
- ЭтоГруппа(источник) - ЭтоГруппа(Приемник) Поиск = Истина
- Параметр "КодПоиска" Поиск = Истина, Передавать данные в параметр = Истина, Получить значение из входящих данных = Истина

Список тем форума
Рекламное место пустует  Рекламное место пустует
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.