Вход | Регистрация
    1  2   

Удаление из подчиненного периодического регистра сведений. Помогите оптимизировать код.

Удаление из подчиненного периодического регистра сведений. Помогите оптимизировать код.
Я
   Kongo2019
 
03.02.21 - 08:32
Доброго.
Удаление из подчиненного периодического регистра сведений. Помогите оптимизировать код.
Есть регистр сведений Хранилище акцизных марок.
Периодичность - По позиции регистратора.
Режим записи - Подчинение регистратору.
Измерение Марка, строка длина 160 символов, пишется туда типа такого
170300181766771018001JY3BOHGSSEHPTLU7N57B333G5QDVUZJPLXC3C57ID4X3K2SGV3BTPM5C7TISRHULGNEJ6XXDCIVKH6B6JIIPREFYDXJLMGAMYDT64AZK42ANKLL2MBSQSTSOJBHSDVOWA .
В ресурсах есть ОтметкаВыбытия – тип булево.
Остальные ресурсы в данном вопросе не важны.
У нас в основном в этом регистре одна марка может быть в двух записях.
Если производство, то это два регистратора отчет производства за смену типа ставит на баланс и ТТН где уставлен признак выбывшие.
Если мы купили и продали это два регистратора это Акт к ТТН и ТТН где уставлен признак выбывшие.
Нескорые марки могут туда - сюда кататься, будет несколько записей,  главная запись последняя, по ней надо смотреть ОтметкаВыбытия.
На текущий момент в регистре 38 миллионов записей.
Задача зачистить выбывшие марки, оставив данные только за последние полгода.
Пока сделал так. За 12 часов в среднем удаляется полмиллиона записей.
Помогите оптимизировать код. Пока только в голову приходит запустить на нескольких компах с разным диапазоном дат.

Процедура Кнопка1Нажатие(Элемент)
    //Удаление записей из регистра, подчиненного регистратору
    
    Сообщить("Начало запроса - " + ТекущаяДата());
    
    Запрос = Новый Запрос;
    
    Запрос.Текст = "ВЫБРАТЬ РАЗЛИЧНЫЕ
    |    алкХранилищеАкцизныхМарокСрезПоследних.Марка
    |ПОМЕСТИТЬ Марки
    |ИЗ
    |    РегистрСведений.алкХранилищеАкцизныхМарок.СрезПоследних(, ) КАК алкХранилищеАкцизныхМарокСрезПоследних
    |ГДЕ
    |    алкХранилищеАкцизныхМарокСрезПоследних.ОтметкаВыбытия = ИСТИНА
    |;
    |
    |////////////////////////////////////////////////////////////////////////////////
    |ВЫБРАТЬ
    |    алкХранилищеАкцизныхМарок.Регистратор КАК Регистратор,
    |    алкХранилищеАкцизныхМарок.Марка КАК Марка
    |ИЗ
    |    РегистрСведений.алкХранилищеАкцизныхМарок КАК алкХранилищеАкцизныхМарок
    |        ВНУТРЕННЕЕ СОЕДИНЕНИЕ Марки КАК Марки
    |        ПО алкХранилищеАкцизныхМарок.Марка = Марки.Марка
    |ГДЕ
    |    алкХранилищеАкцизныхМарок.Период МЕЖДУ ДАТАВРЕМЯ(2018, 1, 1, 0, 0 , 1) И ДАТАВРЕМЯ(2020, 6, 1, 0, 0, 1)
    |ИТОГИ ПО
    |    Регистратор";
    
    
    
    СчетчикДоки = 0;
    СчетчикМарки = 0;
    
    ВыборкаРегистратор = Запрос.Выполнить().Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам);
    Сообщить("Окончание запроса - " + ТекущаяДата());
    
    Пока ВыборкаРегистратор.Следующий() Цикл
        НаборЗаписей = РегистрыСведений.алкХранилищеАкцизныхМарок.СоздатьНаборЗаписей();
        НаборЗаписей.Отбор.Регистратор.Установить(ВыборкаРегистратор.Регистратор);
        НаборЗаписей.Прочитать();
        сзУдаляемыеЗаписи = Новый СписокЗначений;
        ВыборкаДетальныеЗаписи = ВыборкаРегистратор.Выбрать();
        
        Пока ВыборкаДетальныеЗаписи.Следующий() Цикл
            Для Каждого Запись Из НаборЗаписей Цикл
                Если Запись.Марка = ВыборкаДетальныеЗаписи.Марка Тогда
                    сзУдаляемыеЗаписи.Добавить(Запись);
                    СчетчикМарки = СчетчикМарки + 1;
                КонецЕсли;
            КонецЦикла;
        КонецЦикла;
        
        Для Каждого ЭлтСз Из сзУдаляемыеЗаписи Цикл
            НаборЗаписей.Удалить(ЭлтСз.Значение);
        КонецЦикла;
        
        НаборЗаписей.Записать();
        СчетчикДоки = СчетчикДоки + 1;
        //Если СчетчикДоки = 100 Тогда
        //    Прервать;
        //КонецЕсли;
        Если ТекущаяДата() > Дата(2021, 02, 03, 08, 30 , 00) Тогда
            Прервать;
        КонецЕсли;    

    КонецЦикла;
    
    Сообщить("Окончание обработки - " + ТекущаяДата());
    Сообщить("СчетчикДоки - " + СчетчикДоки);
    Сообщить("СчетчикМарки - " + СчетчикМарки);
КонецПроцедуры

Сам запрос выполняется 20 минут.
Вот для примера последний запуск.

Начало запроса - 02.02.2021 23:10:58
Окончание запроса - 02.02.2021 23:38:54
Окончание обработки - 03.02.2021 8:31:04
СчетчикДоки - 167
СчетчикМарки - 373 695
   ДенисЧ
 
1 - 03.02.21 - 08:34
delete from ....
where ...
   Kongo2019
 
2 - 03.02.21 - 08:36
(1) Напрямую через SQL? 1С вроде как бы сильно не рекомендует.
   RomanYS
 
3 - 03.02.21 - 08:43
(0) получай номера строк запросом и удаляй без двойного цикла и проверки совпадения марок. Только в обратном порядке обязательно
   Александр111
 
4 - 03.02.21 - 09:06
Теперь давайте рассмотрим пример удаления записей с отбором — к примеру нам необходимо удалить записи по определенной номенклатуре:

Процедура ОчиститьЗаписиВЗависимомРегистреСведений(Регистратор, Номенклатура)
    Набор = РегистрыСведений.ЦеныНоменклатуры.СоздатьНаборЗаписей();
    Набор.Отбор.Регистратор.Установить(Регистратор);
    Набор.Прочитать();
    Для Индекс = 1 - Набор.Количество() По 0 Цикл
        Запись = Набор[- Индекс];
        Если Запись.Номенклатура = Номенклатура Тогда
            Набор.Удалить(- Индекс);
        КонецЕсли;
    КонецЦикла;
    Набор.Записать();
КонецПроцедуры

Первым действием мы устанавливаем отбор по регистратору и считываем записи. Далее в обратном порядке обходим записи и удаляем только нужные записи. Таким образом можно выполнять «точечную» очистку регистра.
   TormozIT
 
5 - 03.02.21 - 09:11
Если задача разовая, то нет смысла городить свое. 
Есть многопоточная универсальная обработка строк любых записываемых таблиц 1С "Подбор и обработка объектов БД (ИР)"
http://devtool1c.ucoz.ru/index/podbor_i_obrabotka_obektov/0-22
   Kongo2019
 
6 - 03.02.21 - 09:14
(3) Ок. Попробую. Может спасет.
   Kongo2019
 
7 - 03.02.21 - 09:14
(5) Там думаешь быстрее будет?
   piter3
 
8 - 03.02.21 - 09:15
(7) за счет нескольких потоков возможно
   TormozIT
 
9 - 03.02.21 - 09:16
(7) 100% уверен, что будет быстрее при наличии не загруженных ядер на сервере 1С и СУБД.
   Kongo2019
 
10 - 03.02.21 - 09:17
(8) Так и я могу запустить на нескольких компах с разным диапазоном дат. Но 1С вроде как блокирует таблицу целиком.
   piter3
 
11 - 03.02.21 - 09:19
(10) Я не вижу смысла особого,попробуй на копии хотя бы для понимания.Если задача не разовая
   TormozIT
 
12 - 03.02.21 - 09:21
(10) По сколько строк в среднем приходится на один регистратор?
   rphosts
 
13 - 03.02.21 - 09:28
(7) ну да, по сути многопоток - утилизация простаивающих ядер/дисков... если нет взаимных блокировок.
   Kongo2019
 
14 - 03.02.21 - 09:29
(9) Ок, попробую.
   rphosts
 
15 - 03.02.21 - 09:30
(12) у него старые формы... Range... и опа, прихватил соседа...
(10) сделай как в (5) написано - думаю должно сильно ускориться
   Kongo2019
 
16 - 03.02.21 - 09:31
(12)Около двух тысяч. А так может быть десяток, может быть и 20 тыщ.
   rphosts
 
17 - 03.02.21 - 09:31
(16) СУБД SQL?
   Kongo2019
 
18 - 03.02.21 - 09:33
(17) Да. Базовая конфа УПП 1,3.
1С:Предприятие 8.3 (8.3.13.1865)
   ДенисЧ
 
19 - 03.02.21 - 09:34
УПП базовая? ))))
   Kongo2019
 
20 - 03.02.21 - 09:35
(19) Нет, отраслевая доработка.
   TormozIT
 
21 - 03.02.21 - 09:37
(14) Не забудь включить много потоков https://www.hostedredmine.com/issues/884194
   Kongo2019
 
22 - 03.02.21 - 09:39
(21) Я пока соображаю как мне туда свою задачу запихать.
   rphosts
 
23 - 03.02.21 - 09:42
5 потоков * 20К записей может легко вывалиться в эскалации блокировки на всю таблицу. Я-бы попробовал поэкспериментировать с кол-вом потоков... ну да или использовать флажки трассировки 1211, 1224.
   TormozIT
 
24 - 03.02.21 - 09:43
(22) Сверху выбрать регистр. Задать в настройках выборки отбор по периоду. Нажать "Заполнить строки". Дальше на странице обработки все настроить и выбрать обработку "Удалить".
   TormozIT
 
25 - 03.02.21 - 09:46
(23) 20т - у него пик, а не среднее. Так что если эскалация и случится, то особо не повлияет на ускорение.
   Ёпрст
 
26 - 03.02.21 - 09:53
(0) кт-ное поделие лучше переписать всё.
   Ёпрст
 
27 - 03.02.21 - 09:53
ну и марка, 150 символов, если что, а не 160
   Ёпрст
 
28 - 03.02.21 - 09:55
И.. в Крыму нет разве послаблений, в плане учета егаиса ?
   MaiorovYury
 
29 - 03.02.21 - 09:59
А замер производительности смотрел?

Мне кажется вот тут, если по регистратору 20к записей, то будет около 20к * 20к / 2, то есть 200 млн проходов цикла - это овер дофига
У тебя ведь и в ВыборкаДетальныеЗаписи и в НаборЗаписей будет по 20к строк, верно?

У нас сейчас в ERP в стандарте такая же фигня - заказы поставщику проводятся по 10 минуты, потому что там тоже цикл внутри цикла по 10к-20к строк каждый)
        Пока ВыборкаДетальныеЗаписи.Следующий() Цикл
            Для Каждого Запись Из НаборЗаписей Цикл
                Если Запись.Марка = ВыборкаДетальныеЗаписи.Марка Тогда
                    сзУдаляемыеЗаписи.Добавить(Запись);
                    СчетчикМарки = СчетчикМарки + 1;
                КонецЕсли;
            КонецЦикла;
        КонецЦикла;
   Ёпрст
 
30 - 03.02.21 - 10:01
И..главный вопрос то - нахрена ЭТО удалять ? Места мало что ле ?
 
 Рекламное место пустует
   MaiorovYury
 
31 - 03.02.21 - 10:04
(30) если запрос выполняется 20 минут, то полагаю и в работе это уже мешает)
   Ёпрст
 
32 - 03.02.21 - 10:09
(31) тут переписывать недоразумение надо, которое кт-ники слепили на коленке и продолжают его применять, заместо того, чтоб исправить.

Об этом говорили, еще при начале внедрения марки. Что подчиненный, периодический РС не жилец. В нём еще и марка - измерение, строка 150.. вообще п..ц Ну вот он у автора и наступил :))

У нас только марок в 2 раза больше, а записей в РС - 116 390 861, только у нас их 2, для бух и упр учета.
И запросы, ну самый тяжелый, пара секунд - это получение остатка всех марок.
   Kongo2019
 
33 - 03.02.21 - 10:47
(26) Ну мы с ним вообще не связывались. Вот соседи помощи просят.
(27) Я в курсе. Это длина строки в реквизите стоит 160.
(28) Не, у нас как как налоги и учет это Россия. А как кредит и ипотека в банке то не Россия. В общем нет послаблений.
(30) Тормоза дикие. Индекс в два раза больше данных, это как-то не здорово.
   Kongo2019
 
34 - 03.02.21 - 10:55
(24)Не осиливаю.
Задача звучит следующая, отобрать все марки у которых на дату есть пометка выбывшие.
Хотя блин, тут есть потенциальная засада. Они на дату могут быть выбывшие а на сегодня опять вернулись. Поэтому я делаю срез посление на текущую дату, а доки не чищу за последние полгода, ну хоть как-то попку прикрыть.
То бишь, так как регистр сведений периодический, то надо срез последних делать.
И удалить записи где это марка есть. Исключая последние полгода.
   Ёпрст
 
35 - 03.02.21 - 10:56
(33) Тут только в морг. Т.е переписать всё.
Там не долго - завести справочник марки. в регистре поменять измерение со строки на справочник, сделать РС независимым и не переиодическим, поменять модули, добавить свой покрывающий индекс и ...полетит.
   Kongo2019
 
36 - 03.02.21 - 10:57
(35) Пока надо только грохнуть старое. За полетит никто не заплатит.
   TormozIT
 
37 - 03.02.21 - 11:02
(34) Тогда чуть сложнее https://www.youtube.com/watch?v=MgDXX-qUrx0&t=641s
   BeerHelpsMeWin
 
38 - 03.02.21 - 11:04
А если скопировать регистр, удалить всё, и вернуть только нужные?
   Ёпрст
 
39 - 03.02.21 - 11:05
(36) Ну, тогда через delete from это сделать быстрее, чем через запись набора
   Kongo2019
 
40 - 03.02.21 - 11:08
(37) а у меня неактивно Кол-во потоков. Хотел проверить, пару месяцев удалить.
Что я делаю не так?
http://prntscr.com/y4ev2b
   Kongo2019
 
41 - 03.02.21 - 11:10
(39) Но мне надо только выбывшие грохнуть.
   Kongo2019
 
42 - 03.02.21 - 11:10
(38) Куда его скопировать?
   TormozIT
 
43 - 03.02.21 - 11:10
(40) В (21) фича описана, включая ее применимость. Ты используешь портативный вариант.
   TormozIT
 
44 - 03.02.21 - 11:12
(40) Посмотри первую минуту https://youtu.be/-NJJP79TccI там показано как запускать правильный вариант.
   Kongo2019
 
45 - 03.02.21 - 11:13
(43) Не увидел. Тогда мне не повезло. Конфа на поддержке. Внутрь добро лесть не дали. Даже если я копии и отработаю, в боевой прикрутить не дадут
   TormozIT
 
46 - 03.02.21 - 11:42
(45) Пора увидеть (44)
   Kongo2019
 
47 - 03.02.21 - 11:44
(46) Базовая конфа УПП 1.3.
1С:Предприятие 8.3 (8.3.13.1865)
Нет там расширений.
   timurhv
 
48 - 03.02.21 - 11:55
(35) Я же тестировал разные схемы, по вашей:
1. Справочник сильно дольше записывается, чем записи в регистр сведений. Условно если в документе 1000000 марок, то это нужно сперва элемент справочника записать и только потом записи.
2. Весь профит от уменьшения индексов регистра уйдет в таблицу справочника, там тоже они немало занимают.

Самый оптимальный вариант: строковые измерения и регистр накопления.
   timurhv
 
49 - 03.02.21 - 11:57
(48) + запись в независимый непериодический регистр с 1млн записей займет немало времени
   Адинэснег
 
50 - 03.02.21 - 11:59
(19) типа учет вести можно по одной параметрической спецификации и одному переделу
   H A D G E H O G s
 
51 - 03.02.21 - 12:06
(48) А вот и разработчики КТ2000, наследники :-)
   TormozIT
 
52 - 03.02.21 - 12:08
(47) Виноват. Тоже не увидел (18) =) Тогда только однопоточный режим.
   H A D G E H O G s
 
53 - 03.02.21 - 12:11
(48) Справочник - один раз записал и живи спокойно. В несколько потоков для большого пула марок. И без всяких дублей, марка выбыла, марка в наличии. Кроме того, в справочнике можно выкинуть криптохвост из индекса.
Ну и привет всему набору индексов в которые вольготно войдут 150 байт марки, если у тебя другие измерения ведущие или индексированные.
   timurhv
 
54 - 03.02.21 - 12:21
(53) Тестировал я справочники, жрут индексы чуть меньше чем РСВ с подчиненным регистратору по позиции (притом по документации с ИТС должно быть меньше, но таблица в MSSQL говорит об обратном). Запись идет сильно дольше, в один поток 550 элементов справочника в секунду вышло, это для движений в 1млн марок 30 минут ждать?
Но у меня только приход и расход был, с несколькими записями в движениях по одной марке может и лучше будет.
   H A D G E H O G s
 
55 - 03.02.21 - 12:26
(54) Хорошо, хорошо.
   Ёпрст
 
56 - 03.02.21 - 13:17
(48) че за бредятина ?
   Ёпрст
 
57 - 03.02.21 - 13:19
Могу показать на конкретных данных, есть тут у нас в холдинге адэпты кт-ой конфы. Как неверная структура этого регистра влияет на запись. Про получения данных с такого регистра, его размеров в скуля. промолчу - там просто ад и израиль
   Ёпрст
 
58 - 03.02.21 - 13:19
(41) и ? в делете пропишешь условие на выбывшую марку и всё.
   Ёпрст
 
59 - 03.02.21 - 13:21
(54) самая быстрая запись - это запись в независимый, не периодический РС с ОбменДанными.Загрузка = истина. Там только insert и всё.
   DAFA
 
60 - 03.02.21 - 13:21
ну и код .а параметры использовать религия не позволяет?
 
 Рекламное место пустует
   timurhv
 
61 - 03.02.21 - 13:21
(55) (56) (59)
Запись 1 млн марок, индексы нигде не добавлял, используются кластерные и стандартные наборы у регистров, генерируемые платформой.
------------------------
1. Регистр сведений по позиции регистратора, измерения строковые:
Начало записи: 03.02.2021 12:52:58
Конец записи: 03.02.2021 12:56:34

Размер таблиц:
Основная 380960Кб + 739848Кб (индексы)
Всего = 1094Мб

2. Регистр накопления, измерения строковые:
Начало записи: 03.02.2021 12:53:05
Начало записи: 03.02.2021 12:57:37

Размер таблиц:
Основная 380960Кб + 50536Кб (индексы)
Итоги 347832Кб + 31600Кб (индексы)
Всего = 791Мб

3. Справочник (без кода, только наименование длиной 150) + независимый регистр сведений:
Время = дофига, не стал дожидаться, записалось за 20 минут 104991шт из 1млн в 1 поток.

Размер таблиц 104991 записей:
Справочник = 38184Кб + 45600Кб (индекс). Приводим до 1млн = 363688Кб + 434322Кб (индекс)
Регистр сведений = 5720Кб + 48Кб (индекс). Приводим до 1млн = 54480Кб + 457Кб
Всего = 832Мб
------------------------
Как я и говорил, размер ненамного увеличивается между п.3 и п.1, но сильно возрастает время записи.

Особенности:
п.1 будет долго формировать запрос на срезы на определенный период
п.2 итоги будут разбухать, если не закрывается регистр в 0, но запрос среза на дату выполняется во много раз быстрее п.1.
   Ёпрст
 
62 - 03.02.21 - 13:24
(61) Ладно, мне лень кого-то убеждать. Наглядный пример, как не надо делать - в (0).
   H A D G E H O G s
 
63 - 03.02.21 - 13:25
(61) Еще и регистр накопления. ... дышит и живет.
   timurhv
 
64 - 03.02.21 - 13:26
(59) Расскажите, как быстро записать в регистр сведений с измерениями:
- Марка (ссылка справочника, либо строка)

Быстро запишется если использовать:
- Марка (ссылка справочника, либо строка)
- ДополнительноеИзмерение (партия, документ-регистратор, номенклатура и тп)

(62) Регистр сведений по позиции = сложный запрос для 1С и много индексов, тут я согласен.
   Ёпрст
 
65 - 03.02.21 - 13:27
если получение примитивного отчета - 20 минут, это нормально, то да, так и делайте
   H A D G E H O G s
 
66 - 03.02.21 - 13:28
(64) Набором записей с отбором по Измерение- Документ.
   timurhv
 
67 - 03.02.21 - 13:30
(66) Как будет выглядеть запрос по остаточным маркам в этом случае?
   Ёпрст
 
68 - 03.02.21 - 13:31
   timurhv
 
69 - 03.02.21 - 13:32
(66) (67) считать сколько раз было прихода у марки и сколько расхода?
Либо при списании записывать для каждой марки отдельно, а не набором по документу?

(68) Я это читал
   Ёпрст
 
70 - 03.02.21 - 13:32
Не удивительно, что в кт-ной конфе вообще никаких отчетов нет.. ни движения марки ни вминяемых останков.
И ..всё что есть - отчет 30 минут :))
   Kongo2019
 
71 - 03.02.21 - 13:33
(58) Не прокатит. Это только половину удалит.
У нас в основном в этом регистре одна марка может быть в двух записях.
Если производство, то это два регистратора отчет производства за смену типа ставит на баланс и ТТН где уставлен признак выбывшие.
Если мы купили и продали это два регистратора это Акт к ТТН и ТТН где уставлен признак выбывшие.
   H A D G E H O G s
 
72 - 03.02.21 - 13:34
(67)
Выбрать
РС.Марка
Имеющие Максимум(РС.Состояние)=&МаркаВНаличии
   H A D G E H O G s
 
73 - 03.02.21 - 13:36
(67) Смысл не менять статус, а дописывать всегда. Наборами. И каждый следующий статус больше предыдущего. И Статус - это 2 знаковое число.
   H A D G E H O G s
 
74 - 03.02.21 - 13:38
Я просто рано ушел из КТ2000 :-) Партионный ЕГАИС был мой, а вот помарочный - потомков :-)
   timurhv
 
75 - 03.02.21 - 13:39
(73) Как записи должны выглядеть в независимом регистре?
Марка1 ДокументПриход
Марка1 ДокументРасход
Марка1 ДокументВозврат

Он всегда будет в выбывших?
   H A D G E H O G s
 
76 - 03.02.21 - 13:41
   H A D G E H O G s
 
77 - 03.02.21 - 13:42
(75) После Расхода марки уходят в РС
АСФАрхивСостоянийМарокУпаковок
с немного другим составом индексов и измерений
   Ёпрст
 
78 - 03.02.21 - 13:45
(71) :)) ты не догоняешь, в подзапросе или во времянке получаешь марки, которые нужно удалить, потом в делете в where пихаешь этот список марок. Удалит всё
   H A D G E H O G s
 
79 - 03.02.21 - 13:46
Было бы забавно, если бы КТ запилили регистр накопления.
   Ёпрст
 
80 - 03.02.21 - 13:46
(76) у меня еще тупее - число, приход+1 расход -1..ну и тупо сумма
   H A D G E H O G s
 
81 - 03.02.21 - 13:47
(80) Максимум возьмет первую запись индекса.
   Ёпрст
 
82 - 03.02.21 - 13:50
(81)я ужо не помню свои эксперименты, н пихал изначально так - 0 - пришла ттн, 1-подтвердили актом, -1 - выбыла.
Потом, записи с нулём вообще выкинул.
   Ёпрст
 
83 - 03.02.21 - 13:52
Но, у меня есть с чем сравнить, у нас в холдинге есть база, где модуль егаиса целиком, или с катапа или с утапа взят.
Дык вот, там при сравнительно одинаковом количестве марок и объеме продаж, только размер этого регистра в скуле..ну где-то раза 3-5 больше. Про индекс так вообще п..ц
   Ёпрст
 
84 - 03.02.21 - 13:52
Ну и отчетов у них нет никаких. вообще нет.
   H A D G E H O G s
 
85 - 03.02.21 - 13:53
(82) Я тоже сначало оперировал 0,1,2,3. А потом потребовались промежуточные статусы и потребовалось все старое умножить на 10 и вводить 0, 10, 20, 30 и между ними 15,16, 25 и.т.д.
   timurhv
 
86 - 03.02.21 - 13:55
(77) Теперь стало ясно, удобно чистить лишнее, по сравнению с регистром накопления.

Совет в (35) все-равно не понимаю со справочником в чем выгода? Индексы много занимают, хотя из реквизита только наименование.
   Kongo2019
 
87 - 03.02.21 - 14:05
У меня простой запрос на удаление всего, ну вот решил проверить. Уже час колбасит. что-то здесь не то.
DELETE FROM [test].[dbo].[_InfoRg33266]
   Ёпрст
 
88 - 03.02.21 - 14:07
(87) да уж.. удаление всего это truncate table [test].[dbo].[_InfoRg33266]  пару мс займет, наверное
   piter3
 
89 - 03.02.21 - 14:10
(87) условие забыл же
   Ёпрст
 
90 - 03.02.21 - 14:14
(86) я сразу мгновенно сказать, есть марка в базе или нет, тупо в поле ввода вбив её.
+ индекс гораздо компактнее, не говоря уже о том, что марку не только в РС пихаете.
   Ёпрст
 
91 - 03.02.21 - 14:15
Я храню еще в справочнике марки  реквизит алкогольная продукция. Так быстрее в отчетах иметь её
   Kongo2019
 
92 - 03.02.21 - 14:18
(89) Да уже просто глянут, а что даст очистка этого регистра? Чего это народ решил меня озадачить.
   Eeeehhhh
 
93 - 03.02.21 - 14:18
(87) базу перед действом в симпл, но лучше select into - быстрее будет.
   piter3
 
94 - 03.02.21 - 14:19
(92) Без where или как в (93) смысла мало имеет
   Kongo2019
 
95 - 03.02.21 - 14:23
Тут другая идея появилась.
Там ресурсах есть СправкаБ, ссылка на справочник.
Этих справок всего действительных около 2 тысячи.
Список есть, гуид легко можно получить.
Может тупо в SQL сделать?
Только я не знаю как мне в условие этот список запихать.
   Ёпрст
 
96 - 03.02.21 - 14:32
(92) это ты у (86) спроси, Если верить  Ежику, он создатель этого чуда.
   timurhv
 
97 - 03.02.21 - 14:34
(90) Если бы справочник быстро писался, то его использовал. Но в фуре помещается 470тыс пачек с сигаретами, УПД может прийти перед приемкой и ждать запись в таком случае нельзя.
(96) Я хейтил только за создание справочника, т.к. это долго. Схему в (0) я не поддерживаю и не использую, перечитайте мои сообщения. Я за регистр накопления, т.к. это самая быстрая запись с большим набором марок.
   Kongo2019
 
98 - 03.02.21 - 14:35
(96) Он в (74) сказал что не причастен.
   H A D G E H O G s
 
99 - 03.02.21 - 14:36
(91) Я просто алкокод в коде марки. Для унификации с КТ, 1С и нашим решением.
   H A D G E H O G s
 
100 - 03.02.21 - 14:40
(97) РН всегда содержит Период в начале кластерного индекса, что исключает его из спецолимпиады.
  1  2   

Список тем форума
Рекламное место пустует  Рекламное место пустует
Читай всё полезное и впитывай, а нападки игнорируй. Здесь так принято. aka AMIGO
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.