Вход | Регистрация
 

Резервное копирование 1с с помощью xml - подводные камни

Резервное копирование 1с с помощью xml - подводные камни
Я
   Glavkomnn
 
10.10.19 - 18:21
Коллеги приветствую!
Недавно изобрел способ резервного копирования "отдельно взятого документа" через выгрузку/загрузку xml
Нескольким клиентам он реально помог восстановить из старых копий потерянные данные, еще несколько начали пользоваться в качестве инструмента сохранения документов
Процесс использования показан тут:
https://www.youtube.com/watch?v=bPkNGe3RSsM
Суть метода: выгружаешь подпиленной ВыгрузкойЗагрузкойДанных83 (дописаны отборы) по отбору нужный документ, справочник или их совокупность. Химичишь с этими доками в базе что хочешь, а когда все сломал - загружаешь назад в базу выгруженную в xml копию, в итоге в доках и справочниках все восстанавливается как было, в том числе и движения и проводки.

Нереально прикольно, чтобы не поднимать бекапы, а быстро все починить, никого не выгоняя и буквально за секунды

Так вот хотел спросить, а все ли корректно восстанавливается при такой операции? Не порушатся ли какие-то более базовые конструкции? Кто вообще знаком с нюансами поведения объектов при загрузки их данных из xml. При глобальных переносах у меня ни одна база, загруженная через xml, без допила руками или перепроведения нормально не взлетела.

Насколько можно рекомендовать использовать такой способ бекапов и где это вылезет боком?
 
 
   Glavkomnn
 
1 - 10.10.19 - 18:24
блин, опять промазал со ссылкой
резервное копирование через xml способ тут: https://www.youtube.com/watch?v=DW4CLS2zYls
   shuhard
 
2 - 10.10.19 - 18:24
(0) ты уже весь инет загадил этмии роликами, реклама на мисте платная
   Йохохо
 
3 - 10.10.19 - 18:25
парень из фузи, в 1с есть регистры
   Glavkomnn
 
4 - 10.10.19 - 18:27
(2) где я что загадил? кого я рекламирую, Нуралиева?
   Garykom
 
5 - 10.10.19 - 18:27
(0) Мдя
   Glavkomnn
 
6 - 10.10.19 - 18:28
(3) движения регистров тоже хорошо выгружаются и загружаются
   Garykom
 
7 - 10.10.19 - 18:30
(0) Сделай лучше инкрементный бэкап в xml, со всей историей изменений и возможностью частичного восстановления на любой момент времени.
   Glavkomnn
 
8 - 10.10.19 - 18:32
(7) а как обеспечить по полному файлу xml частичное восстановление?
   Glavkomnn
 
9 - 10.10.19 - 18:33
(7) можно запилить и загрузку с отбором? есть примеры?
   Aleksey
 
10 - 10.10.19 - 18:36
А чем типовые средства не устраивает?
   Garykom
 
11 - 10.10.19 - 18:37
(8) А подумать?
   NorthWind
 
12 - 10.10.19 - 18:38
(0) XML можно использовать только для относительно небольших выгрузок и загрузок - типа переноса остатков. Для того чтобы сделать полный бэкап сколько-то серьезной базы и потом восстановить его, вам никаких машинных ресурсов не хватит. Для этого используются низкоуровневые средства, которые работают с блоками данных.
   Garykom
 
13 - 10.10.19 - 18:40
(12) Скажи это БИТу с их RabbitMQ адаптером ))
   Glavkomnn
 
14 - 10.10.19 - 18:42
(12) Ни в коем случае не предлагаю использовать такой вариант для полного бекапа, только для частичного и сиюминутного. Первые проблемы с которыми я столкнулся при его применении - при копировании справочника контрагентов и загрузки его в РИБ - там задвоились предопределенные виды контактной информации и хозяйственные операции. Но это при РИБе. При возврате данных в родную базу-все чисто.
   Glavkomnn
 
15 - 10.10.19 - 18:48
(10) какие именно типовые? Типовых замен с таким же эффектом (за несколько секунд поправить данные в базе и никого не выгнать) - не нашел
   Aleksey
 
16 - 10.10.19 - 18:50
(15) История изменений. Фиксирует изменения. Позволяет сравнить ДО и ПОСЛЕ, ну и перейти к сохраненой версии
   NorthWind
 
17 - 10.10.19 - 18:53
(13) так там вроде речь про онлайн-передачу данных, а тут про бэкап. Немного разные вещи.
   Garykom
 
18 - 10.10.19 - 18:55
(17) Инкрементный бэкап а не все разом.
Любое изменение вызывает сохранение того что было изменено и всегда можно откатиться.
Решать через подписки при записи например.
   Glavkomnn
 
19 - 10.10.19 - 18:55
(16) Вы имеете в виду версионирование? Хм, да, интересная идея. Включение правда добавляет требования производительности, и не у всех объектов она предусмотрена
   pechkin
 
20 - 10.10.19 - 18:56
конечно ты изобрел способ которому лет 20 уже
   NorthWind
 
21 - 10.10.19 - 18:57
(18) ну а если мне надо все разом?
   Glavkomnn
 
22 - 10.10.19 - 18:58
(20) я не претендую на открытие конечно, но расскажите, где и кем он раньше применялся? Именно как вариант массового частичного резервного копирования
   pechkin
 
23 - 10.10.19 - 19:00
(22) ну из бэкапа перекинуть документ - всегда применялся. как только появилось в 1с выгрузка в хмл
   Glavkomnn
 
24 - 10.10.19 - 19:01
(23) а ничего, что в стандартной ИТС выгрузке загрузке xml на 8.3 не предусмотрены отборы?
   Glavkomnn
 
25 - 10.10.19 - 19:02
(23) на 8.2 согласен, применялось. Ну по крайней мере, была возможность применять. Отборы были. на 8.3. при выгрузке возможности отборов нет
   pechkin
 
26 - 10.10.19 - 19:03
(25) делись обработкой чтоли
   Glavkomnn
 
27 - 10.10.19 - 19:06
   Glavkomnn
 
28 - 10.10.19 - 19:09
все таки основной вопрос по теме был - насколько резервное копирование через xml - соответствует духу резервного копирования? С какой стороны полезут тараканы?
   RomanYS
 
29 - 10.10.19 - 19:16
(24) там есть даже отбор запросом
   RomanYS
 
30 - 10.10.19 - 19:18
(28) рабочая схема. Тараканы только одни: может измениться что-то, что ты не забэкапил. И всё.
 
 
   RomanYS
 
31 - 10.10.19 - 19:20
Ну и в зубах всяких куча регистров формируются фоново. Теоретически можно получить не согласующиеся данные
   RomanYS
 
32 - 10.10.19 - 19:21
*(31) ЗУПах
Т9)
   Glavkomnn
 
33 - 10.10.19 - 19:25
(29) нет там отборов по объектам метаданных. Только по периоду
https://its.1c.ru/db/metod8dev#content:4126:hdoc
Обработка поддерживает выгрузку данных с возможностью задания отбора по периоду. Также реализована проверка объектов на наличие недопустимых символов при обмене через XML.
   Glavkomnn
 
34 - 10.10.19 - 19:31
(31) я пробовал выгрузить из УТ регистр "Себестоимость товаров" из копии базы с корректным закрытием месяца, и загрузить в рабочую, где себестоимость поплыла после экспериментов. Отчет валовая прибыль предприятия по загруженным периодам показал данные полностью как до экспериментов

еще классно обработала выгрузка xml когда надо было назначения и виды запасов поправить при интеркампани в Ут 11.4
   RomanYS
 
35 - 10.10.19 - 21:21
(33) закладка "дополнительные объекты для выгрузки". Конечно не так удобно как в ОФ, но для ссылочных данных вполне достаточно. С регистрами - да, фиг отберешь.

(34) Понятно что с тем о чём ты знаешь и что переносишь - проблем нет. Но в ЗУПе есть, например, интервальные регистры, которые формируются подписками или фоновыми вне проведения и которые технически не являются движениями документа (независимые РС). Так вот не зная о таких вещах можно получить сюрпризы, причём отложенные.
   trdm
 
36 - 10.10.19 - 21:28
(0) > Недавно изобрел способ резервного копирования "отдельно взятого документа" через выгрузку/загрузку xml

хоспидя, я эту хрень использую уже пару лет.
тоже мне ноу-хау...
   Glavkomnn
 
37 - 10.10.19 - 21:36
(36) расскажете свой вариант использования? Пошагово?
   Glavkomnn
 
38 - 10.10.19 - 21:37
(35) спасибо, только ради этого поста стоило открывать эту тему
   RomanYS
 
39 - 10.10.19 - 21:54
(37) А какие варианты:
выгрузил - загрузил при необходимости,
(кто-то ;) ) накосячил - выгрузил из копии - загрузил.

Из регулярно используемого:
выгрузил - поправил текст - загрузил. Часто так замену ссылок делаю, когда лень обработки искать/писать.

Из совсем оригинального: был проект (не мой) слияния филиалов большой контору в единую базу ЗУПа, на предварительном этапе ребята сопоставили ИД справочников, написали обработки (вроде через ком). Пришло время переходить - запустили тест, за неделю обмен с крупным филиалом(я его сопровождал) не проходит, конца и края не видно.
Переписал обработки на выгрузку в xml и замена ИД в файле (ЧтениеТекста/ЗаписьТекста - очень быстры, обошлось без внешних инструментов). В итоге написание/отладка обработки - день. Выгрузка-замена-загрузка делались за пару часов.
Сопоставлений ИД было от тысячи, файлы были на сотни мегабайт(если не путаю).
   Glavkomnn
 
40 - 10.10.19 - 22:06
(39) вы про предметную разработку под конкретный случай, а я про массовый общедоступный инструмент для людей без навыков программирования
   Glavkomnn
 
41 - 10.10.19 - 22:06
(39) но то что вы так пользуетесь, это очнь круто
   d4rkmesa
 
42 - 10.10.19 - 22:11
(0) Это хорошо работает, когда перенос между базами идентичными. К примеру, между рабочей и копией той же версии, с небольшой разницей. К примеру, современные конфы сейчас зачастую программно "создают" предопределенные элементы при первом старте. Естественно, в итоге у другой такой же конфы, независимо настроенной при первом запуске, идентификаторы предопределенных элементов другие. В итоге, перенос, сделанный этой обработкой, пройдет, но предопределенные элементы задвоятся, это может привести к неприятным моментам(к примеру, из-за задвоенных видов контактной информации будут проблемы с адресами и прочим). Так что пользоваться этой обработкой стоит очень осторожно, к примеру, переносить документы, но без справочников(только ссылками, галочки поснимать рекурсивной выгрузки).
   RomanYS
 
43 - 10.10.19 - 22:18
(40) Этот случай не на ровном месте возник. Ребята делавшие проект умыли руки. А я сделал это стандартным инструментом, той самой ВыгрузкаЗагрузкаXML, используемой регулярно для (0) в том числе. Писалась только замена.

Насчет "инструмент для людей без навыков" я бы поостерегся. У меня была обработка, которая умела по журналу регистрации отбирать измененные объекты и затягивать их из копии, но пользователям в руки я ее не давал)
   Glavkomnn
 
44 - 11.10.19 - 00:00
(42) +1, со всем согласен, спасибо
   Glavkomnn
 
45 - 11.10.19 - 00:03
(43) такую как у Вас, я бы тоже пользователям не дал. А вот такую как в теме, наоборот, дал бы, чтобы потом вместе с ними не перегребать перепутанные назначения и резервы, а также не загружать из копии случайно удаленный документ (его версионированием кстати не восстановишь)
   dmpl
 
46 - 11.10.19 - 07:10
(6) Все движения? Вы таки в курсе, что документ может подбрасывать свои движения ДРУГИМ документам?
   МимохожийОднако
 
47 - 11.10.19 - 07:22
(27) Эта обработка не типовая что ли? Чем отличается от (33) ?
   maptbln
 
48 - 11.10.19 - 13:51
какой интересный и необычный велосипед однако
   mikecool
 
49 - 11.10.19 - 14:57
(24) ты нашел на просторах инета обработку с отборами? у меня тоже такая есть
   Cyberhawk
 
50 - 11.10.19 - 15:02
Во Фреше используется резервное копирование области данных тоже через сериализацию объектов БД в файл. Для обеспечения согласованности данных во время такого резервного копирования блокируется вход пользователей в базу (в область данных).
   Cyberhawk
 
51 - 11.10.19 - 15:02
+(50) Конечно же это все медленно и ни о каком восстановлении на любой момент времени речь не идет - только на тогда когда соломку подстелил
   dka80
 
52 - 11.10.19 - 15:26
А версионирование в типовых конфигурациях чем плохо? Да и вообще, проводить эксперименты в рабочей базе - так себе затея
   RomanYS
 
53 - 11.10.19 - 15:28
(52) А оно позволяет восстановить предыдущее состояние?
   dka80
 
54 - 11.10.19 - 15:34
(53) разве нет?
https://hkar.ru/ZQdV
   RomanYS
 
55 - 11.10.19 - 15:35
(54) а движения сохранятся? Или проведется заново?
   dka80
 
56 - 11.10.19 - 15:44
(55) вместе с документом будут восстановлены его движения
   hhhh
 
57 - 11.10.19 - 16:19
(40) всё-таки это очень медленно получится. Отбор по периоду по идее для бухгалтерии надо ставить 4-5 месяцев, потому что бухи обычно работают в прошлых месяцах. А это десятки тысяч документов будет в вашем файле. А восстановить нужно один документ, все месяцы не надо восстанавливать. В итоге впустую будет всё лопатится. Ну и все последние изменения в справочниках слетят послеэтого обновления.
   ptiz
 
58 - 11.10.19 - 16:58
Ещё в 2006 году восстанавливал так кривое "Закрытие месяца" из копии.


Список тем форума
Рекламное место пустует  Рекламное место пустует
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.