1С-Предприятие 8.0. Практическое пособие разработчика

       

Постановка задачи


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

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

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

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

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

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



Содержание раздела