Вход | Регистрация


1С:Предприятие ::

Метки:Обмен данными и УРБД

Для крутых программистов

Я
   AndreiL
 
02.07.04 - 09:22
Пытался ли кто-нибудь соединить 1С двух филиалов программно и если да то(использование 1С как Ole):
1) как это всё работает
2) какие есть проблемы
3) особенно интересует ситуация когда связь происходит с помощью модемов
 
  Рекламное место пустует
   Term2
 
1 - 02.07.04 - 09:30
А стандартное объединение распределенной базы не пробовал?
   BorisG
 
2 - 02.07.04 - 09:32
Не... крутых тут нет ;-)))
Да и задачка вовсе не крутая ;)
   AndreiL
 
3 - 02.07.04 - 09:34
Что ты имеешь в виду под стандартным объединением
терминал или УРБД?
   Орк
 
4 - 02.07.04 - 21:53
А еще особееней интересует ситуация пользования Ole
когда связь происходит с помощью модемов.
Пол-часа пытался разгадать смысл фразы - ничем не кончилось.
   NS
 
5 - 03.07.04 - 00:19
(2) Н хрена себе - две звездочки...
Мне завидно...
   romix
 
6 - 03.07.04 - 01:02
Ничего крутого здесь делать не нужно.
OLE через модем не работает. Билли отказывается от этой технологии в пользу XML-служб. В случае 1С надо юзать УРБД или MOD или обмен файлами через XML.
   NS
 
7 - 03.07.04 - 01:46
А ДБФ-ы отменили? И быстрее (чем XML) - и в сжатом виде - даже очень компактно.
   romix
 
8 - 03.07.04 - 02:21
(7) особенно удобны DBF для переноса полей наподобие ПолнНаименование...
   NS
 
9 - 03.07.04 - 03:10
(8) Обходится легко...
Для длинных строк - файлы со сквозной нумерацией (текст), а в ДБФ - ссылка на номер (ID)
   mszsuz
 
10 - 03.07.04 - 11:17
ИМХО, XML все-таки удобнее в этом случае, потому что позволяет гораздо проще организовывать сложные иерархические структуры. Сжиматься должно не хуже.
Ну а скорость ... разница не настолько велика, чтобы отказываться от использования.
 
  Рекламное место пустует
   Vozhd
 
11 - 03.07.04 - 12:26
(10) Если бы только скорость, большие файлы XML  семерка вообще не переваривает...
   mszsuz
 
12 - 03.07.04 - 12:34
(11) "Большие" это сколько в граммах?
   Vozhd
 
13 - 03.07.04 - 12:38
(12) справочники под 100000 элементов обменом через XML уже не переносятся... но это на 7.7
   mszsuz
 
14 - 03.07.04 - 13:44
(13) Странно, у меня всё ОК. Может дело не в XML?
Только что попробовал на 100 тыс. Вот код:
//

// Тестирование выгрузки/загрузки ч/з XML
// "Количество"  - реквизит формы обработки

//_____________________________________________________________________________

Процедура Выгрузка()
    Попытка
        Анализатор = СоздатьОбъект("AddIn.XMLParser");
    Исключение
        сообщить(ОписаниеОшибки());
    КонецПопытки;
    Выгрузка=Анализатор.СоздатьДокумент();
    
    Данные=Выгрузка.СоздатьПодчиненныйЭлемент("Test");
    Элементы=Данные.СоздатьПодчиненныйЭлемент("Элементы");
    НачатьТранзакцию();
    Для н=1 по Количество Цикл
        состояние("Выгружается: "+н);
        Элемент=Элементы.СоздатьПодчиненныйЭлемент("Элемент");
        Элемент.УстановитьАтрибут("Наименование",Строка(н));
        Если н%100=0 Тогда
            ЗафиксироватьТранзакцию(); 
            НачатьТранзакцию(); 
        КонецЕсли;
    КонецЦикла;           
    ЗафиксироватьТранзакцию(); 
    Выгрузка.Записать("test"+Количество+".xml");
КонецПроцедуры
//_____________________________________________________________________________


Процедура Загрузка()
    Попытка
        Анализатор = СоздатьОбъект("AddIn.XMLParser");
    Исключение
        сообщить(ОписаниеОшибки());
    КонецПопытки;
    
    Загрузка=Анализатор.СоздатьДокумент();
    Загрузка.Загрузить("test"+Количество+".xml");
    Выборка = Загрузка.ВыбратьУзлы("Test");
    Данные  = Выборка.ПолучитьУзел(0);
    Элементы = Данные.ВыбратьУзел("Элементы");
    НачатьТранзакцию();
    Для н = 1 По Элементы.КоличествоПодчиненных() Цикл
        Элемент=Элементы.ПолучитьПодчиненныйПоНомеру(н);
        Атрибут=Элемент.ПолучитьУзелАтрибута(1);
        состояние("Загружается: "+Атрибут.Значение);
        Если н%100=0 Тогда
            ЗафиксироватьТранзакцию(); 
            НачатьТранзакцию(); 
        КонецЕсли;
    КонецЦикла; 
    ЗафиксироватьТранзакцию(); 
КонецПроцедуры   
//_____________________________________________________________________________


Процедура ПриОткрытии() 
    Если Количество=0 Тогда
        Количество=100000;
    КонецЕсли;    
КонецПроцедуры//ПриОткрытии
   Vozhd
 
15 - 03.07.04 - 13:57
(14) А транзакции то зачем? да и выгружаешь ты простой текст, а попробуй многоуровневый справочник, у которого десятком 5-6 реквизитов, да и выгружай с использованием  XML Schema...
   mszsuz
 
16 - 03.07.04 - 14:13
>транзакции то зачем?
Копировал из существующей. Просто не убрал.
>попробуй многоуровневый справочник ... использованием  XML Schema
Не вижу существенных отличий от выложенного варианта, просто ещё будет затрачиваться время на работу со справочником и проверку типов. А зачем?
Целью была задача опровергнуть миф, что якобы "справочники под 100000 элементов обменом через XML уже не переносятся". Повторюсь, копать надо в другом месте.
   Vozhd
 
17 - 03.07.04 - 15:44
(16) Я правильно понимаю, что ты полагаешь, сложность работы с XML не зависит от структуры файла? Ты никогда не видел, как DOM модель откусывает 2 гига памяти (а потом просто дохнет), чтобы переварить файл в котором много глубоко вложенных тэгов? А твой плоский файл и без парсера легко разгребается...
   mszsuz
 
18 - 03.07.04 - 15:59
(17) Опять голословные утверждения...
Прошу озвучить полные характеристики справочника, который, имея в своем составе 100 тыс. элементов, не может быть перенесен посредством XML.
   Vozhd
 
19 - 03.07.04 - 16:17
(18) см (15)
   romix
 
20 - 04.07.04 - 02:06
XML в DOM-варианте действительно юзает памяти чуть ли не в 10 раз больше объема исходного XML (ибо держит все дерево в памяти). 1С юзает именно DOM, есть еще другие протоколы доступа к XML.  Я писал свою ВК для работы с XML, которая последовательно пишет и читает тэги, не сохраняя все дерево в ОЗУ. Разработка FastXML на 1c.hippo.ru в разделе 1С 7.7. Стиль работы - ВыбратьТэги(), ПолучитьТэг() и т.д.
   Vozhd
 
21 - 04.07.04 - 10:44
(20) Именно по этому в 8-ке работа с XML реализована не через DOM.
   romix
 
22 - 05.07.04 - 01:44
(21) Ну и правильно - зачем вообще этот DOM кому-то сдался, я в упор не пойму :-)



Список тем форума
Рекламное место пустует   Рекламное место пустует
Я не хочу быть самым богатым человеком на кладбище. Засыпать с чувством, что за день я сделал какую-нибудь потрясающую вещь — вот что меня интересует. Стив Джобс, 1996 г.
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.
Ветка сдана в архив. Добавление сообщений невозможно.
Но вы можете создать новую ветку и вам обязательно ответят!
Каждый час на Волшебном форуме бывает более 2000 человек.
Рекламное место пустует