Имя: Пароль:
1C
1С v8
Регистр Сведений
0 Legowar
 
27.03.13
20:48
мое задание:сделать регистр сведений ДолжностиСотрудники который будет учитывать ФИО сотрудника,должность и оклад.который бы заполнялся при проведении документа на прием на работу.ну главное надо сделать чтобы в документы кадровый перевод при указывании ФИО автоматически проставлись должность и оклад.так вот у меня оклад ставиться а должность нет(

Функция Должности (АктуальнаяДата,Фио) Экспорт
   Отбор=новый Структура ("Фио",Фио);
   ЗначениеРесурсов=РегистрыСведений.ДолжностиСотрудники.ПолучитьПоследнее(АктуальнаяДата,Отбор);
   Возврат ЗначениеРесурсов.Оклад;
   
   Днище=новый Структура ("Фио",Фио);
   ЗначениеРесурсов=РегистрыСведений.ДолжностиСотрудники.ПолучитьПоследнее(АктуальнаяДата,Днище);
   Возврат ЗначениеРесурсов.Должность

   КонецФункции

вот модуль а вот событие происходищее при изменении фио:
Процедура КадровыйПереводФИОПриИзменении(Элемент)
СтрокаТабличнойЧасти=Элементы.КадровыйПеревод.ТекущиеДанные;
СтрокаТабличнойЧасти.СтараяЗарплата=ДолжностиЛиц.Должности(Объект.Дата,СтрокаТабличнойЧасти.Фио);
 СтрокаТабличнойЧасти.СтараяДолжность=ДолжностиЛиц.Должности(Объект.Дата,СтрокаТабличнойЧасти.Фио);

КонецПроцедуры

я просто новичек и пытаюсь сам учиться
1 vicof
 
27.03.13
20:52
(0) Открой для себя запросы.
"я просто новичек и пытаюсь сам учиться" - не взлетит, пока не начнешь работать, получая нормальные задачи.
2 exwill
 
27.03.13
20:53
У функции может быть только один "ВОЗВРАТ"
3 Legowar
 
27.03.13
20:53
я знаю что можно запросами(но я как бы на курсы хожу там задание дали))и вот так делать надо))и замучался кароч))
4 exwill
 
27.03.13
20:54
Что за курсы-то?
5 НикДляЗапросов
 
27.03.13
20:55
две функции
6 Legowar
 
27.03.13
20:55
ды у меня в городе по конфигурировании)) только научат одному а дают задание посложнее то есть сиди и думай))
7 vicof
 
27.03.13
20:55
(3) будь мужиком, сделай запросами, блеать :)
(2) верно говорит, делай или две функции, или в озвращай одну структуру, или пиши запрос.
8 vicof
 
27.03.13
20:56
(6) и это правильно
9 Legowar
 
27.03.13
20:56
две функции сделал)поменял)выбираю фио пишет должность.только нужно перевыбирать должность чтобы оклад проставился))а как с структурой делать то)
10 Лефмихалыч
 
27.03.13
20:58
(0)
Функция Должность (АктуальнаяДата,Фио) Экспорт
   Отбор=новый Структура ("Фио",Фио);
   ЗначениеРесурсов=РегистрыСведений.ДолжностиСотрудники.ПолучитьПоследнее(АктуальнаяДата,Отбор);
   Возврат ?(ЗначениеРесурсов.Должность=Неопределено,Неопределено,ЗначениеРесурсов.Должность);
КонецФункции

Сообщить("У этого васи должность: "+Должность(ТекущаяДата(), Вася))
11 vicof
 
27.03.13
20:59
Отбор=новый Структура ("Фио",Фио);
   ЗначениеРесурсов=РегистрыСведений.ДолжностиСотрудники.ПолучитьПоследнее(АктуальнаяДата,Отбор);
       
   Днище=новый Структура ("Фио",Фио);
   ЗначениеРесурсов2=РегистрыСведений.ДолжностиСотрудники.ПолучитьПоследнее(АктуальнаяДата,Днище);
   

Структура = Новый структура();
Структура.Вставить("Оклад", ЗначениеРесурсов.Оклад);
Структура.Вставить("Оклад", ЗначениеРесурсов2.Должность);
12 Legowar
 
27.03.13
21:20
я не особо понял блин сырой я еще.
можно как нибудь
Возврат (ЗначениеРесурсов.Оклад),(ЗначениеРесурсов.Должность)
вот эти два записать сразу .а то что выбираешь то он и пишет а как бы сразу два
13 vicof
 
27.03.13
21:23
(12)
(11) + Возврат Структура.
Потом обращаешься:
Стр = Должности();
Оклад = Стр.Оклад;
Должность = Стр.должность;
14 vicof
 
27.03.13
21:24
в (11) последнюю строку читать как:
Структура.Вставить("Должность", ЗначениеРесурсов2.Должность);
15 Legowar
 
27.03.13
21:31
vicof когда это вставляю у меня вообще ничего не ставиться при выборе фио :(
16 vicof
 
27.03.13
21:37
(15) печаль, на курсах по программированию должны хотя бы упоминать об отладчике.
17 Legowar
 
27.03.13
21:42
Функция Должности (АктуальнаяДата,Фио) Экспорт
   Отбор=новый Структура ("Фио",Фио);
   ЗначениеРесурсов=РегистрыСведений.ДолжностиСотрудники.ПолучитьПоследнее(АктуальнаяДата,Отбор);
       
   Днище=новый Структура ("Фио",Фио);
   ЗначениеРесурсов2=РегистрыСведений.ДолжностиСотрудники.ПолучитьПоследнее(АктуальнаяДата,Днище);
   

Структура = Новый структура();
Структура.Вставить("СтараяЗарплата", ЗначениеРесурсов.Оклад);
Структура.Вставить("СтараяДолжность", ЗначениеРесурсов2.Должность);

Стр = Должности();
Оклад = Стр.Оклад;
Должность = Стр.должность;
КонецФункции
вот что я ввожу он еще ошибку выдает ))
18 Лефмихалыч
 
27.03.13
21:58
(17) ошибку ты предлагаешь угадать? Хотя возвижу, что в регистре нет записей по передаваемому ФИО, по этому срез возвращает неопределено вместо структуры. Проверяй значение из среза на неопределено перед тем, как получать из него что-то
19 Legowar
 
27.03.13
21:59
создал второй модуль и сделал))получилось))
20 Варвар
 
27.03.13
21:59
(18) Мб там 8.3 и она сразу угадывает ошибку в ДНК?
21 vicof
 
28.03.13
01:50
(19) Еще структуру нужно возвратить, как я писал в (13)