644 документа
← К списку

Универсальный механизм обмена данными

страница

Универсальный механизм обмена данными

Итак, наше ООО «На все руки мастер» открыло свой филиал в городе N и установило в нем такую же конфигурацию для учета работы филиала.

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

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

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

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

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

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

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

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

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

Для хранения префикса номеров мы используем объект конфигурации Константа.