Перенос справочников в 1С версии 7.7, особенно когда речь идет о SQL-версии конфигурации «Торговля и Склад» 9.2, — задача классическая, но имеющая свои подводные камни. Ситуация осложняется, если у пользователя нет прав администратора SQL-сервера или прав на манипуляции с конфигуратором. В данной статье мы разберем по шагам, как решить эту задачу, проанализируем возможные ошибки и рассмотрим альтернативные методы выгрузки данных.
Прежде всего, давайте выясним, почему простое копирование файлов из папки с базой в данном случае не поможет. В файловой версии 1С 7.7 данные хранятся в .DBF файлах прямо в каталоге базы. В версии для SQL ситуация иная: папка базы содержит только файлы описания структуры и саму конфигурацию, а все данные (товары, цены, контрагенты) «живут» внутри таблиц Microsoft SQL Server.
Проанализируем состав файлов, упомянутых в обсуждении:
1CV7.DD.Вывод: Скопировав эти файлы в новую папку, мы получим идентичную пустую конфигурацию, но справочник номенклатуры останется пустым, так как он физически находится на SQL-сервере.
Для корректного переноса данных нам нужна база-приемник, структура которой полностью совпадает с оригиналом. Рассмотрим самый надежный способ ее создания:
C:\NewBase).1CV7.MD из вашей рабочей базы.Теперь, когда у нас есть «куда» переносить, разберем вопрос «как». В 1С 7.7 для этих целей используются внешние обработки с расширением .ert.
Проанализируем основные инструменты:
Рассмотрим порядок действий с Tranref.ert:
Часто пользователи сталкиваются с тем, что обработки (особенно XML-ные, как Export771.ert) выдают ошибку при запуске. Разберем причину: для их работы необходима внешняя библиотека V7Plus.dll.
Если система выдает ошибку, выполним следующие действия:
V7Plus.dll в папке старой базы или в каталоге установки 1С (обычно C:\Program Files\1Cv77\BIN).regsrv32 "[путь_к_файлу]\V7Plus.dll"Если прав администратора нет, попробуем просто положить файл в каталог базы — многие обработки умеют подхватывать его оттуда автоматически.
Если работа с ERT-обработками кажется слишком сложной или они «вылетают» из-за ошибок в структуре, воспользуемся методом промежуточного экспорта в Excel. Это самый наглядный способ проконтролировать данные.
Выгрузка данных:
Загрузка данных:
Для загрузки нам понадобится обработка ЗагрузкаИзExcel.ert (ее легко найти в архивах дополнений 1С 7.7). Мы укажем ей файл Excel, сопоставим колонки файла с реквизитами справочника в 1С и запустим процесс создания записей.
Разберем ситуацию, когда выгрузка «вылетает» на справочнике «Контрагенты», хотя нам нужна только «Номенклатура»:
В 1С 7.7 существует жесткая связь объектов. В справочнике номенклатуры может быть реквизит «Основной поставщик», который ссылается на справочник «Контрагенты». Если в обработке выгрузки стоит галочка «Выгружать объекты по ссылкам», программа потянет за собой всю цепочку связанных данных. Если в справочнике контрагентов есть «битые» ссылки или ошибки индексации, процесс прервется.
Как поступить: В настройках обработки выгрузки отключим опцию «Выгружать объекты по ссылкам». В этом случае в новой базе вместо поставщиков будут пустые поля, но сама номенклатура перенесется успешно.
Также проверим контроль уникальности. Если в конфигураторе для справочника установлен признак «Контроль уникальности», а в ваших данных есть товары с одинаковыми кодами, загрузка может быть заблокирована. В таких случаях в обработке загрузки выберем режим «Устанавливать новый код» вместо «Загружать из файла».
Мы рассмотрели несколько путей переноса: от технически правильного (копирование MD и использование Tranref.ert) до пользовательского (через Excel). Для «чайника» наиболее безопасным будет метод с Excel, так как он позволяет увидеть данные перед загрузкой и избежать ошибок, связанных с регистрацией системных библиотек V7Plus.dll.