Подсистема "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) Обсуждаемый в статье пример является задачей загрузки данных в независимый регистр сведений.
Как эту же задачу выполнить для регистров накопления, регистров бухгалтернского учета и 
регистров сведений, зависимых от регистратора, смотрите в статье //xn--80appelehcm.xn--p1ai/public/180571/.

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

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

 

 

 

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

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

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

См. также

daСклонение: склонение ФИО, должностей, чисел, прилагательных, существительных на языке 1С + ТестЦентр Промо

Универсальные функции v8 1cv8.cf Абонемент ($m)

Функция предназначена для склонения выражений, которые часто требуется при формировании печатных форм договоров и прочих печатных форм. Функция склоняет по падежам ФИО, должности, числительные, валюты, единицы измерения, предметы. Также функция склоняет глаголы и прилагательные по числам и родам и существительные по числам. Имеется режим определения рода переданного выражения. Поддержка форматной строки для вывода результата. Функция не использует внешние библиотеки и веб-сервисы, написана на чистом языке 1С, и поэтому легко встраивается в любую конфигурацию или внешнюю обработку. Правила склонения оформлены в виде таблицы и могут быть легко изменены при необходимости.

1 стартмани

14.02.2015    99303    96    daMaster    88    

Сравнение реального дохода со средним доходом из API.HH.RU

Зарплата Управленческие v8 v8::СПР ЗУП3.x УУ Абонемент ($m)

Внешняя обработка на управляемой форме для 1С:Предприятие 8.3 по интеграции с HH.RU используя HH REST API. Ключевые функции: получение списка вакансий по должностям (Ключ для работы не нужен); расчет среднего дохода; Тестирование проводилось на платформе 1С:Предприятие 8.3 (8.3.13.1513) Зарплата и управление персоналом, редакция 3.1 (3.1.11.68) совместно с API.HH.RU.

1 стартмани

11.11.2019    3678    4    solaru    2    

Конфигурация для рекламного агентства

Управление услугами и сервисом Управление взаимоотношениями с клиентами (СRM) Производство готовой продукции (работ, услуг) Управление взаимоотношениями с клиентами (СRM) Производство готовой продукции (работ, услуг) v8 Реклама, PR и маркетинг УУ Абонемент ($m)

Данная конфигурация выполнена для решения тестового задания: Цель задания: 1) Понять, на каком из клиентов сколько мы заработали;  2) Понять, по какому виду СМИ сколько мы заработали;  3) Проследить по каждой услуге: у кого за сколько купили и кому за сколько продали, с возможностью перейти в соответствующий документ. Реализовано с помощью: 1. Справочники - контрагенты, номенклатура 2. Документы - Поступление услуг, реализация услуг 3. Отчеты - отчет по контрагентам, номенклатуре и движений.

1 стартмани

21.05.2019    3982    0    solaru    0    

Загрузка номенклатуры в УТ 10.3 из Excel файла с генерацией штрихкодов

Загрузка и выгрузка в Excel Обработка справочников Оптовая торговля Розничная торговля Учет ТМЦ Оптовая торговля Розничная торговля Учет ТМЦ v8 УТ10 Россия Абонемент ($m)

Обработка позволяет генерировать новые номенклатурные позиции на основе данных из файла Excel с последующей генерацией штрихкодов (ШК). Может быть полезна при больших поступлениях товаров на склад, где ручное создание и присваивание штрихкода  (ШК) может занимать много времени.

1 стартмани

24.03.2017    7557    6    solaru    0    

Под капотом управляемых форм

Практика программирования v8 1cv8.cf Бесплатно (free)

Управляемые формы уже давно и плотно вошли в жизнь 1С-разработчика. Однако, судя по недавним публикациям на Инфостарте, многие до сих пор мало знакомы с ними. Предлагаю разобраться с тем, что же это такое.

26.08.2013    260920    0    Evil Beaver    266    

[NotaBene] Универсальный отчет по таблице значений

Практика программирования v77::ОУ v77::БУ v77::Расчет 1cv7.md Россия Абонемент ($m)

1C v.7.7 Готовое решение. Не требует настройки. Не требует допрограммирования. Данная обработка решает часто встречающуюся задачу вывода в "красивом" виде таблицы значений (полученной, например, из запроса). Поддерживается произвольное группирование данных, отключение/включение группировок, в т.ч и создание "шахматок" (типа "продажи понедельно"). Обработка может использоваться как и в отладочных целях (для нормального просмотра ТЗ), так и в составе вполне рабочих отчетов. По крайней мере, я неоднократно клиентам данную обработку ставил вместо того, чтобы каждый раз писать замороченные выводы данных. И клиенты довольны, и мне - проще...

2 стартмани

07.05.2007    27966    1    CheBurator    61