Подсистема "COMExchange", "Консоль запросов 1C + ADO" - сервис обработки выборки запроса: грузим курс «бакса» ЦБРФ из файла *.dbf или *.xlsx.

Публикация № 177179

Разработка - Инструментарий разработчика - Консоль запросов

На примере загрузки курса валюты продемонстрированы возможности консоли запросов в составе подсистемы "COMExchange" для обработки данных из внешних файлов и их синхронизации с данными информационной базы 1С.

Слушай, братан, ихние доллары -
- точь в точь как наши баксы!

Из разговора ново-русских туристов.


Описание сервиса обработки выборки запроса:

Имеющийся в подсистеме «COMExchange» сервис обработки выборки запроса в известном смысле дублирует инструмент
обработки данных «Конструктора Ei»  по произвольному алгоритму. Получилось это не намеренно.  
Сама обработка выборки выполняется в специальной форме «ОбработкаВыборки».  
Исходная идея функционала сервиса принадлежит неизвестному программисту 1С,
оставившему в модуле формы авторский комментарий //Vitkovsky.

Обработка выборки данных реализована на поддержке пользовательских событий «ПередВыборкой», «Выборка» и «ПослеВыборки»
(смотри детали в описании консоли), основной смысл которых заключается в выполнении заданного пользователем в форме 
кода на языке 1С, задающего алгоритм обработки данных.

Для облегчения заполнения обработчиков этих событий в форме предусмотрен режим автоматического заполнения (Рис.7).
При выборе команды из меню модули обработчиков событий заполняются по выбранному из списка «шаблону».
После чего возможно придётся подправить код под выполняемую задачу.
Для вставки в текст модуля ключевых слов и выполнения синтактической проверки модулей в форме предусмотрены сервисные кнопки (Рис.8).


Описание примера загрузки данных:

 В архиве комплекта поставки подсистемы «COMExchange» в папке
.\COMExchange-8x\Sampels\!ЗагрузкаКурсов\
в файле !ЗагрузкаКурсовЦБ_USD.selx сохранен пример запросов,
решающих задачу загрузки курса валюты из файла в формате ЦБ РФ, 
в котором сайт ЦБ по запросу посетителя высылает динамику курса выбранной валюты на адрес электронной почты.  
Файлы с данными курса USD за период с 01.01.1992 по 08.03.2013 в форматах *.dbf и *.xlsx находятся в той же папке комплекта поставки.

Для работы запросов из указанного выше файла потребуется установить подсистему «COMExchange», выполнить автоматическое
заполнение плана обмена «Обмен данными COM» и открыть в обработке "Консоль запросов 1С + ADO" этот файл. 


Комментарии к запросам примера:

   1. «Корневой» запрос "ЗагрузкаКурсовВалют" (Рис.1, Рис.2) - собственно выполняет всю работу:
       - В обработчике события «ПередЗапросом» (Рис.2) пользователю из меню предлагается выбрать тип файла с данными (Рис.6).
         От этого зависит имя запроса непосредственно загружающего данные из файла – "КурсыИзDBF" или "КурсыИзXLS" (Рис.3).
       - После загрузки данных из файла в таблицу значений, полученная таблица с курсами валюты укладывается во временную таблицу
         с помощью запроса "УложитьКурсыВТ" (Рис.4). 
         Для этого таблица с данными из файла устанавливается в качестве значения параметра &КурсыИзФайла этого запроса.
       - Ну а сам запрос "ЗагрузкаКурсовВалют" (Рис.1 ) уже непосредственно формирует из временной таблицы выборку данных
         для загрузки в регистр сведений «КурсыВалют», синхронизуя данные со справочником «Валюты» по её наименованию.

   2. Сама загрузка полученной выборки данных в регистр сведений выполняется в форме «ОбработкаВыборки» (Рис.5, Рис.7).

   3. Описанный пример запросов будет работать в типовых конфигурациях УТ-10.3, УПП-1.2, УПП-1.3 и 
       любых других, где хранение информации о валютах и их курсах организовано таким же образом.

 

Общие замечания о загрузке данных из внешних файлов через ADO:
   
   1. Если возвращаемые запросами ADO числовые значения (курс и кратность валюты в данном случае),
       имеют числовой тип с плавающей точкой (float или double)
,  то в консоли запросов версии 8.1.1.2 в опциях ADO
       не следует устанавливать выгрузку результата запроса средствами  ВК GameWhithFire.dll (Рис.3).
       Иначе при загрузке данных из файла из во временную таблицу 1С (Рис.4) произойдёт ошибка из-за того,
       что соответствующие колонки в таблице с данными не будут типизированы.

   2. При загрузке данных из текстовых файлов и файлов Excel рекомендуется использовать
       параметр строки соединения ADO HDR=Yes,
       а  в файле с данными в заголовочной строке вручную указывать понятные имена колонок (если их там нет).
       Это облегчит дальнейшую загрузку результата запроса ADO во временную таблицу и 
       синхронизацию данных из файла с объектами из информационной базы в запросах 1С.

 
Другие примеры работы с регистрами сведений:

1) Обсуждаемый в статье пример является задачей загрузки данных в независимый регистр сведений.
Как эту же задачу выполнить для регистров накопления, регистров бухгалтернского учета и 
регистров сведений, зависимых от регистратора, смотрите в статье //infostart.ru/public/180571/.

2) В архиве комплекта поставки подсистемы «COMExchange» в папке .\COMExchange-8x\Sampels\!ОчисткаРегистров\
также находятся файлы с примерами запросов для очистки независимых регистров сведений:

 а) Файл чистим_регистры_сведений_1.selx - реализует функционал обработки из статьи //infostart.ru/public/181420/
 б) Файл чистим_регистры_сведений_2.selx - реализует функционал обработки из статьи //infostart.ru/public/181456/

 

 

 

Специальные предложения

Внимание! Тема закрыта. Добавлять сообщения в закрытую тему запрещено.
Комментарии
Избранное Подписка Сортировка: Древо развёрнутое
Свернуть все
1. yuraos 966 11.03.13 06:14 Сейчас в теме
Всем доброго времени суток!
--
Обсуждаемый в статье пример является чисто демонстрационным.

Автор статьи не предлагает использовать его в качестве альтернативы
существующим в типовых конфигурациях механизмам
загрузки курсов валют.
2. yuraos 966 05.04.13 21:57 Сейчас в теме
Всем доброе время суток!!!
---
Примеры запросов выполняющих очистку
независимых регистров сведений
анонсированы в комментариях к следующим статьям:
1) Очистка регистра "Версии объектов"
2) Очистка регистров сведений для удаления данных
Оставьте свое сообщение

См. также

Подсистема "COMExchange": консоль запросов в режиме «Консоль кода». Промо

Консоль запросов v8 1cv8.cf Россия Бесплатно (free)

Описана возможность использования обработки «Консоль запросов 1С+ADO» в качестве «консоли кода». При этом имеется возможность помещения результатов вычислений в «табло формул». Кроме результатов вычислений в это «табло» можно также вывести время выполнения и описание обработанных ошибок времени исполнения.

03.04.2014    25761    0    yuraos    2    

Обработка кодом результата запроса в Консоли запросов 9000

Консоль запросов v8::Запросы Бесплатно (free)

Пять вариантов обработки кодом в консоли запросов 9000: простое выполнение, построчно без индикации, построчно с индикацией, простое в фоне, построчно в фоне с индикацией.

01.06.2020    1052    0    kuza2000    7    

Управляемая консоль отчетов – новый функциональный инструмент для работы с запросами и СКД в управляемых формах

Прочие инструменты разработчика Консоль запросов v8::УФ v8::Запросы v8::СКД Бесплатно (free)

Консоль запросов и СКД – один из наиболее часто используемых программистом инструментов. Как с его помощью можно упростить разработку, в своем докладе на конференции Infostart Event 2019 Inception рассказал Евгений Люлюк, ведущий программист компании GLT.

06.04.2020    5684    0    Evg-Lylyk    0    

[8.3] Анализ планов запросов (Управляемая консоль отчетов)

Консоль запросов v8 1cv8.cf Бесплатно (free)

Новый инструмент! Позволяет удобно работать с планами запросов, анализ планов в файловой базе.

19.11.2018    18752    0    Evg-Lylyk    6    

Подсистема "COMExchange", консоль запросов, сервис обработки выборки запроса: корректируем регистры или «Берём банк, кассу, экспроприируем экспроприаторов». Промо

Консоль запросов v8 1cv8.cf Россия Бесплатно (free)

На примере шуточного примера продемонстрированы не шуточные возможности консоли запросов в составе подсистемы "COMExchange" для работы с регистрами, подчинёнными регистратору («обнуление» регистров, ввод начальных итогов (сведений), корректировка итогов).

31.03.2013    22236    0    yuraos    7    

Консоль запросов для УФ с возможностью передачи готовой ТЗ в качестве параметра

Консоль запросов v8 v8::УФ Россия Бесплатно (free)

Небольшая статья о том, как передать готовую таблицу значений в качестве параметра запроса в консоли запросов.

11.07.2016    14674    0    vadim1011985    7    

Консоль запросов. Очередная гайка.

Консоль запросов v8 1cv8.cf Бесплатно (free)

Небольшое дополнение к консоли запросов. Позволяет создавать функцию вместе с текстом запроса.

23.07.2014    8094    0    mdmdvd    3    

Полезные вкусняшки: Консоль запросов от GROOVY

Консоль запросов v8 1cv8.cf Россия Бесплатно (free)

Практически типовая 1Совская консоль слегка адаптированная для повседневных нужд. Поддерживаются пакетные запросы и просмотр временных таблиц.

19.09.2007    27887    0    GROOVY    17