Реклама на этом месте
Форум 1С
Форум 1С
Программистам. Бухгалтерам. Администраторам. Пользователям
Задай вопрос - получи решение проблемы. Без троллинга и флуда.
12 Дек 2017, 23:12
МультиВход
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Не получили письмо с кодом активации?
 
collapse

Автор Тема: Как программно добавить сотрудника?  (Прочитано 6769 раз)

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

Оффлайн Givy

  • *
  • Сообщений: 25
  • РЕПУТАЦИЯ: 0
  • Регистрация: 2011-10-07
  • Сайт: 
  • Профессия: Программист 8.1
Делаю обработку по вводу данных из dbf файла
Одна функция ищет в справочнике сотрудника и либо возвращает его, либо добавляет нового и возвращает. Т.к. Сотруднику требуется Физлицо, то другая функция аналогичным образом возвращает либо свежесозданное, либо существующее Физлицо.
При работе происходят какие-то чудеса. Если Физлицо уже есть, то этот реквизит Сотрудника добавляется нормально. Если оно только создано, то в справочнике "Физические лица" создается нормально, функцией возвращается, но Сотруднику не добавляется.
Что не так? Код приведен ниже

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

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

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

Возврат ФизЛицо;
КонецФункции
Если Вам кажется, что я задал слишком простой и тупой вопрос, значит так и есть.
Все равно ответьте, я еще только учусь.


Оффлайн Dethmontt

  • Денис
  • Модератор
  • *****
  • Сообщений: 2857
  • РЕПУТАЦИЯ: 546
  • КПД: 19%
  • Адын Эс
  • Регистрация: 2010-11-01
  • Сайт: 
  • Профессия: Программист 1С
Возврат ФизЛицо.Ссылка;
Если долго всматриваться в учебник...то в голову может прийти мысль его открыть!

Оффлайн snake586

  • *
  • Сообщений: 1
  • РЕПУТАЦИЯ: 0
  • Регистрация: 2014-10-02
  • Сайт: 
  • Профессия: Ученик 1С
Из внешней обработки пытаюсь добавить сотрудника. Физлицо создается, а новый сотрудник не появляется. Исключение не отрабатывается, ошибка не возникает. Что не так делаю? Или какие могут быть причины не добавления нового сотрудника?

Процедура КнопкаВыполнитьНажатие(Кнопка)
   ФизЛк = Справочники.ФизическиеЛица.СоздатьЭлемент();
   ФизЛк.Наименование = ИмяСотрудника;
   ФизЛк.Записать();
   СотОр = Справочники.СотрудникиОрганизаций.СоздатьЭлемент();
   СотОр.Наименование = ИмяСотрудника;
   СотОр.Физлицо = ФизЛк.Ссылка;
   СотОр.Организация = Справочники.Организации.НайтиПоКоду("000000001");
   СотОр.ПодразделениеОрганизации = Справочники.ПодразделенияОрганизаций.НайтиПоКоду("000000001");
        Попытка
            СотОр.Записать();   
        Исключение
            Предупреждение("Не удалось записать объект """ + СотОр + """!
                   |" + ОписаниеОшибки(), 60);
   КонецПопытки;
КонецПроцедуры

Оффлайн sertak

  • ****
  • Сообщений: 274
  • РЕПУТАЦИЯ: 74
  • КПД: 27%
  • Регистрация: 2013-01-16
    • Skype: vitaly_sertakov
  • Сайт: www.sertakov.ru
  • Профессия: Программист 1С
В УПП, например, ваш код создает сотрудника, но сотрудник не отображается в списке, пока не установишь флаг в меню Действия  Показывать архив.
Если ты знаешь свой путь, то удачи и неудачи равно продвигают тебя вперед


Теги:
 


* Живое общение

Не устроил ответ?

Зарегистрируйся и задай свой вопрос. Живое общение приносит результат намного быстрее.


Зарегистрироваться

* Реклама

Смотрите бесплатно более 300 видеоуроков по работе в 1С:Бухгалтерия 8 и 1C:ЗУП 8 ред. 3.0

СМОТРЕТЬ >>

* Поиск

* Последние задачи на разработку (фриланс)

* Реклама

* Последние вакансии

* Топ 10 авторов за месяц

Геннадий ОбьГЭС Геннадий ОбьГЭС
170 Сообщений
ilyay ilyay
75 Сообщений
oleg-x
55 Сообщений
alex0402
49 Сообщений
andron81_81
42 Сообщений
AIFrame
37 Сообщений
MuI_I_Ika MuI_I_Ika
33 Сообщений
BuhRust
30 Сообщений
Golickoff Golickoff
28 Сообщений
Dima Dddd Dima Dddd
26 Сообщений

* Кто онлайн

  • Точка Гостей: 292
  • Точка Скрытых: 0
  • Точка Пользователей: 4
  • Точка Сейчас на форуме:

* Облако тэгов

* Форум 1С с мобильного

* Инструменты

* Дополнительно

Поиск

 
SimplePortal 2.3.5 © 2008-2012, SimplePortal