Вход | Регистрация


1С:Предприятие :: 1С:Предприятие 8 общая

Помогите пожалуйста в написании обработки!

Помогите пожалуйста в написании обработки!
Я
   ozric
 
22.10.16 - 17:20
Доброе время суток!
Подскажите как написать обработку - Прочитать файл Excel,выбрать только те строки,где есть количество,сумму ячеек количество разделить на 10,
и результат вывести в формате MXL.

Спасибо!
 
 
   Волшебник
 
Модератор
1 - 22.10.16 - 17:22
Размести на форме Поле табличного документа, скопируй туда файл Excel, затем в цикле
Количество = ТабДокумент.Область(НомерКолонки, НомерСтроки).Значение;
   ozric
 
2 - 22.10.16 - 17:29
Вот такая залдача:
// Выбрать файл Excel

// Создать таблицу значений (ТЗ) с колонками как в шапке табличного документа (как в макете)
// Перебирать строки из Excel

// Добавлять в ТЗ строки (не забыть КоличествоКонечныйОстаток разделить на 10) 
// Свернуть ТЗ по полям "КодАП,ПроизводительИмпортер    ПроизводительИмпортерИНН    ПроизводительИмпортерКПП","КоличествоКонечныйОстаток"

// Создать табличный документ (ТД) из макета
// Вывести шапку отчета

// Перебираем строки ТЗ и выводим в ТД
// Показываем ТД

Напишите пожалуйста полностью код!!!
   ozric
 
3 - 22.10.16 - 17:30
Или хотя-бы,что зачем и каким методом!
   Garykom
 
4 - 22.10.16 - 17:33
По шагам:
1. Накопить/украсть/заиметь $
2. Найти исполнителя тут или на 1слансер
3. Заказать обработку
4. Оплатить обработку
5. Получить обработку
   Маленький Мук
 
5 - 22.10.16 - 17:35
Дожили, уже студентам лабораторки делаем
   ozric
 
6 - 22.10.16 - 17:40
Уважаемые Гуру! Я только учусь,и понимаю Ваш сарказм!Вы сами когда-то начинали...

Если возможно,то хоть какие-нибудь подсказки!!!

Спасибо!
   Zamestas
 
7 - 22.10.16 - 17:44
(6) Вам, собственно, накуа это нужно?
   ozric
 
8 - 22.10.16 - 17:49
Дали Домашнее Задание на курсах,пока не получается!
   Zamestas
 
9 - 22.10.16 - 17:50
(8) Что именно не получается?
   ozric
 
10 - 22.10.16 - 17:57
Процедура КнопкаВыполнитьНажатие(Кнопка)
 ДиалогВыбораФайла = Новый ДиалогВыбораФайла(РежимДиалогаВыбораФайла.Открытие);
 
 ДиалогВыбораФайла.Заголовок = "Прочитать табличный документ из файла";
 ДиалогВыбораФайла.Фильтр    = "Табличный документ (Лист Excel (.xls)|*.xls|Текстовый документ (.txt)|*.txt|dBase III (*.dbf)|*.dbf|";
 Если ДиалогВыбораФайла.Выбрать() Тогда
    ТабличныйДокумент = Новый ТабличныйДокумент;
  ФайлНаДиске = Новый Файл(ДиалогВыбораФайла.ПолноеИмяФайла);
  Если нРег(ФайлНаДиске.Расширение) = ".mxl" Тогда
  //ТабличныйДокумент.Прочитать(ДиалогВыбораФайла.ПолноеИмяФайла);  

  ИначеЕсли нРег(ФайлНаДиске.Расширение) = ".xls" Тогда
   ФайлЗагрузки = ДиалогВыбораФайла.ПолноеИмяФайла;
    мПрочитатьТабличныйДокументИзExcel(ТабличныйДокумент,ДиалогВыбораФайла.ПолноеИмяФайла);
  ИначеЕсли нРег(ФайлНаДиске.Расширение) = ".txt" Тогда
  //мПрочитатьТабличныйДокументИзТекста(ТабличныйДокумент,ДиалогВыбораФайла.ПолноеИмяФайла);

  ИначеЕсли нРег(ФайлНаДиске.Расширение) = ".dbf" Тогда
  //мПрочитатьТабличныйДокументИзDBF(ТабличныйДокумент,ДиалогВыбораФайла.ПолноеИмяФайла);

  КонецЕсли;
  
КонецЕсли;
КонецПроцедуры

Функция мПрочитатьТабличныйДокументИзExcel(ТабличныйДокумент, ИмяФайла, НомерЛистаExcel = 1) Экспорт
    
    xlLastCell = 11;
    
    ВыбФайл = Новый Файл(ИмяФайла);
    Если НЕ ВыбФайл.Существует() Тогда
        Сообщить("Файл не существует!");
        Возврат Ложь;
    КонецЕсли;
    
    Попытка
        Excel = Новый COMОбъект("Excel.Application");
        Excel.WorkBooks.Open(ИмяФайла);
        Состояние("Обработка файла Microsoft Excel...");
        ExcelЛист = Excel.Sheets(НомерЛистаExcel);
    Исключение
        Сообщить("Ошибка. Возможно неверно указан номер листа книги Excel.");
        Возврат ложь;
        
    КонецПопытки;
    
    ТабличныйДокумент.Очистить();
    
    ActiveCell = Excel.ActiveCell.SpecialCells(xlLastCell);
    RowCount = ActiveCell.Row;
    ColumnCount = ActiveCell.Column;
    Для Column = 1 По ColumnCount Цикл
        ТабличныйДокумент.Область("C" + Формат(Column, "ЧГ=")).ШиринаКолонки = ExcelЛист.Columns(Column).ColumnWidth;
    КонецЦикла;
    Для Row = 1 По RowCount Цикл
        
        Для Column = 1 По ColumnCount Цикл
            ТабличныйДокумент.Область("R" + Формат(Row, "ЧГ=") +"C" + Формат(Column, "ЧГ=")).Текст = ExcelЛист.Cells(Row,Column).Text;
        КонецЦикла;
        
    КонецЦикла;
    
    Excel.WorkBooks.Close();
    Excel = 0;
    
    Возврат Истина;
    
КонецФункции// ()


Пока сделал до сюда,а как дальше? Надо ТЗ но только те сроки в которых есть количество,потом это сложить и сумма разделить на 10 и вывести в MXL
 
 Рекламное место пустует
   Zamestas
 
11 - 22.10.16 - 18:08
(10) Ну дык в чем проблема пройтись по xls файлу, посмотреть где лежат числа и собрать ТЗ по ходу дела?
   Рэйв
 
12 - 22.10.16 - 18:11
   ozric
 
13 - 22.10.16 - 18:25
Дык как пройтись? Научите!!!
   shuhard_серый
 
14 - 22.10.16 - 18:29
(13)  с какого бодуна нам тебя учить  ?
   Zamestas
 
15 - 22.10.16 - 18:31
(13) У тебя в коде 90% необходимого для перебора уже есть.
   ozric
 
16 - 22.10.16 - 18:31
Всё равно,спасибо!
   Маленький Мук
 
17 - 22.10.16 - 18:33
(14) сделай ты за него уроки, чем они тупее растут, тем сытнее и обеспеченнее твоя старость.
   Garykom
 
18 - 22.10.16 - 18:53
(17) а еще о своих детях думать приходится... они же тоже кушать хотят
   Garykom
 
19 - 22.10.16 - 18:54
(18) Это реально не юмор, дочка в 3-м классе и уже говорит про списывание и что с ней хотят сидеть на уроках ибо отличница.
   Tolia_2016
 
20 - 22.10.16 - 19:03
Была такая обработка - "Игры с  Excel".
(0) Погугли, там всё подробно разжевано и с комментариями.
   oslokot
 
21 - 22.10.16 - 19:08
Дети это будущее. Будущее, блеать, под угрозой.
   Tolia_2016
 
22 - 22.10.16 - 19:14
ExcelФайл = ExcelПриложение.WorkBooks.Open(ИмяФайла);
ExcelЛист = ExcelФайл.Sheets(1);
        xlCellTypeLastCell = 11;
        ExcelПоследняяСтрока = ExcelЛист.Cells.SpecialCells(xlCellTypeLastCell).Row;
        ExcelПоследняяКолонка = ExcelЛист.Cells.SpecialCells(xlCellTypeLastCell).Column;

Для  Сч=1 по ExcelПоследняяСтрока  Цикл
    Количество = ExcelЛист.Cells(Сч,2).Value;
Если ...
<тут пишешь чо надо>
КонецЕсли;
КонецЦикла;
   Tolia_2016
 
23 - 22.10.16 - 19:14
ExcelПриложение = Новый COMОбъект("Excel.Application");
   iceman2112
 
24 - 22.10.16 - 19:27
Вот так и плодим "кадры" 1с и имидж "1с программисты - не программисты"
   Cyberhawk
 
25 - 22.10.16 - 21:10
Если речь только об xlsx, то Я всегда за метод "Native XLSX", без всяких ком-объектов
   Tolia_2016
 
26 - 22.10.16 - 21:26
(24) Но но! Сразу в эцих что ли? Может он будущий гений! А вы чморите на корню.
Мелкософт за xlsx застрелить нужно! На кой ;%: спрашивается? Что изменилось для конечного пользователя кроме гемороя "А мне прислали файл, а он не открывается!"?
Приходится ипацца со всякими пакетами совместимости 03-07 и прочее уг.
   Tolia_2016
 
27 - 22.10.16 - 21:36
Есть под Андроид программка, не скажу какая ибо рекламу не приемлю ни в каких видах, для учета личных финансов в общем(не одинэсовское уг - поставил, проблевался, удалил).
Она умеет экспорт в xlsx. Ок! xlsx так xlsx!
Написал загрузку в 1ц:деньги из файлика этого, заранее! И обломался!
xlsx этот умеет открывать только бесплатный "офис" в маркете скачанный. На компе - нет! Неверный формат файла! Что только не делал - везде неверный формат файла!
Приходится конвертить на смартфоне в старый добрый xls и потом уже взлетает всё(загрузку переписывать пришлось).
   Garykom
 
28 - 22.10.16 - 21:42
(26)(27) А пробовал на низком уровне работать с office binary file format (xls) ?
Оно разрабатывалось в те года когда нужны была скорость и максимальное сжатие а не удобство для программистов и куча фич.

В результате переход был совершенно логичен.
   Garykom
 
29 - 22.10.16 - 21:44
(27) >xlsx этот умеет открывать только бесплатный "офис" в маркете скачанный. На компе - нет! Неверный формат файла!

Это говорит кое что плохое об авторе этой "под Андроид программка" а никак об формате xlsx...
Дятел даже приличный фреймворк не смог прикрутить типа Apache POI
   Mauser
 
30 - 22.10.16 - 21:47
(27) Вот так вот Майкрософт влияет на степень криворукости двух разработчиков - одного на Андроиде, второго на 1С. Доколе мегакорпорации будут диктовать нам как жить?
   Tolia_2016
 
31 - 22.10.16 - 21:52
(30) Не передергивай, Эпл вспомни.
Вот там действительно диктаторство как жить. Не понимаю "яблочников".
Вспоминается GIF-ка, два парня стоят перед эмблемой Эппл на стене и др..ат на неё. Не смог найти сейчас - яндекс порнуху выдает дибильную.
МОнтаж конечно, но ярко отражающий сущность яблодр..ров.
   Garykom
 
32 - 22.10.16 - 21:54
(31) А что тогда говорить про тех кто ипался с linux когда это еще не было мейнстримом?
   Tolia_2016
 
33 - 22.10.16 - 21:54
(32) А причем тут потребители? Я же про производителей!
 
 
   Mauser
 
34 - 22.10.16 - 21:55
(31) Причем тут Эппл? У тебя с ним тоже не получается?
   Tolia_2016
 
35 - 22.10.16 - 21:57
(34) Где у меня что не получается? Чего пристал то? Иди спать.
Я не люблю когда меня учат как жить. А некоторые жрут что дают и не давятся даже, под прикрытием прогресса.
А маркетологи хитро пожимают свои вонючие ручки.
   Cyberhawk
 
36 - 22.10.16 - 22:00
(35) "А некоторые жрут что дают и не давятся даже, под прикрытием прогресса" // По-твоему описанное в (27) лучше? :D
   Mauser
 
37 - 22.10.16 - 22:00
(35) Так что у тебя с Майкрософтом и xlsx - то? Что-то личное?
   Garykom
 
38 - 22.10.16 - 22:01
(33) Производители гениальны... недаром в США mp3 плееры все называют "айподами"
   DailyLookingOnASunse
 
39 - 22.10.16 - 22:04
У табличного документа есть метод Прочитать, который читает Excel. Доступно с версии 8.3.6.
   Tolia_2016
 
40 - 22.10.16 - 22:05
(37) У меня ничего личного. Так или иначе я решил проблему несовместимости. У юзеров проблемы, а расхлебывать - мне.
   DailyLookingOnASunse
 
41 - 22.10.16 - 22:05
В файловой версии точно читает
   Garykom
 
42 - 22.10.16 - 22:05
(39) кста когда уже можно будет по листам отдельным читать то?
   DailyLookingOnASunse
 
43 - 22.10.16 - 22:14
(42)
Ado, Adox
   Garykom
 
44 - 22.10.16 - 22:16
(43) нафига если умею более удобными и кроссплатформенными способами?

просто хочется то нативно из платформы...
   Tolia_2016
 
45 - 22.10.16 - 22:20
(44) В 8.3 вам нативно. Программное создание реквизитов даже, ожидаем полиморфизм!
А всё ради чего? Ради опер/бух/кадрового учета!
Или Квэйк будем соображать на платформе 1с?
   Garykom
 
46 - 22.10.16 - 22:33
(45) Люблю зеленых которые даже читать не умеют ))


Список тем форума
Рекламное место пустует  Рекламное место пустует
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.
Тема не обновлялась длительное время, и была помечена как архивная. Добавление сообщений невозможно.
Но вы можете создать новую ветку и вам обязательно ответят!
Каждый час на Волшебном форуме бывает более 2000 человек.
Рекламное место пустует