Имя: Пароль:
1C
1С v8
Периодическая актуализация данных в копии базы
,
0 impulse9
 
04.09.17
06:24
Есть рабочая база ERP 8.3.10, и ее копия для разработки и тестирования. Периодически возникает необходимость подгрузить новые данные из боевой в копию. Можно конечно полностью накатить сверху, но тогда надо будет отключать регламентные задания, подключать к хранилищу и т.д. что долго и не по канонам. Хотелось бы скриптом раз в неделю по ночам обновлять данные

Есть ли готовый рецепт для решения этой проблемы?
1 impulse9
 
04.09.17
06:29
Обе базы на MS SQL, но на разных серверах
2 Филиал-msk
 
04.09.17
06:35
Написать скрипт по отключению регламентных, подключению к хранилищу и т.д.
3 Обработка
 
04.09.17
06:48
Сделай РИБ с односторонней передачей данных )))
4 Филиал-msk
 
04.09.17
06:52
(3) И напиши скрипт по постоянному превращению его в ЦБ для разработки и обратно... (:
5 1dvd
 
04.09.17
06:52
нифига не понял. причем тут регламентные? Они в базе для разработчиков и так отключены постоянно
6 assasu
 
04.09.17
06:53
(0) если в консоли 1С выключить рег задания 1 раз, больше не придется это делать
7 assasu
 
04.09.17
06:53
(1) почитай книжки по скл. есть такая штука как зеркалирование
8 1dvd
 
04.09.17
06:55
(7) +1
9 Aleksey
 
04.09.17
07:28
(7), (8)
Как зеркалирование поможет в решении этой задачи? Т.е. настроил я зеркалирование, зашел в "копию" и грохнул все документы. Данные ушли в рабочую базу. Иначе это не зеркалирование.

Второй неприятный момент, это ограничение на создание новых справочников, доков, регистров, ПВХ. При создании будет ошибка типа:
Операция не может быть выполнена для базы данных "test", так как она участвует в сеансе зеркального отображения или группе доступности. Некоторые операции недопустимы для баз данных, участвующих в сеансе зеркального отображения или группе доступности.

Т.е. для обновления нужен будет бубен который отключит зеркалирования, а после включить обратно.
10 Aleksey
 
04.09.17
07:32
Зеркалирование это raid-1 из мира дисков. Т.е. мы обращаемся не к конкретной базе, а к кластеру. И при выходе из строя одной базы юзеры ничего не заметят и начнут спокойно работать с зеркалом
11 1dvd
 
04.09.17
07:35
(9) https://habrahabr.ru/post/126134/

В боевую ничего не попадёт, зеркалирование идёт из боевой
12 Aleksey
 
04.09.17
07:36
(11) это я читал, но не нашел там ни слово о том что "В боевую ничего не попадёт,"
13 Лефмихалыч
 
04.09.17
08:15
(0) регламентые в разработческих базах должны быть отключены на уровне кластера. И - разработку на продуктивном кластере ведут только отъявленные мудаки. Создай отдельный для разработки, вот так:

sc create "ragent-dev@1641" binPath= "\"C:\Program Files\1cv8\8.3.blah-blah-blah\bin\ragent.exe\" /srvc /agent /regport 1640 /port 1641 /range 1660:1690 /d \"p:\ath\to\ragent\home\" /debug" start= auto obj=USR1CV8 password=pass displayname="Сервер 1С:Предприятия для разработки"  depend= Dnscache/Tcpip/Tcpip6/lanmanworkstation/lanmanserver

убедись отдельно, что на папку p:\ath\to\ragent\home\ у USR1CV8 есть полные права, иначе не запустится.


Постоянная потребность в свежих данных - нонсенс. Изобретать для этого что-то - тоже.
14 Aleksey
 
04.09.17
08:19
(13) для поиска методов устранения ошибок.

Ну допустим пришел бух и говорит, у меня в декларации по НДС нет номеров фактур. Вот тут и нужны актуальные данные чтобы с отладчиком посидеть понять откуда данные тянуться и накидать обработку по заполнению движения документа без перепроведения. А ведь еще эту обработку проверить надо. Не на боевой же проверять
15 1dvd
 
04.09.17
08:24
(14) у нас еженощно делается (автоматически скриптом) копия боевой базы именно для таких целей
16 Dmitrii
 
гуру
04.09.17
09:25
(0) Готового рецепта нет.
Для тестирования и отладки на боевых данных проще иметь отдельную базу для тестирования и периодически перезаливать её целиком средствами СУБД. Подключать её к хранилищу смысла нет.
В базе для разработки иметь актуальные данные нафиг не надо. А раз в квартал можно потратить час для того, чтобы перезалить базу свежими данными и переподключить к хранилищу.
Если написать для это скрипт, то можно делать это без отрыва от производства во внерабочее время.
17 Lama12
 
04.09.17
09:43
(0) Рекомендую использовать две базы. Одну базу для разработки, вторую для анализа ошибок текущей версии.
Синхронизировать базу разработки и рабочую чревато проблемами с разработкой.
Пример.
Ведешь разработку и меняешь структуру данных. Приходит обращение что в рабочей базе ошибка на тех объектах метаданных по которым как-раз ведется разработка. И как синхронизировать базы?
У нас для поддержки база всегда ночью синхронизируется с рабочей путем развертывания бэкапа. Заодно и бэкап тестируется на работоспособность.
18 impulse9
 
04.09.17
10:07
(16) (17) две базы тоже вариант. Спасибо за идею
19 Лефмихалыч
 
04.09.17
10:09
(14) во-первых, это не отменяет всего, что я написал. Во-вторых, ежедневно такие вещи не происходят. ИЛи даже - часто.
20 dezss
 
04.09.17
10:14
А если обмен между ними настроить?
21 Serg_1960
 
04.09.17
10:17
Кот-то может сказать "Он фанат РИБ" - и будет не совсем прав. Просто это удобный инструмент в данном конкретном случае.

Рабочая база выступает как центральная база, копия - в роли подчинённой базы.  ЦБ "накапливает" все изменения, но то, что именно передавать в ПБ - решает программист (удаляя "ненужные" регистрации изменений перед обменом). Одноноправленный обмен тоже легко реализуется - удалением всех регистраций изменений в ПБ перед обменом. Отличия от "обычного" РИБ, только в том, что не надо настраивать автообмен - всё вышесказанное нужно реализовать без внесения изменений в конфигурацию, - во внешней обработке (которая, собственно говоря, и будет вызывать сам сеанс обмена).
22 Господин ПЖ
 
04.09.17
10:18
куерга на ровном месте

тестовая среда отдельно, база с подключением к хранилищу - отдельно
23 Serg_1960
 
04.09.17
10:23
(22) Встретив несколько раз ошибки в боевой среде, которые не выявлялись в тестовой, - можно и мнение поменять :)
24 Господин ПЖ
 
04.09.17
10:26
(23) нет таких ошибок.

а придумав обмен не обусловленный реальными потребностями - вы их создаете на ровном месте
25 Serg_1960
 
04.09.17
10:28
Сейчас уже сложно найти, но пару раз было такое, что ошибка возникала только если база была подключена к хранилищу.
26 Господин ПЖ
 
04.09.17
10:29
>ошибка возникала только если база была подключена к хранилищу

продакшен к хранилищу подключают только .удаки...
27 Господин ПЖ
 
04.09.17
10:31
создание проблем "сами себе"

в "больших" средах на крупных проектах пограммисты вообще доступа к продакшену не имеют
28 Serg_1960
 
04.09.17
10:31
По поводу (24)
Мне в принципе не интересно, где именно тестирует свои обработки Господин ПЖ, - я то их тестирую на актуальной копии.
29 Serg_1960
 
04.09.17
10:33
(27) "в больших средах на крупных проектах" - это ключевые слова. А что делать тем, коих большинство, кого некоторые презрительно называете "ларёчниками"? :)
Требовать и эффективности, и гибкости от одной и той же программы — все равно, что искать очаровательную и скромную жену... по-видимому, нам следует остановиться на чем-то одном из двух. Фредерик Брукс-младший