Помощь - Поиск - Пользователи - Календарь
Полная версия: Реальна ли загрузка из Excel в 1С Предприятие 8.1?
1C-PRO - Форум по 1С > Форумы по платформе "1С:Предприятие 8.x" > (8.х) Обмен данными
zvor201271
Помогите пожалуйста решить вопрос... необходимо подгружать данные в локальную 1С Предприятие 8.1 из базы данных SQL. Какие варианты существуют? Существует ли вариант через промежуточный файл? И каким образом?
alexburn
А какие данные? Документы, справочники и т.п.?
DDRON
Добрый день.
Несколько месяцев назад стояла такая же задача.
Решил её с помощью промещуточного эксель-файла.

Сначала нужные данные из СКЛ переносятся в Эксель.
Потом пишется обработка, которая вытаскивает данные из определённых полей файла и создаёт в зависимости от задачи документы или справочники.

Если надо подробнее - спрашивайте.

Переодически и сейчас пользуюсь этими обработками.
zvor201271
Цитата(DDRON @ 29.1.2009, 13:50) *

Добрый день.
Несколько месяцев назад стояла такая же задача.
Решил её с помощью промещуточного эксель-файла.

Сначала нужные данные из СКЛ переносятся в Эксель.
Потом пишется обработка, которая вытаскивает данные из определённых полей файла и создаёт в зависимости от задачи документы или справочники.

Если надо подробнее - спрашивайте.

Переодически и сейчас пользуюсь этими обработками.


Добрый день! Спасибо, что откликнулись.
Из СКЛ в Эксель это понятно. Нужна обработка, которая вытаскивает данные файла и создаёт справочники. Первый раз с этим сталкиваюсь, поэтому прошу прислать пример обработки... и куда ее потом запихивать?чтобы все заработало?


Цитата(alexburn @ 28.1.2009, 15:34) *

А какие данные? Документы, справочники и т.п.?


справочники, причем поля таблицы Эксель в разные справочники 1С...
coder1cv8
Файлы-то Экселя зачем сюда преплели?!! Совершенно банальная обработка, которая через ADO "цепляется" непосредственно с SQL-базе и делает всё что нужно!
Перечитал ещё раз тему, а "SQL-база" - это случайно не 1С тоже? Тогда вообще в дебри какие-то ушли, есть XML-обмен штатный.
zvor201271
Цитата(coder1cv8 @ 30.1.2009, 11:52) *

Файлы-то Экселя зачем сюда преплели?!! Совершенно банальная обработка, которая через ADO "цепляется" непосредственно с SQL-базе и делает всё что нужно!
Перечитал ещё раз тему, а "SQL-база" - это случайно не 1С тоже? Тогда вообще в дебри какие-то ушли, есть XML-обмен штатный.

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

Код

Процедура КнопкаВыполнитьНажатие(Кнопка)
НашExcel = Новый COMОбъект("Excel.Application");
Книга = НашExcel.WorkBooks.Open("Путь к Эксель-файлу здесь пишешь");
Лист = Книга.WorkSheets(1);
НашExcel.Visible = 1;
стр = 2;
Пока Лист.Cells(стр, 1).Value <> "0" цикл
НовСпр = Справочники.Контрагенты.НайтиПоКоду(Лист.Cells(стр, 1).Value);
Если НЕ НовСпр.Пустая() тогда
Объект = НовСпр.ПолучитьОбъект();
Если Лист.Cells(стр, 3).Value <> 0 Тогда
Объект.СтарыйКод = Формат(Лист.Cells(стр, 3).Value, "ЧГ=");
Иначе
Объект.СтарыйКод = Лист.Cells(стр, 3).Value;
КонецЕсли;

Объект.Записать();
Попытка
Лист.Cells(стр, 4).Value = "записан";
Исключение
КонецПопытки;
КонецЕсли;
стр = стр + 1;
КонецЦикла;
КонецПроцедуры




Но это код под конкретно мою задачу. 1 в 1 Вам не подойдёт.
zvor201271
Цитата(DDRON @ 3.2.2009, 12:18) *

Вообще напрямую к SQL это конечно более правильно.
Но я делал через Эксель.

Код

Процедура КнопкаВыполнитьНажатие(Кнопка)
НашExcel = Новый COMОбъект(\"Excel.Application\");
Книга = НашExcel.WorkBooks.Open(\"Путь к Эксель-файлу здесь пишешь\");
Лист = Книга.WorkSheets(1);
НашExcel.Visible = 1;
стр = 2;
Пока Лист.Cells(стр, 1).Value <> \"0\" цикл
НовСпр = Справочники.Контрагенты.НайтиПоКоду(Лист.Cells(стр, 1).Value);
Если НЕ НовСпр.Пустая() тогда
Объект = НовСпр.ПолучитьОбъект();
Если Лист.Cells(стр, 3).Value <> 0 Тогда
Объект.СтарыйКод = Формат(Лист.Cells(стр, 3).Value, \"ЧГ=\");
Иначе
Объект.СтарыйКод = Лист.Cells(стр, 3).Value;
КонецЕсли;

Объект.Записать();
Попытка
Лист.Cells(стр, 4).Value = \"записан\";
Исключение
КонецПопытки;
КонецЕсли;
стр = стр + 1;
КонецЦикла;
КонецПроцедуры



Но это код под конкретно мою задачу. 1 в 1 Вам не подойдёт.



А куда нужно вставлять эту процедуру? Помогите пожалуйста!!!)))
Stack_G
Решение:
1. Если загрузка единовременная и данных не очень много - то можно и через Эксель, чтоб не заморачиваться.
Тогда поиск по форуму вам поможет, есть выложенные обработки.
2. Если требуется постоянный обмен - только подключение к БД на СКЛ.
DDRON
То что я написал - это код обработки.
В конфигураторе создаете новую обработку, туда добавляете этот код.
Потом в самой бухгалтерии (или какая у Вас конфигурация?) открываете и запускаете эту обработку.
Это текстовая версия — только основной контент. Для просмотра полной версии этой страницы, пожалуйста, нажмите сюда.
Русская версия Invision Power Board © 2001-2009 Invision Power Services, Inc.