Подсистема "COMExchange" для 1С:Предприятие-8.х (обычное приложение)

03.04.14

Разработка - Инструментарий разработчика

Подсистема включает в себя функционал, обеспечивающий взаимодействие 1С:Предприятия с любыми приложениями, поддерживающих технологию COM. Имеет развитые возможности для работы с библиотекой ADO. Предоставляет удобные средства для целей разработки и выполнения административных задач.

Скачать файлы

Наименование Файл Версия Размер
COMExchange-8x.rar
.rar 4,55Mb
379
.rar 4,55Mb 379 Скачать

 

Больше хороших боянов, товарищи! Ура!!!
(из первомайского обращения к коллективу
фабрики музыкальных инструментов)
 

 

Тема взаимодействия 1С  с другими приложениями через COM  относится к разряду популярных и
активно обсуждается во многих публикациях, например:
//infostart.ru/public/65045/
//infostart.ru/public/69248/
//infostart.ru/public/64883/
//infostart.ru/public/62737/
//infostart.ru/public/81333/
//infostart.ru/public/170424/.

Материалы для данной работы получены в результате разработок, решавших практические задачи обмена данными между 1С и информационной
системой «ЭТРАН» РАО РЖД, а также с программными системами прочих поставщиков информации о движении грузов по железным дорогам.



История версий:

Версии:  8.1.1.4 (для 8.1) и 8.2.1.4 (для 8.2) от 01.03.2014:
    1) Набор прав SA для усиленного контроля "полного доступа" к базе,
       описанного в //infostart.ru/public/225570/.
       Используется для контроля доступа к обработке "КонсольЗапросов1СADO"
    2) Автономная подсистема "Произвольные фоновые и регламентные задания" (бетта-версия).
    3) Дальнейшее развитие функционала обработки "КонсольЗапросов1СADO":
        версия консоли:  8.1.1.3  от 01.03.2014:
           1. Реорганизация структуры данных и алгоритмов обработки для обеспечения совместимости
               с управляемым приложением.
           2. Вынос функционала обработки выборки запроса из модуля формы "ОбработкаВыборки" в модуль объекта.
           3. Обработка выделенных строк таблицы результата запроса в форме "ОбработкаВыборки".
           4. Вывод времени выполнения и отображение статуса обработки строк в форме "ОбработкаВыборки".
           5. Контроль ссылочной целостности при непосредственном удалении объектов в форме "ОбработкаВыборки".
           6. Новые шаблоны заполнения для обработки выборки запроса -
               - "Обработка табличной части" и "Обработка движений регистратора".
           7. Сохранение результата запроса во внешнем файле (*.obj8).
           8. "Загрузка" в результат запроса объекта 1С (таблицы/дерева значений), сохраненого во внешнем файле (*.obj8).
           9. "Загрузка" в результат запроса списка помеченных на удаление объектов;
         10. "Загрузка" в результат запроса таблицы ссылок на список объектов, полученных при выполнении другого запроса;
         11. Запрос в режиме "Консоль кода" с показом результатов вычислений в табло значений (в "результате" запроса);
         12. Заполнение дерева запросов по переданному объекту "Запрос" -
               - используется подсистемой "ViewValues" для его "просмотра".
         13. Масса интерфейсных улутшений (в том числе список последних открытых файлов запросов).
         14. Интеграция с обработкой 1С:Администратор (//infostart.ru/public/100967/), требуемая версия не ниже 5.6.

   Версия 8.1.1.3 от 22.04.013:
    1) Часть функционала из модуля объекта плана обмена "ОбменДаннымиCOM"  перенесена в новый общий модуль "COMУзел" 
        (для совместимости с видимостью контекстов в управляемом приложении) с сохранением обратной совместимости;
    2) В список стандартных настроек плана обмена добавлены настройки для работы с операционной системой через объект "WScript.Shell"
        
В форме автозаполнения добавлено заполнение стандартных узлов с кодами "WSH.Runи "WSH.Exec";
    3) Реализована возможность подключения-отключения к источнику данных на стороне сервера с инициализацией (передачей управления) 
       
со стороны клиента (для выполнения на стороне сервера некоторых действий: например, включения-выключения VPN-соединений);
   подробнее...

   Версия 8.1.1.2 от 08.03.013:
    1) Функционал выполнения запросов ADO:
        - поддержка работы с внешней компонентой GameWithFire.dll, подробнее...
    2) Консоль запросов: 
        - возможность держать открытым менеджер временных таблиц для повторного использования 
        временных таблиц созданных после интерактивного выполнения запроса (Рис.18). 
        - сервис выборочного удаления строк таблицы результата запроса 
        по произвольному условию (Рис.16, Рис.17).

 


 Возможности подсистемы:

  1. Обеспечение взаимодействия и обмен данными 1С:Предприятия с любыми приложениями, поддерживающими технологию COM;
  2. Развитые возможности для работы с библиотекой ADO:
  • а. Выполнение любых инструкций SQL: чтения, вставки, обновления, удаления, изменения структуры данных и т.п.;
  • b. Выполнение пакета инструкций (multi-batch-statement);
  • c. Возможность использования в запросах большинства опций ADO (Рис.11, Рис.12)
       согласно документации (см. ниже ссылки на Интернет-ресурсы);
  • d. Выполнение запросов с выгрузкой результата в таблицу значений
        (в том числе с выгрузкой результата выполнения каждой инструкции из multi-batch-statement в отдельную таблицу значений);
  • e. Выполнение запросов в цикле с подстановкой значений параметров из переданной таблицы значений,
        включая параметризованные запросы ADO;

     3.  Удобные средства для разработки и выполнения административных задач;

 

В состав подсистемы входят:

1) общий модуль "COMОбменПривелигированный" - пустой, зарезервирован для регламентных серверных процедур; 

2) общие модули "COMОбменСервер" и "COMОбменКлиент" - содержит серверные и клиентские варианты функций следующего назначения:

  • a. Выполнение запросов 1С в различных режимах;
  • b. Выполнение запросов через ADO к внешним источникам данных в различных режимах;
  • c. Выполнение запросов в цикле со значениями параметров из таблицы значений,
        включая параметризованные запросы ADO с «пред-подготовкой» команды при первом исполнении;

3) общий модуль "COMОбмен" -  содержит процедуры и функции сервисного и общего назначения, в том числе:

  • a. Открытие файла по имени с помощью узла плана обмена "ОбменДаннымиCOM" в ассоциированном приложении;
  • b. Функции синхронизации данных через регистр сведений "ОбменДаннымиCOMСоответствиеОбъектов";
  • c. Общие функции для работы с ADO:
    • - Значения перечислений ADO;
    • - Соответствие типов 1С и ADO;
    • - Установка параметров запросов ADO;
    • - Выгрузка результатов запросов ADO в таблицу значений;

4) План обмена "ОбменДаннымиCOM" (Рис.1), выполняет следующие функции:

  • a. Служит для хранения данных, необходимых для связи (подключения/отключения) с источником данных через COM (Рис.4):
    • - Идентификатор приложения, имя сервера приложения, учётные данные для доступа к данным (логин, пароль);
    • - Тип источника данных, возможные значения:
      • Файл с данными;
      • Файловая база данных (каталог с файлами данных);
      • Клиент-серверная база данных;
      • Произвольный ресурс интернета;
    • - Модули подключения к источнику данных и отключения от источника данных через COM
        (исполняются в контексте модуля объекта плана обмена);
  • b. Через экспортные методы объекта плана обмена обеспечиваются следующие базовые функционалы:
    • - Подключение, отключение к источнику данных через COM;
    • - Синхронизация объектов в базе 1С с данными из внешних источников;
        В данном функционале механизм регистрации изменений и транспортный механизм системы универсального обмена данными
        не задействованы.
      Имеется практическая возможность для реализации на основе этих механизмов нестандартных обменов с
        внешними источниками данных,
      использующих прямой доступ к базам данных через ADO (в том числе запросы для записи данных
        и вызов хранимых процедур)
      .
  • c. Содержит вспомогательные данные, используемые при заполнении настроек и выборе узла плана обмена из списка:
    • - Внутренний числовой код платформы источника данных. Соответствует виду приложения для доступа к данным.
        Выбирается из списка стандартных настроек (Рис.5).
        Некоторые платформы из этого списка:
      • 1С:Предприятие-7.7, 1С:Предприятие-8.0 (и остальные версии) через OLE и COM;
      • MS Word, MS Excel через COM;
      • Различные СУБД через ADO: MS SQL-Server, MySQL, PostgreSQL, IBM DB2, Oracle, FoxPro и т.д.
      • Произвольный COM-объект (доступны для изменения любые настройки соединения)
    • - Вид узла (конфигурации) источника данных - ссылка из справочника "ВидыУзловCOM".
        Используется для произвольной классификации источников данных по их внутренней конфигурации.
        Например, для 1С:Предприятие это может быть имя прикладного решения ТИС-9.2, УТ-10.3, УПП-1.3 и т.д.;
  • d. Предоставляет средства для автоматического заполнения настроек источников данных:
    • - Выбор типа платформы источника данных в форме узла плана обмена из широкого списка стандартных настроек;
    • - Начальное заполнения плана обмена "ОбменДаннымиCOM" и справочника "ВидыУзловCOM" стандартными
        ("предопределёнными") значениями в форме автоматического заполнения (Рис.2); 

5)  Справочник "ВидыУзловCOM", служит для произвольной классификации источников данных по конфигурации базы данных.
     Используется для построения списка узлов плана обмена "ОбменДаннымиCOM" c иерархией по видам узлов (Рис.3).
     Этот список открывается для подбора источника данных запроса ADO в обработке "КонсольЗапросов1СADO".

6)  Обработка "КонсольЗапросов1СADO", доработанная версия стандартной обработки "КонсольЗапросов" (Рис.10).
     Удобный инструмент для разработки и администрирования.
     В этой консоли сделано много улучшений и дополнительных возможностей, в том числе:
          - Выполнение запросов к внешним источникам данных через ADO (Рис.11);
          - Использование событий выполнения запросов для организации сложных действий, например, выполнения «составных» запросов (Рис.14);
          - Использование событий обработки результатов запросов для обработки данных по произвольному алгоритму (Рис.15);

7)  Регистр сведений "ОбменДаннымиCOMСоответствиеОбъектов", используется для хранения соответствий ссылок на объекты из текущей базы 1С и
     уникальных кодов,  идентифицирующих объекты во внешних источниках данных, соответствующих узлам плана обмена "ОбменДаннымиCOM" .

 

Работа с библиотекой ADO:

Возможности работы с библиотекой ADO (в части выполнения запросов) реализованы в подсистеме более-менее полно и последовательно,
согласно документации, имеющейся на следующих ресурсах интернета: 

1. Справочная информация (учебник) по библиотеке ADO (Microsoft ActiveX Data Object):
http://www.w3schools.com/ado/

2.Информация по строке соединения с различными источниками данных ADO:
http://www.connectionstrings.com/

3.Статьи о использовании библиотеки ADO:
http://www.script-coding.com/ADO.html
http://www.sql.ru/articles/mssql/2005/122703ado.shtml

 

Документация:

По объектам подсистемы составлено подробное описание, включающее подробности, не описанные в настоящей статье.
О некоторых из них также можно прочитать в следующих публикациях:
1. Подсистема "COMExchange": прямой доступ к EXCEL через ADO.
2. Подсистема "COMExchange": «прямые» запросы к базе 1С через ADO или как простые элементы сделать “предопределёнными”.
3. Подсистема "COMExchange": ускорение выгрузки запросов ADO или «игра с огнём».
4. Подсистема "COMExchange", консоль запросов, сервис обработки выборки запроса: грузим курс «бакса» ЦБРФ из файла *.dbf или *.xlsx.
5. Подсистема "COMExchange", консоль запросов, сервис обработки выборки запроса: корректируем регистры или «Берём банк, кассу, экспроприируем экспроприаторов».
6. Управление VPN-соединением из 1С на стороне клиента и на стороне сервера.
7. Подсистема "COMExchange": консоль запросов в режиме «Консоль кода».

 

Комплект поставки:

Подсистема поставляется вместе с подсистемой «ViewValues»,
так как она используется некоторыми функциями просмотра табличных объектов в консоли запросов (Рис.13).

Архив комплекта поставки COMExchange-8x.rar содержит: 
   1. файлы конфигураций подсистемы для следующих релизов платформ 1С: 8.1.14, 8.2.13, 8.2.14;
   2. файл ..\Samples\*.*  (сохраненные запросы, файлы с данными) - примеры
демонстрирующие возможности подсистемы;

 

Особенности установки:

После установки рекомендуется выполнить начальное заполнение объектов подсистемы стандартными значениями
в форме автоматического заполнения (Рис.2).

 

Благодарности:

Хочу выразить признательность неизвестному программисту 1С, оставивший авторский комментарий //Vitkovsky в форме
обработки выборки данных консоли запросов, за удобный, гибкий инструмент, который много раз выручал меня в работе.

 

См. также

Infostart Toolkit: Инструменты разработчика 1С 8.3 на управляемых формах

Инструментарий разработчика Роли и права Запросы СКД Платформа 1С v8.3 Управляемые формы Запросы Система компоновки данных Конфигурации 1cv8 Платные (руб)

Набор инструментов программиста и специалиста 1С для всех конфигураций на управляемых формах. В состав входят инструменты: Консоль запросов, Консоль СКД, Консоль кода, Редактор объекта, Анализ прав доступа, Метаданные, Поиск ссылок, Сравнение объектов, Все функции, Подписки на события и др. Редактор запросов и кода с раскраской и контекстной подсказкой. Доработанный конструктор запросов тонкого клиента. Продукт хорошо оптимизирован и обладает самым широким функционалом среди всех инструментов, представленных на рынке.

13000 руб.

02.09.2020    119959    656    389    

701

Infostart PrintWizard

Пакетная печать Печатные формы Инструментарий разработчика Платформа 1С v8.3 Запросы 1С:Зарплата и кадры бюджетного учреждения 1С:Конвертация данных 1С:ERP Управление предприятием 2 1С:Управление торговлей 11 Платные (руб)

Инструмент, позволяющий абсолютно по-новому взглянуть на процесс разработки печатных форм. Благодаря конструктору можно значительно снизить затраты времени на разработку печатных форм, повысить качество и "прозрачность" разработки, а также навести порядок в многообразии корпоративных печатных форм.

18000 руб.

06.10.2023    7016    20    6    

37

Infostart УДиФ: Управление данными и формами

Инструменты администратора БД Инструментарий разработчика Роли и права Платформа 1С v8.3 Конфигурации 1cv8 Россия Платные (руб)

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

10000 руб.

10.11.2023    3253    10    1    

31

SALE! 30%

PowerTools

Инструментарий разработчика Инструменты администратора БД Платформа 1С v8.3 Управляемые формы Конфигурации 1cv8 Россия Платные (руб)

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

3600 2520 руб.

14.01.2013    177352    1071    0    

846

Многопоточность. Универсальный «Менеджер потоков» 2.1

Инструментарий разработчика Платформа 1С v8.3 Конфигурации 1cv8 Россия Платные (руб)

Восстановление партий или взаиморасчетов, расчет зарплаты, пакетное формирование документов или отчетов - теперь все это стало доступнее. * Есть желание повысить скорость работы медленных алгоритмов! Но... * Нет времени думать о реализации многопоточности? * о запуске и остановке потоков? * о поддержании потоков в рабочем состоянии? * о передаче данных в потоки и как получить ответ из потока? * об организации последовательности? Тогда ЭТО - то что надо!!!

5000 руб.

07.02.2018    99207    239    97    

296

[ЕХТ] Фреймворк для Расширений 1С

Инструментарий разработчика Платформа 1С v8.3 Управляемые формы Платные (руб)

"Фреймворк для Расширений 1С" это универсальное и многофункциональное решение, упрощающее разработку и поддержку создаваемых Расширений. Поставляется в виде комплекта из нескольких Расширений с открытым исходным кодом. Работает в любых Конфигурациях в режиме Управляемого приложения с режимом совместимости 8.3.12 и выше без необходимости внесения изменений в Конфигурацию.

3000 руб.

27.08.2019    17921    6    8    

38

1С HTML Шаблоны / HTML Templates

Инструментарий разработчика Платформа 1С v8.3 Конфигурации 1cv8 Платные (руб)

Быстрая и удобная обработка для работы с шаблонами HTML. Позволяет легко и быстро формировать код HTML.

2040 руб.

27.12.2017    27949    3    10    

14

Выполнение произвольного кода или запроса с параметрами через Web-сервис (замена COM-подключений)

Инструментарий разработчика Обмен между базами 1C Платформа 1С v8.3 Платные (руб)

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

2400 руб.

24.09.2019    23493    15    15    

31
Комментарии
В избранное Подписаться на ответы Сортировка: Древо развёрнутое
Свернуть все
1. yuraos 991 19.01.13 16:28 Сейчас в теме
Всем доброго времени суток!
Представляю вашему вниманию мои скромные наработки по взаимодействию 1С со внешними миром через COM.

Несколько замечаний:
1) Предлагаемые список стандартных настроек источников данных ADO широк, но
функции выполняющие запросы через ADO реально проверялись со следующими источниками данных:
для MS SQL Server ч/з OLEDB (для баз с разной архитектурой, в том числе для 1С-7.7-sql и 1С-8.х-sql);
для FoxPro ч/з OLEDB (для баз 1С-7.7-dbf);
для MS EXEL ч/з Excel-Jet.OLEDB и Excel-Ace.OLEDB;
В последнем случае возникли определенные ньюансы, например для параметрических запросов
с символами подстановки параметра '?' провайдер для всех параметров запроса
устанавливает одинаковые имена - "?".
В связи с этим предприняты определенные меры,
которые, как я надеюсь, больше не превидут к неожиданностям при работе с другими СУБД.

2) Консоль запросов в комлекте с подсистемой достаточно универсальна и может использоваться независимо.
Для выполнения запросов через ADO требуется план обмена "Обмен данными COM" и общие модули подситемы.
Остальной функционал (кроме некоторых функций просмотра "табличных" объектов) будет работать в любой конфигурации.
2. German 413 19.01.13 21:33 Сейчас в теме
+ за multi batch еще в консолях не было
Как ведет себя опция Сохранять откомпилированную версию("параметрезованный" запрос) в DB2?
5. yuraos 991 20.01.13 09:33 Сейчас в теме
(2) German, чесно говоря не проверял, на подхвате нет сервера DB2.

В функциях выполняющих запрос все сделано по документации:
Если эта опция установлена, у объекта ADODB.Command свойству Prepared присваивается Истина.

А в функции выполняющих запрос в цикле при повторном выполнении команды -
- даже текст запроса не передается на выполнение, только значения параметров для установки.

Ну а там как провайдер данных на душу положет...
В SQL Server Books Online, например, об этом можно прочитать:
"что не все провайдеры данных поддерживают параметризованные запросы"
3. dyak84 19.01.13 22:45 Сейчас в теме
Уважаемые пользователи сайта кто использовал даную подсистему кроме автора отпишитесь как работает, все ли так гладко как говорит автор. Спасибо за внимание жду ответа.
4. Kuzja_R 170 20.01.13 02:38 Сейчас в теме
(3) dyak84, сам бы протестировал и нам рассказал. =)
6. yuraos 991 20.01.13 09:39 Сейчас в теме
(3) dyak84, я пожалуй тебя поддержу...
Например Excel через Jet.OLEDB меня малость неприятно удивил.

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

Логика бывает математической, женской и ПРИКЛАДНОЙ :)
7. yuraos 991 20.01.13 09:58 Сейчас в теме
Выкладываю подправленную версию консоли.

Изначально я при любой смене источника данных очищал настройки типа ADO у параметров запроса.
Потом решил делать так только при очистке значения.

Но что-то малость прокосячился ...
... это все наследие 1с-77:
там вместо НЕ ЗначениеЗаполнено()[/I нечто с противоположным смыслом - [I]ПустоеЗначение()
;)
8. yuraos 991 20.01.13 09:59 Сейчас в теме
Выкладываю подправленную версию консоли.

Изначально я при любой смене источника данных очищал настройки типа ADO у параметров запроса.
Потом решил делать так только при очистке значения.

Но что-то малость прокосячился ...
... это все наследие 1с-77:
там вместо НЕ ЗначениеЗаполнено() нечто с противоположным смыслом - ПустоеЗначение()
;)
9. yuraos 991 22.01.13 05:47 Сейчас в теме
Доброе всем время суток!
Изменен комплект поставки.
Текущие изменения:
1. Включены исправления в консоли запросов из поста (8);
2. Добавлен пример (сохраненный запрос),
демонстрирующий прямой доступ к EXCEL через ADO
+ дополнительные возможности консоли;
10. bulpi 215 24.01.13 15:47 Сейчас в теме
Вот это работа !
Недооцененная сообществом, по-моему.
11. yuraos 991 24.01.13 16:26 Сейчас в теме
(10) bulpi, ну общество я думаю пока находится в процессе оценивания...
...как говорится жираф он большой ;)
12. karakozov 28.01.13 11:50 Сейчас в теме
Да! Работа конечно колоссальная.Автору зачет.Обязательно попробую реализовать обмен по средствам данного механизма.Плюс однозначно!
13. yuraos 991 06.02.13 21:13 Сейчас в теме
Доброе всем время суток!
Изменен комплект поставки.
Текущие изменения:
1. Теперь в консоли запросов время выполнения запросов и время выгрузки
показывается с точностью до миллисекунды.
2. В план обмена "ОбменДаннымиCOM" добавлена новая платформа источника данных
"ADO-подключение к таблице dBase ч/з OLEDB" для доступа через ADO к DBF-файлам
и соответствующий ей стандартный узел плана обмена, создаваемый в форме автозаполнения.
3. В план обмена "ОбменДаннымиCOM" также добавлена форма авторизации на сервере 1С
для ввода имени, пароля Администратора сервера 1С, а также, при необходимости,
для уточнения сетевого протокола и номера порта для связи с сервером.
14. MiCe 12 24.02.13 06:02 Сейчас в теме
на счет Excel.
Выгружать в новом формате (xlsx) легче через xml. не будет проблем с типами...
сделайте unzip для любого ёкселевского фала - поймете структуру...
кстати можно и украшать так же... да и загружать в прЫнципе....
============ так же и в ворд....
15. yuraos 991 24.02.13 10:18 Сейчас в теме
(14) MiCe, фэнкс!
дасс, пропустилс по невнимательности в строке соединения
для стандартных настроек "ADO-подключение к файлу XLS ч/з ACE.OLEDB-12.0",
используемых для "предопределенного" узла "ExcelAce" неприметное словечко "Xml".

Как раз из-за этого Excel-2012 и отказывался узнавать
созданный провайдером при выгрузке данных файл с расширением *.xlsx.
Поскольку фактический формат созданного файла другой - "бинарная" рабочая книга *.xlsb.

Более правильной для расширения файла *.xlsx будет строка соединения
Provider=Microsoft.ACE.OLEDB.12.0; Data Source="!Путь!"; Extended Properties="Excel 12.0 Xml; HDR=Yes;"

с близжайшим обновлением подправлю стандартные настройки.
Сейчас придется подправить настройки в узле в ручную.
После выхода обновления - можно будет заполнить настройки по умолчанию при "очистке" строки соединения в форме узла.
16. MiCe 12 24.02.13 14:20 Сейчас в теме
в строке провайдера ёкселя есть параметр imex... если он равен 1 - то все данные интерпретируются как тип строка...
при загрузке полезно... не будет пропуска данных не соответствующих типу колонке...
и еще.... в тексте запроса можно использовать именованные области...
и еще ))) можно готовить шаблоны ёкселя.... потом создавать файлы на основе шаблона и выгружать в них....
это даст украшательства...
и еще раз напомню.... xlsx зазипованный xml.... намного более гибкий формат....
доступ к ёкселю через адо слишком чувствителен к данным....
17. yuraos 991 24.02.13 16:56 Сейчас в теме
(16) MiCe,
и еще....

Нельзя объять необъятное.
К.Прутков

:)

к параметру imex я присматривался,
но так и не стал его включать в строку соединения в стандартных настройках
плана обмена "Обмен данными COM".

Кому надо, тот без труда может подправить строку соединения в форме узла
как ему надо или наплодить разных узлов на все случаи жизни.

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

Значение поля Период в виде текста как-то совсем получается неудобным.
Прямо в запросе 1С его к дате не преобразуешь
(про функцию ВЫРАЗИТЬ() - я могу долго и нецензурно выражаться :) )

А при обработке в коде 1С при пребразованиии с помощью функции ДАТА()
тоже могут возникнуть проблемы, так как текстовое представление даты не всегда соответстует принятому в 1С.
18. yuraos 991 24.02.13 17:05 Сейчас в теме
(17),
и еще....
:)

я не агитирую использовать только старый формат книг эксель *.xls или только новый *.xlsx.

в плане обмена "Обмен данными COM" есть стандартные узлы,
создаваемые в форме автозаполнения, как для старого формата так и для нового.

такии образом:
что кому нравится или что когда нравится...
:)
19. MiCe 12 24.02.13 17:33 Сейчас в теме
да.... как все таки не хватает нативного tsql...
примеры провайдера
у екселя есть сохранкние в формат "таблица xml 2003"
у платформы 1с хороший движОк xml с сериализацией... наладить трансформ и всех делов....
на новых платформах 1с пытается сделать что то наподобие линкед сервер.... но как всегда через ж....
куча недореализаций.... нет обновлений... все дело в том что нужно четко сопоставлять типы данных... а с этим проблема.... и не забывайте - ексель не реляционная база данных... потому и куча условностей....
20. MiCe 12 25.02.13 15:28 Сейчас в теме
Нельзя объять необъятное. К.Прутков

А приходится. Жисть.

оффтоп... 8=)
21. ArtemiFD 42 08.03.13 10:34 Сейчас в теме
Пока не смотрел, но судя по описанию работа действительно крутая. Я сейчас занимаюсь (в свободное время) разработкой подобных механизмов, но в более упрощенном виде.
22. yuraos 991 11.03.13 07:08 Сейчас в теме
Всем доброго времени суток!
---
Обновлены файлы поставки.
Основные изменения:
1. Поддержка работы с ВК GameWithFire.dll
(ускорение выгрузки результата запроса ADO в таблицу значений);
2. План обмена "Обмен данными COM":
пользовательское событие ПередСоединением(Соединение,Connect) -
позволяет переопределить строку соединения и модуль инициализации соединения
(подробности в описании подсистемы);
3. Дополнительные возможности в консоли запросов 1С + ADO
(подробности в статье и описании консоли);
23. DoctorRoza 15.03.13 09:49 Сейчас в теме
(22) качаю, читаю, изучаю! В работе .. и в сельском хозяйстве :) .. информация нужная!
24. sanches 256 15.03.13 21:28 Сейчас в теме
Спасибо, воспользуюсь
25. yuraos 991 31.03.13 18:44 Сейчас в теме
Доброе время суток!
Изменены файлы поставки.

В основном изменения коснулись обработки "Консоль запросов 1С + ADO":
текущая версия консоли: 8.1.1.2-a от 16.03.2013:
1) Открытие дополнительных окон обработки результата запроса в модальном режиме в обработчиках
событий выполнения запросов (добавлены соответствующие команды в меню вставки ключевых слов).
2) Добавлена процедура КонсольРезультатОбновить(Индекс=0) для простого обновления результата запроса
в форме консоли после его програмного выполнения в форме обработки выборки.
3) Для события выполнения запроса ПослеЗапроса( ) добавлен аргумент СтандартнаяОбработка.
4) Улучшен функционально исполняемый код, формируемый шаблонами авто-заполния модулей событий обработки выборки запроса.
Добавлен флаг разрешения обработки ("предохранитель") и возможность использования структуры заданных параметров какого-либо
запроса в дереве списка, например, для заполнения свойств объекта перед записью.
---
Также добавлен файл !ВеликаяОктябрьскаяРеволюция.selx с примерами запросов для коррекции записей регистров.
26. yuraos 991 14.04.13 10:18 Сейчас в теме
Доброе время суток!
Изменены файлы поставки.

Текущие измнения:

1) План обмена "Обмен данными COM":
Поправлен вывод сообщений при неудачном соединении с источником данных ADO.
Теперь детальная техническая информация (которая может содержать пароли от серверов данных)
выводится только для пользователей, прошедших "усиленную" проверку на "пролные права",
заключающуюся в следующем:
// усиленная проверка полного доступа к базе
Функция ДоступПолный_Проверить() Экспорт
	ДоступПолный	= ПравоДоступа("Администрирование",Метаданные,) 
					И ПравоДоступа("ОбновлениеКонфигурацииБазыДанных",Метаданные,) 
					И ПравоДоступа("МонопольныйРежим",Метаданные,)
					И ПравоДоступа("ИнтерактивноеОткрытиеВнешнихОбработок",Метаданные,)
					;
	Если Метаданные.Роли.Найти("ПолныеПрава") <> Неопределено Тогда
		ДоступПолный = ДоступПолный И РольДоступна("ПолныеПрава");
	КонецЕсли;
	Возврат ДоступПолный;
КонецФункции
Показать

2) Консоль запросов 1С +ADO:
Исправленные мелкие баги интерфейсного характера.
3) Примеры запросов:
добавлены примеры для очистки независимых регистров сведений,
реализующих функционал обработок в некоторых публикациях:
а. чистим_регистры_сведений_1.selx - функционал обработки из статьи http://infostart.ru/public/181420/
б. чистим_регистры_сведений_2.selx - функционал обработки из статьи http://infostart.ru/public/181456/
27. ev_gen_ 15 24.04.13 18:16 Сейчас в теме
Категорически приветствую.

Должен заметить очень интересная тема- многое понравилось и сейчас анализирую Вашу публикацию.

Хочу заметить, что я тоже иду в данном направлении и видимо есть успехи.
Вот ссылка: http://infostart.ru/public/183242/
По поводу моей публикации
Важно:
Вопросы интеграции не являются ключевыми, но они там раскрыты.
Возможно Вам они будут интересны.
По ссылке ниже можно увидеть подробное описание
https://github.com/Rugut/UPP/blob/master/v82.all/%D0%9E%D0%BF%D0%B8%D1%81%D0%B0%D0%BD%D0%B8%D0%B5.txt

Спасибо.
28. yuraos 991 29.04.13 06:54 Сейчас в теме
Доброе время суток!
Изменены файлы поставки.

Текущие измнения:
Версия 8.1.1.3 от 22.04.013:

1) Часть функционала из модуля объекта плана обмена "ОбменДаннымиCOM" перенесена в новый общий модуль "COMУзел"
(для совместимости с видимостью контекстов в управляемом приложении) с сохранением обратной совместимости;
2) В список стандартных настроек плана обмена добавлены настройки для работы с операционной системой через объект "WScript.Shell"
В форме автозаполнения добавлено заполнение стандартных узлов с кодами "WSH.Run" и "WSH.Exec";
3) Реализована возможность подключения-отключения к источнику данных на стороне сервера с инициализацией (передачей управления)
со стороны клиента (для выполнения на стороне сервера некоторых действий: например, включения-выключения VPN-соединений);
29. yuraos 991 20.05.13 07:26 Сейчас в теме
Всем доброго времени суток!
---
Обновлены файлы поставки.

Текущие изменения:

Подправлено преобразование типа ADO "adDate" в тип 1С.

Для исправления достаточно в общем модуле "COMОбмен" в строке № 706
заменить ЧастиДаты.Дата на ЧастиДаты.ДатаВремя.
30. tormozit 7133 29.07.13 02:33 Сейчас в теме
Огромное спасибо автору подсистемы! Хорошее оформление кода и описание помогли быстро разобраться.

Путем частичного заимствования кода из нее в подсистеме "Инструменты разработчика" внедрена начальная поддержка ADO (консоль запросов и конструктор запроса). Подробнее здесь
31. pashtet99 18.01.14 14:45 Сейчас в теме
Всем здравствуйте. Оговорюсь сразу, в 1с я новичок и поэтому возникает множество вопросов. Один из них заключается в следующем:
У меня есть функция которая считает количество дней между 2-мя датами

&НаСервере
Функция РасчетДень()
   	Запрос = Новый Запрос;
	Запрос.Текст = 
		"ВЫБРАТЬ
		|	УчебныеКурсы.НачалоОбучения,
		|	УчебныеКурсы.КонецОбучения,
		|	РАЗНОСТЬДАТ(УчебныеКурсы.НачалоОбучения, УчебныеКурсы.КонецОбучения, ДЕНЬ) КАК День	
		|ИЗ
		|	Справочник.УчебныеКурсы КАК УчебныеКурсы";
	Результат = Запрос.Выполнить();
	Возврат Результат;
КонецФункции
Показать


Проверял запрос через консоль запросов. Все работает нормально.
В форме справочника есть поле: Длительность обучения в днях. В этом поле я пытаюсь отобразить результат функции описанной выше, делаю это следующим образом:

ЭтаФорма.Объект.ДлительностьОбучения = РасчетДень();


Но ничего не происходит. Хотелось бы узнать, как правильно вызвать эту функцию, чтобы в этом поле отображался корректный результат. Надеюсь на Вас, гуру 1с))
Прикрепленные файлы:
32. yuraos 991 18.01.14 15:05 Сейчас в теме
(31) pashtet99,
Твоя функция возвращает не число дней между двумя датами,
а некоторое значение типа "РезультатЗапроса",
при передаче которого с сервера на "управляемый" клиент должна возникнуть ошибка.
Поскольку этот тип не поддерживается на клиенте.
33. yuraos 991 18.01.14 15:08 Сейчас в теме
(32)
насколько я понял задачу,
функция должна возвращать длительность в днях
некоего "курса обучения" по ссылке из справочника.
я бы функцию написал бы так:
&НаСервереБезКонтекста
Функция РасчетДень(КурсСсылка)
   Запрос = Новый Запрос;
   Запрос.Текст = 
      "ВЫБРАТЬ
      |   РАЗНОСТЬДАТ(УчебныеКурсы.НачалоОбучения, УчебныеКурсы.КонецОбучения, ДЕНЬ) КАК ДниКурса   
      |ИЗ
      |   Справочник.УчебныеКурсы КАК УчебныеКурсы
      |ГДЕ УчебныеКурсы.Ссылка = &КурсСсылка";
   Запрос.Параметры.Вставить("КурсСсылка",КурсСсылка);
   Выборка = Запрос.Выполнить().Выбрать();
   Если Выборка.Следующий() Тогда
       Возврат Выборка.ДниКурса;
   Иначе
       Возврат 0;
   КонецЕсли;
КонецФункции
Показать
34. pashtet99 18.01.14 15:13 Сейчас в теме
(33)Вот я создаю некий курс обучения, указываю его название, стоимость и период обучения, и вот после того, как я указал период обучения, количество дней, в этом периоде, должно передаться в поле надписи Длительность обучения в днях
35. yuraos 991 18.01.14 15:19 Сейчас в теме
(31) pashtet99,
ну ... проще надо все делать - примерно так:
Объект.ДлительностьОбучения = (Объект.ОкончаниеОбучения - Объект.НачалоОбучения) / (24*360);

разность двух дат - это время в секундах
37. yuraos 991 18.01.14 15:22 Сейчас в теме
(35)
можно конечно и запросом посчитать,
тогда в функцию надо передать даты:
&НаСервереБезКонтекста
Функция РасчетДень(НачалоОбучения, КонецОбучения)
   Запрос = Новый Запрос;
   Запрос.Текст = 
      "ВЫБРАТЬ
      |   РАЗНОСТЬДАТ(&НачалоОбучения, &КонецОбучения, ДЕНЬ) КАК ДниКурса   
      |";
   Запрос.Параметры.Вставить("НачалоОбучения",НачалоОбучения);
   Запрос.Параметры.Вставить("КонецОбучения",КонецОбучения);
   Выборка = Запрос.Выполнить().Выбрать();
   Если Выборка.Следующий() Тогда
       Возврат Выборка.ДниКурса;
   Иначе
       Возврат 0;
   КонецЕсли;
КонецФункции
Показать
38. pashtet99 18.01.14 15:24 Сейчас в теме
(37) Это вроде бы и понятно, мне просто интересно как вызвать эту функцию, чтобы присвоить ее результат нужному полю?
41. yuraos 991 18.01.14 15:32 Сейчас в теме
(38) pashtet99,
У тебя на ту надпись точно выведен реквизит ДлительностьОбучения ?
Проверь путь к данным (мало ли что)...
И я бы написал просто
Объект.ДлительностьОбучения = РасчетДень();

не через ссылку на объект текущей формы...хотя это должно быть все-равно.
39. yuraos 991 18.01.14 15:26 Сейчас в теме
(37)
обрати внимание на директиву
&НаСервереБезКонтекста -
- ее лучше использовать если тебе на сервере не нужен контекст(данные) формы,
а только переданные через аргумент параметры.
40. pashtet99 18.01.14 15:28 Сейчас в теме
36. pashtet99 18.01.14 15:20 Сейчас в теме
А я делал так, оно не учитывает почему-то саму дату НачалоОбучения и КонецОбучения
42. yuraos 991 23.03.14 10:31 Сейчас в теме
Всем доброго времени суток!
Обновлены файлы поставки.
Текущие изменения:
Версии: 8.1.1.4 (для 8.1) и 8.2.1.4 (для 8.2) от 01.03.2014:
1) Набор прав SA для усиленного контроля "полного доступа" к базе,
описанного в http://infostart.ru/public/225570/.
Используется для контроля доступа к обработке "КонсольЗапросов1СADO"
2) Автономная подсистема "Произвольные фоновые и регламентные задания" (бетта-версия).
3) Дальнейшее развитие функционала обработки "КонсольЗапросов1СADO":
версия консоли: 8.1.1.3 от 01.03.2014:
1. Реорганизация структуры данных и алгоритмов обработки для обеспечения совместимости с управляемым приложением.
2. Вынос функционала обработки выборки запроса из модуля формы "ОбработкаВыборки" в модуль объекта.
3. Обработка выделенных строк таблицы результата запроса в форме "ОбработкаВыборки".
4. Вывод времени выполнения и отображение статуса обработки строк в форме "ОбработкаВыборки".
5. Контроль ссылочной целостности при непосредственном удалении объектов в форме "ОбработкаВыборки".
6. Новые шаблоны заполнения для обработки выборки запроса -
- "Обработка табличной части" и "Обработка движений регистратора".
7. Сохранение результата запроса во внешнем файле (*.obj8).
8. "Загрузка" в результат запроса объекта 1С (таблицы/дерева значений), сохраненного во внешнем файле (*.obj8).
9. "Загрузка" в результат запроса списка помеченных на удаление объектов;
10. "Загрузка" в результат запроса таблицы ссылок на список объектов, полученных при выполнении другого запроса;
11. Запрос в режиме "Консоль кода" с показом результатов вычислений в табло значений (в "результате" запроса);
12. Заполнение дерева запросов по переданному объекту "Запрос" - используется подсистемой "ViewValues" для его "просмотра".
13. Масса интерфейсных улучшений (в том числе список последних открытых файлов запросов).
14. Интеграция с обработкой 1С:Администратор (http://infostart.ru/public/100967/), требуемая версия не ниже 5.6.
43. poyson 07.05.14 09:23 Сейчас в теме
Хороший инструмент. Спасибо!
44. romzat 14 10.12.14 02:27 Сейчас в теме
Добрый день! Судя по скриншотам к публикации вы использовали удаленное подключение к компьютеру, на котором установлен ЭТРАН. Не подскажите, какие настройки делали на обеих сторонах, чтобы это заработало (я имею ввиду регистрацию компоненты EtranASUGO в виде COM сервера и т.п.)
Заранее спасибо.
45. yuraos 991 11.12.14 19:49 Сейчас в теме
(44) romzat,
Давно уже это было!
В той конторе уж год как не работаю.

Ситуация там была такая:
Сам ЭТРАН был установлен на одном ноуте, постоянно находившемся сети.

Установкой и регистрацией ЭТРАНА на том ноуте я не занимался.
Это делали админы.

Я организовал доступ из 1С через COM к ЭТРАНУ на том ноуте.

При создании COM-объекта в этой ситуации приходилось в конструкторе объекта
во втором аргументе указывать сетевой путь к ноуту с ЭТРАНОМ:
ОбъектCOM = Новый COMОбъект("EtranASUGO.EtranASUGO", "//СетевоеИмяКомпаГдеУстаовленЭтран"); 

46. yuraos 991 11.12.14 19:51 Сейчас в теме
(45)
Если использовать для хранения настроек соединения узел плана обмена "ОбменДаннымиCOM"
то настройки должны быть примерно как на скриншоте
Прикрепленные файлы:
47. dvim 65 04.02.16 15:20 Сейчас в теме
Про этран
Он работает на машинах со специальным VPN
потому разрабатывая архитектуру учтите - надо коннектится к машине "клиенту Этрана", для вас это будет сервер.
Но Асуго - это мертвое дитя, сейчас уже пора бользоваться SOAP
48. yuraos 991 31.05.18 17:26 Сейчас в теме
Текущие допилы в тестировании
Прикрепленные файлы:
яКонсоль1CADO(8.1.1.4)betta_1.rar
49. izidakg 170 01.11.18 23:23 Сейчас в теме
Оставьте свое сообщение