Переключение на Главную Страницу Страницы: 1 ОтправитьПечать
Горячая тема (более 10 ответов) excel to 1C (число прочтений - 4113 )
bla4o4ez
YaBB Newbies
*
Отсутствует


1C++ rocks!

Сообщений: 9
Местоположение: МСК
Зарегистрирован: 30. Сентября 2010
Пол: Мужской
excel to 1C
30. Сентября 2010 :: 07:55
Печать  
День добрый. Пишу обработку первый раз. Загрузка документов поступление товаров  + поступление материалов. Excel файл. Был бы рад получить отрывок кода который опеределяет не нужные строки excel(пустые)
т.к документ(xls) выгружается из сторхауза 4 руками. Сотвественно обрубает не нужные. Те получить колво загружаемых документов. И еще нормально ли забирается значение(из екселя), если два столбика объединены и числовое(текстовое) значение имеют оба столбца. Спасибо заранее.
  
Наверх
 
IP записан
 
JohnyDeath
1c++ power user
1c++ donor
Отсутствует



Сообщений: 3050
Местоположение: Волгоград
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: excel to 1C
Ответ #1 - 30. Сентября 2010 :: 08:38
Печать  
Рекомендую Йоксель http://yoksel.net.ru/HomePage
Качать здесь: http://yoksel.net.ru/Hotfixes
Там есть и документация и демо-конфа
  
Наверх
 
IP записан
 
bla4o4ez
YaBB Newbies
*
Отсутствует


1C++ rocks!

Сообщений: 9
Местоположение: МСК
Зарегистрирован: 30. Сентября 2010
Пол: Мужской
Re: excel to 1C
Ответ #2 - 30. Сентября 2010 :: 08:54
Печать  
Как я понял Йоксел грузить из печатной формы экселя единичный экземпляр документа... или есть возможность сделать записи журнала и проводки с его помощью??
  
Наверх
 
IP записан
 
JohnyDeath
1c++ power user
1c++ donor
Отсутствует



Сообщений: 3050
Местоположение: Волгоград
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: excel to 1C
Ответ #3 - 30. Сентября 2010 :: 09:01
Печать  
Смех нет, документы создавать за тебя он не сможет
  
Наверх
 
IP записан
 
bla4o4ez
YaBB Newbies
*
Отсутствует


1C++ rocks!

Сообщений: 9
Местоположение: МСК
Зарегистрирован: 30. Сентября 2010
Пол: Мужской
Re: excel to 1C
Ответ #4 - 30. Сентября 2010 :: 09:14
Печать  
Головной боли добавилось Смущённый Будем разбираться в йокселе. Хех он использует 32х разрядную ДЛЛку, Я сейчас на 64 рисую... жаль. Спасибо
  
Наверх
 
IP записан
 
JohnyDeath
1c++ power user
1c++ donor
Отсутствует



Сообщений: 3050
Местоположение: Волгоград
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: excel to 1C
Ответ #5 - 30. Сентября 2010 :: 10:22
Печать  
Ну значит подключайся к Excel по OLE и делай с ним что хочешь
  
Наверх
 
IP записан
 
bla4o4ez
YaBB Newbies
*
Отсутствует


1C++ rocks!

Сообщений: 9
Местоположение: МСК
Зарегистрирован: 30. Сентября 2010
Пол: Мужской
Re: excel to 1C
Ответ #6 - 30. Сентября 2010 :: 17:36
Печать  
Да в принципе этим и занимался. Только примеров моей типовой задачи не найду. Сложно писать если навыков нету пока.
  
Наверх
 
IP записан
 
Salimbek
God Member
*****
Отсутствует



Сообщений: 862
Зарегистрирован: 06. Июня 2006
Пол: Мужской
Re: excel to 1C
Ответ #7 - 01. Октября 2010 :: 08:19
Печать  
Если навыков нет, то начни с этого: http://www.mista.ru/articles1c/ole.htm
  
Наверх
ICQ  
IP записан
 
bla4o4ez
YaBB Newbies
*
Отсутствует


1C++ rocks!

Сообщений: 9
Местоположение: МСК
Зарегистрирован: 30. Сентября 2010
Пол: Мужской
Re: excel to 1C
Ответ #8 - 01. Октября 2010 :: 16:34
Печать  
Интересно. Спасибо.
  
Наверх
 
IP записан
 
Janeka
Junior Member
**
Отсутствует


1C++ rocks!

Сообщений: 30
Зарегистрирован: 09. Сентября 2010
Re: excel to 1C
Ответ #9 - 19. Октября 2010 :: 23:03
Печать  
Процедура Выполнить()
     Если Курс=0 Тогда
           Курс=1;
     КонецЕсли;      

     НачальнаяСтрока = НачСтрока;
     КонечнаяСтрока = КонСтрока;

     ЗапущенExcel=1;
     
       Попытка
           // запускаем Excel-Server
           ВходExcel = СоздатьОбъект("Excel.Application");
     Исключение      
           ЗапущенExcel = 0;
           Сообщить(ОписаниеОшибки(),"!");
           Возврат;
     КонецПопытки;
     
     Если ЗапущенExcel=1 Тогда
           Попытка
                 // открываем файл
                 ВходExcel.Application.Workbooks.Open(НазваниеФайла);
                 ВходнойФайлОткрыт = 1;
       Исключение
                 ВходExcel.Quit();
                 Сообщить(ОписаниеОшибки(),"!");
                 Возврат;
           КонецПопытки;

     КонецЕсли;
     
     Если ВходнойФайлОткрыт = 1 тогда
           Сообщить("Файл открыт");
     КонецЕсли;      

     НСтрока = Макс(НачальнаяСтрока,1);
     КСтрока = КонечнаяСтрока;

     НачатьТранзакцию();
           
     СпрНом=СоздатьОбъект("Справочник.Номенклатура"); 
     Родит=ПолучитьПустоеЗначение("Справочник.Номенклатура");
     мИнд=0;
                       
     Для НомерСтроки = НСтрока По КСтрока Цикл      // цикл по всем строкам входного файла, кроме шапки
           
           
           мЦена =  ВходExcel.ActiveSheet.Cells(НомерСтроки,КолонкаЦены).Value;
           мНаим = ВходExcel.ActiveSheet.Cells(НомерСтроки,КолонкаНаим).Value;
           Если СпрНом.НайтиПоНаименованию(мНаим,0,1)=0 Тогда
                 Если  Число(мЦена) <> 0 Тогда
                       СпрНом.Новый();
                       СпрНом.Наименование = мНаим; 
                       СпрНом.Цена = мЦена*Курс;
     
                       Если ПустоеЗначение(Родит)=0 Тогда
                             СпрНом.Родитель=Родит;
                       КонецЕсли; 
           
                 Иначе
                          СпрНом.НоваяГруппа();
                          СпрНом.Наименование = мНаим;
                 КонецЕсли;
           
               СпрНом.Записать();
     
                 Если СпрНом.ЭтоГруппа()=1 Тогда
                       Родит=СпрНом.ТекущийЭлемент();
                 КонецЕсли;
           Иначе
                 Если  Число(мЦена) <> 0 Тогда
                   СпрНом.Цена = мЦена*Курс;
     
                       Если ПустоеЗначение(Родит)=0 Тогда
                             СпрНом.Родитель=Родит;
                       КонецЕсли; 
                 КонецЕсли;
           
               СпрНом.Записать();
     
                 Если СпрНом.ЭтоГруппа()=1 Тогда
                       Родит=СпрНом.ТекущийЭлемент();
                 КонецЕсли;
                 
           КонецЕсли;      
            
                 Сообщить ("Записали - "+СпрНом.Наименование);

     КонецЦикла;

     ЗафиксироватьТранзакцию();

     ВходExcel.ActiveWorkbook.Close();
     ВходExcel.Quit();      
   
КонецПроцедуры 

Очень довольный
  
Наверх
 
IP записан
 
nikolka
Junior Member
**
Отсутствует


I Love YaBB 2!

Сообщений: 83
Зарегистрирован: 15. Января 2007
Re: excel to 1C
Ответ #10 - 20. Октября 2010 :: 06:22
Печать  
bla4o4ez писал(а) 30. Сентября 2010 :: 07:55:
День добрый. Пишу обработку первый раз. Загрузка документов поступление товаров  + поступление материалов. Excel файл. Был бы рад получить отрывок кода который опеределяет не нужные строки excel(пустые)
т.к документ(xls) выгружается из сторхауза 4 руками. Сотвественно обрубает не нужные. Те получить колво загружаемых документов. И еще нормально ли забирается значение(из екселя), если два столбика объединены и числовое(текстовое) значение имеют оба столбца. Спасибо заранее.


Загрузка Из Excel В Документ Через ADO
http://www.infostart.ru/public/60953/
(у данной обработки большой плюс то что вы не зависите от того установлен ли у Вас  Excel).
А так же по видимому быстрее.

Универсальная дозагрузка справочников из файлов Excel
http://www.infostart.ru/public/57641/

Успехов.
  
Наверх
 
IP записан
 
Переключение на Главную Страницу Страницы: 1
ОтправитьПечать