v7: Как ограничить кол-во элементов в транзакции в обмене через УниверсальныйОбменДаннымиXML? #809236


#0 by DenYuliya
Валится с ошибкой "Недостаточно памяти", все советуют "Выгружай по частям", а я что-то не могу понять, где это настраивается, и настраивается ли вообще, или  надо обработину править? Где в выгрузки из УТ 10 в УТ 11 - знаю, там прямо галочка есть, "выгружать в транзакциях". Гружу с ТиС в УТ 11, через УниверсальныйОбменДаннымиXML, правила типовые для обмена ТиС - УТ 11, но дописанные.
#0 by DenYuliya
Валится с ошибкой "Недостаточно памяти", все советуют "Выгружай по частям", а я что-то не могу понять, где это настраивается, и настраивается ли вообще, или  надо обработину править? Где в выгрузки из УТ 10 в УТ 11 - знаю, там прямо галочка есть, "выгружать в транзакциях". Гружу с ТиС в УТ 11, через УниверсальныйОбменДаннымиXML, правила типовые для обмена ТиС - УТ 11, но дописанные.
#1 by 1Сергей
так, валится при выгрузке?
#2 by DenYuliya
Да
#3 by DenYuliya
Ошибка вроде 1000 раз обсуждалась, но нигде не смогла найти описания, как эту выгрузку по частям делать. Хотя все о ней говорят, видимо это такая элементарщина, что подразумевается, что все о ней знают))
#4 by 1Сергей
нет клюшек под рукой. А разве в УниверсальныйОбменДаннымиXML нельзя выбрать период?
#5 by DenYuliya
Просто выгружать по-очереди разные справочники, а не все галки разом - пробовала. Та же ерунда, пользователи выгружаются, а вот "Контрагенты" и "Сторонние юрлица"- валится с ошибкой, там 16 000 тысяч элементов, не считая связанных.
#6 by DenYuliya
можно, но что это даст? Я не доки гружу, а справочник. Пробовала установить период с начала тек.года - та же фигня. Сервер стоит 64 бит, физ. память есть. Но это мало влияет, я так понимаю.
#7 by Ёпрст
валится то где хоть ? на этапе выгрузки ?
#8 by Ёпрст
если да, то переписать поделку выгрузки и не использовать v7plus.dll и её объекты для xml
#9 by DenYuliya
да, почти сразу.
#10 by DenYuliya
"поделку выгрузки"? Это очипятка, или я не знаю, что это такое?
#11 by DenYuliya
, ах да - галка "Не запоминать выгруженные объекты" - у всех ПКО стоит.
#12 by Ёпрст
типовая поделка универсальной выгрузки из клюшек, написана, если не изменяет память на объектах v7plus.dll. Нужно переписать её на другую объектную модель, как в снеговике. и усё.
#13 by Ёпрст
например, на MSXML
#14 by DenYuliya
))))) "клюшки" - это 1С 77, снеговик - 1С 8)))? Умеете вы настроение поднимать, не слышала такого)). Советы из серии "увеличить адресную память", "снять ограничение размера файла подкачки" результата не дали((. И все же о каких фильтрах речь? "или выгружать данные по частям, ограничивая фильтрами"... (в данном примере ответ № 2, но данные совет встречается часто). Это о галках на выгружаемые объекты и на дату, или есть еще какие-то штатные способы, о которых я не в курсе? Насчет - попробую, если ничего другого не получится, но страшно подумать, сколько это времени займет.
#15 by DenYuliya
вот еще та же история насчет адресной памяти. Правда тут речь о  1С 8, но принцип думаю тот же. Сделала - не помогло.
#16 by Ёпрст
ограничить можешь, делав в пвд свои выборки данных. Например, ограничив количеством выгружаемых объектов.
#17 by DenYuliya
оо, спасибо огромное, думаю это как раз то, что надо! А можно пример, где посмотреть, "что писать", или ссыль какую-нибудь? Какими командами жто самое "Количество элементов в транзакции" задать-то?
#18 by Ёпрст
для выгрузки, транзакция не нужна и лишняя.
#19 by Ёпрст
ну и в выгрузке её вообще нет :)
#20 by Franchiser
можно патч поставить на 4 Гб в 7ку, тогда скорее всего выгрузит
#21 by Franchiser
есть что то готовое, уже кто то переписывал?
#22 by DenYuliya
что это, где это))?
#23 by DenYuliya
ну это я образно, "транзакция". Имела в виду, какими "командами" ограничить в ПВД кол-во выгружаемых объектов, как это вообще делается? Наверняка этот велосипед уже до меня много раз был изобретен.
#24 by DenYuliya
меня терзают подозрения, что это такой гемор...В ПВД разобраться явно быстрее.
#25 by Ёпрст
тупо считаешь количество элементов в справочнике и выгружаешь частями по номеру части, переданного в параметрах. Подойдёт при разовой выгрузке.
#26 by Franchiser
есть приложение которое может пропатчить exe (в частности 1с7.7) и после этого будет выделяться памяти больше 2 Гб. Когда переходил на 8ку мне это очень помогло. Если найду могу скинуть на почту
#27 by DenYuliya
была бы очень благодарна! мелкие справочники выгружаются норм, а начиная с физлиц - вываливается.
#28 by DenYuliya
Я просто не понимаю, где реализовывать эту "выгрузку партиями". Попробовала  разобраться в семерочном коде обработки "Универсальная выгрузка данных XML"- мда... А переписывать, как в 13 - "это вообще что такое"))? Тут еще одна непонятка...вот выгружу я, допустим, "мелкие" справочники (отдельно пользователи, физлица, ФИО физлиц и т.д) - а загружать их как, так же частями? Мне кажется это некорректно может загрузиться.
#29 by DenYuliya
Хотела попробовать чит и не выгружать ненужные, пометив их на удаление. В ПВД в "ПередВыгрузкой"  написала: Если Объект.ПометкаУдаления = 1 Тогда А они все равно выгружаются,но с пометкой.
#30 by DenYuliya
это в запросе в ПВД делать надо? Как и прочие фильтры?
#31 by Franchiser
в 13 предлагается исключить из обработки выгрузки все методы компоненты v7plus,  и использовать другой объект. Я начинал переписывать на ns xmldom, но во что-то упёрся не помню. Dom модель все равно есть оперативную память, и т.к. инициализация идёт из процесса 1с 7.7 возникают те же самые ограничения на 2 Гб. Как сделать без dom модели я не разобрался.
#32 by Franchiser
я выгружал по диапазонам букв с а до д  и т.д. загружаешь, весь выгруженный файл. Потом как нашел патч от этого отказался
#33 by Franchiser
попробуй это
#34 by Franchiser
естественно запускать потом 7ку нужно на Винде x64, чтобы получить дополнительные гб
#35 by Йохохо
"красиво" будет найти верхнее, покрывающее ПВД, которое по ссылкам выгрузит всё как умеешь так и делаешь, вынеси параметр пользовательский и выгружай с НомерВыгрузки +1 по +1000 ВыборкаДанных - Запрос, Результат запроса, Выборка из результата запроса или произвольная коллекция выгружаемых объектов. Используется, когда способ выгрузки данных - Произвольный алгоритм. Если определить данную переменную, то обход коллекции и выгрузка объектов будет осуществляться автоматически. Сюда любую клооекцию
#36 by DenYuliya
спасибо! Буду пробовать! А редми к этой чудо-програмулине нет случайно нигде? А то на сайте описание ну очень подробное...
#37 by DenYuliya
нашла exe-файл 1С 77, выбрала его, запустила из патча, потом нажала ок, перезагрузила систему. Все правильно? А то что-то результата нет.
#38 by бомболюк
маловероятно что памяти не хватает из-за объемом выгрузки, к тому же, как утверждает ТС, в самом ее начале. Скорее всего алгоритм зацикливается где то, и при этом еще и память утекает.
#39 by DenYuliya
почему маловероятно? В демо-базе, где всего с десяток контрагентов, все выгружается и загружается в демо 8.3. Из рабочей базы при этом выгрузка падает с ошибкой даже при попытке выгрузить абсолютно типовой обработкой с абсолютно типовыми правилами из комплекта поставки.
#40 by DenYuliya
в продолжение... Ну как в самом начале. Выгружаются около 10 000 объектов, а потом отваливается. Естественно (естественно же?) в результате файл с данными пустой.
#41 by Йохохо
что то помнится, что сначала пишется в память в буфер, а потом на диск. Потребление памяти видно в диспетчере Придется осваивать произвольный алгоритм
#42 by DenYuliya
Какой вывод я должна была сделать из 1 части? Ну да, потребление памяти видно в диспетчере. Думаете, патч до 4 гб не поможет? Произвольный алгоритм - речь об отборе в ПВД с типом "произвольный"? А то я сразу про вкладку "алгоритмы" думаю.
#43 by бомболюк
если есть утечка, описанная в , то нарастание размера выделенной памяти происходит не то что неравномерно, а лавинообразно, имеет смысл проконтролировать.
#44 by DenYuliya
а как же ? В случае, если бы имела место ошибка правил, то по типовым все выгружалось бы норм, и из демо-базы так же не выгружалось бы, разве нет?
#45 by бомболюк
зависит от данных. в демо выгрузку может не попасть какой нить проблемный элемент
#46 by Йохохо
не знаю поможет или нет, можно рекомендовать взять процессэксплорер и посмотреть потребление, помнится там будет дочерний процесс чтото мсхмлблабла и когда он будет 900мБ все упадет, сама 7.7 при выгрузке не жрет ничего. А можно рекомендовать наконец разобраться с произвольным алгоритмом ПВД, умение делать тестовые выгрузки сэкономило бы уже месяц кмк. Все галки сняли с пвд, поставили на УчПолитику выгрузили файл1, сняли, поставили Номенклатура, выгрузили файл2, сняли, поставили Контрагенты, в параметрах НомерВыгрузки 1 ШагКонтрагентов 1000, выгрузили файл3, поставили НомерВыгрузки 2,,, профит
#47 by DenYuliya
ну если только так... написала в ПВД для Контрагентов Если Объект.ПринадлежитЭлементу(СсылкаНаГруппу1) = 0 Тогда Отказ = 1; Ошибки валятся((. Чертов код 77. почему Справочники.Контрагенты.НайтиПоКоду("00000001"); не работает-то?((
#48 by DenYuliya
давал бы мне еще кто поучиться толком...я сроду конвертации сложнее автоматических не юзала. Так-то согласна, что надо.
#49 by бомболюк
у тя вроде выгрузка то из 7ки идет, а почему код 8шный тогда?
#50 by DenYuliya
если честно, потому что на автомате пишу, как знаю, а оно не работает, собака :). Семерку тоже в глаза раньше не видела. Нагуглила вроде бы, как искать по коду в 7.7:
#51 by DenYuliya
*вторая строка СпрКонтр, конечно
#52 by Franchiser
да, все верно. Если через диспетчер процессов объем памяти процеса 1с 7.8 перевалил за 3 гб, то патч работает. Процесс может дойти до 3,6 -3,7.
#53 by DenYuliya
нашла такое в инете :"Имейте в виде, что у программы нет обратного действия, поэтому в папке с изменяемым файлом она сохраняет его резервную копию с расширением .Backup." У меня такой файл не создался почему-то((.
#54 by DenYuliya
а ПринадлежитЭлементу  в 7.7 тоже не работает, похоже? Не могу найти инфу про эту функцию в 7.7.
#55 by бомболюк
ПринадлежитГруппе(<?>) BelongsToGroup(<?>) Синтаксис: ПринадлежитГруппе(<Группа>) Назначение: Метод проверяет, принадлежит ли указанной группе текущий элемент справочника (независимо от того, на каком нижележащем уровне он находится). Возвращает: 1 - если элемент принадлежит указанной группе , 0 - если нет. Параметры: <Группа> - выражение со значением группы справочника .
#56 by DenYuliya
нашла уже, спасибо. Как-то так, сейчас проверю, будет ли работать
#57 by бомболюк
не будет
#58 by DenYuliya
потому что СоздатьОбъект не сработает?
#59 by бомболюк
потмоу что РезультатПоискаПоКоду = 0 или 1
#60 by Franchiser
не знаю, попробуй ещё раз
#61 by бомболюк
еще чуть чуть и ты узнаешь что такое ТекущийЭлемент ;-)
#62 by DenYuliya
Так?
#63 by Ёпрст
нет
#64 by DenYuliya
Поняла уже((.
#65 by Ёпрст
#66 by Ёпрст
ну и еще нужна проверка, что найденный справочник по коду - это группа
#67 by Ёпрст
и проще, ничего не искать по-коду, а передавать параметром ссылку на группу. Усё
#68 by DenYuliya
Про ТекЭлемент - поняла, логично. Ищу по коду я в общем списке значений, а потом с ТекЭлементом работаю.
#69 by Ёпрст
скобок не хватает в условии
#70 by DenYuliya
согласна, примерно так и хотела -сначала понять, что такой метод вообще работает, а потом разбираться, как это в параметр запихнуть. Единственное, я думала в качестве параметра сделать "Код" или "Наименование", и поставить галку "Редактируется в списке", или как-то так. Почему лучше ссылка, точнее и без проверки на ЭтоГруппа?
#71 by DenYuliya
Неужели эти скобки так важны? Вроде бы в 8.2 и без них отрабатывает.
#72 by Ёпрст
Потому, что ссылка однозначно определяет элемент, а код - может быть а)не уникален б)отсутствовать г)изменён д)принадлежать элементу а не группе
#73 by DenYuliya
{C:USERSUsersDESKTOPОБМЕН ТИС - КАПРАВИЛА77.ERT(50063)}: Неверный идентификатор колонки! Я же правильно делаю? В обработчике ПВД стандартного "ПередВыгрузкой". Суть сообщения примерно понимаю, но о какой колонке речь - не понятно...
#74 by DenYuliya
1 - Объект.ПринадлежитГруппе(СпрКонтр.ТекущийЭлемент); Может дело в этом самом "1 - "? Никаких колонок я не добавляла (явно во всяком случае), ТЗ не создавала...
#75 by Ёпрст
нет
#76 by DenYuliya
Все, что сделала - это закоментировала 1 условие, и добавила второе. И все, куча ошибок валится(((. Это ПВД, "ПередВыгрузкой"
#77 by Ёпрст
И (СпрКонтр.ЭтоГруппа = 1)
#78 by DenYuliya
Да, это у меня нормально стоит, я поправила уже. Все равно с ошибкой валится.
#79 by DenYuliya
Вот так на самом деле:
#80 by Ёпрст
если весь код оттуда выкидываешь, ошибка остаётся? так ? :)
#81 by DenYuliya
Весь добавленный? Сейчас попробую.
#82 by DenYuliya
да...код закоментила - ошибка осталась. а в чем прикод *где тут смайл с квадратными глазами*?
#83 by DenYuliya
*прикол Есть у меня одно подозрение.Сейчас проверю.
#84 by DenYuliya
ну...эта ошибка ушла. Видимо дело было в следующем: я запускала обработку "Групповое создание свойств и значений", по одному из советов "для оптимизации выгрузки" на каком-то из ресурсов. Видимо что-то лишнее создалось. Зато появилась другая, уже при загрузке ((: Ошибка при загрузке данных: {ВнешняяОбработка.УниверсальныйОбменДаннымиXML.МодульОбъекта(1008)}: Ошибка при вызове метода контекста (Прочитать): Ошибка разбора XML:  - [3058,59184] Фатальная ошибка: PCDATA invalid Char value 2 Данные все-таки перенеслись, но не те)))Перенеслись только группы без элементов в них, в том числе группа по коду 00000001
#85 by Franchiser
есть какой-то непечатываемый символ, который в XML нельзя помещать. Нужно его найти)
#86 by Franchiser
найди в файле символ ALT + 2 (цифра набирается на цифровой клавиатуре), должен получится символ черный смайлик.
#87 by DenYuliya
И что мне с ним сделать? Открыла файл правил в txt, вызвала смайлик... но вызывается где угодно, куда мышь наведешь.
#88 by Franchiser
зачем файл правил? нужно найти его в файле выгрузки и определить причину возникновения, скорее всего данные в 7-ке править нужно.
#89 by Franchiser
ты хочешь сказать у тебя весь файл правил в смайликах?
#90 by DenYuliya
Нет, я ставлю мышь в первую строку, нажимаю  ALT + 2, на этом месте высвечивается смайлик. В файле с данными то же самое.
#91 by DenYuliya
загрузила правилами, которые пару дней назад без проблем работали - та же ошибка. Странно...
#92 by Franchiser
все верно, копируй смайлик, потом ищи через Ctrl+f где он ест ещё.
#93 by DenYuliya
Кстати, насчет Сейчас в процессах памяти для 1С 77 56,2 кб. Это я ТИИ запустила сдуру еще утром...
#94 by Franchiser
Память имеет смысл смотреть когда выгружаешь данные в xml
#95 by DenYuliya
смайликов больше не нашла, зато помогло "Тестирование и исправление", и правда запись в Источнике некорректная была.
#96 by DenYuliya
дошел до 3,79 Гб и отвалился ((
#97 by DenYuliya
Попытка отфильтровать по папке контрагента, похоже, оказалась провальной. Выгружается как попало, полагаю из-за того, что в ТиС эта странная схема "Контрагенты- Стронние юр.лица", и написать ограничения только в ПВД "Контрагенты-Партнеры" недостаточно. Подозреваю, что надо делать какую-то связь между остальными связанными правилами (Физ.лица, Сторонние юр.лица, КонтрагентыВпартнера и т.д). Вопрос: возможно ли как-то наложить ограничения на весь процесс выгрузки? Некий "общий модуль". Если я наложу фильтры только на 1 ПВД - результат выходит некорректный.
#98 by Franchiser
Ты выружаешь целиком справочники? Или остатки?
Тэги: 1С 7.7 и ранее
Ответить:
Комментарии доступны только авторизированным пользователям

В этой группе 1С