При работе со старыми конфигурациями, такими как «1С:Управление торговлей 10.3», пользователи часто сталкиваются с техническими сложностями при обмене данными с современными банковскими системами. Одной из наиболее неприятных ситуаций является внезапный сброс нумерации исходящих платежных поручений на стороне банка. В этом случае Альфа-Банк начинает генерировать документы, начиная с номера «1», в то время как в базе 1С за текущий или прошлые периоды уже существуют документы с такими номерами. Программа блокирует загрузку, выдавая ошибку «Номер не уникальный». Разберем детально, как решить эту проблему несколькими способами.
Прежде чем приступать к исправлению последствий, проанализируем ситуацию. Сброс счетчика документов в «Альфа-Бизнес Онлайн» обычно происходит по трем причинам:
В результате этих событий 1С пытается создать новый объект ПлатежноеПоручениеИсходящее, но стандартный механизм контроля уникальности не позволяет записать документ, так как номер уже занят. Рассмотрим варианты решения, от простых организационных до более сложных технических.
Проанализируем работу встроенной обработки обмена. В УТ 10.3 используется универсальная обработка КлиентБанк. По умолчанию она может быть настроена на поиск существующих документов только по номеру. Если мы изменим критерии поиска, 1С сможет корректно идентифицировать платежки даже с повторяющимися номерами.
Рассмотрим по шагам, как изменить настройки:
Если банк начал нумерацию с единицы в новом году, то поиск с учетом даты позволит системе понять, что «Платежка №1 от 15.05.2024» — это совершенно новый документ, не имеющий отношения к «Платежке №1 от 15.05.2023».
Если у организации открыто несколько счетов (например, в разных банках), риск совпадения номеров возрастает в разы. Чтобы избежать конфликтов, мы можем использовать механизм префиксации. Рассмотрим подробнее, как это реализовать:
БанковскиеСчета нашей организации.При загрузке выписки 1С будет добавлять этот префикс к номеру, пришедшему из файла. Вместо номера «1» программа попытается создать документ с номером «АБ1». Это гарантирует уникальность в пределах всей базы данных, даже если другие банки тоже пришлют платежку с номером «1».
Самый правильный способ решить проблему «в корне» — это заставить банк выдавать нужные нам номера. В современном интерфейсе «Альфа-Бизнес Онлайн» пользователь может самостоятельно управлять счетчиком. Проанализируем, как это сделать:
После этого все новые исходящие платежи будут иметь корректную сквозную нумерацию, и 1С примет их без возражений.
Бывают ситуации, когда платежек много, они уже созданы в банке с «неправильными» номерами, и нам нужно срочно загрузить их в 1С. В этом случае мы можем отредактировать сам текстовый файл kl_to_1c.txt. Разберем, как автоматизировать этот процесс с помощью редактора Notepad++:
Ctrl + H (замена).Номер=.Номер=100 (где 100 — это ваш префикс или начало диапазона).Таким образом, номер «1» превратится в «1001», а номер «25» в «10025». Это позволит 1С создать новые документы без конфликта уникальности.
Для программистов и администраторов полезно понимать, как на уровне кода происходит проверка. В модуле объекта документа обычно срабатывает стандартный механизм, который можно представить следующим кодом (упрощенно):
Процедура ПередЗаписью(Отказ, РежимЗаписи, РежимПроведения)
Если ЭтоНовый() Тогда
ДокументСТакимНомером = Документы.ПлатежноеПоручениеИсходящее.НайтиПоНомеру(ЭтотОбъект.Номер, ЭтотОбъект.Дата);
Если НЕ ДокументСТакимНомером.Пустая() Тогда
Сообщить("Внимание: Номер не уникальный!");
// Отказ = Истина; // Зависит от настроек контроля уникальности в метаданных
КонецЕсли;
КонецЕсли;
КонецПроцедуры
В «1С:Управление торговлей 10.3» свойство ПериодичностьНомера для платежных поручений обычно установлено в значение «В пределах года». Если вы столкнулись с проблемой в середине года, изменение настройки поиска в обработке загрузки — самый быстрый путь к возобновлению работы.
В качестве долгосрочного решения рекомендуем рассмотреть переход на технологию DirectBank (Альфа-Линк). В отличие от обмена через текстовые файлы, DirectBank использует уникальные идентификаторы (GUID) для каждой операции. Даже если человекочитаемые номера документов совпадут, система идентифицирует их как разные объекты по внутреннему коду банка. Это полностью исключает ошибки дублирования при загрузке выписок.