Копирование базы без конфигуратора

15.07.20

База данных - Администрирование СУБД

Продолжаем нарушать правила, рвать шаблоны и делать невозможное!

Скачать файл

ВНИМАНИЕ: Файлы из Базы знаний - это исходный код разработки. Это примеры решения задач, шаблоны, заготовки, "строительные материалы" для учетной системы. Файлы ориентированы на специалистов 1С, которые могут разобраться в коде и оптимизировать программу для запуска в базе данных. Гарантии работоспособности нет. Возврата нет. Технической поддержки нет.

Наименование По подписке [?] Купить один файл
Копирование базы без конфигуратора
.epf 53,46Kb
42
42 Скачать (1 SM) Купить за 1 850 руб.

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

Как это вообще возможно? Метаганерация. Обработка делает следующее:

  • сканирует метаданные конфигурации в которой она открыта и строит xml файлы конфигурации.
  • выгружает данные из базы в которой она открыта в файлы
  • создает новую базу и загружает в нее конфигурацию из xml (вот как раз на этом этапе нам и нужен будет конфигуратор, но ходить он будет в копию, а не в оригинальную базу и если его нет - можно все файлы унести туда где он есть и продолжить там)
  • загружает данные в копию

Не всё возможно сделать кодо-мета-генерацией, поэтому копия базы будет несколько отличаться от оригинала:

  • тексты программных модулей принципиально недостижимы из кода - они перенесены не будут, база-копия не будет обладать логикой оригинала. И, кстати, не факт что это плохо - копия гарантированно не начнет обмениваться данными с продуктивным окружением и не отправит информацию о самом факте своего существования "куда следует".
  • формы постигнет та же участь. Их структуру сканировать можно, но я не стал заниматься копированием форм из-за ограниченной их полезности без модулей, а также обилия вариантов настроек элементов формы. На моё счастье платформа строит какие-никакие формы по умолчанию (их хорошо видно на скриншотах).

Но все-таки от оригинала останется самое важное - это структура метаданных и сами данные (включая ссылочную целостность). База-копия будет открываться без каких-либо паролей и будет доступна для просмотра и редактирования данных, а работая в консоли запросов вы вообще вряд ли заметите разницу.

Achtung! Эта обработка была создана for fun, я не ставил перед собой задачи аккуратно и педантично перенести все свойства объектов метаданных из одной конфы в другую. Я перенес тот минимум, который позволяет загрузить данные в копию. Также, эта обработка не тестировалась во всех возможных сценариях, но как минимум демо-базу Розницы она успешно копирует.

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

Разрабатывалось и тестировалось на платформе 8.3.13.1690, как это будет работать на других версиях одному Богу известно, но навскидку можно пробовать работать на версиях 8.3.* Еще одна интересная тема: а что если выгрузить из 8.3.13.1690, а загружать на 8.3.7.хххх? Теоретически, такому сценарию тоже ничто не мешает.

копировать базу кодогенерация метагенерация

См. также

Администрирование СУБД Системный администратор Программист

В крупных компаниях, где много типовых и сильно доработанных баз с режимом работы 24/7, переход с MS SQL на PostgreSQL затягивается. Получается гетерогенная структура – когда прод уже на PostgreSQL, а разработка и тестирование – пока на MS SQL. О том, какие варианты помогут постепенно перевести прод с несколькими базами MS SQL на PostgreSQL, не сломав среду тестирования и разработки, пойдет речь в статье.

21.11.2024    2844    a.doroshkevich    7    

14

Администрирование СУБД Системный администратор Платформа 1С v8.3 Бесплатно (free)

Пользовался ранее https://infostart.ru/1c/articles/1120161/#, но она устарела, т.к. службы запускаются через systemctl, да и сами службы слегка изменились. Возможно, где-то на ИТС уже есть нужная инструкция, но мне не попалась.

15.11.2024    361    Baser    2    

1

HighLoad оптимизация Администрирование СУБД Системный администратор Программист Платформа 1С v8.3 Россия Бесплатно (free)

Мы исследуем проблему долгого выполнения запросов PostgreSQL при использовании конструкции VALUES: когда она возникает, как на нее можно повлиять, а главное, почему ее продуманная отработка важна для более быстрого функционирования решений на базе 1С

12.11.2024    886    Tantor    19    

14

HighLoad оптимизация Администрирование СУБД Механизмы платформы 1С Программист Платформа 1С v8.3 ИТ-компания Россия Бесплатно (free)

В данной статье мы рассмотрим, как работает механизм временных таблиц на postgres на платформе 8.3.23 и что изменилось в нем при добавлении новых возможностей в платформе 8.3.25. А также на примере покажу, как понимание работы платформы позволяет оптимизировать СУБД для работы с 1С.

29.10.2024    3333    Tantor    38    

34

Администрирование СУБД Системный администратор Программист Бесплатно (free)

CDC - очень мощный механизм, который можно использовать во многих сценариях, возможность развернуть его в Docker показывает простоту и лёгкость данной технологии.

08.10.2024    781    AlexSvoykin    1    

7

Администрирование СУБД Системный администратор Программист Платформа 1С v8.3 Конфигурации 1cv8 Бесплатно (free)

Анализ и решение ошибок СУБД. Во время реиндексации базы Ошибка СУБД: Microsoft SQL Server Native Client 11.0: Не удалось найти объект "ИмяБазы.dbo._RefSInf21806", так как он не существует, или отсутствуют разрешения. Во время проверки целостности Ошибка СУБД: Microsoft SQL Server Native Client 11.0: Недопустимое имя объекта "dbo._RefSInf21806".

19.09.2024    4468    Xershi    10    

17

HighLoad оптимизация Администрирование СУБД Архивирование (backup) Системный администратор Программист Платформа 1С v8.3 Бесплатно (free)

Бэкап в Postgres состоит из набора граблей, которые нужно обойти для успешного восстановления. Они заложены в самых неожиданных местах от предмета резервного копирования (база или кластер) до структуры каталогов. Один неверный шаг и восстановление будет невозможным. Почему нельзя было сделать проще, как в MS SQL или Oracle? Почему бэкап в Postgres оставляет впечатление чьей-то лабораторной работы? Статья адресована прежде всего специалистам 1С, избалованным комфортом в MS SQL, в суровых буднях импортозамещения на Postgres.

13.08.2024    3022    1CUnlimited    9    

4
Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
1. bulpi 217 15.07.20 12:24 Сейчас в теме
"выгружает данные из базы в которой она открыта в файлы"
База sql ? Надо же указать, какая база. Если файловая, то все это не имеет смысла.
2. m-rv 973 15.07.20 12:25 Сейчас в теме
(1) а файловую базу удастся скопировать как файл, если в ней сидят другие пользователи?
5. bulpi 217 15.07.20 12:31 Сейчас в теме
(2)Да. Но не факт, что полностью корректно. Как повезет.
9. m-rv 973 15.07.20 12:37 Сейчас в теме
(5) в целом вы наверно правы, для файловой базы это не имеет большого смысла.. хотя если файловую базу открыть - там начнут выполняться всякие ПриНачалеРаботыСистемы - а кто знает что там понаписано...
3. Tahallus 441 15.07.20 12:26 Сейчас в теме
Какой сценарий применения данного метода ?
4. m-rv 973 15.07.20 12:28 Сейчас в теме
(3) ну какой... сидите вы бухгалтером в конторе с серой зп, вам говорят "мы вас сокращаем, но положенных выплат не будет". продолжать? ))
8. Xershi 1555 15.07.20 12:37 Сейчас в теме
(4) знакомый бух пожаловался?) ой угар!
18. Tahallus 441 15.07.20 14:30 Сейчас в теме
(4) Если такой сценарий и кто увольняет не дурак то до объявления сокращения прикроет все доступы.
19. m-rv 973 15.07.20 15:09 Сейчас в теме
(18) ну в реальности то все сложнее, сначала поступают отрывочные сведения, что ушел ключевой клиент, потом начинаются трудности с оплатой счетов...
32. RustIG 1748 18.09.20 05:26 Сейчас в теме
(19) ....потом звонят 1с-нику и просят его придумать выгрузку и загрузку на всякий случай, только толку от копии никакого, если дальнейшая работа с ней невозможна - ни обновить, ни доработать... сценарий так себе
35. m-rv 973 20.09.20 13:32 Сейчас в теме
(32) речь, естественно, не идет о том, чтобы иметь эту копию как полную замену оригиналу. но обновить ее кстати получится
20. m-rv 973 15.07.20 15:10 Сейчас в теме
(18) ну и заранее никто не мешает готовиться )))
23. vano-ekt 124 20.07.20 08:26 Сейчас в теме
(4) потом она пытается скопировать базу, в DLP загорается красная лампочка, СБ вовремя реагирует, и бух идет по 183, 272 УК РФ
угадал?
24. m-rv 973 20.07.20 12:39 Сейчас в теме
(23) про DLP хороший вопрос, надо его подумать, хотя мне не известно ни одной конторы которая на 1С такое наворачивает.
про ук - там ни одного состава и близко нет, т.к. 183 не работает поскольку вы собираете сведения о преступной, а не коммерческой деятельности (мы же помним, что контора серая), а 272 подразумевает санкции за копирование именно охраняемой 183-й информации.
кстати, интересный вопрос - если написать УстановитьПривилегированныйРежим - тогда (возможно) уже 272 начинает маячить, т.к. это как раз доступ к информации, сверх выданных прав
ну и никто не мешает обработку положить на рабочий стол и даже не открывать, а при возникновении спорной ситуации сказать "смотрите какая интересная штука у меня есть"
6. bulpi 217 15.07.20 12:32 Сейчас в теме
И еще. Если база большая (sql), то процедура займет несколько дней, и скорее всего, не закончится корректно.
7. m-rv 973 15.07.20 12:36 Сейчас в теме
(6) ага, на выходные поставить и будет самый раз )) на самом деле там ограничения по типам (ну чтобы регистры не таскать или наоборот только один бух.регистр со справочниками), плюс ограничение по дате.
10. Steelvan 306 15.07.20 13:15 Сейчас в теме
Автор, ты бы поинтересовался кто создал эту картинку с рожей, которую ты разместил на заставке.
У тебя есть дети ?
13. SaschaG 197 15.07.20 13:35 Сейчас в теме
(10) В гугле, я так понимаю, вас забанили. Вы еще на ИА "Панорама" сошлитесь.
14. m-rv 973 15.07.20 13:37 Сейчас в теме
(10) по крайней мере лукоморье пишет что история с маньяком фэйк.
но энивэй, какая разница кто создал? если первая ракета в космосе была нацистская - мы теперь ракетами пользоваться не должны?
Alex-krk; mrsmrv; rpgshnik; TerveRus; DmitrySinichnikov; TreeDogNight; BigB; +7 Ответить
33. RustIG 1748 18.09.20 05:34 Сейчас в теме
(14) я не в курсе, что за рожа, она мне тоже не нравится. я по поводу вашего ответа:
нацисты не могли бы создать что-то полезное и хорошее....все плохое длится короткий промежуток времени, все полезное для человечества создается десятилетиями и чаще всего совместными усилиями всего мира... ваш аргумент больше манипулятивный, чем объективный или логичный...
36. RustIG 1748 20.09.20 15:39 Сейчас в теме
(34) Спасибо за ссылку, сам бы не нашел. Интересно было почитать. Только вот нестыковка
Начало разработки немецких жидкостных ракет было положено в 1926 году, когда группа энтузиастов ракетостроения и межпланетных сообщений организовала Общество космических полётов.

И там же википедия выдает
Германское государство в период диктатуры НСДАП c 1933 по 1945 год. До 1943 года оно носило название «Германский рейх» (нем. Deutsches Reich), затем «Великогерманский рейх» (нем. Großdeutsches Reich). В русскоязычной историографии обычно используются названия: «гитлеровская Германия», «нацистская Германия», «Третий рейх» (нем. Drittes Reich)[6] и «фашистская Германия»[7][8]. Государственные структуры Великогерманского рейха прекратили существование после поражения во Второй мировой войне[9].


Я к тому что хорошие люди начали создавать полезные вещи для всего мира, затем пришли захватчики-террористы, взяли ученых в капкан, среди ученых было много евреев, Эйнштейн вовремя покинул Германию, его приглашали разрабатывать ядерное оружие... Время плохишей закончилось с поражением в войне.

Не надо им приписывать заслуги по созданию первой ракеты, друг мой. Не было бы нацистов - ракета все равно полетела и думаю раньше 1944 г, поскольку ученым приходилось решать военные а не космические задачи в первую очередь.
38. rpgshnik 3796 09.03.21 05:40 Сейчас в теме
29. TerveRus 28.07.20 10:38 Сейчас в теме
(10)
есовался кто создал эту картинку с рожей, которую ты разместил на заставке. У тебя есть дети ?

А, это видимо дети мешают получать достоверную информацию, и заставляют верить всяким фейкам с двача)
11. oleg-x 22 15.07.20 13:17 Сейчас в теме
Именно по этому (в нормальных конторах) в первую очередь запрещают открытие внешних обработок. Если надо что то добавить, то только через специалиста, который посмотрит что это за обработка и стоит ли её подключать.
А если есть право на открытие обработки, то скорее всего есть полные права и доступ к конфигуратору. А значит даже SQL базу можно выгрузит, просто на выходных.
TreeDogNight; 7OH; +2 Ответить
12. m-rv 973 15.07.20 13:34 Сейчас в теме
(11) не все же конторы нормальные ))
15. VKislitsin 1013 15.07.20 13:56 Сейчас в теме
Я смотрю, коллеги набросились с критикой...
А на мой взгляд, очень интересно. В плане исследования (как автор указал - it's just for fun). Я ведь правильно понял что обработка по метаданным создает XML-ки, которые потом можно "скормить" конфигуратору через "Загрузить конфигурацию из файлов"?

Что касается выгрузки базы при работающих пользователях и занятом Конфигураторе - это очень легко делается утилитой ibcmd (описывал в этой статье)
Выгрузка dt-файла:
>ibcmd infobase dump --db-server=localhost --dbms=MSSQLServer --db-name=sb_demo --db-user=test_db_user --db-pwd=test_pwd_123 "%tmp%\sb_demo.dt"

Для файловой базы не понадобится вообще никакой авторизации. Для серверной нужен будет логин-пароль к СУБД.
TreeDogNight; sashocq; ABudnikov; bulpi; +4 Ответить
16. m-rv 973 15.07.20 14:00 Сейчас в теме
(15)
коллеги набросились с критикой
неее, вот когда я язык запросов распекал - там была критика, а это просто обсуждение ))
обработка по метаданным создает XML-ки, которые потом можно "скормить" конфигуратору через "Загрузить конфигурацию из файлов"
да
17. oleg-x 22 15.07.20 14:02 Сейчас в теме
(15) Почему сразу с критикой, так порассуждать. Идея интересная и позволяет воспользоватся уязвимостью в безопастности (когда все закрыто, но внешние обработки открыты). Кому то будет полезно, а кому то еще раз будет напоминанием, что все надо жестко закрывать :-)
TreeDogNight; +1 Ответить
21. capitan 2508 16.07.20 11:18 Сейчас в теме
самое важное - это структура метаданных и сами данные

Как человек немалое время посвятивший именно безопасности 1С с трудом могу представить такой случай.
Самописная конфигурация в которой ты случайно оказался с правами админа и как перенесутся все регистры подчиненные регистраторам?
22. m-rv 973 16.07.20 13:37 Сейчас в теме
(21) я не понял ваш вопрос.. вы имеете ввиду если у пользователя нет прав на какие-то объекты метаданных или что-то типа rls работает? данные к которым нет доступа очевидно не перенесутся.
28. TreeDogNight 22 27.07.20 07:23 Сейчас в теме
(22) Даже с установленным привилегированным режимом?
31. oleg-x 22 04.08.20 13:33 Сейчас в теме
(28) Лайфхак, как открыть обработку в программе с обычными формами.
Если при запуске не проверяется и не делается отказ при открытие программы на определенный режим работы клиента.
То просто в настройках списка базы, меняете режим запуска на тонкий клиент. Далее запускаете базу.
Программа запускается в режиме УФ, уже в этом режиме открываете обработку на УФ.
Я так делал когда нужно было пользоваться универсальными обработками на УФ в обычных (УТ 10.3).
25. maksa2005 551 21.07.20 10:27 Сейчас в теме
Спасибо за обработку.
В принципе достаточно для того чтобы "грабануть" из веб-клиента с поддержкой доступа к дополнительным обработкам.
26. psih12 131 22.07.20 13:04 Сейчас в теме
А в обычном интерфейсе работать будет?
27. m-rv 973 24.07.20 10:40 Сейчас в теме
30. NoRazum 29 04.08.20 13:28 Сейчас в теме
Открытие внешних обработок.
Такие права давать пользователям. Путь в никуда.
Особенно если база доступна через WEB.
Есть обработки "Файловый менеджер". Выкачиваешь все на что хватает пользователя под каким работает служба.
Дальше уже творишь на что фантазии хватает.

Как идея очень хорошая.
37. kote 537 05.02.21 15:12 Сейчас в теме
Круто. Хотя практическое применение под вопросом. Надо подумать.
Генерировать xml, которые проглотит платформа - это довольно заморочено.
39. rpgshnik 3796 09.03.21 05:41 Сейчас в теме
40. xSerj 13.04.21 04:06 Сейчас в теме
Интересно оно работает?
41. xSerj 13.04.21 04:07 Сейчас в теме
Оставьте свое сообщение