|   |   | 
| 
 | Очистка временной таблицы хранимой в переменной | ☑ | ||
|---|---|---|---|---|
| 0
    
        Eugeneer 23.08.22✎ 16:24 | 
        Есть процедурка с запросом.
 В этом запросе используется передаваемая ТЗ. ТЗ передается параметром. Сама ТЗ временная - в нее в свою очередь выгружается ТЧ объекта, так как в запрос ТЧ обработки передать невозможно без выгрузки. ТЧ может быть огромной - десятки тысяч строк. Процедурка делает некий запрос, потом там выборка идет и прочее... Есть смысл очищать ТЗ после выполнения запроса. Дальше она нафиг не нужна. А как я понимаю пока переменная с ТЧ есть в процедуре, то это данные в памяти которые бесполезно висят. | |||
| 1
    
        Волшебник 23.08.22✎ 16:27 | 
        Не просто в памяти. Ещё на сервере место на диске занимают.     | |||
| 2
    
        Eugeneer 23.08.22✎ 16:30 | 
        а как ее лучше очистить. так ТЗ.
 или сделать типа ДанныеПоиска = Неопределено; | |||
| 3
    
        Конструктор1С 23.08.22✎ 16:34 | 
        Перестань йухнёй страдать. Тупо обходи ТЧ в цикле и ищи что надо     | |||
| 4
    
        H A D G E H O G s 23.08.22✎ 16:35 | 
        (3) А вот и спецы программирования подтянулись.     | |||
| 5
    
        bolobol 23.08.22✎ 16:35 | 
        Надёжнее так:
 Масс= новый Массив; Для каждого СтрТЗ из ТЗ Цикл Масс.Добавить(СтрТЗ); КонецЦикла; Для каждого ЭлМасс из Масс Цикл ТЗ.Удалить(ЭлМасс); КонецЦикла; | |||
| 6
    
        СеменовСемен 23.08.22✎ 16:36 | 
        пока процедура не закончится сборщик все равно не запустится     | |||
| 7
    
        bolobol 23.08.22✎ 16:37 | 
        Можно ещё добавить, для надёжности: ЗначениеВстрокуВнутр или ХМЛ, а затем - всё удалённое в ЗаписьЖурналаРегистрации     | |||
| 8
    
        Kassern 23.08.22✎ 16:37 | 
        (0) В запросе можно (а иногда и нужно) уничтожать временные таблицы     | |||
| 9
    
        bolobol 23.08.22✎ 16:38 | 
        (8) ...УНИЧТОЖИТЬ &ТЗ     | |||
| 10
    
        Fynjy 23.08.22✎ 16:39 | 
        Евгений! Пора на завод! Слесаря сейчас в цене!     | |||
| 11
    
        Kassern 23.08.22✎ 16:39 | 
        (0) "так как в запрос ТЧ обработки передать невозможно без выгрузки" - кто вам такое сказал? ТЧ отлично передается во временную таблицу запрос, а вот коллекция формы нет)     | |||
| 12
    
        Конструктор1С 23.08.22✎ 16:40 | 
        (4) что, тоже любитель понапрягать сервер и БД без надобности?     | |||
| 13
    
        polosov 23.08.22✎ 16:49 | 
        (0) Бред какой-то.     | |||
| 14
    
        Eugeneer 23.08.22✎ 16:49 | 
        (8) это не запрос. а таблица для запроса. Я уже писал.
 ТЗ в которую выгружается ТЧ для передачи в сам запрос. | |||
| 15
    
        Конструктор1С 23.08.22✎ 16:50 | 
        (14) запросом-то чего делаешь?     | |||
| 16
    
        Eugeneer 23.08.22✎ 16:50 | 
        (11) " ТЧ отлично передается во временную таблицу запрос"
 да нунах. И как ты ее передашь? типа Объект.ТабличнаяЧасть?)) | |||
| 17
    
        Eugeneer 23.08.22✎ 16:51 | 
        (15) а там еще все сложнее. потом с этой ТЗ еще происходят всякие соединения и прочее. которое уже в результат запроса идет.     | |||
| 18
    
        Garykom гуру 23.08.22✎ 16:59 | 
        (16) Ты совсем?
 Ссылку на объект передай и в запросе используй прямое обращение к ТЧ объекта | |||
| 19
    
        СеменовСемен 23.08.22✎ 17:00 | 
        (12) а как еще можно по реквизиту ссылки найти например?     | |||
| 20
    
        Garykom гуру 23.08.22✎ 17:00 | 
        (17) Маня у тебя просто запросы кривые...     | |||
| 21
    
        СеменовСемен 23.08.22✎ 17:01 | 
        (18) там же загрузка из ексель, какие ссылки? это же наверняка тч обработки     | |||
| 22
    
        Kassern 23.08.22✎ 17:01 | 
        (16) "И как ты ее передашь?" - Легко и просто передам.  
 типа Объект.ТабличнаяЧасть?)) - смешно тут только то, что вы не зашли в отладку и не посмотрели какой тип у данной конструкции. А я ведь явно указал, что коллекции форм нельзя передавать в запрос. Вот пример для ТЧ. РеквизитФормыВЗначение("Объект").ТЧ - В этом случае тип будет табличная часть. | |||
| 23
    
        Eugeneer 23.08.22✎ 17:02 | 
        (18) обьект - обработка)))))     | |||
| 24
    
        СеменовСемен 23.08.22✎ 17:02 | 
        (22) а сколько памяти съест этот объект?     | |||
| 25
    
        Kassern 23.08.22✎ 17:04 | 
        (18) Это ТЧ обработки, судя по (0) Данные в ней не хранятся в базе. Поэтому обращение по ссылке тут не в тему.     | |||
| 26
    
        Kassern 23.08.22✎ 17:05 | 
        (24) здесь вопрос не в памяти, а в утверждении "ТЧ обработки передать невозможно без выгрузки"     | |||
| 27
    
        СеменовСемен 23.08.22✎ 17:06 | 
        (26) можно то можно, но будет ли выигрыш перед ТЧ.Выгрузить()     | |||
| 28
    
        Конструктор1С 23.08.22✎ 17:07 | 
        (24) сколько? Мегабайт наберется?     | |||
| 29
    
        Garykom гуру 23.08.22✎ 17:08 | 
        (23) Используй СКД     | |||
| 30
    
        Garykom гуру 23.08.22✎ 17:08 | 
        (27) Не будет.     | |||
| 31
    
        СеменовСемен 23.08.22✎ 17:08 | 
        (28) и гигабайт вполне может быть     | |||
| 32
    
        Конструктор1С 23.08.22✎ 17:10 | 
        (31) чего в объекте обработки может быть на гигабайт?     | |||
| 33
    
        Garykom гуру 23.08.22✎ 17:10 | 
        Но ТС изначально пошел по неправильному пути.
 Ибо: 1. Запросы в 1С тормозные, особенно передача больших данных снаружи в них 2. Есть другие СУБД (sqlite) в которых запросы быстрые 3. Получить данные из 1С и выкинуть во внешнюю СУБД достаточно быстро | |||
| 34
    
        СеменовСемен 23.08.22✎ 17:10 | 
        (332) прайс на несколько сот тысяч позиций     | |||
| 35
    
        Garykom гуру 23.08.22✎ 17:11 | 
        (33)+ Поэтому надо переписать на внешнее решение эту МегаХрень     | |||
| 36
    
        Kassern 23.08.22✎ 17:11 | 
        Блин вопрос о "ТЧ может быть огромной - десятки тысяч строк. " - это ерунда для 1с. Хоть как ты ее пихай.     | |||
| 37
    
        Garykom гуру 23.08.22✎ 17:12 | 
        (36) Десятки тысяч фигня
 Проблемы когда сотни тысяч и миллионы | |||
| 38
    
        Kassern 23.08.22✎ 17:12 | 
        (37) я про тоже, обсуждает сферических коней в вакууме, а у ТС какие-то жалкие десятки тысяч)     | |||
| 39
    
        Kassern 23.08.22✎ 17:13 | 
        *обсуждаем     | |||
| 40
    
        Eugeneer 23.08.22✎ 17:28 | 
        (38) да жалки то жалкие)) и обработка то летает даже со скоростью звука)))
 На нормальном железе, но есть особо бедные клиенты))) У которых память забивается))) А глянешь что за сервак - так там железо 10-15 летней давности. Им каждая копейка памяти ценна. | |||
| 41
    
        Eugeneer 23.08.22✎ 17:30 | 
        Но как минимум лишняя чистка ТЧ точно не помешает внутри процедуры. Чем ждать конца ее окончания.
 Кстати ТЧ всякие и прочее - забивают прилично память. Я даже не понимаю почему 1С так сильно жрет памяти на таблицах в 100к и более. | |||
| 42
    
        Eugeneer 23.08.22✎ 17:31 | 
        у меня там как раз после запроса выборка результата запроса идет. И таблица нафиг не нужна которая в запрос шла.
 Поставил короче назначение переменной = Неопределено; После выполнения запроса. | |||
| 43
    
        Eugeneer 23.08.22✎ 17:55 | 
        Хм.....
 Короче что сделал. Перенес процедуры в глобальник. В качестве параметра передаю ТЧ (не путать с ТЗ). И в процедуре глобальника сделал в передачу запроса напрямую переменную параметра. (убрал временную ТЗ в которую выгружалась ТЧ)..... И нифига не заругалось. Т.е работает без этой лишней таблицы, в которую ранее выгружал. СТРАННО то - что когда процедура была в модуле обработки - не давало передавать в запрос ТЧ обработки. тупо ругалось. | |||
| 44
    
        Конструктор1С 23.08.22✎ 18:31 | 
        (34) у ТЧ ограничение 100 тыщ строк. Но даже сто тыщ это далеко не гигабайт. И полагаешь, те же данные, запакованые в данные формы, будут принципиально меньше весить?     | |||
| 45
    
        Eugeneer 23.08.22✎ 18:48 | 
        (44) ограничение там на колонку НомерСтроки. не дает больше 99 999.
 Но фактически можно пихать сколько угодно. Просто у всех чт о больше будет номер строки 99 999.... 1С не понять. 2022 год а они там хурней страдают, не могут нормально сделать. | |||
| 46
    
        Конструктор1С 23.08.22✎ 19:15 | 
        (45) тебе точно надо объединится с Г1Сом     | 
| Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |