Для продактов часто приходиться выгружать данные в Excel.
Для этого формирую быструю выгрузку
СтрокаПодключения = "
|Provider=Microsoft.ACE.OLEDB.12.0;
|Data Source="+ИмяФайлаЭксель+";
|Extended Properties=""Excel 12.0 XML;HDR=YES;"";";
// Создаем соединение
Connection = Новый COMОбъект("ADODB.Connection");
Connection.Open(СтрокаПодключения);
Command = Новый COMОбъект("ADODB.Command");
Command.ActiveConnection = Connection;
Command.CommandType = 1;
//создаем таблицу
Command.CommandText = "CREATE TABLE [Данные_ОтгрузкаБонусы]
|(Менеджер TEXT(100) WITH Compression
|,НаправленияДеятельности TEXT(100) WITH Compression
|,Месяц date
|,ВыручкаUSD Decimal(12,2)
|,ВыручкаUAH Decimal(12,2)
|,СебестоимостьUSD Decimal(12,2)
|,СебестоимостьUAH Decimal(12,2)
|,ВаловаяПрибыльUSD Decimal(12,2)
|,ВаловаяПрибыльUAH Decimal(12,2));";
//И заполняем ее
Command.CommandText = "INSERT INTO [Данные_ОтгрузкаБонусы] VALUES ("
+"'"+СтрЗаменить(СтрокаТабл.НоменклатураОсновнойМенеджер,"'","''") + "'" //Менеджер
+",'"+СтрЗаменить(СтрокаТабл.НоменклатураНаправленияДеятельности,"'","''")+"'" //НаправленияДеятельности
+","+Формат((МесяцыНачало+(2*60*60*24)-Дата(1900,1,1))/(60*60*24),"ЧГ=0")+"" //Месяц
+","+Формат(СтрокаТабл.Выручка,"ЧЦ=12; ЧДЦ=2; ЧРД=.; ЧН=0; ЧГ=0")+"" //ВыручкаUSD
+","+Формат(СтрокаТабл.ВыручкаУпр1,"ЧЦ=12; ЧДЦ=2; ЧРД=.; ЧН=0; ЧГ=0")+"" //ВыручкаUAH
+","+Формат(СтрокаТабл.ОбщаяСебестоимость,"ЧЦ=12; ЧДЦ=2; ЧРД=.; ЧН=0; ЧГ=0")+"" //СебестоимостьUSD
+","+Формат(СтрокаТабл.ОбщаяСебестоимостьUAH,"ЧЦ=12; ЧДЦ=2; ЧРД=.; ЧН=0; ЧГ=0")+"" //СебестоимостьUAH
+","+Формат(СтрокаТабл.ВаловаяПрибыль,"ЧЦ=12; ЧДЦ=2; ЧРД=.; ЧН=0; ЧГ=0")+"" //ВаловаяПрибыльUSD
+","+Формат(СтрокаТабл.ВаловаяПрибыльУпр1,"ЧЦ=12; ЧДЦ=2; ЧРД=.; ЧН=0; ЧГ=0")+"" //ВаловаяПрибыльUAH
+");"+Символы.ПС;
Command.Execute();
Вот принципе и все.
Для расчета даты для excel в 1с использую следующую формулу
(Необходима дата + два дня - 1/1/1900) / (Количество секунд в сутках)
(МесяцыНачало+(2*60*60*24)-Дата(1900,1,1))/(60*60*24)
Tuesday, March 31, 2015
Wednesday, March 25, 2015
Простая схема передачи данных между 1с и битрикс используя post запросы
Используем битрикс как сайт. И для несложных схем обмена использую php скрипты. С Get проблем не было, с Post пришлось поковыряться. Простое решение
Код 1с 8.2
код на сервере php
Итого, создаем файл запихиваем в него 6 приветов и отправляем, от сервера получаем ответ.
Код 1с 8.2
ИФ = ПолучитьИмяВременногоФайла(); ЗФ = Новый ЗаписьТекста(ИФ); ЗФ.ЗаписатьСтроку("Привет1"); ЗФ.ЗаписатьСтроку("Привет2"); ЗФ.ЗаписатьСтроку("Привет3"); ЗФ.ЗаписатьСтроку("Привет4"); ЗФ.ЗаписатьСтроку("Привет5"); ЗФ.ЗаписатьСтроку("Привет6"); ЗФ.Закрыть(); //Фл = Новый Файл(ИФ); ХТТП = Новый COMОбъект("Microsoft.XMLHTTP"); adoStream = Новый COMОбъект("ADODB.Stream"); adoStream.Mode = 3; // read write adoStream.Type = 1; // adTypeBinary adoStream.Open(); adoStream.LoadFromFile(ИФ); adoStream.Position = 0; connectstring = Константы.ПорталB2BАдресСайта.Получить()+"/tools/get_users_info.php"; request = "POST"; ХТТП.Open(request, connectstring, Ложь); ХТТП.SetRequestHeader("Content-Type", "application/upload"); //ХТТП.SetRequestHeader("X-File-Name", "input.txt"); //ХТТП.SetRequestHeader("X-File-Size", Фл.Размер()); ХТТП.Send(adoStream.Read(adoStream.Size)); Сообщить(ХТТП.Status); Сообщить( ХТТП.ResponseText);
код на сервере php
<?php $data = file_get_contents('php://input');//ile_get_contents("input.txt"); //read the file $convert = explode("\n", $data); //create array separate by new line for ($i=0;$i<count($convert);$i++) { echo $convert[$i].', '; //write value by index } ?>
Итого, создаем файл запихиваем в него 6 приветов и отправляем, от сервера получаем ответ.
Wednesday, March 11, 2015
Конверт таблицы excel в BB code (Convert Excel table to bb code)
Имеем проблему для сайта (в нашем случае для Bitrix) необходимо разместить "красивую" табличку с данными.
Для этого делаем следующие шаги
1. Копируем таблицу
2. Переходим на сайт http://www.avalanche.kiev.ua/site/free/convert-table-html.html и конвертим таблицу в html
3. Копируем исходный код html
4. Переходим на сайт http://onlinehtmltools.com/bbcode-html-convertor/#sthash.UyEuMmUL.dpbs
5. Выбираем "галку" html и после вставляем код
6. Снимаем галку html
7. Жмем "Switch On/Off WYSIWYG Mode" и получаем необходимый нам BB code
После этого вставляем в bitrix КП, вспоминая разрабов не злым тихим словом.
Для этого делаем следующие шаги
1. Копируем таблицу
2. Переходим на сайт http://www.avalanche.kiev.ua/site/free/convert-table-html.html и конвертим таблицу в html
3. Копируем исходный код html
4. Переходим на сайт http://onlinehtmltools.com/bbcode-html-convertor/#sthash.UyEuMmUL.dpbs
5. Выбираем "галку" html и после вставляем код
6. Снимаем галку html
7. Жмем "Switch On/Off WYSIWYG Mode" и получаем необходимый нам BB code
После этого вставляем в bitrix КП, вспоминая разрабов не злым тихим словом.
Subscribe to:
Posts (Atom)