Главная » Статьи » "1С" Програмирование

Скачивать материалы с сайта, могут только зарегистрированные пользователи.
Для регистрации заполните два поля ниже!

Через минуту Вы получите "Гостевой доступ"




"Мгновенный" перенос конфигурации
"Мгновенный" перенос конфигурации
 
  Мгновенный перенос изменений конфигурации между копиями ИБ 8.*
 

Очень часто при разработке используется несколько копий базы одной конфигурации.

Одна для разработчиков, в которой можно накидать изменения и поверхностно их проверить. Другая для тестеров которые уже набили свои данные и хотят их сохранить при очередном обновлении конфигурации. Другая база с оригинальными данными.. Но вообще вот такой зоопарк имеется у меня.


Дак вот все эти копии для плодотворной работы коллектива приходится обновлять каждый раз когда тестеры натыкаются на очередную по их мнению "не преодолимую ошибку".

Немного напомню у том как это можно сделать стандартными методами

Есть два пути .. через распределенку, и через Владивосток.

Через распределенку все просто передаем изменения из главного узла в перефирийные.
Чем плох данный способ ..
  • Во первых нужно создавать план обмена.
  • Во вторых каждый раз при создании копии (не начального образа) переопределять главный узел.
  • Ну и читать каждый раз изменения из Xml файла, запуская вначале предприятие и потом конфигуратор.
Ну и через Владивосток это самый распространенный способ:
  1. Выгрузить конфигурацию (УПП 1.2.9 - 5 мин)
  2. Загрузить конфигурацию без сравнения (УПП 1.2.9 - 9 мин).
  3. Обновить конфигурацию (УПП 1.2.9 - 4 мин)
Итого: (5 + 13*n) где n- колличество баз.
О недостатках этого способа нужно говорить?

Есть еще один путь .. пользуюсь им давно не так давно но поражаюсь почему до этого все ходил мимо и не замечал таких простых вещей.

О том как хранятся данные конфигурации писалось давно и много в том числе и мной.
Обратил я внимание на колонку "Modified" в этой колонке сохраняется дата последней модификации записи конфигурации. Вот это основная наша соломинка

Теперь спустимся ну уровень ниже. Для того что передать изменения в конфигурацию нужно сделать записи в Таблицу ConfigSave. При чем не всей конфигурации (как при загрузке без сравнения), а только измененных. Измененной запись будем считать если дата изменения "Modified" ее в основной конфигурации больше чем в копии. Можно еще сравнивать по размеру ну я считаю что это лишнее.
Ну собственно записи добавляем следующим запросом в EM или Enterprise Integrator

В запросе нужно поменять только названия баз соответствующих вашим.


Имя БД
Описание
dogovor_81 Основная БД из которой передаем изменения конфигурации.
Dogovor81_Test Копия БД в которую нужно передать изменения конфигурации.

INSERT INTO Dogovor81_Test.dbo.ConfigSave
Select ConfigNew.* From dogovor_81.dbo.Config as ConfigNew
Left JOIN
Dogovor81_Test.dbo.Config as ConfigOld
ON ConfigNew.FileName = ConfigOld.FileName
Where ConfigNew.Modified>ConfigOld.Modified or ConfigOld.Modified is Null

Выполняем запрос, перечитываем конфигурацию и обновляемся.
Теперь на сладкое... о достоинствах.
  1. Запрос выполняет меньше 2 сек.
  2. Обновление ~~60 сек. записей значительно меньше.
  3. Устраняется колоссальная избыточность перезаписи одинаковых данных.
Ограничения:
  1. Перед выполнением запроса конфигурация в которую необходимо передать изменения должна соответствовать конфигурации БД.
  2. Разумеется только для серверного варианта.
    статья с сайта: www.infostart.ru 
Категория: "1С" Програмирование | Добавил: c1 (2009 Февраль 21)
Просмотров: 1044 | Теги: Мгновенный перенос конфигурации | Рейтинг: 0.0/0

Выразить благодарность - Поделиться с друзьями!

 

Здесь все о технической стороне 1С!

 

Узнай, как правильно администрировать 1С Предприятие
Регистрируйся на бесплатный 7-ми дневный курс сейчас:

Ваш E-Mail в безопасности



Всего комментариев: 0
avatar