Правила обмена данных |
Я |
17.12.14 — 07:15
Помогите с проблемкой!
Создал правило обмена данных на КД. Выгружаю документ с торговли в УПП отчет о розничных продаж.Все нормально выгружаеться сделал провило вроде все работает вот только мне нужно добавить условие что бы при выгрузке документа отчет о розничной продаже в табличной части выгружалась только определенный вид номеклатуры к примеру «товар».
1 — 17.12.14 — 07:17
Прочел методичку алгоритмы и запросы ивсе сделал как там описано ,но при выгрузке ни какой ошибке не происходит и номенклатуру всю выгружает
2 — 17.12.14 — 07:19
вот запрос- ВЫБРАТЬ
Номенклатура.Ссылка
ИЗ
Справочник.Номенклатура КАК Номенклатура
ГДЕ
Номенклатура.ВидНоменклатуры = &Товар
И в обработчике событий при выгрузке пишу -Запросы.ОтборПоНоменклатуре.УстановитьПараметр(«Товар»,Справочники.ВидыНоменклатуры.НайтиПоНаименованию(«Товар»));
РезультатЗапроса = Запросы.ОтборПоНоменклатуре.Выполнить().Выбрать();
но ни чего не происходит все равно всю номенклатуру выгружает
3 — 17.12.14 — 07:48
Значение = ;
4 — 17.12.14 — 07:48
В пкс номенклатуры.
5 — 17.12.14 — 07:49
а, не в курил сразу. Тебе надо чтоб отдельные строки документа вышружались?
6 — 17.12.14 — 07:50
в (2) хня какая-то…
7 — 17.12.14 — 07:51
Ставь условия в обработчике ПередВыгрузкой правила выгрузки группы свойств твой табличной части. Что то типа:
Если ОбъектКоллекции.Номенклатура.ВидНоменклатуры <> Перечисления.ВидыНоменклатуры.Товар Тогда
Отказ = Истина;
КонецЕсли;
8 — 17.12.14 — 07:51
+(5) Или надо чтоб товар свернулся в одну строчку с общей суммой?
9 — 17.12.14 — 07:52
мне нужно что бы в табличной части выгружалась номенклатура с видом номенклатура «товар»
10 — 17.12.14 — 07:53
(9) тогда (7)
11 — 17.12.14 — 08:02
что то не понял что нужно сделать
12 — 17.12.14 — 08:03
ОбъектКоллекции ругается говорит не обнаруженно
13 — 17.12.14 — 08:20
(12) куда код пишешь? открой свойства самой группы табличной части через F2. и пиши (7) в обработчик ПередВыгрузкой
14 — 17.12.14 — 10:37
пишу как вы сказали все равно пишет что Ошибка в обработчике события ПередВыгрузкой (объекта коллекции)
15 — 17.12.14 — 10:42
(14) Объект коллекции доступен только в табличной части. Так что это нужно писать в ПКС Перед выгрузкой.
16 — 17.12.14 — 10:43
(15) в ПКГС
17 — 17.12.14 — 10:45
(16) В ПКГС доступна КоллекцияОбъектов
18 — 17.12.14 — 10:47
(17) читай справку
19 — 17.12.14 — 10:50
и так пишу в табличной части «товары» перед выгрузкой Если ОбъектКоллекции.Номенклатура.ВидНоменклатуры <> Перечисления.ВидыНоменклатуры.Товар Тогда
Отказ = Истина;
КонецЕсли;
и выпадает ошибка Ошибка в обработчике события ПередВыгрузкой (объекта коллекции)
20 — 17.12.14 — 10:50
полностью ошибку
21 — 17.12.14 — 10:50
(15) В ПКС не установишь отказ на выгрузку объекта коллекции, а можно это сделать ПКГС в обработчике ПередВыгрузкой, в нем ОбъектКоллекции доступен
22 — 17.12.14 — 10:51
что значит в табличной части товары? в ПКС номенклатуры чтоли?
23 — 17.12.14 — 10:53
(19) ВидНоменклатуры — это не перечисление, а справочник. это я сразу напамять неправильно так в (7) написал.
24 — 17.12.14 — 10:54
Если ОбъектКоллекции.Номенклатура.ВидНоменклатуры.Наименование <> «Товар» Тогда
Отказ = Истина;
КонецЕсли;
25 — 17.12.14 — 10:55
(24) отличный авно код))
26 — 17.12.14 — 10:56
(21) Не надо лечить
Обработчики «Правила конвертации свойств»
Перед выгрузкой
Условия возникновения события
Событие выполняется перед выгрузкой значения свойства. Возможен отказ от выгрузки. УзелСвойства еще не создан, конвертируемое значение Неопределено.
Параметры:
Источник — Произвольный. Ссылка на выгружаемый объект источник данных
Приемник — xml-узел формируемого объекта приемника
ВходящиеДанные — Произвольный. Произвольные вспомогательные данные, переданные правилу конвертации из других правил (например из правила выгрузки данных или правила конвертации свойств). Значение параметра, как правило, имеет тип Структура, где ключи значений соответствуют структуре свойств объекта приемника. Таким образом, при конвертации свойств (в ПКС), конвертируемые данные (или часть данных) могут быть получены из этого параметра.
ИсходящиеДанные — Произвольный. Произвольные вспомогательные данные, передаваемые правилам конвертации объектов свойств (ПКО).
ПКС — ссылка на правило конвертации свойств
ПКО — ссылка на правило конвертации объектов — родитель данного правила конвертации свойств
ОбъектКоллекции — ссылка на выгружаемый объект коллекции. Например, строка табличной части или запись регистра или строка таблицы значений или строка результата запроса и т.д.
Отказ — Булево — Если Истина, то конвертация свойства не производится, обработка данного правила конвертации свойств прекращается
Значение — Неопределено. Конвертируемое значение свойства. Если значение определить в теле обработчика, то стандартная процедура получения значения не будет происходить.
ТипПриемника — Строка. Тип свойства приемника. Для свойств не составных типов — всегда определен. Для свойств составных типов — определяется либо правилом конвертации, либо разработчиком конвертации
ИмяПКО — имя правила конвертации, по которому производится преобразование значения свойства. Может быть выбрано в зависимости от каких-либо условий.
ИмяПКОВидСубконто — имя правила конвертации, по которому производится преобразование вида субконто (только для свойств СубконтоДт и СубконтоКт записей регистра бухгалтерии). Может быть выбрано в зависимости от каких-либо условий.
Пусто — Булево — Ложь. Если установить Истина, то в приемник будет записано пустое значение свойства, соответствующего типа и дальнейшая обработка правила конвертации свойств будет прекращена
Выражение — Неопределено. Может быть указано произвольное строковое выражение на встроенном языке, результат вычисления которого при загрузке будет присвоен значению свойства. Если Выражение определить в теле обработчика, то дальнейшая обработка ПКС будет прекращена. Данная возможность, используется только если конфигурация-приемник реализована на платформе V8
НеЗамещать — Булево — по умолчанию определяется в настройках правила, но может быть изменено в теле обработчика. Если установить значение Истина, то для существующих объектов информационной базы установка свойства производиться не будет.
УзелКоллекцииСвойств — xml-узел коллекции свойств
ВыгрузитьОбъект — Булево — Если Истина, то объект выгружается целиком. Если Ложь, то выгружается только ссылка.
Пример:
Если (ПустаяСтрока(Источник.НомерДокумента) = 0) И (ПустаяСтрока(Источник.Комментарий) = 0) Тогда
Значение = «Номер документа: » + Источник.НомерДокумента + РазделительСтрок + «Комментарий: » + Источник.Комментарий;
ИначеЕсли (ПустаяСтрока(Источник.НомерДокумента) = 0) Тогда
Значение = «Номер документа: » + Источник.НомерДокумента;
ИначеЕсли (ПустаяСтрока(Источник.Комментарий) = 0) Тогда
Значение = «Комментарий: » + Источник.Комментарий;
Иначе
Отказ = 1;
КонецЕсли;
27 — 17.12.14 — 10:56
(25) согласен )))
28 — 17.12.14 — 10:59
(26) ты хочешь сказать, что в ПКС элемента таб. части можно отказаться от выгрузки строки?
29 — 17.12.14 — 11:03
(28) Не, если строку, тогда в ПКГС, есть свойство — в ПКС
30 — 17.12.14 — 11:03
(29) ну дык, в условии как раз строку не нужно
31 — 17.12.14 — 11:05
(30) Ну ок, тогда я не против :))
KonstantinK90
32 — 17.12.14 — 11:09
О все спасибо большое все получилось! Просто я сегодня 2 день конвертацией занимаюсь. не хватало помощи вашей!!!
Олег Сычев Заглянувший Сообщений: 217 |
конфигурация Автосервис релиз 1.6.9.32 При выгрузке в Бухгалтерию 3.0 ошибка: Ошибка в обработчике события ПередВыгрузкой (свойства) |
Олег Сычев Заглянувший Сообщений: 217 |
Методом подбора было выяснено, что ругается он на поступление в кассу, которое создано на основании заказ-наряда. Исключаем эти поступления из обмена и все хорошо. |
Олег, уточните, пожалуйста, какие правила для синхронизации брались для Автосервиса 1,6,9,32 и БП3,0? |
|
Олег Сычев Заглянувший Сообщений: 217 |
#4
13.03.2017 14:23:56
Те, которые идут в комплекте с дистрибутивом обновления. |
||
Олег, в Автосервисе 1,6,9,32 правила нужно брать из конфигурации, а для БП 3,0 файл внешних правил из шаблонов 1,6,9,32. |
|
Олег Сычев Заглянувший Сообщений: 217 |
В Автосервисе используются правила, встроенные в конфигурацию |
Олег Сычев Заглянувший Сообщений: 217 |
#8
14.03.2017 15:59:27
файл внешних правил из шаблонов 1,6,9,32. Изменено: Олег Сычев — 14.03.2017 16:00:39 |
||
Олег, если работ по заказ-наряду нет, то и Акт производственных работ не будет создаваться. Возможно ранее в данном заказ-наряде были работы? тогда снимите с регистрации все объекты, зарегистрируйте заново и сделайте синхронизацию повторно. |
|
Олег Сычев Заглянувший Сообщений: 217 |
#10
15.03.2017 16:00:21
Так я вам про что и говорю. Это я к тому, что иногда, заказ-наряд делается без работ. Просто с |
||
Светлана Сулименко Посетитель Сообщений: 8911 |
#11
15.03.2017 18:57:29 Олег, протестировала синхронизацию 1,6,9,32 и 3,0,48,21, заказ-наряд только с товарами загрузился корректно (в документ Реализация товаров). |
1C-admin
01.02.2014
20 Comments
Выгрузка данных из «Управление торговлей», редакция 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
-
Offline
Joni
Опытный в 1С- Регистрация:
- 29 фев 2008
- Сообщения:
- 103
- Симпатии:
- 0
- Баллы:
- 26
Привет всем, не удается выгрузить документы из УТ
Выгружаю при помощи ВыгрузкаЗагрузкаДанныхXML правила брал в той же УТ через конфигуратор.
УТ 11.1.4.14
но почему то в правилах написано 11.1.4.13 Не знаю на сколько это критично.
Вот ошибкаВложения:
-
123.jpg
- Размер файла:
- 52,7 КБ
- Просмотров:
- 7
Joni,
18 апр 2016
#1 -
Offline
Vlad
Модераторы
Команда форума
Модератор- Регистрация:
- 16 авг 2006
- Сообщения:
- 3.519
- Симпатии:
- 20
- Баллы:
- 29
Это критично. ВыгрузкаЗагрузкаДанныхXML работает только между идентичными конфигурациями. Так что ты определись с конфигурациями.
Vlad,
18 апр 2016
#2 -
Offline
Joni
Опытный в 1С- Регистрация:
- 29 фев 2008
- Сообщения:
- 103
- Симпатии:
- 0
- Баллы:
- 26
В общем суть выгрузить документы из УТ 11.1.4.14 в БП 3.0.43.155
Застрял на выгрузке ошибка в скриншете.
Joni,
18 апр 2016
#3 -
Offline
Vlad
Модераторы
Команда форума
Модератор- Регистрация:
- 16 авг 2006
- Сообщения:
- 3.519
- Симпатии:
- 20
- Баллы:
- 29
В данном случае тебе ВыгрузкаЗагрузкаДанныхXML тебе точно не поможет. А штатные средства не помогают? Обнови обе базы до актуального релиза. Т.е. УТ точно уже 11.2 должна быть.
Vlad,
18 апр 2016
#4 -
Offline
Joni
Опытный в 1С- Регистрация:
- 29 фев 2008
- Сообщения:
- 103
- Симпатии:
- 0
- Баллы:
- 26
Что если конфигурация дописанная? можно как то не писать свою обработку? сформировать быстро и надежно в КД ?
Joni,
18 апр 2016
#5 -
Offline
Vlad
Модераторы
Команда форума
Модератор- Регистрация:
- 16 авг 2006
- Сообщения:
- 3.519
- Симпатии:
- 20
- Баллы:
- 29
Смотря что дописано. Если в документы или справочники добавлены новые реквизиты, то нужно корректировать типовые правила обмена. Или в КД свои создай.
Vlad,
19 апр 2016
#6 -
Offline
alexburn
Модераторы
Команда форума
Модератор- Регистрация:
- 5 янв 2009
- Сообщения:
- 15.150
- Симпатии:
- 560
- Баллы:
- 204
Если с конверташкой дружите, то не будет проблем по написанию правил для нетиповой конфы
alexburn,
19 апр 2016
#7 -
Offline
Joni
Опытный в 1С- Регистрация:
- 29 фев 2008
- Сообщения:
- 103
- Симпатии:
- 0
- Баллы:
- 26
Дальше автоматической синхронизации не хватает пока мозгов.
После автоматической много чего не хватает, ни счет фактуры не реквизитов…
Скажите сколько могло бы стоить написать данные правила в конфигураторе профессионалу? и сколько это занимает по времени?— Объединение сообщений, 19 апр 2016 —
или может есть какой хороший пример по созданию правил? Коротко ясно и по делу, желательно без написание СылкаКакойтоКодКудатоНужноВставлять = ДаЕщеНужноЕгоНаписать («и в нем разбираться»)
Joni,
19 апр 2016
#8 -
Offline
alexburn
Модераторы
Команда форума
Модератор- Регистрация:
- 5 янв 2009
- Сообщения:
- 15.150
- Симпатии:
- 560
- Баллы:
- 204
Есть книжка по конверташке, там в принципе описываются примеры переносов, обработки ТЧ и т.п. Еще можно видео глянуть как это делается (в сети видел ресурс по данному вопросу)
alexburn,
19 апр 2016
#9
- Похожие темы
-
8.х ОБМЕН
Непонятная ошибка в обработчике ПКО ПриЗагрузке
Алексей1989,
25 июл 2013, в разделе: Обмен данными в «1С:Предприятие 8»
- Ответов:
- 2
- Просмотров:
- 678
- Гриша
- 1 авг 2013
-
8.х
При заполнение документа ошибка — обработчик события не найден
alboldinov,
15 сен 2014, в разделе: Конфигурирование на платформе «1С:Предприятие 8»
- Ответов:
- 39
- Просмотров:
- 3.710
- alboldinov
- 19 сен 2014
-
8.х ОБМЕН
КД Источник в обработчике при загрузке
IceBeerG,
28 апр 2015, в разделе: Обмен данными в «1С:Предприятие 8»
- Ответов:
- 4
- Просмотров:
- 896
- IceBeerG
- 28 апр 2015
-
8.х
Ошибка «В обработчике печати не был сформирован табличный документ»
ArinkaE,
22 май 2015, в разделе: Конфигурирование на платформе «1С:Предприятие 8»
- Ответов:
- 1
- Просмотров:
- 1.123
- Thelearning
- 22 май 2015
- Ваше имя или e-mail:
- У Вас уже есть учётная запись?
-
- Нет, зарегистрироваться сейчас.
- Да, мой пароль:
-
Забыли пароль?
-
Запомнить меня
-
- Искать только в заголовках
- Сообщения пользователя:
-
Имена участников (разделяйте запятой).
- Новее чем:
-
- Искать только в этой теме
- Искать только в этом разделе
- Отображать результаты в виде тем
-
Быстрый поиск
- Последние сообщения
Больше…
- Главная
- Карьера
- Блог о жизни франчайзи
Про 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». Описанные приемы в данной статье и в первой статье затрагивают наиболее частые нетривиальные задачи использования конвертации данных, изучив обе статьи, подобные задачи уже не будут вызывать сложностей.
Статью подготовил аналитик-эксперт по информационным системам «ИнфоСофт» Ретунский Александр.
Статья опубликована на портале ИнфоСтарт