|
Помогите пожалуйста в написании обработки! | ☑ | ||
---|---|---|---|---|
0
ozric
22.10.16
✎
17:20
|
Доброе время суток!
Подскажите как написать обработку - Прочитать файл Excel,выбрать только те строки,где есть количество,сумму ячеек количество разделить на 10, и результат вывести в формате MXL. Спасибо! |
|||
1
Волшебник
модератор
22.10.16
✎
17:22
|
Размести на форме Поле табличного документа, скопируй туда файл Excel, затем в цикле
Количество = ТабДокумент.Область(НомерКолонки, НомерСтроки).Значение; |
|||
2
ozric
22.10.16
✎
17:29
|
Вот такая залдача:
// Выбрать файл Excel // Создать таблицу значений (ТЗ) с колонками как в шапке табличного документа (как в макете) // Перебирать строки из Excel // Добавлять в ТЗ строки (не забыть КоличествоКонечныйОстаток разделить на 10) // Свернуть ТЗ по полям "КодАП,ПроизводительИмпортер ПроизводительИмпортерИНН ПроизводительИмпортерКПП","КоличествоКонечныйОстаток" // Создать табличный документ (ТД) из макета // Вывести шапку отчета // Перебираем строки ТЗ и выводим в ТД // Показываем ТД Напишите пожалуйста полностью код!!! |
|||
3
ozric
22.10.16
✎
17:30
|
Или хотя-бы,что зачем и каким методом!
|
|||
4
Garykom
гуру
22.10.16
✎
17:33
|
По шагам:
1. Накопить/украсть/заиметь $ 2. Найти исполнителя тут или на 1слансер 3. Заказать обработку 4. Оплатить обработку 5. Получить обработку |
|||
5
Маленький Мук
22.10.16
✎
17:35
|
Дожили, уже студентам лабораторки делаем
|
|||
6
ozric
22.10.16
✎
17:40
|
Уважаемые Гуру! Я только учусь,и понимаю Ваш сарказм!Вы сами когда-то начинали...
Если возможно,то хоть какие-нибудь подсказки!!! Спасибо! |
|||
7
Zamestas
22.10.16
✎
17:44
|
(6) Вам, собственно, накуа это нужно?
|
|||
8
ozric
22.10.16
✎
17:49
|
Дали Домашнее Задание на курсах,пока не получается!
|
|||
9
Zamestas
22.10.16
✎
17:50
|
(8) Что именно не получается?
|
|||
10
ozric
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 |
|||
11
Zamestas
22.10.16
✎
18:08
|
(10) Ну дык в чем проблема пройтись по xls файлу, посмотреть где лежат числа и собрать ТЗ по ходу дела?
|
|||
12
Рэйв
22.10.16
✎
18:11
|
||||
13
ozric
22.10.16
✎
18:25
|
Дык как пройтись? Научите!!!
|
|||
14
shuhard_серый
22.10.16
✎
18:29
|
(13) с какого бодуна нам тебя учить ?
|
|||
15
Zamestas
22.10.16
✎
18:31
|
(13) У тебя в коде 90% необходимого для перебора уже есть.
|
|||
16
ozric
22.10.16
✎
18:31
|
Всё равно,спасибо!
|
|||
17
Маленький Мук
22.10.16
✎
18:33
|
(14) сделай ты за него уроки, чем они тупее растут, тем сытнее и обеспеченнее твоя старость.
|
|||
18
Garykom
гуру
22.10.16
✎
18:53
|
(17) а еще о своих детях думать приходится... они же тоже кушать хотят
|
|||
19
Garykom
гуру
22.10.16
✎
18:54
|
(18) Это реально не юмор, дочка в 3-м классе и уже говорит про списывание и что с ней хотят сидеть на уроках ибо отличница.
|
|||
20
Tolia_2016
22.10.16
✎
19:03
|
Была такая обработка - "Игры с Excel".
(0) Погугли, там всё подробно разжевано и с комментариями. |
|||
21
oslokot
22.10.16
✎
19:08
|
Дети это будущее. Будущее, блеать, под угрозой.
|
|||
22
Tolia_2016
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; Если ... <тут пишешь чо надо> КонецЕсли; КонецЦикла; |
|||
23
Tolia_2016
22.10.16
✎
19:14
|
ExcelПриложение = Новый COMОбъект("Excel.Application");
|
|||
24
iceman2112
22.10.16
✎
19:27
|
Вот так и плодим "кадры" 1с и имидж "1с программисты - не программисты"
|
|||
25
Cyberhawk
22.10.16
✎
21:10
|
Если речь только об xlsx, то Я всегда за метод "Native XLSX", без всяких ком-объектов
|
|||
26
Tolia_2016
22.10.16
✎
21:26
|
(24) Но но! Сразу в эцих что ли? Может он будущий гений! А вы чморите на корню.
Мелкософт за xlsx застрелить нужно! На кой ;%: спрашивается? Что изменилось для конечного пользователя кроме гемороя "А мне прислали файл, а он не открывается!"? Приходится ипацца со всякими пакетами совместимости 03-07 и прочее уг. |
|||
27
Tolia_2016
22.10.16
✎
21:36
|
Есть под Андроид программка, не скажу какая ибо рекламу не приемлю ни в каких видах, для учета личных финансов в общем(не одинэсовское уг - поставил, проблевался, удалил).
Она умеет экспорт в xlsx. Ок! xlsx так xlsx! Написал загрузку в 1ц:деньги из файлика этого, заранее! И обломался! xlsx этот умеет открывать только бесплатный "офис" в маркете скачанный. На компе - нет! Неверный формат файла! Что только не делал - везде неверный формат файла! Приходится конвертить на смартфоне в старый добрый xls и потом уже взлетает всё(загрузку переписывать пришлось). |
|||
28
Garykom
гуру
22.10.16
✎
21:42
|
(26)(27) А пробовал на низком уровне работать с office binary file format (xls) ?
Оно разрабатывалось в те года когда нужны была скорость и максимальное сжатие а не удобство для программистов и куча фич. В результате переход был совершенно логичен. |
|||
29
Garykom
гуру
22.10.16
✎
21:44
|
(27) >xlsx этот умеет открывать только бесплатный "офис" в маркете скачанный. На компе - нет! Неверный формат файла!
Это говорит кое что плохое об авторе этой "под Андроид программка" а никак об формате xlsx... Дятел даже приличный фреймворк не смог прикрутить типа Apache POI |
|||
30
Mauser
22.10.16
✎
21:47
|
(27) Вот так вот Майкрософт влияет на степень криворукости двух разработчиков - одного на Андроиде, второго на 1С. Доколе мегакорпорации будут диктовать нам как жить?
|
|||
31
Tolia_2016
22.10.16
✎
21:52
|
(30) Не передергивай, Эпл вспомни.
Вот там действительно диктаторство как жить. Не понимаю "яблочников". Вспоминается GIF-ка, два парня стоят перед эмблемой Эппл на стене и др..ат на неё. Не смог найти сейчас - яндекс порнуху выдает дибильную. МОнтаж конечно, но ярко отражающий сущность яблодр..ров. |
|||
32
Garykom
гуру
22.10.16
✎
21:54
|
(31) А что тогда говорить про тех кто ипался с linux когда это еще не было мейнстримом?
|
|||
33
Tolia_2016
22.10.16
✎
21:54
|
(32) А причем тут потребители? Я же про производителей!
|
|||
34
Mauser
22.10.16
✎
21:55
|
(31) Причем тут Эппл? У тебя с ним тоже не получается?
|
|||
35
Tolia_2016
22.10.16
✎
21:57
|
(34) Где у меня что не получается? Чего пристал то? Иди спать.
Я не люблю когда меня учат как жить. А некоторые жрут что дают и не давятся даже, под прикрытием прогресса. А маркетологи хитро пожимают свои вонючие ручки. |
|||
36
Cyberhawk
22.10.16
✎
22:00
|
(35) "А некоторые жрут что дают и не давятся даже, под прикрытием прогресса" // По-твоему описанное в (27) лучше? :D
|
|||
37
Mauser
22.10.16
✎
22:00
|
(35) Так что у тебя с Майкрософтом и xlsx - то? Что-то личное?
|
|||
38
Garykom
гуру
22.10.16
✎
22:01
|
(33) Производители гениальны... недаром в США mp3 плееры все называют "айподами"
|
|||
39
DailyLookingOnA Sunse
22.10.16
✎
22:04
|
У табличного документа есть метод Прочитать, который читает Excel. Доступно с версии 8.3.6.
|
|||
40
Tolia_2016
22.10.16
✎
22:05
|
(37) У меня ничего личного. Так или иначе я решил проблему несовместимости. У юзеров проблемы, а расхлебывать - мне.
|
|||
41
DailyLookingOnA Sunse
22.10.16
✎
22:05
|
В файловой версии точно читает
|
|||
42
Garykom
гуру
22.10.16
✎
22:05
|
(39) кста когда уже можно будет по листам отдельным читать то?
|
|||
43
DailyLookingOnA Sunse
22.10.16
✎
22:14
|
(42)
Ado, Adox |
|||
44
Garykom
гуру
22.10.16
✎
22:16
|
(43) нафига если умею более удобными и кроссплатформенными способами?
просто хочется то нативно из платформы... |
|||
45
Tolia_2016
22.10.16
✎
22:20
|
(44) В 8.3 вам нативно. Программное создание реквизитов даже, ожидаем полиморфизм!
А всё ради чего? Ради опер/бух/кадрового учета! Или Квэйк будем соображать на платформе 1с? |
|||
46
Garykom
гуру
22.10.16
✎
22:33
|
(45) Люблю зеленых которые даже читать не умеют ))
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |