Часто возникает задача выделить учет одной компании из общей информационной базы, где ведется деятельность нескольких юридических лиц. Рассмотрим, как можно перенести все данные, относящиеся к одной конкретной организации, из базы 1С:Управление торговлей 10.3 в новую, чистую базу, чтобы полностью изолировать ее учет. Проанализируем несколько проверенных методов, их преимущества, недостатки и подводные камни.
Несмотря на то, что поддержка конфигурации УТ 10.3 прекращена, задача остается актуальной для многих компаний, продолжающих использовать эту надежную систему. В ряде случаев оптимальным решением может стать поэтапная миграция через двусторонний HTTP-обмен с УТ 11.5. Выясним, какие шаги нужно предпринять для успешного переноса, а если в будущем планируется переход на современную редакцию, стоит заранее изучить правила конвертации из УТ 10.3 в УТ 11.4.
Подготовительные шаги: что нужно сделать перед переносом
Независимо от выбранного метода, качественная подготовка — залог успеха. Прежде чем приступать к манипуляциям с данными, выполним обязательные действия в исходной базе:
Создание резервной копии. Это золотое правило. Перед любыми серьезными изменениями обязательно создайте и сохраните в надежном месте архивную копию исходной базы.
Тестирование и исправление. Запустите утилиту `Тестирование и исправление информационной базы` (ТИИ) в режиме конфигуратора. Это поможет выявить и устранить возможные логические и ссылочные ошибки в базе данных.
Проведение регламентных операций. Убедитесь, что все документы проведены, выполнены регламентные операции по закрытию месяца, восстановлена последовательность партионного учета. Это обеспечит корректность остатков.
Проверка на отрицательные остатки. Проверьте отчеты по товарам и взаиморасчетам на наличие отрицательных остатков. Также полезно провести исправление остатков регистра "Товары организации" по данным складского учета.
Метод 1: Ручная очистка копии базы
Этот метод является самым простым с точки зрения концепции, но может быть трудоемким. Суть его заключается в создании полной копии базы и последующем удалении из нее всего лишнего.
Разберем по шагам:
Создайте копию вашей рабочей базы данных. Все дальнейшие действия производятся только в копии.
В скопированной базе удалите все организации, кроме той, которую нужно оставить. Это можно сделать вручную или обработкой.
Теперь необходимо удалить все документы, не относящиеся к нашей организации. Для этого можно использовать стандартную обработку Групповое изменение реквизитов (в УТ 10.3 она называется "Групповая обработка справочников и документов").
Выберите тип объекта "Документы".
Настройте отбор по реквизиту Организация, указав условие "Не равно" и выбрав все ненужные организации. Или, что проще, "Не равно" и выбрать нужную вам организацию.
В качестве действия выберите "Пометить на удаление".
После выполнения обработки запустите стандартное удаление помеченных объектов.
После удаления документов база "похудеет", но в ней могут остаться "осиротевшие" элементы справочников (контрагенты, договоры, номенклатура), которые использовались только в удаленных документах. Их также можно найти и удалить с помощью специализированных обработок по поиску и замене значений.
Важные моменты и потенциальные проблемы:
Общие справочники. Особое внимание уделите справочникам, которые могли использоваться всеми организациями. Например, справочник Контрагенты. У контрагента есть реквизит Основной договор, который может ссылаться на договор, принадлежащий другой (уже удаленной) организации. Такие моменты нужно отслеживать и исправлять вручную или скриптами.
Ссылочная целостность. Простое удаление может привести к "битым" ссылкам. Обязательно после всех чисток проведите тестирование и исправление базы (ТИИ).
Остатки. Если учет остатков товаров велся в целом по базе, а не в разрезе организаций, то после удаления документов других компаний остатки могут стать некорректными. В этом случае может потребоваться ручная инвентаризация и ввод начальных остатков в новой базе.
Метод 2: Создание РИБ с последующей отвязкой узла
РИБ (Распределенная Информационная База) — это механизм синхронизации данных между несколькими базами. Мы можем использовать его для создания изолированной копии.
В типовой УТ 10.3 нет встроенной возможности создать узел РИБ с фильтром по организации, поэтому процесс будет многоступенчатым.
Разберем по шагам:
В исходной базе создайте новый узел РИБ. Настройте обмен (например, через файловый каталог) и создайте первоначальный образ базы (периферийный узел). На этом этапе образ будет полной копией центральной базы.
Запустите созданную базу-образ. Теперь это отдельная база, связанная с центральной.
В этой новой базе выполните процедуру очистки, как описано в Методе 1. Удалите все лишние организации и связанные с ними документы.
После полной очистки базы отвяжите ее от центрального узла. Для этого существуют специальные обработки или можно выполнить команду в конфигураторе, чтобы сделать узел главным. После отвязки база станет полностью самостоятельной.
Преимущества и недостатки:
Преимущество: Это более технологичный способ получить "чистую" копию конфигурации и данных перед очисткой.
Недостаток: Если исходная база очень большая, создание первоначального образа может занять много времени и потребовать значительного дискового пространства.
Метод 3: Перенос данных через правила обмена (Конвертация данных)
Это самый гибкий, "правильный", но и самый сложный способ, требующий навыков работы с конфигурацией "Конвертация данных 2.0". Суть метода — создать правила, по которым будут выгружаться только нужные данные.
Разберем по шагам:
Вам понадобится конфигурация "1С:Конвертация данных". В ней нужно создать новые правила обмена между двумя идентичными конфигурациями УТ 10.3.
Для каждого объекта, который нужно перенести (документы, справочники, регистры), настраиваются "Правила выгрузки данных" (ПВД).
Ключевой момент: в ПВД для документов и зависимых регистров необходимо настроить отбор. В качестве источника отбора указывается реквизит Организация, и задается правило выгружать объект только в том случае, если значение этого реквизита равно нужной нам организации.
Особое внимание уделите справочникам. Например, для справочника Контрагенты нужно настроить правило так, чтобы выгружались только те контрагенты, которые упоминаются в документах переносимой организации.
После создания и сохранения правил обмена в файл (.xml) используется стандартная обработка Универсальный обмен данными в формате XML.
В исходной базе на вкладке "Выгрузка" загрузите созданные правила, укажите нужную организацию в параметрах отбора (если вы их предусмотрели) и выгрузите данные в файл.
В новой, абсолютно чистой базе УТ 10.3 на вкладке "Загрузка" той же обработки укажите файл с данными и загрузите их.
Преимущества и недостатки:
Преимущество: Полный контроль над переносимыми данными. Вы можете точно определить, что и как переносить, избежать переноса "мусора" и решить проблему общих справочников наиболее корректно.
Недостаток: Требует высокой квалификации специалиста. Создание и отладка правил конвертации — нетривиальная задача, которая может занять много времени.
Бонусный совет: Адаптация УТ 10.3 к современным реалиям
В ходе обсуждения подобных задач часто всплывает вопрос поддержки старой конфигурации. Например, добавление новых ставок НДС. Хотя это не относится напрямую к переносу, это важная часть работы с УТ 10.3. Простой пример доработки для добавления ставок НДС 5% и 7%.
В общем модуле УчетНДС нужно доработать функцию ПолучитьСтавкуНДС:
Функция ПолучитьСтавкуНДС(СтавкаНДС) Экспорт
Если СтавкаНДС = Перечисления.СтавкиНДС.НДС20 ИЛИ СтавкаНДС = Перечисления.СтавкиНДС.НДС20_120 Тогда
Возврат 20;
ИначеЕсли СтавкаНДС = Перечисления.СтавкиНДС.НДС10 ИЛИ СтавкаНДС = Перечисления.СтавкиНДС.НДС10_110 Тогда
Возврат 10;
ИначеЕсли СтавкаНДС = Перечисления.СтавкиНДС.НДС18 ИЛИ СтавкаНДС = Перечисления.СтавкиНДС.НДС18_118 Тогда
Возврат 18;
// Начало доработки
ИначеЕсли СтавкаНДС = Перечисления.СтавкиНДС.НДС5 ИЛИ СтавкаНДС = Перечисления.СтавкиНДС.НДС5_105 Тогда
Возврат 5;
ИначеЕсли СтавкаНДС = Перечисления.СтавкиНДС.НДС7 ИЛИ СтавкаНДС = Перечисления.СтавкиНДС.НДС7_107 Тогда
Возврат 7;
// Конец доработки
КонецЕсли;
Возврат 0;
КонецФункции // ПолучитьСтавкуНДС()
Важно понимать, что это лишь малая часть необходимых изменений. Потребуется также доработка печатных форм, отчетов и, возможно, других механизмов. Глобальный поиск по конфигурации по ключевым словам (например, "НДС20") поможет найти все места, требующие внимания.