воскресенье, 30 января 2011 г.

В 1С 7.7 слетела нумерация документов посреди года

Столкнулись с интересной ситуацией в начале этого года. У клиента действует система распределенной базы данных (УРБД). Это когда на нескольких удаленных друг от друга точках (магазинах) стоят копии центральной базы. Для того, чтобы эти копии были одинаковыми, периодически происходят выгрузки и загрузки файлов с изменениями, произошедшими с момента последней успешной синхронизации, сначала в центральную базу из точек, а потом из центральной базы на точки. Документы одного типа (например "Реализация") должны иметь уникальный номер в течение года. Естественно, когда люди работают одновременно на нескольких точках, то они не могут обеспечить сквозную нумерацию, т.к. в каждой базе нумерация будет начинаться с единицы и идти дальше. Чтобы при синхронизации не получалось несколько документов с одним номером ввели понятие "Префикс базы". На каждой точке указывается префикс, который автоматически ставится в начало номера документа. Плюс к этому, поскольку точка может торговать от лица нескольких юридических фирм, то вводится второй префикс, идущий сразу за префиксом базы, который указывается для конкретной фирмы. Например, магазин (точка) в Выборге имеет префикс "Вб". Менеджер выписывает документ "Реализация" от имени фирмы "Барклай", у которой указан префикс "Б". Документ будет выписан с номером "ВбБ000001". В один не очень прекрасный день января нам позвонили с точки с префиксом "В" со словами, что у них слетела нумерация документов.
Я сначала подумал, что они испугались обнуления номеров в начале года, но все было не так просто. Они ввели уже порядка ста документов с новой нумерацией, как по середине января, вновь создаваемый документ начал выдавать первый порядковый номер. Изменение этого номера на последний записанный номер+1 вручную давали только то, что этот документ можно было записать. Но следующий вновь созданный документ снова показывал первый порядковый номер. Им приходилось переписывать номера вручную.
Когда я посмотрел на проблему своими глазами, оказалось, что такое происходит только для одной группы префиксов "ВБ" (В - префикс точки, Б - префикс фирмы "Барклай"). Если выбрать другую фирму, то все работает как надо. Префикс документа "ВБ" напомнил мне о префиксе точки "Вб". Эта точка начала работу в программе как раз с 11 января. Дальше было много экспериментов, результатом которых стала обработка, которая поменяла префикс "Вб" на другой для всех документов с точки "Вб". Результатом стало чудесное излечение нумерации на точке "В". Пришлось присвоить точке в Выборге другой префикс, чтобы ситуация не повторилась.

Заключение:
В УРБД 1С 7.7 есть такая особенность, которую нужно учитывать, когда вы даете префиксы базам и фирмам. Необходимо, чтобы префикс новой базы не совпадал с вариантами "префикс старой базы + префикс фирмы". В моем случае это был префикс базы "Вб", который совпал с вариантом "ВБ"(префикс базы "В" + префикс фирмы "Б"). Лучше всего, видимо, давать односимвольные префиксы.

Комментариев нет:

Отправить комментарий