|
ЗУП. Удалить суффиксы "осн" и "совм" у сотрудников | ☑ | ||
---|---|---|---|---|
0
Panda_oOo
21.07.20
✎
20:48
|
Всем доброго вечера.
Потихоньку занимаюсь 1С. учусь. И вот столкнулся с такой задачей: из ЗУПа 2.0 в ЗУП 3.1 были перенесены сотрудники (не знаю, чем и как, до меня было). У некоторых сотрудников в имени появилась приставка (совм.) и (осн.). Как эти приставки ставятся программно, я в принципе знаю. И в 2-ке, и в 3.1. Но прикол в том, что данная приписка существует как бы сама по себе, и в 3.1 не получается отключить. Мной героически было принято решение написать обработку, которая бы стирала эти приписки у сотрудника. Собственно, этот код я и прошу глянуть. Вроде бы я на тестовой протестировал, все приписки удалятся без последствий, ссылки на сотрудников работают корректно, документы открываются. Но по причине малого опыта прошу посмотреть, и если я где-то ошибся, то направить)) Сам код: &НаСервере Процедура КнопкаВыполнитьНаСервере() Запрос = Новый Запрос; Запрос.УстановитьПараметр("ПараметрСтрокаПоиска", "%" + "(совм.)"); Запрос.Текст = "ВЫБРАТЬ | Ссылка, | Наименование, | ФизическоеЛицо |ИЗ | Справочник.Сотрудники |ГДЕ | Наименование ПОДОБНО &ПараметрСтрокаПоиска"; Результат = Запрос.Выполнить(); Выборка = Результат.Выбрать(); Если Результат.Пустой() Тогда Сообщить("Таких нет!"); Иначе Пока Выборка.Следующий() Цикл СотрудникСсылка = Выборка.Ссылка.ПолучитьОбъект(); СотрудникСсылка.Наименование = Лев(СотрудникСсылка.Наименование, СтрДлина(СотрудникСсылка.Наименование) - 7); СотрудникСсылка.ГоловнойСотрудник = Лев(СотрудникСсылка.ГоловнойСотрудник, СтрДлина(СотрудникСсылка.ГоловнойСотрудник) - 7); СотрудникСсылка.Записать(); КонецЦикла; КонецЕсли; КонецПроцедуры &НаКлиенте Процедура КнопкаВыполнить(Команда) КнопкаВыполнитьНаСервере(); КонецПроцедуры &НаСервере Процедура УдалитьОСННаСервере() Запрос = Новый Запрос; Запрос.УстановитьПараметр("ПараметрСтрокаПоиска", "%" + "(осн.)"); Запрос.Текст = "ВЫБРАТЬ | Ссылка, | Наименование, | ФизическоеЛицо |ИЗ | Справочник.Сотрудники |ГДЕ | Наименование ПОДОБНО &ПараметрСтрокаПоиска"; Результат = Запрос.Выполнить(); Выборка = Результат.Выбрать(); Если Результат.Пустой() Тогда Сообщить("Таких нет!"); Иначе Пока Выборка.Следующий() Цикл СотрудникСсылка = Выборка.Ссылка.ПолучитьОбъект(); СотрудникСсылка.Наименование = Лев(СотрудникСсылка.Наименование, СтрДлина(СотрудникСсылка.Наименование) - 6); СотрудникСсылка.ГоловнойСотрудник = Лев(СотрудникСсылка.ГоловнойСотрудник, СтрДлина(СотрудникСсылка.ГоловнойСотрудник) - 6); СотрудникСсылка.Записать(); КонецЦикла; КонецЕсли; КонецПроцедуры &НаКлиенте Процедура УдалитьОСН(Команда) УдалитьОСННаСервере(); КонецПроцедуры Немного страшно запускать на боевой, это одна из первых обработок. Спасибо всем, кто откликнется |
|||
1
mikecool
21.07.20
✎
20:58
|
запускай на копии
|
|||
2
Panda_oOo
21.07.20
✎
21:00
|
(1) На копии запустил, работает. Имена сменились. Завтра надо будет на рабочей исправлять. Но что-то у меня есть чувство, что где-то сломается
|
|||
3
Ненавижу 1С
гуру
21.07.20
✎
21:00
|
Начнем с того: чем это мешало? Ведь это сотрудники, а не физ.лица
|
|||
4
Panda_oOo
21.07.20
✎
21:01
|
(3) Ну это пришло сверху. Мы люди маленькие. Начальник дал отмашку, мол, делай.
|
|||
5
hhhh
21.07.20
✎
22:21
|
(4) вот это что за фигня?
СотрудникСсылка.ГоловнойСотрудник = Лев(СотрудникСсылка.ГоловнойСотрудник, СтрДлина(СотрудникСсылка.ГоловнойСотрудник) - 6); выбросьте эту строчку. |
|||
6
SSz
22.07.20
✎
05:31
|
(5) - Эта строчка возвращает содержимое исходной строки без шести последних символов.
|
|||
7
hhhh
22.07.20
✎
05:43
|
(6) поле Головной сотрудник не строчное. На хрена туда содержимое пихать? Оно не впихнется.
|
|||
8
Йохохо
22.07.20
✎
05:50
|
СотрудникСсылка.Наименование = СокрЛП(СтрЗаменить(СотрудникСсылка.Наименование, "(совм.)", ""))
// СотрудникСсылка = Выборка.Ссылка.ПолучитьОбъект(); такто не ссылка а объект |
|||
9
Пробел
22.07.20
✎
05:53
|
(2) Сделайте бэкап рабочей перед исправлением.
А вообще, править собственные косяки в срочном темпе на рабочей базе это часть нашей работы) |
|||
10
SSz
22.07.20
✎
05:55
|
(7) - Это уже совершенно другой момент. ;)
|
|||
11
Panda_oOo
22.07.20
✎
07:04
|
(5) Спасибо. Я что-то не обратил внимание. Просто увидел и засомневался.
(8) Можно подробнее? |
|||
12
Йохохо
22.07.20
✎
07:10
|
(11) СотрудникСсылка присваивается сотрудникОбъект, это ни на что не влияет, просто коряво
|
|||
13
Panda_oOo
22.07.20
✎
07:25
|
(12) Т.е. мне переменную надо было Назвать СотрудникОбъект?
|
|||
14
Мимохожий Однако
22.07.20
✎
07:29
|
Научись пользоваться режимом отладки. Большинство вопросов отпадёт при просмотре твоего кода по шагам
|
|||
15
Мимохожий Однако
22.07.20
✎
07:30
|
(13) Называть можно хоть чертом лысым. Важнее содержание
|
|||
16
Йохохо
22.07.20
✎
07:36
|
(13) важно только что твой код пробел не удаляет
|
|||
17
Волшебник
22.07.20
✎
07:37
|
Спр.ГоловнойСотрудник = <здесь должна быть СправочникСсылка, а не строка>
|
|||
18
Волшебник
22.07.20
✎
07:38
|
Если типы не соответствуют, то 1С не ругается, а просто очищает поле.
Программный код очищает реквизиты ГоловнойСотрудник для всех сотрудников, попавших под раздачу. |
|||
19
Panda_oOo
22.07.20
✎
09:00
|
(17) (18) Ну там в принципе всё нормально получилось. Я проверил, в реквизитах ГоловнойСотрудник все заполнено, там стоит ссылка на сотрудника. Но на будущее буду более внимательным, спасибо.
Ещё, я удалил строки СотрудникСсылка.ГоловнойСотрудник = Лев(СотрудникСсылка.ГоловнойСотрудник, СтрДлина(СотрудникСсылка.ГоловнойСотрудник) - 6); и СотрудникСсылка.ГоловнойСотрудник = Лев(СотрудникСсылка.ГоловнойСотрудник, СтрДлина(СотрудникСсылка.ГоловнойСотрудник) - 7); видимо они не нужны. Может ли подобное исправление имени (код выше) сломать что-нибудь в регистрах/документах/ещё где-нибудь? |
|||
20
hhhh
22.07.20
✎
09:32
|
(19) ну, теперь в базе сотрудников будут одинаковые строчки и все будут путаться.
|
|||
21
Мимохожий Однако
22.07.20
✎
09:34
|
(20) ОФФ."Могу копать, могу не копать". ТС без работы не останется.
|
|||
22
Panda_oOo
22.07.20
✎
09:41
|
(20) Да, это тоже будет забавный момент. Сейчас на копии смотрел, неудобно. И нет табельного, чтобы посмотреть, какой именно это сотрудник. Ну ничего, поработают, придут просить перделать что-то)
|
|||
23
El_Duke
гуру
22.07.20
✎
09:51
|
(4) >>Начальник дал отмашку
А ему не похрен ли кто как в базе именован ? Других проблем видать нет ? Вот уж воистину: когда коту делать нефиг - он ... сидит грустит |
|||
24
Йохохо
22.07.20
✎
09:58
|
(19) (22) боги, корона породила анти ливинстара
|
|||
25
Panda_oOo
22.07.20
✎
10:30
|
(24) я бы вместе с вами возмутился, но к сожалению, не знаю, о чём вы говорите
|
|||
26
Panda_oOo
22.07.20
✎
10:31
|
(23) да работа то есть, но как я говорил, только начинаю изучать, поэтому такая вот практика) Приятное с полезным)
|
|||
27
hhhh
22.07.20
✎
10:34
|
||||
28
Panda_oOo
22.07.20
✎
10:55
|
(27) Интересно. Не слышал. И какое отношение к моему вопросу имеет ссылка на данную тему?
|
|||
29
El_Duke
гуру
22.07.20
✎
11:46
|
(26) вот и займитесь работой
То что вы сейчас делаете - это пересадка правого яйца на место левого |
|||
30
Panda_oOo
22.07.20
✎
11:52
|
(29) Это и есть моя работа) Делать, что скажут) Если я на этой фигне хоть чему-то научусь - значит, не так уж и бесполезно это было)
|
|||
31
Мимохожий Однако
22.07.20
✎
11:59
|
(30) На фигне и научишься фигне...
|
|||
32
Panda_oOo
22.07.20
✎
12:09
|
(31) Вопрос был в том, ничего ли я не сломаю, изменяя таким образом. А не в том, фигнёй ли я страдаю, или нет
|
|||
33
El_Duke
гуру
22.07.20
✎
12:13
|
(30) Делать что скажут - удел бестолкового исполнителя
Прежде чем делать, надо хорошо подумать: а надо ли оно, есть ли от этого польза ? Может через неделю все придется возвращать обратно И если оно так, то сказать ЛПР:"Полиграф Полиграфыч, Вы вот тут бабуйню придумали, она не нужна" |
|||
34
Фрэнки
22.07.20
✎
12:57
|
чему-то научусь... страдать бесполезной фигней :-)
|
|||
35
Fergus
22.07.20
✎
22:52
|
начальника на мыло
расчетный бухгалтер за удаление лайфхаков будет плеваться ядом |
|||
36
Panda_oOo
23.07.20
✎
07:36
|
(35) Это не лайфхак, а косяк при переносе. Они тупо вписались в ссылку.
А вообще такие дополнения (совм.), (осн.) можно программно ставить в настройках. Настройки - Кадровый учёт - Правило формирования представления элементов справочника сотрудники в отчетах и документах. Не путайте теплое с мягким, пожалуйста. |
|||
37
Kesim
24.07.20
✎
12:26
|
(19) .ГоловнойСотрудник - скорее всего ссылка на самого себя, не нужно менять.
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |