Esempio n. 1
0
func TestMain(m *testing.M) {

	currentDir, _ = utils.GetPathToCurrentDir()

	// В наименовании каталога специально присутствует пробел, чтобы протестировать
	// работу с передачей параметров в командной строке при открытии 1cv8.exe
	pathToTarget = path.Join(utils.GetParentDir(currentDir), "target dir")

	utils.RemoveIfExist(pathToTarget)
	os.Mkdir(pathToTarget, os.ModeDir)
	utils.InitLogger(pathToTarget, utils.LogLevel_TRACE)

	flag.Parse()
	os.Exit(m.Run())

	utils.RemoveIfExist(pathToTarget)

}
Esempio n. 2
0
/**
* Создать новую информационную базу
*
* @param код результата, который вернуло приложение
* @param шаблон конфигурации на основании которого необходимо создать информационную базу (может быть не указан)
*
* @result код результата и информация об ошибке (если есть)
 */
func (ib InformationBase) Create(pathToTemplate string) (resultCode int, err error) {

	utils.AddTextToLog(utils.LogLevel_INFO, "Создание новой ИБ: "+pathToTemplate)

	if len(pathToTemplate) > 0 {
		var exist bool
		exist, err = utils.Exists(pathToTemplate)
		if err != nil {
			utils.AddTextToLog(utils.LogLevel_ERROR, err.Error())
			return
		} else if !exist {
			err = errors.New("Файл не найден: " + pathToTemplate)
			utils.AddTextToLog(utils.LogLevel_ERROR, err.Error())
			return
		}
	}

	err = utils.RemoveIfExist(ib.connectionSettings.GetIbPath())
	if err != nil {
		utils.AddTextToLog(utils.LogLevel_ERROR, "Ошибка удаления каталога: "+ib.connectionSettings.GetIbPath()+":"+err.Error())
		return
	}

	/*
		1С предлагает для создания новой конфигурации на основе существующего
		cf файла использование параметра /UseTemplate, но по какой-то причине
		на некоторых версия платформы он работает не корректно.

		Поэтому делаем в два этапа:
		1. создаем новую конфигурацию
		2. загружаем в нее нужный cf файл
		3. обновляем конфигурацию информационной базы
	*/

	args := []string{}
	resultCode, err = ib.runApplication(MODE_CREATE, args)

	if err == nil && len(pathToTemplate) > 0 {
		resultCode, err = ib.LoadCfg(pathToTemplate)
	}

	if err == nil {
		resultCode, err = ib.UpdateDBCfg()
	}

	utils.AddTextToLog(utils.LogLevel_INFO, fmt.Sprintf("-Создание новой ИБ: %t", err == nil))
	return
}
Esempio n. 3
0
/**
* Сохранить конфигурацию в файл
*
* @param код результата, который вернуло приложение
* @param путь к файлу результата
*
* @result код результата и информация об ошибке (если есть)
 */
func (ib InformationBase) DumpCfg(pathToFile string) (resultCode int, err error) {

	utils.AddTextToLog(utils.LogLevel_INFO, "Сохранение cf: "+pathToFile)

	err = utils.RemoveIfExist(pathToFile)
	if err != nil {
		utils.AddTextToLog(utils.LogLevel_ERROR, "Ошибка удаления файла: "+pathToFile+":"+err.Error())
		return
	}

	args := []string{"/DumpCfg", pathToFile}
	resultCode, err = ib.runApplication(MODE_DESIGNER, args)

	utils.AddTextToLog(utils.LogLevel_INFO, fmt.Sprintf("-Сохранение cf: %t", err == nil))
	return
}
Esempio n. 4
0
/**
* Выгрузка свойств объектов метаданных конфигурации в XML-файлы
*
* @param код результата, который вернуло приложение
* @param каталог, в который будет выгружена конфигурация
*
* @result код результата и информация об ошибке (если есть)
 */
func (ib InformationBase) DumpConfigToFiles(pathToDirectory string) (resultCode int, err error) {

	utils.AddTextToLog(utils.LogLevel_INFO, "Выгрузка конфигурации в xml: "+pathToDirectory)

	err = utils.RemoveIfExist(pathToDirectory)
	if err != nil {
		utils.AddTextToLog(utils.LogLevel_ERROR, "Ошибка удаления каталога: "+pathToDirectory+":"+err.Error())
		return
	}

	args := []string{"/DumpConfigToFiles", pathToDirectory}
	resultCode, err = ib.runApplication(MODE_DESIGNER, args)

	utils.AddTextToLog(utils.LogLevel_INFO, fmt.Sprintf("-Выгрузка конфигурации в xml: %t", err == nil))
	return
}
Esempio n. 5
0
/**
* Выгрузка свойств объектов метаданных конфигурации (модули и шаблоны)
*
* @param каталог расположения файлов свойств
* @param типы которые выгружаем:
*                   Module — признак необходимости выгрузки модулей;
                    Template — признак необходимости выгрузки макетов;
                    Help — признак необходимости выгрузки справочной информации;
                    AllWritable — признак выгрузки свойств только доступных для записи объектов;
                    Picture — признак выгрузки общих картинок;
                    Right — признак выгрузки прав.
*
* @result код результата и информация об ошибке (если есть)
*/
func (ib InformationBase) DumpConfigFiles(pathToDirectory string, types ...string) (resultCode int, err error) {

	utils.AddTextToLog(utils.LogLevel_INFO, "Выгрузка конфигурации: "+pathToDirectory)

	err = utils.RemoveIfExist(pathToDirectory)
	if err != nil {
		utils.AddTextToLog(utils.LogLevel_ERROR, "Ошибка удаления каталога: "+pathToDirectory+":"+err.Error())
		return
	}

	// /DumpConfigFiles "{0}" -Module -Template
	args := []string{"/DumpConfigFiles", pathToDirectory}
	for _, v := range types {
		args = append(args, "-"+v)
	}
	resultCode, err = ib.runApplication(MODE_DESIGNER, args)

	utils.AddTextToLog(utils.LogLevel_INFO, fmt.Sprintf("-Выгрузка конфигурации: %t", err == nil))
	return
}