| 
    
            
         
         | 
    
  | 
База работает очень долго | ☑ | ||
|---|---|---|---|---|
| 
    0
    
        LeoKeyn    
     10.05.18 
            ✎
    15:13 
 | 
         
        Здравствуйте. База 1с работает на клиент серверном варианте УФ. У 
 
        клиента стоит только управляемое приложение. Сервер администрирования 1с и SQL сервер располагаются на разных физических серверах. Проблема в следующем: Запускается обработка проверки базы террористов (конфигурация отраслевая не стандартная) На одном компьютере данный документ заполняется за 20-30 минут, на другом за 4 часа. Выполняется и там и там на тонком клиенте. Подскажите, пожалуйста, из-за чего такое может быть?  | 
|||
| 
    1
    
        Mankubus    
     10.05.18 
            ✎
    15:15 
 | 
         
        (0) замер уже сделал? Профайлер смотрел?     
         | 
|||
| 
    2
    
        lodger    
     10.05.18 
            ✎
    15:16 
 | 
         
        права у юзеров с ограничениями? а то мож у одного RLS, а у другого полные права...     
         | 
|||
| 
    3
    
        LeoKeyn    
     10.05.18 
            ✎
    15:17 
 | 
         
        (2) У обоих полные права, даже тот же пользователь     
         | 
|||
| 
    4
    
        LeoKeyn    
     10.05.18 
            ✎
    15:18 
 | 
         
        (1) Нет, не совсем знаю как это делать, не откажусь от методических материалов)     
         | 
|||
| 
    5
    
        DrShad    
     10.05.18 
            ✎
    15:23 
 | 
         
        даже 20 минут это слишком     
         | 
|||
| 
    6
    
        vis_tmp    
     10.05.18 
            ✎
    15:23 
 | 
         
        (0)Что за отрасль?     
         | 
|||
| 
    7
    
        ptiz    
     10.05.18 
            ✎
    15:23 
 | 
         
        (0) Буду первый: 1С:Антитеррор ? :)     
         | 
|||
| 
    8
    
        H A D G E H O G s    
     10.05.18 
            ✎
    15:23 
 | 
         
        Случаи разные бывают.
 
        Я вот сталкивался с заполнением заказов из Ексель на ТонкомКлиенте. Вот буквально - открывалась форма документа и менялись реквизиты шапки, вызываясь клиентские процедуры смены реквизита. Работало сутками. Думаю, у автора может быть подобное.  | 
|||
| 
    9
    
        LeoKeyn    
     10.05.18 
            ✎
    15:24 
 | 
         
        (5) Ну документ очень большой получается     
         | 
|||
| 
    10
    
        LeoKeyn    
     10.05.18 
            ✎
    15:24 
 | 
         
        (7) (6) Ак кредит     
         | 
|||
| 
    11
    
        piter3    
     10.05.18 
            ✎
    15:24 
 | 
         
        (9) Большой это сколько?     
         | 
|||
| 
    12
    
        LeoKeyn    
     10.05.18 
            ✎
    15:25 
 | 
         
        (8) а как исправил, если не секрет?)     
         | 
|||
| 
    13
    
        ProxyInspector    
     10.05.18 
            ✎
    15:25 
 | 
         
        В случае с 1с, следует писать "так называемые Управляемые Формы" и "так называемый серверный вариант". По моим наблюдениям, при определенных условиях, объем ресурсов, потребляемый УФ может существенно превышать объем ресурсов, потребляемых толстым клиентом. Соответственно 
 
        1. надо почистить кеш на клиентских компьютерах 2 Проверить скорость локальных дисков 3 Проверить скорость локальной сети Ну и вообще говоря УФ не предназначена для работы с большими документами  | 
|||
| 
    14
    
        LeoKeyn    
     10.05.18 
            ✎
    15:26 
 | 
         
        (11) 52603 записи, плюс проверка то это идет через некий портал как я понимаю     
         | 
|||
| 
    15
    
        unregistered    
     10.05.18 
            ✎
    15:27 
 | 
         
        (0) > из-за чего такое может быть?
 
        Да из-за чего угодно. Начиная с того, что в первом случае с базой работал один единственный пользователь, а во втором - одновременно сидело 100 человек и интенсивно формировали какие-нибудь отчеты по базе. При абсолютно равных или хотя бы сопоставимых условиях (одинаковые права пользователей, одинаковые параметры заполнения, одинаковая нагрузка на сервера СУБД и 1С) описанной тобой разницы (в 12 раз!!!) просто не может быть. Даже если предположить проблемы с сетью в момент передачи результата с сервера на клиента, то разница не должна быть такой. Хотя бог его знает что у вас там за алгоритм.... Может вы там результат гоняете в цикле по каждой строчке с клиента на сервер и обратно... Я вообще с трудом могу себе представить что такое может заполняться 20-30 минут. Не говоря уже о 4 часах.... Начните с замера производительности.  | 
|||
| 
    16
    
        LeoKeyn    
     10.05.18 
            ✎
    15:28 
 | 
         
        (13) 
 
        1. Кеш чисты, клиенту только поставили 1с и работает он пока только с этим документом; 2. С этим тоже все в порядке машина новая; 3. Скорость локалки 100мб.  | 
|||
| 
    17
    
        DrShad    
     10.05.18 
            ✎
    15:29 
 | 
         
        (16) убейте того кто писал алгоритм заполнения     
         | 
|||
| 
    18
    
        LeoKeyn    
     10.05.18 
            ✎
    15:30 
 | 
         
        (17) получается с этим нужно обращаться к разработчикам или искать проблему в оборудовании?     
         | 
|||
| 
    19
    
        ProxyInspector    
     10.05.18 
            ✎
    15:31 
 | 
         
        (15) Что тут представлять? Берешь УТ-3. Документ УстановкаЦенНоменклатуры на 50 тыс позиций и (0) покажется вам сказкой     
         | 
|||
| 
    20
    
        H A D G E H O G s    
     10.05.18 
            ✎
    15:31 
 | 
         
        (12) Переписал все на серверную обработку.
 
        Да, тяжело, но 5000 строк заказа вместо суток, стало заполняться за 16 секунд. Считая инициализацию libreofice  | 
|||
| 
    21
    
        piter3    
     10.05.18 
            ✎
    15:31 
 | 
         
        (18) монетку кинь.И там и там.Код покажи уже     
         | 
|||
| 
    22
    
        H A D G E H O G s    
     10.05.18 
            ✎
    15:32 
 | 
         
        (13) Проблема производительности Тонких форм в солидоле.
 
        В голове у критиканов, ну и, частично, у разработчиков типовых.  | 
|||
| 
    23
    
        DrShad    
     10.05.18 
            ✎
    15:32 
 | 
         
        (18) оборудование тут ни при чем     
         | 
|||
| 
    24
    
        H A D G E H O G s    
     10.05.18 
            ✎
    15:33 
 | 
         
        (19) Вы же понимаете, в чем там проблема и можете нам рассказать, ведь так?     
         | 
|||
| 
    25
    
        Любопытная    
     10.05.18 
            ✎
    15:33 
 | 
         
        (18) Замер производительности сделайте для начала и посмотрите, на чем умирает система.     
         | 
|||
| 
    26
    
        ProxyInspector    
     10.05.18 
            ✎
    15:33 
 | 
         
        (22) Проблемы у разработчиков Типовых     
         | 
|||
| 
    27
    
        H A D G E H O G s    
     10.05.18 
            ✎
    15:35 
 | 
         
        (26) Ну так если руки крюки у разрабов типовых, че тогда пургу на ТонкийКлиент гоним?
 
        При желании, можно обойти ограничение на 99 тыс строк и открывать 300тыс строковый документ за пару секунд.  | 
|||
| 
    28
    
        ProxyInspector    
     10.05.18 
            ✎
    15:35 
 | 
         
        (24) Конечно понятно, в чем проблема УТ3. И там реально раз в 100 можно ускорить, но все равно работать не возможно     
         | 
|||
| 
    29
    
        H A D G E H O G s    
     10.05.18 
            ✎
    15:36 
 | 
         
        (28) "в чем проблема УТ3"
 
        В чем? В чем конкретно проблема УТЗ?  | 
|||
| 
    30
    
        H A D G E H O G s    
     10.05.18 
            ✎
    15:36 
 | 
         
        (28) Конкретно УстановкаЦенНоменклатуры     
         | 
|||
| 
    31
    
        ProxyInspector    
     10.05.18 
            ✎
    15:36 
 | 
         
        Для больших документов на УФ две проблемы - разработчики и сами УФ.     
         | 
|||
| 
    32
    
        H A D G E H O G s    
     10.05.18 
            ✎
    15:37 
 | 
         
        (31) Это понятно, но хочется подробностей.
 
        Что приводит к тормозам УстановкаЦенНоменклатуры ?  | 
|||
| 
    33
    
        DrShad    
     10.05.18 
            ✎
    15:38 
 | 
         
        казалось бы, причем тут большой или нет документ и УФ?     
         | 
|||
| 
    34
    
        H A D G E H O G s    
     10.05.18 
            ✎
    15:38 
 | 
         
        (33) Хароший вопрос!     
         | 
|||
| 
    35
    
        DrShad    
     10.05.18 
            ✎
    15:38 
 | 
         
        (32) +1     
         | 
|||
| 
    36
    
        H A D G E H O G s    
     10.05.18 
            ✎
    15:38 
 | 
         
        На который ответит Proxy, ведь он не криворукий разраб из 1С.     
         | 
|||
| 
    37
    
        DrShad    
     10.05.18 
            ✎
    15:39 
 | 
         
        (36) а откуда вообще возникла УТ3? это же украинская конфа     
         | 
|||
| 
    38
    
        H A D G E H O G s    
     10.05.18 
            ✎
    15:40 
 | 
         
        Он, конечно, сейчас открывает конфигуратор с УТ, но это - долго, комп скорее всего стар, без SSD или антивирус злобствует.
 
        Но мы подождем.  | 
|||
| 
    39
    
        H A D G E H O G s    
     10.05.18 
            ✎
    15:40 
 | 
         
        (37) Я так понял, что это УТ11.3     
         | 
|||
| 
    40
    
        ProxyInspector    
     10.05.18 
            ✎
    15:41 
 | 
         
        Да     
         | 
|||
| 
    41
    
        DrShad    
     10.05.18 
            ✎
    15:41 
 | 
         
        (39) возможно     
         | 
|||
| 
    42
    
        MaxS    
     10.05.18 
            ✎
    15:41 
 | 
         
        (17) Ещё как вариант - физически сократить количество террористов, потом пометить на удаление в 1С, исключить из учета и база будет работать быстрее.     
         | 
|||
| 
    43
    
        DrShad    
     10.05.18 
            ✎
    15:41 
 | 
         
        (40) хвала великим яйцам, хоть не Украина виновата     
         | 
|||
| 
    44
    
        H A D G E H O G s    
     10.05.18 
            ✎
    15:42 
 | 
         
        (43) Еще ничего не ясно.     
         | 
|||
| 
    45
    
        DrShad    
     10.05.18 
            ✎
    15:42 
 | 
         
        (44) ну да, всяко может статься )))     
         | 
|||
| 
    46
    
        H A D G E H O G s    
     10.05.18 
            ✎
    15:42 
 | 
         
        Сохраняйте спокойствие, приготовьте QR-татуировки к сканированию.     
         | 
|||
| 
    47
    
        unregistered    
     10.05.18 
            ✎
    15:43 
 | 
         
        (14) > 52603 записи
 
        И что? У меня книга покупок в типовой бухне ~28000 записей заполняется несколько минут (может и меньше - никогда не замерял)... При этом и сервера, и клиенты, и сеть - не какие-то супер-пупер-мегакрутые (скорее даже наоборот).  | 
|||
| 
    48
    
        DrShad    
     10.05.18 
            ✎
    15:43 
 | 
         
        (46) чьорт побьери
 
        а если я свою дома забыл?  | 
|||
| 
    49
    
        H A D G E H O G s    
     10.05.18 
            ✎
    15:43 
 | 
         
        (48) Руку?     
         | 
|||
| 
    50
    
        DrShad    
     10.05.18 
            ✎
    15:44 
 | 
         
        (49) QR-татуировку     
         | 
|||
| 
    51
    
        H A D G E H O G s    
     10.05.18 
            ✎
    15:44 
 | 
         
        Ты еще голову дома забуть, с NFR-меткой! Как мы вас учитывать будем? Вот как с вами тоталитаризм строить?     
         | 
|||
| 
    52
    
        H A D G E H O G s    
     10.05.18 
            ✎
    15:45 
 | 
         
        Ладно, пашутили...
 
        Что там у ProxyInspectora? Открылась форма документа? Готовы ответы на сакральные вопросы?  | 
|||
| 
    53
    
        worker-good    
     10.05.18 
            ✎
    15:47 
 | 
         
        (18) Если конфигурация снята с поддержки, то вполне возможны проблемы с блокировками транзакций, которые создал неумелый разработчик. Найдите исходную конфигурацию не снятую с поддержки и посмотрите как там формируется данный документ     
         | 
|||
| 
    54
    
        Вафель    
     10.05.18 
            ✎
    15:49 
 | 
         
        конечно 52 тыщи коннектов к серверу через инет явно быстр не будет     
         | 
|||
| 
    55
    
        ProxyInspector    
     10.05.18 
            ✎
    15:50 
 | 
         
        1. Ут11 разработчики попытались повторить алгоритм УТ, когда из табличной части вида ТипЦен-Цена пытаются формировать таблицу типа ТипЦен1-Цена , ТИпЦен2-Цена , ТИпЦен3-цена. И при изменении любого реквизита вся эта каша гоняется на сервер и обратно. 
 
        2. При проведении проверка на дублирование строк производится тупым перебором строк и для каждой строки вызывается ТабличнаяЧасть.НайтиСтроки() В результате скорость работы падает как квадрат количества строк. Если документ на 100 строк от отрывается/проводится за 1 сек, 1000 строк за 100 сек, 10 000 строк за несколько минут  | 
|||
| 
    56
    
        Вафель    
     10.05.18 
            ✎
    15:52 
 | 
         
        неужели 1сники не смогли гонять диффы вместо полных данных??? 
        вопрос риторический  | 
|||
| 
    57
    
        ProxyInspector    
     10.05.18 
            ✎
    15:53 
 | 
         
        Я в свое время убрал все основные ошибки, но все равно комфортной работы с большими документами на УФ не получилось. И от нее пришлось отказаться в пользу толстого клиента.     
         | 
|||
| 
    58
    
        ProxyInspector    
     10.05.18 
            ✎
    15:54 
 | 
         
        Что касается (0), то надо исправить алгоритм заполнения документа и ускорение раз в 100 вполне можно добиться     
         | 
|||
| 
    59
    
        H A D G E H O G s    
     10.05.18 
            ✎
    15:56 
 | 
         
        (55) Ну слава яйцам. Но на самом деле, это только то, что ты смог увидеть через замер.
 
        Проблема - глубже - называется она ДеревоЦен:ДеревоЗначений, решить которую можно, только перенеся ТипЦен в шапку документа.  | 
|||
| 
    60
    
        ProxyInspector    
     10.05.18 
            ✎
    15:57 
 | 
         
        Самый простой способ - заполнять таблицу значений, а потом ее грузить в табличную часть. Основные тормоза, как мне кажется - это все те же ТабличнаяЧасть.НайтиСтроки()     
         | 
|||
| 
    61
    
        H A D G E H O G s    
     10.05.18 
            ✎
    15:57 
 | 
         
        И редактируя цены через табличную часть.     
         | 
|||
| 
    62
    
        Вафель    
     10.05.18 
            ✎
    15:57 
 | 
         
        (59) предлагаешь на каждый тип цен по отдельному документу заводить? 
        А вот в толстых формах ...  | 
|||
| 
    63
    
        H A D G E H O G s    
     10.05.18 
            ✎
    15:58 
 | 
         
        (60) Нихрена.
 
        Таблица значений ставит колом сервер 1С на от 10К-20K строк.  | 
|||
| 
    64
    
        H A D G E H O G s    
     10.05.18 
            ✎
    15:58 
 | 
         
        (62) "А вот в толстых формах .."
 
        Даа, были времена.  | 
|||
| 
    65
    
        Вафель    
     10.05.18 
            ✎
    15:58 
 | 
         
        (63) но найти строки то на тз явно быстрее ибо индекс     
         | 
|||
| 
    66
    
        ProxyInspector    
     10.05.18 
            ✎
    15:59 
 | 
         
        (59) Эта первая проблема - разработчики. Вторая проблема - УФ. Остается. Ты можешь попробовать поработать с обычным документом на 100 тыс строк. Без всяких обработчиков. И убедиться, что работать с ним не возможно.     
         | 
|||
| 
    67
    
        H A D G E H O G s    
     10.05.18 
            ✎
    16:00 
 | 
         
        (66) Я работаю с документом в 300 тыс. строк со всякими обработчиками и норм.     
         | 
|||
| 
    68
    
        LeoKeyn    
     10.05.18 
            ✎
    16:00 
 | 
         
        Вот Процедура
 
        #Область СлужебныйПрограммныйИнтерфейс Процедура ФоноваяПроверкаПоБазеТеррористов(СтруктураПараметров, АдресХранилища) Экспорт ДатаПроверки = СтруктураПараметров.ДатаПроверки; РеестрПроверки = СтруктураПараметров.РеестрПроверки; РеестрСовпадений = СтруктураПараметров.РеестрСовпадений; Организация = СтруктураПараметров.Организация; ПроверятьТолькоКлиентов = СтруктураПараметров.ПроверятьТолькоКлиентов; НеПроверятьСовпаденияАдресов = СтруктураПараметров.НеПроверятьСовпаденияАдресов; // Выборка юрфизлиц ЗапросЮрФизЛиц = Новый Запрос; ЗапросЮрФизЛиц.Параметры.Вставить("СрокДействия", ДатаПроверки); ЗапросЮрФизЛиц.Параметры.Вставить("ДатаОстатков", Новый Граница(КонецДня(ДатаПроверки), ВидГраницы.Включая)); ЗапросЮрФизЛиц.Параметры.Вставить("Организация", Организация); ЗапросЮрФизЛиц.Параметры.Вставить("Все", НЕ ПроверятьТолькоКлиентов); ЗапросЮрФизЛиц.Текст = "ВЫБРАТЬ | ФизическиеЛица.Наименование, | ФизическиеЛица.ДатаРождения, | ФизическиеЛица.Ссылка КАК ЮрФизЛицо, | ФизическиеЛица.ИНН, | ФизическиеЛица.ОГРН |ПОМЕСТИТЬ ЮрИФизЛица |ИЗ | Справочник.ФизическиеЛица КАК ФизическиеЛица |ГДЕ | НЕ ФизическиеЛица.ЭтоГруппа | И НЕ ФизическиеЛица.ПометкаУдаления | |ОБЪЕДИНИТЬ ВСЕ | |ВЫБРАТЬ | ЮридическиеЛица.Наименование, | ДАТАВРЕМЯ(1, 1, 1, 0, 0, 0), | ЮридическиеЛица.Ссылка, | ЮридическиеЛица.ИНН, | ЮридическиеЛица.ОГРН |ИЗ | Справочник.ЮридическиеЛица КАК ЮридическиеЛица |ГДЕ | НЕ ЮридическиеЛица.ПометкаУдаления | И НЕ ЮридическиеЛица.ЭтоГруппа |; | |//////////////////////////////////////////////////////////////////////////////// |ВЫБРАТЬ | КлиентыОрганизацииОстатки.Клиент.ЮрФизЛицо КАК КлиентЮрФизЛицо, | ИСТИНА КАК Клиент |ПОМЕСТИТЬ КлиентыОстатки |ИЗ | РегистрНакопления.КлиентыОрганизации.Остатки(&ДатаОстатков, Организация = &Организация) КАК КлиентыОрганизацииОстатки |ГДЕ | КлиентыОрганизацииОстатки.КоличествоОстаток = 1 | |ИНДЕКСИРОВАТЬ ПО | КлиентЮрФизЛицо |; | |//////////////////////////////////////////////////////////////////////////////// |ВЫБРАТЬ | ЮрИФизЛица.Наименование, | ЮрИФизЛица.ДатаРождения, | ЮрИФизЛица.ЮрФизЛицо КАК ЮрФизЛицо, | ЮрИФизЛица.ИНН, | ЮрИФизЛица.ОГРН, | ЕСТЬNULL(КлиентыОстатки.Клиент, ЛОЖЬ) КАК Клиент |ПОМЕСТИТЬ ЮрФизЛицаПредварительно |ИЗ | ЮрИФизЛица КАК ЮрИФизЛица | ЛЕВОЕ СОЕДИНЕНИЕ КлиентыОстатки КАК КлиентыОстатки | ПО ЮрИФизЛица.ЮрФизЛицо = КлиентыОстатки.КлиентЮрФизЛицо | |ИНДЕКСИРОВАТЬ ПО | ЮрФизЛицо |; | |//////////////////////////////////////////////////////////////////////////////// |ВЫБРАТЬ РАЗЛИЧНЫЕ | ДокументыФизическихЛицСрезПоследних.Физлицо, | ДокументыФизическихЛицСрезПоследних.Серия, | ДокументыФизическихЛицСрезПоследних.Номер |ПОМЕСТИТЬ ДокументыФизЛиц |ИЗ | РегистрСведений.ДокументыФизическихЛиц.СрезПоследних КАК ДокументыФизическихЛицСрезПоследних |ГДЕ | ДокументыФизическихЛицСрезПоследних.ЯвляетсяДокументомУдостоверяющимЛичность | И (ДокументыФизическихЛицСрезПоследних.СрокДействия >= &СрокДействия | ИЛИ ДокументыФизическихЛицСрезПоследних.СрокДействия = ДАТАВРЕМЯ(1, 1, 1, 0, 0, 0)) |; | |//////////////////////////////////////////////////////////////////////////////// |ВЫБРАТЬ | ПоручителиПоЗаймамСрезПоследних.Поручитель КАК Поручитель, | ПоручителиПоЗаймамСрезПоследних.Действует |ПОМЕСТИТЬ Поручители |ИЗ | РегистрСведений.ПоручителиПоЗаймам.СрезПоследних(&ДатаОстатков, ДоговорПоручительства.Организация = &Организация) КАК ПоручителиПоЗаймамСрезПоследних |ГДЕ | ПоручителиПоЗаймамСрезПоследних.Действует = ИСТИНА | |ИНДЕКСИРОВАТЬ ПО | Поручитель |; | |//////////////////////////////////////////////////////////////////////////////// |ВЫБРАТЬ | ЗалогодателиПоЗаймамСрезПоследних.Залогодатель КАК Залогодатель, | ЗалогодателиПоЗаймамСрезПоследних.Действует |ПОМЕСТИТЬ Залогодатели |ИЗ | РегистрСведений.ЗалогодателиПоЗаймам.СрезПоследних(&ДатаОстатков, ДоговорЗалога.Организация = &Организация) КАК ЗалогодателиПоЗаймамСрезПоследних |ГДЕ | ЗалогодателиПоЗаймамСрезПоследних.Действует = ИСТИНА | |ИНДЕКСИРОВАТЬ ПО | Залогодатель |; | |//////////////////////////////////////////////////////////////////////////////// |ВЫБРАТЬ РАЗЛИЧНЫЕ | ЮрФизЛицаПредварительно.Наименование КАК Наименование, | ЮрФизЛицаПредварительно.ДатаРождения, | ЮрФизЛицаПредварительно.ЮрФизЛицо, | ЕСТЬNULL(ДокументыФизЛиц.Серия, """""""") КАК Серия, | ЕСТЬNULL(ДокументыФизЛиц.Номер, """""""") КАК Номер, | ЮрФизЛицаПредварительно.ИНН, | ЮрФизЛицаПредварительно.ОГРН, | ВЫБОР | КОГДА Поручители.Действует = ИСТИНА | ТОГДА ИСТИНА | ИНАЧЕ ЛОЖЬ | КОНЕЦ КАК ФлагПоручитель, | ЮрФизЛицаПредварительно.Клиент КАК ФлагКлиент, | ВЫБОР | КОГДА Залогодатели.Действует = ИСТИНА | ТОГДА ИСТИНА | ИНАЧЕ ЛОЖЬ | КОНЕЦ КАК ФлагЗалогодатель |ИЗ | ЮрФизЛицаПредварительно КАК ЮрФизЛицаПредварительно | ЛЕВОЕ СОЕДИНЕНИЕ ДокументыФизЛиц КАК ДокументыФизЛиц | ПО ЮрФизЛицаПредварительно.ЮрФизЛицо = ДокументыФизЛиц.Физлицо | ЛЕВОЕ СОЕДИНЕНИЕ Поручители КАК Поручители | ПО ЮрФизЛицаПредварительно.ЮрФизЛицо = Поручители.Поручитель | ЛЕВОЕ СОЕДИНЕНИЕ Залогодатели КАК Залогодатели | ПО ЮрФизЛицаПредварительно.ЮрФизЛицо = Залогодатели.Залогодатель |ГДЕ | (ЮрФизЛицаПредварительно.Клиент | ИЛИ &Все) | |УПОРЯДОЧИТЬ ПО | Наименование"; Проверяемые = ЗапросЮрФизЛиц.Выполнить().Выгрузить(); // Выборка террористов Запрос = Новый Запрос; Запрос.Текст = "ВЫБРАТЬ | БазаТеррористов.ФИО, | БазаТеррористов.ДатаРождения, | БазаТеррористов.Паспорт, | БазаТеррористов.Адрес, | БазаТеррористов.МестоРождения |ИЗ | РегистрСведений.БазаТеррористов КАК БазаТеррористов"; Террористы = Запрос.Выполнить().Выгрузить(); // Подготовка поисковых запросов (паспорта) ЗапросПаспорта = Новый Запрос; ЗапросПаспорта.УстановитьПараметр("ВнешнийИсточник", Террористы); ЗапросПаспорта.МенеджерВременныхТаблиц = Новый МенеджерВременныхТаблиц; ЗапросПаспорта.Текст = "ВЫБРАТЬ | БазаТеррористов.ФИО, | БазаТеррористов.ДатаРождения, | БазаТеррористов.Паспорт КАК Паспорт |ПОМЕСТИТЬ ВременнаяТаблица |ИЗ | &ВнешнийИсточник КАК БазаТеррористов | |ИНДЕКСИРОВАТЬ ПО | Паспорт"; Результат = ЗапросПаспорта.Выполнить(); ЗапросПаспорта.Текст = "ВЫБРАТЬ | БазаТеррористов.ФИО, | БазаТеррористов.ДатаРождения, | БазаТеррористов.Паспорт |ИЗ | ВременнаяТаблица КАК БазаТеррористов |ГДЕ | БазаТеррористов.Паспорт ПОДОБНО &Паспорт"; // Подготовка поисковых запросов (адреса) ЗапросАдреса = Новый Запрос; ЗапросАдреса.УстановитьПараметр("ВнешнийИсточник", Террористы); ЗапросАдреса.МенеджерВременныхТаблиц = Новый МенеджерВременныхТаблиц; ЗапросАдреса.Текст = "ВЫБРАТЬ | БазаТеррористов.ФИО, | БазаТеррористов.ДатаРождения, | БазаТеррористов.Адрес КАК Адрес |ПОМЕСТИТЬ ВременнаяТаблица |ИЗ | &ВнешнийИсточник КАК БазаТеррористов | |ИНДЕКСИРОВАТЬ ПО | Адрес"; Результат = ЗапросАдреса.Выполнить(); ЗапросАдреса.Текст = "ВЫБРАТЬ | БазаТеррористов.ФИО, | БазаТеррористов.ДатаРождения, | БазаТеррористов.Адрес КАК Адрес |ИЗ | ВременнаяТаблица КАК БазаТеррористов |ГДЕ | БазаТеррористов.Адрес ПОДОБНО &Адрес"; // Подготовка контактной информации МассивОбъектов = Проверяемые.ВыгрузитьКолонку("ЮрФизЛицо"); ТипыКИ = Новый Массив; ТипыКИ.Добавить(Перечисления.ТипыКонтактнойИнформации.Адрес); Если НЕ НеПроверятьСовпаденияАдресов Тогда АдресаПроверяемых = УправлениеКонтактнойИнформацией.КонтактнаяИнформацияОбъектов(МассивОбъектов, ТипыКИ); Иначе АдресаПроверяемых = Неопределено; КонецЕсли; Для Каждого ТекЛицо Из Проверяемые Цикл Заметки = ""; // 1. Проверка на ФИО и ДатуРождения Поиск = Террористы.НайтиСтроки(Новый Структура("ФИО", ВРЕГ(СокрЛП(ТекЛицо.Наименование)))); Если Поиск.Количество() > 0 Тогда Если ТипЗнч(ТекЛицо.ЮрФизЛицо) = Тип("СправочникСсылка.ФизическиеЛица") Тогда Для Каждого ТекТеррорист Из Поиск Цикл Если ТекЛицо.ДатаРождения = ТекТеррорист.ДатаРождения И ЗначениеЗаполнено(ТекТеррорист.ДатаРождения) Тогда Заметки = Заметки + ?(Заметки <> "", ";" + Символы.ПС, "") + " совпадения по ФИО и дате рождения." ИначеЕсли НЕ ЗначениеЗаполнено(ТекТеррорист.ДатаРождения) Тогда Заметки = Заметки + ?(Заметки <> "", ";" + Символы.ПС, "") + " совпадения по ФИО с лицом в списке без даты рождения." //Иначе // Заметки = Заметки + ?(Заметки <> "", ";" + Символы.ПС, "") + " совпадения по ФИО с лицом в списке." КонецЕсли; КонецЦикла; Иначе Заметки = Заметки + ?(Заметки <> "", ";" + Символы.ПС, "") + " совпадения по наименованию." КонецЕсли; КонецЕсли; // 2. Проверка на совпадение паспорта Если ТипЗнч(ТекЛицо.ЮрФизЛицо) = Тип("СправочникСсылка.ФизическиеЛица") Тогда Серия = ТекЛицо.Серия; Номер = ТекЛицо.Номер; Если СтрДлина(Серия) > 0 И СтрДлина(Номер) > 0 Тогда СтрокаПоиска = "%" + Лев(Серия, 2) + Прав(Серия, 2) + "," + СокрЛП(Номер) + "%"; ЗапросПаспорта.Параметры.Вставить("Паспорт", СтрокаПоиска); Поиск = ЗапросПаспорта.Выполнить().Выгрузить(); Если Поиск.Количество() > 0 Тогда Заметки = Заметки + ?(Заметки <> "", ";" + Символы.ПС, "") + "совпадения по серии и номеру паспорта с (" + Поиск[0].ФИО + " / " + Поиск[0].Паспорт + ")"; КонецЕсли; КонецЕсли; КонецЕсли; Если НЕ НеПроверятьСовпаденияАдресов Тогда // 3. Проверка на совпадение адреса с адресом террориста АдресаПроверяемого = АдресаПроверяемых.Скопировать(Новый Структура("Объект", ТекЛицо.ЮрФизЛицо)); Для Каждого ТекАдрес Из АдресаПроверяемого Цикл Если НЕ ЗначениеЗаполнено(ТекАдрес.ЗначенияПолей) Тогда Продолжить; КонецЕсли; Попытка ЗначенияАдреса = УправлениеКонтактнойИнформацией.ПредыдущаяСтруктураКонтактнойИнформацииXML(ТекАдрес.ЗначенияПолей); Исключение // Адрес введен не корректно, не проверяем. Продолжить; КонецПопытки; Если ЗначенияАдреса.Город = "" И ЗначенияАдреса.НаселенныйПункт = "" И ЗначенияАдреса.Улица = "" Тогда // Адрес в произвольном формате и не раскладывается в шаблон поиска, или не заполнен Продолжить; КонецЕсли; СтрокаПоиска = ПолучитьСтрокуПоискаПоАдресу(ЗначенияАдреса); Если СтрокаПоиска = "%" Тогда // для произвольных адресов может быть пустой шаблон поиска Продолжить; КонецЕсли; ЗапросАдреса.УстановитьПараметр("Адрес", СтрокаПоиска); Поиск = ЗапросАдреса.Выполнить().Выгрузить(); Если Поиск.Количество() > 0 Тогда Заметки = Заметки + ?(Заметки <> "", ";" + Символы.ПС, "") + "совпадения по значащим частям адреса [" + ТекАдрес.Представление + "] (" + Поиск[0].ФИО + " / " + Поиск[0].Адрес + ")"; КонецЕсли; КонецЦикла; КонецЕсли; Если Заметки <> "" Тогда НС = РеестрСовпадений.Добавить(); НС.ЮрФизЛицо = ТекЛицо.ЮрФизЛицо; НС.Комментарий = Заметки; КонецЕсли; НС = РеестрПроверки.Добавить(); НС.ЮрФизЛицо = ТекЛицо.ЮрФизЛицо; НС.Клиент = ТекЛицо.ФлагКлиент; НС.Поручитель = ТекЛицо.ФлагПоручитель; НС.Залогодатель = ТекЛицо.ФлагЗалогодатель; Если ТекЛицо.ФлагКлиент = Ложь И ТекЛицо.ФлагПоручитель = Ложь И ТекЛицо.ФлагЗалогодатель = Ложь Тогда НС.Прочий = Истина; Иначе НС.Прочий = Ложь; КонецЕсли; НС.ВСписке = ?(Заметки <> "", Истина, Ложь); КонецЦикла; РезультатыПроверки = Новый Структура; РезультатыПроверки.Вставить("РеестрПроверки", РеестрПроверки); РезультатыПроверки.Вставить("РеестрСовпадений", РеестрСовпадений); СтруктураПараметров.АдресХранилищаРезультатовПроверки = ПоместитьВоВременноеХранилище(РезультатыПроверки, АдресХранилища); КонецПроцедуры #КонецОбласти  | 
|||
| 
    69
    
        Вафель    
     10.05.18 
            ✎
    16:00 
 | 
         
        (67) без отображения тч?     
         | 
|||
| 
    70
    
        H A D G E H O G s    
     10.05.18 
            ✎
    16:01 
 | 
         
        (69) С отображением ДинСписка :-)     
         | 
|||
| 
    71
    
        ProxyInspector    
     10.05.18 
            ✎
    16:01 
 | 
         
        Я думаю, что ТабличнаяЧасть.НайтиСтроки() выгружает всю табличную часть в dbf, а потом уже ищет в этом файле и так 100 000 раз :)     
         | 
|||
| 
    72
    
        Вафель    
     10.05.18 
            ✎
    16:03 
 | 
         
        (71) найти строки делает простой цикл. 
        Причем если бы было просто найти, то в среднем цикл был бы в 2 раза короче  | 
|||
| 
    73
    
        LeoKeyn    
     10.05.18 
            ✎
    16:06 
 | 
         
        (71) (72) Короче как и  тут понимаю, тут обход всех строк по одной, а внутри обхода еще и цикл по совпадению с базой ТР. Не очень актуально даже на мой взгляд похоже. Я может и ошибаюсь но можно ведь и искать совпадения с помощью запроса нет?     
         | 
|||
| 
    74
    
        xXeNoNx    
     10.05.18 
            ✎
    16:07 
 | 
         
        Запрос = Новый Запрос;
 
        Запрос.Текст = "ВЫБРАТЬ | БазаТеррористов.ФИО, | БазаТеррористов.ДатаРождения, | БазаТеррористов.Паспорт, | БазаТеррористов.Адрес, | БазаТеррористов.МестоРождения |ИЗ | РегистрСведений.БазаТеррористов КАК БазаТеррористов"; Террористы = Запрос.Выполнить().Выгрузить(); Используй сразу МВТ, зачем выгружаешь и снова загружаешь?  | 
|||
| 
    75
    
        Вафель    
     10.05.18 
            ✎
    16:08 
 | 
         
        твой единственный вариант ускорения - параллельные потоки     
         | 
|||
| 
    76
    
        ProxyInspector    
     10.05.18 
            ✎
    16:12 
 | 
         
        Мы здесь пару лет назад обсуждали проблему нечеткого поиска по базе. Когда надо искать Типа Иванов,Иуанов,Иганов и так далее. Там добивались ускорения раз в 100 за счет запросов     
         | 
|||
| 
    77
    
        ProxyInspector    
     10.05.18 
            ✎
    16:17 
 | 
         
        Нашел веточку https://www.forum.mista.ru/topic.php?id=758311&page=2     
         | 
|||
| 
    78
    
        unregistered    
     10.05.18 
            ✎
    16:21 
 | 
         
        (23) > оборудование тут ни при чем
 
        Скорее всего так, но случаи бывают разные. Может на том компе, где 4 часа заполняется документ, какие-то проблемы со стабильностью работы сети. Сами данные формируются на серваке за те же самые 20-30 минут, а потом 3,5 часа пытаются добраться до клиента. На меньших объемах (на маленьких документах и справочниках) этого не заметишь, а тут вот проявляется. Такое можно наблюдать при работе тонких клиентов в Wi-Fi сети, где сеть отличается нестабильностью (скачущая нагрузка, помехи и пр.). Проверить сеть можно простой командой ping с указанием большой величины пакета. Параметр -l 65500. Выполнить на проблемном компьютере команду ping -l 65500 SERVER1C где SERVER1C - имя или IP-адрес сервака 1С. Если результат покажет значительное количество потерянных пакетов или слишком длительное время ожидания, то проблема в сети (кабель ножкой стула придавили, карточка сетевая умирает). Если  | 
|||
| 
    79
    
        unregistered    
     10.05.18 
            ✎
    16:25 
 | 
         
        Господа.
 
        Обсуждение алгоритма заполнения соврешенно бессмысленно так как не отвечает на главный вопрос ветки - чем объясняется 12-кратная РАЗНИЦА в скорости заполнения документа на разных компах. Пусть ваш алгоритм хоть 100 раз идеально вылизан и оптимизирован - как это решит проблему с разницей? Разве что позволит не обращать на неё внимание - типа на "быстром" компьютере документ вместо 20-30 минут будет заполняться за 2-3 минуты, а на "медленном" при этом - 24-36 вместо 4-х часов.  | 
|||
| 
    80
    
        ProxyInspector    
     10.05.18 
            ✎
    16:25 
 | 
         
        У (0) все делается на сервере, поэтому надо оптимизировать алгоритм     
         | 
|||
| 
    81
    
        ProxyInspector    
     10.05.18 
            ✎
    16:26 
 | 
         
        (79) При таком раскладе надо смотреть диск и сеть     
         | 
|||
| 
    82
    
        ProxyInspector    
     10.05.18 
            ✎
    16:26 
 | 
         
        Либо (0) что то не договаривает.
 
        Надо запустить замер скорости и все станет ясно  | 
|||
| 
    83
    
        Dmitry1c    
     10.05.18 
            ✎
    16:27 
 | 
         
        (82) он проверяет базу террористов.
 
        что он может не договаривать?  | 
|||
| 
    84
    
        LeoKeyn    
     10.05.18 
            ✎
    16:29 
 | 
         
        (79) Ну я тоже кроме как на сеть грешить больше ни на что не могу. Решил вот посоветоваться на всякий случай     
         | 
|||
| 
    85
    
        unregistered    
     10.05.18 
            ✎
    16:36 
 | 
         
        (84) > кроме как на сеть грешить больше ни на что не могу
 
        Для этого и нужен замер производительности. Может после заполнения данных на сервере у вас выполняется какой-то код на клиенте. Какое-нибудь перечитывание формы с перезаполнением элементов формы. И тут выплывает какая-нибудь особенность - отличие "быстрого" компа от "медленного". Сеть проверьте командой Ping с параметром, как я описал в (78).  | 
|||
| 
    86
    
        LeoKeyn    
     10.05.18 
            ✎
    16:39 
 | 
         
        (85) обязательно проверю, как получу доступ к компьютеру, спасибо. Отпишусь о результатах)     
         | 
|||
| 
    87
    
        DrShad    
     10.05.18 
            ✎
    16:40 
 | 
         
        к гадалке не ходи, что кроме сбора данных заполнения еще и форма перерисовывается     
         | 
|||
| 
    88
    
        mistеr    
     10.05.18 
            ✎
    17:00 
 | 
         
        (68) Трэш какой. Гоняют таблицы туда-сюда и в итоге все равно вручную делают то, что должен делать скуль.     
         | 
|||
| 
    89
    
        mistеr    
     10.05.18 
            ✎
    17:01 
 | 
         
        А никого не смутило (14) "проверка то это идет через некий портал"? Возможно, ТС все-таки не договаривает.     
         | 
|||
| 
    90
    
        unregistered    
     10.05.18 
            ✎
    17:16 
 | 
         
        (89) > Возможно, ТС все-таки не договаривает.
 
        Конечно возможно. Но как это проверить? ;) Мест, где он может не договаривать полно. И "проверка через некий портал" - только лишь одно из многих.  | 
|||
| 
    91
    
        alxxsssar    
     10.05.18 
            ✎
    17:46 
 | 
         
        (42) не получится. это загрузка из внешнего файла который присылают Органы     
         | 
|||
| 
    92
    
        alxxsssar    
     10.05.18 
            ✎
    17:48 
 | 
         
        (0) а конфигурации компьютеров одинаковые?     
         | 
|||
| 
    93
    
        Fram    
     10.05.18 
            ✎
    18:32 
 | 
         
        (91) мне кажется, ты не совсем правильно понял что имелось ввиду под "физически сократить"     
         | 
 | Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |