В начало

Исправление ФИО физических лиц

 

Рис. Карточка физических лиц [Справочник.нсиУниверсальныйФункциональныйСправочник.Форма.ФормаЭлемента]

 

Рис. Размещение данных по физлицам в регистре сведений

[РегистрСведений.нсиХранилищеСтрока.Форма.ФормаСписка]

 

Рис. Форма внешней обработки в конфигураторе

 

Листинг. Модуль формы внешней обработки

 

&НаСервере

Функция ОтобратьНаСервере()

            Запрос = Новый Запрос;

            Запрос.Текст =

                        "ВЫБРАТЬ

                        |           нсиУниверсальныйФункциональныйСправочник.Ссылка КАК Ссылка,

                        |           нсиУниверсальныйФункциональныйСправочник.Наименование КАК Наименование

                        |ИЗ

                        |           Справочник.нсиУниверсальныйФункциональныйСправочник КАК нсиУниверсальныйФункциональныйСправочник

                        |ГДЕ

                        |            нсиУниверсальныйФункциональныйСправочник.Владелец.Наименование = ""Физические лица""";

           

            Результат = Запрос.Выполнить();

            Выборка = Результат.Выбрать();

                       

            СЗ = Новый СписокЗначений;

           

            Пока Выборка.Следующий() Цикл

                        Если Выборка.Наименование <> ТРег(Выборка.Наименование) Тогда

                                   СЗ.Добавить(Выборка.Ссылка, Выборка.Наименование, Ложь);

                        КонецЕсли;   

            КонецЦикла;

           

            Возврат СЗ;

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

 

&НаКлиенте

Процедура Отобрать(Команда) 

 

            ЭтаФорма.СЗ = ОтобратьНаСервере();

           

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

 

&НаСервере

Процедура ИсправитьРеквизитВРегистре(Знач СсылкаНаВидСправочника, Знач УидЭлемента, Знач УидРеквизита)

           

            НЗ = РегистрыСведений.нсиХранилищеСтрока.СоздатьНаборЗаписей();

            НЗ.Отбор.ВидСправочника.Установить(СсылкаНаВидСправочника);

            НЗ.Отбор.Элемент.Установить(УидЭлемента);

            НЗ.Отбор.Реквизит.Установить(УидРеквизита);

            НЗ.Прочитать();

           

            Для Каждого Запись из НЗ Цикл

                        Запись.Значение = Трег(Запись.Значение);

            КонецЦикла;                            

           

            НЗ.Записать(Истина);         

           

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

 

&НаСервере

Процедура ИсправитьНаСервере()

            //8167e13c-66fd-4b24-802d-f11fcffb2d3c - Ссылка на элемент справочника

            //Эл.Значение.Владелец.Реквизиты

            //f4a14256-c9a5-47bf-9f17-eb377552eba6 - Фамилия в регистре [РегистрСведений.нсиХранилищеСтрока]

            //6b1397c7-6e42-40c7-be2e-3c5a7cee17c8 - Имя в регистре

            //92c72be2-669e-4c3e-ac37-f791d0c3980d - Отчество в регистре

            //8849d3b6-ef9b-4ff7-a5b9-e9afb08adc88 - ФИО в регистре

            Для Каждого Эл Из СЗ Цикл

                        Если Эл.Пометка = Истина Тогда       

                                   Если ЗначениеЗаполнено(Эл.Значение) Тогда

                                               Об = Эл.Значение.ПолучитьОбъект();      

                                               Об.Наименование = ТРег(Об.Наименование);

                                               Об.ОбменДанными.Загрузка = Истина;

                                               Об.Записать();

                                              

 

                                               //ФИО в регистре

                                               ИсправитьРеквизитВРегистре(Эл.Значение.Владелец,

                                                           Эл.Значение.Идентификатор,

                                                           Новый УникальныйИдентификатор("8849d3b6-ef9b-4ff7-a5b9-e9afb08adc88"));

                                              

                                               //Фамилия в регистре

                                               ИсправитьРеквизитВРегистре(Эл.Значение.Владелец,

                                                           Эл.Значение.Идентификатор,

                                                           Новый УникальныйИдентификатор("f4a14256-c9a5-47bf-9f17-eb377552eba6"));

                                                          

                                               //Имя в регистре       

                                               ИсправитьРеквизитВРегистре(Эл.Значение.Владелец,

                                                           Эл.Значение.Идентификатор,

                                                           Новый УникальныйИдентификатор("6b1397c7-6e42-40c7-be2e-3c5a7cee17c8"));

                                                          

                                               //Отчество в регистре         

                                               ИсправитьРеквизитВРегистре(Эл.Значение.Владелец,

                                                           Эл.Значение.Идентификатор,

                                                           Новый УникальныйИдентификатор("92c72be2-669e-4c3e-ac37-f791d0c3980d"));

                                                          

                                   КонецЕсли;

                        КонецЕсли;   

            КонецЦикла;

                       

            ЭтаФорма.СЗ = ОтобратьНаСервере();

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

 

&НаКлиенте

Процедура Исправить(Команда)

            ИсправитьНаСервере();

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

 

Рис. Интерфейс обработки в тонком клиенте

 

Рис. Результат работы обработки