Четверг, 09.05.2024, 11:08
Главная Регистрация RSS
Приветствую Вас, Гость
[ Новые сообщения · Участники · Правила форума · Поиск · RSS ]
  • Страница 1 из 1
  • 1
Форум » Основной » Проблемные ситуации » 2.37 проверка базы данных перед усечением типов
2.37 проверка базы данных перед усечением типов
SimolДата: Вторник, 13.03.2012, 11:58 | Сообщение # 1
Полковник
Группа: Проверенные
Сообщений: 237
Репутация: 27
Статус: Оффлайн
Имею 8.2.13 + MSSQL. В конфигурацию внесены изменения, но конфигурация базы не обновлена.
Обработка предлагает заполнить усекаемые типы.
Но команда:
Quote
ЗапуститьСистему("DESIGNER /DumpCfg " + ВременныйФайл.ПолноеИмя, Истина);

Конфигурацию не выгружает.
Если во время отладки подсунуть файл cf с нужными именем после этой команды, то следующее действие:
Quote
ирКэш.Получить().ЗапуститьСкрытоеПриложениеИДождатьсяЗавершения("""" + КаталогПрограммы() + "1cv8.exe"" " + "CREATEINFOBASE File=""" + ВременныйКаталог + """;"
+ " /UseTemplate """ + ВременныйФайл.ПолноеИмя + """");

Базу не создает, даже каталог не создается.
Если подсунуть и базу, то типы определяются корректно.
 
tormozitДата: Среда, 14.03.2012, 01:59 | Сообщение # 2
Генералиссимус
Группа: Администраторы
Сообщений: 6195
Репутация: 159
Статус: Оффлайн
Quote
ЗапуститьСистему("DESIGNER /DumpCfg " + ВременныйФайл.ПолноеИмя, Истина);

Вероятно, не выгружает конфигурацию в режиме отладки, т.к. конфигуратор занят.

К сожалению нет возможности проверить эту функцию на 13-м релизе.
Она проверялась на 14-м и 15-м релизах на файловых и клиент-серверных базах.

Попробуй сохранить строку запуска
Quote
"""" + КаталогПрограммы() + "1cv8.exe"" " + "CREATEINFOBASE File=""" + ВременныйКаталог + """;"
+ " /UseTemplate """ + ВременныйФайл.ПолноеИмя + """"

во время отладки и по ее принципу попробовать создать новую базу из шаблона.

Из справки платформы 8.2.15
Quote
CREATEINFOBASE <строка соединения> [/AddInList [<имя ИБ>]] [/UseTemplate <имя файла шаблона>] — создание информационной базы.
<Строка соединения> — строка, задающая параметры информационной базы, каждый из которых представляет собой фрагмент вида <Имя параметра>=<Значение>, где:

<Строка соединения> — строка, задающая параметры информационной базы, каждый из которых представляет собой фрагмент вида <Имя параметра>=<Значение>, где:

Имя параметра — имя параметра;
Значение — его значение.

/AddInList — параметр, показывающий, под каким именем добавлять базу в список, если не указан, база не будет добавлена в список.

<имя ИБ> — имя информационной базы, под которым сведения о базе будут добавлены в список информациионных баз. Если не указано, используется имя по умолчанию, аналогичное имени, предлагаемому системой при интерактивном создании информационной базы.

/UseTemplate — создание информационной базы осуществляется по шаблону, указанному в <имя файла шаблона>. В качестве шаблонов могут быть файлы конфигурации (.cf) или файлы выгрузки информационной базы (.dt). Если шаблон не указан, параметр игнорируется.

Пример:
CREATEINFOBASE File=e:\test3; /AddInList TEST33 /UseTemplate "C:\Documents and Settings\User\My Documents\tmplts\TestVendor\TestConfig\1Cv8.cf"
 
SimolДата: Среда, 14.03.2012, 13:39 | Сообщение # 3
Полковник
Группа: Проверенные
Сообщений: 237
Репутация: 27
Статус: Оффлайн
Провел опыты результат следующий:
От версии нет зависимости. Дело в том. что у меня xp/2003 и в имени временного файла присутствуют пробелы, потому после замены
Quote
ЗапуститьСистему("DESIGNER /DumpCfg " + ВременныйФайл.ПолноеИмя, Истина);

на
Quote
ЗапуститьСистему("DESIGNER /DumpCfg """ + ВременныйФайл.ПолноеИмя + """", Истина);

конфигурация выгружается.

Но база все еще не создается, буду дальше разбираться

Добавлено (14.03.2012, 13:16)
---------------------------------------------
на 8.2.13.202 команда
Quote
"C:\Program Files\1cv82\8.2.13.202\bin\1cv8.exe" CREATEINFOBASE File="C:\Documents and Settings\simashkevich\Local Settings\Temp\6\v8_15_2a.tmp"; /UseTemplate "C:\Documents and Settings\simashkevich\Local Settings\Temp\6\v8_15_28.CF"
запущенная вручную с командной строки ничего не делает. CF в нужном месте есть, папку "v8_15_2a.tmp" предварительно создал. Урезал строку до CREATEINFOBASE - никаких ошибое не выдает, такое ощущение, что CREATEINFOBASE и все после него игнорируется.
Quote
"C:\Program Files\1cv82\8.2.13.202\bin\1cv8.exe"
1С запускает. Попробую на 8.2.15.301

Добавлено (14.03.2012, 13:39)
---------------------------------------------
на 8.2.15.301 команда

Quote
"C:\Program Files\1cv82\8.2.15.301\bin\1cv8.exe" CREATEINFOBASE File="C:\Documents and Settings\simashkevich\Local Settings\Temp\v8_4E_40.tmp"; /UseTemplate "C:\Documents and Settings\simashkevich\Local Settings\Temp\v8_4E_3f.CF"
запущенная вручнуя с командной строки тоже ничего не дает


Сообщение отредактировал Simol - Среда, 14.03.2012, 13:18
 
tormozitДата: Среда, 14.03.2012, 13:50 | Сообщение # 4
Генералиссимус
Группа: Администраторы
Сообщений: 6195
Репутация: 159
Статус: Оффлайн
Возможно проблема в наличии пробелов в путях. Нужно методом исключения определить, где платформа их некорректно воспринимает.
 
SimolДата: Среда, 14.03.2012, 14:00 | Сообщение # 5
Полковник
Группа: Проверенные
Сообщений: 237
Репутация: 27
Статус: Оффлайн
да, проверил без пробелов на коротких путях к папке с базой - работает.
Получается нужно искать другую временную папку, в которой создавать базу. CF выгружать в папку с пробелами можно (При условии доработки
Quote
ЗапуститьСистему("DESIGNER /DumpCfg """ + ВременныйФайл.ПолноеИмя + """", Истина);


Сообщение отредактировал Simol - Среда, 14.03.2012, 14:08
 
tormozitДата: Среда, 14.03.2012, 14:26 | Сообщение # 6
Генералиссимус
Группа: Администраторы
Сообщений: 6195
Репутация: 159
Статус: Оффлайн
Т.е. платформа на всех релизах до 15 включительно параметр командной строки
Quote
File="C:\Documents and Settings\simashkevich\Local Settings\Temp\v8_4E_40.tmp";

некорректно воспринимает, а такой
Quote
File="C:\Documents\simashkevich\LocalSettings\Temp\v8_4E_40.tmp";

корректно.
Правильно я понял?
 
SimolДата: Среда, 14.03.2012, 14:32 | Сообщение # 7
Полковник
Группа: Проверенные
Сообщений: 237
Репутация: 27
Статус: Оффлайн
да, пробелы в пути расположения новой базы у меня не скушались ни в 13 ни в 15.
 
tormozitДата: Среда, 14.03.2012, 20:26 | Сообщение # 8
Генералиссимус
Группа: Администраторы
Сообщений: 6195
Репутация: 159
Статус: Оффлайн
Отчет о предполагаемой ошибке платформы отправил в 1С.

В следующих версиях попробую сделать обход этой проблемы.
 
SimolДата: Четверг, 15.03.2012, 01:48 | Сообщение # 9
Полковник
Группа: Проверенные
Сообщений: 237
Репутация: 27
Статус: Оффлайн
Как вариант проверять если в пути к базе есть пробел, то создавать ее в темпе операционки, а не в профиле.
 
tormozitДата: Воскресенье, 18.03.2012, 13:11 | Сообщение # 10
Генералиссимус
Группа: Администраторы
Сообщений: 6195
Репутация: 159
Статус: Оффлайн
Ошибка в строке
Code
ЗапуститьСистему("DESIGNER /DumpCfg " + ВременныйФайл.ПолноеИмя, Истина);


Исправлена в 2.38
 
Форум » Основной » Проблемные ситуации » 2.37 проверка базы данных перед усечением типов
  • Страница 1 из 1
  • 1
Поиск: