Как перенести справочник номенклатуры в 1С:Предприятие 7.7 (версия SQL)

Программист 1С v7.7 Управленческий учет Торговля и дистрибуция
← На главную

Перенос справочников в 1С версии 7.7, особенно когда речь идет о SQL-версии конфигурации «Торговля и Склад» 9.2, — задача классическая, но имеющая свои подводные камни. Ситуация осложняется, если у пользователя нет прав администратора SQL-сервера или прав на манипуляции с конфигуратором. В данной статье мы разберем по шагам, как решить эту задачу, проанализируем возможные ошибки и рассмотрим альтернативные методы выгрузки данных.

Понимаем разницу между файловой (DBF) и SQL версией

Прежде всего, давайте выясним, почему простое копирование файлов из папки с базой в данном случае не поможет. В файловой версии 1С 7.7 данные хранятся в .DBF файлах прямо в каталоге базы. В версии для SQL ситуация иная: папка базы содержит только файлы описания структуры и саму конфигурацию, а все данные (товары, цены, контрагенты) «живут» внутри таблиц Microsoft SQL Server.

Проанализируем состав файлов, упомянутых в обсуждении:

Вывод: Скопировав эти файлы в новую папку, мы получим идентичную пустую конфигурацию, но справочник номенклатуры останется пустым, так как он физически находится на SQL-сервере.

Шаг 1. Создание идентичной пустой базы

Для корректного переноса данных нам нужна база-приемник, структура которой полностью совпадает с оригиналом. Рассмотрим самый надежный способ ее создания:

  1. Создадим новую пустую папку на диске (например, C:\NewBase).
  2. Скопируем в эту папку файл 1CV7.MD из вашей рабочей базы.
  3. Запустим 1С:Предприятие и добавим эту папку в список баз.
  4. При первом запуске выберем монопольный режим. Программа спросит, в каком формате хранить данные.
  5. Важный совет: Даже если старая база была SQL, новую базу для переноса справочников можно инициализировать как «Файловую» (DBF). Это упростит работу, так как вам не потребуются права администратора SQL и настройка DSN-соединения. Для переноса только справочников формат хранения данных значения не имеет.

Шаг 2. Использование универсальных обработок (ERT)

Теперь, когда у нас есть «куда» переносить, разберем вопрос «как». В 1С 7.7 для этих целей используются внешние обработки с расширением .ert.

Проанализируем основные инструменты:

Рассмотрим порядок действий с Tranref.ert:

  1. В исходной базе откроем меню «Файл» — «Открыть» и выберем файл обработки.
  2. В поле «Справочник» укажем «Номенклатура».
  3. Укажем путь к файлу выгрузки (простой текстовый файл).
  4. Нажмем кнопку «Выгрузить».
  5. В новой базе запустим ту же обработку, перейдем на закладку «Загрузка», выберем наш файл и нажмем «Загрузить».

Шаг 3. Решение проблемы с V7Plus.dll

Часто пользователи сталкиваются с тем, что обработки (особенно XML-ные, как Export771.ert) выдают ошибку при запуске. Разберем причину: для их работы необходима внешняя библиотека V7Plus.dll.

Если система выдает ошибку, выполним следующие действия:

  1. Найдем файл V7Plus.dll в папке старой базы или в каталоге установки 1С (обычно C:\Program Files\1Cv77\BIN).
  2. Скопируем его в папку с новой базой.
  3. Если есть права, зарегистрируем библиотеку в системе. Для этого нажмем «Пуск» — «Выполнить» и введем команду: regsrv32 "[путь_к_файлу]\V7Plus.dll"

Если прав администратора нет, попробуем просто положить файл в каталог базы — многие обработки умеют подхватывать его оттуда автоматически.

Шаг 4. Метод «для чайников» — перенос через Excel

Если работа с ERT-обработками кажется слишком сложной или они «вылетают» из-за ошибок в структуре, воспользуемся методом промежуточного экспорта в Excel. Это самый наглядный способ проконтролировать данные.

Выгрузка данных:

  1. В старой базе откроем справочник «Номенклатура».
  2. Если в справочнике есть кнопка «Печать» или «Список», воспользуемся ей. Если нет — сформируем отчет «Остатки ТМЦ» или «Список товаров», настроив в нем отображение нужных колонок (Наименование, Артикул, Базовая единица).
  3. Полученную печатную форму сохраним: «Файл» — «Сохранить как» — тип файла «Таблица Excel (*.xls)».

Загрузка данных:

Для загрузки нам понадобится обработка ЗагрузкаИзExcel.ert (ее легко найти в архивах дополнений 1С 7.7). Мы укажем ей файл Excel, сопоставим колонки файла с реквизитами справочника в 1С и запустим процесс создания записей.

Типичные ошибки и их причины

Разберем ситуацию, когда выгрузка «вылетает» на справочнике «Контрагенты», хотя нам нужна только «Номенклатура»:

В 1С 7.7 существует жесткая связь объектов. В справочнике номенклатуры может быть реквизит «Основной поставщик», который ссылается на справочник «Контрагенты». Если в обработке выгрузки стоит галочка «Выгружать объекты по ссылкам», программа потянет за собой всю цепочку связанных данных. Если в справочнике контрагентов есть «битые» ссылки или ошибки индексации, процесс прервется.

Как поступить: В настройках обработки выгрузки отключим опцию «Выгружать объекты по ссылкам». В этом случае в новой базе вместо поставщиков будут пустые поля, но сама номенклатура перенесется успешно.

Также проверим контроль уникальности. Если в конфигураторе для справочника установлен признак «Контроль уникальности», а в ваших данных есть товары с одинаковыми кодами, загрузка может быть заблокирована. В таких случаях в обработке загрузки выберем режим «Устанавливать новый код» вместо «Загружать из файла».

Заключение

Мы рассмотрели несколько путей переноса: от технически правильного (копирование MD и использование Tranref.ert) до пользовательского (через Excel). Для «чайника» наиболее безопасным будет метод с Excel, так как он позволяет увидеть данные перед загрузкой и избежать ошибок, связанных с регистрацией системных библиотек V7Plus.dll.

← На главную