MiracleV8: Расширенная версия

03.11.11

Разработка - Разработка внешних компонент

Универсальная компонента для 1С 7.7 и 1С 8.x

Скачать файл

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

Наименование Бесплатно
Ссылка на скачивание
.txt 0,03Kb
2295
2295 Скачать бесплатно
-
.txt 29,04Kb
1316
1316 Скачать бесплатно
Тест77
.zip 657,27Kb
618
618 Скачать бесплатно
Тест81
.zip 681,43Kb
541
541 Скачать бесплатно

Работа с xls-файлами на считывание/запись напрямую (не  требует наличия Excel или Open Office), интерактивная иконка окна 1С в трее,

медиа, индикаторы, работа с htm-файлами и веб-ссылками, аниматоры, прогресс-бары, некоторые возможности WinAPI для продвинутых, некоторые полезные функции для администрирования и т.д. (см. файл описания)

MiracleV8_TestBase81.zip - тестовая база 8.1, dll внутри

MiracleV8_TestBase77.zip - тестовая база 7.7, dll внутри

Описание (ReadMe).txt - описание методов

Примечание: обновления dll в четвертом файле с номером актуальной версии

ВНИМАНИЕ: в связи с вопросами кое-кого сообщаю, что внутри тестовых баз лежат самые дремучие версии dll, тестовые базы не обновляются с начала публикации.

Версия 2.1.3.0, добавлен "Рабочий стол". Скачивать по ссылке в публикации


См. также

SALE! 20%

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

Универсальная обработка для загрузки документов из Excel в 1С одним нажатием. Не требует указания параметров (номера колонок, номер первой строки таблицы и т.д.) и предварительной настройки. Просто выбираете файл Excel, документ 1С и нажимаете кнопку "Загрузить". Обработка сама находит таблицу в файле Excel, необходимые для загрузки данные в ней (номенклатура, количество, НДС, цена, сумма) и загружает ее в 1С. Вместе с номенклатурой может найти контрагента, номер и дату документа, штрих-коды, серии ГТД, страну и т.д. Распознает документы ЛЮБОЙ ФОРМЫ (УПД, ТОРГ-12, заказ, отчет комиссионера и т.д.). Не требует MS Office. Для поиска таблиц используются методы эвристического поиска. Загружает только то, что нужно, т.е. пропускает повторы шапки таблицы, заголовки, промежуточные итоги, подписи и т.д. Содержит модуль работы с электронной почтой и api-загрузчик отчетов о продажах маркетплейсов.

6000 5100 руб.

09.11.2016    236338    1071    898    

1009

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

Реальный помощник, с помощью которого Вы преобразуете необходимые документы для Wildberries, OZON, ЯндексМаркет, Мегамаркет, Aliexpress, Детский мир, МагнитЭкспресс (быв.Казань-Экспресс), Леруа Мерлен, ЭНФАНТА (Акушерство), ЛаМода, Летуаль, Твой дом, Золотое Яблоко в документы "Отчет комиссионера (агента) о продажах" и другие. Работает в 1С:БП 3.0, 1С:БП 3.0 КОРП, 1С:УТ 11, 1С:УНФ, 1С:КА 2, 1С:ERP Управление предприятием. Возможность подключить любые маркетплейсы. Анализ продаж ОZON. 30 дней БЕСПЛАТНОГО пользования!

3600 руб.

12.08.2021    36145    363    68    

160

Загрузка и выгрузка в Excel Бухгалтер Пользователь Платформа 1С v8.3 1С:Управление торговлей 10 1С:Бухгалтерия 3.0 1С:Управление торговлей 11 1С:Управление нашей фирмой 3.0 1С:Розница 3.0 Оптовая торговля, дистрибуция, логистика Бухгалтерский учет Управленческий учет Платные (руб)

Загрузка данных отчета о реализации товаров из сервиса "Детский мир" для конфигурации 1С: Бухгалтерия предприятия, редакция 3.0; Управление торговлей, редакция 11; Управление торговлей, редакция 10.3; Управление нашей фирмой, редакция 3.0 и Розница, редакция 3.0 в документ "Отчет комиссионера (агента) о продажах".

4800 руб.

23.01.2022    11319    56    0    

38

Загрузка и выгрузка в Excel Логистика, склад и ТМЦ Ценообразование, анализ цен Файловый обмен (TXT, XML, DBF), FTP Бухгалтер Пользователь Платформа 1С v8.3 1С:Бухгалтерия 2.0 1С:Управление торговлей 10 1С:Розница 2 1С:Управление нашей фирмой 1.6 1С:ERP Управление предприятием 2 1С:Бухгалтерия 3.0 1С:Управление торговлей 11 1С:Комплексная автоматизация 2.х 1С:Управление нашей фирмой 3.0 1С:Розница 3.0 Платные (руб)

Эволюция не стоит на месте - новая удобная версия функциональной обработки для Вашего бизнеса! Что же Вы получаете? Удобный и интуитивно понятный интерфейс с 3-мя этапами работы. 2 режима - автоматический и ручной. Чтение XLSX, XLSM, CSV, XML/YML форматов без офиса, на любом сервере! Визуальное связывание колонок файла и реквизитов простым перетаскиванием колонок. Создание или обновление номенклатуры с иерархией, характеристик, доп. реквизитов, упаковок, загрузка практически неограниченного количества картинок на одну номенклатуру (с возможностью загрузки в несколько потоков одновременно), с хранением в томах или в базе. Загрузка номенклатуры поставщиков или поиск по их данным номенклатуры. Загрузка доп. реквизитов в характеристики. Загрузка штрихкодов с генерацией новых. Создание элементов справочников и ПВХ "на лету" для выбранных реквизитов. (Обновление от 09.12.2024, версия 9.8 - 9.13)

15600 руб.

20.11.2015    156944    378    378    

513

Загрузка и выгрузка в Excel Розничная торговля Логистика, склад и ТМЦ Ценообразование, анализ цен Прайсы Системный администратор Программист Платформа 1С v8.3 1С:Комплексная автоматизация 1.х 1С:Розница 2 1С:ERP Управление предприятием 2 1С:Управление торговлей 11 1С:Комплексная автоматизация 2.х Управленческий учет Платные (руб)

Загрузка номенклатуры из файлов Excel (xls, xlsx, ods, csv, mxl) в УТ11, КА 2, ERP 2, Розница 2. Задействованы все возможности конфигурации - заполнение реквизитов номенклатуры, дополнительных реквизитов и сведений, характеристики, доп.реквизиты и сведения характеристик. Дополнительные обработки для расширения возможностей.

11100 руб.

29.10.2014    217274    661    527    

457

SALE! 30%

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

Универсальная программа для распознавания сканов или фото товарных документов в 1С. Не требует указания параметров и предварительной настройки. Просто выбираете файл (PDF, JPG, DOC, XLS, HTML) выбираете документ 1С и нажимаете кнопку "Распознать и загрузить".

8400 5880 руб.

04.06.2019    107971    314    173    

326
Внимание! Тема закрыта. Добавлять сообщения в закрытую тему запрещено.
Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
297. Abadonna 3969 10.09.10 17:56 Сейчас в теме
А можно в будущем в одном архиве выкладывать компоненту и файл описания ?

Да оно-то можно, только я сам файл описания уж сто лет не менял... Тошнит меня от рутины :( Лень пока
298. sfol 10.09.10 18:11 Сейчас в теме
(297) Дык есть же желающие подсобить.
299. Abadonna 3969 10.09.10 18:12 Сейчас в теме
(298) Шибко боюсь, что ты и Rumpel_Shtilken останетесь раритетами :D
300. Rumpel_Shtilken 11.09.10 01:59 Сейчас в теме
Скачал и запихнул в Windows\System32 библиотеку CapiCom.dll v.2.1.0.1, но методы EncodeText() и DecodeText() в 7.7 не работают (пишет: неудачная попытка создания объекта "CAPICOM.EncryptedData"). :( Они вообще для какой версии 1С ?
303. Abadonna 3969 11.09.10 09:42 Сейчас в теме
(300)
"CAPICOM.EncryptedData"). Они вообще для какой версии 1С ?

CAPICOM не для версии, она сама по себе.
Проверь просто в 1С:
А=СоздатьОбъект("CAPICOM.EncryptedData");

Если ругнется - что-то у тебя не там оно лежит. Должна находится в
WINDOWS\system32\
(301) На многослойных не работает
(302) Именно как раз потому что мне не нравятся ПБ в виде отдельных окон, я и начал изучать в свое время наследование окон в 1С;) Доделаю FlyGauge c возможностью установления родителя, но не более
P.S. И сделаю еще один на тулбаре формы 7.7 (давно собирался), тогда ему и места не надо будет, и слои по фиг
304. Rumpel_Shtilken 11.09.10 17:15 Сейчас в теме
(303)
CAPICOM не для версии, она сама по себе.

:!: Я спрашивал для какой версии 1С написаны методы EncodeText() и DecodeText(): для 1C v77 или 1Cv8... Но ни как не про CAPICOM ! И лежит она там где надо.

Ладно, допустим создал объект А=СоздатьОбъект("CAPICOM.EncryptedData"); Что дальше ? Дальше так?:
A.EncodeText(); и A.DecodeText();

P.S. А про ПБ ты зря...
301. Rumpel_Shtilken 11.09.10 02:02 Сейчас в теме
:?: В 1Cv77 чё-то не срабатывает прогресс-бар на многослойных формах. На какой слой надо ложить невидимую рамку Gauge ?
302. Rumpel_Shtilken 11.09.10 02:32 Сейчас в теме
Прогресс-бар на форме - это хорошо, но под него на форме надо отводить место (сделать под него отдельную формочку и возиться с ней конечно можно, но...). Прогресс-бар в строке статуса - прекрасно, но даже если сделать его ярко красным, некоторые юзеры могут не обратить на него внимания (=> куда-то надо выводить сопутствующий текст о том, что в данный момент происходит). Прогресс-бар на MDI - красиво, но если форма, запустившая его, модальна и развёрнута на всё окно, то прогресс-бара не видно, и что происходит в данный момент юзер не знает.
:idea: Предлагаю сделать ещё один прогресс-бар, который будет выводиться в виде отдельной формочки и ложиться поверх вызвавшей его формы (и модальной и немодальной). По окончании - авторазрушение. Корректная отрабатка прерывания по Esc. На формочку можно положить 2 -3 кнопки. Входные параметры: заголовок ПБ, тип ПБ - одиночный или двойной (как, например, в TotalCommandere), координаты XY ПБ относительно MDI или вызвавшей его формы (лучше предусмотреть оба варианта), Число = 100%, заголовки кнопок.
Я думаю, многих бы устроил именно такой вариант...
P.S.Похожий прогресс-бар сделан в ВК bcs_wnd.dll (спасибо автору), но там есть минусы. :cry: И автор вроде больше не апгрейдит свою ВК.
307. Abadonna 3969 11.09.10 18:04 Сейчас в теме
Версия 2.0.0.4 По хотелке (302)
Новые методы:
FlyCreate(Родитель: целое) - создать плавающий индикатор (см. рис.)
Родитель - необязательный, по умолчанию 0
Если Родитель=0, то родительское окно - главное окно 1С. При этом форма индикатора будет всегда поверх всех других, кроме модальных
Если Родитель=1, то родительское окно MDI, форма будет закрываться другими формами
Если Родитель=иное, то родительское окно Desktop, форма будет всегда поверх ВСЕХ окон в системе, в т.ч. поверх модальных форм 1С. Нюанс: форма, созданная таким образом, не будет сворачиваться при сворачивании главного окна 1С.
FlyPosition1(Прогресс) - установить позицию индикатора 1
FlyPosition2(Прогресс) - установить позицию индикатора 2
FlyDestroy() - разрушить форму индикатора
Примечания: форма индикаторов таскается мышкой за верх, по правой кнопке - контекстное меню на интерактивное закрытие формы.
Процедура Сформировать()
L.FlyCreate();
L.FlyPosition2(25);
Для
А=0 По 100 Цикл
L.FlyPosition1(А);
L.SleepTime(30);
КонецЦикла;
КонецПроцедуры

Процедура
ПриЗакрытии()
L.FlyDestroy();
КонецПроцедуры

P.S. Это последнее бесплатное обновление библиотеки

Прикрепленные файлы:
formula76; Rumpel_Shtilken; +2 Ответить
308. Rumpel_Shtilken 11.09.10 19:20 Сейчас в теме
305. Abadonna 3969 11.09.10 17:19 Сейчас в теме
Я спрашивал для какой версии 1С написаны методы EncodeText()

Для любой.
Если 1С создала, то и библиотека должна создать
Только сейчас проверил
Сообщить(L. EncodeText("Привет","123"));
Вернуло:

MFoGCSsGAQQBgjdYA6BNMEsGCisGAQQBgjdYAwGgPTA7AgMCAAECAmYCAgIA­gAQI
UN9FRYP2iGUEEBo1qaZs/tAVhlGLcM1/XeEEEGnm2K/tYcf3l5oEwF+tNIM=­
306. Abadonna 3969 11.09.10 17:29 Сейчас в теме
Вообще-то CAPICOM.dll регистрировать надо!
Regsvr 32. Я что, и за мелоксофт теперь отвечать должен? ;)
309. pakitos20084 14.09.10 04:40 Сейчас в теме
У меня такой вопрос SetDesctopAlert позволяет выводить всплывающее окно, в заголовке этого окна всегда написано Miracle8. Как можно заменить эту строку на , например, "Внимание" или "Ошибка"? Что-то я не нашел как? И можно ли менять цвет этого окна? (например, при ошибке красный)
310. Abadonna 3969 14.09.10 07:48 Сейчас в теме
(309) Как сейчас сделано - нельзя
311. pakitos20084 14.09.10 13:44 Сейчас в теме
Ещё вопрос, не могли бы Вы сказать, какие и что означают параметры в методах:
SetFlyGauge()
SetFlyText()
SetProgressBar()
SetProgressBarEx()
SetRCGauge()
SetStatusBarGauge()
SetStatusBarPanel()
SetStatusBarPanelEx()
SetStatusLine()
SetTrackBar()
SetVertGauge()
312. mike581 20.09.10 18:24 Сейчас в теме
Здорово. Начальство захотело скрывать екоторые документы в жкрнале. Никак не мог придумать как поступить. А тут такооееееее!!! :D
313. Ёпрст 1065 23.09.10 10:44 Сейчас в теме
Кнопки в тулбаре, работают не для всех форм ???
Только для журналов доков ?
В форме самого дока - не лепятся, ошибок тоже не выдаёт:

Процедура ПослеСозданияФормы() Экспорт
	    Картинка = КаталогИБ() + "\вася.ico";
	    Miracle.NewToolButton(340, "But"+_GetPerformanceCounter(), Картинка, "тра ля ля");
   	    Miracle.SetFormIcon(Картинка);
КонецПроцедуры


В форме журнала работает, в форме дока - нет, вк - последней сборки.
314. Abadonna 3969 23.09.10 11:24 Сейчас в теме
(313)
Только для журналов доков ?

По идее, должно везде... посмотрю...
Но больше версий без регистрации не будет.
Первым трем тестерам работоспособности регистрации - регистрация на один комп бесплатно.
P/S. Сейчас тестирую добавление любых пунктов меню (с реакцией, разумеется) для 7.7
Прикрепленные файлы:
315. sfol 23.09.10 11:30 Сейчас в теме
(314) Есть желание протестировать
316. Abadonna 3969 23.09.10 11:31 Сейчас в теме
(315) Доделаю всё, что можно улучшить, и выложу.
Думаю, в течение недели...
317. Ёпрст 1065 23.09.10 11:37 Сейчас в теме
Но больше версий без регистрации не будет


Ээ.. продавать что ли будегь ?
:)
318. Abadonna 3969 23.09.10 11:39 Сейчас в теме
(317) Ха! Народ на всяких отчетиках бабло делает, а я, что, рыжий? ;)
Однозначно не рыжий, потому что лысый :D
319. sfol 23.09.10 11:41 Сейчас в теме
(318) Главное, что бы за разумны денежки. Ну и конечно описалово нормальное, что бы не продавать ящик пандоры :)
320. Abadonna 3969 23.09.10 11:43 Сейчас в теме
(319) Вот поэтому тут бесплатная "as is", а в платной я как раз и собираюсь кое-что усовершенствовать и сделать полное описание
Кстати, заработал наконец-то форум разработки (все страницы теперь на месте, спасибо support-у). Там есть описание многих новых методов
321. Арчибальд 2709 23.09.10 12:05 Сейчас в теме
(318) Лысых Абадонн не бывает, ИМХО.
322. Abadonna 3969 23.09.10 13:13 Сейчас в теме
(321) Модератору от главного модератора: предупреждение за флад :D
323. Ёпрст 1065 23.09.10 14:13 Сейчас в теме
По-поводу кнопки в тулбаре:
Кнопка в форме появляется, если её прописывать в событии ПослеОткрытия, а вот в ПослеСозданияФормы - нет .. :(
Странно..
324. Abadonna 3969 23.09.10 14:19 Сейчас в теме
(323) А ни фига странного... Видимо сразу в момент ПослеСозданияФормы еще нет хэндла формы документа, вот кнопке и некуда расположиться.
В хэлпе четко написано:
ПРИМЕЧАНИЯ для работы с визуальными компонентами на форме (важно!!!!):
Так как компоненты типа ProgressBar, AviAnimator, GifAnimator и т.п. используют для установки хэндл отчета, нельзя применять их установку в процедуре ПриОткрытии() - хэндл еще не существует.
Способ обойти проблему, если хотите установить сразу при запуске отчета (обработки)
7.7
Процедура УстановитьТрекБар()
// ОбработкаОжидания отрабатывает только один раз, ниже ее отключаем.
// Хэндл окна отчета уже есть
Форма.ОбработкаОжидания("УстановитьТрекБар",0);
L.SetTrackBar(400,255);
L.TrackPosition(255);
КонецПроцедуры

Процедура ПриОткрытии()
Форма.ОбработкаОжидания("УстановитьТрекБар",1);
КонецПроцедуры
Другой вариант для 7.7 - formex, процедура ПослеОткрытия()
Показать

Рекомендаций по ПослеСозданияФормы я там не давал ;)
325. Abadonna 3969 23.09.10 14:29 Сейчас в теме
+(324) Вариант 1 (с ОбработкаОжидания) будет срабатывать ВСЕГДА, и без формекса
326. vip 23.09.10 14:36 Сейчас в теме
(324) Неправ.
Есть уже хэндл в ПослеСозданияФормы().

327. Abadonna 3969 23.09.10 14:37 Сейчас в теме
(326) Если бы он был - кнопка бы создалась! И никаких других вариантов.
Может, нет хэндла тулбара... щас проверю
328. Abadonna 3969 23.09.10 14:40 Сейчас в теме
Да и на фига я буду проверять? ;) Делай, как рекомендовано в хэлпе, и не морочь мозги :D
329. sfol 09.10.10 13:37 Сейчас в теме
(0) Доброго времени суток. Как-то всё поутихло здесь, а ведь публика поднапряглась и ждёт мега релиза :) с алсами, демками и.т.д.
330. Abadonna 3969 09.10.10 13:38 Сейчас в теме
331. пользователь 13.11.10 10:50
Сообщение было скрыто модератором.
...
332. пользователь 13.11.10 10:57
Сообщение было скрыто модератором.
...
333. пользователь 13.11.10 12:03
Сообщение было скрыто модератором.
...
334. пользователь 13.11.10 14:19
Сообщение было скрыто модератором.
...
335. пользователь 13.11.10 14:40
Сообщение было скрыто модератором.
...
336. пользователь 13.11.10 14:43
Сообщение было скрыто модератором.
...
337. пользователь 13.11.10 14:48
Сообщение было скрыто модератором.
...
338. пользователь 13.11.10 15:15
Сообщение было скрыто модератором.
...
339. пользователь 13.11.10 15:24
Сообщение было скрыто модератором.
...
340. пользователь 13.11.10 15:42
Сообщение было скрыто модератором.
...
341. пользователь 13.11.10 15:50
Сообщение было скрыто модератором.
...
342. пользователь 13.11.10 16:16
Сообщение было скрыто модератором.
...
343. пользователь 13.11.10 16:17
Сообщение было скрыто модератором.
...
346. пользователь 13.11.10 16:30
Сообщение было скрыто модератором.
...
345. пользователь 13.11.10 16:18
Сообщение было скрыто модератором.
...
348. пользователь 13.11.10 16:39
Сообщение было скрыто модератором.
...
350. пользователь 21.11.10 15:59
Сообщение было скрыто модератором.
...
352. пользователь 22.11.10 03:29
Сообщение было скрыто модератором.
...
351. пользователь 22.11.10 00:49
Сообщение было скрыто модератором.
...
353. Amel2010 43 06.12.10 18:48 Сейчас в теме
Такой вопрос автору...
Разбираюсь с NewToolButton
Работает как нужно. Но!
После перерисовки формы новая кнопка не видна!
Ловится ситуация при такой последовательности шагов:
1. Открыли форму, в которой добавили новую кнопку в тулбар
2. При нажатии на эту кнопку открылось модальное окно, которое НЕ перекрывало кнопку в тулбаре!
3. После закрытия этой модальной формы кнопка в тулбаре не отображается, хотя продолжает реагировать на нажатия и показывает всплывающую подсказку, если подвести к ней мышь

Если же модальная форма перекрывала кнопку перед закрытием, то кнопка не пропадает.

ЗЫ: пользуясь случаем, позвольте поблагодарить автора за проделанную работу!
ЗЫ2: вдруг идея понравится и реализуете: я сейчас юзаю одну dll для снятия скриншота с окон внутри 1С. И только для этого. Скриншот документов удобно посылать в мыле юзерам для согласования - чтобы они сразу имели представление о том, какой документ им предстоит согласовать. Если это не очень сложно, есть пожелание заиметь такой функционал в Вашей компоненте (хотелось бы загружать поменьше dll в 1С).
354. Abadonna 3969 10.12.10 17:45 Сейчас в теме
(353)
вдруг идея понравится и реализуете: я сейчас юзаю одну dll для снятия скриншота с окон внутри 1С

Там метод испокон веков существует, просто в описание забыл включить ;)
ScreenShot(ПолноеИмяФайла:строка);
ПолноеИмяФайла - имя файла "*.jpg" для сохранения картинки экрана.
В у меня в 77 так "фотает" экран при обломе ночного восстановления ГП
Файл сжимается с CompressionQuality = 25 - самое оптимальное по опыту (и небольшой, и всё нормально видно)
355. Amel2010 43 14.12.10 09:17 Сейчас в теме
Это не совсем то... речь идет о скриншоте одного дочернего окна (документа).
В моем случае некорректно будет отправлять снимок всего окна 1С.
356. Abadonna 3969 08.01.11 19:07 Сейчас в теме
2.1.1.3 Навеяно:
http://forum.infostart.ru/forum24/topic37335/message408030/?result=edit#message408030
А какие еще методы - не скажу ;) Смотрите позже на нашем сайте
Сервис-М
Блин, забыл :
ZCompressString(ВходнаяСтрока:строка); - ужимаем строку
ZDecompressString(ВходнаяСтрока:строка); - распаковываем ранее ужатую строку
357. Abadonna 3969 09.01.11 13:43 Сейчас в теме
2.1.1.4
По просьбе Чебурашки:
ZCompressFile(ПолноеИмяИсходногоФайла,ПолноеИмяСжатогоФайла: строки):число
ПолноеИмяСжатогоФайла - необязательный, по умолчанию файл в той же директории, с тем же именем, расширение *.ZLIB
При упаковке в res-header прописывается полное имя исходного файла
Возвращает размер упакованного файла в байтах
ZDecompressFile(ПолноеИмяИсходногоФайла,ПапкаДляИзвлечения: строки):строка
ПапкаДляИзвлечения - необязательный, по умолчанию в ту же папку, которая была прописана при упаковке в res-header. Оригинальное имя файла для
распаковки тоже берется из res-header
Возвращает имя распакованного файла.
Пример:
Процедура Упаковать()
      Результат=L.ZCompressFile(КаталогИБ()+"IndyInDepth.doc"); 
      Сообщить(""+Результат+" байт");	  
КонецПроцедуры


Процедура Распаковать()
      Результат=L.ZDecompressFile(КаталогИБ()+"IndyInDepth.ZLIB"); 
     Сообщить(Результат);	  
КонецПроцедуры
Показать

Тест на сжатие:
1 564 672 байт - исходный (IndyInDepth.doc)
453 798 байт - архиватор zip из-под Total Commander (29,00%)
459 451 байт - этот архиватор (29,36%)
P.S. Архивы, созданные ZCompressFile, читаются только ZDecompressFile (может в этом даже польза есть ;))
358. пользователь 09.01.11 17:09
Сообщение было скрыто модератором.
...
359. пользователь 09.01.11 17:10
Сообщение было скрыто модератором.
...
360. пользователь 09.01.11 17:16
Сообщение было скрыто модератором.
...
361. пользователь 09.01.11 17:18
Сообщение было скрыто модератором.
...
362. пользователь 09.01.11 17:21
Сообщение было скрыто модератором.
...
363. пользователь 09.01.11 17:21
Сообщение было скрыто модератором.
...
364. пользователь 09.01.11 17:22
Сообщение было скрыто модератором.
...
365. пользователь 09.01.11 17:23
Сообщение было скрыто модератором.
...
366. пользователь 09.01.11 17:26
Сообщение было скрыто модератором.
...
367. пользователь 09.01.11 17:27
Сообщение было скрыто модератором.
...
368. пользователь 09.01.11 17:47
Сообщение было скрыто модератором.
...
369. пользователь 09.01.11 17:56
Сообщение было скрыто модератором.
...
370. пользователь 09.01.11 18:01
Сообщение было скрыто модератором.
...
371. пользователь 09.01.11 18:03
Сообщение было скрыто модератором.
...
373. пользователь 09.01.11 18:58
Сообщение было скрыто модератором.
...
374. пользователь 09.01.11 19:01
Сообщение было скрыто модератором.
...
375. пользователь 09.01.11 19:33
Сообщение было скрыто модератором.
...
372. пользователь 09.01.11 18:37
Сообщение было скрыто модератором.
...
376. пользователь 09.01.11 19:39
Сообщение было скрыто модератором.
...
377. пользователь 09.01.11 19:43
Сообщение было скрыто модератором.
...
378. пользователь 09.01.11 19:50
Сообщение было скрыто модератором.
...
379. пользователь 09.01.11 19:54
Сообщение было скрыто модератором.
...
380. пользователь 09.01.11 20:10
Сообщение было скрыто модератором.
...
381. пользователь 09.01.11 20:13
Сообщение было скрыто модератором.
...
382. пользователь 09.01.11 20:31
Сообщение было скрыто модератором.
...
383. пользователь 09.01.11 20:33
Сообщение было скрыто модератором.
...
384. пользователь 09.01.11 20:58
Сообщение было скрыто модератором.
...
387. пользователь 09.01.11 21:09
Сообщение было скрыто модератором.
...
385. пользователь 09.01.11 20:58
Сообщение было скрыто модератором.
...
386. пользователь 09.01.11 21:04
Сообщение было скрыто модератором.
...
388. nicxxx 255 11.01.11 08:37 Сейчас в теме
ошибка распаковки ZDecompressString()
AddIn.MiracleClass: buffer error
сначала сжимаю строку, которая получается вот так: ЗначениеВСтрокуВнутр(ТаблицаЗначений)
если в ТЗ данных нет, то распаковка проходит нормально
если есть хоть одна строка - получаю ошибку
389. Abadonna 3969 11.01.11 09:23 Сейчас в теме
(388) Посмотрю, на ТЗ не проверял... Может ей там символ какой-нить не нравится
390. Abadonna 3969 11.01.11 15:26 Сейчас в теме
(388) Ну, мне все ясно. Ты пробовал напечатать ЗначениеВСтрокуВнутр(ТЗ)? См. рис, там куча непечатных символов
Кстати, 1С и не пишет в этом методе от ТЗ
Синтаксис:
ЗначениеВСтрокуВнутр(<Объект>)
Назначение:
Преобразование значения объекта агрегатного типа в строковое системное представление.
Возвращает: представление значения объекта в строковом системном виде.
Параметры:
<Объект> - значение объекта агрегатного типа данных которое нужно преобразовать.

Зато в ЗначениеВСтроку конкретно указано
начениеВСтроку(<?>);
Синтаксис:
ЗначениеВСтроку(<Объект>)
Назначение:
Преобразование значения объекта в строковое системное представление. Возвращает: строковое представление значения объекта.
Параметры:
<Объект> - значение, которое нужно преобразовать. В качестве параметра для данного
метода допускается передавать объекты типа "СписокЗначений" и "ТаблицаЗначений" .

Код
Процедура ТЗ()  
	ТЗ.Очистить();
	ТЗ.НоваяКолонка("Первая");
	ТЗ.НоваяКолонка("Вторая");
	ТЗ.НоваяСтрока();
	ТЗ.Первая="Раз";
	ТЗ.Вторая=1;
	ТЗ.НоваяСтрока();
	ТЗ.Первая="Два";
	ТЗ.Вторая=2;                        
	Стр1=ЗначениеВСтроку(ТЗ);       
	Стр10=ЗначениеВСтрокуВнутр(ТЗ);     
	Сообщить(Стр10);   // вот тут глянь какие кракозябры внутри текста !
	Стр2=L.ZCompressString(Стр1);   
	Стр3=L.ZDecompressString(Стр2);
	пТЗ=СоздатьОбъект("ТаблицаЗначений");
	пТЗ=ЗначениеИзСтроки(Стр3);  
	ТЗН.Загрузить(пТЗ);
КонецПроцедуры
Показать

отработал без проблем (рис).
Прикрепленные файлы:
391. Abadonna 3969 11.01.11 21:34 Сейчас в теме
+ (390) Вообще-то ЗначениеВСтрокуВнутр(<Объект>), хоть оно и работает, для ТЗ некорректно использовать.
Это либо базовый тип, понятный любой системе (число, строка, дата), либо объект, имеющий внутренний идентификатор в метаданных
(элемент справочника, документ, перечисление). ТЗ к таковым никаким боком не относится. А вот ячейка ТЗ - да.
392. nicxxx 255 13.01.11 09:02 Сейчас в теме
когда к ТЗ, которая получена из таб части документа методом Выгрузить() применяю ЗначениеВСтроку(), то после обратного действия ЗначениеИзСтроки() в этой ТЗ не заполнена колонка Единица. а вот ЗначениеВСтрокуВнутр() отрабатывает отлично. мистика?
плюс очевиден, минус только один - строка длиннее получается, причем, чем больше строк в ТЧ, тем больше разница. для примера: 1 строка в ТЧ, ЗначениеВстрокуВнутр() длинее на 18%, а для 15 строк в ТЧ - уже 35% разницы
393. Abadonna 3969 13.01.11 09:20 Сейчас в теме
Во всяком случае согласись, то функция, предназначенная для работы со строками, вовсе не обязана работать со строками, в которых есть непечатные символы ;)
394. nicxxx 255 13.01.11 09:54 Сейчас в теме
соглашусь отчасти. 1С не понимает только символ с кодом 0, а символы 1-32 вроде бы "в законе", но лучше их не использовать.
щас тестировал твою компоненту. версия 2.1.1.4. сравнивал со своей zipstring.dll
все равно твоя выдает ошибку buffer error, причем на любой ТЗ - хоть ЗначениеВСтрокуВнутр(), хоть ЗначениеВСтроку().
причем miracle как-то подозрительно хорошо упаковывает строки:
исходный размер 7771 байт, miracle 137 байт, zipstring 792 байта
похоже, что метод ZCompressString() возвращает строку, в которой есть символы с кодом 0 (но не всегда), а на первом таком символе 1С прекращает обработку строки. У меня тоже был такой баг, я взял алгоритм преобразования сжатой строки из binfiles.dll
395. Abadonna 3969 13.01.11 09:58 Сейчас в теме
Со стокой я не парился вообще, ZLibEx, её метод CompressString()
причем на любой ТЗ - хоть ЗначениеВСтрокуВнутр(), хоть ЗначениеВСтроку().

Выше же есть код (проверенный), где у меня без базаров отработало ЗначениеВСтроку() и все компрессии/декомпресии
Картинка прям с окна 1С
396. nicxxx 255 13.01.11 10:19 Сейчас в теме
ZLibEx, её метод CompressString() не катит в чистом виде, надо конвертировать. у тебя binfiles.dll есть? там есть модуль конвертации.
у меня этот проверенный метод ЗначениеВСтроку() на реальной ТЗ из табл части документа тоже ошибку выдает при распаковке.
повторюсь, ZCompressString() выдает строку, в которой может быть символ с кодом 0, а может и не быть. если исходная строка маленькая (203 байта занимает твоя тестовая ТЗ, выгруженная методом ЗначениеВСтроку()), то скорее всего этого символа там не будет, а если строка длинная, ну хотя бы 7 килобайт, как у меня на реальной ТЗ, то - вуаля, ловим ошбику
397. Abadonna 3969 13.01.11 10:39 Сейчас в теме
Да проще всего сразу обработать прям в 1С ЗначениеВСтроку() или ЗначениеВСтрокуВнутр()
на данном этапе я точно с методом в либе возиться не буду. ежели только (гляну) подправить сам метод в ZlibEx
398. nicxxx 255 13.01.11 11:11 Сейчас в теме
обработать в 1С не получится. компонента возвращает в 1С строку до первого символа с кодом 0. я проверял. надо править метод в ВК
399. Abadonna 3969 14.01.11 14:12 Сейчас в теме
(398) В общем, победил я ЗначениеВСтрокуВнутр, любую длину строки и т.д.
ZCompressString(ВходнаяСтрока,ИмяФайлаДляСохранения: строки):строка
ВходнаяСтрока - что сжимать
ИмяФайлаДляСохранения - необзятельный, при указанном сжатый поток сохраняется в указанный файл
Возвращает сжатую строку в кодировке base64 (и читать, и записывать удобнее)
ZDecompressString(ВходнаяСтрока:строка):строка
ВходнаяСтрока - ранее сжатая строка
Возвращает распакованную строку
Тест проводился на ТЗ с 4 колонками и 2000 строками
Процедура Сформировать()
	Спр=СоздатьОбъект("Справочник.Номенклатура");
	Спр.ВыбратьЭлементы();  
	ТЗ.Очистить();              
	ТЗ.НоваяКолонка("НомерПП");
	ТЗ.НоваяКолонка("Элемент");                  
	ТЗ.НоваяКолонка("Наименование");
	ТЗ.НоваяКолонка("Код");
	НомерПП=0;
	Пока Спр.ПолучитьЭлемент()=1 Цикл   
		Если Спр.ЭтоГруппа()=1 Тогда Продолжить; КонецЕсли;
		НомерПП=НомерПП+1;
		Если НомерПП>До Тогда Прервать; КонецЕсли; 
		Состояние("Обрабатывается строка ТЗ "+НомерПП);
		ТЗ.НоваяСтрока();
		ТЗ.НомерПП=НомерПП;
		ТЗ.Элемент=Спр.ТекущийЭлемент();   
		ТЗ.Наименование=Спр.Наименование;
		ТЗ.Код=Спр.Код;  
	КонецЦикла;        
	
	Стр1=ЗначениеВСтрокуВнутр(ТЗ);       
	Т=СоздатьОбъект("Текст");
	Т.ДобавитьСтроку(Стр1);
	Т.Записать("d:\ZIPTEST_1С.txt");
	Состояние("Упаковка...");
	Стр2=L.ZCompressString(Стр1,"d:\ZIPTEST_ZIP.txt");     
	Состояние("Распаковка...");
	Стр3=L.ZDecompressString(Стр2);       
	пТЗ=СоздатьОбъект("ТаблицаЗначений");
	пТЗ=ЗначениеИзСтрокиВнутр(Стр3);  
	ТЗН.Загрузить(пТЗ);
КонецПроцедуры
Показать

Результаты теста:
Записанная "родная" ЗначениеВСтрокуВнутр(ТЗ) - 320К
Сжатая - 66К
Прикрепленные файлы:
Оставьте свое сообщение