Как перенести данные и настроить связь разных систем?

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

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

Если перенос сделать не правильно, то стоит ожидать самых неприятных последствий, среди которых полная потеря служебной информации, а в том числе и отчетной информации для предоставления в налоговую и прочие госструктуры, или искажение информации, что тоже совсем не здорово. Ведь могут поплыть поля справочников и в итоге мы можем получить в каталоге велосипедов нечто типа: педали – 15 кг. Это симбиоз перемешивания ячеек таблицы, содержащей вес велосипеда и материала, из которого изготовлены педали. 

Из-за чего возникает такая проблема

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

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

Например, мы хотим вывести на экран список сотрудников. Система генерирует запрос к базе данных и буквально говорит – ищи сведения о сотрудниках в таблице номер 1, столбец номер 5. Всё это выведи на экран. Теперь представим, что в новой системе база данных имеет другую структуру и табличка там сгруппирована иначе. В итоге там сведения о сотрудника лежат в таблице номер 5, столбец номер 8. Программа тыкается по заложенному адресу в поиске нужных сведений и находит или не те сведения, что ожидает увидеть, или не находит вообще ничего. В лучшем случае, это приведет к торможению или подвисанию. Система просто ничего не найдет. В худшем случае может убиться остаток нужной базы данных.

Казалось бы, нет ничего более простого, чем просто переписать ячейки в таком виде, как это ожидает увидеть новая система. Но и тут всё очень сложно. Стандартные инструменты импорта могут так знатно искалечить информацию, что даже если она и попадет в нужную ячейку, то будет представлена в виде !”(:?:%:%%;;%;;%:??** вместо ожидаемой фамилии Иванов. Поэтому, алгоритмы для автоматического переноса срабатывают не всегда. 

Обозначенные варианты – это только самая вершина айсберга. Множество различных схожих по логике ситуаций может тут появляться и это приведет к неисправностям и глюкам. Если речь идёт про серьезную систему типа ERP, то это годы работы и гигабайты действительно значимых сведений. 

Так можно ли перенести данные из одной программы в другую?

Конечно же, даже в самых сложных случаях перенести рабочие данные из одной программы в другую можно. Правда в зависимости от специфики ситуации это требует разное количество времени. Скажем так – нерешаемых проблем не бывает. Можно перенести данные хоть с картриджа Dendy в таблицу 1С ERP со списком сотрудников. Вопрос трудоемкости задачи. 

Любая современная система автоматизации имеет ряд специальных инструментов для переноса

Можно подумать, что если речь идёт об однотипных системах или системах от одного производителя, то проблем не появится. Но, например, при многократных переносах данных в разных системах 1С мы поняли, что даже такой удобный для работы вариант сопряжен с множеством сложностей и проблем. Даже тут казалось бы штатный механизм вызывает огромное количество несостыковок. При переносе справочников из УПП в ERP возникает много битых полей, которые не ясно как адаптировать для работы. Иногда налаживание всего этого занимает несколько месяцев. Но в случае 1С всё проще, потому что хотя бы база является гарантированно однотипной и хорошо изучена.

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

Часто возникает искушение использовать какие-то стандартные инструменты для переноса данных из одной системы в другую. Обычно это русская рулетка. Иногда, причем довольно редко, приложение действительно справляется с поставленной задачей. Всё действительно происходит бесшовно, как это и обещают авторы решения. Но преимущественно схема совсем другая – корявый алгоритм так калечит базу данных, что найти там какие-то концы и заставить всё это снова работать уже почти нереально. Приходится в ручном режиме восстанавливать все данные. Это лишний раз напоминает, что при подобных работах обязательно нужно использовать резервные копии и не забывать создавать их. Кроме того, это лишний раз демонстрирует не самую хорошую ситуацию с обещаниями. Кстати, в качестве примера тут хорошо подойдут программы для восстановления поврежденных или случайно удаленных файликов. Иногда они блестяще справляются с задачей, а иногда ничего не могут сделать.

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

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

Чем перенос данных отличается от синхронизации или обмена

Бывают такие ситуации, когда нужно не просто перенести имеющиеся данные и забыть, что была старая система, а когда ещё нужно постоянно обеспечивать обмен информацией между старой системой и новой системой. При этом термин “старая” и “новая” системы не совсем тут корректен. Например, у одного из наших заказчиков Navien была задача по обеспечению постоянного обмена данными между их системой автоматизации, которой они пользуются в России и системой, которая используется в главном офисе за рубежом. Само собой, что в нашей стране компания использовала систему 1С. Но на той стороне офис пользовался системой автоматизации SAP. 

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

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

В итоге перенос  данных – это единоразовое перемещение сведений из одной системы в другую. А обмен или синхронизация – это постоянный обмен информацией между разными системами в режиме онлайн.

Ответить

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