IE2017

7.7 СуперЛист: Маленький Excel в вашей 1С!

Обработки - Универсальные обработки

Иногда так хочется в отчете получить автосумму или простенькое условие Если(А1>0;А1;0)...
Данная обработка позволит прямо в 1С получить некоторые преимущества, которыми нас балует Excel.

С помощью этой обработки можно редактировать электронные таблицы. Есть возможность сохранять/открывать таблицы (формат xml).

Если у вас установлен Microsoft Office то обработка позовляет делать импорт/экспорт с Excel-ем.

Поддерживается конвертация "на лету" из/в стандартный для 1С формат mxl.

 

Требования:

Внешние компоненты 1cpp.dll скачать можно: http://www.1cpp.ru

formex.dll скачать можно: http://www.dorex.ru/?projects&formex

и Веб-Компоненты Microsoft Office (Office 2003 Add-in: Office Web Components) скачать можно: http://www.microsoft.com/downloads/details.aspx?displaylang=en&FamilyID=7287252c-402e-4f72-97a5-e0fd290d4b76

Если у вас установлен Microsoft Office, то Веб-Компоненты скорее всего качать не придется.

Наличие самого Microsoft Office не обязательно.

Так же прикладываю обработку, проверяющую наличие всех необходимых для обработки компонент.

 

Из недостатков: работает только с простыми типами данных (строка, число, дата...), нет возможности печати (только через mxl или xls), иногда немного криво переносится форматирование.

 

ЗЫ Для знающих: обработка является оболочкой для OWC11.spreadsheet

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

Наименование Файл Версия Размер
-
.1245854426 192,50Kb
10.10.14
312
.1245854426 192,50Kb 312 Скачать
Проверка совместимости
.1245854456 37,50Kb
10.10.14
104
.1245854456 37,50Kb 104 Скачать

См. также

Комментарии
1. mdbm (mdbm) 188 24.06.09 22:02 Сейчас в теме
Давно уже подумывал как бы пользователям отрубить рабочий стол и все остальное, кроме 1С )))
И как раз такое нужно было ....
Завтра потрогаю
2. Александра Пьянкова (Alexandra) 25.06.09 04:33 Сейчас в теме
Присоединяюсь к предыдущему комменту :)
3. boks (boks) 1 25.06.09 08:26 Сейчас в теме
4. Алексей Плутенко (Noy) 1057 25.06.09 09:03 Сейчас в теме
(1,2) Могу порекомендовать еще посмотреть DSOFramer, но он без установленого офиса "не взлетит".
Вот тут есть пример использования: http://infostart.ru/projects/2378/
5. Brr (brr) 178 25.06.09 09:40 Сейчас в теме
6. Алексей Плутенко (Noy) 1057 25.06.09 09:44 Сейчас в теме
(5) только из xls или mxl (лишний раз кликнуть нужно:)
7. cs25 (cs25) 80 25.06.09 09:48 Сейчас в теме
8. Альтаир (Altair777) 638 25.06.09 11:12 Сейчас в теме
(0) Привел эту разработку в качестве примера :-)
http://infostart.ru/blogs/1134/?p=1#comm1
9. Алексей Плутенко (Noy) 1057 25.06.09 11:23 Сейчас в теме
10. steban (steban) 71 25.06.09 14:52 Сейчас в теме
когда-то делал генерацию таблиц в формате XMLSS из шаблонов:
http://www.1cpp.ru/forum/YaBB.pl?num=1206552116
Donat; JohnyDeath; +2 Ответить 1
11. Алексей Плутенко (Noy) 1057 25.06.09 15:49 Сейчас в теме
(10) У меня тоже была идея сделать все в виде КОП (заодно и научиться их делать)...
но к сожалению полной замены mxl все равно не получиться
12. Владимир Денисов (den_vladimir) 91 01.07.09 07:07 Сейчас в теме
добавь проверку загрузки внешних библиотек
13. Владимир Исаев (chessman) 35 01.07.09 10:34 Сейчас в теме
ОФФ: В ЗиКе использую DSOFramer для печати приказов из Word'a. Глюк с отрисовкой кнопок удалось побороть через Плавающую форму.
Чем хорош DSO, в нем можно открывать любые офисные доки.
14. Алексей Плутенко (Noy) 1057 01.07.09 10:52 Сейчас в теме
(13) а как борешься с глюком самой плавающей формы (слетает позиционирование в СписокЗначений.ВыбратьЗначение(...)) ?
15. Владимир Исаев (chessman) 35 01.07.09 11:01 Сейчас в теме
;-) особо не заморачиваюсь, просто способ выбора заменил на стандартный, т.е. в отдельном окне.
16. igor_gk (igor_gk) 46 01.07.09 17:07 Сейчас в теме
17. GIZmo (GIZmo) 271 04.07.09 14:53 Сейчас в теме
Вопрос: "А сколько колонок можно ввести в этот <Excel>??? т.к. в стандартном 2003 есть ограничение = 255"
18. Алексей Плутенко (Noy) 1057 06.07.09 10:28 Сейчас в теме
(17) Точно не скажу, но по-моему как в 2007 екселе (тоесть больше чем 255)
19. Olga (Джиневра) 10.07.09 13:58 Сейчас в теме
Два дня закачивала обработки :) Ох уж мне это нововведение с рейтингами!... Это я к тому, что лучше было бы одним архивом выложить. Просто ПроверкаСовместимости тоже понадобилась, без нее не могла понять - чего не хватает.
Сама обработка - просто супер :) Пока ничего не слетало и не выбивало. Жалко только, что Печати сразу нету.
20. Алексей Плутенко (Noy) 1057 10.07.09 15:24 Сейчас в теме
(19) Я вам открою маленький секрет - если нет возможно скачать из-за рейтинга - можно всегда написать письмо автору с просьбой выслать файлик. Во всяком случае я обычно не отказываю ;)
21. venik (vinogradov@brooms.com.ua) 13.07.09 15:08 Сейчас в теме
Ничего. Прикольно. Главное - при установке нифига думать не надо...
;)
Спасибо. Думаю, пригодится.
22. Владимир Исаев (chessman) 35 11.09.09 14:05 Сейчас в теме
(14) Глюк решил, через 1c++ и DynamicWrapperX
23. Алексей Плутенко (Noy) 1057 11.09.09 15:37 Сейчас в теме
(22) Владимир, можно чуть-чуть подробнее?
24. vip (vip) 11.09.09 16:29 Сейчас в теме
(22)(23) Если это про плавающую форму, то да, поподробней.
Основная неприятность это то, что окно плавающей формы продолжает жить после ее закрытия (хэндл не уничтожается).
25. Владимир Исаев (chessman) 35 12.09.09 22:14 Сейчас в теме
(24) vip, я имел в виду глюк с выбором из обычного списка значений (через сервис вообще перестает работать).
26. Владимир Исаев (chessman) 35 12.09.09 22:16 Сейчас в теме
(23) Может я не правильно выразился, речь про глюк обычного списка значений, который "уезжает" после открытия плавающей формы. Если это интересно, то готов поделиться мыслями.
27. Владимир Исаев (chessman) 35 12.09.09 22:18 Сейчас в теме
(24) vip, ты же сам пользуешься DestroyWindow, оно же убивает хендл.
28. vip (vip) 13.09.09 07:34 Сейчас в теме
(27) А...
Я думал, может ты чего другое придумал.
29. Алексей Плутенко (Noy) 1057 15.09.09 09:15 Сейчас в теме
(26)Да, именно средство борьбы с этим глюком и интересует! Ни разу с DynamicWrapperX не сталкивался - можно хоть саму идею озвучить?
30. Владимир Исаев (chessman) 35 15.09.09 11:24 Сейчас в теме
(29)
Про DynamicWrapperX - http://www.script-coding.info/dynwrapx.html
Посмотри, как я окно двигаю вот тут
http://www.1cpp.ru/forum/YaBB.pl?num=1241706959

со списком значений тоже самое делаю, единственное он будет "моргать"
31. Алексей Плутенко (Noy) 1057 15.09.09 11:27 Сейчас в теме
32. Владимир Исаев (chessman) 35 02.10.09 10:41 Сейчас в теме
33. Алексей Плутенко (Noy) 1057 02.10.09 11:11 Сейчас в теме
(32) Я чуть по другому обошел проблему:
подменил везде ВыбратьЗначение на функцию:

Функция глВыбратьЗначение(Список,Значение,Заголовок="",Позиция="",Таймаут=0,Способ=0) Экспорт
Если Способ=0 Тогда
Возврат Список.ВыбратьЗначение(Значение,Заголовок,Позиция,Таймаут,Способ);
КонецЕсли;
Сервис=СоздатьОбъект("Сервис");
Возврат(Сервис.ВыбратьЗначение(Список,Значение,Заголовок,,2));
КонецФункции

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

Владимир, я чуть понаглею: не поделитесь рабочим примером, как вы уничтожаете плавающую форму?
34. Владимир Исаев (chessman) 35 02.10.09 11:19 Сейчас в теме
(33) Так а эта конструкция будет работать, если ее вызвать 2-й раз? У меня после хотя бы одного открытия Плавающей формы Сервис::ВыбратьЗначение не работает, т.е. ничего не появляется.

По поводу примера - да мне что жалко что ли :)

Wrap = СоздатьОбъект("DynamicWrapperX");
Wrap.Register("user32.dll", "DestroyWindow", "i=h", "r=l");
Процедура Деструктор()     
	РасшФорма = СоздатьОбъект("РасширениеФормы");
	РасшФорма.УстановитьФорму(hWnd.Форма);
	Wrap.DestroyWindow(РасшФорма.Дескриптор);
КонецПроцедуры
...Показать Скрыть


Только учти, что форма уничтожается, если она встроена в конфу.
35. Алексей Плутенко (Noy) 1057 02.10.09 11:45 Сейчас в теме
(34) Спасибо. hWnd - это контекст? Можно этот код размещать в самой плавающей форме (типа призакрытии())?

у меня эта конструкция работает. из ВК загружены V7plus, dilamail, 1C++ (3.0.1.22), Formex (2.0.5.93). Работает стабильно, но у меня только одна плавающая форма, которая стартует и закрывается одновременно с 1С...
36. Владимир Исаев (chessman) 35 02.10.09 11:53 Сейчас в теме
Аааа....тогда понятно, а вот попробуй где-нить открыть хотя бы один раз плавающую форму, а потом попытайся сделать выбор -Сервис::ВыбратьЗначение.

hWnd - это контекст
37. Владимир Исаев (chessman) 35 02.10.09 11:58 Сейчас в теме
(35) Забыл номер поста проставить.
38. Алексей Плутенко (Noy) 1057 02.10.09 12:19 Сейчас в теме
(36) сорри, но мне не понятно.
У меня сейчас в 1С висит обработка, почти аналогичная http://infostart.ru/public/57767/ в режиме плавающей формы. Если я делаю список.Выбратьзначение - меню привязывается к активному элементу плавающей формы, а если делаю как в (34), то меню привязывается к координатам мыши - не совсем то, чего хотелось бы (пользователи-клавиатурщики жалуются немного), но лучше чем в первом случае.
тоесть выбор значения работает в обоих случаях, но с разными глюками.

P.S. я имею ввиду только случай с выбором значения ввиде меню (способ=0)
39. Владимир Исаев (chessman) 35 02.10.09 12:37 Сейчас в теме
(38) А если так сделать
Сервис=СоздатьОбъект("Сервис");
Возврат(Сервис.ВыбратьЗначение(Список,Значение,Заголовок,,0));
40. Алексей Плутенко (Noy) 1057 02.10.09 12:55 Сейчас в теме
(39) :) Так не пойдет конечно. Я имел ввиду, что я подменяю способ=0 на способ=2 из метода Сервиса...

в 38 посте опечатался: вместо "делаю как в (34)" нужно "делаю как в (33)".

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