Документ предназначен для присвоения званий согласно приказам и изменения данных в справочнике «Сотрудники». Если в документе меняются звания, в справочнике «Сотрудники» по этому сотруднику автоматически изменяются звания.
Вопрос как сделать, чтобы при проведении документа звание сотрудника которое я поставил в документе изменилось в справочнике
Вопрос как сделать, чтобы при проведении документа звание сотрудника которое я поставил в документе изменилось в справочнике
По теме из базы знаний
- Трекер задач - Управление задачами: Канбан доска
- Трекер задач - Управление задачами: Служба поддержки (ServiceDesk)
- Трекер задач - Управление задачами: новая БСП и RLS для задач
- Система учета задач и рабочего времени
- Фреймворк "Простые задачи" - разработка интерактивных инструментов загрузки и обработки табличных данных
Ответы
Подписаться на ответы
Инфостарт бот
Сортировка:
Древо развёрнутое
Свернуть все
(1) в модуле проведения пишешь код.
Но реализация корявая. При каждом проведении левого документа будет меняться наименование, возможно стоит писать это в регистр сведений периодический, а в справочнике уже выводить эту информацию, так логичнее!
Как это сделано с ФИО физлиц, 1 в 1 можешь выдрать.
Если РеквизитСсылкаНаТвойСправочник.Наиенование <> РеквизитНаименованиеСпраочникаИзТвоегоДокумента Тогда
// получаешь объект и записываешь его наименование.
КонецЕсли;
Но реализация корявая. При каждом проведении левого документа будет меняться наименование, возможно стоит писать это в регистр сведений периодический, а в справочнике уже выводить эту информацию, так логичнее!
Как это сделано с ФИО физлиц, 1 в 1 можешь выдрать.
Процедура ПередЗаписью(Отказ)
ТекущийДокумент = ЭтотОбъект;
ТаблицаЗначений = ТекущийДокумент.ТабличнаяЧасть1.Выгрузить();
Для Каждого Строка Из ТаблицаЗначений Цикл
СсылкаСотрудника = Строка.Сотрудник;
НовоеЗвание = Строка.Звание;
Сотрудник = Справочники.Сотрудники.Получить(СсылкаСотрудника);
Сотрудник.Звание = НовоеЗвание;
Сотрудник.Записать();
КонецЦикла;
КонецПроцедуры
ПоказатьКод который у меня получился
(3)Криво и коряво((((
У документа свое назначение, проводить данные по РЕГИСТРАМ!!!
Создайте для этих целей лучше регистр Сведений с типом подчинение Регистратору.
В особенности если нужно сохранять данные, в том месяце одна должность, в этом уже другая. Лучше сориентироваться по периодичности, например месяц. Потом просто нужные данные получать запросом из регистра в каком нить отчете
У документа свое назначение, проводить данные по РЕГИСТРАМ!!!
Создайте для этих целей лучше регистр Сведений с типом подчинение Регистратору.
В особенности если нужно сохранять данные, в том месяце одна должность, в этом уже другая. Лучше сориентироваться по периодичности, например месяц. Потом просто нужные данные получать запросом из регистра в каком нить отчете
(4)
Про регистры мне ничего не сказано. А код, что я скинул выше он от чата ГПТ. Я просто хотел скинуть любой код, чтобы его увидели и сказали как правильно сделать. А так мне про регистры ничего не сказали и....... Я решил сделать так
Про регистры мне ничего не сказано. А код, что я скинул выше он от чата ГПТ. Я просто хотел скинуть любой код, чтобы его увидели и сказали как правильно сделать. А так мне про регистры ничего не сказали и....... Я решил сделать так
&НаСервере
Процедура ЗаменаЗвания()
ТЧ = Объект.ТабличнаяЧасть1;
Для каждого Строка Из ТЧ Цикл
НовоеЗвание = Строка.Звание;
ИмяСотрудника = Строка.Сотрудник;
ЗваниеСот = Справочники.Сотрудники.НайтиПоНаименованию(ИмяСотрудника);
Если ЗваниеСот.Пустая() Тогда
Возврат;
КонецЕсли;
ЗваниеСот_Объект = ЗваниеСот.ПолучитьОбъект();
ЗваниеСот_Объект.Звание = НовоеЗвание;
ЗваниеСот_Объект.Записать();
КонецЦикла;
КонецПроцедуры
&НаКлиенте
Процедура ПослеЗаписи(ПараметрыЗаписи)
ЗаменаЗвания();
КонецПроцедуры
Показать
(6)По мне так это обычное издевательство над стандартными механизмами 1с. Это все равно что пытаться производить операцию... простите.. по замене пола. Если у программы есть у каждого объекта -класса определенное предназначение, им и нужно пользоваться. А не пытаться изобретать велосипед.. непонятно где))))
(7) Вы имеете ввиду, что нужно создать регистр сведений для сохранения данных об измене звания? И уже сделать движение документа по этому регистру и в процессе движения создавалась запись в регистре сведений и звание изменялось в справочнике? Вы так предложили сделать?
(8) В моем понятии справочник существует чисто для хранения информации. По справочникам мы вводим в документы имеющиеся данные, кто что и где.
Вы предлагаете задачу. У вас есть справочник , где информация Сотрудник = Звание. Звание поменялось, у того же сотрудника другое звание, третье звание. ВЫ обновляете одну строку, а потом захотите получить старую информацию, какое было ранее звание до определенного момента до последнего, а там увы.. все померло и конь не валялся.
ВЫ справочник Звания чисто для этой цели создали? Или он был? Еще раз повторю, справочнике только хранят вводимую информацию. А по вашей задаче лучше брать создать регистр. Регистры хранят данные о проведении документов и потом вы можете из регистров взять отчет запросов, запросив левым или каким соединением справочник нужный для сверки информации...
Еще раз повторюсь, не нужно в справочник "проводить" информацию, для этого есть регистры)))
Вы предлагаете задачу. У вас есть справочник , где информация Сотрудник = Звание. Звание поменялось, у того же сотрудника другое звание, третье звание. ВЫ обновляете одну строку, а потом захотите получить старую информацию, какое было ранее звание до определенного момента до последнего, а там увы.. все померло и конь не валялся.
в процессе движения создавалась запись в регистре сведений и звание изменялось в справочнике?
ВЫ справочник Звания чисто для этой цели создали? Или он был? Еще раз повторю, справочнике только хранят вводимую информацию. А по вашей задаче лучше брать создать регистр. Регистры хранят данные о проведении документов и потом вы можете из регистров взять отчет запросов, запросив левым или каким соединением справочник нужный для сверки информации...
Еще раз повторюсь, не нужно в справочник "проводить" информацию, для этого есть регистры)))
Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот