| 
    
            
         
         | 
    
  | 
v7: Как ограничить кол-во элементов в транзакции в обмене через УниверсальныйОбменДаннымиXML? | ☑ | ||
|---|---|---|---|---|
| 
    0
    
        DenYuliya    
     28.11.17 
            ✎
    10:47 
 | 
         
        Валится с ошибкой "Недостаточно памяти", все советуют "Выгружай по частям", а я что-то не могу понять, где это настраивается, и настраивается ли вообще, или  надо обработину править?
 
        Где в выгрузки из УТ 10 в УТ 11 - знаю, там прямо галочка есть, "выгружать в транзакциях". Гружу с ТиС в УТ 11, через УниверсальныйОбменДаннымиXML, правила типовые для обмена ТиС - УТ 11, но дописанные.  | 
|||
| 
    1
    
        1Сергей    
     28.11.17 
            ✎
    10:50 
 | 
         
        так, валится при выгрузке?     
         | 
|||
| 
    2
    
        DenYuliya    
     28.11.17 
            ✎
    10:52 
 | 
         
        Да     
         | 
|||
| 
    3
    
        DenYuliya    
     28.11.17 
            ✎
    10:53 
 | 
         
        Ошибка вроде 1000 раз обсуждалась, но нигде не смогла найти описания, как эту выгрузку по частям делать. Хотя все о ней говорят, видимо это такая элементарщина, что подразумевается, что все о ней знают))     
         | 
|||
| 
    4
    
        1Сергей    
     28.11.17 
            ✎
    10:53 
 | 
         
        нет клюшек под рукой. А разве в УниверсальныйОбменДаннымиXML нельзя выбрать период?     
         | 
|||
| 
    5
    
        DenYuliya    
     28.11.17 
            ✎
    10:54 
 | 
         
        Просто выгружать по-очереди разные справочники, а не все галки разом - пробовала. Та же ерунда, пользователи выгружаются, а вот "Контрагенты" и "Сторонние юрлица"- валится с ошибкой, там 16 000 тысяч элементов, не считая связанных.     
         | 
|||
| 
    6
    
        DenYuliya    
     28.11.17 
            ✎
    10:55 
 | 
         
        (4) можно, но что это даст? Я не доки гружу, а справочник.
 
        Пробовала установить период с начала тек.года - та же фигня. Сервер стоит 64 бит, физ. память есть. Но это мало влияет, я так понимаю.  | 
|||
| 
    7
    
        Ёпрст    
     гуру 
    28.11.17 
            ✎
    10:56 
 | 
         
        (0) валится то где хоть ? на этапе выгрузки ?     
         | 
|||
| 
    8
    
        Ёпрст    
     гуру 
    28.11.17 
            ✎
    10:58 
 | 
         
        если да, то переписать поделку выгрузки и не использовать v7plus.dll и её объекты для xml     
         | 
|||
| 
    9
    
        DenYuliya    
     28.11.17 
            ✎
    10:58 
 | 
         
        (7) да, почти сразу.     
         | 
|||
| 
    10
    
        DenYuliya    
     28.11.17 
            ✎
    10:58 
 | 
         
        (8) "поделку выгрузки"? Это очипятка, или я не знаю, что это такое?     
         | 
|||
| 
    11
    
        DenYuliya    
     28.11.17 
            ✎
    10:59 
 | 
         
        (0), ах да - галка "Не запоминать выгруженные объекты" - у всех ПКО стоит.     
         | 
|||
| 
    12
    
        Ёпрст    
     гуру 
    28.11.17 
            ✎
    11:01 
 | 
         
        (10) типовая поделка универсальной выгрузки из клюшек, написана, если не изменяет память на объектах v7plus.dll.
 
        Нужно переписать её на другую объектную модель, как в снеговике. и усё.  | 
|||
| 
    13
    
        Ёпрст    
     гуру 
    28.11.17 
            ✎
    11:02 
 | 
         
        например, на MSXML     
         | 
|||
| 
    14
    
        DenYuliya    
     28.11.17 
            ✎
    11:06 
 | 
         
        ))))) "клюшки" - это 1С 77, снеговик - 1С 8)))? Умеете вы настроение поднимать, не слышала такого)).
 
        Советы из серии "увеличить адресную память", "снять ограничение размера файла подкачки" результата не дали((. https://helpf.pro/help/view/153.htm И все же о каких фильтрах речь? "или выгружать данные по частям, ограничивая фильтрами"... (в данном примере ответ № 2, но данные совет встречается часто). Это о галках на выгружаемые объекты и на дату, или есть еще какие-то штатные способы, о которых я не в курсе? Насчет (12) - попробую, если ничего другого не получится, но страшно подумать, сколько это времени займет.  | 
|||
| 
    15
    
        DenYuliya    
     28.11.17 
            ✎
    11:19 
 | 
         
        http://programmist1s.ru/nedostatochno-pamyati-1c/ вот еще та же история насчет адресной памяти. Правда тут речь о  1С 8, но принцип думаю тот же.
 
        Сделала - не помогло.  | 
|||
| 
    16
    
        Ёпрст    
     гуру 
    28.11.17 
            ✎
    11:22 
 | 
         
        (14) ограничить можешь, делав в пвд свои выборки данных.
 
        Например, ограничив количеством выгружаемых объектов.  | 
|||
| 
    17
    
        DenYuliya    
     28.11.17 
            ✎
    11:27 
 | 
         
        (16) оо, спасибо огромное, думаю это как раз то, что надо! А можно пример, где посмотреть, "что писать", или ссыль какую-нибудь? Какими командами жто самое "Количество элементов в транзакции" задать-то?     
         | 
|||
| 
    18
    
        Ёпрст    
     гуру 
    28.11.17 
            ✎
    11:39 
 | 
         
        (17) для выгрузки, транзакция не нужна и лишняя.     
         | 
|||
| 
    19
    
        Ёпрст    
     гуру 
    28.11.17 
            ✎
    11:40 
 | 
         
        ну и в выгрузке её вообще нет :)     
         | 
|||
| 
    20
    
        Franchiser    
     28.11.17 
            ✎
    11:43 
 | 
         
        (0) можно патч поставить на 4 Гб в 7ку, тогда скорее всего выгрузит     
         | 
|||
| 
    21
    
        Franchiser    
     28.11.17 
            ✎
    11:44 
 | 
         
        (13) есть что то готовое, уже кто то переписывал?     
         | 
|||
| 
    22
    
        DenYuliya    
     28.11.17 
            ✎
    11:45 
 | 
         
        (20) что это, где это))?     
         | 
|||
| 
    23
    
        DenYuliya    
     28.11.17 
            ✎
    11:47 
 | 
         
        (19) ну это я образно, "транзакция".
 
        Имела в виду, какими "командами" ограничить в ПВД кол-во выгружаемых объектов, как это вообще делается? Наверняка этот велосипед уже до меня много раз был изобретен.  | 
|||
| 
    24
    
        DenYuliya    
     28.11.17 
            ✎
    11:47 
 | 
         
        (21) меня терзают подозрения, что это такой гемор...В ПВД разобраться явно быстрее.     
         | 
|||
| 
    25
    
        Ёпрст    
     гуру 
    28.11.17 
            ✎
    11:50 
 | 
         
        (23) тупо считаешь количество элементов в справочнике и выгружаешь частями по номеру части, переданного в параметрах. Подойдёт при разовой выгрузке.     
         | 
|||
| 
    26
    
        Franchiser    
     28.11.17 
            ✎
    15:24 
 | 
         
        (22) есть приложение которое может пропатчить exe (в частности 1с7.7) и после этого будет выделяться памяти больше 2 Гб. Когда переходил на 8ку мне это очень помогло. Если найду могу скинуть на почту     
         | 
|||
| 
    27
    
        DenYuliya    
     28.11.17 
            ✎
    19:26 
 | 
         
        (26) была бы очень благодарна! 
 
        мелкие справочники выгружаются норм, а начиная с физлиц - вываливается.  | 
|||
| 
    28
    
        DenYuliya    
     28.11.17 
            ✎
    19:41 
 | 
         
        Я просто не понимаю, где реализовывать эту "выгрузку партиями". Попробовала  разобраться в семерочном коде обработки "Универсальная выгрузка данных XML"- мда...
 
        А переписывать, как в 13 - "это вообще что такое"))? Тут еще одна непонятка...вот выгружу я, допустим, "мелкие" справочники (отдельно пользователи, физлица, ФИО физлиц и т.д) - а загружать их как, так же частями? Мне кажется это некорректно может загрузиться.  | 
|||
| 
    29
    
        DenYuliya    
     28.11.17 
            ✎
    20:44 
 | 
         
        Хотела попробовать чит и не выгружать ненужные, пометив их на удаление. 
 
        В ПВД в "ПередВыгрузкой" написала: Если Объект.ПометкаУдаления = 1 Тогда Отказ = 1; КонецЕсли; А они все равно выгружаются,но с пометкой.  | 
|||
| 
    30
    
        DenYuliya    
     28.11.17 
            ✎
    22:43 
 | 
         
        (25) это в запросе в ПВД делать надо? Как и прочие фильтры?     
         | 
|||
| 
    31
    
        Franchiser    
     29.11.17 
            ✎
    00:20 
 | 
         
        (28) в 13 предлагается исключить из обработки выгрузки все методы компоненты v7plus,  и использовать другой объект. Я начинал переписывать на ns xmldom, но во что-то упёрся не помню. Dom модель все равно есть оперативную память, и т.к. инициализация идёт из процесса 1с 7.7 возникают те же самые ограничения на 2 Гб. Как сделать без dom модели я не разобрался.     
         | 
|||
| 
    32
    
        Franchiser    
     29.11.17 
            ✎
    00:23 
 | 
         
        (28) я выгружал по диапазонам букв с а до д  и т.д. загружаешь, весь выгруженный файл. Потом как нашел патч от этого отказался     
         | 
|||
| 
    33
    
        Franchiser    
     29.11.17 
            ✎
    00:33 
 | 
         
        (27) попробуй это 
        http://www.ntcore.com/4gb_patch.php  | 
|||
| 
    34
    
        Franchiser    
     29.11.17 
            ✎
    00:36 
 | 
         
        (27) естественно запускать потом 7ку нужно на Винде x64, чтобы получить дополнительные гб     
         | 
|||
| 
    35
    
        Йохохо    
     29.11.17 
            ✎
    00:51 
 | 
         
        (28) "красиво" будет найти верхнее, покрывающее ПВД, которое по ссылкам выгрузит всё
 
        (30) как умеешь так и делаешь, вынеси параметр пользовательский и выгружай с НомерВыгрузки +1 по +1000 ВыборкаДанных - Запрос, Результат запроса, Выборка из результата запроса или произвольная коллекция выгружаемых объектов. Используется, когда способ выгрузки данных - Произвольный алгоритм. Если определить данную переменную, то обход коллекции и выгрузка объектов будет осуществляться автоматически. Сюда любую клооекцию  | 
|||
| 
    36
    
        DenYuliya    
     29.11.17 
            ✎
    09:18 
 | 
         
        (33) спасибо! Буду пробовать! А редми к этой чудо-програмулине нет случайно нигде? А то на сайте описание ну очень подробное...     
         | 
|||
| 
    37
    
        DenYuliya    
     29.11.17 
            ✎
    09:55 
 | 
         
        (36) нашла exe-файл 1С 77, выбрала его, запустила из патча, потом нажала ок, перезагрузила систему.
 
        Все правильно? А то что-то результата нет.  | 
|||
| 
    38
    
        бомболюк    
     29.11.17 
            ✎
    10:03 
 | 
         
        маловероятно что памяти не хватает из-за объемом выгрузки, к тому же, как утверждает ТС, в самом ее начале. Скорее всего алгоритм зацикливается где то, и при этом еще и память утекает.     
         | 
|||
| 
    39
    
        DenYuliya    
     29.11.17 
            ✎
    10:32 
 | 
         
        (38) почему маловероятно? В демо-базе, где всего с десяток контрагентов, все выгружается и загружается в демо 8.3.
 
        Из рабочей базы при этом выгрузка падает с ошибкой даже при попытке выгрузить абсолютно типовой обработкой с абсолютно типовыми правилами из комплекта поставки.  | 
|||
| 
    40
    
        DenYuliya    
     29.11.17 
            ✎
    10:33 
 | 
         
        (38) в продолжение... Ну как в самом начале. Выгружаются около 10 000 объектов, а потом отваливается. Естественно (естественно же?) в результате файл с данными пустой.     
         | 
|||
| 
    41
    
        Йохохо    
     29.11.17 
            ✎
    10:43 
 | 
         
        (40) что то помнится, что сначала пишется в память в буфер, а потом на диск. Потребление памяти видно в диспетчере
 
        Придется осваивать произвольный алгоритм  | 
|||
| 
    42
    
        DenYuliya    
     29.11.17 
            ✎
    10:49 
 | 
         
        (41)Какой вывод я должна была сделать из 1 части? Ну да, потребление памяти видно в диспетчере. 
 
        Думаете, патч до 4 гб не поможет? Произвольный алгоритм - речь об отборе в ПВД с типом "произвольный"? А то я сразу про вкладку "алгоритмы" думаю.  | 
|||
| 
    43
    
        бомболюк    
     29.11.17 
            ✎
    11:18 
 | 
         
        если есть утечка, описанная в (38), то нарастание размера выделенной памяти происходит не то что неравномерно, а лавинообразно, имеет смысл проконтролировать.     
         | 
|||
| 
    44
    
        DenYuliya    
     29.11.17 
            ✎
    11:44 
 | 
         
        (43) а как же (39)?
 
        В случае, если бы имела место ошибка правил, то по типовым все выгружалось бы норм, и из демо-базы так же не выгружалось бы, разве нет?  | 
|||
| 
    45
    
        бомболюк    
     29.11.17 
            ✎
    13:58 
 | 
         
        (44) зависит от данных. в демо выгрузку может не попасть какой нить проблемный элемент     
         | 
|||
| 
    46
    
        Йохохо    
     29.11.17 
            ✎
    14:09 
 | 
         
        (42) не знаю поможет или нет, можно рекомендовать взять процессэксплорер и посмотреть потребление, помнится там будет дочерний процесс чтото мсхмлблабла и когда он будет 900мБ все упадет, сама 7.7 при выгрузке не жрет ничего. А можно рекомендовать наконец разобраться с произвольным алгоритмом ПВД, умение делать тестовые выгрузки сэкономило бы уже месяц кмк.
 
        Все галки сняли с пвд, поставили на УчПолитику выгрузили файл1, сняли, поставили Номенклатура, выгрузили файл2, сняли, поставили Контрагенты, в параметрах НомерВыгрузки 1 ШагКонтрагентов 1000, выгрузили файл3, поставили НомерВыгрузки 2,,, профит  | 
|||
| 
    47
    
        DenYuliya    
     29.11.17 
            ✎
    15:05 
 | 
         
        (44) ну если только так...
 
        написала в ПВД для Контрагентов СсылкаНаГруппу1 = Справочники.Контрагенты.НайтиПоКоду("00000001"); Если Объект.ПринадлежитЭлементу(СсылкаНаГруппу1) = 0 Тогда Отказ = 1; КонецЕсли; Ошибки валятся((. Чертов код 77. почему Справочники.Контрагенты.НайтиПоКоду("00000001"); не работает-то?((  | 
|||
| 
    48
    
        DenYuliya    
     29.11.17 
            ✎
    15:07 
 | 
         
        (42) давал бы мне еще кто поучиться толком...я сроду конвертации сложнее автоматических не юзала. Так-то согласна, что надо.     
         | 
|||
| 
    49
    
        бомболюк    
     29.11.17 
            ✎
    15:16 
 | 
         
        (48) у тя вроде выгрузка то из 7ки идет, а почему код 8шный тогда?     
         | 
|||
| 
    50
    
        DenYuliya    
     29.11.17 
            ✎
    15:19 
 | 
         
        (49) если честно, потому что на автомате пишу, как знаю, а оно не работает, собака :).
 
        Семерку тоже в глаза раньше не видела. Нагуглила вроде бы, как искать по коду в 7.7: СпрКонтр = СоздатьОбъект("Справочник.Контрагенты"); СпрСотр.НайтиПоКоду(00000001);  | 
|||
| 
    51
    
        DenYuliya    
     29.11.17 
            ✎
    15:19 
 | 
         
        *вторая строка СпрКонтр, конечно     
         | 
|||
| 
    52
    
        Franchiser    
     29.11.17 
            ✎
    15:30 
 | 
         
        (37) да, все верно. Если через диспетчер процессов объем памяти процеса 1с 7.8 перевалил за 3 гб, то патч работает. Процесс может дойти до 3,6 -3,7.     
         | 
|||
| 
    53
    
        DenYuliya    
     29.11.17 
            ✎
    15:34 
 | 
         
        (52) нашла такое в инете http://www.toolgir.ru/ispolzovanie-bolee-2gb-dlya-32-bit-prilozheniya/ :"Имейте в виде, что у программы нет обратного действия, поэтому в папке с изменяемым файлом она сохраняет его резервную копию с расширением .Backup."
 
        У меня такой файл не создался почему-то((.  | 
|||
| 
    54
    
        DenYuliya    
     29.11.17 
            ✎
    15:35 
 | 
         
        (49) а ПринадлежитЭлементу()  в 7.7 тоже не работает, похоже? Не могу найти инфу про эту функцию в 7.7.     
         | 
|||
| 
    55
    
        бомболюк    
     29.11.17 
            ✎
    15:38 
 | 
         
        ПринадлежитГруппе(<?>)
 
        BelongsToGroup(<?>) Синтаксис: ПринадлежитГруппе(<Группа>) Назначение: Метод проверяет, принадлежит ли указанной группе текущий элемент справочника (независимо от того, на каком нижележащем уровне он находится). Возвращает: 1 - если элемент принадлежит указанной группе , 0 - если нет. Параметры: <Группа> - выражение со значением группы справочника .  | 
|||
| 
    56
    
        DenYuliya    
     29.11.17 
            ✎
    15:44 
 | 
         
        (55) нашла уже, спасибо.
 
        СпрКонтр = СоздатьОбъект("Справочник.Контрагенты"); РезультатПоискаПоКоду = СпрКонтр.НайтиПоКоду(00000001); Если Объект.ПринадлежитГруппе(РезультатПоискаПоКоду) = 0 Тогда Отказ = 1; КонецЕсли; Как-то так, сейчас проверю, будет ли работать  | 
|||
| 
    57
    
        бомболюк    
     29.11.17 
            ✎
    15:45 
 | 
         
        не будет     
         | 
|||
| 
    58
    
        DenYuliya    
     29.11.17 
            ✎
    15:47 
 | 
         
        потому что СоздатьОбъект не сработает?     
         | 
|||
| 
    59
    
        бомболюк    
     29.11.17 
            ✎
    15:47 
 | 
         
        потмоу что РезультатПоискаПоКоду = 0 или 1     
         | 
|||
| 
    60
    
        Franchiser    
     29.11.17 
            ✎
    15:48 
 | 
         
        (53) не знаю, попробуй ещё раз     
         | 
|||
| 
    61
    
        бомболюк    
     29.11.17 
            ✎
    15:48 
 | 
         
        еще чуть чуть и ты узнаешь что такое ТекущийЭлемент ;-)     
         | 
|||
| 
    62
    
        DenYuliya    
     29.11.17 
            ✎
    15:56 
 | 
         
        (61) Так?
 
        СпрКонтр = СоздатьОбъект("Справочник.Контрагенты"); ТекКонтр = СпрКонтр.ТекущийЭлемент(); РезультатПоискаПоКоду = ТекКнтр.НайтиПоКоду(00000001); Если Не Объект.ПринадлежитГруппе(РезультатПоискаПоКоду) Тогда Отказ = 1; КонецЕсли;  | 
|||
| 
    63
    
        Ёпрст    
     гуру 
    29.11.17 
            ✎
    16:11 
 | 
         
        (62) нет     
         | 
|||
| 
    64
    
        DenYuliya    
     29.11.17 
            ✎
    16:14 
 | 
         
        Поняла уже((.     
         | 
|||
| 
    65
    
        Ёпрст    
     гуру 
    29.11.17 
            ✎
    16:15 
 | 
         
        так, хотя бы
 
        Спр = СоздатьОбъект("Справочник.Контрагенты"); Если Спр.НайтиПоКоду("00000001")=1 Тогда Отказ = 1-Объект.ПринадлежитГруппе(Спр.ТекущийЭлемент()); КонецЕсли;  | 
|||
| 
    66
    
        Ёпрст    
     гуру 
    29.11.17 
            ✎
    16:16 
 | 
         
        ну и еще нужна проверка, что найденный справочник по коду - это группа     
         | 
|||
| 
    67
    
        Ёпрст    
     гуру 
    29.11.17 
            ✎
    16:17 
 | 
         
        и проще, ничего не искать по-коду, а передавать параметром ссылку на группу. Усё     
         | 
|||
| 
    68
    
        DenYuliya    
     29.11.17 
            ✎
    16:22 
 | 
         
        (66) Спр = СоздатьОбъект("Справочник.Контрагенты");
 
        Если Спр.НайтиПоКоду("00000001")=1 И Спр.ЭтоГруппа() = 1 Тогда Отказ = 1-Объект.ПринадлежитГруппе(Спр.ТекущийЭлемент()); КонецЕсли; Про ТекЭлемент - поняла, логично. Ищу по коду я в общем списке значений, а потом с ТекЭлементом работаю.  | 
|||
| 
    69
    
        Ёпрст    
     гуру 
    29.11.17 
            ✎
    16:24 
 | 
         
        (68) скобок не хватает в условии     
         | 
|||
| 
    70
    
        DenYuliya    
     29.11.17 
            ✎
    16:25 
 | 
         
        (67) согласна, примерно так и хотела -сначала понять, что такой метод вообще работает, а потом разбираться, как это в параметр запихнуть.
 
        Единственное, я думала в качестве параметра сделать "Код" или "Наименование", и поставить галку "Редактируется в списке", или как-то так. Почему лучше ссылка, точнее и без проверки на ЭтоГруппа()?  | 
|||
| 
    71
    
        DenYuliya    
     29.11.17 
            ✎
    16:26 
 | 
         
        (69) Если (Спр.НайтиПоКоду("00000001")=1) И (Спр.ЭтоГруппа() = 1) Тогда
 
        Отказ = 1; КонецЕсли; Неужели эти скобки так важны? Вроде бы в 8.2 и без них отрабатывает.  | 
|||
| 
    72
    
        Ёпрст    
     гуру 
    29.11.17 
            ✎
    16:37 
 | 
         
        (70) Потому, что ссылка однозначно определяет элемент, а код - может быть 
 
        а)не уникален б)отсутствовать г)изменён д)принадлежать элементу а не группе  | 
|||
| 
    73
    
        DenYuliya    
     29.11.17 
            ✎
    16:41 
 | 
         
        мТаблицаПравилВыгрузки.УстановитьЗначение(мТаблицаПравилВыгрузки.ТекущаяСтрока(), Имя, Значение);
 
        {C:\USERS\Users\DESKTOP\ОБМЕН ТИС - КА\ПРАВИЛА\77.ERT(50063)}: Неверный идентификатор колонки! Я же правильно делаю? В обработчике ПВД стандартного "ПередВыгрузкой". Суть сообщения примерно понимаю, но о какой колонке речь - не понятно...  | 
|||
| 
    74
    
        DenYuliya    
     29.11.17 
            ✎
    16:49 
 | 
         
        Отказ =
 
        1 - Объект.ПринадлежитГруппе(СпрКонтр.ТекущийЭлемент()); Может дело в этом самом "1 - "? Никаких колонок я не добавляла (явно во всяком случае), ТЗ не создавала...  | 
|||
| 
    75
    
        Ёпрст    
     гуру 
    29.11.17 
            ✎
    16:51 
 | 
         
        (74) нет     
         | 
|||
| 
    76
    
        DenYuliya    
     29.11.17 
            ✎
    17:04 
 | 
         
        //Если Объект.ЭтоГруппа() = 1 Тогда
 
        // Отказ = 1; //КонецЕсли; СпрКонтр = СоздатьОбъект("Справочник.Контрагенты"); Если (СпрКонтр.НайтиПоКоду("00000001")=1) И (СпрКонтр.ЭтоГруппа() = 0) Тогда Отказ = 1 - Объект.ПринадлежитГруппе(СпрКонтр.ТекущийЭлемент()); КонецЕсли; //Отказ = Объект.ПометкаУдаления(); Если Объект.ПометкаУдаления() = 1 Тогда Отказ = 1; КонецЕсли; Все, что сделала - это закоментировала 1 условие, и добавила второе. И все, куча ошибок валится(((. Это ПВД, "ПередВыгрузкой"  | 
|||
| 
    77
    
        Ёпрст    
     гуру 
    29.11.17 
            ✎
    17:07 
 | 
         
        (76)
 
        И (СпрКонтр.ЭтоГруппа() = 1)  | 
|||
| 
    78
    
        DenYuliya    
     29.11.17 
            ✎
    17:10 
 | 
         
        Да, это у меня нормально стоит, я поправила уже.
 
        Все равно с ошибкой валится.  | 
|||
| 
    79
    
        DenYuliya    
     29.11.17 
            ✎
    17:11 
 | 
         
        Вот так на самом деле:
 
        //Если Объект.ЭтоГруппа() = 1 Тогда // Отказ = 1; //КонецЕсли; СпрКонтр = СоздатьОбъект("Справочник.Контрагенты"); Если (СпрКонтр.НайтиПоКоду("00000001")=1) И (СпрКонтр.ЭтоГруппа() = 1) Тогда Отказ = 1 - Объект.ПринадлежитГруппе(СпрКонтр.ТекущийЭлемент()); КонецЕсли; Если Объект.ПометкаУдаления() = 1 Тогда Отказ = 1; КонецЕсли;  | 
|||
| 
    80
    
        Ёпрст    
     гуру 
    29.11.17 
            ✎
    17:14 
 | 
         
        (79) если весь код оттуда выкидываешь, ошибка остаётся?
 
        так ? :)  | 
|||
| 
    81
    
        DenYuliya    
     29.11.17 
            ✎
    17:15 
 | 
         
        Весь добавленный? Сейчас попробую.     
         | 
|||
| 
    82
    
        DenYuliya    
     29.11.17 
            ✎
    17:21 
 | 
         
        (80) да...код закоментила - ошибка осталась. а в чем прикод *где тут смайл с квадратными глазами*?     
         | 
|||
| 
    83
    
        DenYuliya    
     29.11.17 
            ✎
    17:23 
 | 
         
        *прикол
 
        Есть у меня одно подозрение.Сейчас проверю.  | 
|||
| 
    84
    
        DenYuliya    
     29.11.17 
            ✎
    17:49 
 | 
         
        (79) ну...эта ошибка ушла. Видимо дело было в следующем: я запускала обработку "Групповое создание свойств и значений", по одному из советов "для оптимизации выгрузки" на каком-то из ресурсов.
 
        Видимо что-то лишнее создалось. Зато появилась другая, уже при загрузке ((: Ошибка при загрузке данных: {ВнешняяОбработка.УниверсальныйОбменДаннымиXML.МодульОбъекта(1008)}: Ошибка при вызове метода контекста (Прочитать): Ошибка разбора XML: - [3058,59184] Фатальная ошибка: PCDATA invalid Char value 2 SystemId: file://C:/Users/USR1CV8.S1C.000/AppData/Local/Temp/v8_5D2F_1780.xml Данные все-таки перенеслись, но не те)))Перенеслись только группы без элементов в них, в том числе группа по коду 00000001  | 
|||
| 
    85
    
        Franchiser    
     29.11.17 
            ✎
    17:55 
 | 
         
        (84) есть какой-то непечатываемый символ, который в XML нельзя помещать. Нужно его найти)     
         | 
|||
| 
    86
    
        Franchiser    
     29.11.17 
            ✎
    18:04 
 | 
         
        найди в файле символ ALT + 2 (цифра набирается на цифровой клавиатуре), должен получится символ черный смайлик.     
         | 
|||
| 
    87
    
        DenYuliya    
     29.11.17 
            ✎
    18:11 
 | 
         
        И что мне с ним сделать? 
 
        Открыла файл правил в txt, вызвала смайлик... но вызывается где угодно, куда мышь наведешь.  | 
|||
| 
    88
    
        Franchiser    
     29.11.17 
            ✎
    18:14 
 | 
         
        (87) зачем файл правил? нужно найти его в файле выгрузки и определить причину возникновения, скорее всего данные в 7-ке править нужно.     
         | 
|||
| 
    89
    
        Franchiser    
     29.11.17 
            ✎
    18:15 
 | 
         
        (87) ты хочешь сказать у тебя весь файл правил в смайликах?     
         | 
|||
| 
    90
    
        DenYuliya    
     29.11.17 
            ✎
    18:26 
 | 
         
        Нет, я ставлю мышь в первую строку, нажимаю  ALT + 2, на этом месте высвечивается смайлик. В файле с данными то же самое.     
         | 
|||
| 
    91
    
        DenYuliya    
     29.11.17 
            ✎
    18:35 
 | 
         
        (88) загрузила правилами, которые пару дней назад без проблем работали - та же ошибка. Странно...     
         | 
|||
| 
    92
    
        Franchiser    
     29.11.17 
            ✎
    18:41 
 | 
         
        (90)все верно, копируй смайлик, потом ищи через Ctrl+f где он ест ещё.     
         | 
|||
| 
    93
    
        DenYuliya    
     29.11.17 
            ✎
    18:50 
 | 
         
        Кстати, насчет (52)
 
        Сейчас в процессах памяти для 1С 77 56,2 кб. Это я ТИИ запустила сдуру еще утром...  | 
|||
| 
    94
    
        Franchiser    
     29.11.17 
            ✎
    18:55 
 | 
         
        Память имеет смысл смотреть когда выгружаешь данные в xml     
         | 
|||
| 
    95
    
        DenYuliya    
     30.11.17 
            ✎
    09:54 
 | 
         
        (90) смайликов больше не нашла, зато помогло "Тестирование и исправление", и правда запись в Источнике некорректная была.     
         | 
|||
| 
    96
    
        DenYuliya    
     30.11.17 
            ✎
    10:51 
 | 
         
        (94) дошел до 3,79 Гб и отвалился ((     
         | 
|||
| 
    97
    
        DenYuliya    
     30.11.17 
            ✎
    11:48 
 | 
         
        Попытка отфильтровать по папке контрагента, похоже, оказалась провальной.
 
        Выгружается как попало, полагаю из-за того, что в ТиС эта странная схема "Контрагенты- Стронние юр.лица", и написать ограничения только в ПВД "Контрагенты-Партнеры" недостаточно. Подозреваю, что надо делать какую-то связь между остальными связанными правилами (Физ.лица, Сторонние юр.лица, КонтрагентыВпартнера и т.д). Вопрос: возможно ли как-то наложить ограничения на весь процесс выгрузки? Некий "общий модуль". Если я наложу фильтры только на 1 ПВД - результат выходит некорректный.  | 
|||
| 
    98
    
        Franchiser    
     30.11.17 
            ✎
    15:56 
 | 
         
        Ты выружаешь целиком справочники? Или остатки?     
         | 
|||
| 
    99
    
        Franchiser    
     30.11.17 
            ✎
    15:58 
 | 
         
        (96) у тебя большая утечка памяти, нужно разбираться в причинах. Может быть какое то зацикливание     
         | 
|||
| 
    100
    
        vicof    
     30.11.17 
            ✎
    16:01 
 | 
         
        (100) Сотка     
         | 
|||
| 
    101
    
        DenYuliya    
     30.11.17 
            ✎
    17:07 
 | 
         
        (98) справочник Контрагенты и связанные с ним (ФизЛица, Собственные ЮрЛица, Сторонние ЮрЛица). Даже без Номенклатуры.
 
        Попробовала выгрузить совсем типовыми, из комплекта поставки. Доходит до 4 ГБ (3,9) и вываливается. Там и так зацикливанию не откуда взяться, а уж в Типовыт тем более вряд ли. Меня смущает, это то, что при запуске "проверки корректности данных" валится куча ошибок - например, собств юр.лица без сопоставленных контрагентов, некорректные ИНН и ОГРН, и т.д. Это ведь вряд ли влияет глобально? потому что данную проверку можно проигнорить.  | 
|||
| 
    102
    
        Franchiser    
     30.11.17 
            ✎
    17:21 
 | 
         
        Для начала посчитай сколько у тебя элементов в каждом справочнике, может имеет смысл перенести всё на верхний уровень - убрать иерархию. Потом переносить каждый справочник отдельно порциями например по диапазону кодов. Справочник контрагенты у тебя будет переноситься по ссылкам при переносе других справочников, поэтому нужно подумать а нужно ли его отдельно переносить.     
         | 
|||
| 
    103
    
        DenYuliya    
     30.11.17 
            ✎
    17:39 
 | 
         
        (102) разве не другие справочники переносятся по ссылкам из "Контрагенты"?
 
        "Потом переносить каждый справочник отдельно порциями например по диапазону кодов" - я не знаю (очень хочу, но не могу понять от слова совсем, и где посмотреть на примере - найти не могу), как это сделать. А то давно бы уже сделала. Как альтернативу, думаю такой вариант: в каждом ПКО и ПВД поставить условие: Если Источник.ПометкаУдаления = 1; Тогда Отказ = 1; КонецЕсли; И поиграться с галкой "не запоминать выгруженные объекты" в ПКО. Потом по очереди ставить/снимать пометку удаления с групп Контрагентов в Источнике, и выгружать их. Но не уверена, что идея будет работать.  | 
|||
| 
    104
    
        DenYuliya    
     30.11.17 
            ✎
    17:59 
 | 
         
        (102) 
 
        в спр. Контрагенты 45 000 объектов в спр. Стор Ю.Л 45 000 объектов в спр. Физ Лица 4 600 объектов  | 
|||
| 
    105
    
        Franchiser    
     01.12.17 
            ✎
    00:06 
 | 
         
        (103) добавляешь на форму обработки выгрузки 2 числовых реквизита: КодС и КодПо. 
        Далее анализирушь код конкретного справочника в ПКО в обработчике ПередВыгрузкой. При необходимости строковый код приводишь к числовому. Если код не входит в диапазон пишешь Отказ =1.  | 
|||
| 
    106
    
        Franchiser    
     01.12.17 
            ✎
    00:08 
 | 
         
        (104) вообще объектов не так много, очень странно что не выгружается.     
         | 
|||
| 
    107
    
        Franchiser    
     01.12.17 
            ✎
    00:11 
 | 
         
        Если в контрагентах стоит ссылка на сторонние юл, то конечно выгружай контрагентов по диапазону кодов, юл перенесется по ссылкам     
         | 
|||
| 
    108
    
        Franchiser    
     01.12.17 
            ✎
    00:12 
 | 
         
        Физ лица вообще не понятно как связаны с контрагентами, и можно перенести отдельно     
         | 
|||
| 
    109
    
        DenYuliya    
     01.12.17 
            ✎
    00:14 
 | 
         
        Ребят, ну подскажите пожалуйста пример, как делать этот чертов отбор по количеству выгружаемых элементов?
 
        Я правда честно-честно не знаю, куда копать :(. Создала параметры КолВоВыгружаемыхЭлементовНачало и КолВоВыгружаемыхЭлементовНачалоКонец, тип Число, с пометкой "редактировать в диалоге". Потом надо создать алгоритм, запихнуть в него эти параметры... Что-то из серии СпрКонтр = СоздатьОбъект("Справочник.Контрагенты"); СпрКонтр.ВыбратьЭлементы(0); Пока СпрКонтр.ПолучитьЭлемент() >= КолВоВыгружаемыхЭлементовНачало И < КолВоВыгружаемыхЭлементовКонец Цикл ///Что то тут надо делать Если СпрКонтр.ПолучитьЭлемент()= КолВоВыгружаемыхЭлементовКонец Тогда Прервать; КонецЕсли: КонецЦикла; Но это ерунда и неправильно, конечнно((. Может есть типовой пример, или статья какая-нибудь, где описывается, как это сделать?  | 
|||
| 
    110
    
        Franchiser    
     01.12.17 
            ✎
    00:14 
 | 
         
        Проверь ещё что в справочнике контрагентов нет косяков: например есть ссылка самого на себя, может быть есть группы у которых родителями являются они же.     
         | 
|||
| 
    111
    
        DenYuliya    
     01.12.17 
            ✎
    00:15 
 | 
         
        (103) не увидела ваши сообщения. Сейчас, прочитаю...     
         | 
|||
| 
    112
    
        DenYuliya    
     01.12.17 
            ✎
    00:17 
 | 
         
        (110) оке, завтра проверю. У меня удаленки нет, к сожалению.
 
        (107) да, стоит. Но я в отборах (на форме обработки) выбирала только Контрагенты_Партнеры - та же ошибка. ФЛ и СвоиЮрЛица нормально выгружаются. Но там по 5 000 - 8 000 объектов, а не по 45 000  | 
|||
| 
    113
    
        Franchiser    
     01.12.17 
            ✎
    00:18 
 | 
         
        В ПКО контрагенты в ПередВыгрузкой: 
        Если (Число(Источник.Код)) < кодС или (число(источник.код)>КодПо) Тогда Отказ =1; КонецЕсли;  | 
|||
| 
    114
    
        Franchiser    
     01.12.17 
            ✎
    00:20 
 | 
         
        Можно делать не по коду а по первой букве наименование контрагента, все аналогично     
         | 
|||
| 
    115
    
        DenYuliya    
     01.12.17 
            ✎
    00:20 
 | 
         
        (107) - вот в этом и весь затык. Я не понимаю, как реализовать вот это самое "выгружай контрагентов по диапазону кодов".
 
        В (109) примерно как я это себе представляю. Но...И в типовых правилах ТиС -УТ все Алгоритмы пересмотрела, нигде примера выгрузки по счетчику нет.  | 
|||
| 
    116
    
        DenYuliya    
     01.12.17 
            ✎
    00:22 
 | 
         
        (114) вы даже не представляете, какое огроменное спасибо за пример! Попробую так, хоть "вектор мысли" есть теперь     
         | 
|||
| 
    117
    
        Franchiser    
     01.12.17 
            ✎
    00:27 
 | 
         
        Если (лев(нрег(источник.наименование,1)) <"а") или (лев(нрег(источник.наименование,1)) >"ж") тогда 
        Отказ=1: КонецЕсли;  | 
|||
| 
    118
    
        Franchiser    
     01.12.17 
            ✎
    00:31 
 | 
         
        И ещё нужно создавать не параметры КД, а кинуть на форму 7-ной обработки 2 реквизита типа число и их идентификаторы использовать в коде. Добавленные параметры удали.     
         | 
|||
| 
    119
    
        DenYuliya    
     01.12.17 
            ✎
    12:27 
 | 
         
        Я тут данные проверить пытаюсь, тоже склоняюсь к тому, что где-то в данных ошибка.
 
        Никто случайно не в курсе, если игнорировать проверку в типовом механизме перехода (например, чтобы на одного ЮЛ не ссылалось несколько контрагентов, и чтобы все ЮЛ были привязаны к контрагентам; заполненность ОГРН, ИНН и т.д) - это может вызвать проблемы с выгрузкой, или это только к некорректной инфе в новой базе может привести?  | 
|||
| 
    120
    
        DenYuliya    
     01.12.17 
            ✎
    12:30 
 | 
         
        Дублей всяко-разных с одинаковыми ИНН + КПП + Наименованиями фигова гора....
 
        Удалить - не дают.  | 
|||
| 
    121
    
        Йохохо    
     01.12.17 
            ✎
    12:33 
 | 
         
        (120) галка "загружать данные в режиме ОбменДанными.Загрузка = Истина"     
         | 
|||
| 
    122
    
        Franchiser    
     01.12.17 
            ✎
    12:36 
 | 
         
        ты можешь вывести в сообщить или во внешний лог инфу что выгружается? посмотри что выгружалось последнее когда отваливалась база. М.б. там все время зацикливание идет на 1-м элементе.     
         | 
|||
| 
    123
    
        Franchiser    
     01.12.17 
            ✎
    12:38 
 | 
         
        не можеть быть что 4 гб оперативки не достаточно для выгрузки 45000 контрагентов!     
         | 
|||
| 
    124
    
        Йохохо    
     01.12.17 
            ✎
    12:40 
 | 
         
        (122) галка "комментировать выгрузку объектов" )     
         | 
|||
| 
    125
    
        DenYuliya    
     01.12.17 
            ✎
    12:41 
 | 
         
        (121) И тогда всё это г...этот мусор без проверок перенесется?   Как вариант, да.
 
        Где-то я эту проверку даже встречала. Хотя не нравится мне это, эска криком кричит "поправьте данные"...  | 
|||
| 
    126
    
        DenYuliya    
     01.12.17 
            ✎
    12:42 
 | 
         
        (124) она у меня стоит. Но что-то я в ней смотрела только на выделенное красным, а не на строку, когда обрубается.     
         | 
|||
| 
    127
    
        Franchiser    
     01.12.17 
            ✎
    13:20 
 | 
         
        (124) там слишком много информации выводится. ну можно и с ней     
         | 
|||
| 
    128
    
        Franchiser    
     01.12.17 
            ✎
    13:25 
 | 
         
        (126) нужно знать какие последние 20-30 объектов выгружаются     
         | 
|||
| 
    129
    
        DenYuliya    
     01.12.17 
            ✎
    13:32 
 | 
         
        Обмен падает на первом же контрагенте. Либо сообщения не выдаются корректно, что вряд ли (ровно те же обработки - типовая и моя переписанная, на моей тестовой базе с теми же МД, но другими данными, нормально отрабатывают и выгружают)     
         | 
|||
| 
    130
    
        DenYuliya    
     01.12.17 
            ✎
    13:37 
 | 
         
        http://dropmefiles.com/ZGD6Q 
 
        Посмотрела - ничего в этом объекте такого страшного нет, либо я не понимаю, куда смотреть. Идет счетчик строк запроса, а счетчик контрагентов - не меняется. Память доходит до 3,98 Гб и падает.  | 
|||
| 
    131
    
        Ёпрст    
     гуру 
    01.12.17 
            ✎
    14:00 
 | 
         
        (130) а чего ты не пользуешься универсальноый выгрузкой в xml ?!     
         | 
|||
| 
    132
    
        Ёпрст    
     гуру 
    01.12.17 
            ✎
    14:01 
 | 
         
        там и фильтры есть и параметры. и галки по отдельным пвд     
         | 
|||
| 
    133
    
        DenYuliya    
     01.12.17 
            ✎
    14:09 
 | 
         
        (132) я им до сих пор пользовалась, эффект тот же. Потом решила проверить - вдруг стандартной обработкой выгрузится. Неа, та же ерунда.Кстати, в ней тоже по ПВД есть отборы, если использовать режим "Расширенный", а не "Стандартный".
 
        Того контрагента, на котором все зависало, переименовала, чтобы он "уполз" в другое место списка. Теперь зависает на другом, но так же первом в списке.  | 
|||
| 
    134
    
        Franchiser    
     01.12.17 
            ✎
    14:37 
 | 
         
        Может быть у тебя очень большой результат запроса который складывается в dbf. Проверь в темповой папке какой размер файла в момент формирования выборки запроса.     
         | 
|||
| 
    135
    
        Franchiser    
     01.12.17 
            ✎
    14:38 
 | 
         
        Что у тебя за ПВД, почему не сделать стандартную выборку?     
         | 
|||
| 
    136
    
        Йохохо    
     01.12.17 
            ✎
    14:46 
 | 
         
        (133) словила бесконечный цикл , проверяй циклы по родитель, владелец, измерение рс     
         | 
|||
| 
    137
    
        DenYuliya    
     01.12.17 
            ✎
    14:57 
 | 
         
        (136) Как это проверять, в КД прописывать проверки, или отладчиком в базе при выгрузке смотреть?
 
        Меня смущает то, что и типовые не отрабатывают на рабочей базе. Следовательно, дело не том, что мои дописки - криворукие.  | 
|||
| 
    138
    
        DenYuliya    
     01.12.17 
            ✎
    15:05 
 | 
         
        (135) на скрине запущена обычная, типовая выгрузка (правила перехода) с ИТС. Для выгрузки указаны ПВД "Контрагенты" и "Сторонние юр.лица" + стоит галка "Независимо вести партнеров и контрагентов".
 
        Почему типовые ПВД реализованы именно так, а не иначе - не знаю, не задавалась этим вопросом. Мои доработки касались в основном переноса добавленных в ТиС реквизитов Контрагентов, сам же типовой механизм в целом устраивает. Но в данный момент я тестирую хотя бы на типовых - по ним тоже не проходит выгрузка. В тестовой - норм и типовые, и мои дописанные.  | 
|||
| 
    139
    
        Йохохо    
     01.12.17 
            ✎
    15:09 
 | 
         
        (137) проверить что при выгрузке второй раз у контрагента не будет стоять выгружать реквизиты объекта чтоли. Т.е. контрагент(контактная(контрагент - тут должен полететь только узел ссылки, без объектов реквизитов))     
         | 
|||
| 
    140
    
        DenYuliya    
     01.12.17 
            ✎
    15:24 
 | 
         
        Это типовая галка какая-то, или дописать? Там помнится есть "Не выгружать объекты свойст источника"     
         | 
|||
| 
    141
    
        Йохохо    
     01.12.17 
            ✎
    15:27 
 | 
         
        (140) она, если использовать одно ПКО надо ее как то взводить второй раз     
         | 
|||
| 
    142
    
        DenYuliya    
     01.12.17 
            ✎
    15:33 
 | 
         
        Туплю...если использовать одно ПКО - в каком случае? Не уверена, что правильно поняла идею.
 
        Может ее просто сразу поставить на ПКО, и все?  | 
|||
| 
    143
    
        DenYuliya    
     01.12.17 
            ✎
    15:39 
 | 
         
        (121) 
 
        8. Загружать данные в режиме обмена Позволяет отказать от излишних проверок на этапе загрузки данных. Так у меня этап выгрузки не работает...Чем мне поможет загрузка :(. Кстати, в обработке для 7.7 этой галки я не обнаружила.  | 
|||
| 
    144
    
        Franchiser    
     01.12.17 
            ✎
    16:21 
 | 
         
        Приведи сюда код из ПВД выгрзки справочника Контрагенты     
         | 
|||
| 
    145
    
        Йохохо    
     01.12.17 
            ✎
    16:35 
 | 
         
        (142) первый раз ПКО Контрагенты вызывается из ПВД, например, второй раз при выгрузке контактной информации как владелец. Если выгружать реквизиты как объекты получим подвид рекурсии класса бесконечная обыкновенная
 
        (143) все просто - сейчас не нужно, потом нужно  | 
|||
| 
    146
    
        DenYuliya    
     01.12.17 
            ✎
    16:49 
 | 
         
        (144) Основное "Контрагенты_Партнеры" 
 
        //Денисенко Если Объект.ЭтоГруппа() = 1 Тогда Отказ = 1; КонецЕсли; Если Объект.ПометкаУдаления() = 1 Тогда Отказ = 1; КонецЕсли; // Если Параметры.НезависимоВестиПартнеровИКонтрагентов = 0 Тогда ОсновнойКонтрагентДляЮрлица = 0; СформироватьСоответствиеКонтрагентовИЮрЛиц(); НомерНайденнойСтроки = 0; СоответствиеКонтрагентыЮрЛицо = Параметры.СоответствиеКонтрагентыЮрЛицо; Если СоответствиеКонтрагентыЮрЛицо.НайтиЗначение(Объект.ЮрФизЛицо, НомерНайденнойСтроки, "ЮрФизЛицо") = 1 Тогда ОсновнойКонтрагентДляЮрлица = СоответствиеКонтрагентыЮрЛицо.ПолучитьЗначение(НомерНайденнойСтроки, "Контрагент"); КонецЕсли; Если ОсновнойКонтрагентДляЮрлица <> Объект.ТекущийЭлемент() Тогда Отказ = 1; КонецЕсли; КонецЕсли; Стандартная выборка. Еще есть много промежуточных ПВД, например "СторонниеЮрЛица_Контрагенты"  | 
|||
| 
    147
    
        DenYuliya    
     01.12.17 
            ✎
    16:52 
 | 
         
        (145) В приведенном примере речь о вызове в рамках одного ПКО?     
         | 
|||
| 
    148
    
        DenYuliya    
     01.12.17 
            ✎
    16:53 
 | 
         
        (145) отключить выгрузку КИ и посмотреть, что будет?     
         | 
|||
| 
    149
    
        Franchiser    
     01.12.17 
            ✎
    17:16 
 | 
         
        (146) Это точно ПВД?
 
        Если так, то процедура СформироватьСоответствиеКонтрагентовИЮрЛиц() у тебя выполняется в цикле.  | 
|||
| 
    150
    
        Franchiser    
     01.12.17 
            ✎
    17:22 
 | 
         
        (145) контактная информация по должна выгружаться позже чем контрагенты, с учетом того что стоит галка запоминать выгруженные рекурсии быть не должно.     
         | 
|||
| 
    151
    
        DenYuliya    
     01.12.17 
            ✎
    17:25 
 | 
         
        (149) да, абсолютно точно ПВД.
 
        мои доработки - только условие на пометку удаления, которые не работают. Остальное - типовее некуда.  | 
|||
| 
    152
    
        DenYuliya    
     01.12.17 
            ✎
    17:27 
 | 
         
        А почему - в цикле, я там напрямую цикла не вижу.
 
        Разве что в этой части "ПолучитьЗначение(НомерНайденнойСтроки, "Контрагент")";что-то не так может быть  | 
|||
| 
    153
    
        Franchiser    
     01.12.17 
            ✎
    17:28 
 | 
         
        (151) да я тебе верю. Понавставляй сообщить в ПВД и в ПКО Контрагенты, или запусти замер производительности. Нужно опеределить за счет чего получается рекурсия.     
         | 
|||
| 
    154
    
        Franchiser    
     01.12.17 
            ✎
    17:29 
 | 
         
        (152) потому что когда идет стандартная выборка этот код выполняется столько раз сколько у тебя есть контрагентов     
         | 
|||
| 
    155
    
        DenYuliya    
     01.12.17 
            ✎
    17:31 
 | 
         
        (154) ну да, я примерно так и подумала. Меня смущает то, что по-идее согласно "политики партии" ТиС, если я верно понимаю, кол-во СторонннихЮрЛиц = кол-во Контрагентов, верно?     
         | 
|||
| 
    156
    
        Franchiser    
     01.12.17 
            ✎
    17:33 
 | 
         
        (155) я не знаю что у тебя в СформироватьСоответствиеКонтрагентовИЮрЛиц(). Может быть там проверяется параметр СоответствиеКонтрагентыЮрЛицо и если он только пустой, то в этом случае происходит запонения соответствия, иначе возврат.     
         | 
|||
| 
    157
    
        Franchiser    
     01.12.17 
            ✎
    17:35 
 | 
         
        К тебя рекурсия происходит на первом же элементе, так что по идее она сразу должна быть видна     
         | 
|||
| 
    158
    
        Franchiser    
     01.12.17 
            ✎
    17:36 
 | 
         
        Ищи причину в ПКО, в ПВД ничего особенного пока не вижу     
         | 
|||
| 
    159
    
        DenYuliya    
     01.12.17 
            ✎
    17:50 
 | 
         
        сли ТипЗначенияСтр(Источник) = "Строка" Тогда
 
        Возврат 1; КонецЕсли; Если Источник.ЭтоГруппа() = 1 Тогда Возврат 1; КонецЕсли; Если Источник.ПометкаУдаления() = 1 Тогда Возврат 1; КонецЕсли; Если ТипЗначенияСтр(ВходящиеДанные) <> "СписокЗначений" Тогда ВходящиеДанные = СоздатьОбъект("СписокЗначений"); КонецЕсли; ВходящиеДанные.Установить("Клиент", 0); ВходящиеДанные.Установить("Поставщик", 0); ВходящиеДанные.Установить("ПрочиеОтношения", 0); Если Параметры.СтатистикаПоДоговорам_СортКонтрагент = -1 Тогда СформироватьСтатистикуПоДоговорам(); КонецЕсли; СтатистикаПоДоговорам = Параметры.СтатистикаПоДоговорам_СортКонтрагент; НомерНайденнойСтроки = 0; Если СтатистикаПоДоговорам.НайтиЗначение(Источник, НомерНайденнойСтроки, "Контрагент") = 1 Тогда Для НомерСтроки = НомерНайденнойСтроки По СтатистикаПоДоговорам.КоличествоСтрок() Цикл СтатистикаПоДоговорам.ПолучитьСтрокуПоНомеру(НомерСтроки); Если СтатистикаПоДоговорам.Контрагент <> Источник Тогда Прервать; КонецЕсли; Если (СтатистикаПоДоговорам.ХозяйственнаяОперация = "РеализацияКлиенту") ИЛИ (СтатистикаПоДоговорам.ХозяйственнаяОперация = "ПередачаНаКомиссию") Тогда ВходящиеДанные.Установить("Клиент", 1); ИначеЕсли (СтатистикаПоДоговорам.ХозяйственнаяОперация = "ЗакупкаУПоставщика") ИЛИ (СтатистикаПоДоговорам.ХозяйственнаяОперация = "ПриемНаКомиссию") Тогда ВходящиеДанные.Установить("Поставщик", 1); КонецЕсли; КонецЦикла; КонецЕсли; Если (ВходящиеДанные.Получить("Клиент") = 0) И (ВходящиеДанные.Получить("Поставщик") = 0) Тогда ВходящиеДанные.Установить("ПрочиеОтношения", 1); КонецЕсли; Это ПКО. Тоже наитиповейший ((  | 
|||
| 
    160
    
        DenYuliya    
     01.12.17 
            ✎
    17:51 
 | 
         
        (153) счас попробую...     
         | 
|||
| 
    161
    
        Franchiser    
     01.12.17 
            ✎
    17:56 
 | 
         
        В контрагентах есть ссылка на ЮрЛица или другие объекты, где может стоять ссылка на контрагентов?     
         | 
|||
| 
    162
    
        DenYuliya    
     01.12.17 
            ✎
    18:24 
 | 
         
        В ПКС для ПКО "Контрагенты_Партнеры" вроде бы нету. Код непосредственно в ПКО посмотрю, идею поняла.
 
        Но вообще ссылок на спр. Контрагенты в обмене целая куча.  | 
|||
| 
    163
    
        Franchiser    
     01.12.17 
            ✎
    23:58 
 | 
         
        У тебя и ПВД и ПКО называется одинаково Контрагенты_Партнеры?     
         | 
|||
| 
    164
    
        DenYuliya    
     02.12.17 
            ✎
    16:35 
 | 
         
        (163) неа, по-разному.     
         | 
|||
| 
    165
    
        DenYuliya    
     04.12.17 
            ✎
    12:03 
 | 
         
        В общем, условно нашла, в чем дело.
 
        Помогло (153) и (158), огромное спасибо! Ошибка оказалась в этой части ПКО "Контр_партнеры": (перед выгрузкой) Если Параметры.СтатистикаПоДоговорам_СортКонтрагент = -1 Тогда Сообщить("тыц договор"); СформироватьСтатистикуПоДоговорам(); КонецЕсли; Я не вникала глубоко, что это за параметр, он прописан жестко на вкладке Основная -"Перед выгрузкой данных" и потом где-то присваивается. Я просто поменяла Параметры.СтатистикаПоДоговорам_СортКонтрагент = -1; на Параметры.СтатистикаПоДоговорам_СортКонтрагент = 0; Понимаю, что это неправильно, но с таким костылем хотя бы идет выгрузка. правда с ошибкой, но на выгружаемых контр. вроде бы не влияет. Ошибка исполнения обработчика: ПКО_ПередВыгрузкой_Контрагенты_Партнеры - Значение не представляет агрегатный объект (НайтиЗначение) Попробую сейчас какой-нибудь костыль сделать, Типа "попытка-исключение", или проверять на что-нибудь... В общем, чтобы этот кусрк не ошибку выдавал, а просто не попадал в условие.  | 
| Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |