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

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

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

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

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

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

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

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


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

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

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

"надо работать, понять что не подтянулось и заморачиваться удаляя лишнее" - так и по Вашей методе надо работать
33. sapervodichka 4682 12.10.21 11:11 Сейчас в теме
(31) по моей любая база в течение 1 часа готова без доработок. А тут РИБ, потом еще человека научи начальный образ отцеплять от обмена. Админам объясни зачем РИБ добавил... Роль на РИБ сделай чтобы у пользователей ошибки регистрации при работе с базой не шли... а если попросят повторить, что-то быстренько догрузить это надо рабочую базу обновлять 200 человек выгонять. Ну РИБ РИБом но единственным инструментом нельзя все дырки затыкать, есть проще решения.
34. savaB 12.10.21 11:31 Сейчас в теме
(33) Зачем это все? сделал образ, отцепил от центра - и усе
35. sapervodichka 4682 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 1414 12.10.21 12:48 Сейчас в теме
можно было движения sql-лем почистить - как-то у меня подобная чистка (порядка 100 - 120 гб) заняла около 40 минут на ssd.
sapervodichka; +1 Ответить
40. triviumfan 28 18.10.21 11:39 Сейчас в теме
(37) почему так долго? Если "транкейтом" удалить документы и движения можно за секунды :).
38. quazare 1414 12.10.21 12:56 Сейчас в теме
вообще можно "приготовить" тестовую базу из ночной копии рабочей, а все изменения в рабочей регистрировать планами обмена.
sapervodichka; +1 Ответить
39. sapervodichka 4682 12.10.21 23:03 Сейчас в теме
(38) пиши рецепт Джейми Оливер плюсану (считаю, чем больше рецептов готовки тем лучше)
41. rst_filippov 47 23.10.21 11:08 Сейчас в теме
Оставьте свое сообщение
Вопросы с вознаграждением
Вакансии
Программист 1С
Дзержинск
зарплата от 130 000 руб. до 160 000 руб.
Полный день

Программист 1С
Москва
зарплата от 240 000 руб. до 250 000 руб.
Полный день

Ведущий разработчик 1С/Заместитель ИТ-директора
Москва
зарплата от 200 000 руб. до 250 000 руб.
Полный день

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