|
Интерактивные операции недоступны | ☑ | ||
---|---|---|---|---|
0
Filkkore
06.07.20
✎
08:01
|
ЗУП 3.1
Необходимо через внешнюю обработку воспользоваться типовыми механизмами изменения ФИО Физ лица. |
|||
1
Filkkore
06.07.20
✎
08:02
|
(0)
&НаКлиенте Функция ПолучитьФормуЭлемента(Сотрудник) Форма = ПолучитьФизЛицо(Сотрудник); Возврат Форма; КонецФункции &НаСервере Функция ПолучитьФизЛицо(Сотрудник) Возврат Справочники.ФизическиеЛица.НайтиПоКоду(Сотрудник.Код).ПолучитьФорму("ФормаЭлемента"); КонецФункции &НаКлиенте Процедура Восстановить() ДополнительныеПараметры = Новый Структура; ДополнительныеПараметры.Вставить("ОповещениеЗавершения", "ОписаниеОповещения"); Результат = Новый Структура; Для Каждого Стр Из Объект.ФИО Цикл ДополнительныеПараметры.Вставить("Форма", ПолучитьФормуЭлемента(Стр["ФизическоеЛицо"])); Результат.Вставить("ДатаИзменения", Стр["Период"]); Результат.Вставить("Имя", Стр["Имя"]); Результат.Вставить("Инициалы", ""); Результат.Вставить("Отчество", Стр["Отчество"]); Результат.Вставить("Фамилия", Стр["Фамилия"]); Результат.Вставить("НовоеНаименование", ""); Результат.Вставить("ИзменениеЗаднимЧислом", ""); Результат.Вставить("ДатаТекущейЗаписи", ""); КонецЦикла; СотрудникиКлиент.ИзменитьФИОФизическогоЛицаЗавершение(Результат, ДополнительныеПараметры); КонецПроцедуры |
|||
2
Волшебник
модератор
06.07.20
✎
08:02
|
Нужны права на интерактивные действия - просмотр, редактирование
|
|||
3
acht
06.07.20
✎
08:05
|
(1) На сервере нельзя получать форму
|
|||
4
Filkkore
06.07.20
✎
08:10
|
(2) Можно ли как-то заполучить эти права? Или может есть иной способ изменить ФИО Физ лица? У меня это изначально было реализованно просто путём записи в регистр ФИОФизическихЛиц, но в таком случае, к примеру, ФИО на печать никак не изменяется, потому вот ищу варианты...
|
|||
5
Filkkore
06.07.20
✎
08:11
|
(3) Да там не в этом дело, форму то в итоге на Клиенте получаю, в первой функции
|
|||
6
acht
06.07.20
✎
08:11
|
(5) Не звезди. У тебя внутри функции ПолучитьФизЛицо это написано. Русским языком.
|
|||
7
Filkkore
06.07.20
✎
08:31
|
(6) А ну да, сейчас так. Просто я уже с этими двумя функциями как только не игрался.
При таком раскладе: &НаКлиенте Функция ПолучитьФормуЭлемента(Сотрудник) Форма = ПолучитьФизЛицо(Сотрудник).ПолучитьФорму("ФормаЭлемента"); Возврат Форма; КонецФункции &НаСервере Функция ПолучитьФизЛицо(Сотрудник) ФизЛицо = Справочники.ФизическиеЛица.НайтиПоКоду(Сотрудник.Код); Возврат ФизЛицо; КонецФункции Метод объекта не обнаружен ПолучитьФорму Страдаю от непонимания так скажем) Может есть какие другие варианты? |
|||
8
craxx
06.07.20
✎
08:32
|
(5) ОткрытьФорму("Справочник.Сотрудники.Форма.ФормаЭлемента",Новый Структура("Ключ",СсылкаНаСотрудника));
|
|||
9
acht
06.07.20
✎
08:36
|
(7) В синтакс-помощнике кое-что написано про возвращаемое значение метода НайтиПоКоду.
ТыкДрайвенДевелопмент - прикольная штука. |
|||
10
Filkkore
06.07.20
✎
08:38
|
(8) Спасибо большое, продвижение есть.
|
|||
11
Filkkore
06.07.20
✎
08:42
|
(9) Да возможно я спешу со всем этим, от недостаточного понимания возможностей языка, из-за чего застреваю надолго по глупым причинам, думая: "Ну вот вроде же всё нормально сделал, а не работает". Буду стараться конечно избавить форум от своих тупых вопросов... Не знаю насколько получится)
|
|||
12
Волшебник
модератор
06.07.20
✎
08:44
|
(4) Надо записывать с правильной датой
|
|||
13
Filkkore
06.07.20
✎
08:54
|
(12) Правильная = текущая? Я записывал с датой предыдущей записи, ибо при изменении даты создаётся новая запись, а не перезаписывается старая.
При такой записи в регистр меняется ФИО только в ГруппаПолноеИмя в реквизитах Фамилия, Имя и Отчество, при этом Полное имя и Представление сотрудника в отчетах остаётся неизменным, пока не нажмёшь Изменить ФИО в форме элемента. |
|||
14
Волшебник
модератор
06.07.20
✎
09:16
|
(13) Если ФИО меняется, то правильная дата указана в первичных документах из ЗАГСа
|
|||
15
Волшебник
модератор
06.07.20
✎
09:16
|
Кроме изменения ФИО в регистре, надо изменить наименование элемента справочника ФизическиеЛица и Сотрудники
|
|||
16
Filkkore
07.07.20
✎
10:00
|
Сделал в итоге так:
Процедура Восстановить() Для Каждого Стр Из Объект.ФИО Цикл Если Стр["Выбор"] = Истина Тогда ИзменитьФИО(Стр["ФизическоеЛицо"], Стр["Фамилия"], Стр["Имя"], Стр["Отчество"], Стр["Период"]); ИзменитьФИО2(Стр["ФизическоеЛицо"],Стр["Фамилия"]+" "+Стр["Имя"]+" "+Стр["Отчество"]); КонецЕсли; КонецЦикла; ОбновлениеФИО(); КонецПроцедуры &НаСервере Процедура ИзменитьФИО2(Сотрудник,ФИО) ФизЛицо = Справочники.ФизическиеЛица.НайтиПоКоду(Сотрудник.Код).ПолучитьОбъект(); ФизЛицо.Наименование = ФИО; ФизЛицо.ФИО = ФИО; ФизЛицо.Записать(); КонецПроцедуры &НаСервере Процедура ИзменитьФИО(Сотрудник, Фамилия, Имя, Отчество, Период) ОбъектСотрудник = Сотрудник; МенеджерЗаписи = РегистрыСведений.ФИОФизическихЛиц.СоздатьМенеджерЗаписи(); МенеджерЗаписи.ФизическоеЛицо = Справочники.ФизическиеЛица.ПустаяСсылка(); МенеджерЗаписи.ФизическоеЛицо = ОбъектСотрудник; МенеджерЗаписи.Имя = Имя; МенеджерЗаписи.Фамилия = Фамилия; МенеджерЗаписи.Отчество = Отчество; МенеджерЗаписи.Период = Период; МенеджерЗаписи.Записать(); КонецПроцедуры Процедура ОбновлениеФИО() Запрос = Новый Запрос; Запрос.Текст = "ВЫБРАТЬ | ФИОФизическихЛиц.Период КАК Период, | ФИОФизическихЛиц.Фамилия КАК Фамилия, | ФИОФизическихЛиц.Имя КАК Имя, | ФИОФизическихЛиц.Отчество КАК Отчество, | ФИОФизическихЛиц.ФизическоеЛицо КАК ФизическоеЛицо, | Сотрудники.ФизическоеЛицо КАК ФизическоеЛицо1 |ИЗ | РегистрСведений.ФИОФизическихЛиц КАК ФИОФизическихЛиц | ПОЛНОЕ СОЕДИНЕНИЕ Справочник.Сотрудники КАК Сотрудники | ПО ФИОФизическихЛиц.ФизическоеЛицо.Ссылка = Сотрудники.ФизическоеЛицо | |УПОРЯДОЧИТЬ ПО | Период УБЫВ"; РезультатЗапроса = Запрос.Выполнить().Выгрузить(); Объект.ФИО.Загрузить(РезультатЗапроса); КонецПроцедуры Всем спасибо за помощь |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |