1C
August 12

Всякие полезности

Текстовый файл

Как выгрузить данные из справочника в текстовый файл?

Текст = Новый ТекстовыйДокумент; 
Выборка = Справочники.Номенклатура.Выбрать(); 
Пока Выборка.Следующий() Цикл 
Стр = СтрЗаменить(Выборка.Наименование, Символ(34), "%квч%"); 
Код = Строка(Выборка.Код) + Символ(34); 
Текст.ДобавитьСтроку(Код + Стр); 
КонецЦикла; 
Текст.Записать("c:\temp\text.txt");

Как загрузить данные из текстового файла?

Текст = Новый ТекстовыйДокумент; 
Текст.Прочитать("c:\temp\text.txt"); 
Для НомерСтроки = 1 По Текст.КоличествоСтрок() Цикл 
Стр = Текст.ПолучитьСтроку(НомерСтроки); 
Позиция = Найти(Стр, Символ(34)); 
Код = Сред(Стр, 1, Позиция-1); 
прНаименование = Сред(Стр, Позиция + 1); 
Наименование = СтрЗаменить(прНаименование, "%квч%", Символ(34)); 
Сообщить(Код + "-" + Наименование); 
КонецЦикла;

Работа с текстом. Модель последовательного доступа

Путь = "c:\temp\text.txt"; 
Текст = Новый ЗаписьТекста(Путь, КодировкаТекста.UTF8); 
Выборка = Справочники.Номенклатура.Выбрать(); 
Пока Выборка.Следующий() Цикл 
Текст.ЗаписатьСтроку(Выборка.Наименование); 
КонецЦикла; 
Текст.Закрыть();
Путь = "c:\temp\text.txt"; 
Текст = Новый ЧтениеТекста(Путь, КодировкаТекста.UTF8); 
Стр = Текст.ПрочитатьСтроку(); 
Пока Стр <> Неопределено Цикл 
Стр = Текст.ПрочитатьСтроку(); 
Сообщить(Стр); 
КонецЦикла;

XML

Как из одной базы перенести документ в другую базу?

// Выгрузить в файл xml. 
ЗаписьXML=Новый ЗаписьXML(); 
ЗаписьXML.ОткрытьФайл("c:\doc.xml"); 
ЗаписьXML.ЗаписатьНачалоЭлемента("Root"); 
// Получить объект по ссылке. 
ВыгружаемыйОбъект=Документ.ПолучитьОбъект(); 
// С помощью средств сериализации записать объект в файл. 
ЗаписатьXML(ЗаписьXML,ВыгружаемыйОбъект); 
ЗаписьXML.ЗаписатьКонецЭлемента(); 
ЗаписьXML.Закрыть();
ЧтениеXML=Новый ЧтениеXML(); 
ЧтениеXML.ОткрытьФайл("c:\doc.xml"); 
// Текущим становится элемент Root. 
ЧтениеXML.Прочитать(); 
// Текущим становится элемент с документом. 
ЧтениеXML.Прочитать(); 
// Проверить сможет ли с данным значением "справиться" 
// система сериализации в данной базе. 
Если ВозможностьЧтенияXML(ЧтениеXML) Тогда 
// Получить ДокументОбъект.РеализацияТоваровУслуг 
ЗагружаемыйОбъект=ПрочитатьXML(ЧтениеXML); 
ЗагружаемыйОбъект.Записать(); 
КонецЕсли; 
ЧтениеXML.Закрыть();

Как можно сформировать XML-документ произвольной структуры?

Запись = Новый ЗаписьXML; 
Запись.ОткрытьФайл(ПутьКФайлу); 
Запись.ЗаписатьОбъявлениеXML(); 
Запись.ЗаписатьНачалоЭлемента("Корневой"); 
Запись.ЗаписатьАтрибут("Справочник", "Номенклатура"); 
Запись.ЗаписатьКомментарий("Краткая информация о номенклатуре"); 
Выборка = Справочники.Номенклатура.ВыбратьИерархически(); 
Пока Выборка.Следующий() Цикл 
Если Выборка.ЭтоГруппа Тогда 
Продолжить; 
КонецЕсли; 
Запись.ЗаписатьНачалоЭлемента("Элемент"); 
Запись.ЗаписатьАтрибут("Код", Строка(Выборка.Код)); 
Запись.ЗаписатьАтрибут("Артикул", Строка(Выборка.Артикул)); 
Запись.ЗаписатьТекст(Выборка.Наименование); 
Запись.ЗаписатьКонецЭлемента(); 
КонецЦикла; 
Запись.ЗаписатьКонецЭлемента(); 
Запись.Закрыть();

Как сформировать XML-документ в строку?

Запись = Новый ЗаписьXML(); 
Запись.УстановитьСтроку(); 
Запись.ЗаписатьОбъявлениеXML(); 
Запись.ЗаписатьНачалоЭлемента("Корневой"); 
Запись.ЗаписатьАтрибут("Справочник", "Номенклатура"); 
Запись.ЗаписатьКомментарий("Краткая информация о номенклатуре"); 
Выборка = Справочники.Номенклатура.ВыбратьИерархически(); 
Пока Выборка.Следующий() Цикл 
Если Выборка.ЭтоГруппа Тогда 
Продолжить; 
КонецЕсли; 
Запись.ЗаписатьНачалоЭлемента("Элемент"); 
Запись.ЗаписатьАтрибут("Код", Строка(Выборка.Код)); 
Запись.ЗаписатьАтрибут("Артикул", Строка(Выборка.Артикул)); 
Запись.ЗаписатьТекст(Выборка.Наименование); 
Запись.ЗаписатьКонецЭлемента(); 
КонецЦикла; 
Запись.ЗаписатьКонецЭлемента(); 
Стр = Запись.Закрыть(); 
Сообщить(Стр);

Как можно обмениваться данными, используя XML-сериализацию через файлы других форматов?

ЗаписьXML = Новый ЗаписьXML(); 
ЗаписьXML.УстановитьСтроку(); 
Данные = СсылкаНаДокумент.ПолучитьОбъект(); 
ЗаписатьXML(ЗаписьXML, Данные); 
ТекстСообщения = ЗаписьXML.Закрыть(); 
Текст = Новый ТекстовыйДокумент; 
Текст.УстановитьТекст(ТекстСообщения); 
Текст.Записать(ПутьКФайлу);
Текст = Новый ТекстовыйДокумент; 
Текст.Прочитать(ПутьКФайлу); 
ЧтениеXML = Новый ЧтениеXML(); 
ЧтениеXML.УстановитьСтроку(Текст.ПолучитьТекст()); 
Если ВозможностьЧтенияXML(ЧтениеXML) Тогда 
Данные = ПрочитатьXML(ЧтениеXML); 
Данные.Записать(); 
КонецЕсли;

Как можно загрузить XML документ произвольной структуры?

Чтение = Новый ЧтениеXML; 
Чтение.ОткрытьФайл(ПутьКФайлу); 
Пока Чтение.Прочитать() Цикл 
// Прочитать "структурные части" элементов. 
// Проверить, какая часть элемента - текущая. 
Если Чтение.ТипУзла = ТипУзлаXML.НачалоЭлемента Тогда 
ИмяУзла = Чтение.Имя; 
Сообщить("--" + ИмяУзла); 
// Атрибуты элементов можно читать только если текущая часть - 
// начало элемента 
Пока Чтение.ПрочитатьАтрибут() Цикл 
// Прочитать данные узла атрибута. 
ТипУзла = Чтение.ТипУзла; 
Имя = Чтение.Имя; 
Значение = Чтение.Значение; 
// Обработать полученные значения. 
КонецЦикла; 
ИначеЕсли Чтение.ТипУзла = ТипУзлаXML.Текст Тогда 
// В примере просто выводим текст в окно сообщений. 
Сообщить("Текст:" + Чтение.Значение); 
ИначеЕсли Чтение.ТипУзла = ТипУзлаXML.КонецЭлемента Тогда 
// В примере просто выводим признак конца элемента 
// в окно сообщений 
Сообщить("--Конец:" + Чтение.Имя); 
КонецЕсли; 
КонецЦикла;

DBF-файлы

Как можно построить выгрузку-загрузку посредством файлов DBF?

БД = Новый XBase; 
БД.Поля.Добавить("CODE", "S", 5); 
БД.Поля.Добавить("NAME", "S", 40); 
БД.СоздатьФайл(Путь + "start.dbf", Путь + "index.cdx"); 
БД.Индексы.Добавить("IDXCODE", "CODE"); 
ФлИБД = БД.СоздатьИндексныйФайл(Путь + "index.cdx"); 
БД.АвтоСохранение = Истина; 
Выборка = Справочники.Номенклатура.ВыбратьИерархически(); 
Пока Выборка.Следующий() Цикл 
БД.Добавить(); 
БД.CODE = Выборка.Код; 
БД.NAME = Выборка.Наименование; 
КонецЦикла; 
БД.ЗакрытьФайл();
БД = Новый XBase; 
БД.ОткрытьФайл(Путь + "start.dbf", Путь + "index.cdx"); 
БД.ТекущийИндекс = БД.Индексы.IDXCODE; 
Пока БД.Следующая() Цикл 
Сообщить(БД.CODE); 
Сообщить(БД.NAME); 
КонецЦикла; 
БД.ЗакрытьФайл();

Работа с HTML-документами

Заполнение HTML-анкет

Процедура URLПриИзменении(Элемент) 
ЭлементыФормы.ПолеHTML.Перейти(URL); 
КонецПроцедуры
Процедура ПолеHTMLДокументСформирован(Элемент) 
// Событие возникает и при открытии формы, когда в реквизите 
// URL содержится пустая строка. 
Если URL <> "" Тогда 
Док = ЭлементыФормы.ПолеHTML.Документ; 
// При попытке обратиться к несуществующему свойству 
// произойдет ошибка 
Док.forms["frm"].fam.Value = "Иванов"; 
Док.forms["frm"].nam.Value = "Иван"; 
Док.forms["frm"].otch.Value = "Иванович"; 
КонецЕсли; 
КонецПроцедуры

Работа с файлами

Как организовать диалог выбора текстового файла?

Режим = РежимДиалогаВыбораФайла.Открытие; 
ДиалогОткрытияФайла = Новый ДиалогВыбораФайла(Режим); 
ДиалогОткрытияФайла.ПолноеИмяФайла = ""; 
Фильтр = "Текст(*,txt)|*.txt"; 
ДиалогОткрытияФайла.Фильтр = Фильтр; 
ДиалогОткрытияФайла.МножественныйВыбор = Ложь; 
ДиалогОткрытияФайла.Заголовок = "Выберите файл"; 
Если ДиалогОткрытияФайла.Выбрать() Тогда 
ПутьКФайлу = ДиалогОткрытияФайла.ПолноеИмяФайла; 
КонецЕсли;
Режим = РежимДиалогаВыбораФайла.ВыборКаталога; 
ДиалогОткрытия = Новый ДиалогВыбораФайла(Режим); 
ДиалогОткрытия.Каталог = ""; 
ДиалогОткрытия.МножественныйВыбор = Ложь; 
ДиалогОткрытия.Заголовок = "Выберите каталог"; 
Если ДиалогОткрытия.Выбрать() Тогда 
ПутьККаталогу = ДиалогОткрытия.Каталог; 
КонецЕсли;

Как прочитать информацию о файле?

ДиалогОткрытияФайла = Новый ДиалогВыбораФайла(РежимДиалогаВыбораФайла.Открытие); 
ДиалогОткрытияФайла.Выбрать(); 
Файл = Новый Файл(ДиалогОткрытияФайла.ПолноеИмяФайла); 
Текст = "Файл: " + Файл.Имя; 
Текст = Текст + Символы.ПС + "Расширение: " + Файл.Расширение; 
Текст = Текст + Символы.ПС + "Полное имя: " + Файл.ПолноеИмя; 
Текст = Текст + Символы.ПС + "Путь: " + Файл.Путь; 
Текст = Текст + Символы.ПС + "Размер: " + Файл.Размер() + " байт"; 
Текст = Текст + ?(Файл.ПолучитьНевидимость(), Символы.ПС + "Невидимый. ", ""); 
Текст = Текст + ?(Файл.ПолучитьТолькоЧтение(), Символы.ПС + "Только чтение.", ""); 
Текст = Текст + Символы.ПС + "Последнее изменение: " + Файл.ПолучитьВремяИзменения(); 
Сообщить(Текст);

Как получить список файлов в указанном каталоге?

МассивНайденных = НайтиФайлы("C:\Обмен\Входящие", "*.xml"); 
Для Каждого Файл из МассивНайденных Цикл 
Сообщить(Файл.Имя); 
// Обработать найденные файлы. 
КонецЦикла;

Как переместить файл, выложенный на ftp к себе на локальный компьютер?

Если НайтиФайлы("C:\Temp\Sklad.xml") <> Неопределено Тогда 
УдалитьФайлы("C:\Temp\ Sklad.xml "); 
КонецЕсли; 
Если НайтиФайлы("ftp://111.222.333.4/Sklad.xml") <> Неопределено Тогда 
ПереместитьФайл("ftp://111.222.333.4/Sklad.xml", "C:\Temp\ Sklad.xml"); 
Сообщить("Файл перемещен."); 
Иначе 
Сообщить("Действие не выполнено. Файл в источнике не найден."); 
КонецЕсли;

Как разделить большой файл на несколько файлов определенного размера?

РазделитьФайл("D:/1/MyFile.xml", 1024*1024, "D:/1/11/");
ОбъединитьФайлы("D:/1/11/MyFile.xml.*", "D:/1/11/MyProg.exe");

Как поместить файлы в архив?

ФайлАрхива = Новый ЗаписьZipФайла("C:\Arch.zip", , , МетодСжатияZIP.Сжатие, УровеньСжатияZIP.Максимальный); 
ФайлАрхива.Добавить("C:\Inetpub\wwwroot\Applic1\*.*", РежимСохраненияПутейZIP.СохранятьОтносительныеПути, РежимОбработкиПодкаталоговZIP.ОбрабатыватьРекурсивно); 
ФайлАрхива.Записать();
ФайлАрхива = Новый ЧтениеZIPФайла("C:\Arch.zip"); 
ФайлАрхива.ИзвлечьВсе("C:\Open", РежимВосстановленияПутейФайловZIP.Восстанавливать); 
ФайлАрхива.Закрыть();

Как сравнить два текстовых файла?

ДиалогОткрытияФайла = Новый ДиалогВыбораФайла(РежимДиалогаВыбораФайла.Открытие); 
ДиалогОткрытияФайла.Фильтр = "Текстовый документ(*.txt)|*.txt"; 
// Выбрать первый файл. 
ДиалогОткрытияФайла.Заголовок = "Выберите первый файл:"; 
ДиалогОткрытияФайла.Выбрать(); 
ИмяФайла1 = ДиалогОткрытияФайла.ПолноеИмяФайла; 
// Выбрать второй файл. 
ДиалогОткрытияФайла.Заголовок = "Выберите второй файл:"; 
ДиалогОткрытияФайла.Выбрать(); 
ИмяФайла2 = ДиалогОткрытияФайла.ПолноеИмяФайла; 
// Сравнить выбранные файлы. 
СравнениеФайлов = Новый СравнениеФайлов(); 
СравнениеФайлов.ПервыйФайл = ИмяФайла1; 
СравнениеФайлов.ВторойФайл = ИмяФайла2; 
СравнениеФайлов.ИгнорироватьПустоеПространство = Истина; 
СравнениеФайлов.СпособСравнения = СпособСравненияФайлов.ТекстовыйДокумент; 
СравнениеФайлов.ПоказатьРазличия();

Как организовать контроль формирования файла внешним приложением?

Процедура ПроверкаНаличияФайла() 
ИмяКаталога = "c:\temp"; 
Маска = "*.xml"; 
НайденныеФайлы = НайтиФайлы(ИмяКаталога, Маска); 
Для Каждого Файл Из НайденныеФайлы Цикл 
Сообщить(Файл.Имя); 
КонецЦикла; 
КонецПроцедуры

ПодключитьОбработчикОжидания("ПроверкаНаличияФайла", 10);

ActiveX

Как использовать элементы управления ActiveX?

Режим = РежимДиалогаВыбораФайла.Открытие; 
ДиалогФыбораФайла = Новый ДиалогВыбораФайла(Режим); 
ДиалогФыбораФайла.Фильтр = "Все файлы (все)|*.*"; 
ДиалогФыбораФайла.Заголовок = "Выберите медиа файл"; 
Если ДиалогФыбораФайла.Выбрать() Тогда 
ПутьКМедиаФайлу = ДиалогФыбораФайла.ПолноеИмяФайла; 
// В зависимости от варианта объекта запись полного пути к файлу 
// производится либо в свойство FileName, либо в свойство URL. 
Попытка ЭлементыФормы.WMP.FileName = ПутьКМедиаФайлу; 
Исключение ЭлементыФормы.WMP.URL = ПутьКМедиаФайлу; 
КонецПопытки; 
КонецЕсли;

Макеты ActiveDocument

Как сформировать новый договор на основании файла Microsoft Word?

Договор = ПолучитьМакет("Договор"); 
// Получить объект из макета. 
MSWord = Договор.Получить(); 
НаименованиеКонтрагента = "ООО Торгуем всем"; 
Попытка 
Документ = MSWord.Application.Documents(1); 
Документ.Activate(); 
// Получить объект, который будем использовать для поиска и замены. 
Замена = Документ.Content.Find; 
// Заменить заранее определенные ключевые конструкции на требуемый текст. 
Замена.Execute("<НазваниеКомпании>", Ложь, Истина, Ложь, , , Истина, , Ложь, НаименованиеКонтрагента); 
// Далее аналогично для остальных ключевых конструкций. 
// Делаем видимым приложение и активизируем его. 
MSWord.Application.Visible = Истина; 
MSWord.Activate(); 
Исключение 
// Если произойдет ошибка выводятся данные об ошибке и объект закрывается. 
Сообщить(ОписаниеОшибки()); 
MSWord.Application.Quit(); 
КонецПопытки;

Работа с Интернет

Работа с электронной почтой

Как организовать работу с электронной почтой через установленного почтового клиента?

Почта = Новый Почта; 
Почта.Подключиться("login", "password"); 
Сообщ = Новый ПочтовоеСообщение; 
Сообщ.Текст = "Доброе время суток!!!!"; 
Сообщ.Тема = "Срочно в номер!!!"; 
Данные = Новый ДвоичныеДанные("c:\attach.txt"); 
Сообщ.Вложения.Добавить(Данные,"attach.txt"); 
Сообщ.Получатели.Добавить("[email protected]"); 
Почта.Послать(Сообщ, Ложь); 
Почта.Отключиться();
Почта = Новый Почта; 
Почта.Подключиться("login", "password"); 
Выборка = Почта.Выбрать(Истина, Ложь); 
Для Каждого Сообщение Из Выборка Цикл 
Сообщить("Тема: " + Строка(Сообщение.Тема)); 
Сообщить("Текст: " + Строка(Сообщение.Текст)); 
Для Каждого Вложение Из Сообщение.Вложения Цикл 
Сообщить(Строка(Вложение.Наименование)); 
КонецЦикла; 
КонецЦикла;

Как организовать работу с почтой без установленного почтового клиента на компьютере пользователя?

// Сформировать почтовый профиль. 
// При отправке нет необходимости указывать настройки, связанные с POP сервером. 
ИПП = Новый ИнтернетПочтовыйПрофиль; 
ИПП.АдресСервераSMTP = Константы.АдресСервераSMTP.Получить(); 
ИПП.ВремяОжидания = Константы.ВремяОжидания.Получить(); 
ИПП.Пароль = Константы.Пароль.Получить(); 
ИПП.ПарольSMTP = Константы.ПарольSMTP.Получить(); 
ИПП.Пользователь = Константы.Пользователь.Получить(); 
ИПП.ПользовательSMTP = Константы.ПользовательSMTP.Получить(); 
ИПП.ПортSMTP = Константы.ПортSMTP.Получить(); 
// Создать сообщение. 
Сообщение = Новый ИнтернетПочтовоеСообщение; 
Сообщение.Получатели.Добавить("[email protected]"); 
Сообщение.Отправитель.Адрес = "[email protected]"; 
Сообщение.Тема = "Срочно в номер!"; 
Сообщение.Тексты.Добавить("Доброе время суток!"); 
Вложение = Новый ДвоичныеДанные(ПутьКФайлуВложения); 
Сообщение.Вложения.Добавить(Вложение,"attach.txt"); 
// Подключиться и отправить. 
Почта = Новый ИнтернетПочта; 
Почта.Подключиться(Профиль); 
Почта.Послать(Сообщение); 
Почта.Отключиться();
// Формирование почтового профиля. 
// При получении нет необходимости указывать настройки, связанные с SMTP сервером. 
СостояниеПриема = "Подключение к серверу"; 
ИПП = Новый ИнтернетПочтовыйПрофиль; 
ИПП.АдресСервераPOP3 = Константы.АдресСервераPOP3.Получить(); 
ИПП.ВремяОжидания = Константы.ВремяОжидания.Получить(); 
ИПП.Пароль = Константы.Пароль.Получить(); 
ИПП.Пользователь = Константы.Пользователь.Получить(); 
ИПП.ПортPOP3 = Константы.ПортPOP3.Получить(); 
Соединение = Новый ИнтернетПочта; 
Соединение.Подключиться(ИПП); 
СостояниеПриема = "Получение выборки писем"; 
Выборка = Соединение.Выбрать(ЗабиратьССервера); 
СостояниеПриема = "Создание документов - писем"; 
КоличествоВВыборке = Выборка.Количество(); 
Индекс = 1; 
Для Каждого Письмо Из Выборка Цикл 
ТекПозиция = Окр(Индекс*100/КоличествоВВыборке); 
Если ТекПозиция <> Позиция Тогда 
Позиция = ТекПозиция; 
КонецЕсли; 
Док = Документы.Письмо.СоздатьДокумент(); 
Док.Тема = Письмо.Тема; 
СтрПолучатели = ""; 
Для Каждого Адрес Из Письмо.Получатели Цикл 
СтрПолучатели = СтрПолучатели + Адрес.Адрес + ","; 
КонецЦикла; 
Док.Получатели = СтрПолучатели; 
Если ТипЗнч(Письмо.Отправитель) = Тип("Строка") Тогда 
Отправитель = Письмо.Отправитель; 
Иначе Отправитель = Письмо.Отправитель.Адрес; 
КонецЕсли; 
Док.Отправитель = Отправитель; 
Содержание = ""; 
Для Каждого ТекстСообщения Из Письмо.Тексты Цикл 
Содержание = Содержание + ТекстСообщения.Текст + Символы.ПС; 
КонецЦикла; 
Док.Содержание = Содержание; 
Индекс = Индекс + 1; 
Док.Записать(); 
КонецЦикла; 
Соединение.Отключиться();

Выполнение HTTP запроса

СерверИсточник = HTTPserver; 
Адрес = "/price.asp"; 
ИмяВходящегоФайла = "c:\temp\input.html"; 
НТТР = Новый HTTPСоединение(СерверИсточник); 
НТТР.Получить(Адрес, ИмяВходящегоФайла); 
ВходящийФайл = Новый Файл(ИмяВходящегоФайла);

Работа с COM-объектами

Как из одной базы 1С:Предприятие 8.0 перенести остатки товаров в другую базу, используя COM-соединение.

Запрос = Новый Запрос; 
Запрос.Текст= "ВЫБРАТЬ 
| ОстаткиТоваровОрганизацийОстатки.Организация КАК Организация, 
| ОстаткиТоваровОрганизацийОстатки.Номенклатура, 
| ОстаткиТоваровОрганизацийОстатки.ГТДОрганизации, 
| ОстаткиТоваровОрганизацийОстатки.СтранаПроисхождения, 
| ОстаткиТоваровОрганизацийОстатки.Комиссионер, 
| ОстаткиТоваровОрганизацийОстатки.КоличествоОстаток 
|ИЗ 
| РегистрНакопления.ОстаткиТоваровОрганизаций.Остатки(&ДатаПереноса, ) КАК ОстаткиТоваровОрганизацийОстатки 
|ИТОГИ ПО 
| Организация"; 
Запрос.УстановитьПараметр("ДатаПереноса", ДатаПереноса); 
V8 = Новый COMОбъект("V8.ComConnector"); 
Попытка 
Открытие = V8.Connect("File=""" + Путь + """;Usr=""Usr1"";"); 
Исключение 
Предупреждение("База данных не открыта!!!"); 
Возврат; 
КонецПопытки; 
Выборка = Запрос.Выполнить().Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам); 
МенеджерДокумента = Открытие.Документы.ОприходованиеТоваров; 
МенеджерНоменклатуры = Открытие.Справочники.Номенклатура; 
МенеджерОрганизаций = Открытие.Справочники.Организации; 
// Менеджеры остальных справочников: 
Пока Выборка.Следующий() Цикл 
Документ = МенеджерДокумента.СоздатьДокумент(); 
Код = Выборка.Организация.Код; 
Организация = МенеджерОрганизаций.НайтиПоКоду(Код); 
Если Организация.Пустая() Тогда 
Организация = МенеджерОрганизаций.СоздатьЭлемент(); 
Организация.Код = Код; 
// Остальные реквизиты: 
Организация.Записать(); 
КонецЕсли; 
// Обработка остальных реквизитов, справочников: 
ВыборкаПодчиненная = Выборка.Выбрать(); 
Пока ВыборкаПодчиненная.Следующий() Цикл 
// Поиск/перенос данных справочников 
// заполнение табличной части документа 
КонецЦикла; 
Документ.Записать(РежимЗаписиДокумента.Проведение); 
КонецЦикла;

Как выполнить запрос к произвольной базе данных SQL?

стрПодключения = "Driver={SQL Server};" 
стрПодключения = стрПодключения + ИмяСервера + ";"; 
стрПодключения = стрПодключения +"Uid=" + ИмяПользователя + ";"; 
стрПодключения = стрПодключения + "Pwd=" + Пароль + ";"; 
стрПодключения = стрПодключения + "DataBase =" + ИмяБазы + ";"; 
стрПодключения = стрПодключения + "Pwd=" + Пароль + ";"; 
Connection = Новый COMОбъект("ADODB.Connection"); 
Connection.OpenServer = стрПодключения; 
RS = Новый COMОбъект("ADODB.Recordset"); 
// Запрос к базе на языке SQL запросов. 
RS.Open("Select * from TradeUnit", Connection); 
Пока RS.EOF() = 0 Цикл 
// Можно обращаться и обрабатывать значения полей выборки. 
ИД = RS.Fields("ID").Value; 
Код = RS.Fields("Code").Value; 
// Обработка других полей 
RS.MoveNext(); 
КонецЦикла; 
RS.Close(); 
Connection.Close();

Отформатированные примеры из раздела "Интеграции" статьи https://infostart.ru/1c/articles/19343/