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

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

Gvizzard
20.02.2013 17:39Прочитано: 5966
Делаю обработку по вводу данных из 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.х
 Возврат ФизЛицо.Ссылка;   
Подсказка: Для быстрого поиска ответов - используйте 'Поиск'
Вы не можете отправить комментарий анонимно, пожалуйста войдите или зарегистрируйтесь.
Загрузка... Дождитесь завершения!