|
Перенос элемента справочника в другую группу | ☑ | ||
---|---|---|---|---|
0
9451523
13.03.18
✎
09:28
|
Привет Всем
Есть справочник Сотрудники в которой создали несколько основных групп с именем подразделений, в каждой группе созданы еще группы с названиями отделов подразделений, мне нужно массово разнести всех сотрудников по группам отделов подразделений, сотрудников больше тысячи, в ручную их по одному переносить в группу довольно муторно, решил накидать обработку, вот код: Функция ВыборОтдела(ВыбСотрудник) Запрос = Новый Запрос; Запрос.Текст = "ВЫБРАТЬ | РаботникиОрганизаций.Сотрудник, | РаботникиОрганизаций.ПодразделениеОрганизации |ИЗ | РегистрСведений.РаботникиОрганизаций КАК РаботникиОрганизаций |ГДЕ | РаботникиОрганизаций.ПодразделениеОрганизации = &Отдел"; Запрос.УстановитьПараметр("Отдел", Отдел); Результат = Запрос.Выполнить(); Выборка = Результат.Выбрать(); Пока Выборка.Следующий() Цикл Если СокрЛП(Выборка.Сотрудник) = СокрЛП(ВыбСотрудник) Тогда Возврат Выборка.ПодразделениеОрганизации; КонецЕсли; КонецЦикла; КонецФункции Процедура ПереносВГруппу(Данные) Спр = Справочники.Сотрудники.Выбрать(); СпрОтдел = Справочники.Сотрудники; ГруппаОтдела = Справочники.Сотрудники.НайтиПоНаименованию(Отдел); Пока Спр.Следующий() Цикл ИмяОтдела = ВыборОтдела(Спр.Наименование); Если ЗначениеЗаполнено(ИмяОтдела) И ЗначениеЗаполнено(Спр.Наименование) Тогда Объект = ГруппаОтдела.ПолучитьОбъект(); Объект.Родитель = ЭтотОбъект.Отдел; Объект.Записать(); КонецЕсли; КонецЦикла; КонецПроцедуры ввиду отсутствия опыта не смог сообразить что правильно прописать в цикле Пока Спр.Следующий(), код не срабатывает , тупо создает новую группу с именем отдела, подскажите если не трудно С Уважением Дамир |
|||
1
Cyberhawk
13.03.18
✎
09:32
|
А ты там кем?
|
|||
2
9451523
13.03.18
✎
09:36
|
Сисадмин начал осваивать 1с
|
|||
3
hhhh
13.03.18
✎
09:55
|
(2) ИмяОтдела = ВыборОтдела(Спр.Наименование);
ты находишь а потом ИмяОтдела ты нигде не используешь, зачем тогда находил его? |
|||
4
9451523
13.03.18
✎
10:01
|
имяОтдела использовал для сравнения так как подоразделения мне приходится вытаскивать через запрос
|
|||
5
9451523
13.03.18
✎
10:04
|
в справочнике Сотрудники нету реквизита Подразделение, он только на форме в виде элемента формы, я могу достать значение подразделения только через регистры сведений ПодразделениеОрганизации
|
|||
6
catena
13.03.18
✎
10:47
|
Выборка = Результат.Выбрать();
Пока Выборка.Следующий() Цикл Если СокрЛП(Выборка.Сотрудник) = СокрЛП(ВыбСотрудник) Тогда Возврат Выборка.ПодразделениеОрганизации; КонецЕсли; КонецЦикла; Вот ты же догадался уже, что в запросе можно делать отбор по параметрам. Так зачем же вот это??? |
|||
7
catena
13.03.18
✎
10:49
|
>>код не срабатывает , тупо создает новую группу с именем отдела
Это не правда, в приведенном коде нет создания объекта. |
|||
8
catena
13.03.18
✎
10:52
|
И что такое Отдел и почему он используется то как строка, то как ссылка-родитель?
|
|||
9
Остап Сулейманович
13.03.18
✎
10:56
|
(0) Не нужно оно ни тебе, ни кому бы-то еще. Динамический список можно группировать/отбирать по любому полю. Хочешь - по полю "подразделение", хочешь - по возрасту ...
Озаботься группировкой. И не нужно будет таскать сотрудников из группы в группу в случае увольнения или перемещения. |
|||
10
Cyberhawk
13.03.18
✎
11:00
|
Сколько сисадмину платят за решение вопроса?
|
|||
11
9451523
13.03.18
✎
11:13
|
ни хрена не платят
|
|||
12
9451523
13.03.18
✎
11:14
|
форма обычная не управляемая, где там группировать в динамическом списке?
|
|||
13
hhhh
13.03.18
✎
11:15
|
(12) если у вас зуп, то там уже всё сделано. Слева дерево подразделений, справа список сотрудников
|
|||
14
9451523
13.03.18
✎
11:21
|
нет, список подразделений создан там же в Сотрудниках то есть где поле Наименование созданые группы подразделений, если конечно вручную мышкой перетянуть всех сотрудников по одному каждого в свой отдел то слева откроется дерево со списком
|
|||
15
catena
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) Не делай так. Заболей пока постановщика не уволят. |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |