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

15.07.20

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

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

Скачать файлы

Наименование Файл Версия Размер
Копирование базы без конфигуратора
.epf 53,46Kb
40
.epf 53,46Kb 40 Скачать

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

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

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

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

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

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

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

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

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

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

См. также

Создаем сценарии обслуживания SQL в Центре Контроля Качества 1С (Центр Администрирования)

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

Данная статья научит вас, как создавать скрипты обслуживания MS SQL для Центра Контроля Качества (ЦКК) или Центра Администрирования (ЦА).

20.03.2024    512    Silenser    0    

3

Поинтегрируем: сервисы интеграции – новый стандарт или просто коннектор?

Обмен между базами 1C Администрирование СУБД Механизмы платформы 1С Платформа 1С v8.3 Бесплатно (free)

В платформе 8.3.17 появился замечательный механизм «Сервисы интеграции». Многие считают, что это просто коннектор 1С:Шины. Так ли это?

11.03.2024    4483    dsdred    53    

71

Инструкция по установке Postgres для OLTP приложений и 1С. Часть 1. Базовая конфигурация

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

В Postgres достаточно подробная документация, и, видимо, поэтому при инсталляции Postgres для 1С большинство параметров приходится выставлять самим. Параметров в Postgres много, а составить эффективную комбинацию не так просто. Все упрощается, если рассмотреть профиль нагрузки, например, 1С это прежде всего профиль OLTP нагрузки – так устроены его метаданные (объекты). Если сосредоточиться на оптимизации профиля OLTP, понимание Postgres сразу упростится.

15.02.2024    2331    1CUnlimited    14    

27

Очистка устаревших патчей в конфигурациях на базе БСП

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

В этой короткой заметке хочется рассказать о быстром и удобном способе удаления расширений-патчей как в типовых конфигурациях, так и любых других, использующих БСП.

01.02.2024    1430    Sergey1CSpb    20    

15

Как запустить сервер лицензирования 1С на примере облачной платформы

Администрирование СУБД Россия Бесплатно (free)

Чтобы минимизировать подобные риски, связанные с нештатной работой программных клиентских и серверных лицензий, необходимо централизовать их хранение и выдачу. Это можно сделать, разместив лицензии на отдельной машине — сервере лицензирования. В статье рассказываем, как это сделать.

25.01.2024    1643    doctor_it    15    

17

Обслуживание индексов MS SQL Server: как, когда и, главное, зачем?

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

Казалось бы, базовое знание: «индексы надо обслуживать, чтобы запросы выполнялись быстро». Но обслуживание индексов выполняется долго и может мешать работе пользователей. Кроме того, в последнее время популярны разговоры о том, что индексы можно вообще не обслуживать – насколько это оправданно? Рассмотрим: на что влияет обслуживание индексов, когда надо и когда не надо его выполнять, и если надо – как это сделать так, чтобы никому не помешать?

16.01.2024    5785    Филин    13    

45

Резервное копирование журнала транзакций, наконец-то!

Архивирование (backup) Администрирование СУБД Россия Бесплатно (free)

Постараюсь объяснить, зачем нужно резервное копирование именно журнала транзакций, а не только базы данных, и почему я словно сбросил груз, настроив его - как, покажу, естественно. Кстати, будут скрипты T-SQL (с подробными комментариями) - отличный способ сделать администрирование базы более уютным.

04.12.2023    5864    n_mezentsev    15    

24

Дефрагментация индексов MS SQL для платформы 8.3.22

Инструменты администратора БД Администрирование СУБД Абонемент ($m)

Начиная с 8.3.22 фирма "1С" убрала блокировки БД на уровне страниц; если БД расположена в MS SQL, то стала возникать проблема при дефрагментации индексов с использованием команды ALTER INDEX REORGANIZE. Предлагаю модификацию известного скрипта, который позволяет обойти эту проблему.

1 стартмани

15.11.2023    2245    17    baturo    6    

13
Комментарии
В избранное Подписаться на ответы Сортировка: Древо развёрнутое
Свернуть все
1. bulpi 215 15.07.20 12:24 Сейчас в теме
"выгружает данные из базы в которой она открыта в файлы"
База sql ? Надо же указать, какая база. Если файловая, то все это не имеет смысла.
2. m-rv 962 15.07.20 12:25 Сейчас в теме
(1) а файловую базу удастся скопировать как файл, если в ней сидят другие пользователи?
5. bulpi 215 15.07.20 12:31 Сейчас в теме
(2)Да. Но не факт, что полностью корректно. Как повезет.
9. m-rv 962 15.07.20 12:37 Сейчас в теме
(5) в целом вы наверно правы, для файловой базы это не имеет большого смысла.. хотя если файловую базу открыть - там начнут выполняться всякие ПриНачалеРаботыСистемы - а кто знает что там понаписано...
3. Tahallus 431 15.07.20 12:26 Сейчас в теме
Какой сценарий применения данного метода ?
4. m-rv 962 15.07.20 12:28 Сейчас в теме
(3) ну какой... сидите вы бухгалтером в конторе с серой зп, вам говорят "мы вас сокращаем, но положенных выплат не будет". продолжать? ))
8. Xershi 1474 15.07.20 12:37 Сейчас в теме
(4) знакомый бух пожаловался?) ой угар!
18. Tahallus 431 15.07.20 14:30 Сейчас в теме
(4) Если такой сценарий и кто увольняет не дурак то до объявления сокращения прикроет все доступы.
19. m-rv 962 15.07.20 15:09 Сейчас в теме
(18) ну в реальности то все сложнее, сначала поступают отрывочные сведения, что ушел ключевой клиент, потом начинаются трудности с оплатой счетов...
32. RustIG 1351 18.09.20 05:26 Сейчас в теме
(19) ....потом звонят 1с-нику и просят его придумать выгрузку и загрузку на всякий случай, только толку от копии никакого, если дальнейшая работа с ней невозможна - ни обновить, ни доработать... сценарий так себе
35. m-rv 962 20.09.20 13:32 Сейчас в теме
(32) речь, естественно, не идет о том, чтобы иметь эту копию как полную замену оригиналу. но обновить ее кстати получится
20. m-rv 962 15.07.20 15:10 Сейчас в теме
(18) ну и заранее никто не мешает готовиться )))
23. vano-ekt 123 20.07.20 08:26 Сейчас в теме
(4) потом она пытается скопировать базу, в DLP загорается красная лампочка, СБ вовремя реагирует, и бух идет по 183, 272 УК РФ
угадал?
24. m-rv 962 20.07.20 12:39 Сейчас в теме
(23) про DLP хороший вопрос, надо его подумать, хотя мне не известно ни одной конторы которая на 1С такое наворачивает.
про ук - там ни одного состава и близко нет, т.к. 183 не работает поскольку вы собираете сведения о преступной, а не коммерческой деятельности (мы же помним, что контора серая), а 272 подразумевает санкции за копирование именно охраняемой 183-й информации.
кстати, интересный вопрос - если написать УстановитьПривилегированныйРежим - тогда (возможно) уже 272 начинает маячить, т.к. это как раз доступ к информации, сверх выданных прав
ну и никто не мешает обработку положить на рабочий стол и даже не открывать, а при возникновении спорной ситуации сказать "смотрите какая интересная штука у меня есть"
6. bulpi 215 15.07.20 12:32 Сейчас в теме
И еще. Если база большая (sql), то процедура займет несколько дней, и скорее всего, не закончится корректно.
7. m-rv 962 15.07.20 12:36 Сейчас в теме
(6) ага, на выходные поставить и будет самый раз )) на самом деле там ограничения по типам (ну чтобы регистры не таскать или наоборот только один бух.регистр со справочниками), плюс ограничение по дате.
10. Steelvan 302 15.07.20 13:15 Сейчас в теме
Автор, ты бы поинтересовался кто создал эту картинку с рожей, которую ты разместил на заставке.
У тебя есть дети ?
13. SaschaG 193 15.07.20 13:35 Сейчас в теме
(10) В гугле, я так понимаю, вас забанили. Вы еще на ИА "Панорама" сошлитесь.
14. m-rv 962 15.07.20 13:37 Сейчас в теме
(10) по крайней мере лукоморье пишет что история с маньяком фэйк.
но энивэй, какая разница кто создал? если первая ракета в космосе была нацистская - мы теперь ракетами пользоваться не должны?
Alex-krk; mrsmrv; rpgshnik; TerveRus; DmitrySinichnikov; TreeDogNight; BigB; +7 Ответить
33. RustIG 1351 18.09.20 05:34 Сейчас в теме
(14) я не в курсе, что за рожа, она мне тоже не нравится. я по поводу вашего ответа:
нацисты не могли бы создать что-то полезное и хорошее....все плохое длится короткий промежуток времени, все полезное для человечества создается десятилетиями и чаще всего совместными усилиями всего мира... ваш аргумент больше манипулятивный, чем объективный или логичный...
36. RustIG 1351 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 3631 09.03.21 05:40 Сейчас в теме
29. TerveRus 28.07.20 10:38 Сейчас в теме
(10)
есовался кто создал эту картинку с рожей, которую ты разместил на заставке. У тебя есть дети ?

А, это видимо дети мешают получать достоверную информацию, и заставляют верить всяким фейкам с двача)
11. oleg-x 26 15.07.20 13:17 Сейчас в теме
Именно по этому (в нормальных конторах) в первую очередь запрещают открытие внешних обработок. Если надо что то добавить, то только через специалиста, который посмотрит что это за обработка и стоит ли её подключать.
А если есть право на открытие обработки, то скорее всего есть полные права и доступ к конфигуратору. А значит даже SQL базу можно выгрузит, просто на выходных.
TreeDogNight; 7OH; +2 Ответить
12. m-rv 962 15.07.20 13:34 Сейчас в теме
(11) не все же конторы нормальные ))
15. VKislitsin 960 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 962 15.07.20 14:00 Сейчас в теме
(15)
коллеги набросились с критикой
неее, вот когда я язык запросов распекал - там была критика, а это просто обсуждение ))
обработка по метаданным создает XML-ки, которые потом можно "скормить" конфигуратору через "Загрузить конфигурацию из файлов"
да
17. oleg-x 26 15.07.20 14:02 Сейчас в теме
(15) Почему сразу с критикой, так порассуждать. Идея интересная и позволяет воспользоватся уязвимостью в безопастности (когда все закрыто, но внешние обработки открыты). Кому то будет полезно, а кому то еще раз будет напоминанием, что все надо жестко закрывать :-)
TreeDogNight; +1 Ответить
21. capitan 2466 16.07.20 11:18 Сейчас в теме
самое важное - это структура метаданных и сами данные

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

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