|
ЗУП переименование табельных номеров сотрудников | ☑ | ||
---|---|---|---|---|
0
dmitry86
06.07.14
✎
18:48
|
Добрый день.
Конфигурация Зарплата и Управление персоналом 8.2 Мне необходимо выполнить следующее задание: Справочник сотрудники. Несколько организации в базе. Сделать обработку. Которая берет префикс из организации и перенумеровывает сотрудников так, что бы к табельному номеру добавился префикс в начало номера и он стал полным до 10 символов. То есть был номер 001, стал номер ххх0000001. я тут набросал кое-что, подскажите насколько это решение удовлетворяет заданию? &НаКлиенте Процедура Запуститьобработку(Команда) ЗапуститьобработкуНаСервере(); КонецПроцедуры &НаСервере Процедура ЗапуститьобработкуНаСервере() Выборка = Справочники.СотрудникиОрганизаций.Выбрать(); //Выборка = Справочники.СотрудникиОрганизаций.ПолучитьОбъект(); Пока Выборка.Следующий() Цикл // начало перебора элементов справочника в цикле //действия с очередным элементом ... Сообщить("Сотрудник " + Выборка.Наименование); об = Выборка.ПолучитьОбъект(); НоваяДлинаНомера = 7; // Это параметр, он может быть разный :-) СтарыйНомер = об.Код; СтарыйНомер = СокрЛП(СтарыйНомер); НовыйНомер = Прав(СтарыйНомер, НоваяДлинаНомера); Префиксорганизации = Прав("000" + об.Организация.Префикс, 3); Если СтарыйНомер <> НовыйНомер Тогда об.Код = Префиксорганизации + НовыйНомер; Сообщить(об); Сообщить(об.Код); об.Записать(); КонецЕсли; КонецЦикла; КонецПроцедуры |
|||
1
Wobland
06.07.14
✎
18:50
|
запустить не догадался?
|
|||
2
dmitry86
06.07.14
✎
18:54
|
запустил, вроде работает, но хотелось бы узнать насколько это грамотное решение или колхоз полный?
|
|||
3
Wobland
06.07.14
✎
19:07
|
запрос с итогами по организации, НовыйНомер=Префикс+Прав("0000000"+СтарыйНомер, 7)...
|
|||
4
dmitry86
06.07.14
✎
20:00
|
(3)
я прошу прощения может я не совсем правильно вас понял, возможно вы имели ввиду нечто подобное? &НаКлиенте Процедура Запуститьобработку(Команда) ЗапуститьобработкуНаСервере(); КонецПроцедуры &НаСервере Процедура ЗапуститьобработкуНаСервере() Запрос = Новый Запрос(" |ВЫБРАТЬ | Код, | Организация.Префикс как Префикс |ИЗ | Справочник.СотрудникиОрганизаций |АВТОУПОРЯДОЧИВАНИЕ"); Результат = Запрос.Выполнить().Выбрать(); Пока Результат.Следующий() Цикл //Код = Результат.Наименование; Код = Результат.Префикс + Прав("000" + Результат.Код, 7); Сообщить(Код); КонецЦикла; КонецПроцедуры |
|||
5
dmitry86
06.07.14
✎
21:11
|
(4) как записать код?
|
|||
6
dmitry86
06.07.14
✎
22:11
|
Народ гляньте вот так пойдет?
Запрос = Новый Запрос(" |ВЫБРАТЬ | Код, | Организация.Префикс как Префикс |ИЗ | Справочник.СотрудникиОрганизаций |АВТОУПОРЯДОЧИВАНИЕ"); Результат = Запрос.Выполнить().Выбрать(); Пока Результат.Следующий() Цикл РезультатКод = Справочники.СотрудникиОрганизаций.НайтиПоКоду(Результат.Код).ПолучитьОбъект(); РезультатКод.Код = Результат.Префикс + Прав("000" + Результат.Код, 7); Сообщить(РезультатКод.Код); РезультатКод.Записать(); КонецЦикла; |
|||
7
mikecool
06.07.14
✎
22:12
|
(6) работает правильно? если да, то пох - обработка то разовая
|
|||
8
FireAlex
06.07.14
✎
22:26
|
вдруг коды повторяются?
лучше вытащить из запроса ещё ссылку на справочник, и по ней получать объект. |
|||
9
dmitry86
06.07.14
✎
22:36
|
(8) что такое ссылка на справочник, поясните пожалуйста?
|
|||
10
Доминошник
06.07.14
✎
22:48
|
(6) Префикс может быть пустым - тоже как-то надо учесть?
(8) Добавить в Выбрать (помимо Код, Организация.Префикс) ещё и Ссылка. |
|||
11
dmitry86
06.07.14
✎
23:09
|
(10) Запрос = Новый Запрос("
|ВЫБРАТЬ | Код, | Организация.Префикс как Префикс, | Ссылка |ИЗ | Справочник.СотрудникиОрганизаций |АВТОУПОРЯДОЧИВАНИЕ"); Результат = Запрос.Выполнить().Выбрать(); Пока Результат.Следующий() Цикл РезультатКод = Справочники.СотрудникиОрганизаций.НайтиПоКоду(Результат.Ссылка).ПолучитьОбъект(); РезультатКод.Код = Результат.Префикс + Прав("000" + Результат.Код, 7); Сообщить(РезультатКод.Код); РезультатКод.Записать(); КонецЦикла; |
|||
12
cons74
07.07.14
✎
07:28
|
Колхоз однозначно. Есть же типовая обработка "универсальный подбор и обработка объектов" - там есть стандартный механизм перенумерации, в т.ч. со сменой префикса.
|
|||
13
dmitry86
07.07.14
✎
18:21
|
(12) есть конечно, но это было моим заданием для приглашения на собеседование программист-стажер 1с))
|
|||
14
Wobland
07.07.14
✎
18:24
|
(13) а ещё с таким почерком. фу
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |