Работа с 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, добавлен "Рабочий стол". Скачивать по ссылке в публикации
Загрузка из файлов xls, xlsx, ods, csv, mxl в УТ11, КА 2, ERP 2, Розница 2. Задействованы все возможности конфигурации - заполнение реквизитов номенклатуры, дополнительных реквизитов и сведений, характеристики, доп.реквизиты и сведения характеристик. Дополнительные обработки для расширения возможностей.
Обработки предназначены для следующих конфигураций: Бухгалтерия предприятия, редакция 3.0; Управление нашей фирмой, редакция 3.0; Управление торговлей, редакция 10.3; Управление торговлей, редакция 11
Эволюция не стоит на месте - новая удобная версия функциональной обработки для Вашего бизнеса! Что же Вы получаете? Удобный и интуитивно понятный интерфейс с 3-мя этапами работы. 2 режима - автоматический и ручной. Чтение XLSX, XLSM, CSV, XML/YML форматов без офиса, на любом сервере! Визуальное связывание колонок файла и реквизитов простым перетаскиванием колонок. Создание или обновление номенклатуры с иерархией, характеристик, доп. реквизитов, упаковок, загрузка практически неограниченного количества картинок на одну номенклатуру (с возможностью загрузки в несколько потоков одновременно), с хранением в томах или в базе. Загрузка номенклатуры поставщиков или поиск по их данным номенклатуры. Загрузка доп. реквизитов в характеристики. Загрузка штрихкодов с генерацией новых. Создание элементов справочников и ПВХ "на лету" для выбранных реквизитов. (Обновление от 09.04.2024, версия 9.9 - 9.10)
Обработки предназначены для следующих конфигураций: Бухгалтерия предприятия, редакция 3.0; Управление нашей фирмой, редакция 3.0; Управление торговлей, редакция 10.3; Управление торговлей, редакция 11
Реальный помощник, с помощью которого Вы сделаете необходимые документы для Wildberries, OZON, ЯндексМаркет, Мегамаркет, Aliexpress, "Детский мир", Казань-Экспресс, "Леруа Мерлен", ЭНФАНТА (Акушерство), ЛаМода, Летуаль, "Твой дом" в документы "Отчет комиссионера (агента) о продажах" и другие, может работать в "Бухгалтерия 3", "Бухгалтерия 3 КОРП", УТ 11, УНФ, КА 2, ERP.
Возможность подключить любые маркетплейсы. Анализ продаж ОЗОН.
30 дней БЕСПЛАТНОГО пользования!
Универсальная программа для распознавания ЛЮБЫХ СКАНОВ ИЛИ ФОТО ТОВАРНЫХ ДОКУМЕНТОВ в 1С. Не требует указания параметров и предварительной настройки. Просто выбираете файл (PDF, JPG, DOC, XLS, HTML и т.д.) выбираете документ 1С и нажимаете кнопку "Распознать и загрузить".
Универсальная обработка для загрузки документов из Excel в 1С. Не требует указания параметров (номера колонок, номер первой строки таблицы и т.д.) и предварительной настройки. Просто выбираете файл Excel, документ 1С и нажимаете кнопку "Загрузить". Обработка сама находит таблицу в файле Excel, необходимые для загрузки данные в ней (номенклатура, количество, НДС, цена, сумма) и загружает ее в 1С. Вместе с номенклатурой может найти контрагента, номер и дату документа, штрих-коды, серии ГТД, страну и т.д. Распознает документы ЛЮБОЙ ФОРМЫ (УПД, ТОРГ-12, заказ, отчет комиссионера и т.д.). Не требует MS Office. Для поиска таблиц используются методы эвристического поиска. Загружает только то, что нужно, т.е. пропускает повторы шапки таблицы, заголовки, промежуточные итоги, подписи и т.д. Содержит модуль работы с электронной почтой и api-загрузчик отчетов о продажах маркетплейсов.
Загрузка данных отчета о реализации товаров из сервиса СберМегаМаркет для конфигурации: Бухгалтерия предприятия, редакция 3.0; Управление торговлей, редакция 11 и Управление нашей фирмой, редакция 3.0 в документ "Отчет комиссионера (агента) о продажах".
(92) Отследить на статус панели, где начинается CAP НЕВОЗМОЖНО, это не отдельные окошки с хэндлом. Невозможно, кстати, и в 8.1 отловить конкретную кнопку, нет ни у одной заголовка а класс окна везде один и тот же V8FormElement
(93) не понял, что даст попытка, он то нормально сработал, а потом упал с ошибкой после уже...
Ааа ты про разрушение в начале процедуры, перед новым созданием, понял ок... можно и так. сенкс
(99) Уговорил, черт красноречивый :D
Перезакачивай, четвертый параметр (по умолчанию=0) - ширина прогресс-бара. Если ноль, ширина=150, иначе - указанная
прикольно теперь, раз 5 нажал сформировать отчет все показывается нормально, но потом 1с раз и улетела причем без отладки :( просто слетела нафиг и так постоянно!
(103) Спасибо за тестирование. Сделал ошибку из-за невнимательности, разрушал не основного владельца прогресс-бара.
Исправил, раз 10 прерывание сделал - все ОК.
P.S. И не надо теперь перед началом установки разрушать (ставить в 100).
Он теперь сам обязательно разрушит старый по SetStatusBarGauge
В итоге, вниз добавляет таблицу с примером, которую я не прошу добавлять :)
p.s. Опечатка в методе XLSDelFomat(Индекс) вместо XLSDelFo"R"mat(Индекс) ;)
1.9.7.5
По просьбе http://infostart.ru/public/59436/forum/topic/28936/message/330549/#message330549 (4,5)
добавлены методы:
StayOnTop() - сделать главное окно 1С всегда поверх всех окон
Примечание:
в связке с MainNoMinimize() юзвери никак от окна избавиться не смогут, только закрыть ;)
PlayBeep(Частота, Длительность: целые) - пискнуть системным динамиком
Частота, Длительность - необязательные, по умолчанию 440 Гц (Ля) и 1000 - одна секунда.
Примечание: проверить не смог, динамика нема ;)
(141) да, имеется ввиду реквизит диалога типа дата. При установке региональных параметров "Английский (США)" формат даты в диалоге остаётся "дд.мм.гг", а хотелось бы чтобы он понимал системные настройки и переходил в режим "мм.дд.гг". Ну или хотябы мог быть переведён в такой режим программно.
Версия 1.9.9.15 (после 12:45 Москвы 21.09.10), новый метод:
SetButtonCaptionEx(ЗаголовокКнопки1С,ЦветФонОт,ЦветФонДо,ЦветРамки,ЦветШрифта)
Для более явного выделения кнопки (рамка вокруг)
Дополнительный параметр ЦветРамки - целое
//-- бардовая рамка (128)
L.SetButtonCaptionEx("Закрыть",8684799,255,128,65021);
Не применять для форм, открываемых модально!!!
//-- синяя рамка (15966336)
L.SetButtonCaptionEx("С&формировать",16245453,7950848,15966336,0);
Примутил "Арчибальдовидные" окошки ;) На фиг, сам не знаю. Вдруг кому-нибудь понравится.
Примечание: это не картинка на форму наложена. Варианты градиента могут быть любые.
(131) Может, но методом советских отолярингологов.
Программно фокус на окно, программно выделить всё, программно копировать.
И есть метод получения текста из буфера.
Иногда странно как-то прогресс SetStatusBarGauge цепляется внизу (см. картинку) + не учитывает наличие доп полей типа время и раскладка клавиатуры.
Добавьте "для продвинутых" GetPID1C() пл3 :)
А скоро ли появятся обещанные кнопочки на родных тулбарах ? :oops:
(145)
1.SetStatusBarGauge(ЦветСтарт,ЦветФиниш,Лево,Ширина:целые) – установить индикатор прогресса на статус-панели 1С (там, где выводится Состояние(«бла-бла»), в правой части панели). Значение процента прогресса выводится посередине индикатора.
ЦветСтарт,ЦветФиниш - необязательные, по умолчанию от белого до темно-серого, цвет полоски индикатора
Лево - необязательный, если ноль - встроенное, иначе указанное - левая граница бара на статус панели
Ширина - необязательный, если ноль - встроенное (150), иначе указанное - ширина бара на статус панели.
Используй параметр Лево. Автоматом наличие панелей не определяется 2. Кнопки уже есть (давно)
http://infostart.ru/public/59436/forum/topic/28936/?PAGEN_1=5 пост 50
1.9.9.3 Для удобства работы с главным окном добавил метод
GetMainRect(Что:строка):число
Что - необязательный, по умолчанию "L"
Что="L" - абсолютная Х-координата верхнего-левого угла окна 1С
Что="T" - абсолютная Y-координата верхнего-левого угла окна 1С
Что="W" - ширина в пикселях окна 1С
Что="H" - высота в пикселях окна 1С
Версия 1.9.9.6
Метод
RunAndWait(КоманднаяСтрока:строка, ПараметрыЗапуска:строка, ОконныйРежим:целое) - запустить внешнее приложение и подождать его выполнения.
КоманднаяСтрока - строка для запуска приложения
ПараметрыЗапуска - строка стартовых параметров, необязательный, по умолчанию без параметров
ОконныйРежим: целое 0-10 (стандарные режимы окна Windows), необязательный, по умолчанию 1 - показать окно в обычном режиме (SW_SHOWNORMAL)
Кроме того, основные:
0 - не показывать окно (SW_HIDE)
2- минимизировать окно (SW_SHOWMINIMIZED)
3- максимизировать окно (SW_SHOWMAXIMIZED)
Для чего? Например, надо запустить программу, которая что-то там сделает (посчитает) и поместит результат в определенный файл. После RunAndWait можно будет считать этот файл.
Пример:
L.RunAndWait("C:\Program Files\Total Commander\Plugins\exe\AkelPad.exe");
// следующий оператор отработает только после закрытия блокнота (AkelPad)
Сообщить("Закрыл, гаденыш? Молодец!");
Добавлены методы для работы с картинками XLS-файлов:
XLSPictCount() - возвращает количество картинок в xls-файле
Примечание: считаются картинки во всех листах открытого файла
XLSSavePicture(ПорядковыйНомерКартинки:число,ИмяФайлаДляЗаписи) -
считать картинку с указанным номером и сохранить её в указанный файл. Возвращает строку размеров записанной картинки вида Ширина х Высота
Примечания:
Отсчет картинок от 1 до Счетчик
Номер картинки в файле - это не как они видятся в файле, а в порядке их добавления туда
Пример:
L.ReadXLS("c:\MiracleV8_TestBase77\Картинки.xls");// открыли файл
Для А=1 По L.XLSPictCount() Цикл // цикл по всем картинкам файла
ИмяФайла=Строка(А)+".bmp";
Сообщить(L.XLSSavePicture(А,КаталогИБ()+ИмяФайла));
КонецЦикла;
Подскажите пожалуйста, такая ошибка:
при чтении из экселя ячейки где стоит не значение, а формула, результатом которой получается значение не целое, то он вываливается в исключение при чтении:
L.ReadCell(Лист,Стр,Столб);
AddIn.MiracleClass: '97.43' is not a valid integer value
причем он правильно считывает значение, но почему-то ждет что оно должно быть целое....
как с этим бороться?
Поленился сразу дописать.
Новый метод:
GetTraffic() - возвращает строку с разделителями вида:
00-22-15-D3-D3-BC;NVIDIA nForce Networking Controller - Kaspersky Anti-Virus NDIS Miniport;13058897;5995229
MAC-адрес; Имя сетевого интерфейса; Всего принято байт; Всего отправлено байт
(за время сеанса Windows)
А если прийдут злые, жутко умные дядьки из обэпа, которые разбираются с лицензировании и спросят: а что это у вас за такое тут стоит? У 1Ски такого нету. Где лицензионное соглашение? Есть клиенты, которые придираются к каждой мелочи и к каждой дллке. Иностранные компании, в частности.
P.S. Например, во всех линуксах есть лицензионное соглашение, несмотря на открытый исходный код - требование закона.
(164) Ответишь дядькам, что технология создания внешних компонент для 1С является абсолютно штатной и рекомендована фирмой 1С для расширения функционала программы.
(172) Смех-смехом, а один клиент просто плакал, что трудно разобраться, где какая база бух 7.7 (до фига их у них и заголовки везде стандартные). После установки в каждое окно своей иконки, они просто счастливы стали.
Правда, таких мерзких напихали :cry: :D
(173) у меня ещё со старой версии миракла базы имеют разные значки и логотип...
Тоже задумался о различии баз...как раз думал о добавлении логотипа вместо серого фона, а потом случайно наткнулся на овчарочку
А вот с "бантиками" я еще не разбирался. Очень хотелось бы увидеть полноценную тестовую базу со всеми бантиками
А КАКУЮ именно базу? А то я тут от 7.7 до 8.2 бедный тружусь :(
7.7 скорее?
(178) Фиг его знает, может я там уже типы поменял, надо вспоминать.
Как только совсем делать нечего станет - напишу полноценный хелп. Жаль только, что из форума из 6 страниц пропало 5, там и примеры кода были...:(
Да, заметил еще, что в отдельном файле с описанием нет функции SetMDIPicture, а в "readme.txt" из тестовой базы - есть. Хотелось бы полное описание всех возможностей.
И еще:
L.SetGifAnimator(10, 10, Путь+"Bird-06.gif");
выдает ошибку: "ошибка при вызове метода... Типы не совпадают (0)".
Подскажите в чем дело, пожалуйста.
L.SetGifAnimator(10, 10, Путь+"Bird-06.gif");
выдает ошибку: "ошибка при вызове метода... Типы не совпадают (0)".
Я там в описаловке наврал: сначала файл, потом точки надо.
Т.е. надо L.SetGifAnimator(Путь+"Bird-06.gif",10,10);
а вообще их можно совсем не задавать [L.SetGifAnimator(Путь+"Bird-06.gif");], тогда к краешку прижмется сама (по умолчанию там 5 и 32 - как раз под формочку 8.1 заточено)
Короче, фиг его уж знает почему, для GifAnimator я сделал всё наоборот, чем на AviAnimator :cry:
Спасибо, все прекрасно работает! Вот бы еще расширить функции по работе со звуком (видео), например пауза, продолжение, чтение позиции, установка позиции, чтобы можно было на основании данной компоненты сделать полноценный медиа проигрыватель. А так супер!
чтобы можно было на основании данной компоненты сделать полноценный медиа проигрыватель
Честно говоря, звук и видео я больше ради баловства воткнул, ибо как раз являюсь противником пихания в 1С всего-всего... Один фиг внешний плейер всегда будет лучше.
Но, вообще-то, проблем расширить функционал работы со звуком и видео особых нет
(184)
По поводу внешнего плеера я согласен, что он будет лучше, есть конечно и визуальные activex компоненты (wmp), но мне не особо нравиться как они работают в терминальном режиме, да и видео не всегда нужно, нужна простая не визуальная компонента, которая сможет проигрывать, останавливать, продолжать с указанного места проигрывать аудио файл, а незатейливый интерфейс можно и самой 1С состряпать.
(184) в качестве плюшки.
Сильно сложно наваять подобное? пусть грубое, но хоть чуток похожее :)
Сам пробовал, но все время никак да и разбираться со звуком и видео надо.
(190) конечно для приколу :)
ну и на винде до сих пор такой проги не видел.
Есть либо навароченые слишком либо ну совсем не такое.
А так, 1С vs IPHone ;)
Добрый день, есть проблема с регистрацией miracle.dll 1.9.9.7 в Win2000, хотя права админовские (на XP проблем нет). Расположение dll (на сервере или локально) роли не играет. При попытке воспользоваться Vkloader выдает: "файловая ошибка". Возможно ли проверить и исправить или что-нибудь порекомендовать?
замечания по создаваемым кнопкам в тулбаре (всё для 77):
1. При наведении мышкой на кнопку подсказка всплывает не регулярно, со специфическим голубым фоном и фиксированной ширины (не весь текст показывает либо много пустого места).
2. При наведении мышкой на кнопку в строку состояния пишется бред из подсознания 1С типа "Справочник", "SrtReplace,СтрЗаменить", "Коллекции не поддерживаются" и т.д. При переоткрытии формы текст меняется.
3. Иногда при попытке создать кнопку начинает сыпать ошибку "Bits index out of range" и кнопок при этом не видно. Помогает перезаход в програму.
4. Нельзя ли сделать так, чтобы при наведении на кнопку она становилась выпуклой (как стандартные кнопки).
Заранее спасибо.
Версия 1.9.9.11.
По просьбе, новый метод для установки jpeg/jpg картинок на форму 1С 7.7 (отчет, обработка, справочник, документ...) с возможностью пропорционального масштабирования и откликом на двойной клик на картинке.
Метод:
L.SetJpgPicture(ПолноеИмяФайла:строка,Масштаб:число,Лево,Верх:целые);
Масштаб - возможно дробное, больше, равно или меньше 1.
Если Масштаб меньше 1 - картинка увеличивается, если больше - уменьшается
Лево,Верх - необязательные, по умолчанию 5, расположение верхнего/левого угла картинки относительно верхнего/левого угла клиентской части формы.
Двойной клик по картинке генерирует внешнее событие, которое может быть обработано процедурой ОбработкаВнешнегоСобытия(Источник,Событие,Данные),
где Источник: строка "MiracleV8", Событие: строка "PictureDblClick", даные: строка полного имени файла картинки.
Примечание: на форму можно установить неограниченное количество картинок, каждая картинка "помнит" свой файл.
Возвращает строку вида ШиринахВысота - новые размеры установленной картинки
Пример:
Процедура ОбработкаВнешнегоСобытия(Источник,Событие,Данные)
Если Событие="PictureDblClick" Тогда
Сообщить("ВНЕШНЕЕ СОБЫТИЕ: Двойной клик по картинке. Файл: "+Данные,"i");
КонецЕсли;
КонецПроцедуры
Процедура Сформировать()
// с маштабом 1:1.5, лево по умолчанию - 5 пикс., верх по умолчанию 5 пикс.
L.SetJpgPicture("c:\MiracleV8_TestBase77\ExtForms\Роза.jpeg",1.5);
// с маштабом 1:1.3, сдвинуто влево на 180 пикселей, верх по умолчанию 5 пикс.
L.SetJpgPicture("c:\MiracleV8_TestBase77\ExtForms\Цветы.jpeg",1.3,180);
КонецПроцедуры
Показать
Примечание: если в ОбработкаВнешнегоСобытия поставить
ЗапуститьПриложение(Данные), у меня, например, картинка открывается для просмотра в программе просмотра факсов и изображений
Добавлен симпатичный календарик из Дельфи с возможностью получения выбранной даты через ОбработкаВнешнегоСобытия
Метод L.SetCalendar(Лево,Верх:целые);
Лево, Верх - необязательные, по умолчанию 5.
Примечание: для 8.1 Верх ставить не меньше 30, иначе прячется под верхней панелью.
Генерит событие Источник="MiracleV8", Событие="CalendarChange", Данные - выбранная дата.
Примечание: технология получение отклика (обработки событий компонент Дельфи)
изложена в http://infostart.ru/public/73902/