|
Как удалить записи из регистра сведений по условию ? | ☑ | ||
---|---|---|---|---|
0
Румата
12.01.17
✎
15:18
|
Доброго времени суток.
Есть Независимый, Непериодический регистр сведений. У него есть измерение "ПредполагаемаяДатаДействия". Необходимо удалить из регистра все записи удовлетворяющие условию, например 01.01.2015 <= ПредполагаемаяДатаДействия <= 30.11.2015. Подскажите пожалуйста как мне это сделать. |
|||
1
Cool_Profi
12.01.17
✎
15:21
|
выбрать запросом ключевые поля.
Циклом заполнять набор записей, очищать, записывать. |
|||
2
Cool_Profi
12.01.17
✎
15:21
|
Или взять готовый инструмент.
Типа тех же мобильных инструментов от ТормозИТ |
|||
3
Румата
12.01.17
✎
15:26
|
Циклом долго, без цикла есть решения ?
|
|||
4
Cool_Profi
12.01.17
✎
15:27
|
(3) Есть. Можно применить древнерусское заклинание "хусим".
|
|||
5
Cool_Profi
12.01.17
✎
15:28
|
Оно часто помогает.
|
|||
6
Румата
12.01.17
✎
15:29
|
Я смотрю здесь комики собираются часто, цирк уехал, смею вас заверить ;)
|
|||
7
Одинесю
12.01.17
✎
15:31
|
(6) Или "хусим" или цикл.
|
|||
8
Cool_Profi
12.01.17
✎
15:32
|
(6) Ну ты же остался. Вот ты нас и развлекаешь.
|
|||
9
Румата
12.01.17
✎
15:33
|
Да я смотрю, добры молодцы, вы "хусима" уже попробовали, раз всем его предлагаете )
|
|||
10
yzimin
12.01.17
✎
15:35
|
Можно сначала считать нужные записи в ТЗ, затем очистить регистр, загрузить из ТЗ в регистр)))
|
|||
11
Cool_Profi
12.01.17
✎
15:36
|
(9) Бис!
Скажи, а ты белого или рыжего отыгрываешь? |
|||
12
Румата
12.01.17
✎
15:38
|
(yzimin) Спасибо, буду пробовать ;)
(Cool_Profi) А кто из вас рыжий, а кто белый ? |
|||
13
Heckfy
12.01.17
✎
15:38
|
(1) Я бы с набором записей аккуратнее был. А то можно ненароком и весь регистр дропнуть. Уж лучше менеджер записи юзать :)
|
|||
14
shamannk
12.01.17
✎
15:40
|
(12) Не пробуйте только циклом, можете похереть все данные.
|
|||
15
Cool_Profi
12.01.17
✎
15:40
|
(12) Я вот не знаю, кого ты отыгрываешь.
А я представляю тебе адекватную консультацию знающего специалиста. Причём, заметь - бесплатно. |
|||
16
Cool_Profi
12.01.17
✎
15:40
|
(13) Проблемы шерифа...
|
|||
17
Serg_1960
12.01.17
✎
16:18
|
Имхо, если регистр небольшой по объёму, то выгрузка/загрузка ТЗ, иначе - запрос и менеджер.
|
|||
18
Heckfy
12.01.17
✎
17:02
|
Зачем в ТЗ/из ТЗ гонять, а какже НаборЗаписей с отбором?
|
|||
19
Cool_Profi
12.01.17
✎
17:03
|
(18) отбор 01.01.2015 <= ПредполагаемаяДатаДействия <= 30.11.2015
Покажи код. |
|||
20
Nuobu
12.01.17
✎
17:07
|
Можно запросик написать, где в отборе указать желаемый период, а в полях - нужное поле с датой. А потом - циклом.
|
|||
21
Heckfy
12.01.17
✎
17:08
|
(19) Лениво....
|
|||
22
Cool_Profi
12.01.17
✎
17:08
|
(21) Шерсть на животе начнёт расти в сторону спины...
|
|||
23
Cool_Profi
12.01.17
✎
17:09
|
(20) "Циклом долго, без цикла есть решения ?"
|
|||
24
Serg_1960
12.01.17
✎
17:13
|
(18) Нууу... ТЗ хороша тем, что по произвольным условиям можно удалять записи. И неважно, что в условиях указано(измерения или нет).
|
|||
25
Cool_Profi
12.01.17
✎
17:14
|
(24) был у меня один могил^W РС... Который при загрузке в Тз вызывал падение x64 сервера по памяти...
|
|||
26
Serg_1960
12.01.17
✎
17:21
|
(23) Теоретически можно запросом выбрать нужные записи (те, которые нужно оставить) и выгрузить результат запроса в регистр. Формально как бы без "программного" цикла :)
|
|||
27
Heckfy
12.01.17
✎
17:25
|
(25) :)
Я как то дал задание челу почистить регистр сведений, в котором овер 150 млн. записей (почему столько отдельная тема). Еще и внимание обратил на количество записей регистра, и что нужно всё аккуратно сделать. Тот радостный и побежал выполнять. Мне было тогда сразу напрячься, спросить, как он собирается это делать. Но что то чуйка дала сбой. В результате: НЗ=РС.СоздатьНаборЗаписей НЗ.Записать И всё пока. :) |
|||
28
Nuobu
12.01.17
✎
17:26
|
(26) Где-то так:
Запрос = Новый Запрос(); Запрос.УстановитьПараметр("НачалоПериода", ДатаНач); Запрос.УстановитьПараметр("КонецПериода", ДатаКон); Запрос.Текст = "ВЫбрать * из РегистрыСведений.РегистрСПолемПериода КАК Рег ГДЕ НЕ Рег.ПолеПериода Между &НачалоПериода И &КонецПериода"; ТЗ = Запрос.Выполнить().Выгрузить(); НаборЗаписей = РегистрыСведений.РегистрСПолемПериода.СоздатьНаборЗаписей(); НаборЗаписей.Прочитать(); НаборЗаписей.Очистить(); НаборЗаписей.Загрузить(ТЗ); НаборЗаписей.Прочитать(); //Попробуй так. |
|||
29
Nuobu
12.01.17
✎
17:26
|
В конце - НаборЗаписей.Записать();
|
|||
30
Румата
13.01.17
✎
09:34
|
После запроса вот так написал :
ТаблицаОставляемыхЗаписей = Запрос.Выполнить().Выгрузить(); НаборЗаписей = РегистрыСведений.РегистрСПолемПериода.СоздатьНаборЗаписей(); НаборЗаписей.Загрузить(ТаблицаОставляемыхЗаписей); НаборЗаписей.Записать(); Все получилось !!! |
|||
31
Adilgeriy
13.01.17
✎
09:39
|
(27) он почистил. или ты ему не так задачу сформулировал? или это я туплю?
|
|||
32
impulse9
13.01.17
✎
09:57
|
(27) он позвал тебя к себе со словами "Что-то у меня зависло все, опять сервер тупит"?
|
|||
33
DrZombi
гуру
13.01.17
✎
09:58
|
(10) А если ЗАписей перевалит за 6 Гб? Бу га га :)
|
|||
34
DrZombi
гуру
13.01.17
✎
09:59
|
(30) Отстой, но на маленьком объеме информации сойдет :)
|
|||
35
Heckfy
13.01.17
✎
15:56
|
(31) Ага, тупишь. :)
(32) Если бы он, хрен бы с ним. Весь офис пришел, кто 1С юзает. Сервак пришлось через cmd бутать, ибо по RDP на себя запустить сил у него уже не было. Ну и бутался он что то минут 40 - час. |
|||
36
Масянька
13.01.17
✎
16:42
|
(31) Нет, ты не тупишь. Тупит тот, кто задачу поставил.
|
|||
37
Torquader
13.01.17
✎
17:32
|
(27) Ну, не всё, а очень долгое ожидание.
Если SQL-сервер, то можно срубить сеанс и начать сначала. P.S. если выбирать первые, например, 100 записей и именно их и удалять, то размер не важен. |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |