Имя: Пароль:
1C
1С v8
Удаление ненужной информации, база на SQL. Как, сколько ?
,
0 vv2304
 
15.03.20
09:28
Типовая на базе БП 3.0.
Размер базы 12 Гб, ведется с 2012 года, 4 организации в базе.
С SQL не работал. При общении с клиентом был не в курсе, что там такая база.
Теперь вот думаю, отдать кому или самому попробовать. Если отдать, то цена вопроса ? Если самому, то как ?
Поставил MS SQL, 1С-сервер на домашнем компе.
На простой пометке удаления даже с моими 16 Гб комп виснет. Хотя может и не виснет, но подождав пару часов надоело и прервал процесс.
1 vicof
 
15.03.20
09:32
"Удаление ненужной информации"
Очень информативно
2 vv2304
 
15.03.20
09:33
(1) Все по 3-м фирмам, чтобы осталась одна.
3 vicof
 
15.03.20
09:39
"Инструментами разработчика" проще и быстрее удалять ненужную инфу.
4 ДенисЧ
 
15.03.20
09:58
Если не знаешь скуль, то прямыми лучше не лезть.
Удаляй кусками, не надо сразу 100500 документов.
5 Волшебник
 
модератор
15.03.20
10:05
Базу лучше разместить на SSD-диске. И дай время. Пару часов маловато, нужны сутки.
6 ProxyInspector
 
15.03.20
10:08
Это управляемые формы. Для БП 3 среднее время записи документа в базу 3-10 сек. Если хочешь пометить на удаление 100 тыс док. Тогда потребуется от 4 до 10 суток. Так что вперед.
7 ProxyInspector
 
15.03.20
10:10
И еще суток 10-20 чтобы удалить помеченные документы без ссылок
8 Фрэнки
 
15.03.20
10:15
База БП 3.0 - это указано.

А сама конфига типовая или там в ней овердофига каких-то изменений в структуру метаданных насунуто?
9 vicof
 
15.03.20
10:16
(8) Ты что, не читаешь?))
"Типовая на базе БП 3.0"
10 tixis
 
15.03.20
10:16
Зачем что то удалять? Создаёшь Риб по организации, выгружает нужную, отвящываешь ее от центральной, все готово.
11 vicof
 
15.03.20
10:17
(10) Тоже вариант
12 Фрэнки
 
15.03.20
10:18
(2) Да выдели эту одну Фирму в дочерний узел и выгрузи в нее Полным планом обмена По Организации.

Заказчик не уточнял цель всего этого меропиятия? Среди моих клиентов часто встречаются такие запросы "давай отдадим на аудит базу, но нужно отдать так, чтоб там была только дона база"
Если это такой запрос, то выгрузи эту "одну организацию" и все.
В ней же дальше никто работать не будет.
13 Фрэнки
 
15.03.20
10:19
(9) там не сказано, есть в ней изменения или нет. Нормальные люди указывают "типовая (изменений нет)" например. И никаких уточняющих вопросов не требуется
14 tixis
 
15.03.20
10:22
Если решите все же удалять , то режим восстановления для базы обязательно поставить простой
15 xXeNoNx
 
15.03.20
10:22
(5) на самом деле пару часов, не знаю как, но Богачев знакомым свернул часа за 4-6
16 tixis
 
15.03.20
10:24
(15) прямыми запросами
17 vv2304
 
15.03.20
10:25
"давай отдадим на аудит базу, но нужно отдать так, чтоб там была только дона база"
Да, именно так. Только потом еще и свертку, чтобы был 2018 год, а все остальное стерто
18 tixis
 
15.03.20
10:27
Ну одну организацию проще свернуть когда выгрузишь по рибу. Ну и про модель восстановления я тебе выше писал
19 tixis
 
15.03.20
10:30
А вопрос про сколько актуален)))?
20 vv2304
 
15.03.20
10:32
(19) Еще вчера :)
Сейчас выгружаю по РИБ
21 Мимохожий Однако
 
15.03.20
10:33
(19) не ведись
22 vv2304
 
15.03.20
10:36
(19) Блин, сначала не понял вопроса. Раз подкинули идею, то попробую все же сам.
23 vv2304
 
15.03.20
10:42
Все действия вести, запустив базу в файловом варианте или в серверном ? Сделал и ту и другую, если что.
Или на скорость не влияет ?
24 ProxyInspector
 
15.03.20
10:54
(20) Та расскажи что получится :) Мне кажется, что через пару суток тебе тебе будет выдано сообщение "что то пошло не так, повторите попытку" Ну и озвучь примерное количество документов
25 ProxyInspector
 
15.03.20
11:01
Приготовь места на диске их расчета 3-4 размера базы. для копеечных баз 10 Гб это не актуально,  а вот для баз 100 Гб очень даже. Для больших баз РИБ умрет.
26 vv2304
 
15.03.20
11:19
(25) Место есть. База 12 Гб.
Диск SSD
"через пару суток тебе тебе будет выдано сообщение "что то пошло не так"
Ну а варианты какие еще ?
27 vv2304
 
15.03.20
11:20
Сейчас 3 процента выполнено. За 25 минут.
28 ptiz
 
15.03.20
11:29
(0) Всего 12Гб? А смысл чистить? Ну станет 8, если повезет. Ради чего всё это?
29 Фрэнки
 
15.03.20
11:42
(27) три процента, это ты в локали делаешь или на сервере?

Я бы утащил все на локальный комп с ссд и на нем все делал в толстом клиенте в запуске на 64 бит.
30 Волшебник
 
модератор
15.03.20
11:45
Для ускорения можно временно отключить итоги регистров. После удаления заново включить итоги.
31 Фрэнки
 
15.03.20
11:47
Просто замечено, что создание новых узлов РИБ в БП в серверном режиме очень сильно тормозит. Намного сильнее, чем при работе с файловым режиме. Если на других процедурах работы с базами это не так заметно, то на этой - очень заметны тормоза.
32 timurhv
 
15.03.20
11:47
(29) (30) Да можно просто замер для начала поставить.
БГУ сворачивал, так там 85% времени занимал неоптимальный код разработчиков 1С.
33 Фрэнки
 
15.03.20
11:48
(30) он уже не удаляет. Создает периферийный узел в РИБ ПоОрганизации
34 Фрэнки
 
15.03.20
11:48
(32) до свертки дело еще не дошло :-) Как будет сворачивать, так и прочитает.
35 ProxyInspector
 
15.03.20
12:42
(27) Через 16 часов будет готов файл выгрузки (это пока еще чтение базы) а потом через 160 часов закончится загрузка этого файла в чистую базу (это запись в базу).
  Мне кажется, что когда помечаешь на удаление документы или когда удаляешь скорость выше.
  Ты рассказывай о своих ощущениях, как идет процесс. Интересно.
36 RomanYS
 
15.03.20
12:59
(35) РИБ же dt выгружает. Загрузка dt - это минуты.

Удаление без контроля в режиме загрузки и с выключенными итогами конечно быстрее, но это минимум строк 10 кода. Штатное удаление на порядки дольше.
37 Turku
 
15.03.20
13:45
(0) Отпочковать выбранную организацию в РИБ. Не надо ничего удалять, все равно не удалите. Лучше делать на файловой базе, ибо есть примеры, когда Розница на SQL РИБ по магазину, в принципе, не могла сделать. Ждали сутки на топовом железе.
(36) Почему dt? 1Cv8.1CD же.
38 Злопчинский
 
15.03.20
13:48
тихо ржу...
39 Garykom
 
гуру
15.03.20
13:52
(38) Да нечего там ржать, в 77 на больших базах ничуть не лучше.
Просто фоновых и интерфейсных свистелок поменьше поэтому чуть шустрее.
40 RomanYS
 
15.03.20
13:52
(37) 1cd - тогда тем более непонятно о каких 160 часах в (35).

"все равно не удалите" - штатными средствами конечно не удалите.
41 Garykom
 
гуру
15.03.20
13:52
(39)+ Я вот например думаю как 1 лям номенклатуры выгрузить из 77 в 8-ку и пока не придумал
42 Garykom
 
гуру
15.03.20
13:56
(40) Если есть "разделитель учета" во всех метаданных что надо удалить то достаточно легко прямыми запросами в sql почистить или перенести в новую только то что надо.
Если же такого разделителя во многих нет и надо подцеплять по связям то тут уже сильно сложней.
43 Злопчинский
 
15.03.20
13:58
(41) судя по всему - выгрузить-то не проблема. а вот загрузить....
44 Garykom
 
гуру
15.03.20
14:02
(43) Загрузить как раз не проблема - в много потоков http://catalog.mista.ru/public/306865/ можно в 8-ке.
А вот 77 уже подумываю насчет sql и прямых
45 Злопчинский
 
15.03.20
14:17
(44) а в каком формате планируешь выгружать?
46 Злопчинский
 
15.03.20
14:19
(44) если операция разовая-двуразовая - фиг ли морочиться?
пусть семерка молотит. я думаю не так уж и долго будет, на сутки явно счет не пойдет ;-)
единственное может я бы выгружал порциями в отдельные "файлы". по 10-50-100 тыс в порцию...
47 Злопчинский
 
15.03.20
14:19
я хз, выгрузки обычно проще проходят чем загрузки, на загрузке может понадобиться больше "итераций"..
48 Turku
 
15.03.20
14:20
(41) КД2.1 + костыль от Ежа, чтобы xml не упал.
49 Злопчинский
 
15.03.20
14:24
(44) в примере по ссылке - рапараллеливание на 8 потоков вместо 1 - дало выигрыш менее 25% (пусть даже это на виртуалке делалось, что на реальной будет - хз).. как-то не сильно улучшено...
50 Злопчинский
 
15.03.20
14:26
(48) хм, а какой выигрыш использования КД2.1 для такого простоко объекта как номенклатура в 77..? загрузка черех xml в 8-ке даст охеренный выигрыш в скорости? мне кажется что наоборот, могу ошибаться, конечно...
51 palsergeich
 
15.03.20
14:31
(41) Если операция разовая - тупым csv
52 palsergeich
 
15.03.20
14:32
(50) Дело не в скорости, а в правилах и гибкости.
53 Злопчинский
 
15.03.20
14:41
(52) ну. тут я хз...
может там, в 8-ке, гибкость такая что хз кто знает все связи по номенклатуре...
в 77 - просото и прозрачно. есть ли такая простота и прозрачность в 8-ке - я хз. может даже не простота и прозрачность - а знание типовых конфиг изнутри.
54 Garykom
 
гуру
15.03.20
15:15
(45) Пока в TSV выгружаю, он самый шустрый и нет проблем как в CSV с некоторыми символами.
Символы.Таб редкость в наименованиях и там я их заменяю на 4 пробела кста если что.
55 Garykom
 
гуру
15.03.20
15:16
(46) Оно не совсем разовое а вполне себе многоразовое на затянувшийся переход до несколько месяцев.
Т.е. часть точек работать будут на старой 77 а часть на и склад на 8-ке уже.
56 Garykom
 
гуру
15.03.20
15:17
(48) Нафик-нафик, КД2 для 77 не дает нужной гибкости и скорости
57 vde69
 
15.03.20
15:23
сам делал САБЖ много раз

>>Типовая на базе БП 3.0.

это уже хорошо, например ЗУП куда тяжелее

>>Размер базы 12 Гб, ведется с 2012 года, 4 организации в базе.
>>Только потом еще и свертку, чтобы был 2018 год, а все остальное стерто

1. сначало делаешь типовую свертку
2. дальше уже можно смотреть 2 варианта
а. риб - не факт, что все будет чисто, по любому придется много хвостов чистить (сотрудники, физ лица, регистры сведений, пользователи, соответствия баз и т.д)
б. пометка удаления тут порядок такой
- отключаешь итоги
- помечаешь на удаление 5.10 тыс документов
- удаляешь, и повторяешь
- когда все документы удалишь идешь в справочники
- потом включаешь итоги и делаешь ТИС

вариант а примерно сутки, вариант б примерно 3 суток
58 RomanYS
 
15.03.20
15:32
(57) В типовой БП нет документов, которые относятся к двум(или более) организациям. Поэтому можно смело удалять все документы и справочники относящиеся к лишним организациям. В режиме загрузки с выключенными итогами будет на порядки (степени десятки) быстрее чем (- помечаешь на удаление 5.10 тыс документов,- удаляешь, и повторяешь).
59 Фрэнки
 
15.03.20
18:31
(57) // . риб - не факт, что все будет чисто, по любому придется много хвостов чистить (сотрудники, физ лица, регистры сведений, пользователи, соответствия баз и т.д)

извиняюсь - за каким таким перепугом их там "чистить" - совсем е.анулись?!!!

Базу хотят отдать аудитору в режиме чтения. Никто, ни за каким-то перепугом создавать в ней ничего не будет. Только читать. На справочники всем абсолютно начхать, если в справочниках будет валяться куча ненужных данных.
Нужны только регистраторы для движений по регистру бухгалтерии. Все!

Свертка может и нужна, чтоб убрать лишние регистраторы из лишних годов, но даже она не нужна. Потому что в база только для прочтения за один нужный год.
60 vis_tmp
 
15.03.20
18:34
(58) А разве нет документов без "Организации" ?
61 RomanYS
 
15.03.20
19:09
(60) Если такие есть, то их не трогать.
В УТ/КА/ЕРП могут быть документы на две организации. В БП таких нет
62 Aleksey
 
15.03.20
19:21
(60) установка цен
63 Злопчинский
 
15.03.20
20:03
(54) TSV - это как я понял тот же CSV с разделителями-табуляторами..? если да - то яобычно когда приходиться на скорую руку делать - именно так и делаю
64 ProxyInspector
 
15.03.20
20:18
(44) 1 млн номенклатуры - это не проблема. Через СОМ разово за 1 час загрузишь.
65 Garykom
 
гуру
15.03.20
20:19
(63) Угу но у TSV куча преимуществ.
Надо всего три символа экранировать или убирать левые из полей, это табуляция, новая строка и возврат каретки.

А эти символы в наименованиях очень редки в отличие от кавычек, запятых или точек с запятой с которыми проблема в CVS это кроме переводов/концов строк.

JSON и XML хороши для передачи когда в одном файле/пакете один объект/сущность или там их мало и скорость не важна а нужна гибкость.
Т.е. TSV это как и CSV и DBF линейные табличные данные, никаких удобных вложенностей с иерархиями.

Еще иногда я использую не табуляцию а непечатные символы (с кодами 1-12) как разделители, это если не хочется экранировать и проверять ничего.
66 ProxyInspector
 
15.03.20
20:21
(55) Если не разово, тоже через ОЛЕ нормально, только надо в 1с77 GUID из ЗначениеВСтроку сформировать
67 Garykom
 
гуру
15.03.20
20:21
(64) Нафик я сваял для 77 нечто вроде веб-сервисов, но да на основе COM/OLE.
Прога на голанге соединяется с 1С 77 по ole и выдает для 8-ки доступ по http по типу odata.

Можно делать нечто вроде "запросов", причем на языке 1С 7.7 а результат возвращается в TSV.
68 Garykom
 
гуру
15.03.20
20:22
(66) По ключевым полям а не по уид синхронизация
69 ProxyInspector
 
15.03.20
20:23
(36) А резве РИБ формирует .dt ? Я думал xml
70 Garykom
 
гуру
15.03.20
20:25
(67)+ Вот так выглядит из 8-ки:

&НаСервере
Процедура ЗагрузитьКонтрагентыНаСервере()
    КодНаВыполнение = "
    |
    |лтзКонтрагенты = СоздатьОбъект(""ТаблицаЗначений"");
    |лтзКонтрагенты.НоваяКолонка(""Контрагент"");
    |
    |лдокПлатежка = СоздатьОбъект(""Документ.Платежка"");
    |
    |ДатаС = '01.01.2017';
    |ДатаПо = РабочаяДата();
    |
    |лдокПлатежка.ВыбратьДокументы(ДатаС, ДатаПо);
    |Пока лдокПлатежка.ПолучитьДокумент() = 1 Цикл
    |    Если лдокПлатежка.Проведен()<>1 Тогда
    |        Продолжить;
    |    КонецЕсли;
    |    лтзКонтрагенты.НоваяСтрока();
    |    лтзКонтрагенты.Контрагент = лдокПлатежка.Получатель;
    |КонецЦикла;
    |
    |лдокПриходная = СоздатьОбъект(""Документ.Приходная"");
    |лдокПриходная.ВыбратьДокументы(ДатаС, ДатаПо);
    |Пока лдокПриходная.ПолучитьДокумент() = 1 Цикл
    |    Если лдокПриходная.Проведен()<>1 Тогда
    |        Продолжить;
    |    КонецЕсли;
    |    лтзКонтрагенты.НоваяСтрока();
    |    лтзКонтрагенты.Контрагент = лдокПриходная.Поставщик;
    |КонецЦикла;
    |
    |лтзКонтрагенты.Свернуть(""Контрагент"","""");
    |
    |КоличествоКонтрагентов = лтзКонтрагенты.КоличествоСтрок();
    |лтзКонтрагенты.ВыбратьСтроки();
    |Пока лтзКонтрагенты.ПолучитьСтроку() = 1 Цикл
    |    Контрагент = лтзКонтрагенты.Контрагент;
    |   Поле(Контрагент.ИНН);
    |   Поле(Контрагент.КПП);
    |   Поле(Контрагент.Наименование);
    |   Поле(Контрагент.ЮрЛицо);
    |   Поле(Контрагент.ОсновнойСчет);
    |   Поле(Контрагент.Банк);
    |   Поле(Контрагент.БИК);
    |   Поле(Контрагент.КорСчет);
    |   Поле(Контрагент.ЮрАдрес);
    |   Поле(Контрагент.ФактАдрес);
    |   Поле(Контрагент.Телефоны);
    |   Поле(Контрагент.ДоговорНомер);
    |
    |    ДоговорДата = Контрагент.ДоговорДата;
    |    СтрокаГод = Формат(ДатаГод(ДоговорДата),""Ч(0)4"");
    |    СтрокаМесяц = Формат(ДатаМесяц(ДоговорДата),""Ч(0)2"");
    |    СтрокаЧисло = Формат(ДатаЧисло(ДоговорДата),""Ч(0)2"");
    |    ДоговорДата = """"+СтрокаГод+""-""+СтрокаМесяц+""-""+СтрокаЧисло;
    |   Поле(ДоговорДата);
    |
    |   Ввод();
    |КонецЦикла;
    |
    |";
    
    Колонки = "ИНН,КПП,Наименование,ЮрЛицо,ОсновнойСчет,Банк,БИК,КорСчет,ЮрАдрес,ФактАдрес,Телефоны,ДоговорНомер,ДоговорДата";
    Таблица = ВыполнитьЗапрос(КодНаВыполнение, Колонки);
    Для Каждого ТекСтр Из Таблица Цикл
        Сообщить("Загрузка "+ТекСтр.ИНН+" "+ТекСтр.Наименование+" "+ТекСтр.ДоговорДата);
        Элемент = СтруктураИзСтрокиТЗ(ТекСтр);
        ЗагрузитьКонтрагент(Элемент);
    КонецЦикла;
    
КонецПроцедуры


Очень удобно что в 1С 7.7 больше ничего не надо делать, все можно только из 8-ки как при работе по COM/OLE но через http через инет.
71 ProxyInspector
 
15.03.20
20:27
Интересно что там у (0)? база то копеечная 12 Гб.  У меня сейчас наклевывается  БП30 60 Гб очистить от пары организаций. Поэтому я с надеждой смотрю на (0). Чтобы понять как точно делать не надо :)
72 Aleksey
 
15.03.20
20:40
(44) а как ты будешь паралелить запись в одну таблицу. Даже нумерация и то у тебя будет взаимоблокировки пораждать
73 vde69
 
15.03.20
20:45
(71) у меня было 5 баз в которых в сумме велось примерно 230 юрлиц, периодически приходилось выкусывать одно юр лица, при этом ставилось обязательное условие "не показывать афилированость", по этому все приходилось дочищаить вручную
74 Garykom
 
гуру
15.03.20
20:45
(72) Нумерация пакетная, зная сколько объектов в пакете можно заранее "зарезервировать" коды/нумера.
75 1Снег
 
15.03.20
20:48
(71) Пользуемся несколько лет http://catalog.mista.ru/public/139651/ , полет нормальный. Единственное что не на управляемых формах
Свертка баз ~600-700 Gb =>  10-20 Gb  за  ~10 часов. В это время входит создание документов остатков, пометка на удаление, контроль ссылочной целостности, удаление, обновление статистики, сжатие базы. Все прямыми запросами SQL.
76 RomanYS
 
15.03.20
21:34
(69) РИБ точно что-то платформенное выдает, dt или 1cd не помню
77 Сияющий в темноте
 
15.03.20
22:43
если есть sql
есть список таблиц с данными
для каждой таблицы можно подготовить критерий включения записи в итоговую выборку.
далее хранимкой по всем таблицами и перенос через bulk режим
чего-то мне кажется,что не сильно долго должно быть.
78 Aleksey
 
15.03.20
23:09
(77) устанешь в выборку включать, особенно если используются сервисы от 1С (1с отчетность и т.п.)
Особенно весело с прикрепленными файлами вынесенными из базы.
79 Сияющий в темноте
 
15.03.20
23:11
(78)они прям аудиторам так сильно нужны.
80 romix
 
15.03.20
23:26
Как вариант, можно учинить медленное сворачивание регламентным заданием.

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

Когда у старых документов останутся одни нули, их можно будет поудалять. Еще надо будет поставить запрет на старые документы, чтобы их случайно не перепровели.
81 Сияющий в темноте
 
15.03.20
23:28
(80)документ можно и записать сразу проведенным но без движений.
но если среднее время ЗАПИСИ в базу документа 3-10 секунд,то тут только в режиме sql.
82 romix
 
15.03.20
23:32
(80) А хотя у автора вроде не свертка.
83 vv2304
 
16.03.20
13:53
(82) И свертка тоже. Сначала через РИБ перенес одну организацию, отвязал. Потом свертка до января 2018 года и удаление документов 2019 и 2020 года.

Какая-то засада. Остались операции. Пробовал штатно удалять помеченные на удаление, потом без контроля ссылок.
Пишет, что все 100 операций удалены. Смотрю в журнале, так и висят. При чем спокойно можно открывать, снимать пометку, редактировать.
Фигня какая-то :(
Запустил ТИИ, с 7-ми утра пашет, т.е. уже 6 часов.