Добрый день, занимаюсь обновлением creatio sales c 7.16 на 7.18,

столкнулся с проблемой конфигурирования сервиса выгрузки дистрибутивов.

Файл downloader.json настроил следующим образом:

{

    "WebRootDirectory": "C:\inetpub\wwwroot\Sales",

    "WorkDirectory": "C:\copy",

    "Site": "название из IIS",

    "Product": "SalesEnterprise",

    "DbEngineType": "PostgreSQL",

    "VersionBuild": "7.16.1.2135",

    "SkipBinary": "true",

    "ConnectionString": "Server=1.2.3.4;Port=5432;Database=crm;User ID=postgres;password=12345;Timeout=500;CommandTimeout=400;MaxPoolSize=1024;",

    "CurrentSchemaName": "public"

}

Часть данных в конфиге и логах обезличил.

Папка с UpdateService находится в корне диска с дистрибутивом на сервере.

Вот лог ошибок:

ConvertFrom-Json : Нераспознанная escape-последовательность. (29): {

        "WebRootDirectory": "C:\inetpub\wwwroot\Sales",

        "WorkDirectory": "C:\copy",

        "Site": "название из IIS",

        "Product": "SalesEnterprise",

        "DbEngineType": "PostgreSQL",

        "VersionBuild": "7.16.1.2135",

        "SkipBinary": "true",

        "ConnectionString": "Server=1.2.3.4;Port=5432;Database=crm;User ID=postgres;password=12345;Timeout=50

0;Comm

andTimeout=400;MaxPoolSize=1024;",

        "CurrentSchemaName": "public"

}

C:\UpdaterService\Downloader.ps1:407 знак:23

+     $config = $content | ConvertFrom-Json

+                          ~~~~~~~~~~~~~~~~

    + CategoryInfo          : NotSpecified: (:) [ConvertFrom-Json], ArgumentException

    + FullyQualifiedErrorId : System.ArgumentException,Microsoft.PowerShell.Commands.ConvertFromJsonCommand

Add-Member : Не удается привязать аргумент к параметру "InputObject", так как он имеет значение NULL.

C:\UpdaterService\Downloader.ps1:463 знак:18

+         $environment | Add-Member "Locale" "ENU" -Force

+                        ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

    + CategoryInfo          : InvalidData: (:) [Add-Member], ParameterBindingValidationException

    + FullyQualifiedErrorId : ParameterArgumentValidationErrorNullNotAllowed,Microsoft.PowerShell.Commands.AddMemberCo

   mmand

Add-Member : Не удается привязать аргумент к параметру "InputObject", так как он имеет значение NULL.

C:\UpdaterService\Downloader.ps1:466 знак:18

+         $environment | Add-Member "SkipVersions" @() -Force

+                        ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

    + CategoryInfo          : InvalidData: (:) [Add-Member], ParameterBindingValidationException

    + FullyQualifiedErrorId : ParameterArgumentValidationErrorNullNotAllowed,Microsoft.PowerShell.Commands.AddMemberCo

   mmand

Нравится

1 комментарий
Лучший ответ

Добрый день.

 

Попробуйте указать информацию по путям к директориям через 2 слеша - у Вас через 1.

 

Также рекомендую прочитать ещё раз внимательно иструкцию по обновлению на Академии.

Использовать такие настройки, как у Вас, для файла json нужно только в случае, если на сервере вашего приложения отсутствует доступ к интернету, и вы выгружаете данные с другого компьютера.

В противном случае для настройки выгрузки Вы можете использовать упрощенный вид файла json:

{
"WebRootDirectory": "c:\\inetpub\\wwwroot\\delivery",
"WorkDirectory": "c:\\temp\\delivery",
"Site": "имя вашего сайта в IIS",
"Product": "Studio",
"VersionBuild": "7.14.1.935"
}

Так как такой вид содержит меньше параметров, вероятность допустить ошибку при указании параметров меньше.

 

Добрый день.

 

Попробуйте указать информацию по путям к директориям через 2 слеша - у Вас через 1.

 

Также рекомендую прочитать ещё раз внимательно иструкцию по обновлению на Академии.

Использовать такие настройки, как у Вас, для файла json нужно только в случае, если на сервере вашего приложения отсутствует доступ к интернету, и вы выгружаете данные с другого компьютера.

В противном случае для настройки выгрузки Вы можете использовать упрощенный вид файла json:

{
"WebRootDirectory": "c:\\inetpub\\wwwroot\\delivery",
"WorkDirectory": "c:\\temp\\delivery",
"Site": "имя вашего сайта в IIS",
"Product": "Studio",
"VersionBuild": "7.14.1.935"
}

Так как такой вид содержит меньше параметров, вероятность допустить ошибку при указании параметров меньше.

 

Показать все комментарии

Добрый день!



Каким образом можно выгрузить все документы из CRM (Cloud) прикрепленные во вложениях, детали "Файлы и ссылки"?

Нравится

5 комментариев
Лучший ответ

Здравствуйте! Вы можете воспользоваться готовым решением  External File Storage, чтобы выгрузить файлы на Google Drive или One Drive. Подробнее ознакомиться с функционалом вы можете на нашем сайте https://samarasoft.com/docs/external-file-storage/sending-files-to-ftp/

Как мне кажется самый простой способ - запросить бд, развернуть у себя, на С# написать скрипт, который присоединяется к бд, ходит по ****File схемам и сохраняет файлы на диск

Либо поднять у себя FTP сервер и выгрузить с облака на него аналогичным скриптом. Так можно исключить запрос бэкапа.

Написать свою страничку которая сделает запрос к нужной детали (Например файлы и примечания контрагента) получит список id записей с типом файл, пройтись по полученной коллекции и скачать (выгрузить со странички клиенту файлы) в автоматическом режиме все файлы используя FileApiService. Вроде ничего сложного и не нужен доступ к БД. 

Здравствуйте! Вы можете воспользоваться готовым решением  External File Storage, чтобы выгрузить файлы на Google Drive или One Drive. Подробнее ознакомиться с функционалом вы можете на нашем сайте https://samarasoft.com/docs/external-file-storage/sending-files-to-ftp/

Да, забыл добавить: также можно настроить интеграцию с FTP

Показать все комментарии

В bpm'online есть возможность выгрузки данных раздела в файл MS Excel для дальшейшего анализа данных.Но, к сожалению, для деталей такой возможности нет, хотя на самом деле её реализация совсем не трудоемкая и теоретически можно реализовать самостоятельно во всех нужных местах дублируя "кусочек кода". Есть предложение добавить это "кусочек кода" в базовую схему реестра детали.

1 комментарий

Добрый день, Алла!

Действительно, в данный момент такой функциональности в коробочной версии нет. Добавили данное пожелание для реализации в будущих версиях приложения.

Показать все комментарии

Добрый день!
Террасофт 3.3.2 MSSQL
Стоит задача выгрузки накладной (шапки и табличной части продуктов) в формат xml

Подскажите, пожалуйста, какие методы для этого существуют.
Может быть есть какие-то примеры.

Нравится

2 комментария

Добрый день!
Маленький пример по сохранению данных в формат XML

function SaveXMLToFile() {
	var Dataset = Services.GetNewItemByUSI('ds_Account');
	Dataset.Open();
	var XMLStorage = GetNewXMLStorage();
	XMLStorage.LoadFromDataset(Dataset, 'QueryData');
	XMLStorage.SaveToFile('c:\\qq.xml');
	Dataset.Close();
}

Еще можно посмотреть примеры работой с XML в сервисе wnd_CalendarExchangeScript, начиная с функции SaveCalendarToFile

Показать все комментарии

Помогите разрешить кое какую проблему с выгрузкой 1с.
Как известно, в террасофте есть возможность выгрузки контрагентов в 1с. В базе данных имеются соответственно поля ...Объект1с УИД1с и конечно же Код1С. Так вот, все это работает.НО! для одной базы 1с. Есть необходимость выгружать одного контрагента в две базы данных. То есть Либу туда либо сюда, а может даже в обе. Как можно решить данную проблему? Ведь в полях Контрагентов(tbl_Account) есть место только для одной базы... Ну допустим я хочу выгрузитьь и туда и сюда..В поле UID1C соответственно запишется ID объекта 1с либо с той либо с иной базы данных. Как быть помогите пожалуйста! Начальство требует!

Нравится

8 комментариев

Я вижу пока только 2 варианта:
1) Создать поля Code1C, Object1C, UID1C для второй базы, т.е. Code1CBase2 и т.д. и перенастроить интеграцию с одной из баз на них.
2) Забыть про все эти поля и действовать через универсальное поле, такое как ИНН.

Да, именно по первому варианту и хотел сделать.Добавил поля. Даже сделал выгрузку. Теперь , могу присвоить код. Но никак не могу понять где и как он заполняет поля UID1C и Object1C. Поискал в Администраторе. Нашел только огромную тучу стандартных скриптов, и то прототипы.. А где и как присваивается - непонятно.

А разве не просто в интеграции на настройке полей? По моему там же где и настраиваются все другие поля, просто они по умолчанию сразу проставляются на Code1C и Object1C, надо их просто на свои поменять.
Или я что-то не догоняю?

Ну все верно, прост у нас выгрузка в 1с не через стандартную интеграцию реализована а програмно. Скриптами. В том ся поблема.

А еще я знаю не всю структуру и где менять.Сейчас наткнулся на таблицу AccountBillingInfo там тоже есть Коды 1с И УИДы1С.. И там дублировать получается.. Че то как то все через..

Вопрос остается... Где и как присваевается UID1C и Object1C??? В Синхронизации это не указывается..

В scr_Dataflow1CConsts описаны поля связанные с 1С:

var KeyFieldName1C = 'UID1C';
var KeyFieldName1CCaption = "UID записи в 1C";
var KeyCodeFieldName1C = 'Code1C';
var KeyCodeFieldName1CCaption = "Код записи в 1C";
var KeyDateFieldName1C = 'Date1C';
var KeyDateFieldName1CCaption = "Дата синхронизации записи с 1C";
var KeyObjectName1C = 'Object1C';
var KeyObjectName1CCaption = "Объект 1C";

А их присвоение идет в scr_Dataflow1CUtils.
Например UID1C:

...
var UID1C;
...
UID1C = Param.Obj1C.XMLString(Select1C[QueryLink].UUID());
...
Dataset(KeyFieldName1C) = '{' + UID1C + '}';
...

Вам будет легче все таки копаться не тут, а создать скрипт на интеграцию и присвоить эти поля в OnBeforeRecordImport

Александ конечно предложил интересный и правильный метод решения. В своем сообщение я только дополню и приведу пример Функции OnBeforeRecordImport в части получения из 1С и присвоения в Террасофте полей UID1C и Object1C. Пример получения UID1C и Object1C Справочника 1С "Организации":

function ParseUUIDtoGUID(input) {
	var TrimResult = Trim(input.toString());
	var Result = TrimResult.toUpperCase().replace(/^[\s\r\n]+|[\{\}]|[\s\r\n]+$/g, "");
 
	if ((/[A-F0-9]{8}\-[A-F0-9]{4}\-[A-F0-9]{4}\-[A-F0-9]{4}\-[A-F0-9]{12}/).test(Result)) {
		return Result;
	} else {
		return null;
	}
}
 
function OnBeforeRecordImport(Param, Dataset, Select1C) {
...
        var GUID1C = ParseUUIDtoGUID(Param.Obj1C.String(Select1C.Организация.Ссылка.UUID()));
        if (!IsEmptyValue(GUID1C)) {
                GUID1C = '{' + GUID1C + '}';
        }
...
	TestDS.Values('UID1C') = GUID1C;
	TestDS.Values('Object1C') = Select1C.Организация.Ссылка.Метаданные().ПолноеИмя();					
...
}
Показать все комментарии
Странно, очень странно, что в такой замечательной CRM нет банальной выгрузки в платформонезависимый формат табличных данных CSV:http://ru.wikipedia.org/wiki/CSV Очень хотелось бы такой нехитрый функционал для экспорта данных из Terrasoft XRM в этом формате данных.
2 комментария

Добрый день!

Прошу уточнить, о ккой системе идет речь?
Дело в том, что в BPMonline данная функция уже реализована и выгрузка данных происходит именнов CSV формат.

Если нужно в конкретном разделе, можно добавить вручную.

Показать все комментарии

Задать кодировку выгружаемого *.csv файла реестра можно в системной настройке CSVCodePage:

Нравится

Поделиться

10 комментариев

а что-то параметр utf-8 дал вообще странный результат

Владимир, не интригуйте, поделитесь скриншотом :)

Вот, что получается при экспорте с параметром utf-8

Это значит, что кодировка базы данных не utf8. Данная системная переменная предназначена для того, чтобы корректно выгружать данные в зависимости от кодировки, использользованной для разворачивания БД.

А какая кодировка базы данных BPMOnline On-Demand?

Добрый день, Владимир!

Кодировка базы данных on-demand utf-8.

Ранее наблюдалось подобное поведение при выгрузке в случае конфликта из-за использования английской локализации Windows. Попробуйте выполнить выгрузку на компьютере с русской локализацией. Также можно попробовать заменить параметр "Current location" на "Russian" в разделе {Clock, Language, and Region} в панели управления.

"Адасюк Валерий Викторович" написал:Ранее наблюдалось подобное поведение при выгрузке в случае конфликта из-за использования английской локализации Windows.

Погодите, зачем тогда utf-8, если корректность выгрузки зависит от локализации Windows?
В таком случае, если поменять локализацию Windows на русскую, то будут некорректно выгружаться данные с латышской кодировкой.

Этот вариант предлался как обходное решение при необходимости выгрузки реестра. После чего можно изменить параметр обратно.
Как еще один вариант можно открыть выгружаемый файл с помощью Notepad ++ и уже в блокноте выберите параметр {Convert to utf-8}.

Интересно, а это так и осталось как обходное решение? Та же проблема с utf-8 наблюдается на 7.6

Здравствуйте, Владимир!

Эта ошибка связана с тем, что при открытии CSV-файла Excel не понимает, какую кодировку использовать при отображении. Это довольно распространенная проблема (Подробнее про ошибку), которая решается добавлением маркера последовательности байтов при формирования файла с нашей стороны. Работоспособность гарантируется для версий Excel 2007 и выше.

Есть несколько путей решения данного обращения, который Вы можете выбрать:
- Внести исправления схему ReportHelper. Тело метода заменить на исправленный вариант (добавил во вложения);
- В крайнем случае, т.к. ReportHelper поддается замещению, его поведение можно изменить в пользовательских пакетах. Подробнее в статье - SDK

Хотелось бы отметить, что формат CSV является универсальным, чтобы не завязываться на конкретный софт. Если реализовать подобное, чтобы Excel читал правильно, то CSV файлы с нестандартными символами (чешский и т.д.), например, станут неправильно открываться на Mac (CSV и Mac).

Показать все комментарии

Помимо встроенной стандартной функции просмотра и печати, в компоненте exG2antt, который используется для отображения диаграммы Ганта, существуют две возможности сохранения данных:
1. EMF формат.
Можно экспортировать все содержимое в EMF формат, который в дальнейшем сохранить в любом графическом формате.
Например, добавить в окно wnd_ProjectGanttArea кнопку (компонент Button) под названием btnCopyData и заголовком «Скопировать данные».
В теле функции обработки события OnClick прописать код:

function btnCopyDataOnClick(Control) {
                  acxGanntDiagramm.ActiveXObject.Copy();
}

При нажатии на эту кнопку, все содержимое диаграммы Ганта будет скопировано в буфер обмена в формате EMF. Затем можно вставить содержимое буфера, например, в MSPaint и сохранить в любом формате. В результате, изображение будет без обрезаний и уменьшения.

2. XML формат
Можно также сохранять все данные диаграммы в XML. Это реализовывается следующей командой:

acxGanntDiagramm.ActiveXObject.SaveXML('С:\SampleFileName.xml');

Данный вариант более гибкий, но требует, чтобы дополнительно была реализована возможность загрузить данный xml-файл в такой же компонент exG2antt.
Для этих целей можно разработать простое приложение, которое будет содержать в себе ActiveX компонент exG2antt и сможет загружать и отображать содержимое XML.

Нравится

Поделиться

0 комментариев
Показать все комментарии

Данное сообщение будет полезно всем, кто занимается экспортом в Excel, особенно при выгрузке больших объемов данных.

Сам принцип довольно прост - формируем двухмерный вариантный массив, указываем область в Excel, куда необходимо его разместить и выгружаем. Самой проблемной остается задача заполнения массива. Для выгрузки из Delphi есть множество примеров/ Привожу один из них:

Но как сделать то же самое, только на языке JavaScript в конфигурации Terrasoft CRM и какая при этом будет скорость?

Привожу пример кода:

function Main() {
      var Excel = new ActiveXObject('Excel.Application');
      var Workbook = Excel.Workbooks.Add();
      var Sheet = Workbook.Sheets.Add();
      var StartRowNumber = 1;
      var StartColNumber = 1;
      var RowsCount = 10000;
      var ColumnsCount = 200;
      var Range = GetRangeObject(RowsCount, ColumnsCount);
      for (var X = 1; X = RowsCount; X++) {
            for (var Y = 1; Y = ColumnsCount; Y++) {
                  Range.Value(X, Y) = X * Y;
            }
      }
      var TopLeftRangeValue = GetRangeValue(StartRowNumber, StartColNumber);
      var BottomRightRangeValue = GetRangeValue(StartRowNumber + RowsCount - 1,
            StartColNumber + ColumnsCount - 1);
      Log.Write(1, 'Начало вставки записей в диапазон "' + TopLeftRangeValue +
            ':' + BottomRightRangeValue + '" = ' + RowsCount * ColumnsCount);
      Sheet.Range(TopLeftRangeValue, BottomRightRangeValue) =
            Range.ValuesAsArray;
      Log.Write(1, 'Конец вставки записей');
      Excel.Visible = true;
}

Для запуска в скрипт необходимо включить скрипт scr_UserReportCommon в котором находятся функции GetRangeValue() и GetRangeObject().
Функцию GetRangeValue нужно заменить на новую:
function GetRangeValue(RowNumber, ColumnNumber) {
      if ((RowNumber 1) || (ColumnNumber 1)) {
          return false;
      }
      var MaxCharNumber = 26;
      if (ColumnNumber > MaxCharNumber) {
            var FloorValue = Math.floor((ColumnNumber - 1)/MaxCharNumber);
            var FirstChar = String.fromCharCode(64 + FloorValue);
            var ColumnNumber = ColumnNumber - FloorValue * MaxCharNumber;
      } else {
            var FirstChar = '';
      }
      var RangeColumn = FirstChar + String.fromCharCode(64 + ColumnNumber);
      return RangeColumn + RowNumber;
}

Принцип действия следующий:
1) Создаем массив необходимых размеров:
      var Range = GetRangeObject(RowsCount, ColumnsCount);

2) Заполняем массив данными:
      for (var X = 1; X = RowsCount; X++) {
            for (var Y = 1; Y = ColumnsCount; Y++) {
                  Range.Value(X, Y) = X * Y;
            }
      }

3) Определяем адрес левой верхней и правой нижней ячеек по номерам строки и колонки (например, получаем следующие значения "A1", "GR10000"):
      var TopLeftRangeValue = GetRangeValue(StartRowNumber, StartColNumber);
      var BottomRightRangeValue = GetRangeValue(StartRowNumber + RowsCount - 1,
            StartColNumber + ColumnsCount - 1);

4) И самое главное - запускаем вставку данных из массива:
      Sheet.Range(TopLeftRangeValue, BottomRightRangeValue) =
            Range.ValuesAsArray;

При запуске выводит в лог следующее сообщение:
[09.03.04 09.50.32.342] (W) Начало вставки записей в диапазон "A1:GR10000" = 2000000
[09.03.04 09.50.36.628] (W) Конец вставки записей

При запуске тестового примера оказалось, что данный способ заполняет 2 000 000 ячеек не более чем за 5 секунд.

При выгрузке старайтесь, чтобы объем размер области совпадал с размером массива.
И не забывайте, что в Excel существуют ограничения на количество строк и колонок в листе - строк не более 65536, а колонок - не более 256.

Нравится

Поделиться

5 комментариев

Не совсем так. В последней версии Excel колонок и строк может быть больше. Отсюда важный момент - при работе с очень большими файлами вариантный массив может не создасться, если создавать его по всей используемой области. Пишу просто потому что сам один раз на такое нарвался :)

Думаю, что при работе с большими объемами данных могут быть проблемы, которые, связаны с ограниченными ресурсами машины (например, памяти). В этом случае можно разделять массив данных на несколько более мелких блоков, каждый из которых необходимо будет вставлять в Excel отдельно.

Одним из быстрых способов также будет простой экспорт в csv формат

Интересно, а как можно организовать если на этапе создание объекта Range не известно количество строк?

И все же одним из быстрых способов будет простой экспорт в csv формат. Или же можно формировать результат непосредственно в формате Open XML для последних версий MS Office. Хотя с Open XML конечно сложнее.

Показать все комментарии

В стандартной поставке любой из версий Terrasoft есть три утилиты командной строки. Описание утилит не включается в документацию, т.к. с подобными утилитами все всегда намного проще, в каждой из них можно получить список используемых параметров просто набрав в командной строке

утилита>.exe -? или утилита>.exe –h
Сегодня речь пойдет о TSExtractServices. Ее назначение – выгрузка сервисов конфигурации и загрузка обратно. При выгрузке конфигурации на выходе она создает 3 файла: Services.xml, Scripts.js, FastReport.xml.
Services.xml - по сути это xml-ники выгруженных сервисов, которые сложили в один файл.
Если xml-представление большинства сервисов не вызывает никаких проблем с пониманием, то с 2-мя типа сервисов ситуация иная. Это скрипты и отчеты. В Services.xml текст скрипта и содержимое отчета хранятся в бинарном виде. Именно поэтому в утилите реализована выгрузка в отдельные файлы всех скриптов и всех отчетов.
Scripts.js – содержит тексты всех выгруженных скриптов, т.е. в Services.xml содержится информация о сервисе скрипта, а в Scripts.js – текст самого скрипта.
FastReport.xml – ситуация аналогичная, с той лишь разницей, что отчеты складываются в файл тоже в xml-формате (у FastReport свое xml-представление отчетов, в котором сразу разобраться не так то просто, да и ни к чему наверное :) ).

Пользоваться утилитой можно 2-мя способами: 1-й – диалоговый режим, запускаем утилиту без всяких параметров, отвечаем на вопросы, получаем результат. 2-й вариант – запуск с параметрами, о которых подробнее далее.

-sd – отображать диалог с утилитой или нет. Допустимые значения true и false. Данный параметр (установленный в false) лучше всего использовать для автоматизации регулярной выгрузки или загрузки сервисов. При этом необходимо помнить, что если вы не указали какой либо параметр, то будет использовано его значение по-умолчанию (отображается в [] скобках в диалоговом режиме). Если же значения по-умолчанию у параметра нет, то утилита спросит его сама.

-c – название конфигурации (configuration).

-wa – использовать windows аутентификацию или нет для соединения с конфигурацией (варианты: true, false).

-u – имя пользователя для входа в конфигурацию.

-p – пароль.

-d – что делаем с сервисами – выгружаем из базы (unload) или загружаем в нее (load).

-st – параметр установленный в false, позволяет создавать сервисы таблиц в конфигурации без их физического создания в базе данных. Это может понадобится, например, в случае, когда сервисы таблиц находятся в стадии разработки и не могут быть физически сохранены в базе данных без ошибок. При использовании параметра –sd=false, по-умолчанию, сервисы таблиц не сохраняются.

-sr – сохранение внешних ключей. Параметр используется при загрузке сервисов. Внешние ключи по-умолчанию также не сохраняются, для их сохранения необходимо принудительно установить параметр в true. Внешние ключи бывает необходимым не сохранять в случаях, когда в таблицах нарушена ссылочная целостность данных.
В случае необходимости, вы всегда можете пересохранить свои таблицы с внешними ключами и индексами, использовав методы скрипта scr_ResaveTable.

-tc – типы сервисов (сокращение взялось от Service Type Code – код типа сервиса), в качестве кода типа сервиса могут быть указаны Table (таблица), DBDataset (набор данных) и др. Список кодов типов сервисов можно найти в файле CoreSettings.xml в разделе ServiceTypes. Пример для выгрузки всех сервисов перечислений и диаграмм процессов:

TSExtractServices –c=configuration –u= Supervisor –sd=false –tc=Enum; WorkflowDiagram
При таких параметрах получим выгруженные (значение по-умолчанию) сервисы перечислений и диаграмм процессов, соединение с конфигурацией будет осуществлено с использованием аутентификации на уровне базы данных (значение по-умолчанию).

-i – список модулей, из которых выгружаются сервисы (от слова include)
Если, к примеру, необходимо выгрузить все скрипты, которые расположены в модуле Common это можно сделать следующим образом

TSExtractServices –c=configuration –u=Supervisor –sd=false –tc=Script –i=Common

-pth – путь, где будут сохранены результирующие файлы. По-умолчанию это значение: Bin\ExtractServices\название конфигурации>.

-m – тип выгрузки/загрузки. Данный параметр может принимать значения services и database. Внутри это реализовано следующим образом: при использовании значения database у набора данных вызывается метод сохранения или загрузки значения blob-поля, в котором хранится сервис, в xml-файл. Если используется значение services, то при выгрузке сервисов, из blob-поля в таблице, будет создан объект сервиса, и только потом сервис будет сохранен в файл. Рекомендуется при выгрузке сервисов в файл использовать значение параметра services. При загрузке сервисов наоборот – database. Если при загрузке сервисов использовать параметр services, то это будет означать, что на основании загружаемых xml-ников будут создаваться объекты сервисов, причем не одновременно, а в порядке очереди, соответственно, если между сервисами есть ссылки (а вероятность этого 90%), то они могут сбросится в пустое значение и после загрузки мы получим неработающую конфигурацию.

Ну а напоследок хочется напомнить о параметрах -? и –h, которые покажут список всех остальных.

Нравится

Поделиться

7 комментариев

В каких версиях есть данная утилита? конкретно интересует версия 3.0.2.66

Василий, Extract Services выпускается начиная с версии 3.0.2

В версии 3.0.2.66 данную утилиту не обнаружил. Подойдет ли утилита из других версий?

Запросите в support, Вам вышлют для версии 3.0.2

Запросите в support, Вам вышлют для версии 3.0.2

спасибо

Спасибо. Утилита помогает когда нет возможности использовать бэкапы.
Небольшая идея по усовершенствованию.

Показать все комментарии