helpf.pro
Регистрация

v8: Как программно добавить сотрудника?

Gvizzard
20.02.2013 17:39Прочитано: 5822
Делаю обработку по вводу данных из dbf файла
Одна функция ищет в справочнике сотрудника и либо возвращает его, либо добавляет нового и возвращает. Т.к. Сотруднику требуется Физлицо, то другая функция аналогичным образом возвращает либо свежесозданное, либо существующее Физлицо.
При работе происходят какие-то чудеса. Если Физлицо уже есть, то этот реквизит Сотрудника добавляется нормально. Если оно только создано, то в справочнике "Физические лица" создается нормально, функцией возвращается, но Сотруднику не добавляется.
Что не так? Код приведен ниже

Код 1C v 8.х
 // Поиск сотрудника в базе или создание нового
Функция ПолучитьСотрудника(Base)
Сотрудник = Справочники.СотрудникиОрганизаций.НайтиПоКоду(Base.FcAc_Rn);
//Если нет, то создладим нового
Если Сотрудник = Справочники.СотрудникиОрганизаций.ПустаяСсылка() тогда
Сотрудник = Справочники.СотрудникиОрганизаций.СоздатьЭлемент();
ФизЛицо = ПолучитьФизЛицо(Base);
Сотрудник.Физлицо = ФизЛицо;
Сотрудник.Код = Base.FcAc_Rn;
Сотрудник.Наименование = ФизЛицо.Наименование;
Сотрудник.Организация = Учреждение;
Сотрудник.Записать();
КонецЕсли;

Возврат Сотрудник;
КонецФункции

// Поиск физлица или создание нового
Функция ПолучитьФизЛицо(Base)
ФизЛицо = Справочники.ФизическиеЛица.НайтиПоКоду(Base.OrBase_Rn);
//Если нет, то создадим нового
Если ФизЛицо = Справочники.ФизическиеЛица.ПустаяСсылка() тогда
ФизЛицо = Справочники.ФизическиеЛица.СоздатьЭлемент();
ФизЛицо.Код = Base.OrBase_Rn;
ФизЛицо.Наименование = СокрП(Base.SurName) + " " + СокрП(Base.FirstName) + " " + СокрП(Base.SecondName);
ФизЛицо.ДатаРождения = Base.BirthDay;
ФизЛицо.Записать();
КонецЕсли;

Возврат ФизЛицо;
КонецФункции
Yandex
Возможно, вас также заинтересует
Реклама на портале
E_Migachev
20.02.2013 17:48Ответ № 1
(0) Gvizzard,
Код 1C v 8.х
 Возврат ФизЛицо.Ссылка;   
Подсказка: Для редактирования своего ответа щелкните по значку (справа)
Вы не можете отправить комментарий анонимно, пожалуйста войдите или зарегистрируйтесь.