![]() |
![]() |
![]() |
|
как лучше осуществить перенос данных? | ☑ | ||
---|---|---|---|---|
0
Logan
09.01.04
✎
07:36
|
Существует самописаная кофигурация на торговой компоненте, теперь заводим новую базу для бухгалтерии на основе типовой для "упрощенки". Необходимо перенести накопленную информацию за прошедший год некоторые документы необходимые для бух. учета и соответственно кучу справочников. В дальнейшем необходимо будет добовлять внов введенные документы и изменения справочников. Каким способом лучше всего осуществлять данный перенос? Кто нибудь делал что-то подобное?
|
|||
1
345
09.01.04
✎
08:20
|
Все решают эту задачу .... Судя по самописке - проще всего своими обработками ...
|
|||
2
Alexandr
09.01.04
✎
09:54
|
Здесь есть все http://www.vitalikk.ru/html/programm.html
Смотри первую позицию в списке... |
|||
3
Valentin
10.01.04
✎
20:50
|
1c7hippo.ru называется EximDocs
|
|||
4
klon
11.01.04
✎
04:32
|
Насколько я понял, Logan только что столкнулся с такой проблемой, поэтому предложение написать такую обработку самому (345) не может быть реализовано быстро (сужу конечно по себе :-). Кроме того, необходимо не просто единовременно перенести справочники и документы из одной базы в другую, а обеспечить дальнейший перенос обновленных данных из одной базы в другую. Т.е. необходима синхронизация элементов справочников и документов по уникальным идентификаторам. Поэтому обработки указанные Alexandr'ом здесь не решают всех проблем.
Я решаю эту проблему следующим образом: Сам перенос данных осуществляется при помощи конфигурации «Конвертация данных», а синхронизация – по внутреннему идентификатору, который не изменяется при изменении кода или номера. Итак, последовательность действий : 1. добавляем в справочники и документы (требующие синхронизации) поля ИД (строка 53 символа) и ИЗМ (неотрицательное число, длина 1, точность 0). (Спасибо 345 за разъяснения на форуме по моему вопросу). Оба реквизита с отбором. 2. ИД заполняем для начала обработкой Процедура ЗаполнитьИД() Для Ном=1 по СписокСправ.РазмерСписка() Цикл Если СписокСправ.Пометка(Ном) = 1 Тогда СправочникИдент = ""; СправочникПредставл = ""; СправочникИдент=СписокСправ.ПолучитьЗначение(Ном,СправочникПредставл); Справ=СоздатьОбъект("Справочник."+СправочникИдент); гXMLАнализатор = СоздатьОбъект("AddIn.XMLParser"); XML_DOM = гXMLАнализатор.СоздатьДокумент(); УзелСсылки = XML_DOM.СоздатьУзел(1, "Ссылка"); //Перебор элементов справочника с незаполненным "Ид" Если Справ.ВыбратьЭлементы(0) = 1 Тогда НачатьТранзакцию(); //Если Справ.ВыбратьЭлементыПоРеквизиту("Ид","",0,0) = 1 Тогда Пока Справ.ПолучитьЭлемент() = 1 Цикл Если СокрЛП(Справ.Ид) = "" Тогда Стр = ЗначениеВСтрокуВнутр(Справ.ТекущийЭлемент()); Ид = УзелСсылки.ПреобразоватьВ_ИД(Стр); Справ.УстановитьАтрибут("Ид",Ид); Справ.Записать(); //Сообщить(" "+Справ+" = "+Ид); КонецЕсли; КонецЦикла; ЗафиксироватьТранзакцию(); Сообщить(" Справочник = "+СправочникИдент+" -- ИД заполнено."); Иначе Сообщить(" Справочник = "+СправочникИдент+" -- элементы не выбраны."); //Сообщить("Нечего заполнять."); КонецЕсли; КонецЕсли; КонецЦикла; КонецПроцедуры 3. В формы справочников и документов (синхронизируемых) (а также некоторые справочники) добавляем: Процедура ПриЗаписи() Если Модифицированность() = 1 Тогда Изм = 1; КонецЕсли; КонецПроцедуры // ПриЗаписи() 4. Настраиваем при помощи конфигурации «Конвертация данных» правила единовременного начального переноса. Об этом смотри документацию ИТС или (и) курсы 3-го учебного центра по применению этой конфигурации. 5. Проводим единовременный начальный перенос данных при помощи стандартных обработок обмена через формат XML и настроенные выше (4) правила. 6. Настраиваем при помощи конфигурации «Конвертация данных» правила переноса измененных данных. При этом добавляем правило отбора данных для переноса: // Измененные элементы Функция Условие_ID567A000001(Объект, ИдПравила) Объект.ТекущийЭлемент(); Если Объект.Изм = 1 Тогда //При выгрузке в файл переноса данных меняем флаг изменения элемента справочника // с 1 ("изменен") на 2 ("выгружен") Справ=СоздатьОбъект("Справочник."+Объект.Вид()); Справ.НайтиЭлемент(Объект); Справ.ТекущийЭлемент(); Справ.УстановитьАтрибут("Изм",2); //Чтобы отдельно не запускать обработку заполнения реквизита ИД гXMLАнализатор2 = СоздатьОбъект("AddIn.XMLParser"); XML_DOM2 = гXMLАнализатор2.СоздатьДокумент(); УзелСсылки2 = XML_DOM2.СоздатьУзел(1, "Ссылка"); Если СокрЛП(Справ.Ид) = "" Тогда Стр = ЗначениеВСтрокуВнутр(Справ.ТекущийЭлемент()); Ид = УзелСсылки2.ПреобразоватьВ_ИД(Стр); Справ.УстановитьАтрибут("Ид",Ид); Справ.Записать(); //Сообщить(" "+Справ+" = "+Ид); КонецЕсли; Справ.Записать(); //Очищаем память гXMLАнализатор2 = 0; XML_DOM2 = 0; УзелСсылки2 = 0; Справ = 0; Возврат(1); Иначе // Изм = 0 Возврат(0); КонецЕсли; КонецФункции 7. Проводим периодический перенос данных при помощи стандартных обработок обмена через формат XML и настроенные выше (6) правила. Полезную информацию я почерпнул на http://www.kuban.ru/cgi-bin/forum/forum9.cgi Точной ссылки, к сожалению, сейчас не нашел. Однако, отдельное спасибо Natalia и mszsuz с того форума. Очень советую пройти обучение в 3-ем учебном центре 1С по курсу «Основы XML» -- мне это сэкономило много времени. Огромное спасибо Дмитрию Гончарову -- разработчику данного курса. |
|||
5
Logan
12.01.04
✎
06:35
|
Огромное Спасибо klon! За обстоятельное разъяснение... я не знаком с конфигурацией "Конвертация данных" :-(
Будет ли она работать с самописаными конфами? И ИТС-овских дисков у меня нет :-( используя разнличные обработки с hippo собрал на основе OLE (поскольку использовать выгрузку/загрузку при синхронизации несколько раз в день на мой взгляд не рационально) обработку... но сделать ее универсальной действительно займет много времени. А с другой стороны работая на SQL-базах почему не использовать его преимущества? у меня обе базы размером за гиг будут... я думаю скорость обработки увеличилась бы. Или нет? |
|||
6
klon
12.01.04
✎
19:44
|
Поработав в свое время с самопальными обработками обмена, я пришел к выводу, что лучше использовать конфигурацию "Конвертация данных" и универсальные обработки обмена от 1С. Прелесть конфигурации "Конвертация данных" в том, что с ее помощью можно настраивать обмен между ЛЮБЫМИ конфигурациями на платформе 1С. Настройка происходит быстро, результат гарантирован.
Диска ИТС нет … А база более 1 Гб. Могли бы и оплатить тебе покупку хотя бы одного диска. Ну хоть за (поза-) прошлый месяц. Там все есть. Описание технологии работы с базой, которое есть на ИТС сохранять в электронном виде не умею. Саму конфигурацию могу кинуть, но без описания будет очень тяжело. По поводу OLE: первоначальная выгрузка и загрузка будет в любом случае долгой. Эту долгую операцию лучше все-таки разделить на две части: выгрузка-загрузка. А перекачку изменений не заметишь и при использовании выгрузки в файл. Кроме того, никаких преимуществ у SQL, в монопольном режиме (а единовременный перенос данных делаем именно в нем), не вижу. Более того: для ускорения единовременной загрузки придется базу перегонять в dbf (и будет она у тебя 300-400 Мб). |
|||
7
PrService
10.03.04
✎
11:57
|
Очень нужна документация на конфигурацию "Конвертация Данных". Помогите кто может, буду очень благодарен. PrService@list.ru
|
|||
8
romix
10.03.04
✎
18:36
|
||||
9
Vldmar
09.04.04
✎
18:14
|
Копаю 1С Конфу - Конвертация данных. Сделал свои правила. Но чето не паут. Данные переносятся из Док.НачисленияУдержанияСписком -> Док.ОтпускТМП.
Так вот. Есть готовый файл с правилами. Когда происходит загрузка данных, то в спр. создается Док.ОтпускТНП. А вот когда происходит загрузка с моего файла правил, то ничего не происходит? Где я торможу? :( С данной конфой я сильно не знаком, а доки в нете нет. Может че посоветуете? Файл правил делал сам на основе готового, интуитивно. |
|||
10
Vldmar
09.04.04
✎
18:25
|
Копаю 1С Конфу - Конвертация данных. Сделал свои правила. Но чето не паут. Данные переносятся из Док.НачисленияУдержанияСписком -> Док.ОтпускТМП.
Так вот. Есть готовый файл с правилами. Когда происходит загрузка данных, то в спр. создается Док.ОтпускТНП. А вот когда происходит загрузка с моего файла правил, то ничего не происходит? Где я торможу? :( С данной конфой я сильно не знаком, а доки в нете нет. Может че посоветуете? Файл правил делал сам на основе готового, интуитивно. |
|||
11
SnarkHunter
09.04.04
✎
20:44
|
Вот зачем ИД длиной 53 символа кто бы мне подсказал... И тормозной ХМЛ...
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |