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

Работа со справочниками

Автор Александр Нимгиров, 17 дек 2015, 12:34

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

Александр Нимгиров

Доброго времени суток! Вот начинаю постигать силу дзена 1с  и столкнулся с проблемой,дело в том,что у меня созданы два справочника СотрудникиОрганизаций и ФизическиеЛица и,собственно говоря, при создании нового сотрудника в первом справочники, создается запись во втором справочники и передает туда такие значения реквизитов:Наименование,дата рождения. Старался написать код,но никак не получается,ошибки не выдает,но поле наименование справочника ФизЛица пустое остается,но запись создается,в чем проблема?


&НаСервере
Процедура ПриЗаписиНаСервере(Отказ, ТекущийОбъект, ПараметрыЗаписи)

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

КонецПроцедуры


vitasw

НовЭл.Наименование = Объект.Наименование;

Александр Нимгиров

Спасибо большое!
Добавлено: 17 дек 2015, 13:18


Еще один вопрос по тебе
Исходя из того,что с помощью vitasw я все-таки смог сделать добавление данных в другой справочник,я подумал,и понял,что ведь при редактирование этих самых данных,то в другом справочнике также все будет добавлятся и как итог дублироваться,решил написать условие,но оно не работает,где я опять накосячил?)


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

ЕСЛИ НайденныйФизЛицо = Неопределено ТОГДА

НовЭл = СпрФизЛица.СоздатьЭлемент();
НовЭл.Наименование = Объект.Наименование;
НовЭл.ДатаРождения = Объект.ДатаРождения;
НовЭл.ИНН = Объект.ИНН;
НовЭл.Пол = Объект.Пол;
НовЭл.СНИЛС = Объект.СНИЛС;
НовЭл.Записать();

ИНАЧЕ

СпрФизЛица.Элемент.Наименование = Объект.Наименование;
СпрФизЛица.Элемент.ДатаРождения = Объект.ДатаРождения;
СпрФизЛица.Элемент.ИНН = Объект.ИНН;
СпрФизЛица.Элемент.Пол = Объект.Пол;
СпрФизЛица.Элемент.СНИЛС = Объект.СНИЛС;
СпрФизЛица.Записать();

КОНЕЦЕСЛИ;


Kironten

Проверяйте через ЭтоНовый()

Андрей Сисюкин

Во-первых, поиск по справочнику, в случае, если ничего не найдено возвращает пустую ссылку.
т.е. в твоём случае условие проверки будет:
если НайденныйФизЛицо = Справочники.ФизическиеЛица.ПустаяСсылка() тогда

В зависимости от платформы (с какой-то версии) можно написать:
Если НайденныйФизЛицо.Пустая() тогда

Во-вторых, возвращается ссылка и для того, что бы изменять нужно получить объект:
НайденныйФизЛицо.ПолучитьОбъект();

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

cska-fanat-kz

зачем автоматом создавать элементы справочников?
пользователи их обычно сами создают и заполняют...  :dfbsdfbsdf:
Получил помощь - скажи СПАСИБО.
Разобрался сам - расскажи другим.

vitasw

Цитата: cska-fanat-kz от 18 дек 2015, 08:29зачем автоматом создавать элементы справочников?
пользователи их обычно сами создают и заполняют...  :dfbsdfbsdf:

+1

Теги:

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

Рейтинг@Mail.ru

Поиск