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

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

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

Перенос элемента справочника в другую группу
Я
   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 человек.
Рекламное место пустует