ПредишенСледващото

Един пример на разтвора на абстрактно проблема на изпълнение на избрания тип на документи за определен период.
Рекурсивни улавяне елементи на директории и документи, връзки, които съществуват във всички детайли на всички елементи разтоварват.

в предишната версия, когато разтоварването йерархични директории наблюдавани zadvoenie основните папки.

(Благодарение Jkey, ритна, че ще поправи "грешката")

Резюме постави задачата на разтоварване документи от всяка конфигурация на 1C: Enterprise 8.2 с възможност за избор по вид, дата и статус на документа (Прекарайте, изтриване), в XML файл.

Файлът трябва да съдържа два основни раздела: "директории" и "Документи". Всеки, зауствани във файл обект (референтен документ или елемент) трябва да бъде уникален в целия идентификатор файл (ID). По време на всички разтоварвания на обекта трябва да имат един и същ идентификатор.

В трябва да се намира в раздел подраздел "Справки", имената на които съвпадат с името на директорията "Вида", както е определено в конфигурацията.

Ако записът в директория е група, то е във файла елемент като името "Груп". Ако записа на директорията не е група след това тя се намира в един елемент, наречен "елемент".

Всеки артикул директория, в които искат да въведат структура, т.е. да се постави в директорията на файла с всички детайли на. Стойността поставя в частта за детайли директория елементи файл като имена, имена на директории съвпадат с данните, както са определени в конфигуратора.

Ако директорията има подпори тип "Directory" или "документ", а след това трябва да бъде поставен в съответния раздел от изхвърлянето според елементите директории заустване на правилата на файлове, както и използването на стойността на реквизита трябва да се заменят с идентификатора на обекта. Ако подпори директория има примитивен тип (низ, число, булев) или "изброяване", а след това стойността на подпори след като е пуснат във файла.

Задължителни полета за директорията:

  • Id - уникален идентификатор елемент.
  • Код - директория елемент код.
  • Име - името на елемента на директория.
  • елемент, който се намира на ниво по-горе по отношение на този елемент - майка.
  • Собственик - директория елемент или документ, който е подчинен на записа на директорията.
  • Членка - състоянието на елемент указател, което може да отнеме на стойност ", написана" или "отстранен".

Obazatelnye полета за документа:

  • Id - уникален идентификатор на документа
  • Номер - номер на документа
  • Дата - датата на документа
  • Статус - статус на документа (може да бъде настроен на "организирана", "написано" или "изтрита").

Това тук е задачата, която получих в отговор на неговия отговор на работа, нали. Преди това, имам нищо специално за XML не знае (който можете да извършвате само размяна с този формат и дори, че може да редактирате в notepade). Мисля, че е добре (моя unenlightenment), тъй като XML, за да 1C има непряка връзка, но за да бъде експерт по цялата глава, което трябва да знаете, че прекалено. нищо не може да се направи, интересно предизвикателство, ново. Трябва да се обърне внимание.

В тази статия няма да се занимава правила за разтоварване в XML, цитират като пример за един интересен курс "е интегрирането и обмена на данни в системата 1С: Предприятие 8".

Можете да изберете няколко методи за решаване.

  • Първата - най-популярните и широко гледани - на създаването на собствена схема за конфигурация XDTO. Необходимо е да се създаде (да, т.е. да направи промени в конфигурацията, но след това тя може да се изнася и да го използвате, за да качите до някъде, като на място), за да го всички ние се интересуваме от обекти се определят, обект атрибути, използвани за описание на видовете обекти и след това, с помощта на така наречения "модел XML обект", качване на данни.
  • Втората - за най-тривиални, той е платил малко време, защото тя е много проста, можете дори да не предизвестие (това е това, което аз се използва). Ние просто последователно рекурсивно (или цикъл) обходен влизане в XML файл. Това не е много добър метод от гледна точка на изтегляне на данни (ако се разтоварят на данните, а след това е някой, който го (в) трябва).
  • просто излъга има и трети. 1C 82 са вградени методи за изпълнение на обекти в XML, въз основа на собствени схеми за XDTO, които вече включват всички описания, но този метод е подходящ само за качване / сваляне в същата конфигурация, която се среща изключително рядко. Него не съм използвал, защото всички елементи и атрибути пейджъра обект вече ще са предвидена имената, и те не съвпадат с имената на детайли обект (всички те са на английски представителство), а ние всъщност трябва да използвате "свои" имена, както в конфигуратора.

Решение извършва с помощта, така да се каже, "основни понятия" на регистъра на XML, с прилагането на последователен запис. XML обектен модел няма да се използва.

Основен предмет - тя ZapisXML. Създаване на нов обект и да използват методи ZapisatNachaloElementa () и ZapisatKonetsElementa (), така да бъде. Всичко!

Както ще бъдат разтоварени раздел 2, е необходимо да ги комбинирате с един общ корен елемент (моя е "корен"). Следва описание на регистъра, а след това с документи.

В основната форма разположени контроли:

  • Типът на обекта (Когато отворите формата получаваме списък на всички видове документи и зареден в SpisokZnacheny)
  • NachaloPeriod iKonetsPerioda
  • Булева знамена на "изразходване", "Изтрити". за възможностите за избор на документа
  • и качване директория

В полето Directory, изберете име на директория, файлът се създава с името

Необходимо = продукта + формат (TekuschayaData () "DF = ddMMMM") + ".xml";

Кратко описание на алгоритъма:

  • Запитване избира документи.
  • Рекурсивно получите всички видове справочници и документи (при качването на други видове се превръщат в низ) всички данни за полученото "дървото" и попълнете своите списъци със стойностите за директории и документира своите списъци на ценности.
  • Рекурсивно получавате всички референтни стойности на всички детайли.
  • След провеждане на последователни данни от първите йерархични директории (рекурсия отново, но какво друго), предварително оформена една голяма заявка, за която не би в дръжката на линия към базата данни, както и пакети за употреба.
  • И след като документите за запис.

Мисля, че един интересен момент, получаване на данни за имена и таблица на части и детайли на PM, следвани от лечение.

След записване се показва съобщение.

Външното лечение съм създал с неуправляем обичайната форма, за нормална дебелина клиент на платформата 08.02.15.

I тествани демо конфигурация UT 10.3.

Това е първият ми публикация, надявам се някой ще дойде по-удобно. Приемам всякаква критика. На добър час.

Подкрепете проекта - споделете линка, благодаря!