получение данных Всем доброго дня. Суть проблемы. В бухгалтерии стоит 1с8 . Нужно дописать модуль, который будет дергать несколько справочников и документов из 1с, бухгалтерии. Главный бухгалтер залезть к ним и дописать свой модуль не дает. Написал свое, отдельно. Но как из своей конфы пользоваться справочниками и документами чужой конфы ?
Категория:
Внешние источники данных Пример чтения текста в кодировке ISO Код 1C v 7.x
Функция Перекодировка(Стр="",Кодировка="windows-1251")
Стрим = СоздатьОбъект("Adodb.Stream");
Стрим.Type = 2;
Стрим.Mode= 3;
Стрим.charset="iso-8859-5";
Стрим.Open();
Стрим.WriteText(Стр);
Стрим.Position=0;
Стрим.charset=Кодировка;
Рез=Стрим.ReadText(-1);
Стрим.Close();
Возврат Рез;
КонецФункции
//Если предыдущая функция не срабатывает, то попробуйте:
Стрим = СоздатьОбъект("Adodb.Stream");
Стрим.charset="iso-8859-5";
Стрим.Open();
Стрим.LoadFromFile("c:\WORK\H R\PSHRR848.C");
Стрим.Position=0; // здесь уже можно дергать нормальный текст
Стрим2 = СоздатьОбъект("Adodb.Stream");
Стрим2.charset="windows-1251";
Стрим2.Open();
Стрим2.WriteText(Стрим.ReadText);
Стрим2.Position=0;
Рез=Стрим2.ReadText(-1);
Стрим.Close();
Стрим2.Close();
//Выведем в Сообщить результаты
Message("2 = "+Рез);
Message("StrLen(Рез) = "+StrLen(Рез));
// Кратко
Стрим = СоздатьОбъект("Adodb.Stream");
Стрим.charset="iso-8859-5";
Стрим.Open();
Стрим.LoadFromFile("c:\WORK\H R\PSHRR848.C");
Рез=Стрим.ReadText();
Код 1C v 7.x
Процедура Сформировать()
Стр= "Нажрися вотки и закуси ка селедкой! " ;
База= "" + _GetPerformanceCounter( ) + ".txt" ;
УТФ= КаталогВременныхФайлов( ) + "УТФ" + База;
ИСО= КаталогВременныхФайлов( ) + "ИСО" + База;
ДОС= КаталогВременныхФайлов( ) + "ДОС" + База;
ОбратноДОС= КаталогВременныхФайлов( ) + "ОбратноДОС" + База;
Текст= СоздатьОбъект( "Текст" ) ;
Текст. КодоваяСтраница( 1 ) ;
Для Сч= 1 По 10 Цикл
Текст. ДобавитьСтроку( Стр) ;
КонецЦикла ;
Текст. Записать( ДОС) ;
Текст. Очистить( ) ;
КомандаСистемы( "chcp 28595 > nul & echo off 2> "" " + ИСО+ """ & for /f "" delims="" %i in (" + ДОС+ ") do (chcp 28595|>> "" " + ИСО+ """ echo %i)" ) ;
Текст. КодоваяСтраница( 0 ) ;
Текст. ДобавитьСтроку( Симв( 255 ) + Симв( 254 ) ) ;
Текст. Записать( УТФ) ;
КомандаСистемы( "chcp 28595|> nul echo & cmd /u /c type "" " + ИСО+ """ >> "" " + УТФ+ """ " ) ;
КомандаСистемы( "type "" " + УТФ+ """ > "" " + ОбратноДОС+ """ " ) ;
Текст. КодоваяСтраница( 1 ) ;
Текст. Открыть( ОбратноДОС) ;
Для Сч= 1 По Текст. КоличествоСтрок( ) Цикл
Сообщить( Текст. ПолучитьСтроку( Сч) ) ;
КонецЦикла ;
КонецПроцедуры
Категория:
Полезные, Универсальные Функции