|   |   | 
| 
 | Удаление из подчиненного периодического регистра сведений. Помогите оптимизировать код. | ☑ | ||
|---|---|---|---|---|
| 0
    
        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 | |||
| 28
    
        Ёпрст гуру 03.02.21✎ 09:55 | 
        И.. в Крыму нет разве послаблений, в плане учета егаиса ?     | |||
| 29
    
        MaiorovYury 03.02.21✎ 09:59 | 
        А замер производительности смотрел?
 Мне кажется вот тут, если по регистратору 20к записей, то будет около 20к * 20к / 2, то есть 200 млн проходов цикла - это овер дофига У тебя ведь и в ВыборкаДетальныеЗаписи и в НаборЗаписей будет по 20к строк, верно? У нас сейчас в ERP в стандарте такая же фигня - заказы поставщику проводятся по 10 минуты, потому что там тоже цикл внутри цикла по 10к-20к строк каждый) Пока ВыборкаДетальныеЗаписи.Следующий() Цикл Для Каждого Запись Из НаборЗаписей Цикл Если Запись.Марка = ВыборкаДетальныеЗаписи.Марка Тогда сзУдаляемыеЗаписи.Добавить(Запись); СчетчикМарки = СчетчикМарки + 1; КонецЕсли; КонецЦикла; КонецЦикла; | |||
| 30
    
        Ёпрст гуру 03.02.21✎ 10:01 | 
        И..главный вопрос то - нахрена ЭТО удалять ? Места мало что ле ?     | |||
| 31
    
        MaiorovYury 03.02.21✎ 10:04 | 
        (30) если запрос выполняется 20 минут, то полагаю и в работе это уже мешает)     | |||
| 32
    
        Ёпрст гуру 03.02.21✎ 10:09 | 
        (31) тут переписывать недоразумение надо, которое кт-ники слепили на коленке и продолжают его применять, заместо того, чтоб исправить.
 Об этом говорили, еще при начале внедрения марки. Что подчиненный, периодический РС не жилец. В нём еще и марка - измерение, строка 150.. вообще п..ц Ну вот он у автора и наступил :)) У нас только марок в 2 раза больше, а записей в РС - 116 390 861, только у нас их 2, для бух и упр учета. И запросы, ну самый тяжелый, пара секунд - это получение остатка всех марок. | |||
| 33
    
        Kongo2019 03.02.21✎ 10:47 | 
        (26) Ну мы с ним вообще не связывались. Вот соседи помощи просят. 
 (27) Я в курсе. Это длина строки в реквизите стоит 160. (28) Не, у нас как как налоги и учет это Россия. А как кредит и ипотека в банке то не Россия. В общем нет послаблений. (30) Тормоза дикие. Индекс в два раза больше данных, это как-то не здорово. | |||
| 34
    
        Kongo2019 03.02.21✎ 10:55 | 
        (24)Не осиливаю.
 Задача звучит следующая, отобрать все марки у которых на дату есть пометка выбывшие. Хотя блин, тут есть потенциальная засада. Они на дату могут быть выбывшие а на сегодня опять вернулись. Поэтому я делаю срез посление на текущую дату, а доки не чищу за последние полгода, ну хоть как-то попку прикрыть. То бишь, так как регистр сведений периодический, то надо срез последних делать. И удалить записи где это марка есть. Исключая последние полгода. | |||
| 35
    
        Ёпрст гуру 03.02.21✎ 10:56 | 
        (33) Тут только в морг. Т.е переписать всё.
 Там не долго - завести справочник марки. в регистре поменять измерение со строки на справочник, сделать РС независимым и не переиодическим, поменять модули, добавить свой покрывающий индекс и ...полетит. | |||
| 36
    
        Kongo2019 03.02.21✎ 10:57 | 
        (35) Пока надо только грохнуть старое. За полетит никто не заплатит.     | |||
| 37
    
        TormozIT гуру 03.02.21✎ 11:02 | 
        (34) Тогда чуть сложнее https://www.youtube.com/watch?v=MgDXX-qUrx0&t=641s     | |||
| 38
    
        BeerHelpsMeWin 03.02.21✎ 11:04 | 
        А если скопировать регистр, удалить всё, и вернуть только нужные?     | |||
| 39
    
        Ёпрст гуру 03.02.21✎ 11:05 | 
        (36) Ну, тогда через delete from это сделать быстрее, чем через запись набора     | |||
| 40
    
        Kongo2019 03.02.21✎ 11:08 | 
        (37) а у меня неактивно Кол-во потоков. Хотел проверить, пару месяцев удалить.
 Что я делаю не так? http://prntscr.com/y4ev2b | |||
| 41
    
        Kongo2019 03.02.21✎ 11:10 | 
        (39) Но мне надо только выбывшие грохнуть.     | |||
| 42
    
        Kongo2019 03.02.21✎ 11:10 | 
        (38) Куда его скопировать?     | |||
| 43
    
        TormozIT гуру 03.02.21✎ 11:10 | 
        (40) В (21) фича описана, включая ее применимость. Ты используешь портативный вариант.     | |||
| 44
    
        TormozIT гуру 03.02.21✎ 11:12 | 
        (40) Посмотри первую минуту https://youtu.be/-NJJP79TccI там показано как запускать правильный вариант.     | |||
| 45
    
        Kongo2019 03.02.21✎ 11:13 | 
        (43) Не увидел. Тогда мне не повезло. Конфа на поддержке. Внутрь добро лесть не дали. Даже если я копии и отработаю, в боевой прикрутить не дадут     | |||
| 46
    
        TormozIT гуру 03.02.21✎ 11:42 | 
        (45) Пора увидеть (44)     | |||
| 47
    
        Kongo2019 03.02.21✎ 11:44 | 
        (46) Базовая конфа УПП 1.3.
 1С:Предприятие 8.3 (8.3.13.1865) Нет там расширений. | |||
| 48
    
        timurhv 03.02.21✎ 11:55 | 
        (35) Я же тестировал разные схемы, по вашей:
 1. Справочник сильно дольше записывается, чем записи в регистр сведений. Условно если в документе 1000000 марок, то это нужно сперва элемент справочника записать и только потом записи. 2. Весь профит от уменьшения индексов регистра уйдет в таблицу справочника, там тоже они немало занимают. Самый оптимальный вариант: строковые измерения и регистр накопления. | |||
| 49
    
        timurhv 03.02.21✎ 11:57 | 
        (48) + запись в независимый непериодический регистр с 1млн записей займет немало времени     | |||
| 50
    
        Адинэснег 03.02.21✎ 11:59 | 
        (19) типа учет вести можно по одной параметрической спецификации и одному переделу     | |||
| 51
    
        H A D G E H O G s 03.02.21✎ 12:06 | 
        (48) А вот и разработчики КТ2000, наследники :-)     | |||
| 52
    
        TormozIT гуру 03.02.21✎ 12:08 | 
        (47) Виноват. Тоже не увидел (18) =) Тогда только однопоточный режим.     | |||
| 53
    
        H A D G E H O G s 03.02.21✎ 12:11 | 
        (48) Справочник - один раз записал и живи спокойно. В несколько потоков для большого пула марок. И без всяких дублей, марка выбыла, марка в наличии. Кроме того, в справочнике можно выкинуть криптохвост из индекса. 
 Ну и привет всему набору индексов в которые вольготно войдут 150 байт марки, если у тебя другие измерения ведущие или индексированные. | |||
| 54
    
        timurhv 03.02.21✎ 12:21 | 
        (53) Тестировал я справочники, жрут индексы чуть меньше чем РСВ с подчиненным регистратору по позиции (притом по документации с ИТС должно быть меньше, но таблица в MSSQL говорит об обратном). Запись идет сильно дольше, в один поток 550 элементов справочника в секунду вышло, это для движений в 1млн марок 30 минут ждать?
 Но у меня только приход и расход был, с несколькими записями в движениях по одной марке может и лучше будет. | |||
| 55
    
        H A D G E H O G s 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 и всё.     | |||
| 60
    
        DAFA 03.02.21✎ 13:21 | 
        ну и код .а параметры использовать религия не позволяет?     | |||
| 61
    
        timurhv 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).     | |||
| 63
    
        H A D G E H O G s 03.02.21✎ 13:25 | 
        (61) Еще и регистр накопления. ... дышит и живет.     | |||
| 64
    
        timurhv 03.02.21✎ 13:26 | 
        (59) Расскажите, как быстро записать в регистр сведений с измерениями:
 - Марка (ссылка справочника, либо строка) Быстро запишется если использовать: - Марка (ссылка справочника, либо строка) - ДополнительноеИзмерение (партия, документ-регистратор, номенклатура и тп) (62) Регистр сведений по позиции = сложный запрос для 1С и много индексов, тут я согласен. | |||
| 65
    
        Ёпрст гуру 03.02.21✎ 13:27 | 
        если получение примитивного отчета - 20 минут, это нормально, то да, так и делайте     | |||
| 66
    
        H A D G E H O G s 03.02.21✎ 13:28 | 
        (64) Набором записей с отбором по Измерение- Документ.     | |||
| 67
    
        timurhv 03.02.21✎ 13:30 | 
        (66) Как будет выглядеть запрос по остаточным маркам в этом случае?     | |||
| 68
    
        Ёпрст гуру 03.02.21✎ 13:31 | 
        (64) ну на вот, почитай на ночь
 http://catalog.mista.ru/1c/articles/527518/#Разбираемся_с_записью_регистров | |||
| 69
    
        timurhv 03.02.21✎ 13:32 | 
        (66) (67) считать сколько раз было прихода у марки и сколько расхода?
 Либо при списании записывать для каждой марки отдельно, а не набором по документу? (68) Я это читал | |||
| 70
    
        Ёпрст гуру 03.02.21✎ 13:32 | 
        Не удивительно, что в кт-ной конфе вообще никаких отчетов нет.. ни движения марки ни вминяемых останков.
 И ..всё что есть - отчет 30 минут :)) | |||
| 71
    
        Kongo2019 03.02.21✎ 13:33 | 
        (58) Не прокатит. Это только половину удалит.
 У нас в основном в этом регистре одна марка может быть в двух записях. Если производство, то это два регистратора отчет производства за смену типа ставит на баланс и ТТН где уставлен признак выбывшие. Если мы купили и продали это два регистратора это Акт к ТТН и ТТН где уставлен признак выбывшие. | |||
| 72
    
        H A D G E H O G s 03.02.21✎ 13:34 | 
        (67) 
 Выбрать РС.Марка Имеющие Максимум(РС.Состояние)=&МаркаВНаличии | |||
| 73
    
        H A D G E H O G s 03.02.21✎ 13:36 | 
        (67) Смысл не менять статус, а дописывать всегда. Наборами. И каждый следующий статус больше предыдущего. И Статус - это 2 знаковое число.     | |||
| 74
    
        H A D G E H O G s 03.02.21✎ 13:38 | 
        Я просто рано ушел из КТ2000 :-) Партионный ЕГАИС был мой, а вот помарочный - потомков :-)     | |||
| 75
    
        timurhv 03.02.21✎ 13:39 | 
        (73) Как записи должны выглядеть в независимом регистре?
 Марка1 ДокументПриход Марка1 ДокументРасход Марка1 ДокументВозврат Он всегда будет в выбывших? | |||
| 76
    
        H A D G E H O G s 03.02.21✎ 13:41 | ||||
| 77
    
        H A D G E H O G s 03.02.21✎ 13:42 | 
        (75) После Расхода марки уходят в РС
 АСФАрхивСостоянийМарокУпаковок с немного другим составом индексов и измерений | |||
| 78
    
        Ёпрст гуру 03.02.21✎ 13:45 | 
        (71) :)) ты не догоняешь, в подзапросе или во времянке получаешь марки, которые нужно удалить, потом в делете в where пихаешь этот список марок. Удалит всё     | |||
| 79
    
        H A D G E H O G s 03.02.21✎ 13:46 | 
        Было бы забавно, если бы КТ запилили регистр накопления.     | |||
| 80
    
        Ёпрст гуру 03.02.21✎ 13:46 | 
        (76) у меня еще тупее - число, приход+1 расход -1..ну и тупо сумма     | |||
| 81
    
        H A D G E H O G s 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 | 
        Ну и отчетов у них нет никаких. вообще нет.     | |||
| 85
    
        H A D G E H O G s 03.02.21✎ 13:53 | 
        (82) Я тоже сначало оперировал 0,1,2,3. А потом потребовались промежуточные статусы и потребовалось все старое умножить на 10 и вводить 0, 10, 20, 30 и между ними 15,16, 25 и.т.д.     | |||
| 86
    
        timurhv 03.02.21✎ 13:55 | 
        (77) Теперь стало ясно, удобно чистить лишнее, по сравнению с регистром накопления.
 Совет в (35) все-равно не понимаю со справочником в чем выгода? Индексы много занимают, хотя из реквизита только наименование. | |||
| 87
    
        Kongo2019 03.02.21✎ 14:05 | 
        У меня простой запрос на удаление всего, ну вот решил проверить. Уже час колбасит. что-то здесь не то.
 DELETE FROM [test].[dbo].[_InfoRg33266] | |||
| 88
    
        Ёпрст гуру 03.02.21✎ 14:07 | 
        (87) да уж.. удаление всего это truncate table [test].[dbo].[_InfoRg33266]  пару мс займет, наверное     | |||
| 89
    
        piter3 03.02.21✎ 14:10 | 
        (87) условие забыл же     | |||
| 90
    
        Ёпрст гуру 03.02.21✎ 14:14 | 
        (86) я сразу мгновенно сказать, есть марка в базе или нет, тупо в поле ввода вбив её.
 + индекс гораздо компактнее, не говоря уже о том, что марку не только в РС пихаете. | |||
| 91
    
        Ёпрст гуру 03.02.21✎ 14:15 | 
        Я храню еще в справочнике марки  реквизит алкогольная продукция. Так быстрее в отчетах иметь её     | |||
| 92
    
        Kongo2019 03.02.21✎ 14:18 | 
        (89) Да уже просто глянут, а что даст очистка этого регистра? Чего это народ решил меня озадачить.     | |||
| 93
    
        Eeeehhhh 03.02.21✎ 14:18 | 
        (87) базу перед действом в симпл, но лучше select into - быстрее будет.     | |||
| 94
    
        piter3 03.02.21✎ 14:19 | 
        (92) Без where или как в (93) смысла мало имеет     | |||
| 95
    
        Kongo2019 03.02.21✎ 14:23 | 
        Тут другая идея появилась.
 Там ресурсах есть СправкаБ, ссылка на справочник. Этих справок всего действительных около 2 тысячи. Список есть, гуид легко можно получить. Может тупо в SQL сделать? Только я не знаю как мне в условие этот список запихать. | |||
| 96
    
        Ёпрст гуру 03.02.21✎ 14:32 | 
        (92) это ты у (86) спроси, Если верить  Ежику, он создатель этого чуда.     | |||
| 97
    
        timurhv 03.02.21✎ 14:34 | 
        (90) Если бы справочник быстро писался, то его использовал. Но в фуре помещается 470тыс пачек с сигаретами, УПД может прийти перед приемкой и ждать запись в таком случае нельзя.
 (96) Я хейтил только за создание справочника, т.к. это долго. Схему в (0) я не поддерживаю и не использую, перечитайте мои сообщения. Я за регистр накопления, т.к. это самая быстрая запись с большим набором марок. | |||
| 98
    
        Kongo2019 03.02.21✎ 14:35 | 
        (96) Он в (74) сказал что не причастен.     | |||
| 99
    
        H A D G E H O G s 03.02.21✎ 14:36 | 
        (91) Я просто алкокод в коде марки. Для унификации с КТ, 1С и нашим решением.     | |||
| 100
    
        H A D G E H O G s 03.02.21✎ 14:40 | 
        (97) РН всегда содержит Период в начале кластерного индекса, что исключает его из спецолимпиады.     | |||
| 101
    
        timurhv 03.02.21✎ 14:41 | 
        (100) Ок, как за 2 минуты записать 470тыс. элементов справочника?     | |||
| 102
    
        Вася Теркин 03.02.21✎ 14:43 | 
        (0) Прямое подключение к собственной базе SQL из самой базы 1С через консоль SQL сделать сможешь, а готовую функцию пока не дают. Только что за 40 сек 13 миллионов строк РС проапдейтили. А в 1С это занимало 50 часов.     | |||
| 103
    
        H A D G E H O G s 03.02.21✎ 14:44 | 
        (101) Никак, пишите в РС.     | |||
| 104
    
        H A D G E H O G s 03.02.21✎ 14:45 | 
        (101) У нас алкашка, там размеры ТТН меньше.     | |||
| 105
    
        timurhv 03.02.21✎ 14:50 | 
        (103) Наверное, так и сделаю и откажусь по истории РН в пользу (77). Содержимое по маркам в УПД сейчас так и пишется в независимый РС.     | |||
| 106
    
        TormozIT гуру 03.02.21✎ 14:51 | 
        Кажется готовить DELETE FROM можно так. Делаешь в консоли запросов нужный запрос к удаляемой таблице с отбором и выполняешь его с отловом запроса СУБД. Дальше в этом отловленном запросе СУБД меняешь начало "SELECT ... FROM" на "DELETE FROM dbo.<ИмяТаблицыВСУБД> FROM". Дальше выполняешь например через ADO этот запрос напрямую в СУБД. Все это некоторые консоли запросов позволяют делать не выходя из 1С.     | |||
| 107
    
        H A D G E H O G s 03.02.21✎ 14:53 | 
        (105) Я бы тупо писал в справочник в многопоток в НачатьТранзакцию с отключением записи в ЖР. Если этого мало - ВнешнийИсточник данных и bulk insert по массиву подготовленных в 1С GUID и кодов марок     | |||
| 108
    
        timurhv 03.02.21✎ 14:55 | 
        (107) Если внешний источник отвалится в НГ, то праздники будут испорчены :)
 В многопоток я делал, но на сервере пока что только 4 ядра, не разгуляешься. | |||
| 109
    
        H A D G E H O G s 03.02.21✎ 14:57 | 
        (108) УстановитьСсылкуНового(Новый УникальныйИдентификатор) не забуть, когда в многопоток писать будешь     | |||
| 110
    
        Вася Теркин 03.02.21✎ 14:58 | 
        (106) Запрещено лицензионным соглашением.     | |||
| 111
    
        H A D G E H O G s 03.02.21✎ 14:58 | 
        (110) ВнешниеИсточникиДанных     | |||
| 112
    
        H A D G E H O G s 03.02.21✎ 14:59 | 
        (108) Несколько лет работает обмен с wms, ниче не отвалилось     | |||
| 113
    
        TormozIT гуру 03.02.21✎ 15:00 | 
        (111) Там нет DELETE FROM. Там надо отбор по измерениям делать с одним значением.     | |||
| 114
    
        H A D G E H O G s 03.02.21✎ 15:01 | 
        (113) Там есть вызов хранимых процедур :-)     | |||
| 115
    
        Вася Теркин 03.02.21✎ 15:01 | 
        (108) А как разные потоки принудительно на разные рабочие процессы трехзвенки отправить? Или один рабочий процесс можно на нескольких камнях сразу крутить?     | |||
| 116
    
        Вася Теркин 03.02.21✎ 15:01 | 
        Теперь можно в 8.3 новые rphost открывать по желанию?     | |||
| 117
    
        timurhv 03.02.21✎ 15:02 | 
        (112) Повезло
 https://partners.v8.1c.ru/forum/topic/1695148 | |||
| 118
    
        Вася Теркин 03.02.21✎ 15:03 | 
        (108) Несколько фоновых - это не многопоток.     | |||
| 119
    
        H A D G E H O G s 03.02.21✎ 15:05 | ||||
| 120
    
        timurhv 03.02.21✎ 15:05 | 
        (118) Почему нет?     | |||
| 121
    
        Ёпрст гуру 03.02.21✎ 15:58 | 
        (97) РН ? он же еще и итоги вам потом будет пересчитывать...     | |||
| 122
    
        timurhv 03.02.21✎ 19:01 | 
        (121) Да, откажусь от него. Я в начале не так понял вас про структуру РС, подумал используется только Марка + Статус.     | |||
| 123
    
        dmpl 03.02.21✎ 21:23 | 
        (54) А если справочник не плоский, а 2-уровневый, например. Первый уровень - "Упаковки" - ссылка на элемент, штрихкод которого реально сканирует оператор (блок, коробка, палета и т.п.), второй уровень - "Состав штрихкодов упаковок" - допустим, N элементов, в ТЧ которого содержатся коды. Допустим, до 1000 кодов в каждом элементе справочника. В ТЧ справочника "Упаковки" содержится список ссылок на справочник "Состав штрихкодов упаковок". В движениях использовать ссылки на справочник верхнего уровня (то, что реально сканирует оператор), но при необходимости можно всегда развернуть до конкретного штрихкода.     | |||
| 124
    
        timurhv 03.02.21✎ 21:46 | 
        (123) Думал об этом, оператор сканирует блок, уменьшится объем в 10 раз.
 Протестирую все варианты: РС независимый со строковыми измерениями, РС с записью ссылок упаковки и содержимого в ТЧ. Только в рознице марка списывается или блок (либо хэш марки добавлять в измерения, либо порядковый номер строки ТЧ справочника). | |||
| 125
    
        Вася Теркин 04.02.21✎ 10:24 | 
        (119, 120) См (115)     | |||
| 126
    
        timurhv 04.02.21✎ 10:58 | 
        (125) Может     | |||
| 127
    
        dmpl 04.02.21✎ 15:55 | 
        (124) На мой взгляд, не обязательно писать какой-то код в регистр. Пишется либо непосредственно штрихкод, если это неделимая упаковка, либо ссылка на упаковку со списком штрихкодов. В таком случае надо предусмотреть операцию "разборка" для упаковки, которая сделает штрихкод упаковки недоступным для дальнейшего сканирования, ну а отдельные штрихкоды упаковки наоборот станут доступны к сканированию.     | 
| Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |