Размещение произвольных файлов с данными в файлах .mxl и .ert

07.02.12

База данных - Инструменты администратора БД

Добавляем произвольные файлы с данными (архивы, исполняемые файлы, dll, и прочее) прямо в нашу внешнюю обработку, по принципу "всё с собой", в итоге в передаваемом на сторону ert-файле с обработкой всё необходимое для её функционирования (например, архив с данными, или используемая внешняя dll-библиотека) уже есть внутри.

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

Наименование Файл Версия Размер
InstallEx.zip
.zip 105,55Kb
53
.zip 105,55Kb 53 Скачать

Данная проблема давно бередит умы одинэсников, и уже есть несколько очень неплохих разработок на эту тему. Из встреченных мной:
//infostart.ru/public/14459/
//infostart.ru/public/69202/
//infostart.ru/public/70304/

Однако во всех этих разработках есть одна общая деталь: исходный файл нужно специально кодировать, преобразовывать, и т.п., чтобы потом его можно было засунуть в лист Moxcel. Потом, после того, как извлекли новую сущность из листа Moxcel, производится обратное преобразование, и вуаля - перед нами исходный файл! Это, конечно, весьма интересный подход, но у меня, почему-то, возникло желание чего-то более простого и юзабельного, желательно, чтобы вот прямо в 1С, штатно, щёлкнул на файл, и чтобы он тут же в лист Moxcel и просочился, безо всяких хитромудрых упаковок в картинку и т.п.
И что вы думаете, я нашёл такую фичу! В контексте редактируемого листа Moxcel, в меню Таблица\Вставить рисунок\Объект я нашёл весьма любопытную возможность: опция "Создать из файла", где и можно, совершенно штатно, прямо из 1С, указав любой файл, поместить его в контейнер на листе. Тут же есть и мини-редактор этого контейнера (Объект: Пакет\Изменить пакет), где можно изменить имя вложенного файла (Правка\Метка), извлечь файл (Файл\Сохранение содержимого), перезалить в пакет другой файл (Файл\Импорт), и кое-что ещё, по мелочам.
Однако, довольно быстро пришло разочарование, ведь 1С не предоставляет этот замечательный контейнер в виде объекта, и в Таб.ТекущийОбъект - шиш с маслом. Но мы не сдадимся так просто, ведь правда?
Посмотрев в содержимое файла .ert, я увидел - ну вот же оно, содержимое моего файла, нужно только его ДОСТАТЬ. А достать, надо сказать, оказалось непросто: ведь содержимое файла вложено в Ole10Native, Ole10Native - в Compound, Compound - в объект 1С Moxcel, Moxcel - в, опять-таки, Compound. Но разве мифические трудности остановят настоящего программера? Вооружившись Гуглем, Конфигуратором, своей обработкой по низкоуровневому чтению Compound-файлов ( //infostart.ru/public/115207/ ), и напильником, я приступил к поиску и извлечению этой Кащеевой иглы. И вы знаете, не безуспешно! Результат своих изысканий и предоставляю на суд общественности.

См. также

Монопольное открытие формы обработки 1с77

Инструменты администратора БД Платформа 1С v7.7 Конфигурации 1cv7 Россия Абонемент ($m)

Блокировка открытия формы обработки одним пользователем.

1 стартмани

24.05.2023    568    igor7777    1    

0

Групповое переименование файлов для 1С 7.7

Инструменты администратора БД Платформа 1С v7.7 Конфигурации 1cv7 Абонемент ($m)

Простецкий скрипт переименования файлов в папке в нижний регистр, будет полезен программистам и системным администраторам имеющим навыки програмирования в 1С. Можно легко настроить под себя, спасает мне периодически час времени, может, кому еще будет полезен.

1 стартмани

18.02.2022    3776    0    igor7777    6    

2

[7.7 ТиС. СТОП-БАРДАК] Автоперенос непроведенных документов на текущий день

Инструменты администратора БД Оперативный учет 7.7 1С:Торговля и склад 7.7 Управленческий учет Абонемент ($m)

Боремся с бардаком. Работы в прошлых датах запрещены. Непроведенные документы (по разным причинам) - автоматом переносятся в начало текущего дня при запуске любого первого сеанса 1С в текущем дне. Задержка старта 1С - практически незначима. Не требует настройки, не требует допрограммирования (исключая один оператор вставки в процедуру старта системы). Можно обработку выполнять вручную с любой периодичностью.

2 стартмани

25.05.2020    5678    2    CheBurator    3    

2

Анализ 1С: Предприятие 7.7 с помощью ELK стека

Журнал регистрации Инструменты администратора БД Платформа 1С v7.7 Конфигурации 1cv7 Бесплатно (free)

Рассмотрим систему на базе Elasticsearch, Logstash и Kibana (ELK Stack) для анализа логов 1С Предприятие 7.7 с целью визуализации и анализа событий 1С.

22.01.2019    11073    phsin    20    

27

Автоматическое объединение конфигураций 1С 7.7

Инструменты администратора БД Платформа 1С v7.7 Конфигурации 1cv7 Абонемент ($m)

Скрипт позволяет выполнить объединение конфигураций и реструктуризацию из командной строки. Объединение выполняется штатными средствами конфигуратора 1С 7.7, взаимодействие с которым происходит путем посылки нажатий клавиш. Пригодится, если есть необходимость обновить или постоянно обновлять множество ИБ.

1 стартмани

22.04.2017    15656    4    devlabnn    2    

6

Перепроведение по счету

Инструменты администратора БД Бухгалтерский учет 7.7 1С:Бухгалтерия 7.7 Украина Бухгалтерский учет Абонемент ($m)

Перепроведение по счету для конфигурации Бухгалтерский учет для Украины, 1С: Предприятие 7.7

1 стартмани

23.09.2016    3743    1    Genyak    1    

0

Решение проблем с печатью, предварительным просмотром печати, пакетной печатью 1С: 7.7 в терминале

Инструменты администратора БД Платформа 1С v7.7 Конфигурации 1cv7 Абонемент ($m)

Периодически сталкивался со следующими проблемами при печати в 1С: 7.7 работающей под терминалом: 1) После замены принтера на клиентской машине 1С пытается печатать на старый принтер. 2) Отсутствует предварительный просмотр при печати. 3) Не работает печать без предварительного просмотра (пакетная печать документов). 4) В некоторых формах печатает, в некоторых нет.

1 стартмани

09.06.2016    27099    18    tux    3    

1

Логирование в 1С

Инструменты администратора БД Платформа 1С v7.7 Платформа 1С v8.3 Бесплатно (free)

Часто бывает необходимо отслеживать состояние часто повторяющихся регламентных заданий. Например, синхронизация данных с IP-телефонией, которая может производиться каждую минуту, синхронизация с сайтами, синхронизация данных с различными системами. Использовать для этих целей логирование 1С чрезвычайно неэффективно и не удобно. В таких случаях удобно использовать подход, применяемый в Unix-системах: писать логи в обычные текстовые файлы, а потом делать их обработку через эффективно работающие Unix-команды: grep, tail, cat, less и т.п.

18.05.2016    34817    rudjuk    21    

33
Комментарии
В избранное Подписаться на ответы Сортировка: Древо развёрнутое
Свернуть все
1. 010280 86 08.02.12 22:55 Сейчас в теме
Почему то не срабатывает приложение: ЗапуститьПриложение(""""+ПапкаИзвлечения+"7z.exe"" e -y ""-o"+ПапкаИзвлечения+""" """+ПапкаИзвлечения+"gpl3.7z"" gpl3.txt");
Может не те ключи?
7z.exe-есть, Gpl3.7z- тоже выгружен. Командной строкой тоже не получается.
2. andrewks 1367 09.02.12 08:09 Сейчас в теме
(1) ключи точно те, проверено.
а что пишет, если набирать из командной строки? может, антивирус блокирует?
и что, если из командной строки перейти в темп-папку, куда были извлечены файлы, и просто набрать 7z.exe? выводится информация о ключах и опциях запуска, или нет?
4. 010280 86 09.02.12 17:48 Сейчас в теме
(2)
1) 7z.exe ? дает сообщение:
7-Zip 9.20 Copyringht <c> 1999-2010 Igor Pavlov 2010-11-18
Error:
Incorrect command line

2) 7z.exe? дает сообщение:
"7z.exe?" не является внутренней или внешней командой, исполняемой или покетной
5. andrewks 1367 09.02.12 18:04 Сейчас в теме
(4) а если перед
ЗапуститьПриложение()
вставить строчку: Сообщить("<"+ПапкаИзвлечения+">");
что выводится в строке сообщений? (желательно скопипастить сюда, может, дело в наименовании темп-папки)

или ещё так можно попробовать:

СтрокаЗапуска=""""+ПапкаИзвлечения+"7z.exe"" e -y ""-o"+ПапкаИзвлечения+""" """+ПапкаИзвлечения+"gpl3.7z"" gpl3.txt";
Сообщить("<"+СтрокаЗапуска+">");
ЗапуститьПриложение(СтрокаЗапуска);
желательно тоже скопипастить текст из окна сообщений
3. lvictor58 135 09.02.12 15:50 Сейчас в теме
Посмотрел я на тот код, что в модуле демо-обработке прописан, и почему-от подумалось мне, что через эмуляцию картинки гораздо проже и понятней.
И без каких-то не понятно из чего высосаных ограничений.
Одним словом: Хотели как лучше, а получилось - как всегда!

От оценки воздержусь.
6. andrewks 1367 09.02.12 18:07 Сейчас в теме
(3)
"через эмуляцию картинки гораздо проже и понятней" проще? ну да. при той реализации, как там - конечно проще. поиск нужной строки-метки по тексту "в лоб", я тоже мог бы сделать поиск потоков ole10native так, уместилось бы всё про всё в 200 строк, но специально не стал так делать. потому как неправильно это. это называется "алгоритм, неустойчивый ко входным данным"
"И без каких-то не понятно из чего высосаных ограничений. " это про что? не совсем понял
"Одним словом: Хотели как лучше, а получилось - как всегда!" - ну, вы имеете право на своё мнение
8. lvictor58 135 10.02.12 12:42 Сейчас в теме
(6) "И без каких-то не понятно из чего высосаных ограничений. " - это я про надпись перед скачиванием:

Ограничения на использование материалов для пользователей
1. Пользователь получает право использовать материалы, к которым ему был предоставлен фактический доступ, исключительно в личных информационно-ознакомительных целях.

2. Пользователь не вправе воспроизводить и распространять материалы каким либо образом. Данное требование не распространяется на передачу материалов сотрудникам пользователя для использования их в связи с исполнением ими своих служебных обязанностей.

3. При возникновении необходимости иного использования полученных материалов Пользователь обязан обратиться к Правообладателю для заключения договора на передачу имущественных прав на использование материалов.

В случае обнаружения нарушения, пользователь будет незамедлительно заблокирован.
10. andrewks 1367 10.02.12 13:56 Сейчас в теме
(8) ну, так это не ко мне вопрос. я не являюсь ни автором этих надписей, ни хозяином этого ресурса.
моя мини-лицензия помещена в двух строчках внутри обработки
9. lvictor58 135 10.02.12 12:58 Сейчас в теме
(6) а п. №2 этого ограничения меня ва-а-ще в ступор вводит. Получается я сам не могу все это использовать, при изготовлении каких-либо отчетов-обработок для обслуживаемых мной клиентов, но вот если для этого найму батраков, то они смогут этм воспользоваться. Но при условии, что получат эти материалы от меня, а не (Боже упаси) проявят инициативу и скачают их с сайта. Только вот факт передачи надо ли будет заверять нотариально или моего честного слова для Вас будет достаточно?
7. Il 30 10.02.12 02:19 Сейчас в теме
На самом деле весьма оригинально!
11. soba 12.02.12 14:41 Сейчас в теме
ну вот и пришла пора вирусов в 1с
12. andrewks 1367 12.02.12 16:41 Сейчас в теме
(11) я бы сказал, что эта пора уже давно, как ушла. тема не взлетела. а метод инкапсуляции бинарных файлов в макеты имеет другое, довольно прикладное значение - файл с данными (например, классификатор), нужная для функционирования обработки dll-ка, и т.п.
13. Rio3000 17.02.12 05:55 Сейчас в теме
14. пользователь 10.03.12 12:06
Сообщение было скрыто модератором.
...
15. пользователь 10.03.12 12:07
Сообщение было скрыто модератором.
...
16. пользователь 10.03.12 12:07
Сообщение было скрыто модератором.
...
17. пользователь 10.03.12 12:07
Сообщение было скрыто модератором.
...
18. пользователь 10.03.12 12:07
Сообщение было скрыто модератором.
...
19. пользователь 10.03.12 12:08
Сообщение было скрыто модератором.
...
20. пользователь 10.03.12 12:08
Сообщение было скрыто модератором.
...
Оставьте свое сообщение