|   |   | 
| 
 | 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; Понимаю, что это неправильно, но с таким костылем хотя бы идет выгрузка. правда с ошибкой, но на выгружаемых контр. вроде бы не влияет. Ошибка исполнения обработчика: ПКО_ПередВыгрузкой_Контрагенты_Партнеры - Значение не представляет агрегатный объект (НайтиЗначение) Попробую сейчас какой-нибудь костыль сделать, Типа "попытка-исключение", или проверять на что-нибудь... В общем, чтобы этот кусрк не ошибку выдавал, а просто не попадал в условие. | 
| Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |