|
96 | 96 |
|
97 | 97 | Лог.Отладка("Устанавливаю дополнительные параметры для команды %1", ИмяКоманды); |
98 | 98 |
|
99 | | - КлассРеализации.Опция("d ibcmd-data", "", "рабочий каталог утилиты ibcmd") |
| 99 | + КлассРеализации.Опция("d ibcmd-data", "", "[*use-ibcmd] рабочий каталог утилиты ibcmd") |
100 | 100 | .Флаговый() |
101 | 101 | .ВОкружении("GITSYNC_IBCMD_DATA"); |
102 | 102 |
|
103 | | - КлассРеализации.Опция("t ibcmd-dbms", "MSSQLServer", "тип СУБД (при использовании ibcmd)") |
| 103 | + КлассРеализации.Опция("t ibcmd-dbms", "MSSQLServer", "[*use-ibcmd] тип СУБД (при использовании ibcmd)") |
104 | 104 | .ТСтрока() |
105 | 105 | .ВОкружении("GITSYNC_IBCMD_DBMS"); |
106 | 106 |
|
107 | | - КлассРеализации.Опция("s ibcmd-db-server", "", "адрес сервера базы данных (при использовании ibcmd)") |
| 107 | + КлассРеализации.Опция("s ibcmd-db-server", "", "[*use-ibcmd] адрес сервера базы данных (при использовании ibcmd)") |
108 | 108 | .ТСтрока() |
109 | 109 | .ВОкружении("GITSYNC_IBCMD_DB_SERVER"); |
110 | 110 |
|
111 | | - КлассРеализации.Опция("n ibcmd-db-name", "", "имя базы данных (при использовании ibcmd)") |
| 111 | + КлассРеализации.Опция("n ibcmd-db-name", "", "[*use-ibcmd] имя базы данных (при использовании ibcmd)") |
112 | 112 | .ТСтрока() |
113 | 113 | .ВОкружении("GITSYNC_IBCMD_DB_NAME"); |
114 | 114 |
|
115 | | - КлассРеализации.Опция("U ibcmd-db-user", "", "имя пользователя базы данных (при использовании ibcmd)") |
| 115 | + КлассРеализации.Опция("U ibcmd-db-user", "", "[*use-ibcmd] имя пользователя базы данных (при использовании ibcmd)") |
116 | 116 | .ТСтрока() |
117 | 117 | .ВОкружении("GITSYNC_IBCMD_DB_USER"); |
118 | 118 |
|
119 | | - КлассРеализации.Опция("P ibcmd-db-pwd", "", "пароль пользователя базы данных (при использовании ibcmd)") |
| 119 | + КлассРеализации.Опция("P ibcmd-db-pwd", "", "[*use-ibcmd] пароль пользователя базы данных (при использовании ibcmd)") |
120 | 120 | .ТСтрока() |
121 | 121 | .ВОкружении("GITSYNC_IBCMD_DB_PWD"); |
122 | 122 |
|
|
137 | 137 |
|
138 | 138 | СтандартнаяОбработка = Ложь; |
139 | 139 |
|
| 140 | + Лог.Информация("Используем утилиту ibcmd для выгрузки конфигурации в файлы"); |
| 141 | + |
140 | 142 | Попытка |
141 | | - ВыгрузитьКонфигурациюВФайлыIBCMD(КаталогВыгрузки); |
| 143 | + ВыгрузитьКонфигурациюВФайлыIBCMD(Конфигуратор, КаталогВыгрузки); |
142 | 144 | Исключение |
143 | 145 | ТекстОшибки = ПодробноеПредставлениеОшибки(ИнформацияОбОшибке()); |
144 | 146 | Лог.Ошибка("Невозможно выгрузить конфигурацию в файлы. Ошибка:%1%2", Символы.ПС, ТекстОшибки); |
|
159 | 161 |
|
160 | 162 | #Область Вспомогательные_процедуры_и_функции |
161 | 163 |
|
162 | | -Процедура ВыгрузитьКонфигурациюВФайлыIBCMD(Знач КаталогВыгрузки) |
| 164 | +// Процедура - выполняет выгрузку конфигурации в файлы с использованием утилиты ibcmd |
| 165 | +// |
| 166 | +// Параметры: |
| 167 | +// Конфигуратор - УправлениеКонфигуратором - объект управления конфигуратором (v8runner) |
| 168 | +// КаталогВыгрузки - Строка - каталог для выгрузки файлов конфигурации |
| 169 | +// |
| 170 | +Процедура ВыгрузитьКонфигурациюВФайлыIBCMD(Знач Конфигуратор, Знач КаталогВыгрузки) |
163 | 171 |
|
164 | | - РабочийКонфигуратор = Обработчик.ПолучитьРабочийКонфигуратор(); |
165 | | - КонтекстКонфигуратора = РабочийКонфигуратор.ПолучитьКонтекст(); |
| 172 | + КонтекстКонфигуратора = Конфигуратор.ПолучитьКонтекст(); |
| 173 | + |
| 174 | + СтрокаСоединения = КонтекстКонфигуратора.КлючСоединенияСБазой; |
| 175 | + Пользователь = КонтекстКонфигуратора.ИмяПользователя; |
| 176 | + Пароль = КонтекстКонфигуратора.Пароль; |
| 177 | + |
166 | 178 | ИмяРасширения = Обработчик.ПолучитьИмяРасширения(); |
167 | 179 |
|
168 | 180 | ПутьКIBCMD = Платформа1С.ПутьКIBCMD(Обработчик.ТекущаяВерсияПлатформы); |
169 | | - |
| 181 | + |
170 | 182 | СервернаяБаза = Ложь; |
171 | 183 | ПутьКБД = ""; |
172 | 184 |
|
173 | | - Если Лев(КонтекстКонфигуратора.СтрокаСоединения, 2) = "/F" Тогда |
174 | | - ПутьКБД = СокрЛП(Сред(КонтекстКонфигуратора.СтрокаСоединения, 3)); |
175 | | - ИначеЕсли Лев(КонтекстКонфигуратора.СтрокаСоединения, 2) = "/S" Тогда |
| 185 | + Если Лев(СтрокаСоединения, 2) = "/F" Тогда |
| 186 | + ПутьКБД = СокрЛП(Сред(СтрокаСоединения, 3)); |
| 187 | + ИначеЕсли Лев(СтрокаСоединения, 2) = "/S" Тогда |
176 | 188 | СервернаяБаза = Истина; |
177 | | - ЧастиПути = СтрРазделить(Сред(КонтекстКонфигуратора.СтрокаСоединения, 3), "\", Ложь); |
| 189 | + ЧастиПути = СтрРазделить(Сред(СтрокаСоединения, 3), "\", Ложь); |
178 | 190 | Если НЕ ЗначениеЗаполнено(СерверБД) Тогда |
179 | 191 | СерверБД = СокрЛП(ЧастиПути[0]); |
180 | 192 | КонецЕсли; |
181 | 193 | Если НЕ ЗначениеЗаполнено(ИмяБД) И ЧастиПути.Количество() > 1 Тогда |
182 | 194 | ИмяБД = СокрЛП(ЧастиПути[1]); |
183 | 195 | КонецЕсли; |
184 | 196 | Иначе |
185 | | - ПутьКБД = РабочийКонфигуратор.ПутьКВременнойБазе(); |
| 197 | + ПутьКБД = Конфигуратор.ПутьКВременнойБазе(); |
186 | 198 | КонецЕсли; |
187 | 199 |
|
188 | 200 | КомандаIBCMD = Новый Команда; |
189 | 201 | КомандаIBCMD.УстановитьКоманду(ПутьКIBCMD); |
| 202 | + КомандаIBCMD.ПоказыватьВыводНемедленно(Истина); |
| 203 | + КомандаIBCMD.УстановитьКодировкуВывода("UTF-8"); |
190 | 204 | КомандаIBCMD.ДобавитьПараметр("infobase config export"); |
191 | | - |
| 205 | + |
192 | 206 | Если ЗначениеЗаполнено(РабочийКаталогIBCMD) Тогда |
193 | 207 | КомандаIBCMD.ДобавитьПараметр(СтрШаблон("--data=%1", РабочийКаталогIBCMD)); |
194 | 208 | КонецЕсли; |
|
201 | 215 | Иначе |
202 | 216 | КомандаIBCMD.ДобавитьПараметр(СтрШаблон("--db-path=%1", ПутьКБД)); |
203 | 217 | КонецЕсли; |
204 | | - Если ЗначениеЗаполнено(КонтекстКонфигуратора.Пользователь) Тогда |
205 | | - КомандаIBCMD.ДобавитьПараметр(СтрШаблон("--user=%1", КонтекстКонфигуратора.Пользователь)); |
206 | | - Если ЗначениеЗаполнено(КонтекстКонфигуратора.Пароль) Тогда |
207 | | - КомандаIBCMD.ДобавитьПараметр(СтрШаблон("--pwd=%1", КонтекстКонфигуратора.Пароль)); |
| 218 | + Если ЗначениеЗаполнено(Пользователь) Тогда |
| 219 | + КомандаIBCMD.ДобавитьПараметр(СтрШаблон("--user=%1", Пользователь)); |
| 220 | + Если ЗначениеЗаполнено(Пароль) Тогда |
| 221 | + КомандаIBCMD.ДобавитьПараметр(СтрШаблон("--pwd=%1", Пароль)); |
208 | 222 | КонецЕсли; |
209 | 223 | КонецЕсли; |
210 | 224 | Если ЗначениеЗаполнено(ИмяРасширения) Тогда |
|
222 | 236 | КодВозврата = КомандаIBCMD.Исполнить(); |
223 | 237 |
|
224 | 238 | Если КодВозврата <> 0 Тогда |
225 | | - Лог.КритичнаяОшибка("Не удалось выгрузить конфигурацию в файлы с использованием IBCMD"); |
| 239 | + ТекстОшибки = КомандаIBCMD.ПолучитьВывод(); |
| 240 | + Лог.КритичнаяОшибка("Не удалось выгрузить конфигурацию в файлы с использованием IBCMD:%1%2", |
| 241 | + Символы.ПС, |
| 242 | + ТекстОшибки); |
226 | 243 | КонецЕсли; |
227 | | - |
| 244 | + |
228 | 245 | КонецПроцедуры // ВыгрузитьКонфигурациюВФайлыIBCMD() |
229 | 246 |
|
230 | 247 | #КонецОбласти |
|
0 commit comments