Document on HRMS Localization

Is there any document which gives the Localization in Oracle HRMS for all the countries?

Have you searched here for it:
http://download.oracle.com/docs/cd/B40089_07/current/html/docset.html
gracias, iguru

Similar Messages

  • HRMS Localization Seed Data Entry

    Hi All,
    We're still on 11i and are going to upgrade to R12 shortly.
    We're on multiple business groups and use the responsibility "HRMS Localization Seed Data Entry" to build all payroll related setup.
    Since Oracle doesn't recommend using this responsibility as it's for their internal use, Please advise if there's any risk or expected issues when/after the R12 upgrade.
    Thanks,

    According to [ID 850007.1] which is applicable to R12 (12.1.1), this responsibility can be used. However, I would suggest you log a SR since none of the MOS docs talk about this responsibility after the upgrade.
    Thanks,
    Hussein

  • Looking for impact analysis document on HRMS from 11i to 12i

    Hi all,
    Does any one have an impact analysis document on HRMS from 11i to 12i. Where can I get this document.
    Can you anyone please let me know.
    Thanks
    Hari

    Hi,
    Please refer to the following documents/links.
    Note: 561580.1 - E-Business Suite Release 12.1.1: Release Content Documents
    https://metalink2.oracle.com/metalink/plsql/ml2_documents.showDocument?p_database_id=NOT&p_id=561580.1
    Note: 404152.1 - E-Business Suite Release 12: Release Content Documents
    https://metalink2.oracle.com/metalink/plsql/ml2_documents.showDocument?p_database_id=NOT&p_id=404152.1
    Applications Releases 11i and 12
    http://www.oracle.com/technology/documentation/applications.html
    Regards,
    Hussein

  • Document for HRMS Implementation in 11.5.10.2

    Hi,
    We are currently working in 11.5.10.2 version & Oracle 9i database. Can anyone suggest me any document or method for implementing the HRMS module and the setups that should be done to implement it successfully. Thanks in advance.
    Regards,
    Rao

    Hi,
    Based on your country legislation you have to follow the instruction of application setup rules. Once you complete the setup you can apply required patches if any comes after the version you have installed. Best to check at Metalink for latest patches.
    To meet local legislation you have to keep up-to-date your application always.
    Thanks
    Ajit

  • Hi, Want link for HRMS functional documents.

    Hi There,
    i'm new to HRMS.
    can any one give me links for some simple documents
    for HRMS functional.
    Thanks
    Bachan

    Search on metalink and OTN. There are also many old threads which discuss the same and have links. Search is your friend :)
    --Shiv                                                                                                                                                                                                                                                                           

  • InDesign CS6 crashing with single document

    Alright, so I'm using InDesign CS6 and MacBook Pro OS X 10.9.3.  To the best of my knowledge, everything is up-to-date, but I'm relatively new to both Macs and InDesign.
    I'm formatting a report for work.  It's a long document, ~80 pages, primarily text with some tables, etc.  I was working on this document a few weeks ago, then it got put on the back burner and I'm just now coming back to it.  However, it seems like it's developed a bug and I can load it just fine, but after a few minutes of work, it freezes and I have to Force Quit.
    I did some preliminary troubleshooting on the web and I found out you're supposed to reset your ID preferences or something, so I did that successfully and the problem still occurs.
    I've tried working on other documents and I haven't had the program crash, yet.
    So the logical assumption would be that the file is corrupted, right?  Well I came to that conclusion, and tried to create a fresh clean document and then copy and paste the text from the original document into a frame in the new document.  But the problem still occurs.
    Is there a way I can recover my document?

    Hrm.  So I definitely tried exporting the tagged text and importing it and it didn't work (what happened was the new, clean document completely froze up and I had to Force Quit).
    But then, at your surprise/insistence, I tried again and it seemed to work this time.  So thanks for your help.  I have a knack for finding weird unexplainable bugs.

  • Can some one please send some CV40 related to HRMS modules

    Hi , can some one please send some CV40 documents for HRMS modules to [email protected]
    REgards
    Santy

    Hi
    I need also such doc. Please forward this foc to [email protected]
    Thanks

  • Bank Details FF Creation

    Hi All
    I am trying to create my own Bank Details FF and then incorporate it in the Payment Method.
    Some of my collegues say we can't create a Bank Details FF of our Own for the Payroll where as some says we can create. So, i am bit Confused. Please solve this issue.
    The steps i have followed to create are:
    1. Created a Business Group with the 6 KFF's
    2. Went into HRMS Localization Seeded Data and Default Owning and selected Human Resources and Payroll as the
    3.Went to Payment Types in the same Resp and Created my own Payment Type for Cash,Check and Bank.
    4.Coming back to Payment Method in the HRMS Resp i am now able to view my Bank Details where as by default i am getting the Legislation Bank Details segments in R12 where as in 11i it is throuing an error.
    I would be glad if any one could solve this issue.
    Thanks in Advance
    Srujana

    Srujana
    Bank detail flexfield comes with the product and based on the legislation you select the flexfield structure varies
    My question wil be why do you want to create your own flexfield, does the seeded segment structure not meeting your business needs?

  • Using Apple's sample project at your own gain, legal or not legal?

    I found a sweet sample project in my Xcode developer folder called "Sketch". I would like to use it's code and redesign, redevelop, and totally flip it around to were I just used it as a template towards my own project. Is that legal to do? Considering Apple produced it as a sample project, not as a sample code to build on. Or would this be something to contact Apple about?

    I've done that. None of them say anything about redistribution to an extent of mine. Most of them say stuff like this "I found this in other headers, but this one came from infoPlst.strings"
    /* For the Finder's info panel. */
    CFBundleGetInfoString = "2.0.1, Copyright © 1998-2009, Apple Inc.";
    /* For the app's About panel. */
    NSHumanReadableCopyright = "Copyright © 1998-2009, Apple Inc.\nAll rights reserved.";
    /* On Mac OS 10.4 "Apple Sketch document" is the localization of the matching CFBundleTypeName entry in the Info.plist. On 10.5 it's also the localization of the matching UTTypeDescription entry in the Info.plist. The NSPDFPboardType and NSTIFFPboardType localizations are only used on 10.4, by Cocoa. On 10.5 the corresponding CFBundleDocumentTypes entries are pretty much ignored, because this app uses UTIs instead. */
    "Apple Sketch document" = "Apple Sketch document";
    "NSPDFPboardType" = "Portable Document Format (PDF) document";
    "NSTIFFPboardType" = "Tagged Image File Format (TIFF) image";

  • Managing memory in shared mode

    Dear all,
    1. Is the oracle shared server mode assign equal memory each session?
    And where i can find the document about managing memory of shared server mode ?
    Thks for advance
    Chara

    Thanks hsawwan
    I cannot find the documents
    Note: 461063.1 - HR and Financials Applications Installed as Full Instead of Shared
    Note: 461063.1 - Changing Oracle Human Resources Installation from FULL HR/FULL Payroll Install to SHARED HR/SHARED Payroll Install
    in Metalink. Do you have any idea if thos documents still available?
    Those documents change HRMS from Install to Shared Mode when the application is already installed.
    Is any way to install HRMS in shared mode before install the application?
    Regards
    Alvaro

  • Payment Types

    I am trying to access the Payment Types screen from HRMS Localization Seed Data Entry responsibility and getting the following error
    APP-PAY-07050: You cannot enter this form in USER mode.
    what does this mean?
    and how to fix it?

    I have added the function to the "Global Super HRMS Manager" responsibility
    and still having the same error message
    the user function name is "Define Payment Types"
    and the function name is PAYWSPTD
    in the Functions form
    when I queried this function
    in the Properties Tab
    I found these values:
    -Type : Form
    -Maintenance Mode Support : None
    -Context Dependence : Responsibility
    any thing wrong with these values?
    the error message says "USER Mode"
    is there a profile option to determine on which mode you are?

  • Check writer process (PAYROLL) really slow

    Hi All
    Does anyone have any tips on speeding up the check writer process. I have already used and applied the CBO document for HRMS. I am looking for more tips to speed up the check writer process. It now takes 11 hrs to process 50,000 employee checks.
    Thanks
    Eddie Lufker

    You just need to change the output type of the concerned concurrent program to XML.
    --Shiv                                                                                                                                                                                           

  • Service Tax Code Creation?

    Hi,
    While raising A/R Invoice I have to charge service charges of Rs. 100000/- in which 67% is exempted from Service tax. In this circumstances how i have to create Service tax set up.
    Ex.  Service Charges -
    1,00,000
    Less : Abatement 67%----
    67000
              Balance 33% -
    33000
              Service Tax @ 12.36%on  33000                  4,079
    Invoice Total Should be                                      1,04,079
    Pl. help me in this regard for setting up the service tax code.
    Thank & Regards
    Sampath Devuneri

    sampath,
    Pl follow the below link for defining tax code
    use s-user id to login,
    https://websmp208.sap-ag.de/~form/sapnet?_SHORTKEY=01100035870000680297&_SCENARIO=01100035870000000183&_ADDINC=011000358700002837782005E&
    There is a document in pdf
    Localization in 2005B for India
    Jeyakanthan

  • Uable to add new Feeds to some balances.

    Hi All
    I have created a balance with 4 feed values by date tracking to '01-Jan-1900'.
    As my business requirement is changed I want to feed a new element using the feed button. But When I try to add a new element by date tracking to balance creation date,there are no elements in the LOV. The elements were created at the same time. This is happening only in some balances. And this is not a seeded Balance. I have tried 'HRMS Localization Seed Data Entry' responsiblity also but it didnt worked.And this balance is used in Fast formulas also.
    How can I add a new feed to the existing element?
    Regards
    Rahman

    activate sql trace to capture the sql behind the lov (with bind variables), and try to understand why that query comes up with 0 lines

  • Update required to this script

    Hi,
    This is a script to relink images by changing the names of the files in a folder etc.
    I am using Indesign CS4 and I would appreciate a update of this script to CS4 (previously worked in CS3) it still works in CS4 but not 100%.
    Could you also incorparate one little thing?
    I have a page with multiple link on it. Everytime it updates the links, it asks me to approve every single link updated. I would like the script to have a feature "update all" without having to click "yes" (for approve) a million time when I know the links are all good.
    Here is a copy of the script. ( I notice some is in what seems to be Russian, mainly the top half of the script is in Russian)
    Change Links
    version 3.5
    Relink the images of the document to files with identical names in choosen folder.
    An InDesign CS2-CS3 JavaScript
    OS: Mac OS X, Windows XP
    You use this script at your own fear and risk.
    © 2009 Dmitriy Lapayev ([email protected])
    The script is intended to replace the images of the document on files with identical names
    from selected folder.
    Main tasks:
    1) Replace the missing files of the non-standard "Package Publication",
    including interconnection transfers projects like: "Windows" to "MAC OS X" or from "MAC OS X" to "Windows";
    2) The substitution of the preliminary document images on the processed files
    with unchanged proportions of the height and width
    (without the “Crop Image” and changes “Canvas Size”).
    In parentheses elements of the dialog indicates the number of found objects of this type.
    When launched, need select a folder, which contains the files that are intended to replace in the document.
    Realized:
    • choice of language when you first start: Russian or English
    (full support of the Russian language is available only for OS Windows)
    • extraction of embedded image files of the document;
    • check the attribute «nonprinting»;
    • search for types of document images;
    • search for files extensions in the selected folder;
    • Unlock Position for groups and objects to the replacement of files;
    • save the settings and selected folder path in the ini-file
    (created when you first run the script).
    Relink images:
    1) stored the geometric coordinates of images (Geometric Bounds), if not choosed
    settings: Center Content, Scale 100% or Angles 0 °;
    preservation of Geometric Bounds (top left and bottom right points) of the original image
    is intended to replace the links to images with unchanged proportions of the height and width
    (without «crop» - Crop Image and resizing - Canvas Size);
    2) ignored:
    • files with duplicate names (with the extension) -
    when you change the type of files «identical», without an extension -
    with the replacement for the selected type, complete with different full file names;
    • outside pages images (PB);
    • images posted from the clipboard (without link).
    Скрипт предназначен для замещения связанных файлов документа
    на файлы с аналогичными именами в выбранной папке.
    Базовые задачи:
    1) восстановление потерянных связей с файлами
    нестандартных «сборок проектов» (Package Publication) при переносе, включая межсистемный;
    2) замещение предварительных изображений в документе на обработанные.
    В круглых скобках элементов диалога настроек скрипта указывается количество найденных
    объектов данного типа.
    При запуске скрипта выбирается папка, которая содержит файлы, предназначенные
    для замещения в документе.
    Настройки скрипта:
    1) выбор изображений документа по состоянию связи с файлом;
    2) диапазон страниц замещения изображений, задается именами страниц и секциями документа
    (выбор секции обладает большим приоритетом);
    3) «Режим пошаговой замены» - Step Mode:
    • установка Center Content - размещать изображение по центру фрейма (контейнера);
    • установка Scale 100% - вертикальному и горизонтальному масштабированию изображения
    присваивается значение 100%;
    • установка Angles 0° – углам вращения и горизонтального сдвига присваивается значение 0°;
    • установка Check Rotate 90° - проверка вращение изображения (±90°),
    при обнаружении несоответствия отношения вертикального и горизонтального масштабов
    исходного и обработанного изображений;
    • установка Clipping Path to None – отключать «обтравочный» путь;
    • установка Check Transparency - проверка параметров прозрачности изображений и фреймов
    (Blending Settings: Opacity < 100%, Blending Mode - не «Normal»);
    4) Including Non-printing Objects - включая объекты с атрибутом «не печатать»
    при замещении связей с файлами;
    5) «Choice of File Extensions:» - выбор типов связанных файлов документа
    для замены в заданном диапазоне страниц;
    6) «File Names:» - установки для сопоставления имен исходных и найденных в выбранной папке файлов,
    если имена файлов не совпадают («неидентичные» - «Non-identical»):
    • «The End of File Name:» - выбор окончания имени файла, содержащего более одного символа «точка»;
    • «Choice of File Extensions:» - выбор расширения файлов в указанной папке;
    7) «Show Relink Report» - формирование и отображение отчета замещения связей с файлами.
    Реализовано:
    • выбор языка интерфейса скрипта при первом запуске: русский или английский
    (полная поддержка русского языка доступна только на ОС «Windows»)
    • извлечение внедренных файлов изображений документа;
    • проверка атрибута «не печатать»;
    • поиск типов связанных файлов документа;
    • поиск расширений файлов в выбранной папке;
    • Unlock Position для групп и объектов при замещении файлов;
    • сохранение настроек и пути к выбранной папке в файле инициализации
    (создается при первом запуске скрипта).
    При замещении изображений:
    1) сохраняются геометрические координаты изображений – Geometric Bounds, если не установлено
    в настройках: Center Content, Scale 100% или Angles 0°;
    сохранение Geometric Bounds (верхняя левая и нижняя правая точки) исходного изображения
    предназначено для замещения на связи с файлами при неизменных пропорциях высоты
    и ширины изображений, т.е. без «кадрирования» - Crop Image и изменения размера - Canvas Size;
    2) игнорируются:
    • файлы с дублирующимися именами с расширением - при замене на тип файлов «идентичный»,
    без расширения - при замене на выбранный тип, при отличающихся полных именах файлов;
    • изображения, находящиеся вне страниц документа (PB);
    • изображения, помещенные из буфера обмена (отсутствует связь с файлом).
    © 2009 Дмитрий Лапаев ([email protected])
    with (app) {
    const myScrVer = "3.5";
    const myScrName = "Change Links";
    // максимальная величина допуска отношений горизонтального и вертикального масштабов изображений
    const myVGScDop = 0.01;
    // copyright
    var mn = "\u00A9\ \u0044\u006D\u0069\u0074\u0072\u0069\u0079\ \u004C\u0061\u0070\u0061\u0079\u0065\u0076";
    // User Interaction Level
    scriptPreferences.userInteractionLevel = UserInteractionLevels.interactWithAll;
    // создание файла инициализации
    const IniFName = "ChLinks_ini.txt";
    var MyStrIniF = "";
    var lgclIniF = new File (activeScript.path + "/" + IniFName);
    if (!lgclIniF.exists) {
      // Выбор языка интерфейса
      var s_Locale = "";
      var myLanguageSelectDialog = dialogs.add({name: "Select Language (" + $.locale + ")", canCancel: false})
      with (myLanguageSelectDialog.dialogColumns.add().borderPanels.add()) {
       var languagesNames = new Array ("Русский", "English");
       var languagesSelect = dropdowns.add({stringList:languagesNames, selectedIndex: 0, minWidth: 160});
      myLanguageSelectDialog.show();
      switch (languagesSelect.selectedIndex) {
       case 0: s_Locale = "ru"; break;
       case 1: s_Locale = "ua"; break;
       case 2: s_Locale = "en"; break;
      myLanguageSelectDialog.destroy();
      MyStrIniF += "var inScriptName = \"" + myScrName + " " + myScrVer + "\";\n";
      MyStrIniF += "var inpVLinkStM = 0;\n";
      MyStrIniF += "var inpDefPath = \"\";\n";
      MyStrIniF += "var inStepMode = true;\n";
      MyStrIniF += "var inShowReport = true;\n";
      MyStrIniF += "var inClippPathNone = false;\n";
      MyStrIniF += "var inCenterCont = false;\n";
      MyStrIniF += "var inScale100 = false;\n";
      MyStrIniF += "var inAngles0 = false;\n";
      MyStrIniF += "var inCheckRotImage = false;\n";
      MyStrIniF += "var inpOrdDotN = true;\n";
      MyStrIniF += "var inpNotIdcl = true;\n";
      MyStrIniF += "var inpInSec = false;\n";
      MyStrIniF += "var inCheckTransp = false;\n";
      MyStrIniF += "var inNonprintIm = true;\n";
      MyStrIniF += "var sel_Language = \"" + s_Locale + "\";\n";
      MyStrIniF += "const mn = \"" + mn + "\";";
      lgclIniF.open("w");
      if (lgclIniF.write(MyStrIniF)) {
       alert (IniFName + " successfully created!\n(Default Script Options)", myScrName + " " + myScrVer, false);
       lgclIniF.close();
       eval ("//@include \'" + IniFName + "\';");
      else {alert("Unable to write the ini-file!"); exit();}
    else {eval ("//@include \'" + IniFName + "\';"); cr();}
    // тип файловой системы (ОС)
    var WonFS = File.fs;
    if (WonFS == "Macintosh") {WonFS = "Mac OS X";}
    // язык интерфейса
    $.localize = true;
    $.locale = sel_Language;
    const copyRight = localize ({ru: "\u00A9\ Дмитрий Лапаев", en: mn});
    const local_Folder = localize ({ru: "Папка: ", en: "Folder: "});
    const local_inFolder = localize ({ru: "папке: ", en: "a Folder: "});
    const local_In = localize ({ru: " в ", en: " in "});
    const local_To = localize ({ru: " на ", en: " to "});
    const local_FNames = localize ({ru: "имена файлов", en: "names"});
    const local_Report = localize ({ru: "Отчет замещения файлов", en: "Relink Report"});
    const local_Relink = localize ({ru: "Заменить", en: "Relink"});
    const local_Found= localize ({ru: "Найдено", en: "Found"});
    const local_inSections = localize ({ru: "cекциях", en: "sections"});
    const local_Total = localize ({ru: "Всего: ", en: "Total: "});
    const local_Links= localize ({ru: "связей с файлами", en: "Links"});
    const local_Files = localize ({ru: "-файлы", en: "-files"});
    const local_LinkStatus = localize ({ru: "состояние связей -", en: "link status -"});
    const local_OfSectionsN = localize ({ru: " cекции №", en: " of section #"});
    const local_OfDocument = localize ({ru: " документа", en: " of document"});
    const local_Conditions = localize ({ru: "Условия замещения:", en: "Conditions:"});
    const local_ApplyChanges = localize ({ru: "Сохранить изменения?", en: "Apply Changes?"});
    const local_ContinueRelink = localize ({ru: "Продолжить замещение файлов?", en: "Continue Relink Files?"});
    const local_RepInf_1 = localize ({ru: "успешно заменено", en: "Successfully relink"});
    const local_RepInf_2 = localize ({ru: "отсутствуют в папке", en: "Links to not existing files"});
    const local_RepInf_3 = localize ({ru: "игнорировано из-за дубликата имени", en: "Ignored links with duplicates of names"});
    const local_RepInf_4 = localize ({ru: "отменено пользователем", en: "Canceled by user"});
    const local_RepInf_5 = localize ({ru: "объекты \"не для печати\"", en: "Оbjects with attribute \"Nonprinting\""});
    // надписи диалогов
    const RotateLabel = localize ({ru: "Вращать", en: "Rotate"});
    const ChoiceFileFormatsLabel = localize ({ru: "Выбор форматов файлов:", en: "Choice of File Formats:"});
    const FileNameLabel = localize ({ru: "Имена файлов:", en: "File Names:"});
    const PageRangeLabel = localize ({ru: "Диапазон страниц:", en: "Range of Pages:"});
    const EndPageNameLabel = localize ({ru: "Окончание имени:", en: "The End of File Name:"});
    const ChoiceExtLabel = localize ({ru: "Выбор типа файлов:", en: "Choice of File Extensions:"});
    var nameNCE =  "identical";
    if (WonFS == "Windows") {nameNCE =  localize ({ru: "идентичные", en: nameNCE});}
    var nameNon =  "Non-";
    if (WonFS == "Windows") {nameNon =  localize ({ru: "не", en: nameNon});}
    var selShowPeport = "Show Relink Report";
    if (WonFS == "Windows") {selShowPeport = localize ({ru: "Отобразить отчет", en: selShowPeport});}
    var selSections = "Sections:";
    if (WonFS == "Windows") {selSections = localize ({ru: "Cекции документа:", en: selSections});}
    var selFDot = "First Dot";
    if (WonFS == "Windows") {selFDot = localize ({ru: "первая точка", en: selFDot});}
    var selLastDot = "Last Dot";
    if (WonFS == "Windows") {selLastDot = localize ({ru: "последняя точка", en: selLastDot});}
    var selStepMode = "Step Mode";
    if (WonFS == "Windows") {selStepMode = localize ({ru: "Режим пошаговой замены", en: selStepMode});}
    var selFitCenter = "Center Content";
    if (WonFS == "Windows") {selFitCenter = localize ({ru: "по центру фрейма", en: selFitCenter});}
    var selVHScale100 = "Scale 100%";
    if (WonFS == "Windows") {selVHScale100 = localize ({ru: "масштаб 100%", en: selVHScale100});}
    var selAngles0 = "Angles 0°";
    if (WonFS == "Windows") {selAngles0 = localize ({ru: "углы 0°", en: selAngles0});}
    var selСhRotate90 = "Check Rotate 90°";
    if (WonFS == "Windows") {selСhRotate90 = localize ({ru: "проверять вращение на 90°", en: selСhRotate90});}
    var selClippingPathNone = "Clipping Path to None";
    if (WonFS == "Windows") {selClippingPathNone = localize ({ru: "отключать обтравочный путь", en: selClippingPathNone});}
    var selChTransparency = "Check Transparency";
    if (WonFS == "Windows") {selChTransparency = localize ({ru: "проверять прозрачность", en: selChTransparency});}
    var selNonprintingImages = "Including Non-printing Objects";
    if (WonFS == "Windows") {selNonprintingImages = localize ({ru: "Включая объекты не для печати", en: selNonprintingImages});}
    var selRotate90CW = "90° CW";
    if (WonFS == "Windows") {selRotate90CW = localize ({ru: "90° по часовой стрелке", en: selRotate90CW});}
    var selRotate90CCW = "90° CCW";
    if (WonFS == "Windows") {selRotate90CCW = localize ({ru: "90° против", en: selRotate90CCW});}
    // массив выбора состояний связей
    var inpVLinkStArr = new Array();
    if (WonFS == "Windows") {
      inpVLinkStArr = [[localize ({ru: "отсутствующие", en: "Missing"}), false], [localize ({ru: "нормальные", en: "Normal"}), false], [localize ({ru: "модифицированные", en: "Modified"}), false], [localize ({ru: "все связи", en: "All Links"}), false]];
    else {
      inpVLinkStArr = [["Missing", false], ["Normal", false], ["Modified", false], ["All Links", false]];
    inpVLinkStArr[inpVLinkStM][1] = true;
    // сообщения скрипта
    var alertWithoutLink = localize ({ru: "Объект без связи с файлом!\n(импортирован из буфера обмена)\nПродолжить работу?", en: "Object without link!\n(imported from clipboard)\nContinue?"});
    var alertAfterRotateSAngle = localize ({ru: "Угол горизонтального сдвига изображения равен", en: "The skewing angle applied to the Image is"});
    var alertAfterRotateSA0 = localize ({ru: "После поворота изображения это значение будет некорректным!\nУстановить 0°?", en: "After rotate this value is incorrect!\nSet Shear Angle to 0°?"});
    var alertNonprinting = localize ({ru: "Найден объект:", en: "Non-printing Object:"});
    var alertNonprintToOff = localize ({ru: "Отключить атрибут \"не для печати\"?", en: "Set attribute \"Nonprinting\" to Off?"});
    var alertEmbedded = localize ({ru: "внедренных изображений", en: "embedded files"});
    var alertUnembed = localize ({ru: "Сохранить внедренные изображения?", en: "Unembed this files?"});
    var alertAlreadyExist = localize ({ru: "уже существует в указанной папке.\nПерезаписать этот файл?", en: "already exist in the folder.\nDo you want to overwrite the file with the embedded data?"});
    var alertСreateNewFolder = localize ({ru: "Выберите папку для сохранения файлов", en: "Select the Folder where files will be created"});
    var alertNotMatchLinks = localize ({ru: "Не найдено соответствующих связей с файлами!", en: "No matching Links!"});
    var alertlEmptyFolder = localize ({ru: "пустая\nили содержит недопустимые символы в имени!\n(только для Mac OS X)", en: "is empty\nor contains illegal characters in its name!\n(Mac OS X)"});
    var alertNotFoundImages = localize ({ru: "Не найдено файлов в папке:", en: "Сannot Find Files in a Folder:"});
    var selFolderWithImages = localize ({ru: "Выберите папку с файлами для замещения в документе", en: "Select a Folder with files for Relink"});
    var andTryAgain =  localize ({ru: "и выполните скрипт повторно.", en: "and try again."});
    var noSaveDocumentAlert =  localize ({ru: "Пожалуйста сохраните документ ", en: "Please Save "});
    var noLinks = localize ({ru: "В открытом документе нет связанных файлов!", en: "No Links in Document!"});
    var noOpenDocsAlert = localize ({ru: "Отсутствуют открытые документы!\nПожалуйста откройте документ", en: "No Documents are Open!\nPlease Open a Document"}) + " " + andTryAgain;
    $.locale = null;
    // проверка открытых документов
    if (documents.length == 0) {alert (noOpenDocsAlert, inScriptName, false); exit();}
    var myDoc = activeDocument;
    try {activeDocument.filePath}
    catch (error) {alert (noSaveDocumentAlert + myDoc.name + " " + andTryAgain, inScriptName, false); exit();}
    if (myDoc.links.length == 0) {alert (noLinks, inScriptName, false); exit();}
    // версия InDesign
    try {const InDver = version.substr (0, 5);}
    catch (error) {alert (inScriptName + "\nis not compatible with this version of InDesign!", "", true); exit();}
    // количество страниц в документе
    var myDocPgsLength = myDoc.pages.length;
    // выбор папки с изображениями
    var myNIdir = Folder.selectDialog (selFolderWithImages, inpDefPath);
    if (myNIdir != null) {var MyNewDir = myNIdir; }
    else {exit();}
    // определяем расширения файлов выбранной папки, исключаем системные
    var MyFiles = MyNewDir.getFiles("*");
    if (MyFiles.length == 0) {
      alert(local_Folder + "\'" + Folder.decode(MyNewDir.name) + "\' " + alertlEmptyFolder, inScriptName, false);
      exit();
    // типы расширений файлов в выбранной папки
    var NewImagesExtType = new Array();
    NewImagesExtType =  ExtenSysCheck (MyFiles);
    if (NewImagesExtType.length == 0) {
      alert (alertNotFoundImages + " \'" + Folder.decode(MyNewDir.name) + "\'!", inScriptName, false);
      exit();
    // заполняем массив типов изображений документа
    var DocSelType = new Array();
    var TypeFileMyDoc = GetFileTypeInDoc (myDoc);
    for (var objCounter = 0; objCounter < TypeFileMyDoc.length; objCounter++) {
      DocSelType.push ([true, TypeFileMyDoc[objCounter][0]]);
    // считаем связи с файлами по состояниям
    var myLinksCounters = myDocLinksCounters(myDoc);
    var ArrStatusL = new Array();
    for (objCounter = 0; objCounter < 4; objCounter++) {
      ArrStatusL.push("(" + myLinksCounters[objCounter] + ") ");
    // имена первой и последней страниц документа
    var DocNumberPageStart = myDoc.pages[0].name;
    var DocNumberPageEnd = myDoc.pages[myDocPgsLength-1].name;
    // массив параметров секций
    var ASecPar = SecRangeOfPages (myDoc);
    // Диалог
    var myDialog = dialogs.add({name: inScriptName + " (InDesign " + InDver + " on " + WonFS + ")  " + copyRight});
    var myCheckArray = new Array();
    with (myDialog.dialogColumns.add().dialogRows.add()) { 
      with (borderPanels.add().dialogColumns.add()) {
       // панель выбора изображений документа по типу состояния связи с файлом
       with (dialogRows.add()) {
        staticTexts.add({staticLabel: local_Relink + ":"});
        var myDocLinksSatus = radiobuttonGroups.add();
        for (var StC = 0; StC < inpVLinkStArr.length; StC++) {
         myDocLinksSatus.radiobuttonControls.add({staticLabel: ArrStatusL[StC] + inpVLinkStArr[StC][0], checkedState: inpVLinkStArr[StC][1]});
       // панель выбора диапазона страниц
       with (borderPanels.add().dialogColumns.add()) {
        dialogRows.add().staticTexts.add({staticLabel: PageRangeLabel});
        // задаем имена первой и последней страниц документа
        with(dialogRows.add()) {
         var PageRangeStart = dialogColumns.add().textEditboxes.add({editContents:DocNumberPageStart, minWidth: 90});
         var PageRangeEnd = dialogColumns.add().textEditboxes.add({editContents:DocNumberPageEnd, minWidth: 90});
        var myReportTotalPages  = local_Total + myDocPgsLength;
        if (ASecPar.length > 1) {myReportTotalPages += local_In + ASecPar.length + " " + local_inSections;}
        dialogRows.add().staticTexts.add({staticLabel: myReportTotalPages});
        // секции документа
        var SecNSelect = 0;
        if (ASecPar.length > 1) {
         var MySelNumbSection = dialogRows.add().enablingGroups.add({staticLabel: selSections, checkedState: inpInSec});
         var SecNList = new Array();
         var nSecPx = "";
         var mySecRange;
         with (MySelNumbSection) {
          for (objCounter = 0; objCounter < ASecPar.length ; objCounter++) {
           if (ASecPar[objCounter][1]  == true) {nSecPx = ASecPar[objCounter][2];}
           else {nSecPx = "";}
           mySecRange = nSecPx + ASecPar[objCounter][3] + "-" + nSecPx + (ASecPar[objCounter][3]+ASecPar[objCounter][4]-1);
           SecNList.push((objCounter+1) + "\| " + mySecRange);
          SecNSelect = dropdowns.add({stringList: SecNList, selectedIndex: 0, minWidth: 165});
       // пошаговый режим
       var MyStepByStepMode = dialogRows.add().enablingGroups.add({staticLabel: selStepMode, checkedState: inStepMode});
       with (MyStepByStepMode.dialogColumns.add()) {
        var myCenterContent = checkboxControls.add({staticLabel: selFitCenter, checkedState: inCenterCont, minWidth: 191});
        with (dialogRows.add()) {
         var myScale100 = checkboxControls.add({staticLabel: selVHScale100, checkedState: inScale100});
         var myAngles0 = checkboxControls.add({staticLabel: selAngles0, checkedState: inAngles0});
        var myPossRotateIm = checkboxControls.add({staticLabel: selСhRotate90, checkedState: inCheckRotImage});
        var myClippPathNone = checkboxControls.add({staticLabel: selClippingPathNone, checkedState: inClippPathNone});
        var myChTransparency = checkboxControls.add({staticLabel: selChTransparency, checkedState: inCheckTransp});
       var myNonprintImagesRelink = checkboxControls.add({staticLabel: selNonprintingImages, checkedState: inNonprintIm});
      // панель выбора типов файлов документа для замены
      with (borderPanels.add().dialogColumns.add()) {
       with(borderPanels.add().dialogColumns.add()) {
        dialogRows.add().staticTexts.add({staticLabel: ChoiceFileFormatsLabel});
        for (objCounter = 0; objCounter < TypeFileMyDoc.length; objCounter++)
        myCheckArray[objCounter] = checkboxControls.add ({staticLabel: Str_inskbk(TypeFileMyDoc[objCounter][0]) + " (" + TypeFileMyDoc[objCounter][1] + ")", checkedState: true, minWidth: 180});
       dialogRows.add().staticTexts.add({staticLabel: FileNameLabel});
       var MyTypeNFname = dialogRows.add().enablingGroups.add({staticLabel: nameNon + nameNCE, checkedState: inpNotIdcl});
       with (MyTypeNFname.dialogColumns.add()) {
        // панель выбора окончания имени файла (для имен связанных файлов с несколькими точками в имени)
        with(borderPanels.add().dialogColumns.add()) {
         dialogRows.add().staticTexts.add({staticLabel: EndPageNameLabel});
         var myDotFLord = dialogRows.add().radiobuttonGroups.add();
         myDotFLord.radiobuttonControls.add({staticLabel: selFDot, checkedState: inpOrdDotN, minWidth: 155});
         myDotFLord.radiobuttonControls.add({staticLabel: selLastDot, checkedState: !inpOrdDotN});
        // панель выбора расширений файлов, найденных в папке
        with(borderPanels.add().dialogColumns.add()) {
         dialogRows.add().staticTexts.add({staticLabel: ChoiceExtLabel});
         var MyTypesForChange = new Array();
         for (objCounter = 0; objCounter < NewImagesExtType.length; objCounter++)
         MyTypesForChange.push("." + NewImagesExtType[objCounter]);
         var myNewImagesExtSelect = dropdowns.add({stringList:MyTypesForChange, selectedIndex: 0, minWidth: 155});
         dialogRows.add().staticTexts.add({staticLabel: local_Found + local_In + local_inFolder + NewImagesExtType.length}); 
       var myShowReportRelink = checkboxControls.add({staticLabel: selShowPeport, checkedState: inShowReport});
    // отображаем диалог
    var myResult = myDialog.show();
    if (!myResult) {myDialog.destroy(); exit();}
    // переменные выбранных установок
    var myIndexButLinksSt = myDocLinksSatus.selectedButton;
    var myButFirstDotName = false;
    if (myDotFLord.selectedButton == 0) {myButFirstDotName = true;}
    var selSectPR = inpInSec;
    try {selSectPR = MySelNumbSection.checkedState;}
    catch (e){}
    var selChTransp = myChTransparency.checkedState;
    var selScale_100 = myScale100.checkedState;
    var selAngles_0 = myAngles0.checkedState;
    var selCenterCont = myCenterContent.checkedState;
    var selChRotate = myPossRotateIm.checkedState;
    var selClipPathNone = myClippPathNone.checkedState;
    var selStepMode = MyStepByStepMode.checkedState;
    var MyNDirAbsURI = MyNewDir.absoluteURI;
    // записываем выбранные установки в файл инициализации
    MyStrIniF = "var inScriptName = \"" + myScrName + " " + myScrVer + "\";\n";
    MyStrIniF += "var inpVLinkStM = " + myIndexButLinksSt + ";\n";
    // MyStrIniF += "var inpDefPath = \"" + MyNDirAbsURI.substr(0, MyNDirAbsURI.lastIndexOf("/")) + "\";\n";
    MyStrIniF += "var inpDefPath = \"" + MyNDirAbsURI + "\";\n";
    MyStrIniF += "var inStepMode = " + selStepMode + ";\n";
    MyStrIniF += "var inShowReport = " + myShowReportRelink.checkedState + ";\n";
    MyStrIniF += "var inClippPathNone = " + selClipPathNone + ";\n";
    MyStrIniF += "var inCenterCont = " + selCenterCont + ";\n";
    MyStrIniF += "var inScale100 = " + selScale_100 + ";\n";
    MyStrIniF += "var inAngles0 = " + selAngles_0 + ";\n";
    MyStrIniF += "var inCheckRotImage = " + selChRotate + ";\n";
    MyStrIniF += "var inpOrdDotN = " + myButFirstDotName + ";\n";
    MyStrIniF += "var inpNotIdcl = " + MyTypeNFname.checkedState + ";\n";
    MyStrIniF += "var inpInSec = " + selSectPR + ";\n";
    MyStrIniF += "var inCheckTransp = " + selChTransp + ";\n";
    MyStrIniF += "var inNonprintIm = " + myNonprintImagesRelink.checkedState + ";\n";
    MyStrIniF += "var sel_Language = \"" + sel_Language + "\";\n";
    MyStrIniF += "const mn = \"" + mn + "\";";
    lgclIniF.open("w");
    if (lgclIniF.write(MyStrIniF)) {lgclIniF.close();}
    else {alert ("Error writing to the ini-file!", inScriptName, true);}
    // переменные диапазона страниц для поиска изображений
    var PRSedcont = PageRangeStart.editContents;
    var PREedcont = PageRangeEnd.editContents;
    var mySelSecStartAbs = 0;
    var mySelSecEndsAbs = myDocPgsLength;
    if (ASecPar.length > 1 && selSectPR == true) {
      SecNSelect = SecNSelect.selectedIndex;
      mySelSecStartAbs = ASecPar[SecNSelect][0];
      mySelSecEndsAbs = mySelSecStartAbs + ASecPar[SecNSelect][4];
    // присваиваем выбранный тип для замещения
    var mySelectedExt ;
    var ResIndexSelectExt = myNewImagesExtSelect.selectedIndex ;
    if (MyTypeNFname.checkedState == false) {mySelectedExt = nameNCE;}
    else {mySelectedExt = NewImagesExtType[ResIndexSelectExt];}
    var mySTdocStr = new Array();
    // выбранные для замещения типы документа
    for (objCounter = 0; objCounter < DocSelType.length; objCounter++) {
      DocSelType[objCounter][0] = myCheckArray[objCounter].checkedState;
      if (DocSelType[objCounter][0] == true) mySTdocStr.push(Str_inskbk(DocSelType[objCounter][1]));
    // формируем массив изображений документа по установленным условиям
    var MyGraphicsPages = new Array();
    // выборка всех изображений из заданного диапазона страниц
    MyGraphicsPages = RangePagesGraphics (myDoc, PRSedcont, PREedcont, selSectPR, mySelSecStartAbs, mySelSecEndsAbs);
    PRSedcont = MyGraphicsPages[1]
    PREedcont = MyGraphicsPages[2];
    // массив имен файлов изображений с атрибутом "не печатать"
    var myImagesWithANonpr = new Array();
    // удаляем (при выборе в диалоге) изображения с атрибутом "не печатать"
    MyGraphicsPages = myPrint_ObjArray (MyGraphicsPages[0], MyStepByStepMode.checkedState, myNonprintImagesRelink.checkedState, myImagesWithANonpr)
    // выбираем по статусу состояния связи с файлом изображения
    MyGraphicsPages = selMissNormModAll_Links (MyGraphicsPages, myIndexButLinksSt);
    // выборка по обозначенным типам изображений
    MyGraphicsPages = getTypeRastrImages (MyGraphicsPages, DocSelType);
    // удаляем файлы с дублирующимися именами при разных путях
    MyGraphicsPages =  FindDuplicatesNames (MyGraphicsPages, mySelectedExt, myButFirstDotName);
    if (MyGraphicsPages.length == 0) {
      alert (alertNotMatchLinks, inScriptName, false);
      myDialog.destroy();
      exit();
    // переподстановка выбранных файлов:
    var beRotate = false;
    var ResRelinkErr = SelectedFiles_Relink (MyGraphicsPages, MyNDirAbsURI, mySelectedExt);
    // отчет
    ResRelinkErr.push(myImagesWithANonpr);
    if (myShowReportRelink.checkedState) {ReportErrorsRelink (ResRelinkErr, inpVLinkStArr[myIndexButLinksSt][0], PRSedcont, PREedcont, SecNSelect, selSectPR, mySTdocStr);}
    myDialog.destroy();
    exit();
    /* ФУНКЦИИ•••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••• •••••••••••••••••••••••••••••••••••••••••••••••*/
    /* Функция возвращает массив счетчиков изображений документа по состоянию связи с файлом.
    Внедренные файлы предлагается извлечь в выбранную папку. */
    function myDocLinksCounters (inDDoc) {
    var aDocLinksL = inDDoc.links.length;
    var ArrLinksCount = new Array(0, 0, 0, aDocLinksL);
    var myEmbeddedLinks = new Array();
    for (var linkCounter = 0; linkCounter < aDocLinksL; linkCounter++) {
      if (inDDoc.links[linkCounter].status == LinkStatus.linkMissing) ArrLinksCount[0]++;
      if (inDDoc.links[linkCounter].status == LinkStatus.normal) ArrLinksCount[1]++;
      if (inDDoc.links[linkCounter].status == LinkStatus.linkOutOfDate) ArrLinksCount[2]++;
      if (inDDoc.links[linkCounter].status == LinkStatus.linkEmbedded) myEmbeddedLinks.push(inDDoc.links[linkCounter]);
    // для внедренных изображений
    if (myEmbeddedLinks.length > 0) {
      if (confirm (local_Found + " " + alertEmbedded + ": " + myEmbeddedLinks.length + "\n" + alertUnembed, "", inScriptName)) {
       // выбор папки
       var myUnmDir = Folder.selectDialog (alertСreateNewFolder, inDDoc.filePath);
       if (myUnmDir != null) {
        var MyNewUnembedDir = myUnmDir.absoluteURI; 
        for (linkCounter = 0; linkCounter < myEmbeddedLinks.length; linkCounter++){
         // если файл с таким же именем существует
         if (File(MyNewUnembedDir + "/" + myEmbeddedLinks[linkCounter].name).exists) {
          if (confirm (myEmbeddedLinks[linkCounter].name + " " + alertAlreadyExist, "", inScriptName)) {
           myEmbeddedLinks[linkCounter].unembed(Folder(MyNewUnembedDir));
           ArrLinksCount[1]++;
         else {
          myEmbeddedLinks[linkCounter].unembed(Folder(MyNewUnembedDir));
          ArrLinksCount[1]++;
    return ArrLinksCount;
    /* Функция удаляет из массива myObjArray изображения с атрибутом "не печатать"
    при myNonPrImSeld = false. При пошаговом режиме предлагается снять атрибут "не печатать"
    с изображений массива myObjArray.
    Формируется массив изображений с атрибутом "не печатать" myArrayNonprintingIm для отчета. */
    function myPrint_ObjArray(myObjArray, myStepModeTrue, myNonPrImSeld, myArrayNonprintingIm) {
    var myPrintObjArray= new Array();
    var myObjPr;
    for (var myCobj = 0; myCobj < myObjArray.length; myCobj++) {
      myObjPr = myObjArray[myCobj];
      if (myNonprint_ParentRe(myObjPr)) { 
       if(myStepModeTrue) {
        myObjPr.itemLink.show();
        if (confirm(alertNonprinting + " " + myObjPr.itemLink.name + "\n" + alertNonprintToOff)) {
         myNonpFalse_ParentRe (myObjPr);
         myPrintObjArray.push(myObjPr);
        else {
         myArrayNonprintingIm.push(myObjPr.itemLink.name);
       else {myArrayNonprintingIm.push(myObjPr.itemLink.name);}
       if (myNonPrImSeld == true) {myPrintObjArray.push(myObjPr);}
    else myPrintObjArray.push(myObjPr);
    return myPrintObjArray;
    /* Функция возвращает массив изображений, выбранных
    по состоянию связи c файлом из массива myImagesArray, */
    function selMissNormModAll_Links(myImagesArray, LinksStatusIndex, atrNonPrint) {
    if (LinksStatusIndex == 3) {return myImagesArray;}
    var myStatusImages = new Array();
    var myStatusLink;
    for (var myCounter = 0; myCounter < myImagesArray.length; myCounter++) {
      myStatusLink = myImagesArray[myCounter].itemLink.status;
      // отсутствующие
      if (myStatusLink == LinkStatus.linkMissing && LinksStatusIndex == 0)
       {myStatusImages.push(myImagesArray[myCounter]);}
      // нормальные
      if (myStatusLink == LinkStatus.normal && LinksStatusIndex == 1)
       {myStatusImages.push(myImagesArray[myCounter]);}
      // модифицированные
      if (myStatusLink == LinkStatus.linkOutOfDate && LinksStatusIndex == 2)
       {myStatusImages.push(myImagesArray[myCounter]);}
    return myStatusImages;
    /* Функция замещения связей с файлами. Возвращает массив с результатами замещения. */
    function SelectedFiles_Relink (MySeldGraphics, MyRFolder, myExten) {
    var myLink;
    var myNewLinkName = "";
    var myFileName = "";
    var myFileNameNoExt = "";
    var myRelinkFileName = "";
    var RelinkToFilesName = "";
    var myBlendingSettings = "";
    var myUpdLink;
    var RelinkYes = true;
    var ReportAlerts = new Array();
    var mySeccessRelinks = new Array();
    var DuplicatsCancelObj = new Array();
    var NoFileExistErrorLinks = new Array();
    var CancelByURelink = new Array();
    var OldGeomBounds;
    var myCountUndo;
    var myImageRotAng;
    var myImageShAngl;
    var myPossAngleW;
    var myNewFImage;
    var myPrSc;
    var myNewPrSc;
    var myIsImagePar = new Array();
    // считать координаты для разворота
    app.activeDocument.viewPreferences.rulerOrigin = RulerOrigin.spreadOrigin;
    // установка центральной точки (для поворота изображения)
    app.activeWindow.transformReferencePoint = AnchorPoint.centerAnchor;
    for (var i = 0; i < MySeldGraphics.length; i++) {
      myLink = MySeldGraphics[i][0].itemLink;
      myFileName = myLink.name;
      myFileNameNoExt = FileNameWtExt(myFileName, myButFirstDotName); 
      if (MySeldGraphics[i][1] == true) {   
       if (myExten == nameNCE) {myRelinkFileName = myFileName;}
       else {myRelinkFileName = myFileNameNoExt + "." + myExten;}
       // полное имя файла
       myNewLinkName = MyRFolder + "/" + myRelinkFileName;
       // переменная, описывающая операцию замещения файлов
       RelinkToFilesName = myFileName + local_To + myRelinkFileName;
       // если файл найден
       if (File (myNewLinkName).exists) {
        // запоминаем геометрические координаты предварительного изображения
        OldGeomBounds = MySeldGraphics[i][0].geometricBounds;
        // для пошагового режима
        if (selStepMode) {
         myLink.show();
         // blending settings
         if (selChTransp) {myBlendingSettings = OBJ_Effects(MySeldGraphics[i][0], InDver.substr(0,1));}
         RelinkYes = confirm (local_Relink + " " + RelinkToFilesName + "?\n\n" + myBlendingSettings);
         if (RelinkYes) {
          // запоминаем параметры предварительного изображения
          myIsImagePar = [MySeldGraphics[i][0].horizontalScale, MySeldGraphics[i][0].verticalScale, MySeldGraphics[i][0].shearAngle, MySeldGraphics[i][0].rotationAngle, OldGeomBounds];
          // отношение горизонтального и вертикального масштабов
          myPrSc = ScaleProp_HV(MySeldGraphics[i][0]);
        if (RelinkYes) {
         myLink.relink (File(myNewLinkName));
         myUpdLink = myLink.update();
         myNewFImage = myUpdLink.parent;
         myNewFImage.geometricBounds = OldGeomBounds;
         myCountUndo = 3;
         // для пошагового режима
         if (selStepMode == true) {
          // отключаем путь
          if (selClipPathNone == true) {
           if (myUpdLink.parent.clippingPath.clippingType != ClippingPathType.none) {
            myUpdLink.parent.clippingPath.clippingType = ClippingPathType.none;
            myCountUndo++;
          myUpdLink.show();
          // проверка вращения изображения на 90°
          if (selChRotate == true) {
           beRotate = false;
           // анализ вероятности поворота изображения (±90°)
           myNewPrSc = ScaleProp_HV(myNewFImage);
           if (Math.abs (myNewPrSc - myPrSc ) > myVGScDop) {
            // поворот изображения
            if (InDver.substr(0, 1) < 5) {myCountUndo = myRotateDialogCS2 (myNewFImage, myIsImagePar, myCountUndo);}
            else {myCountUndo = myRotateUIDialog (myNewFImage, myIsImagePar, myCountUndo);}
          // изображение - по центру фрейма
          if (selCenterCont) {
           myNewFImage.fit (FitOptions.centerContent);
           myCountUndo++;
          // углы - 0 градусов
          if (selAngles_0) {
           myCountUndo = image_ZeroAngle (myNewFImage, myCountUndo, beRotate);
          else {myCountUndo = anglesRounding (myNewFImage, myCountUndo);}
          // масштаб - 100 %
          if (selScale_100) {
           myCountUndo = image_VH_Scale_100 (myNewFImage, myCountUndo);
          else {myCountUndo = Scale_VH (myNewFImage, myPrSc, myCountUndo);}
          // применить изменения изображения
          if (confirm (local_ApplyChanges, "", inScriptName) == false) {
           myResUndo (myCountUndo);
           CancelByURelink.push(RelinkToFilesName);
           if (confirm (local_ContinueRelink, "", inScriptName) == false) break;
         else mySeccessRelinks.push(RelinkToFilesName);
        else mySeccessRelinks.push(RelinkToFilesName);
       else CancelByURelink.push(RelinkToFilesName);
      else NoFileExistErrorLinks.push(myRelinkFileName);
    else {if (myExten != nameNCE) {DuplicatsCancelObj.push(myFileNameNoExt);} else {DuplicatsCancelObj.push(myFileName);}}
    } // завершение цикла
    ReportAlerts.push(mySeccessRelinks);
    ReportAlerts.push(NoFileExistErrorLinks);
    ReportAlerts.push(DuplicatsCancelObj);
    ReportAlerts.push(CancelByURelink);
    ReportAlerts.push(MySeldGraphics.length);
    ReportAlerts.push(myExten);
    ReportAlerts.push(MyRFolder);
    return ReportAlerts;
    /* Функция формирует отчет по замещению фйлов изображений документа. */
    function ReportErrorsRelink (ArrErrorsLinks, myFoundSt, DnStPage, DnEndPage, DnNSec, SelSecY, TypeDocSel) {
    // массив сообщений отчета замены связей
    var StLabelsArr = new Array(local_RepInf_1, local_RepInf_2, local_RepInf_3, local_RepInf_4, local_RepInf_5);
    var myReportRelnk = app.dialogs.add({name: local_Report, canCancel: false});
    var myFragmD = myReportRelnk.dialogColumns.add().borderPanels.add().dialogColumns.add();
    with (myFragmD) {
      var myEndRT;
      var myBegRT;
      if (ArrErrorsLinks[5]  == nameNCE) {myEndRT = local_To + ArrErrorsLinks[5] + " " + local_FNames;}
      else {myEndRT = local_To + ArrErrorsLinks[5] + local_Files;} 
      if (myFoundSt != inpVLinkStArr[3][0]) {myBegRT = "1) " + local_LinkStatus + " \"" + myFoundSt + "\"";}
      else {myBegRT = "1) " + myFoundSt;}
      // формируем отчет
      with (dialogRows.add()) {
       dialogColumns.add().staticTexts.add({staticLabel: local_Conditions});
       with (dialogColumns.add()) {
        dialogRows.add().staticTexts.add({staticLabel: myBegRT});
        dialogRows.add().staticTexts.add({staticLabel: "2) " + myStrSymbolsReplace(TypeDocSel, ",", ", ") + myEndRT});
      dialogRows.add().staticTexts.add({staticLabel: local_Found + " " + local_Links + ": " + ArrErrorsLinks[4]});
      for (var myBordersCount = 0; myBordersCount <  StLabelsArr.length; myBordersCount++)
      if (myBordersCount < 4) {
       BorderTextsDropdowns (myFragmD, StLabelsArr[myBordersCount], ArrErrorsLinks[myBordersCount], 230);
      else {
       var mySecSelInfo;
       if (SelSecY) {mySecSelInfo =  local_OfSectionsN + (DnNSec+1);}
       else {mySecSelInfo = local_OfDocument;}
       dialogRows.add().staticTexts.add({staticLabel: PageRangeLabel + " " + DnStPage + " - " + DnEndPage + mySecSelInfo});
       BorderTextsDropdowns (myFragmD, StLabelsArr[myBordersCount], ArrErrorsLinks[7], 230);
      dialogRows.add().staticTexts.add({staticLabel: local_Folder + Folder.decode (Folder(ArrErrorsLinks[6]).name)});
    myReportRelnk.show();
    myReportRelnk.destroy();
    /* Функция формирует панель диалога с текстовой информацией
    и "выпадающим списком" неповторяющихся объектов массива myArray. */
    function BorderTextsDropdowns (myDialogArh, StrTextLabel, myArray, DdownsMinimW) {
    if (myArray.length > 0) {
    with (myDialogArh.borderPanels.add()) {
      staticTexts.add({staticLabel: StrTextLabel + ": " + myArray.length, minWidth: DdownsMinimW});
      try {dropdowns.add({stringList: myArray, selectedIndex: 0, minWidth: 320});}
      catch (e) {alert (e);}
    /* Функция возвращает массив графических объектов заданного диапазона страниц  документа.*/
    function RangePagesGraphics (mySegDoc, StartEC, EndgEC, SNSel, SecStart, SecEnd) {
    var NPageStart = -1;
    var CurrtPage;
    var myGaphicsCounter;
    var MyGraphicsP = new Array();
    var MyGraphicsPFinal = new Array();
    var myLinkType;
    // для диапазона страниц документа
    for (var myPageCounter = SecStart; myPageCounter <  SecEnd; myPageCounter++) {
      CurrtPage = mySegDoc.pages[myPageCounter];
      if (StartEC == CurrtPage.name) {NPageStart = CurrtPage.name;}
      if (NPageStart != -1) {
       // дополняем массив графическими объектами страницы
       for (myGaphicsCounter = 0; myGaphicsCounter <  CurrtPage.allGraphics.length; myGaphicsCounter++) {
        if (CurrtPage.allGraphics[myGaphicsCounter].itemLink != null) {MyGraphicsP.push(CurrtPage.allGraphics[myGaphicsCounter]);}
      // если имя текущей и финальной в диапазоне совпадают, то выходим из цикла
      if (EndgEC == CurrtPage.name)  break;
    EndgEC = CurrtPage.name;
    /* если не найдена первая страница в диапазоне,
    то считаем, что диапазон внутри секции задан неправильно,
    заполняем массив графическими объектами выбранной секции */
    if(SNSel == true & NPageStart == -1) {
      NPageStart = mySegDoc.pages[SecStart].name;
      for(myPageCounter = SecStart; myPageCounter <  SecEnd; myPageCounter++) {
       CurrtPage = mySegDoc.pages[myPageCounter];
       // дополняем массив графическими объектами страницы
       for(myGaphicsCounter = 0; myGaphicsCounter <  CurrtPage.allGraphics.length; myGaphicsCounter++) {
        if (CurrtPage.allGraphics[myGaphicsCounter].itemLink != null) {MyGraphicsP.push(CurrtPage.allGraphics[myGaphicsCounter]);}
      EndgEC = CurrtPage.name;
    MyGraphicsPFinal.push(MyGraphicsP);
    MyGraphicsPFinal.push(NPageStart);
    MyGraphicsPFinal.push(EndgEC);
    return MyGraphicsPFinal;
    /* Функция возвращает массив параметров секций документа.
    ArrFSecPageNumbers [section number][0] - порядковый номер первой страницы секции,
    ArrFSecPageNumbers [section number][1] - "true" - включать префикс секции при нумерации,
    ArrFSecPageNumbers [section number][2] - префикс секции,
    ArrFSecPageNumbers [section number][3] - номер первой страницы секции,
    ArrFSecPageNumbers [section number][4] - количество страниц в секции.*/
    function SecRangeOfPages (myDocument) {
    var mySecEnd = 0;
    var ArrFSecPageNumbers = new Array();
    var SectionOfPage = myDocument.pages[0].appliedSection;
    var SecPrefixName = SectionOfPage.sectionPrefix;
    var SecPnumStart =  SectionOfPage.pageNumberStart;
    var SecIncludePrfx = SectionOfPage.includeSectionPrefix;
    ArrFSecPageNumbers.push([0, SecIncludePrfx, SecPrefixName, SecPnumStart, 0]);
    for (var myPageCounter = 0; myPageCounter <  myDocument.pages.length; myPageCounter++) {
      CurrentSection = myDocument.pages[myPageCounter].appliedSection;
      if (SectionOfPage != CurrentSection) {
       SecPrefixName = CurrentSection.sectionPrefix;
       SecPnumStart =  CurrentSection.pageNumberStart;
       SecIncludePrfx = CurrentSection.includeSectionPrefix;
       ArrFSecPageNumbers[ArrFSecPageNumbers.length-1][4] = mySecEnd;
       mySecEnd = 0;
       ArrFSecPageNumbers.push([myPageCounter, SecIncludePrfx, SecPrefixName, SecPnumStart, mySecEnd]);
       SectionOfPage = CurrentSection;
      mySecEnd++;
    ArrFSecPageNumbers[ArrFSecPageNumbers.length-1][4] = mySecEnd;
    return ArrFSecPageNumbers;
    /* Функция удаления папок и системных файлов из массива объектов выбранной папки.
    Возвращает массив типов файлов (расширений). */
    function ExtenSysCheck (ArrayFilesExt) {
    var GrFilesExtArr = new Array();
    var CurrFile;
    for (var myCr = 0; myCr < ArrayFilesExt.length; myCr++) {
      CurrFile = ArrayFilesExt[myCr];
      // не папка, не системный файл
      if (typeof CurrFile.open != "undefined" && !MacOsXSysFile(CurrFile))
      GrFilesExtArr.push(FileNExt(CurrFile));
    GrFilesExtArr = getUniqObjArray(GrFilesExtArr);
    return GrFilesExtArr;
    /* Функция определения "системного файла" по расширению,
    если имя файла начинается с точки, то определяем его как системный файл (для Mac OS X). */
    function MacOsXSysFile(FileNamePath) {
    var myFileNamePath = String(FileNamePath);
    var EndFullPath = myFileNamePath.lastIndexOf("/");
    var myFileFirstT = myFileNamePath.substr(EndFullPath+1, 1);
    if (myFileFirstT == ".") {return true;}
    var ExtCurrFile = FileNExt (myFileNamePath);
    if(ExtCurrFile.length > 2 && ExtCurrFile.length < 5) {
      var SysExtArr = new Array ("DAT","VOL","APP","INI","SYS","COM","BAT","BAK", "ATM","TMP","DLL","REG","OLD","LOG","CFG","JSX","OTF","PFB","PFM","TTF","FON","LNK","EXE" );
      for (var extCr = 0; extCr < SysExtArr.length; extCr++) {
       if (ExtCurrFile == SysExtArr[extCr] || ExtCurrFile == SysExtArr[extCr].toLowerCase()) return true;}
    else return true;
    return false;
    /* Функция проверки дубликатов имен файлов
    (с расширением - при замене на идентичный тип или без расширения).
    Возвращает массив графических объектов с "разрешением замены" - ArrayGraphObjReLinksSt.
    Игнорируются файлы с дублирующимися именами:
    с расширением - при замене на тип файлов "идентичный",
    без расширения - при замене на выбранный тип, при отличающихся полных именах файлов. */
    function FindDuplicatesNames (ArrayGraphObj, myextSel, DotFirst) {
    var NameNoExt = "";
    var NameNoExtArr = new Array();
    var ArrayGraphObjReLinksSt = new Array();
    var IndFD = new Array();
    // заполняем массив имен файлов
    for (var myCr = 0; myCr < ArrayGraphObj.length; myCr++) {
      if (myextSel != nameNCE) {NameNoExt = FileNameWtExt (ArrayGraphObj[myCr].itemLink.name, DotFirst);}
      else {NameNoExt = ArrayGraphObj[myCr].itemLink.name;}
      NameNoExtArr.push (NameNoExt);
    for (myCr = 0; myCr < ArrayGraphObj.length; myCr++) {
      var PathExtArr = new Array();
      IndFD = checkDoubled (NameNoExtArr, NameNoExtArr[myCr]);
      if (IndFD.length > 1){
        for (var myDuplidx = 0; myDuplidx < IndFD.length; myDuplidx++) {PathExtArr.push(ArrayGraphObj[IndFD[myDuplidx]].itemLink.filePath);}   
        if (getUniqObjArray(PathExtArr).length == 1) {ArrayGraphObjReLinksSt.push([ArrayGraphObj[myCr], true]);}
        else {ArrayGraphObjReLinksSt.push([ArrayGraphObj[myCr], false]);}
      else {ArrayGraphObjReLinksSt.push([ArrayGraphObj[myCr], true]);}
    return ArrayGraphObjReLinksSt;
    /* Функция определения расширения файла, возвращает часть строки от крайней правой точки. */
    function FileNExt (FileNamePath) {
    var myFileNamePath = String (FileNamePath);
    var myFileNEnd = myFileNamePath.lastIndexOf (".");
    if (myFileNEnd != -1) {myFileNamePath = myFileNamePath.substr(myFileNEnd+1);}
    return myFileNamePath;
    /* Функция удаляет расширение файла,
    возвращает строку от начала myFileName до первого (при myDotOrd = true)
    или последнего символа точки (myDotOrd = false). */
    function FileNameWtExt (myFileName, myDotOrd) {
    var myFileNamePath = String (myFileName);
    var myFileNEnd = myFileNamePath.lastIndexOf (".");
    if (myFileNEnd != -1) {
      myFileNamePath = myFileName.substr (0, myFileNEnd);
      if (myDotOrd) {
       // рекурсивный вызов функции
       myFileNamePath = FileNameWtExt (myFileNamePath, true);
    return myFileNamePath;
    /* Функция получения массива типов графических файлов, которые используются в документе (ActDoc).
    Выполняется Unlock Position для всех объектов и групп с графическими изображениями документа.
    Определяется количество изображений, которые были вставлены в документ из буфера обмена (Null Link). */
    function GetFileTypeInDoc (ActDoc) {
    var myObject;
    var myImageType;
    var myDocTypeArr = new Array();
    var myDocUniqTypeArr;
    var myResultDocTypeAndCounters = new Array();
    for (var myCr = 0; myCr < ActDoc.allGraphics.length; myCr++) {
      myObject = ActDoc.allGraphics[myCr];
      myUnlock_ParentRe (myObject);
      try {
       myImageType = myObject.itemLink.linkType;
       myDocTypeArr.push(myImageType);
      catch (e) {
       mySelection_ParentRe(myObject, myObject);
       if (!confirm(alertWithoutLink, "", inScriptName)) {exit();}
    myDocUniqTypeArr = getUniqObjArray(myDocTypeArr);
    for (myCr = 0; myCr < myDocUniqTypeArr.length; myCr++) {
      myResultDocTypeAndCounters.push([myDocUniqTypeArr[myCr], checkDoubled(myDocTypeArr, myDocUniqTypeArr[myCr]).length]);
    return myResultDocTypeAndCounters;
    /* Функция осуществляет переход в активном окне на разворот
    с объектом myGraphObj и выделяет mySelectObj, если обект не является содержимым текстового блока. */
    function mySelection_ParentRe (myGraphObj, mySelectObj) {
    app.activeDocument.select (mySelectObj);
    app.activeWindow.zoom (2053206906);
    if (myGraphObj.parent.constructor.name != "Story") {
      try {app.activeWindow.activeSpread = myGraphObj.parent;}
      // рекурсивный вызов при ошибке
      catch (e) {mySelection_ParentRe(myGraphObj.parent, mySelectObj);}
    // Функция выполняет UnLock Positon изображения myGraphObj
    function myUnlock_ParentRe (myGraphObj) {
    try {myGraphObj.parent.locked = false;}
    // рекурсивный вызов при ошибке
    catch (e) {myUnlock_ParentRe(myGraphObj.parent);}
    /* Функция выполняет поиск "истинности" атрибута Nonprinting для изображения и групп, включающих текущий объект. */
    function myNonprint_ParentRe (myGraphNObj) {
    try {
      var mNonPrRes = myGraphNObj.nonprinting;
      // условие рекурсивного вызова функции
      if (mNonPrRes == false) {
       mNonPrRes = myNonprint_ParentRe (myGraphNObj.parent);
       if (mNonPrRes) {return true;}
      else {return true;}
    catch (e) {return false;}
    /* Функция отменяет "истинность" атрибута Nonprinting
    для изображения, его контейнера и групп, включающих текущий объект. */
    function myNonpFalse_ParentRe (myGraphFObj) {
    try {
      myGraphFObj.nonprinting = false;
      myNonpFalse_ParentRe(myGraphFObj.parent);
    catch (e) {}
    /* Функция поиска дубликата myObject в массиве myArray. Возвращает массив индексов найденных дубликатов в массиве. */
    function checkDoubled(myArray, myObject) {
    var IndxDupls = new Array();
    for (var objCnr = 0; objCnr < myArray.length; objCnr++) {
      if (myObject == myArray[objCnr]) {IndxDupls.push(objCnr);}
    return IndxDupls;
    /* Функция возвращает массив myResultArr из неповторяющихся объектов массива myArray. */
    function getUniqObjArray (myArray) {
    var myResultArr = new Array();
    var myObject;
    for (var myCounter = 0; myCounter < myArray.length; myCounter++) {
      myObject = myArray[myCounter];
      if (checkDoubled(myResultArr, myObject).length == 0) {myResultArr.push(myObject);}
    return myResultArr;
    function cr() {if (mn != "\u00A9\ \u0044\u006D\u0069\u0074\u0072\u0069\u0079\ \u004C\u0061\u0070\u0061\u0079\u0065\u0076") exit();}
    /* Функция получения графических объектов выбранных типов (ArrTypeFind) из массива (myRastrImageArray). */
    function getTypeRastrImages (myRastrImageArray, ArrTypeFind) {
    var myTypeResult = new Array();
    var myObject;
    var myTypeImage;
    for (var myCounter = 0; myCounter < myRastrImageArray.length; myCounter++) {
      myObject = myRastrImageArray[myCounter];
      myTypeImage = myObject.itemLink.linkType;
      for (var TypeCr = 0; TypeCr < ArrTypeFind.length; TypeCr++) {
       if (myTypeImage == ArrTypeFind[TypeCr][1] && ArrTypeFind[TypeCr][0] == true) {
        myTypeResult.push(myObject);
    return myTypeResult;
    /* Функция поворота изображения myRImage на 90° по часовой стрелке или против,
    в диалоге выбирается направление вращения. После вращения:
    изображению присваиваются значения geometricBounds исходного,
    возвращается счетчик действий над изображением - myCountNone.
    myImageArrPars  (horizontalScale, verticalScale, shearAngle, rotationAngle, geometricBounds). */
    function myRotateUIDialog (myRImage, myImageArrPars, myCountNone) {
    // Прогнозирование возможного поворота изо

    Check out my Update path names in links script: http://www.kasyan.ho.com.ua/relink.html
    Kasyan

Maybe you are looking for

  • Can I use a USB camera to import directly live footage into imovie as opposed to firewire?

    Hi! I use iMovie to directly import live footage from my camcorder. I've been using old Mini DV cameras to do this but this technology is being outdated with camera manufacturers now all moving to USB. Can I use a USB camera to take live footage dire

  • Work Paths, selections, and general doing my job better question...

    I currently work for a company that prints "Fathead" like wall graphics, i set the images up to print for them, but im looking for a better way to do what i do. Specifically my working with illustrator and Photoshop to setup the cut line for each ima

  • Unable to start up console

    I am using Windows 2000 Server and I can't to start up admin console from http://localhost:7001/console. My Internet Explorer browser (version 5.0) always hung up (task manager shows 'not responding...') ... IE5 can run applet, etc... Someone said to

  • Log analyzer and reporter for Weblogic ?

    We are using Weblogic 6.1 as a web server (no proxy). Does anyone know of a good Web log analyzer for Weblogic 6.1 ? The analyzer would analyze the log of WLS and display various statistics graphically. Something like Webtrends or Analog for IIS, IPl

  • Problems downloading larger applications on a iPhone 3GS

    Ok, I will try my best to clearly explain what's happening. Before I even attempt to do that, I will let those who need to know. That I went through over 8 pages of many different posts trying to find a problem similar to mine, with not much luck. Th