Форум 1С
Программистам, бухгалтерам, администраторам, пользователям
Задай вопрос - получи решение проблемы
22 ноя 2024, 17:57

1C 8 розница 2.14 ФИО

Автор vvs_1979, 10 дек 2023, 14:04

0 Пользователей и 1 гость просматривают эту тему.

vvs_1979

Вся задача (как я понял заказчика):

Есть самосозданный справочник, анкет с полями загружаемыми из csv файла.
(загрузку и добавление сделал)
Надо его синхронизировать (дополнять поля) из справочника физ лиц 1с.
Вот пытаюсь прочитать ФИО в справочнике 1С.
Нашёл только как пробегать по справочнику физ лиц.
А как ФИО там читать ?

antoneus

Показывайте код - как пробегаете по справочнику физлиц.

vvs_1979

Выборка =   Справочники.ФизическиеЛица.Выбрать();
Пока Выборка.Следующий() Цикл
//вот здесь мне надо прочитать ФИО
//говорят где то в РегистрыСведений.ФИОФизЛиц
КонецЦикла;

antoneus

В общем, регистр периодический, т.к. ФИО могут меняться, поэтому таким запросом:

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

тзФИО = Запрос.Выполнить().Выгрузить();

На выходе получаем таблицу значений, в которой ссылка на физлицо и его фамилия-имя-отчество. Не знаю, как вы связываете справочник физлиц с данными из самосозданного справочника, надеюсь, как-то связываете.

vvs_1979

А без SQL есть возможность сделать (заказчик просил) ?

antoneus

Ну это не SQL, строго говоря)
Ладно, как новый справочник связан со справочником физлиц?

vvs_1979

Мой справочник ?
Пока никак не связан. Хотел сделать какую нибудь ссылку на физ лица.

vvs_1979

Так, по идее, по ФИО.

antoneus

Срез = РегистрыСведений.ФИОФизическихЛиц.СрезПоследних();
Выборка = Справочники.НовыйСправочник.Выбрать();
Пока Выборка.Следующий() Цикл
    ФизЛицо = Справочники.ФизическиеЛица.НайтиПоНаименованию(Выборка.Наименование);
    Если ФизЛицо.Пустая() Тогда
        Продолжить
    КонецЕсли;
    стр = Срез.Найти(ФизЛицо, "ФизическоеЛицо");
    Если стр <> Неопределено Тогда
        Фамилия = стр.Фамилия;
        Имя = стр.Имя;
        Отчество = стр.Отчество;
        //дальше делаем че нужно
    КонецЕсли;
КонецЦикла;

Вместо НовыйСправочник подставляем имя нашего справочника.

vvs_1979

Сенкс. Буду пробовать.

Теги:

Похожие темы (5)

Рейтинг@Mail.ru

Поиск