DaDa писал(а):
Кто подскажет почему не выводит значение параметра ПД_Паспортні дані (коли і ким виданий) в Менеджере Обменных Файлов??
Потому что эти данные не сохраняются в ин4-файл. Для сохранения в ин4 этих данных переименуйте параметр в "XX_Паспортні дані (коли і ким виданий)", где XX - две латинские буквы, неиспользуемые в названиях других дескрипторов. Но сохранения этих данных мало, надо их еще и использовать при конвертировании в XML, а с этим у МОФа проблемы, т.к. программа не обновляется с 2012 года и обновляться не будет.
Но можно использовать XMLChecker для конвертирования in4, "научив" его брать информацию из нестандартных дескрипторов.
1. Добавляем в Normal.dmf параметр, делаем его доступным слою участков.
Вложение:
XX001.png [ 95.75 Кб | Просмотров: 8067 ]
2. Заполняем значение дескриптора
Вложение:
XX002.png [ 132.89 Кб | Просмотров: 8067 ]
3.Необязательно!!! Добавить описание дескриптора в файлы Digitals\XMLCheck\In4Descriptors.lng и Digitals\XMLCheck\In4Descriptors.dsr аналогично примерам других дескрипторов.
Вложение:
XX003.png [96.89 Кб]
Скачиваний: 0
4. Изменить скрипт конвертирования in4-файлов (добавления выделены синим цветом)
добавить переменные
... PasspNum, PasspSer, PasspDate, PasspAuth,
... :String;
добавить строки кода
// номер и серия паспорта
PasspSerNum := SeparateString(GetIn4DescriptorValue(In4Parcel, 'PP', 3, I), ' ');
if Length(PasspSerNum) = 1 then
begin
PasspSer := Copy(PasspSerNum[0], 1, 2);
PasspNum := Copy(PasspSerNum[0], 3, 20);
end else
if Length(PasspSerNum) > 1 then
begin
PasspSer := PasspSerNum[0];
PasspNum := PasspSerNum[1];
end else
begin
PasspSer := '';
PasspNum := '';
end;
if PasspNum<>''
then XMLProprietor.SetValue('Authentication/NaturalPerson/Passport/PassportNumber', PasspNum);
if PasspSer<>''
then XMLProprietor.SetValue('Authentication/NaturalPerson/Passport/PassportSeries', PasspSer);
PasspDate := In4ToXMLDate(GetIn4DescriptorValue(In4Parcel, 'XX', 1, I));
if PasspDate<>''
then XMLProprietor.SetValue('Authentication/NaturalPerson/Passport/PassportIssuedDate', PasspDate);
PasspAuth := GetIn4DescriptorValue(In4Parcel, 'XX', 2, I);
if PasspAuth<>''
then XMLProprietor.SetValue('Authentication/NaturalPerson/Passport/IssuanceAuthority', PasspAuth);
// код страны гражданства
CountryCode := GetIn4DescriptorValue(In4Parcel, 'PP', 1, I);
if CountryCode<>''
then XMLProprietor.SetValue('Authentication/NaturalPerson/Citizenship', CountryCode);
5. Конвертировать in4-файл, проверить результат
Вложение:
XX004.png [66.65 Кб]
Скачиваний: 0
DaDa писал(а):
Попутно еще вопрос. Как сделать в in4 заполнение таких значений как «перелік документів» тех документации. Вернее как сделать разобрался (параметры, маски, списки), вопрос как сделать что бы этот «перелік документів» выводился в Менеджере Обменных Файлов ??
Спасибо!
В XMLChecker список документов заполняется скриптом, можно настраивать под свои нужды.
// состав техдокументации (по умолчанию, этого нет в In4)
// пояснювальна записка
XMLFile.Parcel.SetValue('TechnicalDocumentationInfo/DocumentList[1]', '001');
// технічне завдання
XMLFile.Parcel.SetValue('TechnicalDocumentationInfo/DocumentList[2]', '002');
// копії заяв (клопотань) фізичних та/або юридичних осіб про розроблення документації із землеустрою
XMLFile.Parcel.SetValue('TechnicalDocumentationInfo/DocumentList[3]', '007');
// кадастровий план земельної ділянки
XMLFile.Parcel.SetValue('TechnicalDocumentationInfo/DocumentList[4]', '022');
if IsNaturalPerson then
begin
// копія документа, що посвідчує особу
XMLFile.Parcel.SetValue('TechnicalDocumentationInfo/DocumentList[5]', '041');
// Копія довідки про присвоєння податкового номера фізичній особі
XMLFile.Parcel.SetValue('TechnicalDocumentationInfo/DocumentList[6]', '042');
end else
begin
// копія виписки з Єдиного державного реєстру юридичних осіб та фізичних осіб — підприємців
XMLFile.Parcel.SetValue('TechnicalDocumentationInfo/DocumentList[5]', '043');
// копія установчих документів
XMLFile.Parcel.SetValue('TechnicalDocumentationInfo/DocumentList[6]', '044');
end;