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

05.10.13

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

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

Бесплатные

ВНИМАНИЕ: Файлы из Базы знаний - это исходный код разработки. Это примеры решения задач, шаблоны, заготовки, "строительные материалы" для учетной системы. Файлы ориентированы на специалистов 1С, которые могут разобраться в коде и оптимизировать программу для запуска в базе данных. Гарантии работоспособности нет. Возврата нет. Технической поддержки нет.

Наименование Скачано Бесплатно
Версия 1.0.0.11
.zip 397,50Kb
433 Скачать бесплатно

ВК предназначена для считывания значений ячеек файлов *.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

Вступайте в нашу телеграмм-группу Инфостарт

См. также

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

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

15500 руб.

02.09.2020    202029    1114    410    

1021

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

Инструмент представляет собой обработку для проведения свёртки или обрезки баз данных. Работает на ЛЮБЫХ конфигурациях (УТ, БП, ERP, УНФ, КА и т.д.). Поддерживаются серверные и файловые базы, управляемые и обычные формы. Может выполнять свертку одновременно в несколько потоков. А так же автоматически, без непосредственного участия пользователя. Решение в Реестре отечественного ПО

8400 руб.

20.08.2024    35469    206    104    

195

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

Расширение для создания и редактирования печатных форм в системе 1С:Предприятие 8.3. Благодаря конструктору можно значительно снизить затраты времени на разработку печатных форм, повысить качество и прозрачность разработки, а также навести порядок в многообразии корпоративных печатных форм.

22200 руб.

06.10.2023    23911    63    26    

92

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

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

16000 руб.

10.11.2023    16406    69    39    

88

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

Инструмент для написания и отладки кода в режиме «1С:Предприятие». Представляет собой консоль кода с возможностью пошаговой отладки, просмотра значений переменных любых типов, использования процедур и функций, просмотра стека вызовов, вычисления произвольных выражений на встроенном языке в контексте точки останова, синтаксического контроля и остановки по ошибке. В консоли используется удобный редактор кода с подсветкой, контекстной подсказкой, возможностью вызова конструкторов запроса и форматной строки.

9360 руб.

17.05.2024    34597    122    53    

165

SALE! 30%

Инструментарий разработчика WEB-интеграция 1С v8.3 1C v8.2 1C:Бухгалтерия 1С:ERP Управление предприятием 2 1С:Бухгалтерия 3.0 1С:Управление торговлей 11 1С:Зарплата и Управление Персоналом 3.x Платные (руб)

Инструмент для генерации OpenApi (Swagger) спецификаций на основании файлов конфигураций 1С. Это консольное и десктопное приложение на языке Rust с полноценным редактором кода, содержащим автозамену и подсвечивание ошибок для быстрого и безошибочного написания документирующего комментария.

18000 12600 руб.

22.11.2024    1630    1    0    

8

Инструментарий разработчика Программист 1С v8.3 1C:Бухгалтерия Россия Платные (руб)

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

6000 руб.

07.02.2018    107112    249    100    

313
Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
1. Abadonna 3972 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 230 03.12.13 13:12 Сейчас в теме
У компоненты проблемы с чтением файлов, содержащих свыше 100 тыс. строк.
Смотрел на файле, в котором 111 тыс. строк.

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

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


135. Abadonna 3972 03.12.13 18:41 Сейчас в теме
(134) adminfo2002, я вообще-то и не рассчитывал, и не тестировал для строк больше 65 000.
xls точно не сожрет больше (там ограничение используемой компоненты Дельфи), про xlsx - просто ничего сказать не могу. Мне, в моей практике, вообще никогда не встречались больше эдак строк 20 000...
136. free-lancer-2018 230 07.12.13 11:40 Сейчас в теме
(135) через ComSafeArray 1c читает такие файлы экселя без проблем.
137. Abadonna 3972 07.12.13 12:59 Сейчас в теме
(136) adminfo2002, поясню свою позицию. Свои ВК я пишу для себя. Меня вполне устраивает чтение файлов в размере около 10 тыс. строчек. Нет у меня клиентов, которые грузят прайсы по 1 млн. строк.
Они их вообще, как правило, не грузят, т.к. это оптовики или производственники. А кто и что там грузит/не грузит - мне, по большому счету, безразлично. Возникнет у меня необходимость грузить 500 тыс. строк - буду решать проблему, не возникнет - пальцем не шевельну ;)
144. Abadonna 3972 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 3691 15.08.13 10:40 Сейчас в теме
Для наглядности было бы хорошо оперировать не номерами листов, а их именами.
3. Abadonna 3972 15.08.13 10:48 Сейчас в теме
(2) StepByStep, если файл вообще нигде не просматривать (не на чем), номера удобнее.
И возни мне с именами больше, пока даже не знаю как...
К тому же в 99% случаев имена такие: Лист1, Лист2, Лист3
4. StepByStep 3691 15.08.13 10:56 Сейчас в теме
(3)

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

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

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

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

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

Вообще то, язык программирования 1С тоже является высокоуровневым.
36. пользователь 15.08.13 14:10
Сообщение было скрыто модератором.
...
12. MarSeN 987 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 1192 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 3972 15.08.13 12:00 Сейчас в теме
(21) Aleksey81, мы нашли с ним консенсус, так что все ОК ;)
31. MarSeN 987 15.08.13 14:02 Сейчас в теме
(13) Eugeneer,
Когда появляются поддельники, то мы не стоим на месте а делаем два шага вперед.

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

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

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

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

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

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

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

СВЯТАЯ ПРАВДА :))).
Другое дело, ежели она работает и устраивает - чего ее сопровождать?
Это ж не конфа 1С в свете постоянно меняющегося законодательства.
P.S. Я публикую только то, что писал для себя и под себя.
30. noprogrammer 240 15.08.13 13:47 Сейчас в теме
(26) в любой компоненте могут быть ошибки,недочеты и т.д. (думаю, что твоя не исключение). Вот попросят тебя, что нить в ней добавить,изменить,исправить - будешь делать? думаю, что все будет зависеть от твоего настроения\желания и т.д. (захочешь - сделаешь а нет так нет). Поэтому строить свои разработки (как коммерческие так и не коммерческие) на подобный "не поддерживаемых" компонентах лично я бы не стал.
32. Abadonna 3972 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 1379 15.08.13 16:56 Сейчас в теме
какая библиотека используется в этой компоненте?
44. Abadonna 3972 16.08.13 02:49 Сейчас в теме
(41) andrewks, компоненты Дельфи:
Zexmlss (xlsx), XLSReadWriteII (xls), FWZipReader (распаковка XLSX в указанный каталог)
42. StepByStep 3691 15.08.13 23:32 Сейчас в теме
ОШИБКА:

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

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

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

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

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

Хм... что это за имя файла "Путь"??????
Если Путь заранее определен - то на фига его в кавычки?
Вот так, например, надо:
Путь="d:\Тест.xls";
XLS.ОткрытьФайл(Путь); // Без кавычек!!!!
или
XLS.ОткрытьФайл("d:\Тест.xls");
54. IVSH 218 16.08.13 10:22 Сейчас в теме
(52) ыыы, естественно я не пишу там "путь", просто как пример, зачем вам именно мой путь, у меня был такой "D:\Задачи.xlsx"
55. Abadonna 3972 16.08.13 10:31 Сейчас в теме
(54) SinglCOOLer, файл в студию!
56. VZhulanov 5 16.08.13 14:54 Сейчас в теме
До сих пор для чтения Excel файлов пользовался Йокселем.
Чем лучше данная разработка, только Native технологией или еще чем-то?
57. Abadonna 3972 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 3972 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 1379 20.08.13 18:33 Сейчас в теме
(59) разве дельфя поддерживает линухи в качестве целевых систем?
79. quick 584 23.08.13 11:43 Сейчас в теме
(66) andrewks, делфя только вроде научилась поддерживать мак, а с линухом пока что lazarus, kylix не предлагать.
80. andrewks 1379 23.08.13 11:55 Сейчас в теме
(79) quick, у меня такие же сведения. потому и удивился
82. пользователь 24.08.13 00:04
Сообщение было скрыто модератором.
...
84. Abadonna 3972 24.08.13 07:23 Сейчас в теме
(82) Eugeneer,
нашу ВК с готовым кодом и одной кнопкой.

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

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


м-м-м... какая-то профанация. там же COM, а не NativeAPI
89. Abadonna 3972 24.08.13 09:51 Сейчас в теме
(87)Ну я про COM и говорил... Какой к 77 Native может быть? Там-то тоже "по фирме" и FindMethod, и CallAsFunction.
А насчет скорострельности - тут же, на картинке матрица 5000х9 за три секунды.
Куда спешить? ;) В моей практике ёксели больше 10 тыс. строк и не встречались...
Потестю ради интереса на 65 тыс. строк, посмотрим за сколько. Причем, не вывод в ТЗ на форме, а просто загрузку в ТЗ
90. пользователь 24.08.13 11:07
Сообщение было скрыто модератором.
...
91. Abadonna 3972 24.08.13 11:14 Сейчас в теме
(90) Eugeneer, пришли, тестанем. Ради интереса... Только данная не возьмет больше 65 тыс. строк. Но принцип (ячейки или лист в память) можно и на xlsx проверить, если не возражаешь.
92. Abadonna 3972 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 3972 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 3972 20.08.13 16:49 Сейчас в теме
(61) Hany, компонент для чтения xls "заточен" под максимальное количество строк (Excel 97-2003) 65 536.
63. Hany 20.08.13 17:15 Сейчас в теме
(62)
Спасибо, так и думала.
А что посоветуете?:)
64. Abadonna 3972 20.08.13 17:22 Сейчас в теме
(63) Hany, а в xlsx его пересохранить нельзя? он частоменяемый?
65. Hany 20.08.13 18:26 Сейчас в теме
(64)

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

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

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

Собстенно, сам excel не установлен. И как-то этот способ тоже не помог.
69. andrewks 1379 20.08.13 18:59 Сейчас в теме
(68) Hany, эксель и не нужен. выкладывал пример в ветке http://forum.infostart.ru/forum26/topic75363/ 5-й пост
70. Abadonna 3972 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 3972 21.08.13 11:03 Сейчас в теме
(73)
картинки обрабатываются в ячейках?

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