Стандартные конфигурации 1С: дополнение и исправление
Выпуск № 15 от 06.05.2005
Добрый день всем, кто читает этот выпуск.
Вопросы направляйте по адресу mailto:mrRocky@yandex.ru ICQ# 192972095 Домашняя страница рассылки живет здесь (архив там же).
Сегодня в выпуске – технология переноса данных при переходе на другую конфигурацию.
Речь, разумеется, не об обновлении релиза. В этом случае, если какие действия и требуются, они должны быть описаны в документации к этой конфигурации. Речь идет о переносе данных между совершенно различными конфигурациями, возможно, даже предназначенных для автоматизации различных участков учета. Например, из ЗиК в Бухгалтерию или из Торговли в ПУБ.
Мною описываемая технология была опробована при переносе данных из сильно подправленного ПУБа в ИТРП-Стандарт.
Вся работа делится на три этапа – подготовительный, перенос и доведение до рабочего состояния.
Подготовительный этап. На этом этапе исходная конфигурация видоизменяется. Часть объектов приводится к тому виду, какой они будут иметь в целевой конфигурации. Это те объекты, отличия в которых минимальны. Поля, которые автоматически сконвертированы быть не могут, переименовываем, добавляя префикс, например, подчерк. Объекты, которые в целевой конфигурации существенно отличаются от объектов в исходной, не имеют аналогов или четкого соответствия, переименовываем
целиком, добавляя в них реквизит _Ссылка неопределенного вида. Когда это сделано, объединяем нашу конфигурацию с целевой, пропуская объекты, в которых есть переименованные нами реквизиты. В результате мы получаем совершенно нерабочую конфигурацию, в базе данных которой, тем не менее, содержатся все имевшиеся ранее данные. Отдельно надо сказать про перечисления. Их значения следует привести к целевому виду в конфигураторе до переноса, и лучше вручную, а не объединением конфигураций.
Перенос данных. На этом этапе переносим данные из старых реквизитов и объектов в новые. Так как интерфейсы объектов работать вряд ли будут, эти операции необходимо сделать программно или с использованием дополнительной обработки. Для себя я написал обработку, которая успешно это делала в полуавтоматическом режиме.
Доведение до рабочего состояния. После того, как вся информация в базе данных сохранена в реквизитах и объектах целевой конфигурации, осталось вытереть объекты метаданных старой конфигурации из промежуточной. Это довольно утомительное занятие, так как объекты ссылаются друг на друга. На справочники и документы могут ссылаться любые другие объекты, незаметная на первый взгляд связь – взаимное подчинение документов и вхождение документа в журнал. Перед
удалением документа эти связи надо разорвать. После того, как все лишние документы удалены, снова объединяем конфигурацию с целевой. Все, готово! Проводим документы, не проведенные при переносе данных.
Если при переходе необходимо свернуть остатки на определенную дату, то это следует сделать ДО перехода. Бухгалтерские остатки перекочуют с тем меньшим количеством проблем, чем меньше разница в планах счетов. Остатки по регистрам лучше заранее внести в соответствующие документы и далее работать с ними как с остальными документами.
Может оказаться удобным некоторые обработки массивов данных, особенно остатков, производить во внешней программе, например в Excelе. Выгрузку и загрузку данных удобнее всего производить в формате текст в кавычках, разделенный запятыми. А все ссылки в файл записывать с помощью функции ЗначениеВСтрокуВнутр(). Тогда при обратном чтении функцией ЗначениеИзСтрокиВнутр() ссылка восстановится из текста.
В следующем выпуске я расскажу о более удобном механизме – переносе данных с использованием технологии OLE.
На сегодня все, до следующего выпуска
Всех поздравляю с наступающим праздником Великой Победы!
Обменяюсь формами подписки с ведущими других рассылок вне зависимости от числа подписчиков, особенно с теми, у кого таковых еще нет.