1с перенести регистр сведений в другую базу

Обновлено: 04.07.2024

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

Делаешь ПКО. В настройках есть "Не замещать существующие объекты в приемнике, а только создавать новые". Все.

А разве это правило срабатывает также и для записей регистров сведений?!

За 100$ я и сам разберусь и сделаю. Контакты в личке =)

А если уже загруженная контора поменяет контактную информацию?

зы. создаешь ПКО для РС конт инф. в обработчике после записи контраг создаешь ТЗ, которую "набиваешь" колонками и значениям равными структуре РС. после пишешь ВыгрузитьПоПравилу("КОнтактнаяИнформация",мояТЗ) см. параметры. и все

блин, ну а в чем проблема? в обработчике после записи ищешь записи о контрагенте в РС и если их нет, то используешь ВыгрузитьПоПравилу

Ну значит проблем нет. :) Все понятно. Всем действительно спасибо :)

+ а я ведь предлагал ВР зарабатывать ни мисте, сделав здесь арену продаж специалистов

вижу-вижу. в двух темах уже предлагал услуги по демпинговым ценам )))

Нее чуваки. я в Молдавии и к данной контре никакого отношения не имею =) Так что все нормально, никто никому ничего не должен =)

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

(1) zikonza, используй ЗначениеВСтрокуВнутр(Ссылка). А при загрузке ЗначениеИзСтроки и в твой регистр.
Только у тебя везде будет ненайденные значения, ибо в разных базах ссылки разные

(2) Boneman, я потом думал что когда документы догрузят что все встанет на свои места

(2) Boneman, смысл как бы и был в том что перенести записи регистра, потом докинуть документы( это не моя прихоть, заказчик сказал что так надо)

(4) zikonza, представь,
две пустые базы 1 в 1.
Вот если ты введешь, первый элемент справочника, абсолютно идентичный, в одной и в другой базе.
Будет казаться, что, это точная копия.
Но, это не так. Ссылки на эти элементы в каждой базе будут свои.
Поэтому, при взаимодействиях в разных базах, ищут объекты по всяким другим критериям, наименованиям, датам и т.п.
Есть конечно некоторые методы и функции, но надо хотябы представлять, как база работает на данном уровне, чтобы их правильно использовать.

Само, ничего не загрузится, и не найдется. А ссылку, с отсутствующим объектом в источнике, я вообще не понимаю зачем переносить. Это вообще является ошибкой работы базы, такие вещи не переносить, а лечить надо, тестированием и исправлением базы.

(1) zikonza, Как вариант можно попробовать перед записью менеджера записи получать объект требуемого измерения, если ссылка на объект есть, а самого объекта нет то получим неопределенно, в таком случае можно сделать отказ

(6) hroa, как это одинаковые ? Там же уникальный идентификатор у каждой будет свой.

(7) Boneman, я просто в обменах не силен=) но тоже говорили что ссылки будут одинаковые и документы в качестве измерений встанут

(6) hroa, раз они будут одинаковые, как можно перенести объекты источника в приемник ссылками. Обязательно но ли использовать функции какие мне посоветовали или можно обойтись настройкой правил, которую я к сожалению не знаю?

Преподаватель 1С
Санкт-Петербург
зарплата от 100 000 руб. до 120 000 руб.
Временный (на проект)

В данной главе рассматривается перенос данных непосредственно из исходной информационной базы в 1С:Бухгалтерию 8. Такой способ переноса считается основным.

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

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

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

Этап 1. Резервное копирование

Выполним резервное копирование исходной информационной базы.

Этап 2. Загрузка данных

Запустим 1С:Бухгалтерию 8.

Дополнительные настройки в информационной базе 1С:Бухгалтерии 8 не требуются. Настройки параметров учета для корректного переноса данных установлены в информационной базе по умолчанию.

Необходимо воспользоваться помощником перехода (меню Сервис – Перенос данных из информационных баз 1С:Предприятия 7.7).

Шаг 1. Выбор варианта загрузки данных

Выберем пункт Загрузить данные из информационной базы.

Шаг 2. Выбор исходной информационной базы, настройки переноса

После выбора информационной базы в поле Путь к информационной базе отображается расположение базы.

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

  • Только справочники – будут перенесены только справочники исходной информационной базы;
  • Остатки на начало года – нужно выбрать этот пункт, если перенос осуществляется на 01число года;
  • Остатки на начало года и обороты за период – нужно выбрать этот пункт, если перенос осуществляется в середине года.

В поле Период укажем период переноса.

Например, если перенос осуществляется на 01 января 2009 года, то установим значение переключателя в положение Остатки на начало года. В поле Период выберем – 2009 г.

Нажмем кнопку Далее для выполнения переноса данных.

Шаг 3. Загрузка

Загрузка данных и их проверка осуществляются автоматически.

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

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

Внимание!

Если загрузка осуществляется в программный продукт базовой версии, то ИНН и КПП организации в 1С:Бухгалтерии 8 будут заменены на ИНН/КПП организации исходной информационной базы.

Шаг 4. Результат переноса

Если перенос данных прошел успешно, выводится строка: «Перенос данных прошел успешно!».

Если используется версия ПРОФ, можно сразу приступить к переносу следующей информационной базы, нажав кнопку Продолжить. Порядок сопоставления данных при переносе из нескольких информационных баз описан в главе «Вспомогательные методики переноса».

Кнопка Завершить используется для закрытия формы.

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

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

Синтаксис функции:

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

В правилах выгрузки данных (далее-ПВД) в обработчике «ПередОбработкой» происходит выгрузка в объект приемника «НоменклатурнаяГруппа» по стандартной выгрузке (ИмяПКО), а в обработчике «ПослеВыгрузки» происходит выгрузка в объекты «ЗаказНаПроизводство» и «СтатусыЗаказов» с помощью функции «ВыгрузитьПоПравилу»:


2. Выгрузка иерархического справочника (элементы и папки)

Если необходимо выгрузить иерархический справочник (элементы и папки) с учетом иерархии и поиск в базе приемника будет осуществляться по внутреннему идентификатору объекта источника (по полям поиска не будет продолжен поиск), то для корректной выгрузки иерархии необходимо установить галочку – «Поиск» у реквизита «ЭтоГруппа» (см. рисунок 1).


Рисунок 1 – Выгрузка иерархического справочника.

Если не установить галочку «Поиск» у реквизита «ЭтоГруппа», то папки объекта будут выгружаться как элементы.

3. Реквизиты объекта для правил регистрации объектов

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


Рисунок 2 – Реквизиты объекта для правил регистрации объекта.

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

4. Зарегистрировать объект к выгрузке другим объектом (объектами)

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

Синтаксис метода:

ЗарегистрироватьИзменения (Узлы, Данные)


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

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

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

Описание параметра Выгрузка:

Выгрузка (только чтение) – Булево – параметр определяет контекст выполнения правила регистрации. Истина – правило регистрации выполняется в контексте выгрузки объекта. Ложь – правило регистрации выполняется в контексте перед записью объекта.


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

6. Выбор правила конвертации объектов по умолчанию

Если по одному объекту источнику в правилах конвертации объектов присутствуют несколько правил, то система будет использовать по умолчанию правило, которое совпадает по наименованию с наименованием объекта источника (см. рисунок 3).


Рисунок 3 – Выбор правила конвертации объекта по умолчанию.

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

7. Создание документов (справочников) через ПКО на стороне приемника

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

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

Пример реальной задачи. Необходимо на стороне приемника создавать новые документы «ДокументРасчетовСКонтрагентом» в документе ввод начальных остатков по счетам взаиморасчетов. На стороне источника заполняем реквизит «ДокументРасчетовСКонтрагентом» при выгрузке начальных остатков по счетам взаиморасчетов уникальным значением (числом):


В исходном объекте («ВводНачальныхОстатков») описываем правила выгрузки реквизита «ДокументРасчетовСКонтрагентом»:


Определяем правило заполнения «ДокументаРасчетовСКонтрагентом» на стороне приемника (см. рисунок 4).


Рисунок 4 – Правили выгрузки «ДокументРасчетовСКонтрагентов».

В конвертации данных нельзя создать параметр с типом «ТаблицаЗначений» на вкладке «Параметры» (см. рисунок 5).


Рисунок 5 – Допустимые типы для параметров конвертации данных.

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


Также необходимо в общем обработчике «ПослеЗагрузкиДанных» удалить данный параметр.


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

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

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


Рисунок 6 – Заполнение реквизита с типом «Перечисление».

10. Ускорение процесса выгрузки с помощью параметра «ВыгрузитьОбъект» («ВыгрузитьТолькоСсылку»)

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


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

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

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

Читайте также: