1с 8.2 как выгрузить справочник с учетом некого фильтра по группе Номенклатуры ?

Суть вопроса с начала и попорядку:
Требуется настроить выгрузку данных с 1с Бухгалтерии предприятия для Украины (БП) в 1с Управление Торговлей для Украины (УТ). в иделе было бы автоматическую.
Но выгружать нужно только:
С БП > УТ -только справочник номенклатуры с фильтром по группе Номенклатуры.
с УТ > < БП - нужно выгружать в двухстороннем порядке документы ЗаказПокупателей(УТ) в Счет на оплату покупателя(БП)
и обратно в той же последовательности если статус в БП изменился на _оплачен_
Пытался это сделать с помощью встроенных механизмов что в УТ что БП.
Результат был
но не было автоматического запуска ? - такое вообще возможно
не было места как сделать фильтр справочника что бы попадала только нужная номенклатура.
Пол ночи провозился с конфигурацией конвертация данных и еще больше запутался, интуитивно понимаю что должно быть место где я могу сделать что-то вроде:
Select * from Справочники.Номенклатура where Код = "0100000"
Может у меня мозг сплавился под утро, или просто времени больше нужно, но если кто знает как это сделать (или натолкните на путь истинный) был бы очень благодарен.
  • Вопрос задан
  • 11070 просмотров
Решения вопроса 1
@Dementor
программист, архитектор, аналитик
1) Начнем с автоматического обмена. Раз вы разумно решили не городить велосипед, а использовать встроенные механизмы типовых платформ, то обращаю ваше внимание на закладку "Автоматический обмен" в вашей настройке обмена. Тут можно настроить обмен по расписанию или по некоторому событию. Ничего сверхсложного. Только отмечу, что если база файловая, то потребуется в настройках указать пользователя, в рамках которого будет стартовать менеджер фоновых заданий и который будет иметь достаточно прав на работу с объектами обмена; ну и конечно потом запустить сессию с базой от имени этого пользователя.
2) Для работы в Конвертации данных 2.0 и 2.1 с внешними параметрами необходимо их создать на закладке Параметры в элементе, который описывает соответствующую конвертацию (не правила - это подчиненные справочники, а именно конвертацию, где вы описываете от куда и куда, и где описываются обработчики глобальных событий обмена такие как "ПередВыгрузкойДанных", "ПередВыгрузкойОбъекта", "ПослеЗагрузкиДанных" и прочие). Если теперь воспользоваться обработками "Универсальный обмен данными XML", то что в 7.7, что в 8-ках появятся ваши параметры, которым вы можете указать требуемые значения.
3) При автоматическом обмене в типовых конфигурациях все параметры обмена выносят в настройки соответствующих планов обмена, где узлы соответствуют базам обмена. Так с разными базами бухи можно обмениваться или полностью всеми документами, или только от контрагентов с определенной папки (типа "белый учет").
4) Если у вас нет возможности изменять конфигурацию-источник, то в самой конфигурации можно реализовать получение данных в параметры. Обычно это делается в обработчике "ПередВыгрузкойДанных". В зависимости от типа вашего параметра вы можете ему присвоить значение с помощью Справочник.Номенклатура.НайтиПоКоду(123) или коллекцию из подобных элементов.
5) Фильтрацию выгружаемых данных можно делать вообще сотней способов. Можно пойти в правила выгрузки данных (ПВД) и похимичить с выбираемым множеством исходных данных для выгрузки. Можно пойти в правила конвертации объектов (ПКО) и там делать отказ от выгрузки неугодных элементов. Можно в упомянутом выше обработчике "ПередВыгрузкойОбъекта" из свойств конфигурации сделать фильтр. А можно во всех трех местах допустить выгрузку, но отсечь эти данные уже на этапе загрузки в базу-приемник.... Посмотрите для примера типовые правила обменов УТ-БУ там такого добра хватает.
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 3
Salavat
@Salavat
Думаю вам на инфостарт нужно идти. Там быстрее помогут.
Ответ написан
В "Конвертации данных" загрузить правила, найти соответствующее для номенклатуры правило конвертации объектов и в нужном обработчике (скорее всего ПриВыгрузке, на память точно не вспомню) прописать условие типа:
Если Значение.Код <> "0100000" Тогда
    Отказ = Истина;
КонецЕсли;
Ответ написан
Комментировать
@thepry
Ruby on rails, 1С разработчик
Пол ночи провозился с конфигурацией конвертация данных и еще больше запутался,

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

Перед выгрузкой:
Если НЕ Источник.Родитель = ..... Тогда
Отказ = Истина;
КонецЕсли;

Это позволит не выгружать те, в которых родитель не совпадает с указанным. Как группу номенклатуры передать параметром - я не знаю, попробуйте поискать инфу тут:
programmist1s.ru/1s-konvertatsiya-dannyih-2-0
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы