Универсальный Обмен между базами с использованием Automation-сервера

26.03.15

Интеграция - Перенос данных 1C

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

Скачать файл

ВНИМАНИЕ: Файлы из Базы знаний - это исходный код разработки. Это примеры решения задач, шаблоны, заготовки, "строительные материалы" для учетной системы. Файлы ориентированы на специалистов 1С, которые могут разобраться в коде и оптимизировать программу для запуска в базе данных. Гарантии работоспособности нет. Возврата нет. Технической поддержки нет.

Наименование По подписке [?] Купить один файл
ПереносДокументовИзБазыВБазу82_версия_1.4.3.epf
.epf 117,49Kb
61
61 Скачать (1 SM) Купить за 1 850 руб.
Скрипт активизации окна
.zip 14,04Kb
9
9 Скачать (1 SM) Купить за 1 850 руб.

Обработка создана для организации обмена между базами, используя Automation-сервер, с претензией на универсальность!!!

Пока это BETA-версия, которая проверялась на обмен БГУ-УТ11, БГУ-УП. Но по идее должна работать из любой конфы 8.2 и выше, неуправляемый интерфейс.

Правила работы с обработкой:

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

2. Обработка использует некоторые стандартные процедуры, функции и формы (в частности "ОбщаяФорма.ВыборОбъектовМетаданных" и др), но в минимальном количестве.

3. Сохранение и восстановление настроек производится с использованием "Справочники.СохраненныеНастройки" и соответственно доступны другим пользователям при предоставлении им такого права.

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

5. Имя пользователя удаленной базы и пароль хранятся только последние, введённые в соответствующие поля, и только для локального пользомателя.

6. Для записи соответствий используется  "РегистрыСведений.СоответствиеОбъектовДляОбмена".

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

8. Если решили вести по плану  обмена "РТК_Обмен",  от можно создать множество узлов для подключения. Важно чтобы имя Узла совпадало с Путем подключения к соответствующей базе.

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

10. Загруженные документы всегда сохраняются в "РегистрыСведений.СоответствиеОбъектовДляОбмена" с узлом = неопределено, для того чтобы видеть все загруженные документы не важно из какой они базы, а хранение соответствий справочников и перечислений осуществляется с именем узла = путю подключения к базе (если ведётся по плану обмена "РТК_Обмен") или в одной куче с документами с именем узла = неопределено (если не ведётся по плану обмена "РТК_Обмен").

11. Просмотр и создание настроек соответствий объектов баз в разрезе узла (если ведётся по плану обмена "РТК_Обмен") можно увидеть установив на вкладке "Обслуживание" флаг "Cоздание  соответствий для конкретных объектов(перечислений,справочников) узела обмена".

12. Создание соответствий конкретных объектов баз производится в табличной части вкладки "Обслуживание":

Нажав "Добавить"("Скопировать"):

в поле "СобственнаяСсылка" выбераете сначала тип обекта приемника, а потом и конкретный объект базы приемника;

в поле "СсылкаВДругойИБ" выбераете сначала тип обекта источника, а потом и конкретный объект базы источника;

Так же можно заполнить соответствия "перечислений" двух баз автоматически нажав кнопку "АвтоНастройка соответствий перечислений" (заполнение производится по полному соответствию имен перечислений).

13. Создание соответствий типов объектов баз производится в табличной части "Параметры загрузки в приёмник (в эту базу)" вкладки "Настройка":

Поиск по настройке осуществляется в следующем порядке:

-значение по умолчанию;

-по соответствию ИД в "РегистрыСведений.СоответствиеОбъектовДляОбмена";

-по реквизитам из поля "1 вариант поиска";

-по реквизитам из поля "2 вариант поиска";

Нажав "Добавить"

в поле "Тип источника" выбераете сначала тип обекта источника;

в поле "Вид пиемника" выбераете сначала тип обекта приемника;

в поле "Значение по умолчанию" выбераете значение обекта приемника, если ничего не найдено и если не установлены флаги "Добавлять если не существует" и "Переписывать если существует";

флаг "Добавлять если не существует" устанавливается если хотите создать новый объект в базе приёмнике по данным реквизитов из базы источника;

флаг "Переписывать если существует" устанавливается если хотите переписывать найденный объект в базе приёмнике по данным реквизитов из базы источника;

флаг "Не искать по ИД" устанавливается если не хотите осуществлять поиск по соответствию ИД в "РегистрыСведений.СоответствиеОбъектовДляОбмена;

флаг "Всегда по умолчанию" устанавливается если хотите при любом поиске для данного типа источника устанавливалось значение из поля "Значение по умолчанию";

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

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

ПРИМЕР:

Если Объект.ЭтоНовый() Тогда
  Отказ = РаботаСДиалогами.ЕстьДубльПоИНН(Объект);//использование процедур общего модуля
КонецЕсли;

Нажав кнопку "Показать(скрыть) соответствия" отображается вторая таблица соответствия реквизитов обекта источика и приемника (активной строки таблицы "Параметры загрузки в приёмник (в эту базу)" )

в поле "Источник" можно указать:

имя реквизита объекта источника (например "Наименование"); 

имя реквизита табличной части объекта источника (например "Товары.Номенклатура"); 

пустое значение.

в поле "Приемник" (обязательно для заполнения) нужно указать:

имя реквизита объекта приёмника(например "Наименование"); 

имя реквизита табличной части объекта приёмника(например "Товары.Номенклатура"); 

в поле "Алгоритм" указывается текст кода для выполнения после записи реквизита из поля "Приемник". В алгоритме можно использовать для чтения и записи данные создаваемого объекта по имени "Объект" и если поле "Приемник" содержит имя реквизита табличной части объекта источника (например "Товары.Номенклатура"), то в алгоритме можно использовать для чтения и записи данные создаваемой строки, обращаясь по имени "СтрокаТаблицыПриемника". Также доступны данные для чтения объекта(ссылки) источника по имени "СсылкаУБ" и если поле "Источник" содержит имя реквизита табличной части объекта "Источника"(например "Товары.Номенклатура"), то в алгоритме можно использовать для чтения данные считываемой строки из табличной части источника, обращаясь по имени "СтрокаТЧ".

НО ДАННЫЕ ИСТОЧНИКА ЭТО "COM-объекты" И ПО ЭТОМУ ИХ ИСПОЛЬЗОВАНИЕ ТРЕБУЕТ БОЛЬШОГО ВНИМАНИЯ!!!

ТАКЖЕ ДЛЯ ПРОФИ ИМЯ "Коннект" ЭТО "COM-объект" ПОДКЛЮЧЁННОЙ БАЗЫ.

При использовании алгоритма обратите внимание когда он должен запуститься, для этого указывайте текст алгоритма в строке после заполнения которой он должен запуститься. Можно использовать в алгоритме при создании строки приёмника параметр "Отказ" с типом булево. Если указать "Отказ=истина;", то строка не запишется.

ПРИМЕР АЛГОРИТМА:

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

Если СтрокаТаблицыПриемника.всего = 0 тогда отказ=Истина; КонецЕсли;

 

14. Для переноса документов используется вкладка "Документы".

ОБЯЗАТЕЛЬНО в таблице "Документы источника" должны быть добавлены имена объектов (документов) например "АктПриемкиНФА" (есть в БГУ).

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

Период определяет интервал дат считываемых документов (по умолчанию весь период по текущую дату).

15. Для переноса элементов справочника используется вкладка "Справочники".

ОБЯЗАТЕЛЬНО в поле "Справочник" укажите данные какого справочника источника вы хотите перенести.

В нижней таблице указавается (если необходимо) отбор (только "Код" и "Наименование"), вид сравнения и значение(тип строка);

Данный раздел пока экспериментальный!!!

16. Если все настройки сделаны, то действия пользователя просты.

Кнопка "Подключить базу", далее находясь на нужной вкладке("Документы" или "Справочники") нажать кнопку "Прочитать данные" и на соответствующей вкладке появится список (в соответствии с отбором) предлагаемых к загрузке данных. Указываете ( устанавливая, снимая) флаг в Колонке "Переносить" и далее нажав кнопку "Перенос данных (согласно настройкам)" осуществляется перенос данных.

Возможен просмотр данных источника и приёмника из табличной части нажав "лупу".

Обработка в стадии развития, есть идеи. Также жду ваши замечания и предложения!!!

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

См. также

Перенос данных 1C Файловый обмен (TXT, XML, DBF), FTP Системный администратор Программист Платформа 1С v8.3 Оперативный учет 1С:Управление торговлей 10 Россия Управленческий учет Платные (руб)

Перенос данных из 1С:Управление торговлей 10.3 в 1С:Управление торговлей 11.5 с помощью правил обмена. Переносятся остатки, документы (обороты за период), справочная информация. Правила проверены на конфигурациях УТ 10.3 (10.3.88.x) и УТ 11.5 (11.5.21.x).

35000 руб.

23.07.2020    57294    267    75    

222

Перенос данных 1C Файловый обмен (TXT, XML, DBF), FTP Системный администратор Программист Платформа 1С v8.3 1С:Розница 2 1С:Управление нашей фирмой 1.6 1С:Бухгалтерия 3.0 1С:Управление торговлей 11 1С:Комплексная автоматизация 2.х 1С:Управление нашей фирмой 3.0 1С:Розница 3.0 Россия Платные (руб)

Правила в универсальном формате обмена для ERP 2.5, КА 2.5, УТ 11.5, БП 3.0, Розница, УНФ, для последних версий конфигураций. Ссылки на другие конфигурации в описании публикации. Правила совместимы со всеми другими версиями конфигураций новыми и старыми, поддерживающими обмен и синхронизацию в формате EnterpriseData. Не требуется синхронного обновления правил после обновления другой конфигурации, участвующей в обмене. Типовой обмен через планы обмена кнопкой Синхронизация вручную или автоматически по расписанию, или вручную обработкой.

27660 руб.

12.06.2017    146670    863    300    

443

SALE! 10%

Перенос данных 1C Программист Платформа 1С v8.3 1С:Управление производственным предприятием 1С:ERP Управление предприятием 2 1С:Управление торговлей 11 1С:Комплексная автоматизация 2.х Россия Платные (руб)

Перенос документов, начальных остатков и справочной информации из УПП 1.3 в ERP 2 | из УПП 1.3 в УТ 11 | из УПП в КА 2 | Правила конвертации (КД 2) | Более 360 предприятий выполнили переход с использованием этого продукта! | Сэкономьте время - используйте готовое решение для перехода! | Позволяет перенести из УПП 1.3 в ERP / УТ 11 / КА 2 всю возможную информацию | В переносе есть фильтр по организации и множество других опциональных параметров выгрузки | Есть несколько алгоритмов выгрузки остатков на выбор

55778 50200 руб.

04.08.2015    171996    367    283    

396

SALE! 10%

Перенос данных 1C Файловый обмен (TXT, XML, DBF), FTP Программист Платформа 1С v8.3 1С:ERP Управление предприятием 2 1С:Бухгалтерия 3.0 1С:Управление торговлей 11 1С:Комплексная автоматизация 2.х Россия Платные (руб)

Перенос данных из ERP в БП 3 | из КА 2 в БП 3 | из УТ 11 в БП 3 | из ЕРП в БП 3 | Сэкономьте время - используйте готовое решение для перехода! | Перенос разработан в формате КД 2 (правила конвертации данных) | Переносятся все возможные виды документов, начальных остатков и нормативно-справочная информация| Можно опционально выгружать каждую пару "номенклатура+характеристика" как отдельную номенклатуру | Есть выгрузка настроек счетов учета и зарплатных данных из ERP / КА 2 | Можно проверить на вашем сервере перед покупкой

55778 50200 руб.

15.04.2019    74934    201    156    

140

Перенос данных 1C Файловый обмен (TXT, XML, DBF), FTP Системный администратор Программист Платформа 1С v8.3 1С:Управление производственным предприятием 1С:Бухгалтерия 3.0 Россия Бухгалтерский учет Управленческий учет Платные (руб)

Перенос данных из 1С:Управление производственным предприятием 1.3 в 1С:Бухгалтерия предприятия 3.0 с помощью правил обмена. Переносятся остатки, документы (обороты за период), справочная информация. Правила проверены на конфигурациях УПП 1.3 (1.3.244.x) и БП 3.0 (3.0.172.x). Правила подходят для версии ПРОФ и КОРП.

35000 руб.

15.12.2021    26822    191    56    

146

SALE! 10%

Перенос данных 1C Файловый обмен (TXT, XML, DBF), FTP Программист Платформа 1С v8.3 1С:ERP Управление предприятием 2 1С:Комплексная автоматизация 2.х 1С:Зарплата и Управление Персоналом 3.x Россия Бухгалтерский учет Управленческий учет Платные (руб)

Перенос данных из ERP в ЗУП 3 | из КА 2 в ЗУП | Готовые правила конвертации данных (КД 2) для переноса остатков, документов с движениями и справочной информации 3 | Есть перенос начальной задолженности по зарплате и начальной штатной расстановки на выбранную дату | Обороты за прошлые годы (данные для расчета среднего) переносятся свернуто в документ "Перенос данных" | Есть фильтр по организациям | Документы за текущий период переносятся сразу с движениями, поэтому не потребуется делать перерасчеты | Перенос можно проверить перед покупкой, обращайтесь!

53111 47800 руб.

03.12.2020    38890    108    71    

103

Перенос данных 1C Файловый обмен (TXT, XML, DBF), FTP Системный администратор Программист Платформа 1С v8.3 Платформа 1C v8.2 1С:Комплексная автоматизация 1.х 1С:Управление торговлей 10 1С:Управление производственным предприятием Россия Платные (руб)

Регулярный обмен, выгрузка, перенос из КА 1.1, УПП 1.3, УТ 10.3 для обмена с любыми конфигурациями, поддерживающими обмен в формате EnterpriseData (КД3) - БП 3.0, ERP, КА 2, УТ 11, Розница 2, УНФ 1.6 и другими. Правила для старых и доработанных конфигураций не требуют синхронного обновления и совместимы с новыми и будущими конфигурациями. Обмен по расписанию, через папку, FTP, почту.

16260 руб.

18.02.2016    189795    620    534    

537

SALE! 10%

Перенос данных 1C Системный администратор Программист Платформа 1С v8.3 1С:ERP Управление предприятием 2 1С:Бухгалтерия 3.0 1С:Управление торговлей 11 1С:Комплексная автоматизация 2.х Россия Платные (руб)

Правила переноса данных из БП 3.0 в УТ 11 | из БП 3.0 в КА 2 | из БП 3.0 в ERP | Сэкономьте свое время - используйте готовое решение для перехода! | Постоянно работаем над развитием переноса данных | Обновляем на новые релизы 1С | Есть фильтр выгрузки по организациям | Переносятся начальные остатки на выбранную дату, документы за период времени и вся возможная справочная информация | Перенос сделан на технологии КД 2 (правила конвертации данных) Воспользовались более 122 предприятий! |

55778 50200 руб.

31.10.2014    239176    105    340    

310
Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
1. Yimaida 38 04.06.14 01:10 Сейчас в теме
В чем отличие от типового инструмента для обмена "Конвертации данных" (КД)?
Для тех, кто тоже искал и не нашел - попробуйте КД...
2. nkp14108 94 04.06.14 09:12 Сейчас в теме
(1) Yimaida, Практически небо и земля! Здесь вы работаете напрямую с другой базой, без промежуточных файлов выгрузок-загрузок. Открываете выгружаемый документ в другой базе (источнике, приемнике) просматриваете и сравниваете. Да есть схожие принципы построения обмена и не более.
5. Yimaida 38 04.06.14 16:34 Сейчас в теме
(2) онлайн-обмен тоже позволяет напрямую подключаться к базе. Скажем так, при наличии уже существующих механизмов обмена, надо хотя бы выделить явные преимущества и отличия Вашей обработки (при условии что известны возможности той же КД). Написав статью, Вы же хотите поделиться опытом, помочь другим, но может получиться наоборот. Если есть похожие инструменты о которых известно, то как минимум о них надо обмолвится и хотя бы провести небольшое сравнение.
3. mikhailovaew 127 04.06.14 11:34 Сейчас в теме
Обработка использует некоторые стандартные процедуры, функции и формы( в частности "ОбщаяФорма.ВыборОбъектовМетаданных" и др)

В типовом ЗУПе, например, такой формы нет. Лучше вынести весь типовой функционал непосредственно в обработку, в противном случае обмен получается не очень "универсальный".
4. nkp14108 94 04.06.14 15:08 Сейчас в теме
(3) mikhailovaew, жалко, придется со временем переделать. Это же из стандартных подсистем, получается ЗУП ущемлен. А регистр "СоответствиеОбъектовДляОбмена", и справочник "СохраненныеНастройки" хоть есть.
6. Tarlich 118 21.01.15 23:05 Сейчас в теме
при открытии ругнулось
{ВнешняяОбработка.ПереносДокументовИзУТВБП20.МодульОбъекта}: Переменная не определена (СохранениеНастроек)
7. Tarlich 118 21.01.15 23:07 Сейчас в теме
при запуске из розницы то же ругнулось но
{Форма.Форма.Форма(102)}: Поле объекта не обнаружено (ВалютаРегламентированногоУчета)
Если Не ЗначениеЗаполнено(Константы.ВалютаРегламентированногоУчета.Получить().ВерсияДанных) Тогда
8. nkp14108 94 22.01.15 09:44 Сейчас в теме
(7) Tarlich, Интереса никто особо не проявлял поэтому я не выкладывал более новые версии, обновил файл, можно скачать. Про "Розницу" не знаю нет конфы чтобы проверить. Мин. требования к конф. указаны выше по тексту.
9. Збянтэжаны Саўка 245 24.03.15 12:12 Сейчас в теме
[0]
Процедура АктивироватьОкно(ЗаголовокОкна) Экспорт
	
	Попытка
		Файл = "c:\vbscripts\win_act.vbs";
		Shell = Новый ComObject("WScript.Shell");
		СтрокаЗапуска = """" + Файл + """ """ + ЗаголовокОкна + """";
		
		Shell.Run(СтрокаЗапуска);
	Исключение
	КонецПопытки;
	
КонецПроцедуры
Показать


а можно глянуть, что в файле win_act.vbs ?
10. Alex_E 2389 24.03.15 17:20 Сейчас в теме
Пичалька - хотел посмотреть:

{Форма.Форма.Форма(748)}: Поле объекта не обнаружено (РТК_Обмен)
ПутьКУБ = Строка(ПланыОбмена.РТК_Обмен.ПолучитьФормуВыбора().ОткрытьМодально());

Вопрос, подключение только к серверной базе, хотел файловую открыть:

ВнешняяОбработка.ПереносДокументов.МодульОбъекта(37)}: Ошибка при вызове метода контекста (Connect): Произошла исключительная ситуация (1C:Enterprise 8.3.5.1517): Неверные или отсутствующие параметры соединения с информационной базой
Ошибка соединения

Модуль запаролен, даже не попробовать и не исправить....

P.S. Пробовал в БП 2.0
11. nkp14108 94 26.03.15 10:38 Сейчас в теме
(10) Alex_E, по первой проблеме читайте выше текст:
8. Если решили вести по плану обмена "РТК_Обмен", от можно создать множество узлов для подключения. Важно чтобы имя Узла совпадало с Путем подключения к соответствующей базе.

9. Все поля являются текстовыми и следовательно можно не использовать кнопки выбора, а набивать текст в ручную.
Набивайте путь вручную.
По второй, я работаю с 8.3, проблем нет. проверте настройки (пароль, логин, путь, № платформы).
12. Збянтэжаны Саўка 245 23.04.15 11:28 Сейчас в теме
(0)(8) спасибо за скрипт и за обработку
мне понравилось - хорошее начало, развивайте ее дальше и может получиться, по-моему, очень и очень не плохой продукт.
13. Збянтэжаны Саўка 245 23.04.15 14:31 Сейчас в теме
(0) что за реквизит "СоздаватьДажеЕслиЭлемент"?...
не понятен его смысл, не закончено имя: ЕслиЭлемент... что?...
тем более, что уже есть реквизиты:
ПереписыватьЕслиСуществует
ДобавлятьЕслиНеСуществует

что же имелось в виду: СоздаватьДажеЕслиЭлемент "существует"? - нет смысла.
Не могли бы Вы прояснить этот момент: каким же должно быть имя этого реквизита, чтобы понятно стало для чего он служит?
Спасибо.

14. nkp14108 94 06.05.15 15:55 Сейчас в теме
(13) Збянтэжаны Саўка,
Принцип переноса данных в обработке почти бесконечный вложенный перенос, т.е. переносим документ в нем ссыкка на справочник которого нет,то переносим(создаем). В справочнике ссылка на справочник которого нет,то переносим(создаем) и т.д. Так получилось, в строках документа есть партия(ссылка на документ) и без галочки СоздаватьДажеЕслиЭлемент, если его нет начинает его создавать. А в начале работы и чтобы не насоздавать кучу новых документов, которые забыли выставить соответствия, добавили это поле.
По развитию, постепенно появляется необходимость в управляемых формах, если и будет(время) то развивать будем на них.
15. Збянтэжаны Саўка 245 06.05.15 17:06 Сейчас в теме
(14) спасибо
а новые изменения выкладывать не планируете?
Оставьте свое сообщение