|   |   | 
| 
 | Проблема с запросом в ЗУПе | ☑ | ||
|---|---|---|---|---|
| 0
    
        Бертыш 19.01.16✎ 11:45 | 
        Поставили задачу чистки уволенных сотрудников за прошлые периоды. В прошлом году на меньшей базе я это уже делал вообще-то. Обработка та же самая, и логика та же самая ибо структура базы не менялась, но возникла проблема на этапе обработки независимых регистров.
 Суть проблемы в следующем. Я пытался в своё время оптимизировать работу делая всё запросами по максимуму. Мой запрос тупо пытается в такой ситуации собрать все записи регистра и засунуть их в ТЗ со структурой идентичной регистру дабы потом загрузить из этой ТЗ набор записей независимого регистра. То есть запрос исключает все записи по соответствию условия когда сотрудник в уволенных. На небольшой по объёме базе это прокатывало, а вот на большой 1С не тупо не хватает памяти. Можно ли как то мою логику преобразовать в прямой SQL запрос к базе для обработки таблицы?? И как это сделать минимальными трудозатратами. Был бы какой-нибудь update в 1С запросах, так схватил всё что не уволенные и засунув во временную таблицы потом перекинуть в основную. Да update нет и как это всё провернуть для меня не вполне очевидно. :( Помогайте. | |||
| 1
    
        mikeA 19.01.16✎ 12:03 | 
        минимальными трудозатратами будет по одному сотруднику. сколько там у вас сотрудников-то?     | |||
| 2
    
        Господин ПЖ 19.01.16✎ 12:04 | 
        >Поставили задачу чистки уволенных сотрудников за прошлые периоды. 
 зачем? перенести в архив и успокоиться нельзя? | |||
| 3
    
        mehfk 19.01.16✎ 12:06 | 
        Перейти на 64 разрядный сервер 1С:Предприятия и сделать так, чтобы ТЗ обрабатывались не на клиенте.     | |||
| 4
    
        Бертыш 19.01.16✎ 12:15 | 
        (1) Уволенных за прошлые периоды 892
 (3) Это мысль. Спасибо | |||
| 5
    
        mikeA 19.01.16✎ 12:21 | 
        > Уволенных за прошлые периоды 892 
 по одному. не то количество чтобы заморачиваться не ну можно конечно и 64 разрядного клиента на linux поднять под это дело)) | |||
| 6
    
        ИУБиПовиц 19.01.16✎ 13:56 | 
        (4) а не проще через набор записей этого вашего регистра с отбором из каждого из уволенных, очищать набор и записывать.
 На ночь поставить, за ночь должен отработать? | |||
| 7
    
        Бертыш 19.01.16✎ 15:56 | 
        (2) Коллега вместо того что бы приготовить и провести профилактику в базе валит на то что сильно много сотрудников и база распухла. Типа почистим уволенных она и залетает. Но тут проблема кроется в том что сама коллега не пишет очистку уволенных, а это сваливают на меня. То есть получается проблема на моей стороне, а коллега выглядит белой и пушистой.
 (6) Вероятно проще будет. Проблема в том что я особо не разбирался со структурой базы, а писал, по старой памяти, генерацию программно текстов запросов на лету. Вероятно я так же смогу и код отборов генерировать на лету и подсовывать через выполнить. У меня ищутся ссылки на уволенных. 892 уволенных дают мне примерно миллион тридцать тысяч ссылок на них. Потом производится свёртка ссылок до собственно объекта метаданных и по анализу метаданного генерируется код запросов. | |||
| 8
    
        Бертыш 19.01.16✎ 16:00 | 
        (5) Да у меня как бы и так 64 ех разрядный сервер. Просто ЗУП 2.5 я пиляю ан обычых формах и если я ещё с УФ пробовал клиент серверную работу, то с ОФ такой привычки нет. Запамятовал короче говоря как весь этот код разводить. Пока у меня код обработки не видит серверных методов в модуле обработки. Что-то мне подсказывает что может и не увидеть без какого-нибудь снятия какой-нибудь совместимости. Идея переписать так что бы оно всё работало на стороне сервера идя замечательная. Минимум переделок.     | |||
| 9
    
        bolobol 19.01.16✎ 16:27 | 
        (7) От количества записей - летание оперативной информации не зависит. В чём тогда суть задачи?
 (0) Самое простенькое: непосредственное удаление ненужных сотрудников, затем ТИИ с очисткой ссылок. Проверить взлёт - его нет, закрыть тему. | |||
| 10
    
        ibreiter 19.01.16✎ 16:37 | 
        По одному подсовывайте своих сотрудников обработке     | |||
| 11
    
        Бертыш 22.01.16✎ 10:47 | 
        (10) Вы не до конца понимаете логику моей обработки. Если в рамках данной логики ей подсовывать по одному сотруднику, то всё станет только хуже. Понятно что если чистить записи по одному сотруднику в независимом регистре, то будет лучше. Однако у меня собирается набор записей которые надо оставить запросом в таблицу значений.
 В принципе как указывал (3) взлетело. Единственное что попутно я увидел путь к оптимизации в отказе от таблицы значений. Я сейчас сразу из выборки запроса засовываю в набор записей регистра. | |||
| 12
    
        ibreiter 22.01.16✎ 10:55 | 
        (11) Главное, чтобы вы ее до конца понимали, иначе вообще труба     | |||
| 13
    
        Бертыш 25.01.16✎ 09:20 | 
        Сейчас упёрся в проблему в своей логике на ЗУПе. Есть исправленные документы и получается их нельзя провести. Надо будет делать обходной манёвр.     | 
| Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |