25 сентября 2011 г.

Новая фича 1С 8.2.14 : Внешние источники данных

Подключимся и загрузим из файла Excel данные в таблицу значений 1С. Сделать теперь это очень просто.
1. В конфигурации добавляет новый объект метаданных типа "Внешние источники данных" и назовем его просто "Excel".
2. На закладке "Данные" созданного объекта "Excel" добавляем новую таблицу. При этом появится окно мастера добавления таблицы внешнего источника.
Выбираем первый пункт "Вручную", т.к. лично у меня второй пункт "Выбрать из списка таблиц внешнего источника данных" работает нестабильно.

Если Вы все же хотите попробовать добавить таблицу через второй пункт, то в качестве строки соединения в появившемся окне указываем:
Driver={Microsoft Excel Driver (*.xls)};DBQ=C:\Documents and Settings\Admin\Мои документы\finance3.xls; DriverID=790
В этой строке укажите путь к своему файлуИмя пользователя и пароль я не указывал.
Отмечу, что путь к файлу и строка соединения в дальнейшем не запоминается и нужны эти параметры единожды, чтобы создать автоматически описание полей таблицы источника.
Если соединение прошло нормально, то должен отобразиться список таблиц источника. Флажком можно выбрать нужную таблицу и ее поля.
3. Даем имя новой таблице "Данные". Переходим на вкладку таблицы "Данные". В поле "Имя в источнике данных" указываем имя листа в файле Excel  и добавляем в конце знак "$". В моем случае это "Данные$". В табличной части "Поля" добавляем поля и редактируем их тип.
У каждого поля в свойствах должно быть задано как минимум "Имя" и "Имя в источнике данных".
4. Создаем процедуру в которой пишем подключение к источнику и запрос:
ПараметрыСоединения = Новый ПараметрыСоединенияВнешнегоИсточникаДанных; 
	ПараметрыСоединения.СтрокаСоединения= 
	"Driver={Microsoft Excel Driver (*.xls)};DBQ=C:\Documents and Settings\Admin\Мои документы\finance2.xls; DriverID=790"; 
	ВнешниеИсточникиДанных.Excel.УстановитьОбщиеПараметрыСоединения(ПараметрыСоединения); 
	ВнешниеИсточникиДанных.Excel.УстановитьСоединение();
		
	Запрос = Новый Запрос();
	
	Запрос.Текст = "ВЫБРАТЬ
	               |	Данные.date КАК Дата,
	               |	Данные.time КАК Время,
	               |	Данные.account КАК Счет,
	               |	Данные.amount КАК Сумма,
	               |	Данные.currency КАК Валюта,
	               |	Данные.category КАК Категория,
	               |	Данные.parent КАК КатегорияРодитель
	               |ИЗ
	               |	ВнешнийИсточникДанных.Excel.Таблица.Данные КАК Данные";
	
	ТЗ = Запрос.Выполнить().Выгрузить();
 
Вот и все!





3 комментария:

  1. Любопытно. попробовал. ошибка - "слишком мало параметров. должно быть 2"
    Откуда взять строку DSN? Поидее если установлены разные версии МС Офиса, строка будет разной?

    ОтветитьУдалить
  2. Под источники данных ODBC не пробовали настраивать

    ОтветитьУдалить
  3. Всё работает...но для файловой базы. Пытаюсь воспроизвести в скульной - вылезает окошко Авторизациис заголовком "Подключение к источнику данных".
    Файл Excel не запаролен. Пробовал и системные учётные данные вбивать и данные юзера 1с - не прокатывает.
    В чём проблема мб? Почему в файловом варианте это окно не всплывает?

    ОтветитьУдалить