Вход | Регистрация

1С:Предприятие :: 1С:Предприятие 8 общая

Убрать должность у сотрудника программно в ЗУП 2.5

Убрать должность у сотрудника программно в ЗУП 2.5
Я
   Чайник1983
 
28.05.18 - 08:50
Брали человека на работу по трудовому договору ввели ему должность и подразделение, потом оказалось что это не правильно и взяли его по договору подряда но должность осталась.
Скрин: https://yadi.sk/i/4gsoz8ij3Wbx3C
 
 
   Фрэнки
 
1 - 28.05.18 - 08:56
Есть элемент справочника. Есть у этого элемента непустые поля...

и что?
   Чайник1983
 
2 - 28.05.18 - 08:59
(1) И это поля нужно очистить (продолжаю мысль).
   Чайник1983
 
3 - 28.05.18 - 09:01
если это возможно.
   Фрэнки
 
4 - 28.05.18 - 09:01
(2) так в какой момент трудности появляются?

Вам нужен программный код, обработка, инструкция или конфигурация выдает ошибки и блокирует действие?
   Чайник1983
 
5 - 28.05.18 - 09:02
Процедура ОчиститьДолжности()
    
    Запрос = Новый Запрос;
    Запрос.Текст = 
        "ВЫБРАТЬ
        |    СотрудникиОрганизаций.Ссылка,
        |    СотрудникиОрганизаций.ТекущееПодразделениеОрганизации,
        |    СотрудникиОрганизаций.ТекущаяДолжностьОрганизации,
        |    СотрудникиОрганизаций.ВидДоговора
        |ИЗ
        |    Справочник.СотрудникиОрганизаций КАК СотрудникиОрганизаций
        |ГДЕ
        |    СотрудникиОрганизаций.ЭтоГруппа = ЛОЖЬ
        |    И СотрудникиОрганизаций.ВидДоговора = &ВидДоговора
        |    И СотрудникиОрганизаций.ТекущаяДолжностьОрганизации <> ЗНАЧЕНИЕ(Справочник.ДолжностиОрганизаций.ПустаяСсылка)";
    
    Запрос.УстановитьПараметр("ВидДоговора", Перечисления.ВидыДоговоровСФизЛицами.Подряда);
    
    РезультатЗапроса = Запрос.Выполнить();
    
    Выборка = РезультатЗапроса.Выбрать();
    Выгрузка = РезультатЗапроса.Выгрузить();
    
    
    Пока Выборка.Следующий() Цикл
        
        Если Выборка.ВидДоговора = Перечисления.ВидыДоговоровСФизЛицами.Подряда Тогда
            
            
            
        КонецЕсли;
        
    КонецЦикла;

КонецПроцедуры
   Чайник1983
 
6 - 28.05.18 - 09:03
сейчас немного не дописал.
   Чайник1983
 
7 - 28.05.18 - 09:07
Пока Выборка.Следующий() Цикл
        
        Если Выборка.ВидДоговора = Перечисления.ВидыДоговоровСФизЛицами.Подряда Тогда
            
        Сотрудник = Справочники.СотрудникиОрганизаций.НайтиПоНаименованию(Выборка.Ссылка);
        Должность = Сотрудник.ТекущаяДолжностьОрганизации;
    
Вот не знаю что дальше и правильно ли вообще делаю?
            
        КонецЕсли;
        
    КонецЦикла;
   Фрэнки
 
8 - 28.05.18 - 09:16
:) Копию базы делать не забывай

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

А программно решили чистить, что период уже успели закрыть?

Открывайте Синтакс-помощник и смотрите на
СправочникСсылка.<Имя справочника> (CatalogRef.<Имя справочника>)
ПолучитьОбъект (GetObject)

Ссылка уже есть в Выборке
   Чайник1983
 
9 - 28.05.18 - 09:25
Вы в следующий раз прямо в топике пишите, что опыта программирования нет, "но хочется научиться".- вот здесь содержится ответ на ваш вопрос)
   Чайник1983
 
10 - 28.05.18 - 10:00
(8) Отлично помогло,  спасибо за наводку)
 
 Рекламное место пустует
   Чайник1983
 
11 - 28.05.18 - 10:03
Пока Выборка.Следующий() Цикл
        
        Если Выборка.ВидДоговора = Перечисления.ВидыДоговоровСФизЛицами.Подряда Тогда
            
            Сотрудник = Выборка.Ссылка;    
            Объект = Сотрудник.ПолучитьОбъект();
            Объект.ТекущаяДолжностьОрганизации = Новый(Тип("СправочникОбъект.ДолжностиОрганизаций"));
            Попытка
                Объект.Записать();
            Исключение
                Предупреждение("" + Объект + " " + ОписаниеОшибки(), 6);
            КонецПопытки;
            
                
        КонецЕсли;
        
    КонецЦикла;
   Alexandr_U1982
 
12 - 28.05.18 - 10:32
(11) Объект.ТекущаяДолжностьОрганизации = Новый(Тип("СправочникОбъект.ДолжностиОрганизаций"));

можно заменить на

Объект.ТекущаяДолжностьОрганизации = Справочники.ДолжностиОрганизаций.ПустаяСсылка();

Список тем форума
Рекламное место пустует  Рекламное место пустует
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.
Рекламное место пустует