пятница, 6 мая 2011 г.

Внешние источники данных в 1С

И наконец настал тот час когда "они" появились
Платформа 8.2.14
Реализована возможность получать данные из внешних источников данных. Для доступа используется интерфейс ODBC. Для доступа к данным внешних источников можно использовать объектную модель, язык запросов и систему компоновки данных. Реализована стандартная функция "Управление внешними источниками данных". Реализован объект метаданных "ВнешнийИсточникДанных".
В конфигурации появился новый объект Внешние источники данных.

Каждый источник представляет из себя:
  1. Перечень доступных таблиц;
  2. Перечень доступных полей в таблице
  3. Дополнительные колонки валяющие на представление 
Важно:
Строка соединения указываемая при импорте таблиц не сохраняется в конфигурации


Есть конструктор строк соединений позволяющий выбрать исчерпывающий список драйверов: 
  • SQL Server 
  • Microsoft ODBC for Oracle 
  • Microsoft Access Driver (*.mdb), Microsoft Access-Treiber (*.mdb), Driver do Microsoft Access (*.mdb) 
  • Microsoft dBase Driver (*.dbf), Microsoft dBase-Treiber (*.dbf), Driver do Microsoft dBase (*.dbf) 
  • Microsoft Excel Driver (*.xls), Microsoft Excel-Treiber (*.xls), Driver do Microsoft Excel(*.xls) 
  • Microsoft Paradox Driver (*.db ), Microsoft Paradox-Treiber (*.db ), Driver do Microsoft Paradox (*.db ) 
  • Microsoft Text Driver (*.txt; *.csv), Microsoft Text-Treiber (*.txt; *.csv), Driver da Microsoft para arquivos texto (*.txt; *.csv) 
  • Microsoft Visual FoxPro Driver, Microsoft FoxPro VFP Driver (*.dbf), Microsoft dBase VFP Driver (*.dbf),Microsoft Visual FoxPro-Treiber, Driver para o Microsoft Visual FoxPro 
  • SQL Server Native Client 10.0
После того как вы сохраните конфигурацию исходную структуру таблиц внешнего источника вы увидите в конструкторе запросов, и сможете работать с ней так же как с обычной таблицей, использовать в запросе или читать с помощью встроенного языка.

пСоед = Новый ПараметрыСоединенияВнешнегоИсточникаДанных;
пСоед.СтрокаСоединения= "DRIVER={SQL Server};SERVER=serv;UID=sa;PWD=fkujhbnv;APP=upp;DATABASE=upp";
ВнешниеИсточникиДанных.upp.УстановитьОбщиеПараметрыСоединения(пСоед);
ВнешниеИсточникиДанных.upp.УстановитьСоединение();
Запрос = Новый Запрос("ВЫБРАТЬ ПЕРВЫЕ 5
| dbo_Config.FileName,
| dbo_Config.Creation,
| dbo_Config.BinaryData
|ИЗ
|ВнешнийИсточникДанных.upp.Таблица.dbo_Config КАК dbo_Config");
Таблица = Запрос.Выполнить().Выгрузить();


Важно: Перед началом работы с внешними источники необходимо установить соединение с ними (пример выше).
В запросе помимо стандартный типов будут присутствовать и двоичные данные


Вообще поведение двоичных данные радует, их не просто можно получить они еще и работают в запросах на соединение.
Но есть вещи которые огорчают:
  1. Нельзя получать данные из нескольких источников одновременно, то есть в запросе не могут присутствовать таблицы конфигурации и таблицы внешних источников; 
  2. Нельзя использовать временные таблицы в запросах с внешними источниками данных 
Резюме:
Заметным и нужным был релиз платформы 8.1.11 именно в нем появились временные таблицы, я думаю что 8.2.14 станет таким же

вторник, 3 мая 2011 г.

Редактирование текстов интерфейса

Иногда возникают ситуации когда необходимо изменить одно слово во многих формах (макетах) конфигурации.
Например название на кнопке "Выполнить" нужно заменить например на "Обработать"
Для этого в 1С есть штатный инструмент Редактирование тестов интерфейса (Правка - Редактирование тестов интерфейса)

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

В том случае если изменения должны иметь определенные зависимости, замену можно сделать с подошью Eiнапример как тут. Формы объектов будут достойны в текстом виде, макеты в виде табличных документов их можно будет изменить с использованием Встроенного языка (RegExp, СтрЗаменить)