Имя: Пароль:
1C
1С v8
Возможно ли передать извне в 1С объект в оперативной памяти? (документ, спр или обр)
0 NV_corp
 
17.06.25
12:13
Вопрос сложный, адресован в первую очередь программистам низких языков программирования - с++ и похожих.
1С поддерживает native api, позволяет отправлять и получать данные с внешними компонентами. И если с примитивными типами данных все просто, то как обстоят дела с объектами данных формата платформы?
Тут у меня уже знаний не хватает, дальше могу говорить глупости:
Если внешняя компонента (dll/exe) создаст в оперативной памяти некоторый набор данных и вернет указатель на него в 1С, то платформа распознает это в оперативной памяти как объект собственного платформенного формата?
Если честно, я знаю что это возможно, ведь именно так и работает СЛК. Мой вопрос правильнее назвать так - как это реализовать и насколько это сложно?
1 formista2000
 
17.06.25
12:14
OLE что ли?
2 Valdis2007
 
17.06.25
12:21
(1) ОЛЕ тока для микрсофт
3 Волшебник
 
17.06.25
12:25
(0) Для этого придумали сериализацию и десериализацию, форматы json, XML, фабрики XDTO и т.д.
4 Garykom
 
гуру
17.06.25
12:33
(0) Нет
И СЛК работает не так
5 Pprog151713
 
17.06.25
12:34
(0) Так выгружай в ждисон, накой тебе в памяти данные?
6 Garykom
 
гуру
17.06.25
12:37
Наиболее близкое это COMSafeArray
Но это для COM/OLE и только под Windows
7 Garikk
 
17.06.25
15:13
(5) < накой тебе в памяти данные? >
для скорости наверное, как подключение к SQL серверам делают иногда через память
8 Garykom
 
гуру
17.06.25
16:36
9 Кирпич
 
17.06.25
17:17
Это всё глупости. Не думай об этом больше. Это никому не нужно и тебе тоже не нужно.
10 PR
 
17.06.25
17:27
(0) Зачем?
11 СвинТуз
 
17.06.25
17:42
Объекты, объекты.
Ну да.

Всего лишь база данных.
Передай первичный ключ в 1С и все найдется в нужной таблице.
12 СвинТуз
 
17.06.25
17:43
это не про объекты, а ссылки.
13 СвинТуз
 
17.06.25
17:47
(0)
Открываешь таблицы связанные с объектом конфигурации, пишешь.
Даешь команду создать объект базы данных.
14 СвинТуз
 
17.06.25
17:49
(0) "Возможно ли передать извне в 1С объект в оперативной памяти?"

Это типа как вирусня делает? Операционка этого не допустит.

КомОбъекты.
15 Djelf
 
гуру
17.06.25
19:33
(0) Так делали, и делали неоднократно.
Но этот интерфейс не документирован, постоянно обновляется и это будет все время ломаться.
Поэтому поддержка и разработка подобных компонет прекращается, при таком сбое, а ты остаешься с тыквой вместо кареты.
Не надо так делать! Выйдет раз в 10-100 дороже...
16 H A D G E H O G s
 
18.06.25
02:07
Весело тут у вас.
17 strange2007
 
18.06.25
12:03
(0) Если для работы надо, то лучше написать на стороне 1С "общалку" (например, HTTP-сервис(ы)) и уже её средствами передавать/принимать нужные данные, в т.ч. и предназначенные для создания объектов всяких. Можно через COM-интерфейс цепляться, но это нестабильно и даже тяжеловато для понимания. Да и не работает под линуксом. Так что лучше не надо использовать COM
Если же надо сделать пакость, типа вируса, то... Нет, здесь подсказывать не буду
18 d4rkmesa
 
гуру
18.06.25
12:30
(14) В разных ОС есть механизмы IPC, так что в целом такое решение возможно (не с 1С напрямую).
Но ТС-у скорее нужно в нативную компоненту данные передать, насколько я понимаю, там какой-то затык. Я бы на его месте попробовал какой-нибудь брокер сообщений пошустрее или дополнительную СУБД.
19 NV_corp
 
18.06.25
12:43
(18) Нет. Давно висит идея создать для себя аналог СЛК. Можно конечно писать код, который хочется спрятать, на других языках и подключать нативную компоненту. Но во первых, это сложнее и дольше, во вторых - не так интересно, как сделать способ, используемый СЛК. В качестве академической задачи.
1. Создаю COM объект
2. Вызываю функцию
3. Получаю в ответ объект типа "ВнешняяОбработкаОбъект"
20 Fynjy
 
18.06.25
13:00
(19) обычно рарус раньше так и делал защиту, зашивает в dll обработку, которую потом передает в 1С.
21 NV_corp
 
18.06.25
14:11
(20) чем мы хуже?
22 H A D G E H O G s
 
18.06.25
15:16
(21) Ничем
23 H A D G E H O G s
 
18.06.25
15:16
Процедура Команда1НаСервере()
    
    СтрокаBase64Расшифрованная=
    "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
    |HsEGas6VJ5BtgKI+5+sf9C8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
    |AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
    |AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
    |AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA0KMDAwMDAwMjggMDAwMDAw
    |MjggN2ZmZmZmZmYgDQqwlJrZCUUCALCUmtkJRQIAAAAAAGMAbwBwAHkAaQBuAGYA
    |bwAAAAAADQowMDAwMDAxNSAwMDAwMDIwMCA3ZmZmZmZmZiANCnu/e3+1iQ4vV7VB
    |LQapA+PxctUCAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
    |AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
    |AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
    |AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
    |AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
    |AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
    |AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
    |AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
    |AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
    |AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
    |AAAAAAAAAAAAAAAAAAAAAAAAAAAADQowMDAwMDAyMCAwMDAwMDAyMCA3ZmZmZmZm
    |ZiANCrCUmtkJRQIAsJSa2QlFAgAAAAAAcgBvAG8AdAAAAAAADQowMDAwMDAyZSAw
    |MDAwMDIwMCA3ZmZmZmZmZiANCnu/e3+1kY65oamFpbGhga55mqWZromxZbJuYlqS
    |ha65sZGJibmhiaWpgYlOLQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
    |AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
    |AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
    |AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
    |AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
    |AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
    |AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
    |AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
    |AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
    |AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
    |AAAADQowMDAwMDAyNiAwMDAwMDAyNiA3ZmZmZmZmZiANCrCUmtkJRQIAsJSa2QlF
    |AgAAAAAAdgBlAHIAcwBpAG8AbgAAAAAADQowMDAwMDAxYyAwMDAwMDIwMCA3ZmZm
    |ZmZmZiANCnu/e381L1e1kaGZjoEOkGFhYGxkrmNQy8sFQgAAAAAAAAAAAAAAAAAA
    |AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
    |AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
    |AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
    |AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
    |AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
    |AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
    |AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
    |AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
    |AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
    |AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADQowMDAwMDAy
    |OCAwMDAwMDAyOCA3ZmZmZmZmZiANCrCUmtkJRQIAsJSa2QlFAgAAAAAAdgBlAHIA
    |cwBpAG8AbgBzAAAAAAANCjAwMDAwMTAzIDAwMDAwMjAwIDdmZmZmZmZmIA0KPY9J
    |TkQxDETvknWMnNjxcJxMlnrTHzUICSFOxoIjcQXChq31XK/q5+v7o2TNKWUaw2yT
    |g3gdwNwQfK+A5UrSTWO1lpOWZk4FQcMFmHxCj2GgVJm1sDfklFvE2hEEQwcB22jg
    |szM4dWHebkR/Wc1aW1RhtorAiAt6MT/UeVhV5tE+Ycq2zYe3DnWveZybwE8dENFC
    |IYP63jnN6/n9do8r5VhoMncFxzDgtTeYcIEIVDkGFO85Pa7rNWXtbZWyTlicwUyn
    |rhWtoEa1d1FB9Zze9uPldt0PjobnbtCqB7DOBVbPMN2juPDAGPMff0kZm7LUQtDW
    |LMDhh59SYJZanJW2Y/38BQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
    |AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
    |AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
    |AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
    |AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
    |AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=";
    
    Двоичные=ПолучитьДвоичныеДанныеИзBase64Строки(СтрокаBase64Расшифрованная);
    Хранилище=ПоместитьВоВременноеХранилище(Двоичные,Новый УникальныйИдентификатор);
    ИмяОбработки=ВнешниеОбработки.Подключить(Хранилище);
    Обработка=ВнешниеОбработки.Создать(ИмяОбработки);
    Обработка.Тест();
КонецПроцедуры
24 H A D G E H O G s
 
18.06.25
15:30
Но все равно, во всех этих схемах можно отловить СтрокаBase64Расшифрованная и сохранить в файл. Тем более, структура памяти 1С такова, что она сохраняет зарезервированные блоки и данные СтрокаBase64Расшифрованная останется в памяти даже уже после завершения вызова ПолучитьДвоичныеДанныеИзBase64Строки()

Конечно, ДвоичныеДанные можно получить не только из Base64Строки, это усложнит поиск, но не существенно.

Поэтому четкие пацаны переписывают код во внешнюю компоненту, на вот такой веселой смеси языков
25 PLUT
 
гуру
18.06.25
15:51
(24) CR LF в текстах запроса улыбнуло

а если в одну строку написать, не выполнится штоле?
26 H A D G E H O G s
 
18.06.25
15:52
(25) Дельфи запрещало раньше строки длиннее 1024 символов.
27 H A D G E H O G s
 
18.06.25
15:52
(25) В тексте редактора.
28 H A D G E H O G s
 
18.06.25
15:53
Критичные тексты запросов, кстати, шифруйте, из текстовых ресурсов dll-ки их выдрать - как 2 кнопки создать.
29 PLUT
 
гуру
18.06.25
15:53
(27) ясно понятно, "чоткий пацанский код" походу твой
30 Garykom
 
гуру
18.06.25
16:02
(19) Что будешь делать под Linux или MacOS ?
31 Garykom
 
гуру
18.06.25
16:06
Зачем защищать и прятать код?
Не лучше ли поступать как 1С с типовыми - написать код так, что без поддержки от авторов никак не обойтись

Ну сопрут конфу/нетленку, ну запустят
А работать то реально не смогут - и придут к авторам за помощью... платной конечно же, тут их заодно попросят сначала купить.
32 d4rkmesa
 
гуру
18.06.25
16:13
(31) Это много человеко-часов на такой код тратится. ) Кстати, из смешного, недавно поковырял форму в ERP для банковских счетов, прямо адище (в сравнении с той же БП-кой).  В итоге нужна доработка, хотя в другой типовой весь функционал "из коробки". Более того, похоже в WE версии работает как надо, но не в "оригинале".
33 Garykom
 
гуру
18.06.25
16:19
(32) Это еще ЕРПУХ не видел, в части доков ВерсияСоглашенияXXX, которые расширяют ДоговорКонтрагента
Там внутри ахтунг