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

1С:Предприятие ::

Метки: 

Перенос элемента справочника в другую группу

Я
   9451523
 
13.03.18 - 09:28
Привет Всем
Есть справочник Сотрудники в которой создали несколько основных групп с именем подразделений, в каждой группе созданы еще группы с названиями отделов подразделений, мне нужно массово разнести всех сотрудников по группам отделов подразделений, сотрудников больше тысячи, в ручную их по одному переносить в группу довольно муторно, решил накидать обработку, вот код:

Функция ВыборОтдела(ВыбСотрудник)
    Запрос = Новый Запрос;
    Запрос.Текст = 
        "ВЫБРАТЬ
        |    РаботникиОрганизаций.Сотрудник,
        |    РаботникиОрганизаций.ПодразделениеОрганизации
        |ИЗ
        |    РегистрСведений.РаботникиОрганизаций КАК РаботникиОрганизаций
        |ГДЕ
        |    РаботникиОрганизаций.ПодразделениеОрганизации = &Отдел";

    Запрос.УстановитьПараметр("Отдел", Отдел);

    Результат = Запрос.Выполнить();

    Выборка = Результат.Выбрать();
       Пока Выборка.Следующий() Цикл
        Если СокрЛП(Выборка.Сотрудник) = СокрЛП(ВыбСотрудник) Тогда
            Возврат Выборка.ПодразделениеОрганизации;
        КонецЕсли;    
    КонецЦикла;
    
КонецФункции

Процедура ПереносВГруппу(Данные)
     Спр = Справочники.Сотрудники.Выбрать();
     СпрОтдел = Справочники.Сотрудники;
     ГруппаОтдела = Справочники.Сотрудники.НайтиПоНаименованию(Отдел);
     Пока Спр.Следующий() Цикл
     ИмяОтдела = ВыборОтдела(Спр.Наименование);
     Если ЗначениеЗаполнено(ИмяОтдела) И ЗначениеЗаполнено(Спр.Наименование) Тогда
         Объект = ГруппаОтдела.ПолучитьОбъект();
         Объект.Родитель = ЭтотОбъект.Отдел;
          Объект.Записать();
     
     КонецЕсли; 
     КонецЦикла;     

КонецПроцедуры 
ввиду отсутствия опыта не смог сообразить что правильно прописать в цикле Пока Спр.Следующий(), код не срабатывает , тупо создает новую группу с именем отдела, подскажите если не трудно 
С Уважением Дамир
 
  Рекламное место пустует
   Cyberhawk
 
1 - 13.03.18 - 09:32
А ты там кем?
   9451523
 
2 - 13.03.18 - 09:36
Сисадмин начал осваивать 1с
   hhhh
 
3 - 13.03.18 - 09:55
(2) ИмяОтдела = ВыборОтдела(Спр.Наименование);

ты находишь

а потом ИмяОтдела ты нигде не используешь, зачем тогда находил его?
   9451523
 
4 - 13.03.18 - 10:01
имяОтдела использовал для сравнения так как подоразделения мне приходится вытаскивать через запрос
   9451523
 
5 - 13.03.18 - 10:04
в справочнике Сотрудники нету реквизита Подразделение, он только на форме в виде элемента формы, я могу достать значение подразделения только через регистры сведений ПодразделениеОрганизации
   catena
 
6 - 13.03.18 - 10:47
Выборка = Результат.Выбрать();
       Пока Выборка.Следующий() Цикл
        Если СокрЛП(Выборка.Сотрудник) = СокрЛП(ВыбСотрудник) Тогда
            Возврат Выборка.ПодразделениеОрганизации;
        КонецЕсли;    
    КонецЦикла;


Вот ты же догадался уже, что в запросе можно делать отбор по параметрам. Так зачем же вот это???
   catena
 
7 - 13.03.18 - 10:49
>>код не срабатывает , тупо создает новую группу с именем отдела

Это не правда, в приведенном коде нет создания объекта.
   catena
 
8 - 13.03.18 - 10:52
И что такое Отдел и почему он используется то как строка, то как ссылка-родитель?
   Остап Сулейманович
 
9 - 13.03.18 - 10:56
(0) Не нужно оно ни тебе, ни кому бы-то еще. Динамический список можно группировать/отбирать по любому полю. Хочешь - по полю "подразделение", хочешь - по возрасту ...
Озаботься группировкой. И не нужно будет таскать сотрудников из группы в группу в случае увольнения или перемещения.
   Cyberhawk
 
10 - 13.03.18 - 11:00
Сколько сисадмину платят за решение вопроса?
 
  Рекламное место пустует
   9451523
 
11 - 13.03.18 - 11:13
ни хрена не платят
   9451523
 
12 - 13.03.18 - 11:14
форма обычная не управляемая, где там группировать в динамическом списке?
   hhhh
 
13 - 13.03.18 - 11:15
(12) если у вас зуп, то там уже всё сделано. Слева дерево подразделений, справа список сотрудников
   9451523
 
14 - 13.03.18 - 11:21
нет, список подразделений создан там же в Сотрудниках то есть где поле Наименование созданые группы подразделений, если конечно вручную мышкой перетянуть всех сотрудников по одному каждого в свой отдел то слева откроется дерево со списком
   catena
 
15 - 13.03.18 - 11:26
(14) Вы же понимаете, что вам еще придется прописывать пересортировку сотрудников при кадровых перемещениях?
   Вася Теркин
 
16 - 13.03.18 - 11:26
(7) Скорее всего он просто не весь код показал....
(0) Функция ВыборОтдела(ВыбСотрудник) - шедевр. переменная Отдел не определена, хотя это и не удивительно. Ведь именно её и надо найти в функции...
   Вася Теркин
 
17 - 13.03.18 - 11:27
(8) переменная не определена и можно использовать как хочешь.
   Вася Теркин
 
18 - 13.03.18 - 11:30
(15) перепрописывать будет следующий сисадмин.
(0) Не делай так. Заболей пока постановщика не уволят.


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