ПОРЯДОК РАБОТЫ
а) Подключаем расширение;
б) чистим регистр сведений "Строковые сведения физических лиц", зайдя в него через Все функции (выделить все - удалить записи);
в) заполняем заново кнопкой "Обновить записи" расширения формы списка этого регистра (см скриншот).
Обновлено 14.08.2022 (обе версии расширения)
1. Добавлено форматирования места рождения
2. Проверено на ЗУП3 (3.1.18.521)
ТЕХНИЧЕСКАЯ СТОРОНА
Заполнение разобьем на две части - заполнение дат рождения членов семьи и заполнение данных об образовании.
1. Даты рождения членов семьи.
В отчет данные о семье берутся из Регистра сведений "Строковые сведения физических лиц".
Регистр этот записывается при изменении состава члена семьи в ФЛ/сотруднике. Ну или хотя бы просто перезаписи.
Вся соль - в модуле менеджера этого же самого регистра.
Минимальные действия, которые приводят к желаемому результату - изменение функции
&Вместо("ПредставлениеЧленаСемьи")
Функция Расш_ПредставлениеЧленаСемьи(ЧленСемьи)
ПредставлениеЧленаСемьи = "%1: %2, %3";
ПредставлениеЧленаСемьи = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(ПредставлениеЧленаСемьи, ЧленСемьи.СтепеньРодства, ЧленСемьи.ФИО,формат(ЧленСемьи.ДатаРождения,"ДФ=dd.MM.yyyy"));
Возврат ПредставлениеЧленаСемьи;
КонецФункции
Сюда добавлен параметр %3 и его заполнение - ЧленСемьи.ФИО,формат(ЧленСемьи.ДатаРождения,"ДФ=dd.MM.yyyy")
Что ж, новые записи будут сразу падать, как нам этого хочется. Но что же делать со старыми?
У этого же модуля есть процедура в модуле менеджера -
РегистрыСведений.СтроковыеСведенияФизическихЛиц.ОбновитьСтроковыеСведенияФизическогоЛица(Ссылка);
Так что в расширении я сделал форму списка этого регистра, открываем регистр из "всех функций", выделяем все записи (ctrl+a), нажимаем delete на клавиатуре, затем нажимаем "Обновить записи" на форме.
Так мы заново заполним этот регистр.
2. Полные данные об образовании
С описанием обучения поступим по-другому.
В расширение забираем процедуру формирования отчета -
&Вместо("ВывестиМакетСписокДляСверкиСВоенкоматом")
Процедура Расш_ВывестиМакетСписокДляСверкиСВоенкоматом(ДокументРезультат, РезультатКомпоновки, ДатаОтчета)
...
КонецПроцедуры
и, после строки
ЗарплатаКадрыОтчеты.ЗаполнитьПараметрыОбластиМакета(СтрокаТаблицы, ТекСтрока, ДанныеПользовательскихПолейСсылки);
Делаем следующее -
ФЛСтроки = ТекСтрока.физическоелицо; // получаем фл
ДанныеОбОбразовании = ПолучитьДанныеОбОбразованииФЛ(ФЛСтроки); // обращаемся к нашей функции (которая собирает представление строк об образовании ФЛ)
СтрокаТаблицы.Параметры.ВидОбразования = ДанныеОбОбразовании; // и перезаписываем ячейку