К списку форумов К списку тем
Регистрация    Правила    Главная форума    Поиск   
Имя: Пароль:
Рекомендовать в новости

как перенести между базами ТЗ, содержащую ссылки на справочник

0 - 12.12.2019 - 20:46
Всем привет.
Имеем такую ситуацию:
Есть база на 7.7, и в ней есть некоторый справочник.
В справочнике есть реквизит строка неограниченной длины В этом реквизите хранится таблица значений, преобразованная в строку методом ЗначениеВСтрокуВнутр().



1 - 12.12.2019 - 20:50
В этой таблице - ссылки на элементы справочника Контрагенты (или какого-нибудь другого справочника, не суть важно).
Выглядит это примерно так:

Отредактировано EarlyBird; 12.12.2019 в 20:52. Причина: апаыпап
2 - 12.12.2019 - 20:54
3 - 12.12.2019 - 20:59
Переношу этот справочник в другую базу через текстовый файл, с помощью Export77 / Import77.
(Перенос по OLE невозможен, базы находятся в разных сетях.)
При переносе наткнулся на неприятный сюрприз: если переносить строковый реквизит "дословно", то при преобразовании в ТЗ получаю фигу - все ссылки на справочник пустые.
В общем-то понятно, почему это произошло (потому что я перенёс внутренние идентификаторы).
Непонятно другое - как это пофиксить?
Кто что посоветует?
4 - 12.12.2019 - 21:08
Пока родилась следующая идея: перед переносом выполнить конвертацию ссылок. То есть, в каждом элементе справочника сделать следующее:
1) распаковать строку в ТЗ методом ЗначениеИзСтрокиВнутр()
2) запаковать обратно методом ЗначениеВСтроку()
3) записать элемент.

При такой конвертации в строке будут не внутренние идентификаторы, а нормальные коды элементов, и это всё должно поехать норм.
Гость
5 - 12.12.2019 - 22:51
Нахрена передавать ТЗ, если используешь текстовый файл? Формируй сразу нормальный текстовый файл, который удобно обработать на стороне приемника. И будет счастье
6 - 13.12.2019 - 06:42
Цитата:
Сообщение от USSR Посмотреть сообщение
Нахрена передавать ТЗ, если используешь текстовый файл?
Я не передаю тз. Я выгружаю в текстовый файл (через Export77) справочник, в котором есть реквизит длинная строка. В этой длинной строке - ТЗ со ссылками на контрагентов.
Всё это нормально затягивается в приёмник (через Import77), но когда из строки распаковываешь ТЗ, получается хрень (ссылки невалидны).
Блин по новой весь сабж пришлось повторить.
7 - 13.12.2019 - 06:48
Возникает конечно резонный вопрос - кто додумался хранить таблицу значений в длинной строке в реквизите справочника?
Но так исторически сложилось, это данность, с которой мне остаётся только смириться на данном этапе. (За "переделать по-нормальному" деньги не заплатят)
Гость
8 - 13.12.2019 - 07:23
(6)Ну уж извините, что заставил повториться. Как вариант, можно сделать модифицированную (нетиповую) Export77. В ней поймать выгрузку этой строки, преобразовать в ТЗ, сделать "правильную" ТЗ без ссылок, снова превратить в строку и выгрузить. То есть сделать своеобразное правило конвертации. Это дело вкуса, но мне больше нравится правильно готовить данные на стороне источника.
9 - 13.12.2019 - 09:11
8-USSR > да, это хорошее решение, допилю Export77


К списку вопросов






Copyright ©, Все права защищены