|
v7: Обработки, чтобы оклад не менялся для уволенных программистов | ☑ | ||
---|---|---|---|---|
0
anna2212
16.04.20
✎
02:34
|
Подскажите,пожалуйста, что надо изменить в данном способе реализации этой обработки, чтобы оклад не менялся для уволенных программистов?
Процедура Выполнить2() Должн = СоздатьОбъект("Справочник.Должности"); Должн.НайтиПоНаименованию("Программист"); Сотрудник = СоздатьОбъект("Справочник.Сотрудники"); Сотрудник.ВыбратьЭлементыПоРеквизиту("Должность", Должн, 0, 0); Пока Сотрудник.ПолучитьЭлемент() = 1 Цикл Сотрудник.Оклад = Число(200000); Сотрудник.Записать(); Сообщить("Заменен оклад для сотрудника: " + СокрЛП(Сотрудник.Наименование)); КонецЦикла; КонецПроцедуры Для однозначности ответа рекомендуется привести измененный программный код, в котором игнорируются уволенные сотрудники. |
|||
1
victuan1
16.04.20
✎
05:02
|
Какая конфигурация 1С? Какой релиз?
|
|||
2
big
16.04.20
✎
05:20
|
Если Должн.НайтиПоНаименованию("Программист") = 0 Тогда
Сообщить("Не нашли должность Программист"); Возврат; КонецЕсли; .... .... .... Если Сотрудник.ВыбратьЭлементыПоРеквизиту("Должность", Должн, 0, 0) = 0 Тогда Сообщить("Не нашли сотрудников с такой должностью"); Возврат; КонецЕсли; Пока Сотрудник.ПолучитьЭлемент() = 1 Цикл Если Сотрудник.Уволен = 1 Тогда // я тут просто не знаю какой там признак, что он уволен Продолжить; КонецЕсли; ... ... КонецЦикла; |
|||
3
SleepyHead
гуру
16.04.20
✎
05:27
|
(0) Зовите ваших уволенных программистов обратно )
|
|||
4
anna2212
16.04.20
✎
05:54
|
Версия конфигурации 7.7
|
|||
5
anna2212
16.04.20
✎
05:55
|
Спасибо большое за помощь, попробую сдать. Преподаватель дал задание такое, попробую сдать)
|
|||
6
Sserj
16.04.20
✎
06:53
|
update $Справочник.Сотрудники set $Справочник.Сотрудники.Оклад = 200000
where $Справочник.Сотрудники.Должность = (select top 1 д.id from $Справочник.Должности as д where left(д.descr, 11) = 'Программист') and ismark = 0 |
|||
7
MWWRuza
гуру
16.04.20
✎
08:40
|
Блин, это всего-лишь задание...
А я то уже подумал, что начали программистов увольнять, и они к пасхе яйца закладывают... Только, по вопросу, сразу возникло стойкое ощущение - "а может не зря увольняют - ???" :-))) |
|||
8
Злопчинский
16.04.20
✎
09:28
|
(0)
п.2 - взять первый и второй кусок кода если не найдена должность и нет программистов среди сотрудников Сотрудник.ВыбратьЭлементыПоРеквизиту("Должность", Должн, 0, 0) - не надо так делать, Должн - это (упрощенно) не найденная тобой должность, а нечто другое Сотрудник.ВыбратьЭлементыПоРеквизиту("Должность", Должн.ТекущийЭлемент(), 0, 0) Сотрудник.Оклад = 200000; //справа от знака = итак уже число записано первым оператором внутри цикла д.б. Если Сотрудник.ЭтоГруппа()=1 Тогда Продолжить; КонецЕсли; |
|||
9
Андрей_Андреич
naïve
16.04.20
✎
09:31
|
(7) Зато оклад всем к 200 подравняли, чтобы не так обидно
|
|||
10
Kigo_Kigo
16.04.20
✎
09:32
|
(8) Это всего лишь задание для теста
Если Сотрудник.Уволен = 1 Тогда Продолжить; КонецЕсли; этого достаточно |
|||
11
Хряк
16.04.20
✎
10:24
|
и скорее всего реквизит оклад периодический
|
|||
12
Kigo_Kigo
16.04.20
✎
10:27
|
(11) Если бы он был переодический, то требования у ТС не было бы
|
|||
13
MWWRuza
гуру
16.04.20
✎
20:24
|
(10) Если Сотрудник.Уволен = 1 Тогда
Ну, из ТЗ мы не знаем, какие реквизиты и т.п. есть в исходной конфе... Я бы предположил, что должно быть так: Если Сотрудник.Статус = Перечисление.Уволен Тогда Но, оклад 200 000 мне нравится :-))) |
|||
14
vladko
17.04.20
✎
09:24
|
> Если Сотрудник.Статус = Перечисление.Уволен Тогда
точнее Если Сотрудник.Статус = Перечисление.СтатусыСотрудников.Уволен Тогда |
|||
15
Kigo_Kigo
17.04.20
✎
09:53
|
(13) (14)
Мам, а нафига нам все эти приблуды в московском зоопарке?(с) Детеныш верблюда :))) |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |