#0
by Dwarrior
Здравствуйте уважаемые! Вопрос наверное теоретический, поэтому начнем с конца - как можно управлять порядком выгрузки объектов в файл обмена (Message_000_001) по плану обмена? Функция ПланыОбмена.ЗаписатьИзменения не предполагает нужных параметров. Зачем это нужно? Потому что в приемнике, при загрузке данных, стоит триггер, который отбирает загружаемые данные. Например, загружаемый документ "Накладная" анализируется по полю "Получатель". А сам получатель идет в этом же файле обмена, но позже накладной. При загрузке документа он ессно еще не виден. Мне видится единственное пока решение - упорядочить объекты внутри файла обмена. Каково ваше мнение?
#1
by zender
как вариант самому формировать файл обмена, см. ВыбратьИзменения(<Узел>, <НомерСообщения>, <ФильтрВыборки>)
#4
by Sammo
Типовые выгрузки не поддерживают Варианта 2 1. На стороне выгрузки делать свою нетиповую настраиваемую выгрузку - выгружать через запрос + настройка метаданных для выгрузки. 2. На стороне загрузки предполагать, что данные могут приходит в неправильном порядке. В данном случае, например, либо грузить дважды, либо объекты с недостающей информацией агрегировать и обрабатывать в конце загрузки
#5
by Dwarrior
Триггер принимает решение, выгружать ли документ в другие базы на основании поля Получатель. Без триггеров не обойтись, т.к. там каскадная цепочка - документ попадает в получатель, а у того еще свои получатели есть, куда нужно выгружать этот же документ спасибо, мудрый совет. Если действовать по второму варианту - будет ли в конце первого прохода выгрузки видны результаты? Или это надо обработать транзакциями?
#6
by Aleksey
"При загрузке документа он ессно еще не виден. " Это не так. Загружается сразу и ссылка на получатель. В твоем случае получателя не будет только в одном случае. Если получатель - новый элемент. Но у тебя это не так, ибо количество получателей фиксированно и оно однозначно уже есть в базе
#7
by Dwarrior
Поверьте, такие ситуации могут быть. Я упростил пример, для лучшего понимания. В реальности, анализ идет каскадно - У Накладной есть поле Контрагент, у которого есть поле Получатель. Как-то так. Да, сам получатель известен, но контрагент может быть новым элементом.
#8
by Aleksey
Перенести контрагент в реквизит документа и заполнять автоматом при выборе контрагента
#9
by Jolly Roger
сложная схема обмена - потенциальный гемор. но, в любом случае, информации в уже достаточно...
#10
by Sammo
Тут еще такой момент. Если рулить на стороне загрузке, то удобнее, чтобы был не 1 файл на все, а отдельный файл на каждый объект. Тогда сначала прогружаешь только то, что без ошибок, а вторым проходом идешь по незагруженному. Но тоже не без недостатков. Если идет 1 блоком, то все грузить в 1 большой транзакции не стоит (транзакция на запись пары сотен документов будет забавна). Значит вполне реально сохранить документ (например) с битой ссылкой, закинуть в массив для пост обработки. А в конце загрузки обработать массив - там уже получатель должен быть заполнен. Как вариант еще пытаться обработать документ при загрузке и если проблемы (нет получателя, например), то только в этом случае писать в массив. Еще может быть вариант, что система отправитель сама будет отдавать кому надо в зависимости от получателя при выгрузке.
#12
by Aleksey
Т.е. при загрузки писать в РС "Загруженные обеъекты" А при выгрузки анализировать этот РС и выгружать при необходимости
#13
by Dwarrior
- Пробовал так, но в этом случае не срабатывает триггер ПриОтправкеДанныхПодчиненному на стороне отправителя. А это тоже нужно:) Если заставить срабатывать это событие при такой "ручной" выгрузке - было бы замечательным решением!
#14
by Dwarrior
Самым приемлимым, на мой взгляд, управлением на стороне загрузки - это собирать непонятные объекты в конце выгрузки и анализировать еще раз. А вот вариант с управлением на стороне выгрузки - я писал уже, что пробовал. Через ВЫбратьИзменения, потом ЗаписатьXML. Но при этом не срабатывает событие ПриОтправкеДанныхПодчиненному. Может я что-то не так делаю?
#15
by hhhh
может ничего не предпринимать? Просто запустить два обмена подряд. В первом обмене получатель подхватится, накладная не пройдет, поэтому она автоматом на следующий обмен зарегистрируется. НУ и во второй раз спокойно загрузится.
#17
by Dwarrior
Тоже вариант, не столь красивый, но все же Да верно, но какое это отношение имеет к алгоритму? Алгоритм должен обрабатывать все возможные варианты С управлением выгрузкой никто ничего не подскажет? ВыбратьИзменения позволяет выбирать изменения конфигурации? Наверное нет? План обмена у меня распределенный, или как правильно выразиться.
Тэги: 1С 8
Ответить:
Комментарии доступны только авторизированным пользователям
Похожие вопросы 1С
- Как изменить порядок выгрузки изменении при обмене РИБ
- Порядок выгрузки объектов: Конвертация данных
- Порядок выгрузки данных через план обмена
- Настройка порядок выгрузки объектов в КД 2.1
- Можно ли в конвертации данных настроить порядок выгрузки объектов
- БСП 2. Привязка Правил обмена/регистрации к Плану обмена
- Порядок выгрузки объектов при обмене УТ-БП, порядок проведения документов
- Конвертация данных порядок обработки правил выгрузки данных
- Порядок вызова процедур в расширении... Не порядок
В этой группе 1С
- Как из СКД сохранить данные отчета в документ?
- СокрЛП, Записать объект не работает.
- Обработка заполнения ТЧ - как вызвать пересчет на форме?
- Объединить журналы регистрации
- Не проводится Отчет о розничных продажах УТ11
- КД: Выбор основного договора контрагента в базе приемнике?
- Счет-фактура выданный в БГУ
- ФабрикаXDTO. Атрибут schemaLocation. Как?
- v7: Как вывести синоним вместо вида документа? Что-то не могу вспомнить.
- УПП, РАУЗ ненулевая сумма при нулевом количестве после Расчета себестоимости
- Ошибка совместного доступа к файлу
- Клиент-серверный вариант, как правильно настроить выгрузку ИБ?
- v8: Как вставить содержимое буфера обмена в Word файл средствами 1с8?
- УПП РАУЗ Отрицательные остатки в регистре учета затрат
- 1с 8.1 запрос на выбор типа регистратора
- Обмен данными между УТ 10.3 и БП 1.6. Распроводятся документы
- 1С 8.2 ЗУП Начисление арендной платы арендодателю.
- язык запросов: два реквизита в одно поле
- Подксажите, как открыть 2 разных документа в разных вкладках (Excel 2010) ?
- Настройки пользователей на УФ