1с 8 конвертация данных примеры. Пример правила конвертации объектов. Подготовка к настройке пкгс — правил конвертации группы свойств

1. Вступление.

2. Что понадобится: конфигурация 1С: Конвертация данных 2.* и обработки из пакета. Для Примера задач возьмем конфигурации 1С: Управление торговлей 11 и 1С: БП 3.*.

Итак, для разработки правил выгрузки данных в 1С потребуется конфигурация 1С: Конвертация объектов 2, а также обработки, входящие в пакет.

Например, у нас уже развернута база конвертации и запущена.

Разработку правил обмена будем писать между конфигурацией 1С: Управление торговлей 11 и 1С: Бухгалтерия предприятия 3 (правила обмена УТ / БУХ).

3. Нам понадобятся Обработки для выгрузки структуры метаданных и обмена.

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

Собственно, в распакованном каталоге конфигураций для конфигураций на управляемых формах нас интересует обработка MD83Exp.epf. Если выгрузку нужно сделать из конфигураций на обычных формах, тогда используется обработка MD82Exp.epf. Это если, например, нужно получить структуру из таких конфигураций, как 1С: УТ 10, 1С: Управление производственным предприятием 1.3, 1С: Комплексная автоматизация 1.1, 1С: Зуп 2.5 и так далее.

Далее уже для выгрузки-загрузки данных в 1С с помощью наших правил понадобится обработка «Универсальный обмен данными в формате XML» V8Exchan83.epf для конфигураций на управляемых формах таких как 1С: Управление торговлей 11.*, 1С БП 3, 1С: ERP 2.* и подобных. И соответственно V8Exchan83.epf - для конфигураций на обычных формах.

4. Выгрузка структуры метаданных конфигурации 1С: Управление торговлей 11.3 и 1С: Бухгалтерия предприятия 3.0.*

Начнем с выгрузки структуры метаданных из конфигурации 1С: Бухгалтерия предприятия 3.
Откроем обработку MD83Exp.epf

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

Теперь необходимо загрузить конфигурацию в базу конвертаций. К данному пункту можно прийти и из списка конфигураций, и из списка конвертаций. Сделаем просто загрузку из рабочего стола:

В диалоговом окне загружаем структуру БП:

И аналогично - структуру Управления торговлей.

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

6. Создание правил конвертации в 1С на конкретном примере задачи.

Далее переходим в «Настройка правил объекта», где создаем новую настройку.
В диалоговом окне создания конвертации выбираем конфигурацию «источник» и конфигурацию «приемник» (которые ранее загрузили) и нажимаем ОК.

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

В этом диалоговом окне ничего выполнять не будем, просто нажмем - «Закрыть».

Создадим правила для выгрузки не один документ в один, а один вид в другой, например, документ РеализацииТоваровУслуг из УТ 11 с необходимыми справочниками в документ ПоступлениеТоваровУслуг в БП 3.

Итак, создаем новое ПКО (правило конвертации объектов в 1С)

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

А вот на предложение создать ПВД (правил выгрузки данных) отвечаем «Да».

Создаются ПВД, которые и будут отражаться в обработке универсального обмена XML для выбора:

Создадутся так же правила конвертации данных с пустыми правилами конвертации свойств.

Причем видно, что ПКО по умолчанию предлагается искать по внутреннему идентификатору объекта. На это указывает лупа возле ПКО. Мы же будем делать свой поиск, и сделаем его по номеру документа и дате на начало дня.

Снимаем поиск по УИО:

Теперь начнем сопоставление необходимых свойств (реквизитов) объекта. Для этого жмем «СинхронизацияСвойств» (метка «1» на скрине). Убираем рекурсивное создание правил («2»). Снимаем все отмеченные реквизиты ("3"). И выберем самостоятельно, что нам нужно.

Для примера выбираем необходимое:

Обращаю внимание на то, что мы сделаем ПКС контрагента в организацию, а организацию в контрагента, и еще сопоставим некоторые реквизиты, которые не совпадают по имени, например, «Валюта» и «Валюта документа».

Где видим, что еще нет правил конвертации.

Начнем по реквизитам проходить и описывать. Сначала настраиваем поиск документа так, как писал ранее, делаем выгрузку и поиск документа на начало даты, и сделаем подмену нумерации. Первые три символа будем подменять на свой префикс «УТБ». А так как в БП и УТ нумерация по 11 символов, делаем составной номер: наш префикс и 8 символов от источника. Пример на скрине ниже.

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

Для этого ПКС установив, как не проведен, 0 или 1, используем как булево.

На примере валюты создаем для ПКС правило конвертации объекта. При этом считаем, что в обеих базах валюты имеются, и они должны синхронизироваться по коду. Поэтому в ПКО валют не будем создавать все ПКС, а только добавим Код для поиска. Т.е. от предложения создать ПКС для объекта - отказываемся.

В ПКО документа для ПКС подставилось созданное Правило конвертации. А само правило по умолчанию предлагается по уникальному идентификатору. Исправляем, делаем поиск по коду и устанавливаем свойство, чтобы не создавать новый объект.

В итоге получаем вариант:

Далее по аналогии создаем для остальных реквизитов ПКО и ПКС. Причем поиск организации по контрагенту и наоборот устанавливаем по ИНН. Примерно так это выглядит с минимальными реквизитами (можно добавлять при необходимости).

Для ПКО Договоры контрагентов делаем поиск по ПКС Контрагент, наименование и владелец.

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

Ниже показано, как установить без сложностей и в большинстве случаев ПКС для КратностьВзаиморасчетов, КурсВзаиморасчетов, Счета учета.

Для ПКО Номенклатура оставим поиск по внутреннему уникальному идентификатору. Но обращу внимание на то, как можно переопределить свою группу. Например, мы согласны, что будет выгружаться новая номенклатура из конфигурации 1С: Управление торговлей 11, но нужно, чтобы номенклатура собиралась в определенной группе «НашаГруппа».

Для реализации данной задачи создаем ещё одно ПКО. Назовем его «НоменклатураРодитель», которое укажем в ПКС родителя в правиле конвертации.

Устанавливаем два поиска: по наименованию, где наименование жестко указываем нашей группы, и обязательное свойство признака «ЭтоГруппа» в истина.

Поскольку мы приняли решение, что у нас вся номенклатура падает в нашу группу, то нет необходимости при выгрузке выгружать группы из УТ 11. Для этого в ПКО Номенклатура в обработчике событий «ПередВыгрузкой» поставим фильтр, что не нужно выгружать группы «Отказ = Источник.ЭтоГруппа;».

В ПВД (правила выгрузки данных) РеализацииТоваровУслуг, добавим фильтр, чтобы не выгружались помеченные на удаление документы. Для этого в ПВД в обработчиках событий «ПередВыгрузкой» пропишем фильтр «Отказ = Объект.ПометкаУдаления;».


Сохраним разработанные правила в файл.


7. Подводим итоги: Выгрузка и загрузка данных с помощью разработанных правил обмена данными.

Открываем в 1С:Управление торговлей 11 обработку «Универсальный обмен данными в формате XML» V8Exchan83.epf.

Выгрузка прошла, теперь этой же обработкой делаем загрузку в 1С: Бухгалтерия предприятия 3.


Загрузка прошла. Проверяем, что как загрузилось. Итак, документ загружен, как мы и добивались - у нас Организация загружена в контрагента, а контрагент в организацию. Счета учета все загружены и установлены. Номер документа у нас получился с нашим префиксом и на начало дня. Все реквизиты, которые прописали, заполнены.

Проверяем загрузку номенклатуры. Видим, что всё получилось так, как мы и планировали.


У нас создались и заполнились реквизиты так, как мы это задумывали. В конвертации имеется множество тонкостей и каких-то простых, но нужных вещей, которые помогают точно написать конвертацию. А это позволяет минимизировать ошибки, не испортить существующие данные и избавиться от лишнего мусора. Это один из самых простых примеров. Можно так же делать конвертации одного объекта во многие или же наоборот многие - в один.

Сейчас есть конвертация данных 3, она решает другие задачи. Поэтому конвертация 2, так же нужна. Всем удачи в изучении и освоении.

Конечно, если Вы программист и это - основная ваша работа, Вы можете сами попробовать написать конвертацию. Но если нет, то стоит ценить Ваше время в своей сфере деятельности, а данную задачу попросить выполнить профессионалов.

Доброго времени суток, уважаемые читатели блога . Раньше на этом сайте уже была опубликована статья о конвертации
, в этой статье было показано,
как можно настроить обмен, используя конструкторы, с помощью которых создаются правила обмена.
Этот способ можно используется при конвертации баз из 1С версии 7.7 в 8.2.
Сейчас мы поговорим, как переносить данные между конфигурациями 1С 8.2, которые несколько отличаются друг от друга.

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

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

Мы будем переносить документ «ПоступлениеТоваровУслуг», который имеет отличия в реквизите СтавкаНДС табличной части «Товары»
в базе источнике и приёмнике. В базе источнике этот реквизит имеет тип «СправочникСсылка.СтавкиНДС»,
а в базе приёмнике — тип «ПеречислениеСсылка.СтавкиНДС».

Кстати, для удобства можно определить

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

Ситуация осложняется тем, что мы будем работать с табличной частью, поэтому нужно настраивать
правила конвертации группы свойств — ПКГС . Нам нужно будет обращаться к текущей строке табличной части.

Создание правил конвертации группы свойств 1С

У нас уже разработаны правила конвертации для документа «ПоступлениеТоваровУслуг».

Но для табличной части «Товары» нет правила конвертации свойства «СтавкиНДС».
Нужно добавить новое правило конвертации свойств, нажав на кнопку «Синхронизация свойств…».

Появится диалог «Настройка правил конвертации свойств (ПоступлениеТоваровУслуг)».

Нужно повторить то, что сделано на изображении и нажать кнопку «ОК».

Хотя мы создали правило конвертации для группы свойств , но пока оно не готово.
Помните, что реквизиты табличной части «СтавкиНДС» отличаются типами значений.
В базе источнике этот реквизит имеет тип «СправочникСсылка.СтавкиНДС»,
а в базе приёмнике — тип «ПеречислениеСсылка.СтавкиНДС». Здесь нам не хватает правила
конвертации из справочника в перечисление.

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

Чтобы настроить конвертацию свойства правильно, нужно создать новое правило конвертации объектов.

В появившемся диалоге указываем, что справочник «СтавкиНДС» конвертируется в перечисление с таким же названием.

Никаких правил конвертаций свойств для этого правила не будет.
Поэтому при сохранении этого правила, в появившемся диалоге выберем «Нет».

В диалоге с вопросом «Создать правила выгрузки данных?» тоже выберем «Нет».

Двойным нажатием откроем диалог с настройкой правила конвертации объекта (ПКО) «СтавкиНДС».
Здесь на закладке «Обработчики событий» выберем событие «При выгрузке» и определим «Источник» и
«УзелСсылки», то есть то, что будет переносится.

Если Источник. Ставка = 0 Тогда
УзелСсылки = «Ставка0» ;
ИначеЕсли Источник. Ставка = 12 Тогда
УзелСсылки = «Ставка12» ;
ИначеЕсли Источник. Наименование = «без НДС» Тогда
УзелСсылки = «БезНДС» ;
КонецЕсли ;

После написания обработчика нажимаем кнопку «ОК».

В информации по обработчикам:

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

Теперь явно укажем использование этого правила конвертации объекта при выгрузке реквизита «СтавкаНДС».
Преходим на закладку «Конвертация свойств (*)» документа «ПоступлениеТоваровУслуг» и открываем конвертацию
группы свойств «Товары», два раза щёлкаем на свойстве «СтавкиНДС» и в открывшемся диалоге, в поле «Правило»
выбираем правило конвертации объекта «СтавкаНДС».

Нажимаем кнопку «ОК».

Теперь нам осталось установить счета учёта в соответствии с теми значениями, которые определены для номенклатуры.
Перейдём на закладку «Правила конвертации объектов», найдём объект «ПоступлениеТоваровУслуг» и
двойным нажатием на нём откроем диалог правил конвертации объектов (ПКО).
Перейдём на закладку «Обработчики событий» на событие «После загрузки» и напишем следующее:

Для каждого СтрокаТЧ Из Объект. Товары Цикл
СтрокаТЧ. СчетУчетаБУ = СтрокаТЧ. Номенклатура. СчетУчетаБУ;
КонецЦикла ;

Теперь загрузим эти правила в источнике, используя внешнюю обработку «Универсальный обмен данными в формате XML» — «V8Exchan82.epf».
Выгрузим данные в xml-файл. Затем, откроем эту же обработку в базе приёмнике и выберем xml-файл выгрузки и загрузим данные.

Кстати, обработку «Универсальный обмен данными в формате XML» можно открыть через пункт меню
«Сервис» | «Прочие обмены данными» | «Универсальный обмен данными в формате XML». Об этом было немного написано в заметке о .

Для настройки обмена данными между различными (в том числе и самописными) конфигурациями в 1С существует очень гибкий механизм настройки переноса информации – конфигурация 1С «Конвертация данных» (КД). Давайте рассмотрим работу этого механизма и попробуем настроить правила обмена между двумя типовыми конфигурациями:

  • Бухгалтерия предприятия (демо-версия), редакция 3.0.30;
  • Зарплата и управление персоналом (демо-версия), редакция 3.0.25.

В качестве инструмента для настройки правил обмена будет выступать конфигурация Конвертация данных редакции 2.1.82. Работы будут производиться на платформе 8.3.9.

Важно отметить, что Ковертация данных позволяет организовать обмен не только между базами 8 версии программы, но и между 7 и 8 версиями платформы 1С.

Стартовый помощник

После установки конфигурации «Конвертация данных» и её запуска первое окно которое открывается – Стартовый помощник (Рис.1) .

Вызвать его повторно можно из меню Операции->Обработки либо из Справки, где эта обработка выделена в отдельную команду.

Так как мы не планируем использовать типовые правила переноса, а собираемся создать свои в следующем окне мы выберем соответствующий пункт из списка (Рис.2) .

Рис.2

Кроме создания новых правил обмена мы можем:


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

Файлы структуры метаданных

В состав поставки конфигурации «Конвертация» входят несколько внешних обработок, которые позволяют выгрузить структуру метаданных в xml файл.

Важное правило! Обработки выгрузки структуры для разных баз данных должны принадлежать одной версии КД.

Для разных версий платформы фирма 1С реализовала разные обработки выгрузки структуры:

  • MD77Exp.ert – позволяет сохранить в файл структуру конфигураци семерочной базы данных;
  • MD82EXP.epf – выгуржает структуру баз данных, работающих на платформах версии 8.0-8.2;
  • MD83EXP.epf – предназначена для платформы 8.3.

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

Рис.4

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

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

Для этого:


Для второй базы повторяем те же самые действия.

Вернемся к нашему помощнику.

Продолжение работы с помощником

После добавления двух наших баз в справочник он имеет вид (Рис.6).

Продолжим работу с помощником

В следующем окне (Рис.7) мы должны выбрать базу приемник и базу источник.

Рис.7

И вот мы подошли к окну, в котором на предложат определить по каким законам и соответствиям будет строиться наш обмен (Рис.8).

Рис.8

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

Так как мы хотим создать собственные правила мы пойдем по третьему пути.

Создание правила для обмена между справочниками

Устанавливаем переключатель в третий пункт списка и нажимаем кнопку «Выполнить».

Мы попали в мастер настроек элемента справочника «Правила конвертации объекта» (Рис.9)

Рис.9

В базе-источнике мы должны выбрать объект, данные которого будут синхронизированы.

В базе приемнике – таблицу, куда эти данные будут попадать.

На следующем этапе нам предстоит определиться с параметрами загрузки:

  • По каким реквизитам будет происходить поиск соответствия;
  • Что делать с существующими элементами;
  • Создавать ли отсутсвующие элементы;
  • Как поступать со ссылками;
  • Какие правила использовать для нумерации новых элементов.

И параметрами выгрузки.

Если мы решим выполнить автоматическое сопоставление данных, этот пункт мы пропустим.

В конце мы должны выгрузить созданные правила на диск.(Рис.10).

Рис.10

Обмен данными

Дальнейший обмен данными мы будем производить с помощью обработки V8Exchan83.epf (Рис.11), также входящей в комплект поставки. Использование стандартного обмена данными, входящего в состав конфигурации или самописной обработки, при использовании правил созданных в КД может закончится возникновением исключительной ситуации.

Рис.11

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

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

Конвертация данных 2.0 и 2.1 — технологическая конфигурации фирмы 1С, реализованная на версии платформы от 8.1 до 8.3.

Главная задача инструмента — написание правил обмена между прикладными решениями 1С 8 и 7. Актуальная версия конвертации данных сегодня — 3.0.

Конвертация данных — очень полезная конфигурация, с помощью неё можно решить не только вопрос переноса информации из одной информационной базы в другую, но и, например, преобразование информации внутри одной базы.

Конфигурацию очень удобно использовать при .

Конвертация данных будет полезна любому программисту: наличие навыков создания правил обмена — это серьезный плюс к профессиональным навыкам.

Для обучения работы с конфигурации лучше всего подойдет решение практических задач. Попробуйте придумать себе задачи, например: перенести какую-либо информацию из одной базы в другую, превратить документ реализации в документ поступления, «загнать» текущие остатки по бухгалтерскому учету в документ «ввода остатков» и другие задачки.

Очень полезно будет разобраться в «типовых» правилах обмена 1С 8.3, там зачастую можно найти интересные примеры реализации задач.

Для постижения основ вам потребуются материалы, рассмотрим их ниже.

Видео инструкция по конвертации

Азы настройки обмена данными в 1С с помощью конфигурации «1С Конвертации данных» на примере смотрите в видео:

Материалы, учебники для изучения 1С Конвертации данных 2.0

Материалов и документации в сети не слишком большое множество, я попробовал собрать самые важные и интересные материалы:

0. Первым делом советую бесплатный видеокурс Ильи Леонтьева, он доступен по ссылке .

1. Я бы посоветовал прежде всего пользоваться встроенной справкой в конфигурацию. Она действительно неплохо написана и грамотно реализована технически:

2. Второй по важности источник информации — сайт http://www.mykod.info/ (сайт закрылся), специализированный как раз на конвертации данных. Там Вы сможете скачать большое количество материалов по конвертации.

3. Отдельно хотелось бы выделить методичку учебник — (автор — Ольга Кузнецова).

Задача этого правила обмена перенести остатки по взаиморасчетам из БП 2 в УТ11.

Поэтапное создание правила обмена с помощью конфигурации "Конвертация данных"(метаданные должны быть загружены):

1) Создаем правило выгрузки объекта для этого переходим на закладку "Правила выгрузки данных", жмем добавить. В появившемся окне выбираем объект выборки у нас это будет хозрасчетный регистр. Способ выборки меняем на произвольный алгоритм.

2) Переходим к написанию самого кода т.к. в УТ нет хозрасчетного регистра то мы должны его преобразовать. Сначала нам нужен запрос который по нашим параметрам будет возвращать остатки по взаиморасчетам. В обработчике события "Перед обработкой" пишем следующий запрос:

ТекстЗапроса = " ВЫБРАТЬ
| ХозрасчетныйОстатки.Счет,
| ХозрасчетныйОстатки.Субконто1 КАК Субконто1,
| ЕСТЬNULL(СУММА(ХозрасчетныйОстатки.СуммаОстатокДт),0) КАК СуммаОстатокДт,
| ЕСТЬNULL(СУММА(ХозрасчетныйОстатки.СуммаОстатокКт),0) КАК СуммаОстатокКт,
| МАКСИМУМ(ХозрасчетныйОстатки.Субконто2.Дата) КАК ДатаРасчетногоДокумента,
| МАКСИМУМ(ХозрасчетныйОстатки.Субконто2.Номер) КАК НомерРасчетногоДокумента
|ИЗ
| РегистрБухгалтерии.Хозрасчетный.Остатки(&НаДату, Счет = &счет,) КАК ХозрасчетныйОстатки
|ГДЕ
<> &группа и
| ХозрасчетныйОстатки.Субконто1.Родитель <> &группа1
|СГРУППИРОВАТЬ ПО
| ХозрасчетныйОстатки.Счет,
| ХозрасчетныйОстатки.Субконто1,
| ХозрасчетныйОстатки.Субконто2
|УПОРЯДОЧИТЬ ПО
| Субконто1
|АВТОУПОРЯДОЧИВАНИЕ";

В моей задача стояли ограничения на группы контрагентов по которым выгружаются взаиморасчеты.

Определяем значения переменных которые будут использоваться в дальнейшем.

НаДату = дата("20130101");
ТД = ТекущаяДата();
группа = Справочники.Контрагенты.НайтиПоНаименованию("Покупатели");
группа1 = Справочники.Контрагенты.НайтиПоНаименованию("Возвраты от ФИЗЛИЦ");

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

ТЗ = Новый ТаблицаЗначений();
ТЗ.Колонки.Добавить("Контрагент");
ТЗ.Колонки.Добавить("Сумма");
ТЗ.Колонки.Добавить("СуммаРЕГЛ");
ТЗ.Колонки.Добавить("РасчетныйДокумент");
ТЗ.Колонки.Добавить("ДатаРасчетногоДокумента");
ТЗ.Колонки.Добавить("НомерРасчетногоДокумента");
ТЗ.Колонки.Добавить("Партнер");
ТЗ.Колонки.Добавить("ВалютаВзаиморасчетов");
ТЗ.Колонки.Добавить("ДатаПлатежа");

Устанавливаем параметры, вызываем запрос, заполняем таблицу вызываем правило конвертации.

запрос = новый запрос(ТекстЗапроса);
запрос.УстановитьПараметр("группа",группа);запрос.УстановитьПараметр("группа1",группа1);
запрос.УстановитьПараметр("НаДату",НаДату);
запрос.УстановитьПараметр("Счет",ПланыСчетов.Хозрасчетный.РасчетыСПрочимиПоставщикамиИПодрядчиками);//76.05
Выборка = запрос.Выполнить().Выбрать();
ТЗ.очистить();
Пока Выборка.Следующий() Цикл
если Выборка.СуммаОстатокКТ = 0 или Выборка.СуммаОстатокКТ = "" тогда
продолжить;
конецесли;
если Выборка.СуммаОстатокКТ < 0тогда
сообщить(""+Выборка.Субконто1+" отрицательное значение "+Выборка.СуммаОстатокКТ);
конецесли;
СтрокаТЗ = ТЗ.Добавить();
СтрокаТЗ.Контрагент = Выборка.Субконто1;
СтрокаТЗ.сумма = Выборка.СуммаОстатокКТ;//Выборка.СуммаОстатокКт;
СтрокаТЗ.суммаРегл = Выборка.СуммаОстатокКТ;//Выборка.СуммаОстатокКт;
СтрокаТЗ.ДатаРасчетногоДокумента =Выборка.ДатаРасчетногоДокумента;
СтрокаТЗ.НомерРасчетногоДокумента = Выборка.НомерРасчетногоДокумента;
СтрокаТЗ.ДатаПлатежа = ТД;
КонецЦикла;
ИсходящиеДанные = Новый Структура;
ИсходящиеДанные.Вставить("Дата", ТекущаяДата());
ИсходящиеДанные.Вставить("РасчетыСПартнерами", ТЗ);
ИсходящиеДанные.Вставить("ТипОперации", "ОстаткиЗадолженностиПередПоставщиками");
ИсходящиеДанные.Вставить("Комментарий", "Сформировано по кредиту счета 76.05");
сообщить("76.05 КРЕДИТ начало");
ВыгрузитьПоПравилу(, ИсходящиеДанные, "ВводОстатковПоВзаиморасчетам_7605Кредит");

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

3) Переходим к созданию правил конвертации объектов, для этого открываем закладку "Правила конвертации объектов". Добавим туда новое правило с именем "ВводОстатковПоВзаиморасчетам_7605Кредит" , объект источник оставим пустым, объект приемник установим документ "Ввод остатков", на вкладке настройки уберем флаг "Искать объект приемника по внутреннему идентификатору объекта источника".

В обработчике события "Перед загрузкой" напишем следующий код:

ГенерироватьНовыйНомерИлиКодЕслиНеУказан = истина;

В обработчике события "После загрузки" напишем:

выполнить(алгоритмы.ПослеЗагрузкиВводаОстатков);

он выполнит алгоритм со следующим содержанием:

валюта = Константы.ВалютаРегламентированногоУчета.Получить();
объект.Ответственный = ПараметрыСеанса.ТекущийПользователь;
объект.организация=параметры.порганизация;
для каждого стр из объект.расчетыспартнерами цикл
Стр.РасчетныйДокумент = Справочники.ДоговорыКонтрагентов.пустаяссылка();
Стр.ВалютаВзаиморасчетов = валюта;
если ЗначениеЗаполнено(стр.контрагент.партнер) тогда
стр.партнер = стр.контрагент.партнер;
иначе
парт = Справочники.Партнеры.НайтиПоНаименованию(стр.контрагент.Наименование);
если парт <> Неопределено и парт <> Справочники.Партнеры.пустаяссылка() тогда
стр.партнер = парт;

объект2.Партнер = парт;
объект2.Записать();
иначе
выполнить(алгоритмы.ДобавитьПартнера);
конецесли;

конецесли;

конеццикла;

Этот алгоритм будет исполнен на стороне приемника(БП). Кроме переноса остатков по взаиморасчетам стоит задача переноса контрагентов, но в УТ используются партнеры поэтому после формирования документа мы проверяем все ли контрагенты и партнеры имеются в базе приемнике, если по какой то причине их нет то мы их добавляем.

Добавление контрагентов осуществит правило конвертации справочника "Контрагенты" его можно создать точно также как и предыдущее правило, но разрешить системе самой сопоставить необходимые поля.

Для партнеров был создан алгоритм который выполняется на стороне приемника.

Для того чтобы выполнить алгоритм на стороне приемника, надо в правом верхнем углу окна алгоритма(при его редактировании) проставить флаг "Используется при загрузке".

Ниже приведен код алгоритма "Добавить партнера":

нПартнер = Справочники.Партнеры.СоздатьЭлемент();
нПартнер.Наименование =стр.контрагент.наименование;
нПартнер.Комментарий = "Создан при загрузке из БП";
нПартнер.НаименованиеПолное =стр.контрагент.НаименованиеПолное;
нПартнер.Поставщик = ?(найти(стр.контрагент.ДополнительнаяИнформация,"Поставщик")>0,истина,ложь);
нПартнер.Клиент = ?(найти(стр.контрагент.ДополнительнаяИнформация,"Клиент")>0,истина,ложь);
ПрочиеОтношения = ?(найти(стр.контрагент.ДополнительнаяИнформация,"Прочее")>0,истина,ложь);
нпартнер.Записать();
стр.партнер = нпартнер.ссылка;
контрагент = Справочники.Контрагенты.НайтиПоНаименованию(стр.контрагент.Наименование);
объект2 = контрагент.ПолучитьОбъект();
объект2.Партнер = нпартнер.ссылка;
объект2.Записать();

Возвращаемся обратно к правилу конвертации объекта. Теперь нам надо установить соответствия полей источника и приемника, это можно было сделать непосредственно перед написанием кода. Для того чтобы сопоставить поля в нижней табличной части имеется кнопка вызова мастера "Синхронизация свойств". В этом мастере мы можем либо сопоставить поля, либо оставить как без источника, так и без приемника. В нашем случае все поля и ТЧ мы оставляем без источника.

После того как необходимы поля были выбраны в нижней ТЧ для каждого поля выставляем флаг в колонке "Получить из входящих данных". Этот флаг говорит о том, что система будет искать это поле во входящих данных. Важно чтобы имя поля совпадало с именем во входящих данных, иначе будет выведено сообщение о том, что поле не найдено.

Текстом описаны не все нюансы процесса.

Просмотров