1. seva1405 28 07.12.17 15:15 Сейчас в теме

Как загрузить справочник из xml

Можно каким то образом загрузить справочник полностью из XML файла без цикла и прочего как в таблицу значений?
Конфигурации идентичны.
В таблицу быстро загружается к примеру ТЗ.Загрузить(Запрос.Выполнить.Выгрузить()) в этом случае и таблица очищается и данные быстро загружаются.
Просто каждая секунда на счету при обмене через веб - сервисы а цикл долго отрабатывает.
Ответы
Избранное Подписка Сортировка: Древо
3. dandykry 3 07.12.17 16:34 Сейчас в теме
Непонятно, что хотите сделать.
Выгрузить несколько элементов справочника и за раз без циклов загрузить?
2. borodatii 1 07.12.17 15:21 Сейчас в теме
Посмотреть обработку ВыгрузкаЗагрузкаДанныхXML82 (или 83) из "Конвертация данных 2.1". Она реализует обмен между идентичными конфигурациями через файлы XML.
4. gradi 3 07.12.17 17:10 Сейчас в теме
Если вам критично время работы через веб-сервис, то попробуйте обрабатывать файл асинхронно.
6. seva1405 28 07.12.17 19:44 Сейчас в теме
(4) Как вариант подходит, спасибо. Но все же вопрос открыт.
7. starik-2005 1415 07.12.17 23:01 Сейчас в теме
(6) прямо в SQL-таблицу грузите - не надо никаких веб-сервисов. На сервере базы-источника создайте триггер, который будет при изменении записи в таблице, принадлежащей этому справочнику, обновлять элемент на сервере с второй базой.
8. seva1405 28 08.12.17 09:50 Сейчас в теме
(7) Не вариант, число баз приемников не ограничено. С любого пк можно запустить и посмотреть эти справочники.
13. starik-2005 1415 08.12.17 12:30 Сейчас в теме
(8) тогда выгружайте в один внешний источник, а в этих бесконечных количествах баз просто пропишите к нему путь как к внешнему источнику данных.
5. seva1405 28 07.12.17 19:39 Сейчас в теме
Обмен справочником между двумя идентичными базами.
Есть база источник и база приемник, в базе источник создаются справочники а в приемнике они только просматриваются, не удалить не создать нельзя только просмотр.
Вот и нужно чтобы справочник при обмене очищался и загружался, но с использованием цикла это очень долго, до 5 секунд загружается. есть максимум 2 секунды на это. Вот и ищу инфу может прямиком как в тз можно загрузить.
9. shnurov 08.12.17 10:23 Сейчас в теме
(5) Не думаю что у вас получиться так же быстро как в таблицу. Таблица в памяти, а справочники на диске Бд. Пробуйте в транзакции, должно быть быстрее. Самое быстрое на мой взгляд лить напрямую в бд, либо оптимизировать как-то код, чтоб не перезаписывал все элементы, т.к. когда ваш справочник вырастит будет лить еще дольше.
10. user623969_dusa 08.12.17 10:25 Сейчас в теме
можно загружать пообъектно используя иксдетео, быстро загружается набор записей - не используй справочник
вот пример
НЗ = ПрочитатьXML(ФайлОбмена); 
	Если ТипЗнч(НЗ) = Тип("РегистрСведенийНаборЗаписей.Фотографии") Тогда
		НЗ.Записать();
	КонецЕсли;
	ФайлОбмена.Закрыть();
seva1405; +1 Ответить
11. MamatovIA 08.12.17 10:43 Сейчас в теме
Еще можно попробовать добавить внешний источник данных в конфигураторе. Потом получить данные из него запросом и выгрузить в таблицу значений
12. seva1405 28 08.12.17 12:21 Сейчас в теме
Сегодня попробую переделать на регистр сведений, может через него получится.
Оставьте свое сообщение
Новые вопросы с вознаграждением
Автор темы объявил вознаграждение за найденный ответ, его получит тот, кто первый поможет автору.

Вакансии

Программист 1С
Нижний Новгород
зарплата от 120 000 руб.
Полный день

Программист 1С
Санкт-Петербург
зарплата от 120 000 руб.
Полный день

Программист 1С
Новосибирск
зарплата от 80 000 руб. до 100 000 руб.
Полный день

Системный аналитик
Новосибирск
зарплата от 80 000 руб. до 100 000 руб.
Полный день

Программист 1С
Салехард
зарплата от 80 000 руб. до 200 000 руб.
Полный день