1с отбор по организации в правилах обмена
"Я не совсем понял в каких правилах? Если в правилах обмена то как их создавать? (параметры)<br> <br>Еще мне подсказали вот так вот<br> <br> <br><pre>Если Документы.ТипВсеСсылки().СодержитТип(ТипЗнч(Объект)) Тогда <br>Если ОбщегоНазначения.ЕстьРеквизитДокумента("Организация", Объект.Метаданные()) И (Параметры.Организация <> Объект.Организация) и (ЗначениеЗаполнено(Параметры.Организация)) Тогда <br>Отказ = Истина; <br>КонецЕсли; <br>ИначеЕсли Справочники.ТипВсеСсылки().СодержитТип(ТипЗнч(Объект)) Тогда <br>Если Объект.Метаданные().Реквизиты.Найти("Организация") <> Неопределено И (Параметры.Организация <> Объект.Организация) и (ЗначениеЗаполнено(Параметры.Организация)) Тогда <br>Отказ = Истина; <br>КонецЕсли;<br>КонецЕсли; <br><br> </pre><br><br> <br> <br> <br> <br>Здесь организацию я так понял тоже надо передавать в Параметры.Организация А как это сделать не пойму"
"а вот проверять метаданные не вижу смысла, т.к. в правилах обмена все равно условие выгрузки пообъектно будете писать, а там уже самостоятельно определите для каких объектов нужно это условие и по каким реквизитам."<br>Вот не понял что - то этот момент)) Поясните пожайлуста.<br> <br> <br>И еще подскажите пожайлуста в кодовом варианте как и где задается Параметры.Организация<br> <br>И почему не получается оценить ваши ответы оценкой и хоть так выразить свою благодарность.
Все верно, в параметры организацию засуньте, отобрав ее по ИНН/КПП, например. И будет вам счастье!
в каком обработчике это сделать . <br>И не могли бы в коде пример накидать?
"> проверять метаданные не вижу смысла<br>Похоже на то что код написан с целью размещения его в обработчике "Перед выгрузкой объекта", являющегося общим для всей "конвертации".<br> <br>По незакрытому вопросу спрашивающего:<br>1. Нужно в свойства конвертации ткнуть (Справочники-Конвертации-щелкаем на нужную)<br>2. Увидеть там закладку "Параметры". Добавить в нее параметр "Организация" и указать что значение должно быть отражено в диалоге.<br>3. Далее можно фильтровать выборку аж в четырех местах.<br> - в свойствах конвертации есть обработчик "Перед выгрузкой объекта". Примерный текст кода по размещению в нем вам написали.<br> - в правилах конвертации объектов каждого вида есть обработчик "Перед выгрузкой", туда можно написать что то вроде:<br> <br><pre>Если Источник.Организация<>Параметры.Организация Тогда<br> Отказ=1;<br>КонецЕсли; </pre><br><br> <br> - в правилах выгрузки данных есть обработчик "Перед обработкой", с помощью которого можно переопределить выборку, но это, по моему, сложный ход.<br> - там же есть "Перед выгрузкой объекта", где опять же, в свою очередь можно описать фильтр.<br> <br>Я почему то тоже вариант 2 предпочел.<br>P.S. Я как то собирался написать "отзыв" по Конвертации данных ред 2. О том что мне показалось удобным и неудобным по сравнению с ред 1. (7.7), но как то не дошли руки."
На spec8 сделали курс по КД (и не много больше по обмену данными вообще). Может то что "сейчас не удобно" просто "мы не знаем как сделать"?
"Да нет, я вроде разобрался в том как и что там задумано. Ну вот пара примеров того что показалось неудобным.<br> <br>Пример 1:<br>Если приемником является фиксированное значение перечисления, то ранее эта ситуация решалась с помощью его выбора из готового набора, который уже известен на этапе описания правил, т.к. структура конфигурации-приемника уже загружена. То есть, все было на уровне "Visual" программирования (простые клики в интерфейсе), того, к чему Microsoft стремилась годами.<br>В ред. 2 надо написать кусок кода: Значение="ДоговорСПоставщиком"; //например<br> <br>Пример 2:<br>Преобразование объекта источника. Реализовывалось тоже с помощью интерфейса. Можно было, например, за пару кликов мышкой указать, что в приемник нужно запустить не объект источника, а какой то его реквизит, а может быть и "реквизит реквизита".<br>В ред. 2 надо написать кусок кода: Значение=Источник.ЮрФизЛицо;<br> <br>Пример 3:<br>Формализация условий. Реализовывалось тоже с помощью интерфейса. Можно было создать условие с каким то идентификатором и в его составе в виде визуального конструктора описать связку условий, на которое можно было ссылаться при выгрузке объекта того или иного вида, а может быть и какого то реквизита.<br>В ред. 2 надо написать кусок кода в обработчике.<br> <br>Пример 4:<br>Конкретизация порядка выборки значений периодических реквизитов. Ранее просто ставился флажок "выгрузить самое последнее значение", "выгрузить все значения за период выгрузки", "выгрузить вручную установленные" и т.п.<br>В ред. 2 надо написать кусок кода в обработчике, например: Значение=Источник.НужныйРеквизит.Выбрать();<br> <br>Пример 5:<br>Выгрузка значения без наличия источника. В ред. 1 указывали что реквизит такой то приемника должен получить значение, описанное правилом таким то, при этом в качестве источника можно было оставить пустое значение.<br>В ред. 2 надо написать кусок кода, где можно написать что угодно, например Значение="123"; тогда выгрузится, иначе - нет.<br> <br>Короче говоря, все написанное можно обобщить так: многие вещи теперь надо писать как алгоритм в то время когда раньше было возможно все сделать простыми кликами мышкой."
Спасибо, но чуть переделал (явно указал организацию), может кому пригодится. А и в параметры в этом случаи не надо добавлять организацию.
//+ПередВыгрузкойОбъекта
МояОрг = Справочники.Организации.НайтиПоРеквизиту("ИНН","ТутИннОрганиазции").Ссылка;
Если Объект.Метаданные().Реквизиты.Найти("Организация") <> Неопределено Тогда
Если
//(Параметры.Организация <> Объект.Организация)
Объект.Организация <> МояОрг
Тогда
Если Объект.Метаданные().Реквизиты.Найти("Владелец") <> Неопределено Тогда
Если Объект.Владелец.Метаданные().Имя = "Организации" Тогда
Если //(Параметры.Организация <> Объект.Владелец)
ИначеЕсли Справочники.ТипВсеСсылки().СодержитТип(ТипЗнч(Объект)) Тогда
Если Объект.Метаданные().Владельцы.Содержит(МояОрг.Метаданные()) Тогда
Если //Объект.Владелец <> Параметры.Организация
Объект.Организация <> МояОрг
Тогда
Если Справочники.ТипВсеСсылки().СодержитТип(ТипЗнч(Источник)) Тогда
Если Источник.Метаданные().Реквизиты.Найти("Организация") <> Неопределено Тогда
Если //(Параметры.Организация <> Источник.Организация)
Источник.Организация <> МояОрг
Если Источник.Метаданные().Реквизиты.Найти("Владелец") <> Неопределено Тогда
Если Источник.Владелец.Метаданные().Имя = "Организации" Тогда
Если //(Параметры.Организация <> Источник.Владелец)
Источник.Владелец <> МояОрг
ИначеЕсли Источник.Метаданные().Владельцы.Содержит(МояОрг.Метаданные()) Тогда
Если //Источник.Владелец <> Параметры.Организация
Источник.Владелец <> МояОрг
И по второму ЕСЛИ. Разве Реквизиты.Найти("Владелец") не тоже самое что и Владельцы.Содержит? Добрый день всем, кто задает вопросы!
Эта публикация была в 2010 году, тогда я еще программировал. Сейчас уже давно не программирую. Поэтому на вопросы по существу ответить не смогу.
Кому эта публикация помогла - супер! А если наоборот не нужно выгружать доки определьной организации Сам спросил сам ответил использовал вариант rhtr Иванов (rhtr) но вместо <> поставл =
Большое спасибо, как раз то что надо.
Вот только есть вопрос по оптимизации.
1. Вроде Обработчик "Перед конвертацией объекта" выполняется для вех объектов, как для выгружаемых напрямую, так и по ссылке. Зачем тогда отбор в обработчике "Перед выгрузкой объекта" ? Есть случаи, когда выгрузка есть, а конвертации нет?
Спасибо, пригодилось, единственное есть такие объекты у которых есть реквизит Организация, и они нужны всем если например этот реквизит не заполнен и Объект принадлежит всем организациям. Например справочник Соглашения с клиентами.
Если Объект.Метаданные().Реквизиты.Найти("Организация") <> Неопределено Тогда
Если (Параметры.Организация <> Объект.Организация) Тогда
Если Объект.Метаданные().Имя="СоглашенияСКлиентами" и НЕ ЗначениеЗаполнено(Объект.Организация)Тогда //типовое
Отказ=Ложь;
Иначе
Отказ = Истина;
КонецЕсли;
КонецЕсли;
КонецЕсли;
Просмотры 31442
Загрузки 0
Рейтинг 52
Создание 26.09.10 23:18
Обновление 26.09.10 23:20
№ Публикации 76044
Тип файла Нет файла
Операционная система Не имеет значения
Вид учета Не имеет значения
Доступ к файлу Бесплатно (free)
Код открыт Не указано
См. также
Как прикрутить ГУИД к регистру сведений Промо
. и немного теории обмена данными. В частности, разберем боль всех, кто пишет небанальные обмены данными: как набору записей регистра сведений назначить гуид и далее использовать его в обмене для идентификации этого набора.
16.04.2019 23371 m-rv 18
Выполнение синхронизации (обмен) по событию 1С (двусторонний обмен)
Выполнить синхронизацию(обмен) с другой базой 1С по событию в 1С (проведение документа). Запустить синхронизацию из другой базы 1С.
16.11.2021 647 Swamt 0
Интеграция 1С с ГИИС ДМДК
ГИИС ДМДК - единая информационная платформа для взаимодействия участников рынка драгоценных металлов и драгоценных камней. с 01.09.21 стартовал обязательный обмен данными с Федеральной пробирной палатой (ФПП) исключительно через ГИИС. А постепенно - с 01.01.2022 и с 01.03.2022 - все данные о продаже драгоценных металлов и камней должны быть интегрированы с ГИИС. У многих пользователей возникает вопрос как автоматизировать обмен между программой 1С и ГИИС ДМДК. В настоящей статье ВЦ Раздолье поделится своим опытом о реализации такого обмена. Автор статьи - Мордовин Антон - архитектор систем на базе 1С Внедренческого центра "Раздолье".
30.09.2021 3836 1СERP 35
Ошибка при автоматическом сопоставлении объектов
Ошибка платформы 1С при автоматическом сопоставлении объектов. Ошибка СУБД: Microsoft SQL Server Native Client 11.0: Ошибка операции CREATE TABLE: столбец выходит за пределы максимального значения, равного 1024 столбцам. HRESULT=80040E14, SQLSrvr: SQLSTATE=42000, state=1, Severity=10, native=1702, line=1
24.09.2021 434 user1601331 1
Регулярные выражения без внешних компонент? Легко! Промо
Сложный способ организовать проверку строки с помощью регулярного выражения в 1С. При этом ни одна внешняя компонента не пострадала. Ну и от платформы (Linux, MustDie) - не зависит.
04.03.2016 70773 starik-2005 108
Универсальный метод сериализации значений в XML для локальных баз 1С на любом типе клиента под платформы 8.2 и 8.3
Описаны способы сериализации данных со стороны 1С методов.
15.09.2021 894 user1206119 0
Что делать, когда обмены между разными базами данных портят вам жизнь…
10.09.2021 1481 director04 9
Правила переноса документа "Сторно" в Бухгалтерию 3.0 из любой конфигурации, где он есть
В данной статье представлен код обработчика "ПослеЗагрузки" документа бухгалтерии "Сторно".
12.08.2021 512 Ivanov_OM 0
Универсальный обмен между идентичными конфигурациями через REST интерфейс OData. Часть І: Справочники Промо
11.05.2018 25164 V.Stavinsky 11
Описание формата 1С JDTO (JSON data transfer object)
Формат 1С JDTO может быть полезен для интеграции информационных баз 1С между собой, а также 1С с внешними системами. Публикация имеет своей целью помочь в освоении этого формата для обмена данными.
Создал план обмена, указал по каким организациям нужно делать выгрузку, в правилах регистрации прописал отбор по организации
Выгрузка идёт но выгружает все документы и не учитывает организацию.
Прописал код в обработчике событий после обработки
Но тоже не отрабатывает. Можно ли еще каким нибудь способом отобрать документы по организации?
(1) при настройке обмена, в стандартном варианте, там ведь указываешь по каким организациям производить выгрузку. Как раз и встает признак использовать отбор. А если нет, то по всем и будет. (2) Указал, стоит галка использовать отбор и в табличной части перечислены организации (5) В двух базах нужно организации ставить, и в источнике и приемнике?источник - это узел помеченный кружочком, на нём ничего не надо ставить. Ставить надо для узла - приёмника, для выгрузки куда происходит регистрация источник - это узел помеченный кружочком, на нём ничего не надо ставить. Ставить надо для узла - приёмника, для выгрузки куда происходит регистрация (8) И вот сейчас создал один документ с организацией которую нужно выгружать, она ушла
И создал вторую которую не нужно, тоже выгрузилась
Правила в регистр точно загружены?
А отладчиком если пройтись и проследить, то в какую обработку заходит : в "обменданными" или в "синхронизацию" ? (12) Наименование организаций могут как то влиять?
В одной базе наименование другое
У меня в правилах поиск организации по ИНН и КПП
(13)У меня в правилах поиск организации по ИНН и КПП
А по GUID поиска нету случайно?
Тогда оно ищет сперва в регистре соответствий, потом по GUID и полям поиска по алгоритму заданному в процедуре "Поля поиска".
Сначало по ГУИД, если не нашло то по полям поиска
(12) Правила да, загрузил щас еще разВ обмен данными точно не заходит (14) А в механизм РИБ точно не пытается зайти программа?
(17) Нет, вот настройка в модуле менеджера для отборов
(18)А в настройках ПВД выборка для документов стандартная или произвольный алгоритм с запросом? (19) Не, всё стандартное, не много приписал уже в правилах после загрузки в приемник.А в правилах регистрации не знаете можно ли как то еще отобрать попытаться?
То есть чтобы в регистрацию не попадали документы другой организации, знаю только что можно руками регистрировать отбором А в правилах регистрации не знаете можно ли как то еще отобрать попытаться?
Можно посмотреть реквизиты объекта и поставить отказ=истина перед обработкой в ПРО. Но у вас теоретически хватило бы вашего отбора.
Насколько я понял, у вас выгружается всё, хотя регистрируется только при записи.
Какой-то странный режим включается.
Теоретически принудительно без регистрации выгружается если "выгрузитьпоправилу" или по ссылке если в ПКС стоит "выгружатьобъект=истина".
(21) А где можно посмотреть реквизиты объекта? В модуле где-то или в конвертации в правилах регистрации?(21) Написать бы где-нибудь где обработка документов к отправке идет какой нибудь такой код
Если Объект.Организация.ИНН <> 212331313 То
Если Источник.Организация.ИНН <> "1234567890" ТогдаОтказ = Истина;
КонецЕсли;
"Я не совсем понял в каких правилах? Если в правилах обмена то как их создавать? (параметры)<br> <br>Еще мне подсказали вот так вот<br> <br> <br><pre>Если Документы.ТипВсеСсылки().СодержитТип(ТипЗнч(Объект)) Тогда <br>Если ОбщегоНазначения.ЕстьРеквизитДокумента("Организация", Объект.Метаданные()) И (Параметры.Организация <> Объект.Организация) и (ЗначениеЗаполнено(Параметры.Организация)) Тогда <br>Отказ = Истина; <br>КонецЕсли; <br>ИначеЕсли Справочники.ТипВсеСсылки().СодержитТип(ТипЗнч(Объект)) Тогда <br>Если Объект.Метаданные().Реквизиты.Найти("Организация") <> Неопределено И (Параметры.Организация <> Объект.Организация) и (ЗначениеЗаполнено(Параметры.Организация)) Тогда <br>Отказ = Истина; <br>КонецЕсли;<br>КонецЕсли; <br><br> </pre><br><br> <br> <br> <br> <br>Здесь организацию я так понял тоже надо передавать в Параметры.Организация А как это сделать не пойму"
"а вот проверять метаданные не вижу смысла, т.к. в правилах обмена все равно условие выгрузки пообъектно будете писать, а там уже самостоятельно определите для каких объектов нужно это условие и по каким реквизитам."<br>Вот не понял что - то этот момент)) Поясните пожайлуста.<br> <br> <br>И еще подскажите пожайлуста в кодовом варианте как и где задается Параметры.Организация<br> <br>И почему не получается оценить ваши ответы оценкой и хоть так выразить свою благодарность.
Все верно, в параметры организацию засуньте, отобрав ее по ИНН/КПП, например. И будет вам счастье!
в каком обработчике это сделать . <br>И не могли бы в коде пример накидать?
"> проверять метаданные не вижу смысла<br>Похоже на то что код написан с целью размещения его в обработчике "Перед выгрузкой объекта", являющегося общим для всей "конвертации".<br> <br>По незакрытому вопросу спрашивающего:<br>1. Нужно в свойства конвертации ткнуть (Справочники-Конвертации-щелкаем на нужную)<br>2. Увидеть там закладку "Параметры". Добавить в нее параметр "Организация" и указать что значение должно быть отражено в диалоге.<br>3. Далее можно фильтровать выборку аж в четырех местах.<br> - в свойствах конвертации есть обработчик "Перед выгрузкой объекта". Примерный текст кода по размещению в нем вам написали.<br> - в правилах конвертации объектов каждого вида есть обработчик "Перед выгрузкой", туда можно написать что то вроде:<br> <br><pre>Если Источник.Организация<>Параметры.Организация Тогда<br> Отказ=1;<br>КонецЕсли; </pre><br><br> <br> - в правилах выгрузки данных есть обработчик "Перед обработкой", с помощью которого можно переопределить выборку, но это, по моему, сложный ход.<br> - там же есть "Перед выгрузкой объекта", где опять же, в свою очередь можно описать фильтр.<br> <br>Я почему то тоже вариант 2 предпочел.<br>P.S. Я как то собирался написать "отзыв" по Конвертации данных ред 2. О том что мне показалось удобным и неудобным по сравнению с ред 1. (7.7), но как то не дошли руки."
На spec8 сделали курс по КД (и не много больше по обмену данными вообще). Может то что "сейчас не удобно" просто "мы не знаем как сделать"?
"Да нет, я вроде разобрался в том как и что там задумано. Ну вот пара примеров того что показалось неудобным.<br> <br>Пример 1:<br>Если приемником является фиксированное значение перечисления, то ранее эта ситуация решалась с помощью его выбора из готового набора, который уже известен на этапе описания правил, т.к. структура конфигурации-приемника уже загружена. То есть, все было на уровне "Visual" программирования (простые клики в интерфейсе), того, к чему Microsoft стремилась годами.<br>В ред. 2 надо написать кусок кода: Значение="ДоговорСПоставщиком"; //например<br> <br>Пример 2:<br>Преобразование объекта источника. Реализовывалось тоже с помощью интерфейса. Можно было, например, за пару кликов мышкой указать, что в приемник нужно запустить не объект источника, а какой то его реквизит, а может быть и "реквизит реквизита".<br>В ред. 2 надо написать кусок кода: Значение=Источник.ЮрФизЛицо;<br> <br>Пример 3:<br>Формализация условий. Реализовывалось тоже с помощью интерфейса. Можно было создать условие с каким то идентификатором и в его составе в виде визуального конструктора описать связку условий, на которое можно было ссылаться при выгрузке объекта того или иного вида, а может быть и какого то реквизита.<br>В ред. 2 надо написать кусок кода в обработчике.<br> <br>Пример 4:<br>Конкретизация порядка выборки значений периодических реквизитов. Ранее просто ставился флажок "выгрузить самое последнее значение", "выгрузить все значения за период выгрузки", "выгрузить вручную установленные" и т.п.<br>В ред. 2 надо написать кусок кода в обработчике, например: Значение=Источник.НужныйРеквизит.Выбрать();<br> <br>Пример 5:<br>Выгрузка значения без наличия источника. В ред. 1 указывали что реквизит такой то приемника должен получить значение, описанное правилом таким то, при этом в качестве источника можно было оставить пустое значение.<br>В ред. 2 надо написать кусок кода, где можно написать что угодно, например Значение="123"; тогда выгрузится, иначе - нет.<br> <br>Короче говоря, все написанное можно обобщить так: многие вещи теперь надо писать как алгоритм в то время когда раньше было возможно все сделать простыми кликами мышкой."
Чтобы выгрузить один объект источника в несколько объектов приемника, можно использовать мощный инструмент расширения возможностей правил конвертации – «ВыгрузитьПоПравилу».
Синтаксис функции:
Пример реальной задачи. Необходимо выгрузить справочник – «НоменклатурныеГруппы» в три объекта на стороне приемника: «НоменклатурнаяГруппа» (справочник), «ЗаказНаПроизводство» (документ), «СтатусыЗаказов» (регистр сведений). Для решения данной задачи можно использовать функцию «ВыгрузитьПоПравилу».
В правилах выгрузки данных (далее-ПВД) в обработчике «ПередОбработкой» происходит выгрузка в объект приемника «НоменклатурнаяГруппа» по стандартной выгрузке (ИмяПКО), а в обработчике «ПослеВыгрузки» происходит выгрузка в объекты «ЗаказНаПроизводство» и «СтатусыЗаказов» с помощью функции «ВыгрузитьПоПравилу»:
Если необходимо выгрузить иерархический справочник (элементы и папки) с учетом иерархии и поиск в базе приемника будет осуществляться по внутреннему идентификатору объекта источника (по полям поиска не будет продолжен поиск), то для корректной выгрузки иерархии необходимо установить галочку – «Поиск» у реквизита «ЭтоГруппа» (см. рисунок 1).
Рисунок 1 – Выгрузка иерархического справочника.
Если не установить галочку «Поиск» у реквизита «ЭтоГруппа», то папки объекта будут выгружаться как элементы.
3. Реквизиты объекта для правил регистрации объектовОбъекты регистрируются по правилам регистрации объектов к выгрузке только при изменении реквизитов объекта, которые указаны в правилах конвертации свойств (далее-ПКС) объекта (правила обмена данными). При необходимости регистрировать объект к выгрузке и при изменении реквизитов, которые не указаны в ПКС, достаточно данные реквизиты добавить в ПКС и установить галочку – «отключить» (см. рисунок 2).
Рисунок 2 – Реквизиты объекта для правил регистрации объекта.
Это может потребоваться для задачи, когда у нас есть реквизиты на стороне базы источника, которых нет в базе приемника, и только при их изменении объекты должны регистрироваться к обмену.
4. Зарегистрировать объект к выгрузке другим объектом (объектами)Когда стоит задача выгружать вместо регистрируемого объекта другой объект, то при регистрации исходного объекта в правилах регистрации объектов в обработчике «ПослеОбработки» через метод «ЗарегистрироватьИзменения» плана обмена можно зарегистрировать необходимый объект на узлах плана обмена.
Синтаксис метода:
ЗарегистрироватьИзменения (Узлы, Данные)
Пример реальной задачи. Несколько документов «Списания с расчетного счета» по одному документу «Заявка на расходование ДС» необходимо выгружать из конфигурации источника в один документ «Списания с расчетного счета» конфигурации приемника. При изменении документа «Списания с расчетного счета» регистрируется к обмену документ «Заявка на расходование ДС», который при выгрузке собирает по определенным правилам данные со всех документов «Списания с расчетного счета».
В продолжение пункта 4. При выгрузке любого объекта происходит проверка, соответствует ли он существующим правилам регистрации. Если при регистрации вместо исходного объекта регистрируется к выгрузке другой объект, то новый объект также будет проходить проверку по своему типу правил регистрации объектов. В случае несоответствия правилам регистрации, объект будет выгружать, как «УдалениеОбъекта».
Для устранения данной нестыковки выгружаемого объекта и правил регистрации объекта, нужно использовать в правилах регистрации в обработчике «ПослеОбработки» параметр «Выгрузка».
Описание параметра Выгрузка:
Выгрузка (только чтение) – Булево – параметр определяет контекст выполнения правила регистрации. Истина – правило регистрации выполняется в контексте выгрузки объекта. Ложь – правило регистрации выполняется в контексте перед записью объекта.
Пример реальной задачи. При изменении документа «Списания с расчетного счета» регистрируется к обмену документ «Заявка на расходование ДС», который при выгрузке собирает по определенным правилам данные со всех документов «Списания с расчетного счета». Но документ «Заявка на расходование ДС» может выгружать независимо по своим правилам регистрации, которые не совпадают с правилами регистрации при регистрации из документа «Списания с расчетного счета».
6. Выбор правила конвертации объектов по умолчаниюЕсли по одному объекту источнику в правилах конвертации объектов присутствуют несколько правил, то система будет использовать по умолчанию правило, которое совпадает по наименованию с наименованием объекта источника (см. рисунок 3).
Рисунок 3 – Выбор правила конвертации объекта по умолчанию.
Пример реальной задачи. Данный подход может пригодиться при выгрузке субконто, когда система определяет правила выгрузки объекта по умолчанию.
7. Создание документов (справочников) через ПКО на стороне приемникаПри необходимости создавать на стороне приемника новые элементы документов (справочников) и подставлять их в исходный объект, можно применить следующий подход:
- определить правило заполнения нового документа (справочника) на стороне приемника (например, через входящие данные);- описать заполнение реквизита нового документа (справочника) в исходном объекте (например, через исходящие данные);
- заполнять при выгрузке на стороне источника новый документ (справочник) уникальным значением (например, числом).
Пример реальной задачи. Необходимо на стороне приемника создавать новые документы «ДокументРасчетовСКонтрагентом» в документе ввод начальных остатков по счетам взаиморасчетов. На стороне источника заполняем реквизит «ДокументРасчетовСКонтрагентом» при выгрузке начальных остатков по счетам взаиморасчетов уникальным значением (числом):
В исходном объекте («ВводНачальныхОстатков») описываем правила выгрузки реквизита «ДокументРасчетовСКонтрагентом»:
Определяем правило заполнения «ДокументаРасчетовСКонтрагентом» на стороне приемника (см. рисунок 4).
Рисунок 4 – Правили выгрузки «ДокументРасчетовСКонтрагентов».
В конвертации данных нельзя создать параметр с типом «ТаблицаЗначений» на вкладке «Параметры» (см. рисунок 5).
Рисунок 5 – Допустимые типы для параметров конвертации данных.
Возможность создать параметр с типом «ТаблицаЗначений» при необходимости присутствует в системе, необходимо в общем обработчике «ПередЗагрузкойДанных» определить параметр.
Также необходимо в общем обработчике «ПослеЗагрузкиДанных» удалить данный параметр.
При выгрузке из базы источника можно указывать вместо элемента перечисления или предопределенного значения справочника текстовое значение, которое равно наименованию элемента перечисления или предопределенного значения справочника.
Пример реальной задачи. В базе приемника присутствует реквизит – «ТипПлатежа» с типом «Перечисление». При выгрузке реквизита (обработчик: «Перед выгрузкой») можно указать текстовое значение равное наименованию элемента перечисления на стороне базы приемника (см. рисунок 6). Данный подход может ускорить процесс разработки в конвертации данных.
Рисунок 6 – Заполнение реквизита с типом «Перечисление».
10. Ускорение процесса выгрузки с помощью параметра «ВыгрузитьОбъект» («ВыгрузитьТолькоСсылку»)Когда необходимо выгрузить большой объем данных и нет необходимости выгружать полностью ссылочные данные, то можно сократить объем выгружаемых данных с помощью параметров «ВыгрузитьОбъект» («ВыгрузитьТолькоСсылку») в обработчике «ПриВыгрузке» правил конвертации свойств (ПКС):
Пример реальной задачи. Данное ускорение может потребоваться, когда все ссылочные объекты (нормативно-справочная информация) из базы источника ежедневно интегрируется в базу приемника, а документы должны транслироваться с определенным интервалом (раз в месяц). В таком случае при обмене документами между базами нет необходимости полностью передавать ссылочные объекты, а можно передавать только ссылку, что ускорит процесс выгрузки.
Рассмотренные приемы работы позволят повысить производительность и эффективность работы с программой конвертацией данных 2.1.
Статью подготовил Аналитик-эксперт по информационным системам "ИнфоСофт" Ретунский Александр.
Читайте также: