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

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

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

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

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

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

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

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

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

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