Ошибка в обработчике события передвыгрузкой объекта коллекции

Правила обмена данных

Я
   KonstantinK90

17.12.14 — 07:15

Помогите с проблемкой!

Создал правило обмена данных на КД. Выгружаю документ с торговли в УПП отчет о розничных продаж.Все нормально выгружаеться сделал провило вроде все работает вот только мне нужно добавить условие что бы при выгрузке документа отчет о розничной продаже в табличной части выгружалась только определенный вид номеклатуры к примеру «товар».

   KonstantinK90

1 — 17.12.14 — 07:17

Прочел методичку алгоритмы и запросы ивсе сделал как там описано ,но при выгрузке ни какой ошибке не происходит и номенклатуру всю выгружает

   KonstantinK90

2 — 17.12.14 — 07:19

вот запрос-  ВЫБРАТЬ

    Номенклатура.Ссылка

ИЗ

    Справочник.Номенклатура КАК Номенклатура

ГДЕ

     Номенклатура.ВидНоменклатуры = &Товар

И в обработчике событий при выгрузке пишу -Запросы.ОтборПоНоменклатуре.УстановитьПараметр(«Товар»,Справочники.ВидыНоменклатуры.НайтиПоНаименованию(«Товар»));

РезультатЗапроса = Запросы.ОтборПоНоменклатуре.Выполнить().Выбрать();

но ни чего не происходит все равно всю номенклатуру выгружает

   Godofsin

3 — 17.12.14 — 07:48

Значение = ;

   Godofsin

4 — 17.12.14 — 07:48

В пкс номенклатуры.

   Godofsin

5 — 17.12.14 — 07:49

а, не в курил сразу. Тебе надо чтоб отдельные строки документа вышружались?

   Godofsin

6 — 17.12.14 — 07:50

в (2) хня какая-то…

   azt-yur

7 — 17.12.14 — 07:51

Ставь условия в обработчике ПередВыгрузкой правила выгрузки группы свойств твой табличной части. Что то типа:

Если ОбъектКоллекции.Номенклатура.ВидНоменклатуры <> Перечисления.ВидыНоменклатуры.Товар Тогда

Отказ = Истина;

КонецЕсли;

   Godofsin

8 — 17.12.14 — 07:51

+(5) Или надо чтоб товар свернулся в одну строчку с общей суммой?

   KonstantinK90

9 — 17.12.14 — 07:52

мне нужно что бы в табличной части выгружалась номенклатура с видом номенклатура «товар»

   Godofsin

10 — 17.12.14 — 07:53

(9) тогда (7)

   KonstantinK90

11 — 17.12.14 — 08:02

что то не понял что нужно сделать

   KonstantinK90

12 — 17.12.14 — 08:03

ОбъектКоллекции ругается говорит не обнаруженно

   azt-yur

13 — 17.12.14 — 08:20

(12) куда код пишешь? открой свойства самой группы табличной части через F2. и пиши (7) в обработчик ПередВыгрузкой

   KonstantinK90

14 — 17.12.14 — 10:37

пишу как вы сказали все равно пишет что Ошибка в обработчике события ПередВыгрузкой (объекта коллекции)

   vicof

15 — 17.12.14 — 10:42

(14) Объект коллекции доступен только в табличной части. Так что это нужно писать в ПКС Перед выгрузкой.

   Alex S D

16 — 17.12.14 — 10:43

(15) в ПКГС

   vicof

17 — 17.12.14 — 10:45

(16) В ПКГС доступна КоллекцияОбъектов

   Alex S D

18 — 17.12.14 — 10:47

(17) читай справку

   KonstantinK90

19 — 17.12.14 — 10:50

и так пишу в табличной части «товары» перед выгрузкой Если ОбъектКоллекции.Номенклатура.ВидНоменклатуры <> Перечисления.ВидыНоменклатуры.Товар Тогда

Отказ = Истина;

КонецЕсли;

и выпадает ошибка Ошибка в обработчике события ПередВыгрузкой (объекта коллекции)

   Alex S D

20 — 17.12.14 — 10:50

полностью ошибку

   azt-yur

21 — 17.12.14 — 10:50

(15) В ПКС не установишь отказ на выгрузку объекта коллекции, а можно это сделать ПКГС в обработчике ПередВыгрузкой, в нем ОбъектКоллекции доступен

   Alex S D

22 — 17.12.14 — 10:51

что значит в табличной части товары? в ПКС номенклатуры чтоли?

   azt-yur

23 — 17.12.14 — 10:53

(19) ВидНоменклатуры — это не перечисление, а справочник. это я сразу напамять неправильно так в (7) написал.

   azt-yur

24 — 17.12.14 — 10:54

Если ОбъектКоллекции.Номенклатура.ВидНоменклатуры.Наименование <> «Товар» Тогда

Отказ = Истина;

КонецЕсли;

   Alex S D

25 — 17.12.14 — 10:55

(24) отличный авно код))

   vicof

26 — 17.12.14 — 10:56

(21) Не надо лечить

Обработчики «Правила конвертации свойств»

Перед выгрузкой

Условия возникновения события

Событие выполняется перед выгрузкой значения свойства. Возможен отказ от выгрузки. УзелСвойства еще не создан, конвертируемое значение Неопределено.

Параметры:

Источник — Произвольный. Ссылка на выгружаемый объект источник данных

Приемник — xml-узел формируемого объекта приемника

ВходящиеДанные — Произвольный. Произвольные вспомогательные данные, переданные правилу конвертации из других правил (например из правила выгрузки данных или правила конвертации свойств). Значение параметра, как правило, имеет тип Структура, где ключи значений соответствуют структуре свойств объекта приемника. Таким образом, при конвертации свойств (в ПКС), конвертируемые данные (или часть данных) могут быть получены из этого параметра.

ИсходящиеДанные — Произвольный. Произвольные вспомогательные данные, передаваемые правилам конвертации объектов свойств (ПКО).

ПКС — ссылка на правило конвертации свойств

ПКО — ссылка на правило конвертации объектов — родитель данного правила конвертации свойств

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

Отказ — Булево — Если Истина, то конвертация свойства не производится, обработка данного правила конвертации свойств прекращается

Значение — Неопределено. Конвертируемое значение свойства. Если значение определить в теле обработчика, то стандартная процедура получения значения не будет происходить.

ТипПриемника — Строка. Тип свойства приемника. Для свойств не составных типов — всегда определен. Для свойств составных типов — определяется либо правилом конвертации, либо разработчиком конвертации

ИмяПКО — имя правила конвертации, по которому производится преобразование значения свойства. Может быть выбрано в зависимости от каких-либо условий.

ИмяПКОВидСубконто — имя правила конвертации, по которому производится преобразование вида субконто (только для свойств СубконтоДт и СубконтоКт записей регистра бухгалтерии). Может быть выбрано в зависимости от каких-либо условий.

Пусто — Булево — Ложь. Если установить Истина, то в приемник будет записано пустое значение свойства, соответствующего типа и дальнейшая обработка правила конвертации свойств будет прекращена

Выражение — Неопределено. Может быть указано произвольное строковое выражение на встроенном языке, результат вычисления которого при загрузке будет присвоен значению свойства. Если Выражение определить в теле обработчика, то дальнейшая обработка ПКС будет прекращена. Данная возможность, используется только если конфигурация-приемник реализована на платформе V8

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

УзелКоллекцииСвойств — xml-узел коллекции свойств

ВыгрузитьОбъект — Булево — Если Истина, то объект выгружается целиком. Если Ложь, то выгружается только ссылка.

Пример:

Если (ПустаяСтрока(Источник.НомерДокумента) = 0) И (ПустаяСтрока(Источник.Комментарий) = 0) Тогда

Значение = «Номер документа: » + Источник.НомерДокумента + РазделительСтрок + «Комментарий: » + Источник.Комментарий;

ИначеЕсли (ПустаяСтрока(Источник.НомерДокумента) = 0) Тогда

Значение = «Номер документа: » + Источник.НомерДокумента;

ИначеЕсли (ПустаяСтрока(Источник.Комментарий) = 0) Тогда

Значение = «Комментарий: » + Источник.Комментарий;

Иначе

Отказ = 1;

КонецЕсли;

   azt-yur

27 — 17.12.14 — 10:56

(25) согласен )))

   Alex S D

28 — 17.12.14 — 10:59

(26) ты хочешь сказать, что в ПКС элемента таб. части можно отказаться от выгрузки строки?

   vicof

29 — 17.12.14 — 11:03

(28) Не, если строку, тогда в ПКГС, есть свойство — в ПКС

   Alex S D

30 — 17.12.14 — 11:03

(29) ну дык, в условии как раз строку не нужно

   vicof

31 — 17.12.14 — 11:05

(30) Ну ок, тогда я не против :))

  

KonstantinK90

32 — 17.12.14 — 11:09

О все спасибо большое все получилось! Просто я сегодня 2 день конвертацией занимаюсь. не хватало помощи вашей!!!

 

Олег Сычев

Заглянувший

Сообщений: 217
Авторитет:

0

Регистрация: 06.12.2016

конфигурация Автосервис релиз 1.6.9.32

При выгрузке в Бухгалтерию 3.0 ошибка:

Ошибка в обработчике события ПередВыгрузкой (свойства)
ПКО                    =  ПриходныйКассовыйОрдер  (Документ: Поступление в кассу)
ПКС                    =  26  (ДокументОснование —> ДокументОснование)
Объект                 =  Поступление в кассу 259 от 13.02.2017   (Документ объект: Поступление в кассу)
СвойствоПриемника      =  ДокументОснование  ()
Обработчик             =  ПередВыгрузкойСвойства
ОписаниеОшибки         =  Значение не является значением объектного типа (ДокументОснование)
ПозицияМодуля          =  (4)
КСообщенияОбОшибках    =  55

 

Олег Сычев

Заглянувший

Сообщений: 217
Авторитет:

0

Регистрация: 06.12.2016

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

Исключаем эти поступления из обмена и все хорошо.  

 

Олег, уточните, пожалуйста, какие правила для синхронизации брались для Автосервиса 1,6,9,32 и БП3,0?

 

Олег Сычев

Заглянувший

Сообщений: 217
Авторитет:

0

Регистрация: 06.12.2016

#4



0


13.03.2017 14:23:56

Цитата
Светлана Сулименко написал:
Олег, уточните, пожалуйста, какие правила для синхронизации брались для Автосервиса 1,6,9,32 и БП3,0?

Те, которые идут в комплекте с дистрибутивом обновления.  

 

Олег, в Автосервисе 1,6,9,32 правила нужно брать из конфигурации, а для БП 3,0 файл внешних правил из шаблонов 1,6,9,32.

 

Олег Сычев

Заглянувший

Сообщений: 217
Авторитет:

0

Регистрация: 06.12.2016

В Автосервисе используются правила, встроенные в конфигурацию

 
 

Олег Сычев

Заглянувший

Сообщений: 217
Авторитет:

0

Регистрация: 06.12.2016

#8



0


14.03.2017 15:59:27

Цитата
Светлана Сулименко написал:
файл внешних правил из шаблонов 1,6,9,32.

файл внешних правил из шаблонов 1,6,9,32.
Ну просто, как я понял, в бухгалтерии пытается «создастся»  документ, типа «акт производственных работ», а самих работ то там нет (в заказ-наряде). =) Там только товары  

Изменено: Олег Сычев14.03.2017 16:00:39

 

Олег, если работ по заказ-наряду нет, то и Акт производственных работ не будет создаваться. Возможно ранее в данном заказ-наряде были работы? тогда снимите с регистрации все объекты, зарегистрируйте заново и сделайте синхронизацию повторно.  

 

Олег Сычев

Заглянувший

Сообщений: 217
Авторитет:

0

Регистрация: 06.12.2016

#10



0


15.03.2017 16:00:21

Цитата
Светлана Сулименко написал:
Олег, если работ по заказ-наряду нет, то и Акт производственных работ не будет создаваться. Возможно ранее в данном заказ-наряде были работы? тогда снимите с регистрации все объекты, зарегистрируйте заново и сделайте синхронизацию повторно.

Так я вам про что и говорю.
Мы создаем заказ-наряд. Не добавляем туда работы, а добавляем только материалы. И он уже не выгрузится в БП, будет выдавать ошибку из 1 поста. Как только мы добавляем любую работу — все ок.

Это я к тому, что иногда, заказ-наряд делается без работ. Просто с  

 

Светлана Сулименко

Посетитель

Сообщений: 8911
Авторитет:

265

Регистрация: 16.10.2012

#11



0


15.03.2017 18:57:29

Олег, протестировала синхронизацию 1,6,9,32 и 3,0,48,21, заказ-наряд только с товарами загрузился корректно (в документ Реализация товаров).
Предлагаю удаленное подключение для разбора ситуации на месте.
Отправьте, пожалуйста, личным сообщением контактный номер телефона и удобное время для связи.  

1C-admin
01.02.2014
20 Comments

    Анонс (УТ).jpg

Выгрузка данных из «Управление торговлей», редакция 10.3 (10.3.27.1)» в «Бухгалтерия предприятия, редакция 3.0 (3.0.28.12)»

В основе обработки используются типовые правила конфигурации «Управление торговлей», редакция 10.3 (10.3.27) .

Мелкие доработки:

1. Добавлен отбор по организации.

2. Добавлен отбор по складу.

3. Добавлен отбор по периоду.

4. Вариант переноса себестоимости списания: Переносить документ партии и себестоимость.

5. Исправлены мелкие ошибки.

Related Posts

Войти или зарегистрироваться

8.х ОБМЕН Ошибка в обработчике события ПередВыгрузкойОбъекта

Тема в разделе «Обмен данными в «1С:Предприятие 8″», создана пользователем Joni, 18 апр 2016.




0/5,
Голосов: 0
  1. TopicStarter Overlay

    Joni

    Offline

    Joni
    Опытный в 1С

    Регистрация:
    29 фев 2008
    Сообщения:
    103
    Симпатии:
    0
    Баллы:
    26

    Привет всем, не удается выгрузить документы из УТ
    Выгружаю при помощи ВыгрузкаЗагрузкаДанныхXML правила брал в той же УТ через конфигуратор.
    УТ 11.1.4.14
    но почему то в правилах написано 11.1.4.13 Не знаю на сколько это критично.
    Вот ошибка

    Вложения:

    • 123.jpg
      123.jpg
      Размер файла:
      52,7 КБ
      Просмотров:
      7

    Joni,
    18 апр 2016
    #1

  2. Vlad

    Offline

    Vlad
    Модераторы
    Команда форума
    Модератор

    Регистрация:
    16 авг 2006
    Сообщения:
    3.519
    Симпатии:
    20
    Баллы:
    29

    Это критично. ВыгрузкаЗагрузкаДанныхXML работает только между идентичными конфигурациями. Так что ты определись с конфигурациями.


    Vlad,
    18 апр 2016
    #2
  3. TopicStarter Overlay

    Joni

    Offline

    Joni
    Опытный в 1С

    Регистрация:
    29 фев 2008
    Сообщения:
    103
    Симпатии:
    0
    Баллы:
    26

    В общем суть выгрузить документы из УТ 11.1.4.14 в БП 3.0.43.155
    Застрял на выгрузке ошибка в скриншете.


    Joni,
    18 апр 2016
    #3

  4. Vlad

    Offline

    Vlad
    Модераторы
    Команда форума
    Модератор

    Регистрация:
    16 авг 2006
    Сообщения:
    3.519
    Симпатии:
    20
    Баллы:
    29

    В данном случае тебе ВыгрузкаЗагрузкаДанныхXML тебе точно не поможет. А штатные средства не помогают? Обнови обе базы до актуального релиза. Т.е. УТ точно уже 11.2 должна быть.


    Vlad,
    18 апр 2016
    #4
  5. TopicStarter Overlay

    Joni

    Offline

    Joni
    Опытный в 1С

    Регистрация:
    29 фев 2008
    Сообщения:
    103
    Симпатии:
    0
    Баллы:
    26

    Что если конфигурация дописанная? можно как то не писать свою обработку? сформировать быстро и надежно в КД ?


    Joni,
    18 апр 2016
    #5

  6. Vlad

    Offline

    Vlad
    Модераторы
    Команда форума
    Модератор

    Регистрация:
    16 авг 2006
    Сообщения:
    3.519
    Симпатии:
    20
    Баллы:
    29

    Смотря что дописано. Если в документы или справочники добавлены новые реквизиты, то нужно корректировать типовые правила обмена. Или в КД свои создай.


    Vlad,
    19 апр 2016
    #6

  7. alexburn

    Offline

    alexburn
    Модераторы
    Команда форума
    Модератор

    Регистрация:
    5 янв 2009
    Сообщения:
    15.150
    Симпатии:
    560
    Баллы:
    204

    Если с конверташкой дружите, то не будет проблем по написанию правил для нетиповой конфы:)


    alexburn,
    19 апр 2016
    #7
  8. TopicStarter Overlay

    Joni

    Offline

    Joni
    Опытный в 1С

    Регистрация:
    29 фев 2008
    Сообщения:
    103
    Симпатии:
    0
    Баллы:
    26

    Дальше автоматической синхронизации не хватает пока мозгов.
    После автоматической много чего не хватает, ни счет фактуры не реквизитов…
    Скажите сколько могло бы стоить написать данные правила в конфигураторе профессионалу? и сколько это занимает по времени?

    — Объединение сообщений, 19 апр 2016

    или может есть какой хороший пример по созданию правил? Коротко ясно и по делу, желательно без написание СылкаКакойтоКодКудатоНужноВставлять = ДаЕщеНужноЕгоНаписать («и в нем разбираться»)


    Joni,
    19 апр 2016
    #8

  9. alexburn

    Offline

    alexburn
    Модераторы
    Команда форума
    Модератор

    Регистрация:
    5 янв 2009
    Сообщения:
    15.150
    Симпатии:
    560
    Баллы:
    204

    Есть книжка по конверташке, там в принципе описываются примеры переносов, обработки ТЧ и т.п. Еще можно видео глянуть как это делается (в сети видел ресурс по данному вопросу)


    alexburn,
    19 апр 2016
    #9
(Вы должны войти или зарегистрироваться, чтобы ответить.)
Показать игнорируемое содержимое
Похожие темы

  1. Алексей1989

    8.х ОБМЕН
    Непонятная ошибка в обработчике ПКО ПриЗагрузке

    Алексей1989,
    25 июл 2013
    , в разделе: Обмен данными в «1С:Предприятие 8»
    Ответов:
    2
    Просмотров:
    678
    Гриша
    1 авг 2013

  2. alboldinov

    8.х
    При заполнение документа ошибка — обработчик события не найден

    alboldinov,
    15 сен 2014
    , в разделе: Конфигурирование на платформе «1С:Предприятие 8»
    Ответов:
    39
    Просмотров:
    3.710
    alboldinov
    19 сен 2014

  3. IceBeerG

    8.х ОБМЕН
    КД Источник в обработчике при загрузке

    IceBeerG,
    28 апр 2015
    , в разделе: Обмен данными в «1С:Предприятие 8»
    Ответов:
    4
    Просмотров:
    896
    IceBeerG
    28 апр 2015

  4. ArinkaE

    8.х
    Ошибка «В обработчике печати не был сформирован табличный документ»

    ArinkaE,
    22 май 2015
    , в разделе: Конфигурирование на платформе «1С:Предприятие 8»
    Ответов:
    1
    Просмотров:
    1.123
    Thelearning
    22 май 2015

Загрузка…
Ваше имя или e-mail:
У Вас уже есть учётная запись?
  • Нет, зарегистрироваться сейчас.
  • Да, мой пароль:
  • Забыли пароль?

Запомнить меня


1C-pro.ru - форум по 1С:Предприятию 7.7, 8.0, 8.1, 8.2, 8.3

Поиск

  • Искать только в заголовках
Сообщения пользователя:

Имена участников (разделяйте запятой).

Новее чем:
  • Искать только в этой теме
  • Искать только в этом разделе
    • Отображать результаты в виде тем

Быстрый поиск

  • Последние сообщения

Больше…

  • Главная
  • Карьера
  • Блог о жизни франчайзи
  • Про 1С от наших сотрудников

15 Сентября 2020

Конвертация строки в справочник (перечисления) и обратно

Конвертация строки в справочник

Если в базе источника реквизит имеет тип «Строка», а в базе приемника тип «Справочник», то необходимо разработать отдельное правило конвертации объектов. Обязательно в правиле оставить Объект-источник пустым, иначе при выгрузке будет выдаваться ошибка. В конвертации объекта описать поля поиска, а также реквизит, в который будет грузиться значения реквизита объекта источника, и при необходимости описать заполнение остальных реквизитов справочника. В правиле в обработчике «Перед выгрузкой» реквизита написать следующий алгоритм (см. рисунок 1).

Рисунок 1 – Описание обработчика «Перед Выгрузкой».

Конвертация строки в перечисление

Если в базе источника реквизит имеет тип «Строка», а в базе приемника тип «Перечисление», то отдельное правило конвертации объектов разрабатывать не нужно, все действия описываются в конвертации свойств. Необходимо в обработчике «Перед выгрузкой» свойства описать алгоритм заполнения перечисления объекта приемника от значений реквизита объекта источника, то есть:

Конвертация справочника в строку

Если в базе источника реквизит имеет тип «Справочник», а в базе приемника тип «Строка», то отдельное правило конвертации объектов разрабатывать не нужно, все действия описываются в конвертации свойств. Необходимо в обработчике «Перед выгрузкой» свойства описать алгоритм заполнения реквизита объекта приемника от реквизита справочника объекта источника, то есть:

Конвертация перечисления в строку

Если в базе источника реквизит имеет тип «Перечисление», а в базе приемника тип «Строка», то отдельное правило конвертации объектов разрабатывать не нужно, все действия описываются в конвертации свойств. Необходимо в обработчике «Перед выгрузкой» свойства описать алгоритм заполнения реквизита объекта приемника от перечисления объекта источника, то есть:

Конвертация справочника в перечисление (перечисление в справочник)

Конвертация справочника в перечисление

Данная задача становится актуальной с учетом изменения перечисления «Ставки НДС» на справочник в новых конфигурациях. Теперь при конвертации объектов из новых конфигураций (тип: справочник) в конфигурации, где ставки НДС еще являются перечислением, необходимо будет разрабатывать соответствующее правило конвертации объектов.

1. Необходимо в правиле конвертации объектов на вкладке «Настройки», включить свойство «Не запоминать выгруженные объекты» (см. рисунок 2).

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

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

2. Не использовать конвертацию значений (предопределенные значения справочника в значения перечисления).

Будет использоваться обработчик «При выгрузке», а при использовании данного обработчика конвертация значений не отрабатывает.

3. В конвертации объекта в обработчике «При выгрузке» необходимо прописать следующий код:

      

То есть нам необходимо в переменную «УзелСсылки» присвоить значение метаданных перечисления, которое соответствует базе приемника, тогда система автоматически при загрузке определит нужное значение.

Конвертация перечисления в справочник

Для конвертации перечисления в справочник, потребуется отдельное правило конвертации объектов. В данном правиле можно воспользоваться конвертацией значений (конвертация значений перечисления в предопределенные значения), и необходимо описать поля поиска, а также реквизит, в который будет грузиться значение перечисления (например: реквизит — наименование), и при необходимости описать заполнение остальных реквизитов справочника. В правиле в обработчике «Перед выгрузкой» реквизита написать следующий алгоритм (см. рисунок 1).

Отключение проверки полей поиска

В созданных правилах конвертации объектов, по которым не заполнена колонка «Поля поиска» при сохранении правил, система предложит указать автоматически поля поиска (см. рисунок 3).

Рисунок 3 – Предупреждение – не указаны поля поиска.

При каждом сохранении правил, система будет выдавать данное сообщение. Если при достаточно большом количестве правил случайно нажать «Да», то система создаст поля поиска по всем правилам, и может потребоваться достаточно большое время восстанавливать обратно. Чтобы избежать таких неприятных ситуаций, данную проверку можно отключить (путь: Сервис – Настройки пользователя) (см. рисунок 4).

Рисунок 4 – Отключение проверки полей поиска.

Не регистрировать документы к обмену при определенных действиях

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

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

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

Общий алгоритм для всех объектов одного типа метаданных

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

Например, для задачи – не выгружать помеченные на удаления справочники, необходимо в глобальном обработчике «Перед выгрузкой объекта» написать следующий алгоритм:

Перенос субконто по своим правилам

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

1. Для реквизита «Субконто» в обработчике «Перед выгрузкой»:

2. Перенос плана видов характеристик «Виды Субконто Хозрасчетные» (см. рисунок 5):

Рисунок 5 – Перенос плана видов характеристик.

3. Для реквизита «Субконто» в обработчике «При выгрузке»:

Описывается последовательность действий для каждого типа субконто.

Важный момент. Обязательно нужно прописать алгоритм выгрузки для каждого возможного типа субконто. После того, как добавлен код в обработчик «При выгрузке», типовое определение правила от типа субконто не срабатывает.

Поиск полей

Конвертация данных позволяет разрабатывать собственные алгоритмы поиска элементов на стороне приемника, для этого предназначен обработчик «Поля поиска».

В обработчике «Поля поиска» могут участвовать только те реквизиты, у которых установлен признак «Поиск» в конвертации свойств (см. рисунок 6). Данные реквизиты не обязательно должны участвовать в поиске нужного элемента, они могут присутствовать в различной другой логике алгоритма (например: в условиях алгоритма обработчика «Поля поиска»).

Рисунок 6 – Реквизиты доступные для обработчика «Поля поиска»

            Пример обработчика «Поля поиска»:

            В обработчике мы можем задать до 10 итераций через переменную «НомерВариантаПоиска». В каждой итерации в зависимости от условий задать поля поиска элемента через переменную «СтрокаИменСвойствПоиска» (наименование полей задаются, как они заданы у приемника). Получить значение поля поиска можно через структуру «СвойстваПоиска» (наименование полей задаются, как они заданы у приемника). Для прекращения поиска нужно использовать переменную «ПрекратитьПоиск».

Реквизиты узлов источника и приемника

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

На стороне источника, чтобы обратиться к узлу плана обмена, необходимо использовать переменную: «УзелДляОбмена».

Например, в правилах обмена на стороне источника можно обратиться к ИНН выбранной организации в плане обмена:

На стороне приемника, чтобы обратиться к узлу плана обмена, необходимо использовать переменную: «УзелОбменаЗагрузкаДанных».

Например, в правилах обмена на стороне приемника можно обратиться к ИНН выбранной организации в плане обмена:

Протокол (лог) синхронизации между базами

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

Можно выделить три наиболее частых варианта создания протокола (лога) синхронизации между базами без кастомизации баз источника и приемника:

1) Записывать всю необходимую информацию в журнал регистрации. Данный подход имеет существенные недостатки. Чаще всего журнал регистрации имеет большой объем информации, это влияет на скорость анализа нужной информации (журнал регистрации может работать медленно), и предоставление данных в журнале регистрации не всегда удобно для анализа данных. 

2) Отправлять все необходимые данные на электронную почту. После каждой синхронизации записывать данные в регистр сведений (ОтправкаEmail) для последующей отправки необходимым адресатам. В данном случае недостаток в том, что может возникнуть большое количество писем за день, и в них будет сложно проводить анализ.

3) Записывать всю необходимую информацию во внешний источник (файлы excel и т.д.). Данный подход является наиболее предпочтительный, т.к. можно создать 1 файл в день, в него дописывать всю нужную информацию за день в удобном виде для анализа.

Можно выбрать любой из данных подходов или кастомизировать базы источника и приемника для хранения лога в самих базах, но наличие подробного протокола (лога) может помочь во многих вопросах, связанных с синхронизацией между базами.

Передача параметра из источника в табличную часть приемника

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

            Передача значений табличной части из источника в параметры табличной части приемника имеет ряд особенностей:

1. Необходимо в конвертации свойств табличной части приемника создать необходимый параметр. Если параметр имеет не примитивный тип, то указать также правило конвертации (см. рисунок 7).


Рисунок 7 – Создание параметра в конвертации свойств табличной части приемника.

2. Важный момент! Заполнение параметра должно всегда происходить в переменную «Значение» в обработчике «Перед выгрузкой». Из входящих данных параметр не сможет заполниться (будет выдаваться сообщение об ошибки) (см. рисунок 8).

Рисунок 8 – Заполнение параметра в конвертации свойств табличной части.

3. На стороне приемника обращение к параметрам табличной части происходит в обработчике «После загрузки» через соответствие «ПараметрыОбъекта» по следующему правилу:

  • если параметр был создан в табличной части, то обращение будет типа: [Наименование табличной части] + ТабличнаяЧасть (например: «ТоварыТабличнаяЧасть»);

  • если параметр был создан в наборе движений регистра, то обращение будет типа: [Наименование набора движений регистра] + Набор записей (например: «ХозрасчетныйНаборЗаписей»);

Например:

Заключение

Рассмотренные приемы работы позволят повысить производительность и эффективность работы с программой «Конвертация данных 2.1». Описанные приемы в данной статье и в первой статье затрагивают наиболее частые нетривиальные задачи использования конвертации данных, изучив обе статьи, подобные задачи уже не будут вызывать сложностей.

Ретунский (2).png

Статью подготовил аналитик-эксперт по информационным системам «ИнфоСофт» Ретунский Александр.
Статья опубликована на портале ИнфоСтарт

Понравилась статья? Поделить с друзьями:
  • Ошибка в нотариальном документе как исправить
  • Ошибка в обработчике события перед выгрузкой
  • Ошибка в нотариальной доверенности последствия
  • Ошибка в обновлении windows 10 oxc1900130
  • Ошибка в номинальной стоимости в егрюл