Native ВК для 1CV8: независимое чтение файлов *.xls и *.xlsx

05.10.13

Разработка - Инструментарий разработчика

Не требует установленного в системе Microsoft Office (Excel) и Open Office.
Технология Native, не требует регистрации в реестре

Скачать файлы

Наименование Файл Версия Размер
Версия 1.0.0.11
.zip 397,50Kb
421
.zip 397,50Kb 421 Скачать бесплатно

ВК предназначена для считывания значений ячеек файлов *.xls и *.xlsx.
Не требует установленного в системе Microsoft Office (Excel) и Open Office.

Технология Native, не требует регистрации в реестре.


Подключение ВК:


ПодключитьВнешнююКомпоненту(ПолноеИмяФайлаВК,"ExcelNative",AddInType.Native);
//-- создание экземпляра класса--
XLS =Новый("AddIn.ExcelNative.V8Excel"); // слева - любая переменная
Вызов методов ВК: ваш экземпяр (например,XLS ) - точка - имя метода (параметры)

Методы ВК:

ОткрытьФайл(ПолноеИмяФайлаXLS{XLSX})
Возвращает количество Листов

КоличествоСтрок(НомерЛиста)
НомерЛиста - номер листа предварительно открытого файла, отсчет с единицы (по умолчанию =1)
Возвращает количество строк выбранного листа

КоличествоКолонок(НомерЛиста)
НомерЛиста - номер листа предварительно открытого файла, отсчет с единицы
(по умолчанию =1)
Возвращает количество колонок выбранного листа

ЗначениеЯчейки(НомерЛиста,НомерСтроки,НомерКолонки,ОпределятьДату)
Отсчет всех значений НомерЛиста,НомерСтроки,НомерКолонки с единицы
ОпределятьДату- булево, имеет смысл только для файлов *.xlsx, по умолчанию ЛОЖЬ
Если ИСТИНА и число в ячейке соответствует ТекущаяДата плюс-минус 2 года, будет возвращено
строковое представление даты
Возвращает значение выбранной ячейки

ЧислоВДату(Число)
Возвращает строковое представление даты по числу

Например, ЧислоВДату(41501)="15.08.2013"

РелевантностьСтрок(Строка1,Строка2,КтоЭталон)
Строка1, Строка2 - строки для сравнения
КтоЭталон - булево, если ИСТИНА, то эталон Строка1, иначе эталон Строка2
По умолчанию = ИСТИНА
Возвращает численное значение релевантности (схожести) строк.
100 - полностью тождественны
Может пригодиться при загрузке прайсов, например: релевантность строк "Майка мужская" и "Мужская майка" равна 88, что дает возможность сопоставить номенклатуру в справочнике и прайсе с достаточной достоверностью.

Тестировалась на:

Windows Server 2008 R2 Standard х 64
Windows 7 Professional Service Pack 1 х 32
Windows 7 Ultimate х 32
Windows ХР

Архив содержит саму ВК и файл описания

Версия 1.0.0.4

Добавлены проверки на правильность параметров НомерЛиста, НомерСтроки, НомерКолонки

По просьбе StepByStep добавлено получение номера (индекса) листа по его имени, метод ИндексЛистаПоИмени

Нюансы: для файлов XLS русские названия листов определяет только в том случае, если в них нет пробелов.

Версия 1.0.0.7

Подправлено по замечанию из комментария 109

См. также

SALE! 20%

Infostart Toolkit: Инструменты разработчика 1С 8.3 на управляемых формах

Инструментарий разработчика Роли и права Запросы СКД Платформа 1С v8.3 Управляемые формы Запросы Система компоновки данных Конфигурации 1cv8 Платные (руб)

Набор инструментов программиста и специалиста 1С для всех конфигураций на управляемых формах. В состав входят инструменты: Консоль запросов, Консоль СКД, Консоль кода, Редактор объекта, Анализ прав доступа, Метаданные, Поиск ссылок, Сравнение объектов, Все функции, Подписки на события и др. Редактор запросов и кода с раскраской и контекстной подсказкой. Доработанный конструктор запросов тонкого клиента. Продукт хорошо оптимизирован и обладает самым широким функционалом среди всех инструментов, представленных на рынке.

13000 10400 руб.

02.09.2020    122115    670    389    

714

SALE! 25%

Infostart PrintWizard

Пакетная печать Печатные формы Инструментарий разработчика Платформа 1С v8.3 Запросы 1С:Зарплата и кадры бюджетного учреждения 1С:Конвертация данных 1С:ERP Управление предприятием 2 1С:Управление торговлей 11 Платные (руб)

Инструмент, позволяющий абсолютно по-новому взглянуть на процесс разработки печатных форм. Благодаря конструктору можно значительно снизить затраты времени на разработку печатных форм, повысить качество и "прозрачность" разработки, а также навести порядок в многообразии корпоративных печатных форм.

18000 15300 руб.

06.10.2023    7287    21    6    

39

SALE! 20%

Infostart УДиФ: Управление данными и формами

Инструменты администратора БД Инструментарий разработчика Роли и права Платформа 1С v8.3 Конфигурации 1cv8 Россия Платные (руб)

Расширение позволяет без изменения кода конфигурации выполнять проверки при вводе данных, скрывать от пользователя недоступные ему данные, выполнять код в обработчиках. Не изменяет данные конфигурации, легко устанавливается практически на любую конфигурацию на управляемых формах.

10000 8000 руб.

10.11.2023    3524    11    1    

34

SALE! 30%

PowerTools

Инструментарий разработчика Инструменты администратора БД Платформа 1С v8.3 Управляемые формы Конфигурации 1cv8 Россия Платные (руб)

Универсальный инструмент программиста для администрирования конфигураций. Сборник наиболее часто используемых обработок под единым интерфейсом.

3600 2520 руб.

14.01.2013    177737    1073    0    

849

Многопоточность. Универсальный «Менеджер потоков» 2.1

Инструментарий разработчика Платформа 1С v8.3 Конфигурации 1cv8 Россия Платные (руб)

Восстановление партий или взаиморасчетов, расчет зарплаты, пакетное формирование документов или отчетов - теперь все это стало доступнее. * Есть желание повысить скорость работы медленных алгоритмов! Но... * Нет времени думать о реализации многопоточности? * о запуске и остановке потоков? * о поддержании потоков в рабочем состоянии? * о передаче данных в потоки и как получить ответ из потока? * об организации последовательности? Тогда ЭТО - то что надо!!!

5000 руб.

07.02.2018    99344    239    97    

296

[ЕХТ] Фреймворк для Расширений 1С

Инструментарий разработчика Платформа 1С v8.3 Управляемые формы Платные (руб)

"Фреймворк для Расширений 1С" это универсальное и многофункциональное решение, упрощающее разработку и поддержку создаваемых Расширений. Поставляется в виде комплекта из нескольких Расширений с открытым исходным кодом. Работает в любых Конфигурациях в режиме Управляемого приложения с режимом совместимости 8.3.12 и выше без необходимости внесения изменений в Конфигурацию.

3000 руб.

27.08.2019    18108    6    8    

39

1С HTML Шаблоны / HTML Templates

Инструментарий разработчика Платформа 1С v8.3 Конфигурации 1cv8 Платные (руб)

Быстрая и удобная обработка для работы с шаблонами HTML. Позволяет легко и быстро формировать код HTML.

2040 руб.

27.12.2017    28107    3    10    

15

Выполнение произвольного кода или запроса с параметрами через Web-сервис (замена COM-подключений)

Инструментарий разработчика Обмен между базами 1C Платформа 1С v8.3 Платные (руб)

В процессе работы в 1С часто возникает потребность получить данные из другой базы.  Обычно это делается через COM-соединение, и время выполнения запроса при этом оставляет желать лучшего. В данной публикации представлено универсальное решение, позволяющее практически моментально выполнить произвольный код или запрос с параметрами в другой информационной базе через Web-сервис.

2400 руб.

24.09.2019    23601    15    15    

32
Комментарии
В избранное Подписаться на ответы Сортировка: Древо развёрнутое
Свернуть все
1. Abadonna 3958 15.08.13 08:49 Сейчас в теме
ВК предназначена для считывания значений ячеек файлов *.xls и *.xlsx
Не требует установленного в системе Microsoft Office (Excel)
Технология Native, не требует регистрации в реестре
Подключение ВК:
ПодключитьВнешнююКомпоненту(ПолноеИмяФайлаВК,"ExcelNative",AddInType.Native);
//-- создание экземпляра класса--
XLS =Новый("AddIn.ExcelNative.V8Excel"); // слева - любая переменная
Вызов методов ВК: ваш экземпяр (например,XLS ) - точка - имя метода (параметры)

Методы ВК:

ОткрытьФайл(ПолноеИмяФайлаXLS{XLSX})
Возвращает количество Листов

КоличествоСтрок(НомерЛиста)
НомерЛиста - номер листа предварительно открытого файла, отсчет с единицы
(по умолчанию =1)
Возвращает количество строк выбранного листа

КоличествоКолонок(НомерЛиста)
НомерЛиста - номер листа предварительно открытого файла, отсчет с единицы
(по умолчанию =1)
Возвращает количество колонок выбранного листа

ЗначениеЯчейки(НомерЛиста,НомерСтроки,НомерКолонки,ОпределятьДату)
Отсчет всех значений НомерЛиста,НомерСтроки,НомерКолонки с единицы
ОпределятьДату- булево, имеет смысл только для файлов *.xlsx, по умолчанию ЛОЖЬ
Если ИСТИНА и число в ячейке соотвествует ТекущаяДата плюс-минус 2 года, будет возвращено
строковое представление даты
Возвращает значение выбранной ячейки

ЧислоВДату(Число)
Возвращает строковое представление даты по числу

РелевантностьСтрок(Строка1,Строрка2,КтоЭталон)
Строка1, Строкак2 - строки для сравнения
КтоЭталон - булево, если ИСТИНА, то эталон Строка1, иначе эталон Строка2
По умолчанию = ИСТИНА
Возвращает численное значение релевантности (схожести) строк.
100 - полностью тождественны
Может пригодиться при загрузке прайсов, например:
релевантность строк "Майка мужская" и "Мужская майка" равна 88, что дает
возможность сопоставить номенклатуру в справочнике и прайсе с достаточной достоверностью

Пример:
КаталогИБ = СтрокаСоединенияИнформационнойБазы();
КаталогИБ = Сред(КаталогИБ,7,СтрДлина(КаталогИБ)-8) + "";
ПутьDll=КаталогИБ+"ExcelNative.dll";
ПодключитьВнешнююКомпоненту(ПутьDLL,"ExcelNative",AddInType.Native);
//-- создание экземпляра класса--
XLS =Новый("AddIn.ExcelNative.V8Excel");
Листов=XLS.ОткрытьФайл("d:\ТестовыйXLXS1.xlsx");
Строк=XLS.КоличествоСтрок(1);
Колонок=XLS.КоличествоКолонок(1);
Сообщить("Листов "+Листов);
Сообщить("Строк "+Строк);
Сообщить("Колонок "+Колонок);
Я11=XLS.ЗначениеЯчейки(1,1,1);
Я12=XLS.ЗначениеЯчейки(1,1,2);
Я14=XLS.ЗначениеЯчейки(1,1,4,Истина);
Сообщить("Я11 "+Я11);
Сообщить("Я12 "+Я12);
Сообщить("Я14 "+Я14);
Рел=XLS.РелевантностьСтрок("Майка мужская","Мужская майка");
Сообщить("Релевантность "+Рел);


Обработка

Процедура КнопкаВыполнитьНажатие(Кнопка)
ИмяФайла=ОбщСМ.КаталогИБ()+"Тест.xls";
// ИмяФайла=ОбщСМ.КаталогИБ()+"Тест.xlsx";
Листов=XLS.ОткрытьФайл(ИмяФайла);
Строк=XLS.КоличествоСтрок(1);
Колонок=XLS.КоличествоКолонок(1);
Сообщить("Размер матрицы: "+Строк+" х "+Колонок);
Сообщить("Старт: "+ТекущаяДата());
ТЗВ=Новый ТаблицаЗначений;
Для
А=1 По Колонок Цикл
ТЗВ.Колонки.Добавить();
КонецЦикла;
Для
Стр=1 По Строк Цикл
СтрТЗ=ТЗВ.Добавить();
Для
Кол=1 По Колонок Цикл
ЗначениеЯчейки=XLS.ЗначениеЯчейки(1,Стр,Кол,Истина);
Если
Кол=3 Тогда
ЗначениеЯчейки=XLS.ЧислоВДату(ЗначениеЯчейки);
КонецЕсли;

ТЗВ[Стр-1][Кол-1]=ЗначениеЯчейки;
КонецЦикла;
КонецЦикла;
ТЗ=ТЗВ;
ЭлементыФормы.ТЗ.СоздатьКолонки();
Сообщить("Финиш: "+ТекущаяДата());
КонецПроцедуры
134. free-lancer-2018 174 03.12.13 13:12 Сейчас в теме
У компоненты проблемы с чтением файлов, содержащих свыше 100 тыс. строк.
Смотрел на файле, в котором 111 тыс. строк.

КолЛистов = Excell.ОткрытьФайл(ВремПутьФайлаЭкселя); -- выдает "0"

КолКолонок = Excell.КоличествоКолонок(1); - после этого окно приложения валится с ошибкой


135. Abadonna 3958 03.12.13 18:41 Сейчас в теме
(134) adminfo2002, я вообще-то и не рассчитывал, и не тестировал для строк больше 65 000.
xls точно не сожрет больше (там ограничение используемой компоненты Дельфи), про xlsx - просто ничего сказать не могу. Мне, в моей практике, вообще никогда не встречались больше эдак строк 20 000...
136. free-lancer-2018 174 07.12.13 11:40 Сейчас в теме
(135) через ComSafeArray 1c читает такие файлы экселя без проблем.
137. Abadonna 3958 07.12.13 12:59 Сейчас в теме
(136) adminfo2002, поясню свою позицию. Свои ВК я пишу для себя. Меня вполне устраивает чтение файлов в размере около 10 тыс. строчек. Нет у меня клиентов, которые грузят прайсы по 1 млн. строк.
Они их вообще, как правило, не грузят, т.к. это оптовики или производственники. А кто и что там грузит/не грузит - мне, по большому счету, безразлично. Возникнет у меня необходимость грузить 500 тыс. строк - буду решать проблему, не возникнет - пальцем не шевельну ;)
144. Abadonna 3958 29.01.14 21:34 Сейчас в теме
Буквально на днях по просьбе ГБ грузил ТЧ документов (уж не знаю для какой цели) как раз их xlsx
Процедура КнопкаВыполнитьНажатие(Кнопка)
	Если Товары.Количество()=0 Тогда
		Стр="Таблица товаров пуста!";
		Предупреждение(Стр,10);
		Возврат;
	КонецЕсли;
	
	Док=Документы.ПоступлениеТоваровУслуг.СоздатьДокумент();
	Док.Контрагент=Поставщик;
	Док.ВалютаДокумента=Справочники.Валюты.НайтиПоКоду("643");
	Док.Дата =НаДату;
	Док.Грузополучатель=Покупатель;
	Док.Организация=Покупатель;
	Док.ВидПоступления=Перечисления.ВидыПоступленияТоваров.НаСклад;
	Док.СкладОрдер=Склад;
	Док.КратностьВзаиморасчетов=1;
	Док.КурсВзаиморасчетов=1;
	Док.СуммаВключаетНДС=Истина;
	Док.ОтражатьВБухгалтерскомУчете=Истина;
	Док.ОтражатьВУправленческомУчете=Истина;
	Для Каждого Стр ИЗ ЭтаФорма.Товары Цикл
	СтрДок=Док.Товары.Добавить();
	СтрДок.Номенклатура=Стр.Номенклатура;
	СтрДок.ЕдиницаИзмерения=Стр.Номенклатура.ЕдиницаХраненияОстатков;
	СтрДок.Количество=Стр.Количество;
	СтрДок.Коэффициент=1;
	СтрДок.Цена=Стр.Цена;
	СтрДок.СтавкаНДС=Перечисления.СтавкиНДС.НДС18;
	СтрДок.Сумма=Стр.Сумма;		
КонецЦикла;
    Док.Комментарий="# Импорт из XLXS 18 янв";
   Док.Записать(РежимЗаписиДокумента.Запись);
	
КонецПроцедуры

Процедура ОсновныеДействияФормыОткрытьФайл(Кнопка)
	Режим = РежимДиалогаВыбораФайла.Открытие;
	ДиалогОткрытияФайла = Новый ДиалогВыбораФайла(Режим);
	Текст = "ru = ""xlsx""; en = ""xlsx""";
	Фильтр = НСтр(Текст)+"(*.xlsx)|*.xlsx";
	ДиалогОткрытияФайла.Фильтр = Фильтр;
	ДиалогОткрытияФайла.МножественныйВыбор = Ложь;
	ДиалогОткрытияФайла.Заголовок = "Выбор файла";
	Если НЕ ДиалогОткрытияФайла.Выбрать() Тогда
		Возврат;
	КонецЕсли;
	ПолноеИмяФайла=ДиалогОткрытияФайла.ПолноеИмяФайла;
//	ПолноеИмяФайла="e:\Data\бухгалтерия\инстр декабрь.xlsx";
	XLS.ОткрытьФайл(ПолноеИмяФайла);
	КоличествоСтрок=XLS.КоличествоСтрок(1);
    КоличествоКолонок=XLS.КоличествоКолонок(1);
	Для С=1 По КоличествоСтрок Цикл
		

		    Наименование=XLS.ЗначениеЯчейки(1,С,1);
			Если СокрЛП(Наименование)<>"" Тогда
				Стр=Товары.Добавить();
				
			 ССылка=Справочники.Номенклатура.НайтиПоНаименованию(Наименование);
			Стр.Номенклатура=ССылка; 
			Стр.Наименование=XLS.ЗначениеЯчейки(1,С,1);
			Стр.Количество=XLS.ЗначениеЯчейки(1,С,2);
			Стр.Цена=XLS.ЗначениеЯчейки(1,С,3);
            Стр.Сумма=XLS.ЗначениеЯчейки(1,С,4);
            КонецЕсли;
       
	КонецЦикла;
	ЭлементыФормы.Товары.СоздатьКолонки();
	Сообщить("Всего строк: "+Товары.Количество(),СтатусСообщения.Информация);
	// Вставить содержимое обработчика.
КонецПроцедуры

Процедура ПриОткрытии()
	XLS=Неопределено;
	ИмяФайлВК="d:\1CBases\Db.pss\ExcelNative.dll";
	      ПодключитьВнешнююКомпоненту(ИмяФайлВК,"ExcelNative",AddInType.Native);
	XLS =Новый("AddIn.ExcelNative.V8Excel");
   // Возврат Истина;
КонецПроцедуры
Показать


УТ, толстый, сервер терминалов. Строк, правда, было, около 180, но без проблем. Парочка документов.
___________________________________
P.S. Сам вначале забыл первым параметром поставить номер Листа=1 и поимел висняк. Я очень редко подобными вещами занимаюсь, но пока всё работало безотказно.
145. TbSasha 06.02.14 18:44 Сейчас в теме
(144) Можно поподробнее о первым параметром поставить номер Листа=1 и поимел висняк. ? Пробовали открывать мою обработку она у вас на xlsx виснет? У меня она на xlsx виснет, а на .xls нет.
153. koreav 53 25.04.14 15:01 Сейчас в теме
Спасибо, нужная обработка.

Только один момент все убивает:
почему-то, получаемые значения, где это возможно, компонента приводит к числу, т.е. выделенное желтым значение на скрине будет получено в виде числа без лидирующих нулей.

Хотя если получать значение через OLE (например, ExcelPage.Cells(3,5).Value), то все ок, и нули на месте.
Можно это починить?


+пара багов
1) если получать значение таким образом: xls.ЗначениеЯчейки(1,2,ТекКолонка.Значение),
где, ТекКолонка тип КлючИЗначение, и ТекКолонка.Значение = 3 (Число)
то вываливается ошибка {(1)}: Поле объекта недоступно для записи (Значение)

2) если попытаться прочитать пустую ячейку (т.е. номер строки(наверное и колонки) которой > чем есть в файле), то возвращается значение последней успешно считанной ячейки, вместо пустого или вызова исключения
Прикрепленные файлы:
2. StepByStep 3667 15.08.13 10:40 Сейчас в теме
Для наглядности было бы хорошо оперировать не номерами листов, а их именами.
3. Abadonna 3958 15.08.13 10:48 Сейчас в теме
(2) StepByStep, если файл вообще нигде не просматривать (не на чем), номера удобнее.
И возни мне с именами больше, пока даже не знаю как...
К тому же в 99% случаев имена такие: Лист1, Лист2, Лист3
4. StepByStep 3667 15.08.13 10:56 Сейчас в теме
(3)

Практика у всех разная.
Моя практика такова: получаемые файлы - просматриваются.

Пользователь получает по почте файл.
Сохраняет на сетевом ресурсе.
На своем ПК открывает, просматривает его на предмет соответствия присланным документам.
И только после этого производится загрузка.
5. StepByStep 3667 15.08.13 10:57 Сейчас в теме
(3)
Да, в большинстве случаев именно такие имена, а то и вовсе только Лист1.
6. Abadonna 3958 15.08.13 11:07 Сейчас в теме
Eugeneer даже не качая минус поставил. Как же - в его прайсовую вотчину вторгнулись :)))
7. пользователь 15.08.13 11:09
Сообщение было скрыто модератором.
...
8. Abadonna 3958 15.08.13 11:13 Сейчас в теме
(7) Eugeneer, а с чего ты взял, что не будет работать в 95 формате эксель?
Насчет массивов, картинку смотрел? Матрица 5000 строк х 9 столбцов за 3 секунды
Соответственно, 50000 тыс строк - 30 секунд. У тебя быстрее через буффер заполнится?
9. пользователь 15.08.13 11:14
Сообщение было скрыто модератором.
...
10. Abadonna 3958 15.08.13 11:17 Сейчас в теме
(9) Eugeneer,
у меня компонента ВК.

И ты её всем подарил? ;) Сомневаюсь, равно как сомневаюсь, что это тобой писанная ВК.
11. пользователь 15.08.13 11:19
Сообщение было скрыто модератором.
...
35. ltfriend 954 15.08.13 14:09 Сейчас в теме
(11) Eugeneer
По поводу атеизма обсуждать не будем

может все таки имелось в виду альтруизм?

В отличие от меня тупого 1Сника, он специалист программирующий на высокоуровневых языках

Вообще то, язык программирования 1С тоже является высокоуровневым.
36. пользователь 15.08.13 14:10
Сообщение было скрыто модератором.
...
12. MarSeN 984 15.08.13 11:20 Сейчас в теме
(7) Eugeneer,
просто надоело что каждый день кому то неймется.

Именно так и рождаются лучшие решения. Это называется конкуренцией
GreenDragon; BigB; arteast; nnn; marsohod; EdmundoAlvares; ivanov660; andrewks; TSSV; pt_olga; +10 Ответить
13. пользователь 15.08.13 11:23
Сообщение было скрыто модератором.
...
21. Aleksey81 1177 15.08.13 11:48 Сейчас в теме
(13) Eugeneer, Судя по вашим публикациям и постоянным покупкам $m (похоже на рекламу) - вы действительно профессиональный разработчик (а скорее даже - команда разработчиков). Ваше мнение должно быть услышано, даже если это мнение - жесткая критика. Мне кажется, что выбран НЕ корректный тон. Видимо вас задел тот факт что бесплатно выкладываются "относительно сырые" разработки, конкурирующие с вашим продуктом.
Давайте с уважением относиться к работе друг друга. Да, работы можно минусовать, если вы считаете это заслуженным. Но при этом можно ведь и помочь разработчику делать качественный продукт. Ведь от доверия к Инфостарту в целом зависит и наша с вами выгода!
Я сам недавно начал выкладывать разработки. И пока только пытаюсь понять, что востребовано, а что нет. Если у вас есть опыт, которым вы готовы поделиться - you are welcome! Но огульно очернять разработки - бросает тень и на вас тоже...
Исключение; TbSasha; mkostya; vlad.frost; dddxddd; andy23; EdmundoAlvares; ivanov660; 1cmax; MarSeN; pt_olga; +11 Ответить
23. Abadonna 3958 15.08.13 12:00 Сейчас в теме
(21) Aleksey81, мы нашли с ним консенсус, так что все ОК ;)
31. MarSeN 984 15.08.13 14:02 Сейчас в теме
(13) Eugeneer,
Когда появляются поддельники, то мы не стоим на месте а делаем два шага вперед.

О чем я и говорю. Конкуренция. Только у тебя работа на опережение.
Хочешь потягаться - попробуй. На интузиазме долго не протянешь.

Я не люблю делать работу на спор. Да и повторяться в решениях не люблю. Практически все мои решения и пуликации на инфостарте не имеют аналогов.
Много чего я делал, но не выкладываю по соображениям этики, так как делал для компаний в которых работал. До сих пор эти решения являются конкурентным преимуществом конфигураций при при продажах.
Как пример - Динамические бизнес процессы, это что-то подобное тому что опубликовано на инфостарте под названием "простые процессы" но - настраиваются без куч закладок а в панели сбоку карты, имеют неограниченое количество вложенных бизнес-процессов, настраиваемые легенды для каждого элемента, возмодность сохранять и проверять значения в любом уровне вложенности, изменения статусов основных объектов при прохождении точек маршрута, автоматического создания и заполнения объектов (докментов, отчетов/ обработок) на основании предыдущих или сохраненных точек маршрута. Много чего.
Но я посему-то не валю всех подряд минусами лишь на том основании что у меня есть решения покруче.
Думаю твои минусы - это просто маркетинговый ход. Скорее всего ты на самом деле боишься конкуренции. Но к счастью - она не избежна )
Прикрепленные файлы:
METAL; Eugeneer; +2 Ответить
33. пользователь 15.08.13 14:07
Сообщение было скрыто модератором.
...
34. Abadonna 3958 15.08.13 14:08 Сейчас в теме
(31) Сергей, мы с Инженером уже пришли к согласию. Тем более он минус на плюс переправил.
Давай, плиз, тут эту тему закроем. А за поддержку тебе огромное спасибо
37. MarSeN 984 15.08.13 14:14 Сейчас в теме
(34)
(33)Eugeneer,

Ок, тема закрыта.
14. Abadonna 3958 15.08.13 11:28 Сейчас в теме
(7)
уже просто надоело что каждый день кому то неймется.

Если ты посмотришь, в каких ВК и когда у меня появилось чтение xls, то еще надо посмотреть, кому неймется.
А то тут мне по поводу Форматтера один написал "Очередной велосипед? Все на Снегопат"
А между тем, первая версия форматтера появилась аж в 2009-ом году, когда никаких Снегопатов и в помине не было.
И я, без ложной скромности, пожалуй, вообще первый был, кто начал работать с Конфигуратором V8
16. пользователь 15.08.13 11:30
Сообщение было скрыто модератором.
...
27. free-lancer-2018 174 15.08.13 12:51 Сейчас в теме
(7) Eugeneer, вы просто переживаете, что у вас кусок хлеба забирают. На мисте, помнится, хвалились, что такое есть только у вас )
28. пользователь 15.08.13 13:06
Сообщение было скрыто модератором.
...
38. free-lancer-2018 174 15.08.13 16:29 Сейчас в теме
(28) Eugeneer, никакого страха и риска тут нет. Формат экселя майкрософт давно не скрывает - пакованный xml. Так что никакого открытия ваш разработчик не сделал. Давно уже в других языках программирования без экселя работают.
40. пользователь 15.08.13 16:37
Сообщение было скрыто модератором.
...
15. Dzenn 870 15.08.13 11:30 Сейчас в теме
Маня, ты зачем минуснул? ;-)
17. пользователь 15.08.13 11:33
Сообщение было скрыто модератором.
...
18. Abadonna 3958 15.08.13 11:37 Сейчас в теме
(17) Eugeneer,
принципиально против халявы на таких вещах

Я тоже не любитель, но
1. На 1С писать мне влом - это работа
2. ВК продать - дело безнадежное. Плавали-знаем
20. пользователь 15.08.13 11:42
Сообщение было скрыто модератором.
...
19. Dzenn 870 15.08.13 11:41 Сейчас в теме
(17) Eugeneer, ну дык такую узконаправленную компоненту и не продать :-) а так - с миру по нитке :-)
22. Abadonna 3958 15.08.13 11:50 Сейчас в теме
(19) DZENN,
такую узконаправленную компоненту и не продать :-)

Её и широконаправленную не продать.
Пример прям отсюда:
http://infostart.ru/public/178717/ - рейтинг 65,
а http://infostart.ru/public/125913/, от которой первая - просто жалкий кусок, рейтинг 43
Кроме того, последняя почти год лежала триальная, никто не изъявил желания "растриалить".
25. Dzenn 870 15.08.13 12:05 Сейчас в теме
(22) плохая предпродажная подготовка потому что ;-)
1. узконаправленные
2. не указано, какие проблемы решает
3. требует специалиста для установки и запуска
4. плохое описание, по диагонали ничего не понятно

короче, слон не отполирован ;-)
24. noprogrammer 236 15.08.13 12:03 Сейчас в теме
Кое в чем Eugeneer прав, а именно в том, что пользоваться данной компонентой (как впрочем и другими подобными разработками автора) можно только на свой страх и риск ибо сегодня она автору интересна а завтра он ее забросит (ибо интерес иссяк).
Eugeneer; +1 Ответить
26. Abadonna 3958 15.08.13 12:05 Сейчас в теме
(24)
ибо сегодня она автору интересна а завтра он ее забросит

СВЯТАЯ ПРАВДА :))).
Другое дело, ежели она работает и устраивает - чего ее сопровождать?
Это ж не конфа 1С в свете постоянно меняющегося законодательства.
P.S. Я публикую только то, что писал для себя и под себя.
30. noprogrammer 236 15.08.13 13:47 Сейчас в теме
(26) в любой компоненте могут быть ошибки,недочеты и т.д. (думаю, что твоя не исключение). Вот попросят тебя, что нить в ней добавить,изменить,исправить - будешь делать? думаю, что все будет зависеть от твоего настроения\желания и т.д. (захочешь - сделаешь а нет так нет). Поэтому строить свои разработки (как коммерческие так и не коммерческие) на подобный "не поддерживаемых" компонентах лично я бы не стал.
32. Abadonna 3958 15.08.13 14:05 Сейчас в теме
(30) noprogrammer,MiracleV8 я абсолютно нахаляву дорабатывал года 2, причем именно по хотелкам, мне оно уже было не надо. Даже по хотелкам семерочников, когда уже сама 7.7 мне абсолютно неинтересна стала. Я и эту могу по хотелкам доработать, но уже лично хотельщику и не нахаляву ;)
29. пользователь 15.08.13 13:27
Сообщение было скрыто модератором.
...
39. пользователь 15.08.13 16:36
Сообщение было скрыто модератором.
...
41. andrewks 1368 15.08.13 16:56 Сейчас в теме
какая библиотека используется в этой компоненте?
44. Abadonna 3958 16.08.13 02:49 Сейчас в теме
(41) andrewks, компоненты Дельфи:
Zexmlss (xlsx), XLSReadWriteII (xls), FWZipReader (распаковка XLSX в указанный каталог)
42. StepByStep 3667 15.08.13 23:32 Сейчас в теме
ОШИБКА:

Конструкция:
Листов=XLS.ОткрытьФайл("d:\ТестовыйXLXS1.xlsx");

Метод ОткрытьФайл(ФайлEXCEL) для файлов с расширением XLS возвращает Неопределено.
Для расширения XLSX - правильное число.
43. Abadonna 3958 16.08.13 02:23 Сейчас в теме
(42) StepByStep, Ни разу в жизни не встречал, чтобы "правильный" XLS не вернул количество листов, а пользуюсь уже давным-давно. Может твой XLS записан как схема xml? Тогда да, не сработает.
И еще: 7.7 при сохранении отчета в XLS формирует его не как книгу. Это еще Арчибальд заметил

Блинннн! Когда разделял процедуру открытия на XLS и XLXS просто забыл вернуть в 1С значение Листов для XLS.
Она определяла, просто не возвращала значение.
Перезалил. Спасибо за замечание
Заодно добавил проверку на параметр НомерЛиста в КоличествоСтрок и КоличествоКолонок
StepByStep; +1 Ответить
49. StepByStep 3667 16.08.13 09:44 Сейчас в теме
(43)
Возвращаясь к вопросу "Имена листов" в дополнение к "Номера листов".
Скажите, пожалуйста, можно ожидать?
50. Abadonna 3958 16.08.13 09:52 Сейчас в теме
(49) StepByStep, в компонентах, которые использую, насколько помню, нет обращения к листу по имени.
Если там этого нет - ожидать не стоит. Но вопрос пока не закрываю, гляну...
53. StepByStep 3667 16.08.13 10:07 Сейчас в теме
(50)
СПАСИБО.
PS: Для XLS теперь правильно.
45. BorisMor 310 16.08.13 04:59 Сейчас в теме
чистое любопытство: на чем написан ВК?
46. Abadonna 3958 16.08.13 05:01 Сейчас в теме
(45) BorisMor,
andrewks, компоненты Дельфи:
Zexmlss (xlsx), XLSReadWriteII (xls), FWZipReader (распаковка XLSX в указанный каталог)

Delphi 7
_LkMaksimka_; BorisMor; +2 Ответить
47. SinglCOOLer 217 16.08.13 09:06 Сейчас в теме
В 8.3 при открытии файла, 1С падает с дампом
48. Abadonna 3958 16.08.13 09:16 Сейчас в теме
(47) SinglCOOLer, я именно на 8.3 и тестил.
В какой момент падает?
Прикрепленные файлы:
51. SinglCOOLer 217 16.08.13 09:59 Сейчас в теме
ПодключитьВнешнююКомпоненту(ПолноеИмяФайлаВК,"ExcelNative",AddInType.Native);
XLS =Новый("AddIn.ExcelNative.V8Excel");
XLS.ОткрытьФайл("Путь");

1С:Предприятие 8.3 (8.3.3.658)
52. Abadonna 3958 16.08.13 10:04 Сейчас в теме
(51)
XLS.ОткрытьФайл("Путь");

Хм... что это за имя файла "Путь"??????
Если Путь заранее определен - то на фига его в кавычки?
Вот так, например, надо:
Путь="d:\Тест.xls";
XLS.ОткрытьФайл(Путь); // Без кавычек!!!!
или
XLS.ОткрытьФайл("d:\Тест.xls");
54. SinglCOOLer 217 16.08.13 10:22 Сейчас в теме
(52) ыыы, естественно я не пишу там "путь", просто как пример, зачем вам именно мой путь, у меня был такой "D:\Задачи.xlsx"
55. Abadonna 3958 16.08.13 10:31 Сейчас в теме
(54) SinglCOOLer, файл в студию!
56. VZhulanov 4 16.08.13 14:54 Сейчас в теме
До сих пор для чтения Excel файлов пользовался Йокселем.
Чем лучше данная разработка, только Native технологией или еще чем-то?
57. Abadonna 3958 16.08.13 15:03 Сейчас в теме
(56)
Чем лучше данная разработка,

VZhulanov, откуда я знаю? Я Йоксель в глаза не видал. К тому же чужими не пользуюсь, если свою написать могу.
Кроме того: Плагин к Total Commander для просмотра xls-файлов, дата публикации 24.02.2008.
ВК для 7.7,дата публикации 06.09.2008
Так что XLS я без всяких Йокселей давным-давно читаю.
andrey-prog; MarSeN; +2 Ответить
58. пользователь 16.08.13 16:49
Сообщение было скрыто модератором.
...
59. Abadonna 3958 16.08.13 16:57 Сейчас в теме
(58) Не пробовал ни разу, но теперь Embarcadero есть - надо будет попробовать. Но не обещаю, что это скоро будет
60. paybaseme 14 19.08.13 13:35 Сейчас в теме
(59) во времена Borland у них была IDE Kylix, которая позволялf открывать CLX-проекты, созданный в виндах в дельфях, при условии что весь проект использует clx компоненты, вместо vcl.

Среди прочих, можно было доставить специальные clx-компоненты, которые позволяли нативно читать *.xls из под *nix'ов. Так что, если эмбаркодерщики не по прибивали это все, то скорее всего все это там уже есть. Я правда сейчас совсем не в курсе, какой аналог Kylix есть в текущей студии, и как с этим всем работать. Раньше все было просто. Сидишь в винде, лабаешь на clx. Переоткрылся в kylix в *nix'ах, скомпилировал проект и вуаля! Единственный минус всех этих танцев: для создания инсталлятора нужен отдельный человек, т.к. все взаимосвязи библиотек Kylix, знал похоже сам великий г-н Кайликс :) По факту, методом проб и ошибок, включая/исключая разные версии файлов, собирался этот самый инстялятор. Все сорцы я не дельфи-киндоме выкладывал в свое время. Не знаю вообще, живо ли это все.

Хотя слышал в последней студии, можно приложения под андрюшку собирать ;)
66. andrewks 1368 20.08.13 18:33 Сейчас в теме
(59) разве дельфя поддерживает линухи в качестве целевых систем?
79. quick 583 23.08.13 11:43 Сейчас в теме
(66) andrewks, делфя только вроде научилась поддерживать мак, а с линухом пока что lazarus, kylix не предлагать.
80. andrewks 1368 23.08.13 11:55 Сейчас в теме
(79) quick, у меня такие же сведения. потому и удивился
82. пользователь 24.08.13 00:04
Сообщение было скрыто модератором.
...
84. Abadonna 3958 24.08.13 07:23 Сейчас в теме
(82) Eugeneer,
нашу ВК с готовым кодом и одной кнопкой.

DLL с кнопкой - это круто :)))
Кстати, как ты там говорил: не фиг читать ячейки в цикле, надо считывать весь лист?
Спроси напарника как он загоняет лист в память, у будешь шибко удивлен, когда он тебе скажет, что внутри ВК он как раз и считывает "поячеесто" в циклах и загоняет их в память. Только на фига столько в памяти держать?
85. MMF 679 24.08.13 08:52 Сейчас в теме
(84) передача данных из ВК в 1С в виде двумерного массива все-таки принесет выигрыш в быстродействии - сократив тысячи вызовов FindMethod+CallAsFunction (вспомним про TurboMD.dll), поскольку в типовом шаблоне ВК FindMethod - это тупо сравнение всех вариантов написания всех методов компоненты с переданным через ILanguageExtender названием.
Конечно, выигрыш будет невелик, сравнительно с передачей range-ами при обмене данными с Excell по ОЛЕ.
87. Abadonna 3958 24.08.13 09:02 Сейчас в теме
(85) MMF,
передача данных из ВК в 1С в виде двумерного массива все-таки принесет выигрыш в быстродействии - сократив тысячи вызовов FindMethod+CallAsFunction

А ты глянь, ради интереса вот это Создание внешних компонент 1С для начинающих
У меня там нигде не используются FindMethod и CallAsFunction. Причем, я всегда так компоненты писал.
P.S. А вызвать метод по аглицки - руки не отвалятся ;)
88. andrewks 1368 24.08.13 09:44 Сейчас в теме
(87)
А ты глянь, ради интереса вот это Создание внешних компонент 1С для начинающих
У меня там нигде не используются FindMethod и CallAsFunction. Причем, я всегда так компоненты писал.


м-м-м... какая-то профанация. там же COM, а не NativeAPI
89. Abadonna 3958 24.08.13 09:51 Сейчас в теме
(87)Ну я про COM и говорил... Какой к 77 Native может быть? Там-то тоже "по фирме" и FindMethod, и CallAsFunction.
А насчет скорострельности - тут же, на картинке матрица 5000х9 за три секунды.
Куда спешить? ;) В моей практике ёксели больше 10 тыс. строк и не встречались...
Потестю ради интереса на 65 тыс. строк, посмотрим за сколько. Причем, не вывод в ТЗ на форме, а просто загрузку в ТЗ
90. пользователь 24.08.13 11:07
Сообщение было скрыто модератором.
...
91. Abadonna 3958 24.08.13 11:14 Сейчас в теме
(90) Eugeneer, пришли, тестанем. Ради интереса... Только данная не возьмет больше 65 тыс. строк. Но принцип (ячейки или лист в память) можно и на xlsx проверить, если не возражаешь.
92. Abadonna 3958 24.08.13 13:00 Сейчас в теме
(85),(90) Результаты тестирования на моём достаточно слабом компе
Процессор: Intel® Core™2 Duo CPU E6550 @ 2.33GHz частота 1866
Операционная система: Windows 7 Ultimate
Оперативная память, MB: 2146

Матрица 65 тыс. строк х 50 колонок (что равносильно 650 тыс. строк х 5 колонок) - чуть меньше 5-ти минут.
Прикрепленные файлы:
93. пользователь 24.08.13 13:10
Сообщение было скрыто модератором.
...
94. Abadonna 3958 24.08.13 13:23 Сейчас в теме
(93) Eugeneer, я вспомнил молодость, когда в НИИ делал расшифровку неметрических зубчатых колес (по замерам, чертежей фиг). Там многоступенчатые формулы с коэффициентами, быстро освоил Basic и на нем слепил. Плюс расчет профиля фрез неметрических под их изготовление.
А наш математик Саня Пинкин взялся ее на Fortran переводить.
- Саня, на фига?
- Раз в 10 быстрее считать будет.
- Слушай, она сейчас считает 5 секунд, а на ввод всевозмонжных параметров у меня уходит 30 секунд. Ладно, твоя будет считать 0.5 сек, но я же за 3 сек. вводить не смогу! :)))

P.S. Так он, кстати, и не сделал, ибо образование ущербное - математическое, а не нормальный инженер-механик, как я ;)
61. Hany 20.08.13 16:39 Сейчас в теме
Ув. разработчик!

Скачала dll
Пробую открыть маленький xls (5 строк 5 колонок) - все работает.
Пробую открыть файл xls, где 77000 строк - валится с дампом.
Платформа 8.2.17.169.

Подскажите, что еще можно попробовать, чтобы прочитать файл xls (не xlsx) с кол-вом строк 77000..

Excel не установлен (политика фирмы такова, что на сервер Офис не ставят). А мне нужно читать xls регламентно, т.е. с пом. регл. заданий, выполнение будет идти в модулях с директивой &наСервере.

варианты:
1) Microsoft.ACE.OLEDB через COMОбъект
2) с пом. "excel.reader" не подошли:(
62. Abadonna 3958 20.08.13 16:49 Сейчас в теме
(61) Hany, компонент для чтения xls "заточен" под максимальное количество строк (Excel 97-2003) 65 536.
63. Hany 20.08.13 17:15 Сейчас в теме
(62)
Спасибо, так и думала.
А что посоветуете?:)
64. Abadonna 3958 20.08.13 17:22 Сейчас в теме
(63) Hany, а в xlsx его пересохранить нельзя? он частоменяемый?
65. Hany 20.08.13 18:26 Сейчас в теме
(64)

файл апдейтится/меняется раз в сутки какой-то программой, написанной 100 лет назад, и которая вне моих должностных обязанностей.

Поэтому, как обычно, в таких случаях, гнем 1С, а не ее (стороннюю программу).

В xlsx сохранить, конечно, можно, но это ж ручная работа, а я хочу, чтобы все автоматом по регл. заданию делалось, терпеть не могу "ручную поддержку" бизнес-процессов:)
Спасибо.
67. andrewks 1368 20.08.13 18:34 Сейчас в теме
68. Hany 20.08.13 18:45 Сейчас в теме
(67) andrewks,
с помощью ...Provider=Microsoft.Jet.OLEDB.4.0;... ?

Собстенно, сам excel не установлен. И как-то этот способ тоже не помог.
69. andrewks 1368 20.08.13 18:59 Сейчас в теме
(68) Hany, эксель и не нужен. выкладывал пример в ветке http://forum.infostart.ru/forum26/topic75363/ 5-й пост
70. Abadonna 3958 20.08.13 19:01 Сейчас в теме
(68) Hany, всё, что могу пообещать, попробовать покопаться в "родном" коде компонента...
Но есть у меня подозрение: если прога написана "100 лет назад", может там и "неправильный" xls, а построенный на чем-то вроде:
xml.ЗаписатьСтроку("<?xml version=""1.0"" encoding=""windows-1251""?>
|<Workbook xmlns=""urn:schemas-microsoft-com:office:spreadsheet""
| xmlns:o=""urn:schemas-microsoft-com:office:office""
| xmlns:x=""urn:schemas-microsoft-com:office:excel""
| xmlns:ss=""urn:schemas-microsoft-com:office:spreadsheet""
| xmlns:html=""http://www.w3.org/TR/REC-html40"">
| <DocumentProperties xmlns=""urn:schemas-microsoft-com:office:office"">
| <Author>Roman Cornelius</Author>
| </DocumentProperties>
| <OfficeDocumentSettings xmlns=""urn:schemas-microsoft-com:office:office"">
| </OfficeDocumentSettings>
| <ExcelWorkbook xmlns=""urn:schemas-microsoft-com:office:excel"">
| </ExcelWorkbook>");
Показать

Так мы из 7.7 раньше xls формировали как раз для больших размеров
74. Hany 21.08.13 10:52 Сейчас в теме
(70)

да, скорее всего вы правы, там xls видимо корявый.
И никакие способы его "не берут", т.к. видимо формат подгулял. Хотя COMObject родного MS OFFICE читает его на ура и даже спасибо говорит:)
Но увы, я COMОбъект("Excel.Application") использовать не могу, т.к. на сервере его нет:(
Пробовала ставить OpenOffice, тоже не взяло подключение к нему через COMОбъект.

4andrewks : Microsoft.Jet.OLEDB.4.0 увы, тоже не "осилил" мой корявый многотысячный xls ....

Поэтому нашла в компании php программера, который написал регламентную переброску этого xls в базу MySQL...А далее дело техники.

Спасибо огромное за вашу ВК, буду ее использовать для pure xls :)))))
71. пользователь 20.08.13 22:42
Сообщение было скрыто модератором.
...
72. _LkMaksimka_ 1 21.08.13 08:07 Сейчас в теме
Спасибо автору классная компонента.
73. serezhick 21.08.13 10:47 Сейчас в теме
картинки обрабатываются в ячейках?
75. Abadonna 3958 21.08.13 11:03 Сейчас в теме
(73)
картинки обрабатываются в ячейках?

serezhick, проблем приделать нет, но это уже как спец-заказ будет
76. CagoBHuK 32 21.08.13 11:42 Сейчас в теме
Однозначный плюс за старание и знание технологии ВК.
77. пользователь 22.08.13 10:57
Сообщение было скрыто модератором.
...
78. Abadonna 3958 22.08.13 11:04 Сейчас в теме
(77) Eugeneer, которую я качал - там ничего не было насчет платности. было это давным-давно.
И не компонентЫ, а одна компонента
______________________________________
Твой "напарник, который прогит на дельфи и питон" как-то плохо тебе объяснил, что такое компонента в Дельфи. Это кусок кода на той же Дельфи. И платной там является возможность разработчика использовать этот кусок в своих разработках. Даже если бы использовался платный вариант компоненты, откуда ты можешь быть уверен, что компилировалось не в среде, где эти компоненты честно куплены и установлены?
81. MMF 679 23.08.13 22:15 Сейчас в теме
я для дофигищастрочных таблиц использовал http://sm-software.com/txlsfile.htm - замечательно работает.
Оставьте свое сообщение