Задача в справочниках

1. G_104675376381940917085 12.04.24 19:33 Сейчас в теме
Документ предназначен для присвоения званий согласно приказам и изменения данных в справочнике «Сотрудники». Если в документе меняются звания, в справочнике «Сотрудники» по этому сотруднику автоматически изменяются звания.
Вопрос как сделать, чтобы при проведении документа звание сотрудника которое я поставил в документе изменилось в справочнике
По теме из базы знаний
Ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. Xershi 1490 12.04.24 19:40 Сейчас в теме
(1) в модуле проведения пишешь код.
Если РеквизитСсылкаНаТвойСправочник.Наиенование <> РеквизитНаименованиеСпраочникаИзТвоегоДокумента Тогда
// получаешь объект и записываешь его наименование.
КонецЕсли;

Но реализация корявая. При каждом проведении левого документа будет меняться наименование, возможно стоит писать это в регистр сведений периодический, а в справочнике уже выводить эту информацию, так логичнее!
Как это сделано с ФИО физлиц, 1 в 1 можешь выдрать.
Fox-trot; +1 Ответить
9. Fox-trot 158 14.04.24 20:48 Сейчас в теме
(1) а что делать при отмене проведения уже придумали?
3. G_104675376381940917085 13.04.24 16:55 Сейчас в теме
Процедура ПередЗаписью(Отказ)
	
	ТекущийДокумент = ЭтотОбъект;
	ТаблицаЗначений = ТекущийДокумент.ТабличнаяЧасть1.Выгрузить();
	Для Каждого Строка Из ТаблицаЗначений Цикл
		СсылкаСотрудника = Строка.Сотрудник;
		НовоеЗвание = Строка.Звание;
		Сотрудник = Справочники.Сотрудники.Получить(СсылкаСотрудника);
		Сотрудник.Звание = НовоеЗвание;
		Сотрудник.Записать();
	КонецЦикла;
	
КонецПроцедуры
Показать

Код который у меня получился
4. Bukaska 140 13.04.24 21:49 Сейчас в теме
(3)Криво и коряво((((
У документа свое назначение, проводить данные по РЕГИСТРАМ!!!
Создайте для этих целей лучше регистр Сведений с типом подчинение Регистратору.
В особенности если нужно сохранять данные, в том месяце одна должность, в этом уже другая. Лучше сориентироваться по периодичности, например месяц. Потом просто нужные данные получать запросом из регистра в каком нить отчете
6. G_104675376381940917085 14.04.24 17:48 Сейчас в теме
(4)
Про регистры мне ничего не сказано. А код, что я скинул выше он от чата ГПТ. Я просто хотел скинуть любой код, чтобы его увидели и сказали как правильно сделать. А так мне про регистры ничего не сказали и....... Я решил сделать так
&НаСервере
Процедура ЗаменаЗвания()
    ТЧ = Объект.ТабличнаяЧасть1;
    Для каждого Строка Из ТЧ Цикл
        НовоеЗвание = Строка.Звание;
        ИмяСотрудника = Строка.Сотрудник;
        ЗваниеСот = Справочники.Сотрудники.НайтиПоНаименованию(ИмяСотрудника);   
        Если ЗваниеСот.Пустая() Тогда 
            Возврат;
        КонецЕсли;
        ЗваниеСот_Объект = ЗваниеСот.ПолучитьОбъект();
        ЗваниеСот_Объект.Звание = НовоеЗвание;
        ЗваниеСот_Объект.Записать();
    КонецЦикла;
    
КонецПроцедуры 
 
 
&НаКлиенте
Процедура ПослеЗаписи(ПараметрыЗаписи)
    ЗаменаЗвания();
КонецПроцедуры
Показать
7. Bukaska 140 14.04.24 18:02 Сейчас в теме
(6)По мне так это обычное издевательство над стандартными механизмами 1с. Это все равно что пытаться производить операцию... простите.. по замене пола. Если у программы есть у каждого объекта -класса определенное предназначение, им и нужно пользоваться. А не пытаться изобретать велосипед.. непонятно где))))
8. G_104675376381940917085 14.04.24 18:30 Сейчас в теме
(7) Вы имеете ввиду, что нужно создать регистр сведений для сохранения данных об измене звания? И уже сделать движение документа по этому регистру и в процессе движения создавалась запись в регистре сведений и звание изменялось в справочнике? Вы так предложили сделать?
10. Bukaska 140 14.04.24 23:17 Сейчас в теме
(8) В моем понятии справочник существует чисто для хранения информации. По справочникам мы вводим в документы имеющиеся данные, кто что и где.
Вы предлагаете задачу. У вас есть справочник , где информация Сотрудник = Звание. Звание поменялось, у того же сотрудника другое звание, третье звание. ВЫ обновляете одну строку, а потом захотите получить старую информацию, какое было ранее звание до определенного момента до последнего, а там увы.. все померло и конь не валялся.
в процессе движения создавалась запись в регистре сведений и звание изменялось в справочнике?

ВЫ справочник Звания чисто для этой цели создали? Или он был? Еще раз повторю, справочнике только хранят вводимую информацию. А по вашей задаче лучше брать создать регистр. Регистры хранят данные о проведении документов и потом вы можете из регистров взять отчет запросов, запросив левым или каким соединением справочник нужный для сверки информации...
Еще раз повторюсь, не нужно в справочник "проводить" информацию, для этого есть регистры)))
5. THEBESTolo4b 10 14.04.24 08:18 Сейчас в теме
(3) в таком контексте если кто то проведет доки случайно в "закрытом" периоде, ой каша получится, и будет у Вас действующий подполковник каким-нибудь лейтенантом
Оставьте свое сообщение

Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот