Настройка обмена данными между двумя файловыми базами 1С 8.3 (например, между «Управление торговлей 11» и «Бухгалтерия предприятия 3.0») часто сопряжена с техническими трудностями. Ошибки вида «Каталог обмена не существует» или «Файл базы данных не обнаружен» могут поставить в тупик, особенно когда пользователь лично заходит в нужную папку через проводник Windows и видит все файлы. Рассмотрим подробнее, почему возникают эти проблемы и как их системно устранить.
Проанализируем механику работы файловой платформы 1С 8.3. В современных конфигурациях на базе БСП (Библиотеки стандартных подсистем) обмен данными редко происходит мгновенно в текущем окне пользователя. Чаще всего он инициируется как ФоновоеЗадание.
В файловом варианте фоновые задания запускаются специальным внутренним механизмом платформы. Выясним причину ошибки: когда вы нажимаете кнопку «Синхронизировать», система может создать отдельный поток, который выполняется не совсем от лица вашего текущего пользователя Windows. Это объясняет ситуацию, когда в проводнике папка доступна, а 1С выдает ошибку доступа. Для диагностики попробуем выполнить обмен интерактивно, принудительно запустив процедуру обмена в коде, чтобы исключить влияние фонового исполнения.
Посмотрим на типичную ошибку администрирования: использование путей вида Z:\Exchange\. Если сетевой диск подключен в сеансе обычного пользователя, а 1С запущена в режиме «От имени администратора», ОС Windows не «пробросит» букву диска в этот защищенный сеанс. Это особенность работы маркеров доступа UAC.
Рекомендуем всегда использовать только полные UNC-пути в формате:
\\ИмяСервера\ИмяШары\ПапкаОбмена\
Проанализируем ситуацию: при использовании UNC-пути система обращается напрямую к сетевому ресурсу, минуя виртуализацию дисков текущего сеанса пользователя. Это наиболее надежный способ настройки путей для обмена файлами.
Если мы выбираем вариант «Прямое подключение к другой базе», 1С использует механизм COM. Здесь возникают специфические проблемы с библиотекой comcntr.dll. Например, по такой схеме часто настраивается синхронизация справочников Физические лица и Сотрудники из ЗУП в Бухгалтерию, и любые ошибки регистрации компоненты блокируют процесс. Разберем по шагам, что нужно проверить:
V83.COMConnector в операционной системе. Часто при установке новой платформы старая библиотека перехватывает вызовы. Для регистрации используем командную строку от имени администратора:
regsvr32 "C:\Program Files\1cv8\8.3.XX.XXXX\bin\comcntr.dll"
В конфигурациях УТ 11.5 и БП 3.0 механизмы обмена работают через программный интерфейс БСП. Проанализируем функцию НайтиФайлы(), которую использует система для проверки каталога.
Посмотрим на пример кода, который часто выполняется внутри типовых процедур проверки:
Если ОбщегоНазначения.ЭтоWindowsАннотация() Тогда
Попытка
МассивФайлов = НайтиФайлы(ПутьККаталогу);
Исключение
ЗаписьЖурналаРегистрации("Обмен данными", УровеньЖурналаРегистрации.Ошибка,,, ОписаниеОшибки());
КонецПопытки;
КонецЕсли;
Если вы видите ошибку «Каталог не существует», обязательно загляните в Журнал регистрации. Там часто скрывается истинная причина — например, отказ в доступе (Access Denied) на уровне файловой системы NTFS, который БСП маскирует под «несуществующий каталог» для упрощения интерфейса.
Для успешного завершения настройки обмена в файловом режиме выполним следующие действия:
\\localhost\c$\Exchange для чистоты эксперимента.Таким образом, мы выяснили, что большинство проблем с «невидимостью» баз и каталогов в файловом варианте 1С связано с изоляцией сеансов фоновых заданий и некорректной адресацией ресурсов в сети. Использование UNC-путей и правильная регистрация COM-компонент решают эти задачи в большинстве случаев.