1с конвертация данных не выгружать объекты свойств источника по ссылкам

Обновлено: 04.07.2024

что значит проблема не в правилах ссылки не найдены, значит поля поиска не соответствуют в чём трабла-то

да такого быть не могёт сколько лет юзаю КД, ни разу такого не было скорее дубли будут, нежели пустые ссылки

надо предварительно загрузить все справочники перед началом работы с обменом. Это же очевидно.

Т.е. стандартный механизм не способен выгружать элементы справочников целиком по ссылкам? Если я беру свои правила, запускаю конфу в обычном режиме, запускаю V8Exchan82.epf, делаю выгрузку, то все проходит

В правилах проверь галку "Не выгружать объекты свойств источника по ссылкам"

просто это неправильно при каждом обмене 1000 элементов номенклатуры туда-сюда гонять. В самом начале делаешь синхронизацию справочников. А при обмене пересылаешь только если новый элемент номенклатуры или измененный.

Я могу ответить на этот вопрос. Ты используешь старую УТ. И старую обработку обмена данными xml. Раньше, до какого-то момента, при выгрузке выгружались не объекты, а ссылки на них (в типовых). То есть подразумевалось, что перед обменом все объекты в источнике и приемнике будут синхронизированы. Открыв код обработчика выгрузки, а лучше сам xml-файл - ты можешь убедиться в моей правоте. А правила обмена, соответсвенно, тут ни при чем. Используй свежую обработку выгрузки, вытащи ее из свежего релиза любой типовой конфы и адаптируй для обмена данными. Либо сначала засинхронь (выгрузи-загрузи) все объекты, которые выгружаются в виде ссылок. Так обмен будет происходить быстрее, актуально, если в день 100500 документов выгружать надо.

проще регистрацией в плане обмена управлять. выгрузить всю номенклатуру и потом ее с регистрации снять

Так и пришлось сделать. Но в моем случае это как костыль. Мне не надо регать всю новую номенклатуру в плане, а только которую входит в документ нужный. Поэтому при регистрации документа регистрирую номенклатуру + еще справочник НомераГТД.

и тем не менее. Разраты УТ (или БСП) вдруг решили послушать "умного" советчика типа и сделали как описано в . Галку в КД "Не выгружать объекты свойств источника по ссылкам" видимо тоже не заметили. Сейчас, видимо, опомнились.

типовой обмен открой. При настройке нового обмена первым делом предлагает синхронизировать справочники.

Надо принудительно зарегить в обмен какой-то объект, который криво грузится. Произвести выгрузку в файл, посмотреть результат. Если объект находится в файле, значит проблема на стороне приемника и искать там. Если в файле пусто, тогда анализируем сначала правила, если вроде все должно попадать, тогда трассировка поможет. Примерно так.

Несколько простых рекомендаций, которые могут ускорить выгрузку и загрузку данных.

Правила Выгрузки данных

1. Порядок правил выгрузки данных

Рекомендуется располагать правила выгрузки данных в таком порядке, что бы ссылки зависимых объектов были снизу вверх. то есть самыми первыми должны располагаться правила выгрузки данных, объекты которых ни на кого не ссылаются, затем должны идти правила выгрузки объектов, ссылающихся на первую группу и т.д.

Пример: Нужно выгрузить два справочника Пользователи и Физические лица. Справочник Пользователи имеет реквизит Физ. лицо - ссылка на справочник Физические лица. То есть справочник Пользователи ссылается на справочник Физические лица. Рекомендуемая последовательность правил выгрузки в этом случае: Физические лица, пользователи.

2. Выбирать данные для выгрузки одним запросом

Если в правиле конвертации нет переноса табличных частей и движений, а так же в событиях перед выгрузкой нет прямых обращений к выгружаемому объекту, рекомендуется в правиле выгрузки данных использовать режим "Выбирать данные для выгрузки одним запросом". Этот режим позволит одним запросом получить все выгружаемые данные определенного типа, а не строить отдельные запросы для выгрузки каждого объекта.

Правила Конвертации объектов

3. Использовать быстрый поиск при загрузке

Этот режим выгрузки и загрузки рекомендуется использовать для тех правил конвертации объектов, которые выгружают ссылочные типы общее количество которых сравнительно небольшое (примерно до 1000 элементов), на которые имеется множество ссылок в других объектов.

Пример: Справочник Пользователи. Практически все документы имеют ссылку на этот справочник и количество элементов справочника не превосходит 1000.

4. Не выгружать объекты свойств по ссылкам

Режим позволяет для правила конвертации объектов не выгружать все элементы на которые есть ссылки. Если режим установлен, то при выгрузке будет выгружен сам объект и информация для поиска всех его ссылок, но полная информация о зависимых элементах выгружена не будет. Эта оптимизация может в несколько раз ускорить выгрузку и загрузку данных.

5. Не запоминать выгруженные объекты

Для правил конвертации не ссылочных объектов (регистров) нужно установить флажок "Не запоминать выгруженные объекты", так как ссылаться на строки регистра нельзя, поэтому нет и смысла запоминать те строки регистров, которые были выгружены. Для ссылочных объектов этот флажок, как правило, нужен, что бы оптимизировать повторное обращение для выгрузки одного и того же объекта.

6. Не делать общих обработчиков событий для всех объектов

Не рекомендуется использовать общие обработчики событий перед выгрузкой и загрузкой данных для всех объектов. Обработки выгрузки и загрузки не знают что будет выполняться в этих обработчиках поэтому некоторые оптимизации (например, при загрузке запись только измененных объектов) действовать не будут. Если есть необходимость использовать одни и те же алгоритмы обработки данных при выгрузке и загрузке, то рекомендуется создать новый Алгоритм, а в событиях у нужных объектов его вызывать.

Обработка "Универсальный обмен данными XML"

7. Использовать оптимизированный формат для обмена данными

8. Загружать данные в режиме обмена

Позволяет отказать от излишних проверок на этапе загрузки данных

9. Записывать только измененные объекты

Позволяет производить запись только измененных объектов в информационную базу. Если объект изменен не был, то при загрузке из файла обмена он не будет перезаписан.

10. Оптимизированная запись объектов

Режим позволяет резко сократить количество обращений в информационной базе для записи объектов.

11. Записывать регистры наборами записей

Режим позволяет записывать изменения в регистрах наборами записей, а не менеджерами записей.

12. Обмен данными через COM

С уважением, Владимир Милькин (преподаватель школы 1С программистов и разработчик обновлятора).

Как помочь сайту: расскажите (кнопки поделиться ниже) о нём своим друзьям и коллегам. Сделайте это один раз и вы внесете существенный вклад в развитие сайта. На сайте нет рекламы, но чем больше людей им пользуются, тем больше сил у меня для его поддержки.

Как мы уже знаем, правила конвертации свойств используются для сопоставления реквизитов обменивающихся объектов. Естественно, что в правиле конвертации задаются реквизит из объекта источника и объекта приемника.

Кроме того, для ссылочных реквизитов можно указать правило конвертации объектов, которое необходимо применить для переноса значения данного реквизита.

Поиск объекта при загрузке по данному свойству - флаг определяющий нужно ли по данному свойству производить поиск объектов в информационной базе приемнике. Если сразу у нескольких реквизитов установлено свойство поиска данных, то условия поиска объединяются по "И". В этом случае правило поиска звучит следующим образом: Найти объект у которых все реквизиты поиска совпадают с источником. (ВНИМАНИЕ. Поиск по уникальному идентификатору, который может быть установлен у правила конвертации объектов более приоритетный, то есть если он установлен то поиск будет выполнен по этому идентификатору).

Отключить обработку данного правила - флаг, позволяет отключить обработку данного свойства, не удаляя его из правил конвертации объектов.

Не замещать значение данного свойства у существующих объектов ИБ - флаг, позволяет отключить обработку данного для объектов информационной базы приемника, которые были найдены по уникальному идентификатору или по полям поиска.

Автоматически приводить значение к длине приемника - флаг, позволяет включить автоматическое приведение Номера или Кода справочника соответствующему значению в приемнике по длине. При этом префиксы сохраняются, а числовые части преобразуются под длину поля в приемнике.

ТОЛЬКО ДЛЯ ОБМЕНА V8 - V8

Функционал, позволяющий передавать дополнительные параметры в информационную базу приемник из источника.

Передавать данные в приемник - флаг определяет куда будут помещены данные при загрузке. Непосредственно в найденный для изменения объект.

Передавать данные в параметр - флаг определяет куда будут помещены данные при загрузке. В отдельное соответствие для данного объекта, но не в сам объект. Этот подход удобен когда нужно передать какое либо значение в приемник, но нет реквизита куда нужно его поместить. Впоследствии анализируя дополнительные параметры можно изменить логику заполнения объекта приемника. В правилах необходимо указать имя параметра куда нужно поместить данные. Для табличных частей и наборов движений для каждой строки формируется отдельная структура в которой хранится информация.

Доступ к этим данным возможен в событии правила конвертации объекта "После загрузки". Например, так:

Выгружать элементы группы через промежуточный файл - флаг определяет как выгружать объекты данного типа, через промежуточный файл (экономично с точки зрения оперативной памяти) или напрямую через память (оптимально по скорости, но при больших объемах передаваемых данных оперативная память может закончится).

На закладке "Дополнительно" можно редактировать вхождение правила в определенную группу, а так же его описание. Наименование правила формируется автоматически и недоступно для изменения.

С уважением, Владимир Милькин (преподаватель школы 1С программистов и разработчик обновлятора).

Как помочь сайту: расскажите (кнопки поделиться ниже) о нём своим друзьям и коллегам. Сделайте это один раз и вы внесете существенный вклад в развитие сайта. На сайте нет рекламы, но чем больше людей им пользуются, тем больше сил у меня для его поддержки.

Из УПП в УТ надо выгрузить ограниченный по типу список документов - документы оплаты. Но в расшифровке платежа этих документов содержатся другие доки. И все они поперлись в УТ, хотя они там уже есть, и вновь их грузить нежелательно. В ПКО КД есть галочка "Не выгружать объкты свойств источника по ссылкам". Конечно, можно пройтись по ПКО каждого документа, и проставить эту галочку. А можно ли в КД где-то, как-то прописать в одном месте, чтобы галочки не ставить, а документы по ссылкам не выгружались?

Есть. "пройтись по ПКО каждого документа, и проставить эту галочку"

Наверно еще и Синхронизацию по идентификатиору заменить

ПередКонвертациеОбъекта ПКО.ВыгружатьПоССылкам = Ложь

Я обычно параметр делаю, чтоб можно было настраивать

На это уйдет 15-20 минут. И я еще не решил окончательно- надо ли мне так. Может, придется обратно снимать эти галочки. Для эксперемента программно прописать в КД это можно для всех ПКО документов? В ПКО каждого документа? Проще галочки ставить. Подробнее можно?

аичего сложного? Универсальным подбором и обработкой делается за 2 минуты

в КД вроде не так все просто, анализировать и отборы настраивать самое противное в твоей идее

На Объект.Владелец я еще отбор могу поставить. Но когда условие на Объект.Родитель, то куча однотипных <Документы>меня напрягает

в целом решаемо. Объект.Родитель ВГруппеИзСписка И мозги не надо включать.

Смутно догадываюсь. т.е. где-то в одном месте прописывается (ни в каждом ПКО)? Где?

В обработчике Конвертация_ПередКонвертациейОбъекта у меня ничего нет (в остальных тоже). Тем не менее справочники по ссылкам выгружаются не полностью. В ПКО этих справочников никаких ограничений, и галочка "Не выгружать объкты свойств источника по ссылкам" не стоит. Где может быть прописано это ограничение, куда копать?

Может где=то в УниверсальныйОбменДаннымиXML какую=то галочку надо снять или поставить?

Это Конвертация_ПослеЗагрузкиПравилОбмена. Конвертация_ПослеЗагрузкиДанных - всего 15, только в них, или где-то еще?

+ ПКО самого справочника. Больше нигде не может быть ограничения, что справочник не выгружается (полностью) по ссылке?

А это не связано с обновлением КД, обновился до релиза 2.1.7.1? Может какие новшества ввели, о которых я не догадываюсь?

устанавил владельца, родитель.наименование содержит док

тебе необходимо установить галку "Не замещать существующие объекты в приемнике при загрузке, а только создавать новые и заполнять их"

УПП консолидирующая база, собирает документы из всех УТ. В каждой УТ по 1-2 организации, а УПП - все. Раньше обмен документами был односторонний - УТ-УПП, из УПП выгружались только справочники структуры компании: организации, подразделения. Теперь потребовалось выгружать документы оплаты + заявки на расход ДС. Поэтому их потребовалось фильтровать по организациям. Вроде эта задача решена успешно. Теперь возникла противоположная проблема , озвучена в . Например, из УТ в УПП пришел документ с ошибкой: Выбран договор контрагента, не соответствующий организации, указанной в документе! Смотрю договор, организация соответствует (он уже был в УПП), но у него затерты код и наименование!? Получается, что договор криво выгрузился? А установить галку "Не замещать существующие объекты в приемнике. " крайне нежелательно, в договор могли внести изменения на стороне УТ.

Читайте также: