Обмен по плану обмена, не выгружаются объекты.
Здравствуйте,
Проблема, если сталкивались- отзовитесь.
Пишу правила обмена из УПП в другую конфигурацию, использую механизм обмена- то есть создал план обмена, добавил настройку, подгрузил правила.
Пробую выгрузить Номенклатуру, в ней у меня есть единица измерения. изменяю номенклатуру, выгружаю- выгружается только Номенклатура а Единица измерения выгружаются только свойства по которым идет поиск, при этом если использовать просто универсальный обмен обработку- все выгружается как надо.
бьюсь второй день, не знаю как починить.
Проблема, если сталкивались- отзовитесь.
Пишу правила обмена из УПП в другую конфигурацию, использую механизм обмена- то есть создал план обмена, добавил настройку, подгрузил правила.
Пробую выгрузить Номенклатуру, в ней у меня есть единица измерения. изменяю номенклатуру, выгружаю- выгружается только Номенклатура а Единица измерения выгружаются только свойства по которым идет поиск, при этом если использовать просто универсальный обмен обработку- все выгружается как надо.
бьюсь второй день, не знаю как починить.
По теме из базы знаний
- 1С8:борьба - личный опыт работы с платформой 1с8
- Выгрузка-загрузка любых данных из 1С (и измененных) в XML между похожими конфигурациями (ФАЙЛ, HTTP, COM) ЛЮБЫХ баз 1С 8.1-8.3 с обработкой и поиском данных по произвольным полям поиска
- Планы обмена 1С
- Универсальный обмен данными XML (с гибкими отборами и сохранением вариантов настроек)
- Как не внедрить 1С:ERP 2 за один год, но через три распилить монолит?
Ответы
Подписаться на ответы
Инфостарт бот
Сортировка:
Древо развёрнутое
Свернуть все
Если номенклатура у вас выгружается напрямую (т.е. регистрируется в плане обмена, а в правилах есть соответствующее правило выгрузки данных (ПВД)), то для ПКО ЕдиницыИзмерения попробуйте сделать следующее:
1. На вкладке On-line обмен настройки правил поставить галочку "Выгружать объект (полностью), только при наличии на него ссылки".
Если не поможет, то...
2. На вкладке "Настройки" правил конвертации объекта "ЕдиницыИзмерения" поставить галочку "Не запоминать выгруженные объекты".
1. На вкладке On-line обмен настройки правил поставить галочку "Выгружать объект (полностью), только при наличии на него ссылки".
Если не поможет, то...
2. На вкладке "Настройки" правил конвертации объекта "ЕдиницыИзмерения" поставить галочку "Не запоминать выгруженные объекты".
Добрый день, IgorXml. ПКО - делала вручную, так как обмениваюсь самописными документами. Из УТ11 (под 8.3) необходимо передавать документ в Бухгалтерию для Беларуси (1.6) - аналог 2.0. Самое странное, что если я использую обработку V8Exchange82(3), то все ссылки красиво передаются.. а вот через план обмена - вот такие проблемы. Может ест какие-то ньюансы в настройке самого плана обмена, или все-таки ошибки нужно искать в самих правилах конвертации?
"На вкладке On-line обмен настройки правил поставить галочку..."
Обмен не онлайн из БСП, а УПП шный
"На вкладке "Настройки" правил конвертации объекта "ЕдиницыИзмерения" поставить галочку "Не запоминать выгруженные объекты"..."
Все бы нечего, да только я выгружаю 1 номенклатуру(только она одна у нас зарегестрированна) и соответственно 1 едИзм по ссылке, то есть ему еще нечего не мешает запоминать, а он все равно только ссылку выгружает и поля поиска без других реквизитов.
Обмен не онлайн из БСП, а УПП шный
"На вкладке "Настройки" правил конвертации объекта "ЕдиницыИзмерения" поставить галочку "Не запоминать выгруженные объекты"..."
Все бы нечего, да только я выгружаю 1 номенклатуру(только она одна у нас зарегестрированна) и соответственно 1 едИзм по ссылке, то есть ему еще нечего не мешает запоминать, а он все равно только ссылку выгружает и поля поиска без других реквизитов.
При такой настройке единицы всегда прилетают даже при выгрузках в несколько тысяч карточек.
Да, и под On-line обменом подразумевается как раз обмен через План обмена. Соответственно НЕ On-line - это выгрузка вручную при помощи обработки "Универсальный обмен данными XML".
Да, и под On-line обменом подразумевается как раз обмен через План обмена. Соответственно НЕ On-line - это выгрузка вручную при помощи обработки "Универсальный обмен данными XML".
Решился вопрос? Я сейчас тоже с такой проблемой столкнулся, но при переносе документа контрагент не полностью переносится. После того как поставил галочку в "on-line обмен" при попытке обмена просто закрывается процесс 1С... без каких либо ошибок.
(8) Гость, такая ситуация возможно в следующем случае (на примере):
У номенклатуры стоит признак "Не запоминать выгруженные объекты", и у единицы измерения, которая ссылается на номенклатуру - тоже стоит признак "Не запоминать выгруженные...". В результате имеем бесконечную выгрузку объектов.
В данном случае - у номенклатуры галочки быть не должно, галочка должна стоять только у единиц измерения.
У номенклатуры стоит признак "Не запоминать выгруженные объекты", и у единицы измерения, которая ссылается на номенклатуру - тоже стоит признак "Не запоминать выгруженные...". В результате имеем бесконечную выгрузку объектов.
В данном случае - у номенклатуры галочки быть не должно, галочка должна стоять только у единиц измерения.
Добрый день! и у меня такая же проблема (выгружаю документ - в нем есть ссылки на справочники), документ выгружается, а элементы справочников - нет. Если в базе приемнике ест такой элемент справочника - все ок, объект подставляеется. Если же не найден - просто пишет, что объект не найден.Через универсальный обмен XML (вручную) - все срабатывает. Использую Онлайн-обмен, создано ПВД на документ, во всех ПКО справочников проставлены галки "Выгружать объект (полностью), только при наличии на него ссылки", "Не запоминать выгруженные объекты"... но не помогло....((( Может кто-то знает еще какие-нибудь опции? Заранее, спасибо, за помощь!!!
insurgut, спасибо за ответ! Сейчас играю с настройками...но с переменным успехом (перед выгрузкой ничего не переопределяется, в настройках сняты все галки кроме "Не запоминать выгруженные объекты", для некоторых объектов "Генерировать номер и/или код если не найден"). Подскажите, еще, пожалуйста как быть со след. справочниками:
ПВД - только для выгрузки документов.
1) В документе есть ссылка на спр.Пользователи, а в спр.Пользователи - ссылка на спр.ФизЛица. В каком из справочников нужно устанавливать галки для онлайн-обмена?
2) перенос 3х справочников в 1. В базе-Источнике 3 справочника, в базе приемнике - 1. Ищу по Наименованию. В первом ПКО в обработчике после выгрузки пытаюсь найти по наименованию ссылки на другие справочники, если найдено, то передаю правила на другие ПКО. В документе в реквизите ТЧ - составной тип данных, указываю выгружать по первому ПКО. Во всех 3х ПКО проставлены галки "Выгружать объект (полностью), только при наличии на него ссылки", "Не запоминать выгруженные объекты". Выгружаются (не всегда) объекты только по 1му ПКО.
И последний момент. При повторной попытке загрузить данные в базу-приемник валится ошибка "{Обработка.ОбменДаннымиXML.МодульОбъекта(5904)}: Ошибка при вызове метода контекста (Свойство): Задано неправильное имя атрибута структуры". Приходится после обмена чистить базу от загруженных документов. Когда документов нет, то все проходит без ошибок.
Может, какие-то настройки в плане обмена не срабатывают? (План обмена создала в конфиге, включила туда переносимый документ, в режиме предприятия создала узел обмена, в спр.Настройки обмена данными загрузила правила, т.к. обмен односторонний, то использовала пустышку из Конвертации)
ПВД - только для выгрузки документов.
1) В документе есть ссылка на спр.Пользователи, а в спр.Пользователи - ссылка на спр.ФизЛица. В каком из справочников нужно устанавливать галки для онлайн-обмена?
2) перенос 3х справочников в 1. В базе-Источнике 3 справочника, в базе приемнике - 1. Ищу по Наименованию. В первом ПКО в обработчике после выгрузки пытаюсь найти по наименованию ссылки на другие справочники, если найдено, то передаю правила на другие ПКО. В документе в реквизите ТЧ - составной тип данных, указываю выгружать по первому ПКО. Во всех 3х ПКО проставлены галки "Выгружать объект (полностью), только при наличии на него ссылки", "Не запоминать выгруженные объекты". Выгружаются (не всегда) объекты только по 1му ПКО.
И последний момент. При повторной попытке загрузить данные в базу-приемник валится ошибка "{Обработка.ОбменДаннымиXML.МодульОбъекта(5904)}: Ошибка при вызове метода контекста (Свойство): Задано неправильное имя атрибута структуры". Приходится после обмена чистить базу от загруженных документов. Когда документов нет, то все проходит без ошибок.
Может, какие-то настройки в плане обмена не срабатывают? (План обмена создала в конфиге, включила туда переносимый документ, в режиме предприятия создала узел обмена, в спр.Настройки обмена данными загрузила правила, т.к. обмен односторонний, то использовала пустышку из Конвертации)
(14) ruvik07, "в ПКО для справочников пробовала принудительно прописать поля поиска, но с ними и без - не работает" С этого и надо начинать. Надо правильно прописать ПКО для него. И для начала перенести хоть один объект справочника, но не создавать. Для этого изменить какой-нить строковый реквизит. Потом уже настроить на добавление нового объекта. И потом уже перейти к документу. Из какой в какую конфигураций переносите?
IgorXml, да - переносится, я зарегистрировала изменения для нескольких объектов и перенесла их. Для этого в Конвертации включила ПВД для справочника. Но для моей текущей задачи нужно обмениваться только документами (соответственно ПДВ для всех справочников были отключены), или каким-то образом можно настроить выгрузку только тех элементов справочников,ссылки на которые имеются в документах? Заранее, спасибо за ответ!)
Ниже выкладываю правила и метаданные баз Источника и приемника
Прикрепленные файлы:
ExchangeRules.xml
МетаданныеУТ11_27052014.xml
МетаданныеБУ82_27052014.xml
Пробуй, внимание обратить на перенос "Пользователей" (ответственных) и далее по ссылке Физ лиц.
Прикрепленные файлы:
ExchangeRules.xml
Всем спасибо за помощь! Вопрос разрешился. Мои правила были рабочими. Ошибки были найдены в настройках Плана обмена в УТ11, пришлось допиливать кое-что. Так как по умолчанию, принудительно проставлялось - не выгружать объекты по ссылкам.
В общем модуле ОбменДаннымиСервер Функция ПолучитьОбработкуОбменаДаннымиДляВыгрузки(СтруктураНастроекОбмена)
Изменить строку
ОбработкаОбменаДанными.НеВыгружатьОбъектыПоСсылкам = Истина;
На что-то вроде этого:
Если ТипЗнч(СтруктураНастроекОбмена.УзелИнформационнойБазы) = Тип("СвойПланОбмена") Тогда
ОбработкаОбменаДанными.НеВыгружатьОбъектыПоСсылкам = Ложь;
Иначе
ОбработкаОбменаДанными.НеВыгружатьОбъектыПоСсылкам = Истина;
КонецЕсли;
При этом в своем(созданном) плане обмена должен обязательно быть реквизит РежимВыгрузкиПриНеобходимости, макет
ПравилаРегистрации и добавлены правила регистрации объектов, где для объектов, переносимых по ссылкам (в моем случае - справочники) нужно указать признак РежимыВыгрузкиОбъектовОбмена "ВыгружатьПриНеобходимости".Когда это поле не заполнено, подчиненные объекты игнорятся....
Дело в том, что в УТ11 почему-то считается что все объекты переносятся непосредственно... очень странно. Дополнительно, в базе приемнике (Бухгалтерия) пришлось поправить обработку ОбменДаннымиXML (процедура ЗагрузитьПравилоКонвертации) валилась ошибка на неопределенность структуры. Ниже код:
ИначеЕсли ИмяУзла = "ПоискПоТабличнымЧастям" Тогда
Значение = одЗначениеЭлемента(ПравилаОбмена, одТипСтрока);
Для Номер = 1 По СтрЧислоСтрок(Значение) Цикл
ТекущаяСтрока = СтрПолучитьСтроку(Значение, Номер);
СтрокаПоиска = ОтделитьРазделителем(ТекущаяСтрока, ":");
СтрокаТаблицы = ТаблицаПоискПоТЧ.Добавить();
СтрокаТаблицы.ИмяЭлемента = ТекущаяСтрока;
СтрокаТаблицы.ПоляПоискаТЧ = Новый Массив();
Пока Истина Цикл
//ТекущееПоле = ОтделитьРазделителем(СтрокаПоиска, ",");
//Если ПустаяСтрока(ТекущееПоле) Тогда
// Прервать;
//КонецЕсли;
//СтрокаТаблицы.ПоляПоискаТЧ.Добавить(СокрЛП(ТекущееПоле));
//так было
///-> Изменения 29.05.2014
ТекущееПоле = ЛЕВ(СтрокаПоиска, Найти(СтрокаПоиска, ",") - 1);
СтрокаПоиска = ПРАВ(СтрокаПоиска, СтрДлина(СтрокаПоиска) - СтрДлина(ТекущееПоле) - 1);
СтрокаТаблицы.ПоляПоискаТЧ.Добавить(СокрЛП(ТекущееПоле));
Если Найти(СтрокаПоиска, ",") = 0 Тогда
Прервать;
КонецЕсли;
///-< Изменения 29.05.2014
КонецЦикла;
СтрокаТаблицы.ПоляПоискаТЧ.Добавить(СокрЛП(СтрокаПоиска));
КонецЦикла;
Проверили другой обмен УТ11 - УТ10 - такая же ситуация, в УТ10 тоже меняли это место.
Глубоко не разбирались из-за нехватки времени, но складывается впечатление, что есть какие-то проблемы в последних версиях УТ11....но возможно, я и ошибаюсь.
Надеюсь, эта информация кому-то поможет скоротать время на устранение похожих проблем. Еще раз спасибо всем, кто откликнулся и помог!!!
Изменить строку
ОбработкаОбменаДанными.НеВыгружатьОбъектыПоСсылкам = Истина;
На что-то вроде этого:
Если ТипЗнч(СтруктураНастроекОбмена.УзелИнформационнойБазы) = Тип("СвойПланОбмена") Тогда
ОбработкаОбменаДанными.НеВыгружатьОбъектыПоСсылкам = Ложь;
Иначе
ОбработкаОбменаДанными.НеВыгружатьОбъектыПоСсылкам = Истина;
КонецЕсли;
При этом в своем(созданном) плане обмена должен обязательно быть реквизит РежимВыгрузкиПриНеобходимости, макет
ПравилаРегистрации и добавлены правила регистрации объектов, где для объектов, переносимых по ссылкам (в моем случае - справочники) нужно указать признак РежимыВыгрузкиОбъектовОбмена "ВыгружатьПриНеобходимости".Когда это поле не заполнено, подчиненные объекты игнорятся....
Дело в том, что в УТ11 почему-то считается что все объекты переносятся непосредственно... очень странно. Дополнительно, в базе приемнике (Бухгалтерия) пришлось поправить обработку ОбменДаннымиXML (процедура ЗагрузитьПравилоКонвертации) валилась ошибка на неопределенность структуры. Ниже код:
ИначеЕсли ИмяУзла = "ПоискПоТабличнымЧастям" Тогда
Значение = одЗначениеЭлемента(ПравилаОбмена, одТипСтрока);
Для Номер = 1 По СтрЧислоСтрок(Значение) Цикл
ТекущаяСтрока = СтрПолучитьСтроку(Значение, Номер);
СтрокаПоиска = ОтделитьРазделителем(ТекущаяСтрока, ":");
СтрокаТаблицы = ТаблицаПоискПоТЧ.Добавить();
СтрокаТаблицы.ИмяЭлемента = ТекущаяСтрока;
СтрокаТаблицы.ПоляПоискаТЧ = Новый Массив();
Пока Истина Цикл
//ТекущееПоле = ОтделитьРазделителем(СтрокаПоиска, ",");
//Если ПустаяСтрока(ТекущееПоле) Тогда
// Прервать;
//КонецЕсли;
//СтрокаТаблицы.ПоляПоискаТЧ.Добавить(СокрЛП(ТекущееПоле));
//так было
///-> Изменения 29.05.2014
ТекущееПоле = ЛЕВ(СтрокаПоиска, Найти(СтрокаПоиска, ",") - 1);
СтрокаПоиска = ПРАВ(СтрокаПоиска, СтрДлина(СтрокаПоиска) - СтрДлина(ТекущееПоле) - 1);
СтрокаТаблицы.ПоляПоискаТЧ.Добавить(СокрЛП(ТекущееПоле));
Если Найти(СтрокаПоиска, ",") = 0 Тогда
Прервать;
КонецЕсли;
///-< Изменения 29.05.2014
КонецЦикла;
СтрокаТаблицы.ПоляПоискаТЧ.Добавить(СокрЛП(СтрокаПоиска));
КонецЦикла;
Проверили другой обмен УТ11 - УТ10 - такая же ситуация, в УТ10 тоже меняли это место.
Глубоко не разбирались из-за нехватки времени, но складывается впечатление, что есть какие-то проблемы в последних версиях УТ11....но возможно, я и ошибаюсь.
Надеюсь, эта информация кому-то поможет скоротать время на устранение похожих проблем. Еще раз спасибо всем, кто откликнулся и помог!!!
то же столнулся с подобной сиуацией,
создал план обмена, создал правила обмена, проверил правила ч/з универсальный обмен - все норм, попробовал ч/з план обмена, и вот тут меня ждал большой облом, ч/з план обмена не вытягивается объект по ссылке, т.е. получается например в РТиУ контрагент, номенклатура и т.д. - ссылка без самого объекта,
сделал так, в ПВД выгружаю все ссылочные типы через ВыгрузитьПоПравилу(Объект..., , , , "ИмяПКО"), но пока еще до конца не победил
создал план обмена, создал правила обмена, проверил правила ч/з универсальный обмен - все норм, попробовал ч/з план обмена, и вот тут меня ждал большой облом, ч/з план обмена не вытягивается объект по ссылке, т.е. получается например в РТиУ контрагент, номенклатура и т.д. - ссылка без самого объекта,
сделал так, в ПВД выгружаю все ссылочные типы через ВыгрузитьПоПравилу(Объект..., , , , "ИмяПКО"), но пока еще до конца не победил
Обнаружил интересный нюанс при обмене УТ 11.0 - БП 2.0.
При выгрузке ссылки на выгруженные объекты записываются в регистр сведений "Соответствие объектов информационных баз". При повторной выгрузке этих же объектов по ссылкам выгружаются только ссылки (уникальный идентификатор и поля поиска).
Следовательно возможна следующая ситуация. Если зарегистрировать к выгрузке какие-нибудь документы и произвести выгрузку, то номенклатура и контрагенты выгрузятся полностью. Если после этого почистить регистрацию, снова зарегистрировать эти же документы и произвести выгрузку, то выгрузятся только ссылки на номенклатуру и контрагентов.
При выгрузке ссылки на выгруженные объекты записываются в регистр сведений "Соответствие объектов информационных баз". При повторной выгрузке этих же объектов по ссылкам выгружаются только ссылки (уникальный идентификатор и поля поиска).
Следовательно возможна следующая ситуация. Если зарегистрировать к выгрузке какие-нибудь документы и произвести выгрузку, то номенклатура и контрагенты выгрузятся полностью. Если после этого почистить регистрацию, снова зарегистрировать эти же документы и произвести выгрузку, то выгрузятся только ссылки на номенклатуру и контрагентов.
Маленькое дополнение: "ТолькоПолучитьУзелСсылки = Ложь" поможет только в том случае, если не будет циклических ссылок.
Например: для ПКО "Контрагент" установлено "ТолькоПолучитьУзелСсылки = Ложь"; есть ПКС "ОсновнойБанковскийСчет", в банковском счете есть реквизит "владелец" - ссылка на контрагента (которая выгружается используя ПКО "Контрагент"). При выгрузке контрагента с заполненным банковским счетам программа вывалится от переполнения стека (ПКО "Контрагент" -> ПКС "ОсновнойБанковскийСчет" -> ПКО "БанковскийСчет" -> ПКС "Владелец" -> ПКО "Контрагент".. и так до бесконечности).
Если все же выгрузка необходима - правильно будет в ПКС "основной банковский счет" перед выгрузкой указать "ВыгрузитьОбъект = Истина" (и соответственно не указывать ТолькоПолучитьУзелСсылки для контрагента).
Например: для ПКО "Контрагент" установлено "ТолькоПолучитьУзелСсылки = Ложь"; есть ПКС "ОсновнойБанковскийСчет", в банковском счете есть реквизит "владелец" - ссылка на контрагента (которая выгружается используя ПКО "Контрагент"). При выгрузке контрагента с заполненным банковским счетам программа вывалится от переполнения стека (ПКО "Контрагент" -> ПКС "ОсновнойБанковскийСчет" -> ПКО "БанковскийСчет" -> ПКС "Владелец" -> ПКО "Контрагент".. и так до бесконечности).
Если все же выгрузка необходима - правильно будет в ПКС "основной банковский счет" перед выгрузкой указать "ВыгрузитьОбъект = Истина" (и соответственно не указывать ТолькоПолучитьУзелСсылки для контрагента).
(33)
У меня так и не получилось
Суть проблемы.
Выгружаю только документы. В документе есть Организация выгружал ее через ПКО - не подхватывается ОсновнойБанковскийСчет.
ПВД Организации отключен.
Пока в документе не прописал ВыгрузитьПоПравилу(источник.организация,,,,"Организации")
не мог проставить основнойбанковскийсчет.
При ТолькоПолучитьУзелСсылки = Ложь; получил переполнение стека.
ВыгрузитьОбъект = Истина; не помогло
У меня так и не получилось
Суть проблемы.
Выгружаю только документы. В документе есть Организация выгружал ее через ПКО - не подхватывается ОсновнойБанковскийСчет.
ПВД Организации отключен.
Пока в документе не прописал ВыгрузитьПоПравилу(источник.организация,,,,"Организации")
не мог проставить основнойбанковскийсчет.
При ТолькоПолучитьУзелСсылки = Ложь; получил переполнение стека.
ВыгрузитьОбъект = Истина; не помогло
Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот