Каталог решений - Простое решение проблемы обновления конфигурации РБД в периферийном узле средствами 1с-Предприятия

Простое решение проблемы обновления конфигурации РБД в периферийном узле средствами 1с-Предприятия

Простое решение проблемы обновления конфигурации РБД в периферийном узле средствами 1с-Предприятия

В наличии

Простое решение проблемы обновления конфигурации РБД в периферийном узле средствами 1с-Предприятия

Категория:

Описание

Вот раньше, давным-давно Smile во времена 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 за идею!

has been added to your cart:
Оформление заказа