В процессе обмена электронными документами между 1С и СБИС пользователи часто сталкиваются с тем, что в номер документа попадают лишние данные: префиксы информационной базы или организации, а также ведущие нули (в ряде случаев может потребоваться перенумерация документов и справочников с учетом префиксов (поможет инструмент для перенумерации документов в 1С)). Это приводит к недовольству контрагентов, так как визуальное представление номера в 1С при печати отличается от того, что уходит через ЭДО. Разберем по шагам, как исправить эту ситуацию.
Прежде чем приступать к глубоким доработкам кода, убедимся, что мы используем актуальную версию внешней обработки. Разработчики СБИС регулярно выпускают обновления, исправляющие некорректную передачу данных. На форуме было выявлено, что версии ниже 2.0.36.3 содержат ошибки в расчете и отображении номеров документов.
Если обновление не помогло, рассмотрим стандартный функционал обработки (для специфических задач также существует групповая выгрузка и загрузка файлов из 1С в XML для ЭДО). В настройках модуля предусмотрены инструменты для управления выводом номеров. Не пугайтесь названия раздела «Печать номеров документов» — в контексте интеграции со СБИС этот функционал определяет, в каком виде номер документа будет сформирован для передачи в XML-файл ЭДО.
Чтобы проверить результат до момента отправки, используйте встроенный просмотр: дважды кликните по документу в списке обработки. В открывшемся окне просмотра вы увидите итоговый номер, который будет отправлен контрагенту.
В исключительных случаях, когда стандартные настройки не срабатывают или требуется специфическая логика обрезки (например, если после обрезки исчезают важные суффиксы типа «/1»), приходится вмешиваться в код обработки. Рассмотрим пример модификации функции ПолучитьНомерДокумента.
В форме РаботаСДокументами1С необходимо убедиться, что переменные удаления префиксов корректно инициализируются из контекста выполнения:
// Удаляем старые жесткие привязки
// УдалятьПользовательскийПрефикс = ГлавноеОкно.УдалятьПользовательскийПрефикс;
// УдалятьПрефиксИнформационнойБазы = ГлавноеОкно.УдалятьПрефиксИнформационнойБазы;
// Используем текущий контекст выполнения для получения настроек
УдалятьПользовательскийПрефикс = Контекст.УдалятьПользовательскийПрефикс;
УдалятьПрефиксИнформационнойБазы = Контекст.УдалятьПрефиксИнформационнойБазы;
Важно помнить: любые изменения в типовом коде обработки могут быть затерты при очередном обновлении модуля, поэтому используйте этот метод только в том случае, если стандартные настройки обработки не приносят нужного результата.
.xml для типов документов, проверьте, нет ли там жестко заданных параметров, которые блокируют изменения, внесенные через интерфейс обработки — поможет гибкая выгрузка документов в XML для ЭДО.Разобравшись с настройками и обновив модуль, вы сможете добиться чистого отображения номеров, что упростит жизнь и вам, и вашим партнерам по бизнесу.