1с конвертация данных не выгружать объекты свойств источника по ссылкам
Из УПП в УТ надо выгрузить ограниченный по типу список документов - документы оплаты. Но в расшифровке платежа этих документов содержатся другие доки. И все они поперлись в УТ, хотя они там уже есть, и вновь их грузить нежелательно. В ПКО КД есть галочка "Не выгружать объкты свойств источника по ссылкам". Конечно, можно пройтись по ПКО каждого документа, и проставить эту галочку. А можно ли в КД где-то, как-то прописать в одном месте, чтобы галочки не ставить, а документы по ссылкам не выгружались?
На это уйдет 15-20 минут. И я еще не решил окончательно- надо ли мне так. Может, придется обратно снимать эти галочки. Для эксперемента программно прописать в КД это можно для всех ПКО документов? В ПКО каждого документа? Проще галочки ставить. Подробнее можно?
На Объект.Владелец я еще отбор могу поставить. Но когда условие на Объект.Родитель, то куча однотипных <Документы>меня напрягаетДокументы>
В обработчике Конвертация_ПередКонвертациейОбъекта у меня ничего нет (в остальных тоже). Тем не менее справочники по ссылкам выгружаются не полностью. В ПКО этих справочников никаких ограничений, и галочка "Не выгружать объкты свойств источника по ссылкам" не стоит. Где может быть прописано это ограничение, куда копать?
Это Конвертация_ПослеЗагрузкиПравилОбмена. Конвертация_ПослеЗагрузкиДанных - всего 15, только в них, или где-то еще?
+ ПКО самого справочника. Больше нигде не может быть ограничения, что справочник не выгружается (полностью) по ссылке?
А это не связано с обновлением КД, обновился до релиза 2.1.7.1? Может какие новшества ввели, о которых я не догадываюсь?
тебе необходимо установить галку "Не замещать существующие объекты в приемнике при загрузке, а только создавать новые и заполнять их"
УПП консолидирующая база, собирает документы из всех УТ. В каждой УТ по 1-2 организации, а УПП - все. Раньше обмен документами был односторонний - УТ-УПП, из УПП выгружались только справочники структуры компании: организации, подразделения. Теперь потребовалось выгружать документы оплаты + заявки на расход ДС. Поэтому их потребовалось фильтровать по организациям. Вроде эта задача решена успешно. Теперь возникла противоположная проблема , озвучена в . Например, из УТ в УПП пришел документ с ошибкой: Выбран договор контрагента, не соответствующий организации, указанной в документе! Смотрю договор, организация соответствует (он уже был в УПП), но у него затерты код и наименование!? Получается, что договор криво выгрузился? А установить галку "Не замещать существующие объекты в приемнике. " крайне нежелательно, в договор могли внести изменения на стороне УТ.
Несколько простых рекомендаций, которые могут ускорить выгрузку и загрузку данных.
Правила Выгрузки данных
1. Порядок правил выгрузки данных
Рекомендуется располагать правила выгрузки данных в таком порядке, что бы ссылки зависимых объектов были снизу вверх. то есть самыми первыми должны располагаться правила выгрузки данных, объекты которых ни на кого не ссылаются, затем должны идти правила выгрузки объектов, ссылающихся на первую группу и т.д.
Пример: Нужно выгрузить два справочника Пользователи и Физические лица. Справочник Пользователи имеет реквизит Физ. лицо - ссылка на справочник Физические лица. То есть справочник Пользователи ссылается на справочник Физические лица. Рекомендуемая последовательность правил выгрузки в этом случае: Физические лица, пользователи.
2. Выбирать данные для выгрузки одним запросом
Если в правиле конвертации нет переноса табличных частей и движений, а так же в событиях перед выгрузкой нет прямых обращений к выгружаемому объекту, рекомендуется в правиле выгрузки данных использовать режим "Выбирать данные для выгрузки одним запросом". Этот режим позволит одним запросом получить все выгружаемые данные определенного типа, а не строить отдельные запросы для выгрузки каждого объекта.
Правила Конвертации объектов
3. Использовать быстрый поиск при загрузке
Этот режим выгрузки и загрузки рекомендуется использовать для тех правил конвертации объектов, которые выгружают ссылочные типы общее количество которых сравнительно небольшое (примерно до 1000 элементов), на которые имеется множество ссылок в других объектов.
Пример: Справочник Пользователи. Практически все документы имеют ссылку на этот справочник и количество элементов справочника не превосходит 1000.
4. Не выгружать объекты свойств по ссылкам
Режим позволяет для правила конвертации объектов не выгружать все элементы на которые есть ссылки. Если режим установлен, то при выгрузке будет выгружен сам объект и информация для поиска всех его ссылок, но полная информация о зависимых элементах выгружена не будет. Эта оптимизация может в несколько раз ускорить выгрузку и загрузку данных.
5. Не запоминать выгруженные объекты
Для правил конвертации не ссылочных объектов (регистров) нужно установить флажок "Не запоминать выгруженные объекты", так как ссылаться на строки регистра нельзя, поэтому нет и смысла запоминать те строки регистров, которые были выгружены. Для ссылочных объектов этот флажок, как правило, нужен, что бы оптимизировать повторное обращение для выгрузки одного и того же объекта.
6. Не делать общих обработчиков событий для всех объектов
Не рекомендуется использовать общие обработчики событий перед выгрузкой и загрузкой данных для всех объектов. Обработки выгрузки и загрузки не знают что будет выполняться в этих обработчиках поэтому некоторые оптимизации (например, при загрузке запись только измененных объектов) действовать не будут. Если есть необходимость использовать одни и те же алгоритмы обработки данных при выгрузке и загрузке, то рекомендуется создать новый Алгоритм, а в событиях у нужных объектов его вызывать.
Обработка "Универсальный обмен данными XML"
7. Использовать оптимизированный формат для обмена данными
8. Загружать данные в режиме обмена
Позволяет отказать от излишних проверок на этапе загрузки данных
9. Записывать только измененные объекты
Позволяет производить запись только измененных объектов в информационную базу. Если объект изменен не был, то при загрузке из файла обмена он не будет перезаписан.
10. Оптимизированная запись объектов
Режим позволяет резко сократить количество обращений в информационной базе для записи объектов.
11. Записывать регистры наборами записей
Режим позволяет записывать изменения в регистрах наборами записей, а не менеджерами записей.
12. Обмен данными через COM
С уважением, Владимир Милькин (преподаватель школы 1С программистов и разработчик обновлятора).
Как помочь сайту: расскажите (кнопки поделиться ниже) о нём своим друзьям и коллегам. Сделайте это один раз и вы внесете существенный вклад в развитие сайта. На сайте нет рекламы, но чем больше людей им пользуются, тем больше сил у меня для его поддержки.
Как мы уже знаем, правила конвертации объектов используются для сопоставления объектов в конфигурациях источнике и приемнике. Естественно, что в правиле задается объект источник данных (то есть откуда брать данные) и объект - приемник данных (то есть куда переносить или записывать данные).
Кроме них имеется еще ряд свойств смысл которых постараемся раскрыть.
Искать объект приемника по внутреннему идентификатору объекта источника - флаг определяющий поиск объектов в приемнике для версии платформы V8. Если этот флажок взведен, то поиск объекта для модификации в базе приемнике осуществляется по внутреннему (уникальному) идентификатору объекта. Этот идентификатор не виден пользователю а средствами программы поддерживается уникальность идентификаторов в информационной базе, так что никакие два объекта информационной базы не имеют одинаковых идентификаторов.
Продолжить поиск по полям поиска, если по идентификатору объект приемник не найден - флаг определяет продолжать поиск объекта в информационной базе приемнике, если поиск по уникальному идентификатору не привел к положительному результату.
Не замещать существующие объекты в приемнике при загрузке, а только создавать новые и заполнять их * - флаг определяет нужно ли выполнять изменение реквизитов объекта в информационной базе приемнике, если объект был успешно найден по уникальному идентификатору или по полям поиска.
Не создавать новый объект в приемнике, если он НЕ найден * - флаг определяет нужно ли создавать новый объект в информационной базе - приемнике, если он не был найден по уникальному идентификатору или по полям поиска.
При переносе объекта по ссылке НЕ создавать новый объект, а только переносить ссылку - флаг определяет нужно ли создавать новый объект в информационной базе - приемнике, если он не был найден по уникальному идентификатору или по полям поиска в том случае если объект переносится по ссылке. Если объект не находится и у него установлен поиск по уникальносу идентификатору то будет перенесена только ссылка на объект (без полей поиска - одна ссылка). Если же объект выгружается непосредственно (то есть выгружается не только ссылка на объект, но и все его реквизиты), то флаг ни на что не влияет.
Не выгружать объекты свойств источника по ссылкам - флаг определяет нужно ли выгружать все объекты на которые есть ссылки у объекта источника или достаточно выгрузить только информацию о ссылках на эти объекты. Допустим вы выгружаете справочник номенклатура. Если у соответствующего ПКО не взведен этот флажок, то кроме номенклатуры будут выгружены все объекты на которые она ссылается. Если же флаг взведен, то объекты на которые ссылается номенклатура выгружены не будут. Попробуйте поставить этот флажок и посмотреть результирующий файл выгрузки данных, а затем убрать его и сравнить результаты. Вам быстро станет понятен его смысл.
Не запоминать выгруженные объекты - флаг определяет нужно ли системе при выгрузке КЭШировать последние выгруженные объекты. КЭШирование позволяет ускорить процесс выгрузки и загрузки данных.
Использовать быстрый поиск объекта при выгрузке и загрузке - флаг определяет использовать ли быстрый поиск объектов для выгрузки. Имеет смысл применять для небольших по количеству записей справочников (Количество записей не более 1000 элементов). Эффект достигается в том случае, если у многих объектов установлен флаг Не выгружать объекты свойств по ссылкам. При такой схеме выгрузки и загрузке данных скорость возрастает в несколько раз.
Автоматически генерировать номер или код, если он не задан - флаг определяет нужно ли системе автоматически генерировать новый код или номер объекта, если перед записью он не заполнен.
On-line обмен
Выгружать объект (полностью), только при наличии на него ссылки - настройка определяет при каких обстоятельствах необходимо выгружать объект. В том случае, если флажок установлен, то выгрузка объекта будет выполнена по следующим правилам:
- По правилам выгрузки если объект уже выгружался, то выгружаем его как есть
- По правилам выгрузки если объект не выгружался, то не выгружаем
- При выгрузке по ссылке на объект выгружаем целиком
Например, если нужно переносить не всю номенклатуру из одной ИБ в другую, а только ту, на которую есть ссылки, то флажок подойдет.
Не замещать объект созданный в информационной базе приемнике при загрузке - настройка определяет нужно ли (обратно) переносить объект, который был создан в информационной базе, с которой организован обмен. То есть, если документ создан в информационной базе 1, при помощи обмена поступил в информационную базу 2, то стоит ли его при изменении в базе 2 переносить в базу 1. Настройка позволяет указать приоритет объекта при обмене по месту его создания. То есть изменения в информационной базе, где был создан объект распространяются везде, а изменения в других базах не влияют на этот объект в базе 1.
Приоритет объекта загрузки - настройка определяет приоритет объекта при загрузке в случае коллизии изменений. Значение по умолчанию и в случае незаполненного значения - Выше. Если произошла коллизия, программа анализирует приоритет объекта загрузки. Только в том случае, если приоритет объекта загрузки равен Выше он будет записан в информационную базу приемника. В случае если приоритет Совпадает или Ниже программа зафиксирует соответствующую информацию о коллизии в информационной базе, но объект менять при этом не будет.
Варианты настроек полей поиска - таблица с возможными вариантами настроек полей поиска для пользователя. Разработчик правил определяет возможные комбинации полей поиска, которые пользователь может выбирать при настройке обмена. Все настройки указанные разработчиком правил должны быть отработаны в коде обработчика "Поля поиска". Переменная НастройкаПоиска в обработчике определяет выбранный пользователем вариант сопоставления (ИмяНастройкиДляАлгоритма из соответствующей строки таблицы). Если пользователь не выбрал ни один вариант сопоставления, или ему ни один вариант не был предложен, то НастройкаПоиска - пустая строка.
На закладке "Дополнительно" можно редактировать наименование правила, вхождение его в определенную группу а так же описание правила.
Примечания:
* Не рекомендуется для использования при настройке on-line обмена
С уважением, Владимир Милькин (преподаватель школы 1С программистов и разработчик обновлятора).
Как помочь сайту: расскажите (кнопки поделиться ниже) о нём своим друзьям и коллегам. Сделайте это один раз и вы внесете существенный вклад в развитие сайта. На сайте нет рекламы, но чем больше людей им пользуются, тем больше сил у меня для его поддержки.
Как мы уже знаем, правила конвертации свойств используются для сопоставления реквизитов обменивающихся объектов. Естественно, что в правиле конвертации задаются реквизит из объекта источника и объекта приемника.
Кроме того, для ссылочных реквизитов можно указать правило конвертации объектов, которое необходимо применить для переноса значения данного реквизита.
Поиск объекта при загрузке по данному свойству - флаг определяющий нужно ли по данному свойству производить поиск объектов в информационной базе приемнике. Если сразу у нескольких реквизитов установлено свойство поиска данных, то условия поиска объединяются по "И". В этом случае правило поиска звучит следующим образом: Найти объект у которых все реквизиты поиска совпадают с источником. (ВНИМАНИЕ. Поиск по уникальному идентификатору, который может быть установлен у правила конвертации объектов более приоритетный, то есть если он установлен то поиск будет выполнен по этому идентификатору).
Отключить обработку данного правила - флаг, позволяет отключить обработку данного свойства, не удаляя его из правил конвертации объектов.
Не замещать значение данного свойства у существующих объектов ИБ - флаг, позволяет отключить обработку данного для объектов информационной базы приемника, которые были найдены по уникальному идентификатору или по полям поиска.
Автоматически приводить значение к длине приемника - флаг, позволяет включить автоматическое приведение Номера или Кода справочника соответствующему значению в приемнике по длине. При этом префиксы сохраняются, а числовые части преобразуются под длину поля в приемнике.
ТОЛЬКО ДЛЯ ОБМЕНА V8 - V8
Функционал, позволяющий передавать дополнительные параметры в информационную базу приемник из источника.
Передавать данные в приемник - флаг определяет куда будут помещены данные при загрузке. Непосредственно в найденный для изменения объект.
Передавать данные в параметр - флаг определяет куда будут помещены данные при загрузке. В отдельное соответствие для данного объекта, но не в сам объект. Этот подход удобен когда нужно передать какое либо значение в приемник, но нет реквизита куда нужно его поместить. Впоследствии анализируя дополнительные параметры можно изменить логику заполнения объекта приемника. В правилах необходимо указать имя параметра куда нужно поместить данные. Для табличных частей и наборов движений для каждой строки формируется отдельная структура в которой хранится информация.
Доступ к этим данным возможен в событии правила конвертации объекта "После загрузки". Например, так:
Выгружать элементы группы через промежуточный файл - флаг определяет как выгружать объекты данного типа, через промежуточный файл (экономично с точки зрения оперативной памяти) или напрямую через память (оптимально по скорости, но при больших объемах передаваемых данных оперативная память может закончится).
На закладке "Дополнительно" можно редактировать вхождение правила в определенную группу, а так же его описание. Наименование правила формируется автоматически и недоступно для изменения.
С уважением, Владимир Милькин (преподаватель школы 1С программистов и разработчик обновлятора).
Как помочь сайту: расскажите (кнопки поделиться ниже) о нём своим друзьям и коллегам. Сделайте это один раз и вы внесете существенный вклад в развитие сайта. На сайте нет рекламы, но чем больше людей им пользуются, тем больше сил у меня для его поддержки.
что значит проблема не в правилах ссылки не найдены, значит поля поиска не соответствуют в чём трабла-то
да такого быть не могёт сколько лет юзаю КД, ни разу такого не было скорее дубли будут, нежели пустые ссылки
Т.е. стандартный механизм не способен выгружать элементы справочников целиком по ссылкам? Если я беру свои правила, запускаю конфу в обычном режиме, запускаю V8Exchan82.epf, делаю выгрузку, то все проходит
просто это неправильно при каждом обмене 1000 элементов номенклатуры туда-сюда гонять. В самом начале делаешь синхронизацию справочников. А при обмене пересылаешь только если новый элемент номенклатуры или измененный.
Я могу ответить на этот вопрос. Ты используешь старую УТ. И старую обработку обмена данными xml. Раньше, до какого-то момента, при выгрузке выгружались не объекты, а ссылки на них (в типовых). То есть подразумевалось, что перед обменом все объекты в источнике и приемнике будут синхронизированы. Открыв код обработчика выгрузки, а лучше сам xml-файл - ты можешь убедиться в моей правоте. А правила обмена, соответсвенно, тут ни при чем. Используй свежую обработку выгрузки, вытащи ее из свежего релиза любой типовой конфы и адаптируй для обмена данными. Либо сначала засинхронь (выгрузи-загрузи) все объекты, которые выгружаются в виде ссылок. Так обмен будет происходить быстрее, актуально, если в день 100500 документов выгружать надо.
проще регистрацией в плане обмена управлять. выгрузить всю номенклатуру и потом ее с регистрации снять
Так и пришлось сделать. Но в моем случае это как костыль. Мне не надо регать всю новую номенклатуру в плане, а только которую входит в документ нужный. Поэтому при регистрации документа регистрирую номенклатуру + еще справочник НомераГТД.
и тем не менее. Разраты УТ (или БСП) вдруг решили послушать "умного" советчика типа и сделали как описано в . Галку в КД "Не выгружать объекты свойств источника по ссылкам" видимо тоже не заметили. Сейчас, видимо, опомнились.
типовой обмен открой. При настройке нового обмена первым делом предлагает синхронизировать справочники.
Надо принудительно зарегить в обмен какой-то объект, который криво грузится. Произвести выгрузку в файл, посмотреть результат. Если объект находится в файле, значит проблема на стороне приемника и искать там. Если в файле пусто, тогда анализируем сначала правила, если вроде все должно попадать, тогда трассировка поможет. Примерно так.
Читайте также: