Простое решение проблемы обновления конфигурации РБД в периферийном узле средствами 1с-Предприятия
Простое решение проблемы обновления конфигурации РБД в периферийном узле средствами 1с-Предприятия
- Описание
- Подробнее
Описание
Вот раньше, давным-давно
во времена 1с-Предприятия 7.7 было хорошо работать с РБД. Вывел юзерам на рабочий стол иконку и сказал : 2 раза по ней щелкни, выполнится обмен с центральной базой. В семействе 1с-Предприятие 8.х этот процесс внезапно стал сложнее ( в случае, если из ЦБ пришел файл с изменениями не только данных, но и конфигурации). В Инете уже есть несколько решений, по крайней мере одно я нашел здесь : http://www.infostart.ru/projects/4406/
НО! все они используют внешние по отношению к 1с средства.
А ведь можно и так :
1)Введем в удаленной базе пользователя с именем , к примеру , Автообмен
2)Вставим в процедуру модуля приложения ПриНачалеРаботыСистемы такой кусок :
Процедура ПриНачалеРаботыСистемы()
Если ИмяПользователя()=»Автообмен» Тогда
Ошибка=»»;
Попытка
ИмяФайлаСообщения=Сокрлп(Константы.ПутьКФайлуОбмена.Получить());
ЧтениеXML=Новый ЧтениеXML();
ЧтениеXML.ОткрытьФайл(ИмяФайлаСообщения);
ЧтениеСообщения=ПланыОбмена.СоздатьЧтениеСообщения();
ЧтениеСообщения.НачатьЧтение(ЧтениеXML);
ПланыОбмена.ПрочитатьИзменения(ЧтениеСообщения);
Исключение
Ошибка=ОписаниеОшибки();
КонецПопытки;
Если Ошибка<>»» Тогда
Если Найти(Нрег(Ошибка),»конфигуратор») Тогда
ЗапуститьСистему(«DESIGNER /DisableStartupMessages /UpdateDBCfg /Visible /RunEnterprise /»);
ЗавершитьРаботуСистемы(Ложь);
Иначе
Сигнал();
Предупреждение(«ОБМЕН: Ошибка при получении данных обмена: «+Ошибка);
Сообщить(«ОБМЕН: Ошибка при получении данных обмена: «+Ошибка,СтатусСообщения.ОченьВажное);
КонецЕсли;
Возврат;
КонецЕсли;
ЧтениеСообщения.ЗакончитьЧтение();
ЧтениеXML.Закрыть();
Сигнал();
Предупреждение(«Загрузка файла из ЦБ успешно завершена»);
ЗавершитьРаботуСистемы(Ложь);
КонецЕсли;
КонецПроцедуры
Предполагается, что существует константа ПутьКФайлуОбмена и там введено, что надо.
Все очень примитивно. Навороты можно наворачивать самим.
Благодарность : Alxd за идею!

