Создание стартовой базы

0. 5475 11.10.21 11:17 Сейчас в теме
Часто требуется создать «Новую базу» почти пустую, но совпадающую с «Исходной базой» по необходимым обязательным настройкам: константам, регистрам сведений, справочникам, видам субконто и планами счетов и т.п., при этом уникальные идентификаторы объектов должны совпадать.

Перейти к публикации

Комментарии
В избранное Подписаться на ответы Сортировка: Древо развёрнутое
Свернуть все
1. AlexWhite 195 11.10.21 11:40 Сейчас в теме
А почему предопределенные элементы в новой базе получили другой GUID, чем в источнике?

Думал всегда, что при использовании режима "Загрузить конфигурацию из файла" внутренние GUID должны совпадать.

Спасибо за статью и креативный подход к решению!
4. sapervodichka 5475 11.10.21 12:05 Сейчас в теме
(1) при загрузке конфигурации внутренние GUID совпадают у метаданных и их реквизитов в конфигурации. Для предопределенных в конфигурации элементов, например, счетов в плане счетов или элементов справочника создаются также сами объекты данных в базе с привязкой к этому предопределенному элементу, вот у объектов данных создаваемых на основании предопределенных уникальные идентификаторы разные в каждой создаваемой базе.
kitaevay; blackjack666; psa247; +3 Ответить
6. AlexWhite 195 11.10.21 12:12 Сейчас в теме
(4)
счетов в плане счетов или элементов справочника создаются также сами объекты данных в базе с привязкой к этому предопределенному элементу, вот у объектов данных создаваемых на основании предопределенных уникальные идентификаторы разные в каждой создаваемой базе

Вот это да! Век живи, век учись. Спасибо!
2. gorakh 26 11.10.21 11:47 Сейчас в теме
Если база на MS SQL то для чистки очень помогает TRUNCATE TABLE. Находим ненужные таблицы и просто удаляем их. Например "Версии объектов". Обычно она одна из самых больших и в базе разработки явно лишняя.
skyboy13; rolin555; adhocprog; sapervodichka; +4 Ответить
3. &rew 32 11.10.21 12:03 Сейчас в теме
Можно еще конвертахой 2.0 бомбануть правила автоматом и притащить нужные справочники, константы, ПВХ, РС по метаданным. Там и GUIDы прилетят как надо.
sapervodichka; +1 Ответить
5. sapervodichka 5475 11.10.21 12:10 Сейчас в теме
(3) по идее да, в Универсальном обмене XML, которая по правилам обмена тащит, также есть COM подключение )
7. zhuravlev_as 335 11.10.21 13:22 Сейчас в теме
Если разработчики 1С до сих пор не реализовали обработку "Выгрузка/загрузка данных в формате XML" для управляемого приложения, то это их никак не красит.
10. sapervodichka 5475 11.10.21 13:57 Сейчас в теме
(7) она есть, но в ней нет удобных фильтров и COM обмена
8. Rustig 1504 11.10.21 13:40 Сейчас в теме
И сколько времени ушло на сдачу работ?

Ну при размере в 100 Гб это прям нет-нет. У меня нет столько недель ждать, пока все почиститься.


Я в свое время файловую базу в 20 Гб копировал - надо было оставить справочники, удалить документы - по сути стартовую базу создать.

В одной копии запустил удаление документов (затем сжатие базы провел), во второй копии разрабатывал перенос справочников (ЦФшник же имеется)... Параллельно....

В итоге, удалилось все быстрее, чем я думал - особенно с учетом времени сна.... Мне почему-то кажется что вся описанная схема выше это как минимум неделя на тестирование. И если так, то удаление документов закончилось бы раньше, имхо...
корум; PowerBoy; +2 Ответить
9. sapervodichka 5475 11.10.21 13:56 Сейчас в теме
(8) привет, ушёл 1 вечер четверга, т.к. в ночь с четверга на пятницу в неё уже остатки грузили
&rew; Rustig; +2 Ответить
11. vld1973 65 11.10.21 15:55 Сейчас в теме
Спасибо, интересное решение
12. psa247 18 11.10.21 18:38 Сейчас в теме
Прикольно. Добавил в закладки
13. ybatiaev 56 11.10.21 21:33 Сейчас в теме
Всегда ранее делал CF с рабочей базы. Потом её в пустую загружал. Всё. Создавалась чистая база с полной копией скелета, т.е. конфигурацией. А потом уже выгрузка/загрузка XML стандартной обработкой то, что нужно за любой период.
Что в этом механизме не так?
sapervodichka; +1 Ответить
14. sapervodichka 5475 11.10.21 21:57 Сейчас в теме
(13) ну этот ваш вариант я сотни раз делал. В нем конечно вы знаете, что появляются дубли валют, классификаторов, плана счетов субконто, предопределенных элементов с разным УИ. Которые потом нужно устранить, чтобы не получить, например, 2 рубля или 2 шт, ну и ошибки СУБД при вставке 2 счетов с одним и тем же кодом но с разным УИ и привязанным к одному предопределенному счету. Вот в статье и написано, что ситуация была не рядовой, что УИ должны были совпадать у всех объектов и самое важное, что сама база (как вы пишите) не запускалась с пустого cf и не выполняла обработчики заполнения данных, т.е. ваш вариант бы не подошел.
CnupT; ybatiaev; +2 Ответить
15. skyboy13 12 11.10.21 22:26 Сейчас в теме
Большие базы можно чистить удалением элементов конфигурации. Сделал копию через sql. Удалил документ поступление денег, сохранил конфигурацию, потом ctr-c/ctrl-v из базы донора вставил и сохранил еще раз. Если основные таблицы так по удалять, то потом через выгрузку в dt - можно быстро получить то, что нужно маленького объема.
16. sapervodichka 5475 11.10.21 22:59 Сейчас в теме
(15) это какая-то разовая акция для независимого регистра сведений, да и то я так всем программистам категорически запрещаю делать, т.к. при копи-пасте объектов метаданных они получают другие идентификаторы в дереве конфигурации, что приводит к тому, что сами конфигурации уже не наследуются при установке обновлений и идет потеря данных таблиц (возвращать объект можно только сравнением объединением). При этом если попробовать на практике удалить ну хотя бы 100 объектов метаданных из конфигурации 1C:ERP это какая-то пытка на несколько дней (чтобы снять с поддержки и удалить все связи по типам в других объектах, ну уж нет, точно это прям бедовая затея, неправильная)
17. skyboy13 12 12.10.21 07:07 Сейчас в теме
(16) Ну что я могу сказать, мне жаль программистов, которым "категорически запрещается что-то делать". я не работают с типовым конфигурациями, в которых работает сотни программистов, составляющие сотни связей. у меня свои собственные конфигурации, там все проще продумано. Хотя их объем и под 100 терабайт.
А если нужно сохранить идентификаторы, привязкой обратно к хранилищу, все решается. Так что альтернативные решения, не стоит называть бредом. Каждая рабочая идея имеет право на существование. Удачи.
22. sapervodichka 5475 12.10.21 09:55 Сейчас в теме
(17) давай без обид, слова "бред" я не писал, прочти пожалуйста внимательней, я писал что это "бедовая" затея, от слова "беда", т.к. после копипастов объектов конфигурация становится не обновляемой на следующие релизы выпускаемые 1С или обновляется с потерей данных тех таблиц которые копировались (при загрузке нового релиза конфигурации). Когда своих напарников по работе пытаешься уберечь от быстрых решений с драматическим послевкусием, они благодарны только оставались, иначе такой копипаст на большом проекте фактически равен будущему увольнению. Сам как ты пишешь удалить и скопировать я в редких случаях делал как писал "на разовых" например с регистров версии объектов когда надо было почистить его (но все равно не копипастом возвращал а сравнением объединением конф)
26. skyboy13 12 12.10.21 10:01 Сейчас в теме
(22) да минус просто жалко, зашел тут на минут, предложил еще вариант. с определенными ограничениям, но вариант. я, например, там базы не переношу в любом случае. все синхронизации работают проще через http, можно использовать много-поточность. в разы все быстрее работает.
даже филиальные базы, которых тысячи, конектятся через защищенный контур и шлют и забирают обновления по http, все это поддерживается одним или двумя разработчикам, ибо проще в разы.
WarAn; sapervodichka; +2 Ответить
28. sapervodichka 5475 12.10.21 10:04 Сейчас в теме
18. skyboy13 12 12.10.21 07:34 Сейчас в теме
Ну, а если не нравится вариант с ctr-c/ctr-v. Сохраняем конфу в xml, удаляем что не нужно. Загружаем. Сохраняем базу. Далее загружаем первоначальный вариант. И конфа очищена и идентификаторы родные. Работы по полчаса.
Это похоже, как ранее писали на TRUNCATE TABLE, но без sql-ных рисков.
20. sapervodichka 5475 12.10.21 09:37 Сейчас в теме
(18)
удаляем что не нужно
звучит нереально. Ведь в ЕРП 1000 типов метаданных и нужно быть МЕГАГУРУ СУПЕР ЧЕЛОМ чтобы, что не нужно удалить, а что нужно оставить, и при этом чтобы конкретные данные остались сотни настроек баз совпадали между собой, учетная политика совпадала, чтобы были нужные ссылки только на нужные объекты и всего этого хватило для запуска.
23. skyboy13 12 12.10.21 09:55 Сейчас в теме
(20) Так публикация была не про конкретно ЕРП. 1С-вкие конфигурации это вообще отдельная песня. Так что не понятно, за что мне минус влепили.
25. sapervodichka 5475 12.10.21 09:58 Сейчас в теме
(23) этот минус за коммент никуда не идет ни в рейтинг, короче ни куда. Это просто мнение за комментарий, т.к. в 99 % случаев на практике как ты пишешь так ни в коем случае нельзя делать. А оставшимся 1 % надо понимать последствия.
29. Spec1Cnik 11 12.10.21 10:24 Сейчас в теме
(18) Также когда-то вставал вопрос с ут11.4, на которой велась разработка - что с ней делать, ибо нужна была база рабочая чистая без тестовых документов и их движений + все все настройки из "тестовой". Всё таки решил воспользоваться решением с копированием базы и удалением ненужных данных из "тестовой". Через sql если делать напрямую - всё достаточно быстро происходит.
sapervodichka; +1 Ответить
30. sapervodichka 5475 12.10.21 10:56 Сейчас в теме
(29) напиши подробнее как делал, если будет возможность. Тут если убрать кухню по созданию обработки то база в течение 1 часа создается.
19. Olenevod 27 12.10.21 09:37 Сейчас в теме
А не подскажешь, список объектов которые ты выгружал? Ну это типа учетная политика, версии подсистем. планы счетов и т.д.
Т.е. некий базовый список
21. sapervodichka 5475 12.10.21 09:40 Сейчас в теме
(19) у меня УХа была перепиленная в задаче, для других баз другой набор объектов, кроме счетов и субконто, вот еще какие грузил:
Прикрепленные файлы:
24. savaB 12.10.21 09:56 Сейчас в теме
стесняюсь спросить - А с РИБ что не так?
27. sapervodichka 5475 12.10.21 10:04 Сейчас в теме
(24) Первое что с ним не так - это там его нет и надо делать и план обмена и состав и код и создавать начальный образ (совпадет он по всем настройкам? и при этом будет ли пустой базой? нет скорее). Второе - про типовые базы с Полным обменом наверное почти все так, можно создать настройки обмена, затем создать образ, но с ним надо работать, понять что не подтянулось и заморачиваться удаляя лишнее. С нетиповой базой, в которой для нетиповых объектов нет Полного обмена, этим надо еще заниматься. Все это какая-то другая задача.... а нужно просто создать базу с идентичными настройками (РИБ как механизм для неё не нужен по задаче). Единственное, что можно добавить, что вышеописанная идея подходит для создания начального образа РИБ (потом только узлы обмена создать и замок докинуть на конфу и вот тебе узел РИБ )))))
31. savaB 12.10.21 11:01 Сейчас в теме
1. добавить план обмена - дело пары минут
2. (и основное) - настроить состав
3. никакого кода не надо - от слова вооще
4. совпадает 1 к 1.
5. начальный образ - время зависит от состава и ограничено железом.

"надо работать, понять что не подтянулось и заморачиваться удаляя лишнее" - так и по Вашей методе надо работать
33. sapervodichka 5475 12.10.21 11:11 Сейчас в теме
(31) по моей любая база в течение 1 часа готова без доработок. А тут РИБ, потом еще человека научи начальный образ отцеплять от обмена. Админам объясни зачем РИБ добавил... Роль на РИБ сделай чтобы у пользователей ошибки регистрации при работе с базой не шли... а если попросят повторить, что-то быстренько догрузить это надо рабочую базу обновлять 200 человек выгонять. Ну РИБ РИБом но единственным инструментом нельзя все дырки затыкать, есть проще решения.
34. savaB 12.10.21 11:31 Сейчас в теме
(33) Зачем это все? сделал образ, отцепил от центра - и усе
35. sapervodichka 5475 12.10.21 12:01 Сейчас в теме
(34) Борис, запили статью, возможно, твоя практика окажется полезной.
36. savaB 12.10.21 12:19 Сейчас в теме
(35) Разве что на пенсии ;)))
sapervodichka; +1 Ответить
32. savaB 12.10.21 11:05 Сейчас в теме
да, если надо переносить доки с отбором - возникают вопросы, но обработки типа Обмен между идентичными конфигурациями решают этот вопрос
37. quazare 2150 12.10.21 12:48 Сейчас в теме
можно было движения sql-лем почистить - как-то у меня подобная чистка (порядка 100 - 120 гб) заняла около 40 минут на ssd.
sapervodichka; +1 Ответить
40. triviumfan 30 18.10.21 11:39 Сейчас в теме
(37) почему так долго? Если "транкейтом" удалить документы и движения можно за секунды :).
38. quazare 2150 12.10.21 12:56 Сейчас в теме
вообще можно "приготовить" тестовую базу из ночной копии рабочей, а все изменения в рабочей регистрировать планами обмена.
sapervodichka; +1 Ответить
39. sapervodichka 5475 12.10.21 23:03 Сейчас в теме
(38) пиши рецепт Джейми Оливер плюсану (считаю, чем больше рецептов готовки тем лучше)
41. rst_filippov 52 23.10.21 11:08 Сейчас в теме
42. Greg_nnn 20.01.22 09:48 Сейчас в теме
43. Cyberhawk 129 16.02.22 08:34 Сейчас в теме
А почему такой упор именно на СОМ-подключение к целевой базе?
44. sapervodichka 5475 16.02.22 12:08 Сейчас в теме
(43) Нужно было данные в базу поместить не открывая саму базу (она не открывалась из-за доработок и чтобы не дублировать создаваемые при старте справочники) COM это позволял сделать
45. Cyberhawk 129 16.02.22 12:48 Сейчас в теме
(44) Т.е. просто код конфигурации, инициирующий эти процессы, не выполнялся во внешнем соединении, и таким образом удалось его обойти?
46. sapervodichka 5475 16.02.22 12:57 Сейчас в теме
(45) да, создали пустую базу, загрузили конфу, а далее не запуская базы, заполнили константы и основные справочники не открывая базу (GUID'ы сразу стали как у исходной базы и ошибки открытия ушли, получилась база с настройками и учетной политикой как исходная, но сама по себе пустая без документов и другой НСИ)
47. WarAn 11.03.22 00:10 Сейчас в теме
(44) Скажите, а вы не хотели бы просто полезть в конфу и просто закомментить начальное заполнение пустой базы? Как я понимаю, она у вас не под замками, раз вы пишете, что она "значительно переписана"
48. sapervodichka 5475 11.03.22 10:46 Сейчас в теме
(47) Пробовал. Если все было так просто, это ведь не типовая конфа, а убожество переписанное и генномодифицированное. Дело в том, что конфа «Исходной базы» была незнакома, была значительно переписана и содержала несколько встроенных нетиповых подсистем – вся эта каша в итоге приводила к тому, что простое открытие базы из пустой конфы не стартовало, вызывая кучу синтаксических ошибок, с которыми надо было бороться заплатками, игнорируя риск потерять что-нибудь важное из стартовых фундаментальных данных «Новой базы». С горем пополам эта махина запускалась, но далее вызывала нелепые ошибки в простых случая, когда требовалось что-то открыть или создать – просто кошки скреблись в душе от этого.
Второй момент, все знают, что при разворачивании пустой базы и конфигурации происходит начальное заполнение и создание новых базовых объектов, т.к. : валюты, банки, классификаторы ед. измерения, другие классификаторы, предопределенные значения, типа плана счетов и субконто и много других служебных данных. Это начальное заполнение вело к нарушению условия задачи о совпадении всех объектов «Новой базы» по Уникальному идентификатору (Guid) с «Исходной базой». И порождало дубли, с которыми пришлось бы в дальнейшем работать, что тоже не быстро.
Оставьте свое сообщение
Вакансии
Программист 1С
Санкт-Петербург
зарплата от 150 000 руб.
Полный день

Руководитель проектов внедрения 1С:УХ
Краснодар
зарплата от 150 000 руб.
Полный день

Консультант-аналитик 1С
Москва
зарплата от 120 000 руб. до 190 000 руб.
Полный день

Ведущий аналитик-разработчик 1С
Москва
зарплата от 230 000 руб. до 270 000 руб.
Полный день

1С:Эксперт по производительности
Москва
зарплата от 400 000 руб. до 950 000 руб.
Полный день