Имя: Пароль:
1C
 
Как Получить исполненный код?
🠗 (Волшебник 14.05.2025 17:24)
0 program345
 
14.05.25
07:37
Привет!

По кнопке запускается определенный код из множества процедур и функций, Как его сформировать отдельно и вынести в отдельный модуль? Нужно для  встраивания функционала в самописку. Неужели только ручками копипастить?
1 2S
 
14.05.25
07:42
о_О
2 Asmody
 
14.05.25
08:01
Хочешь написать свой Windows?
3 Прохожий
 
14.05.25
08:03
Самописка - это другая база или обработка внутри текущей базы?
4 ads55
 
14.05.25
08:04
"Неужели только ручками копипастить?"

Замер производительности отпарси :)
5 Прохожий
 
14.05.25
08:09
(4) Он не про это спросил. Можно ли обращаться к функциям через менеджеры объектов. В принципе, по COM можно даже в других базах функционал юзать. Но только не через интернет, получается.
6 Прохожий
 
14.05.25
08:12
Вывод: срочно надо начинать писать HTTP сервис, который будет встраиваться куда угодно и юзать экспортные функции (любые) сторонней базы. Только скорее всего в качестве параметров придется дофига регистров, документов, справочников передавать своих данных. Хотя можно опять же из сторонней базы по одате вытаскивать свои данные.
7 Прохожий
 
14.05.25
08:12
Вообще интересная тема сегмент кода и сегмент данных разделить произвольно
8 ads55
 
14.05.25
08:15
(5) Да я понимаю про что он спрашивает - он квайн хочет. Но такого варианта нет в платформе.
9 Мультук
 
гуру
14.05.25
08:17
Похоже человек хочет скопипастить БСП в свою нетленку
Но не поймёт как.
10 maxab72
 
14.05.25
08:30
(5) Будьте любезны, поясните ход своих мыслей, что привели к такому выводу. Мне любопытно, как из такого невнятного описания задачи в (0) удалось извлечь такой богатый результат. Я тоже хочу так уметь!
11 АгентБезопасной Нацио
 
14.05.25
08:36
(8) Ну, не совсем уж квайн. Но в (4) ты был прав.
Делается, в принципе, несложно.
12 Fish
 
14.05.25
08:40
(0) "Неужели только ручками копипастить?" - Только ручками не получится. Надо ещё голову подключить.
13 ads55
 
14.05.25
08:51
(11) Распарсить замер производительности, выгрузить конфигурацию в файлы, вытащить оттуда текст функций/процедур по имени, полученному из замера, поместить в один файл и загрузить в конфигурацию.

Или есть другой путь?
14 Мультук
 
гуру
14.05.25
09:24
(13)

1) Этот вариант решения не подойдёт.
Если бы автор так мог, то... Но он так не может.

2) Даже если код в форме можно игнорировать, то вероятно будет как минимум два модуля с флажками клиент и сервер
3) Чисто теоретически можно нарваться на повторение имени функции/процедуры
4) А потом окажется что нужно тянуть с собой мета-объекты

И задача снова сведется "а какого хрена при написании самописки не был использован БСП"
15 maxab72
 
14.05.25
09:04
"а какого хрена при написании самописки не был использован БСП" А если это очень древняя и ценная самописка, созданная еще на 8.0? У меня, например, сейчас есть на руках УТ, переписанная в хлам, судя по номеру, релиз вышел в середине 2008 года. В нее БСП прикручивать = написать все заново.
16 АгентБезопасной Нацио
 
14.05.25
09:10
(13) ага. Я б  примерно так и сделал. Только не в один файл, а сделал "копии" модулей, а после из них собирал бы уже (или добавлял в существующие, или делал расширение, можно даже программно)
(14) ну да, п.1 - единственное препятствие. Но определяющее
17 maxab72
 
14.05.25
09:15
При перетаскивании функционала из БСП надо много думать, механически это не сделать. Практически каждый модуль БСП будет ссылаться на другие модули, причем из разных подсистем. И надо или добавлять еще модули, или ставить заглушки. то есть если есть хоть одна функция по учету товаров, то это обязательно потянет за собой модули Зерно, ветис и т.п. а они нужны?!! и т.п.
18 Kongo2019
 
14.05.25
09:27
Не всегда БСП применим в самописках.
19 Fish
 
14.05.25
09:30
(17) БСП прекрасно ставится и частями. Без всяких заглушек.
20 maxab72
 
14.05.25
09:48
(19) ради эксперимента просто создай новую пустую базу из комплекта поставки БСП с несколькими выбранными подсистемами. А после этого сразу проверь ее. Вывалит кучу ошибок, что нет таких-то и таких-то общих модулей из всяких подсистем, которые не ставились.
21 Fish
 
14.05.25
09:58
(20) Что ты мне рассказываешь какую-то чушь? Мы внедряли отдельные подсистемы из БСП в самописки множество раз. Почитай инструкцию на ИТС, там всё доступно написано, какая подсистема от какой зависит.
Понятно, если тупо пытаться скопипастить наобум, то получишь кучу ошибок.
22 Kongo2019
 
14.05.25
09:58
(20)у меня не вываливает, что я делаю не так?
23 mikecool
 
14.05.25
10:05
(20) давно не пробовал, но в 2008 году так хотел сделать и получил кучу ошибок, но видимо все течет и меняется, судя по (21) (22)
24 maxab72
 
14.05.25
10:07
(21) смотря какие подсистемы ставишь. как только поставишь связанные с управлением продажами (опт или розница - все равно) - тут же вылезут ссылки на ветисы и прочие. Поэтому без работы с упомянутой инструкцией, и ручной работы никак.
Тут в последний релиз ДО 2.1 впихнули из БСП модули для работы ЭЦП с регламентированными отчетами, а ни заглушек, ни требуемых объектов не поставили (десятка два параметров сеанса забыли). Явно сборку сделал автомат, а не руками.
25 Fish
 
14.05.25
10:12
(24) Посмотрел состав БСП, не увидел там подсистем, "связанных с управлением продажами"

Ты точно про БСП?
26 Fish
 
14.05.25
10:12
27 АгентБезопасной Нацио
 
14.05.25
10:16
А почему решили, что он БСП переносит?
28 Fish
 
14.05.25
10:23
(27) По расположению звёзд.
29 maxab72
 
14.05.25
10:25
(26) не вижу в этом списке в разделе "Нормативно-справочная информация" целой кучи подсистем по работе с контролирующими органами.
30 Asmody
 
14.05.25
10:33
С чего вы вообще решили, что речь про 1С?
31 Kongo2019
 
14.05.25
10:36
Ну зачастую проще написать с нуля, чем сбегать по всем модулям БСП.
Ну или БСП себе поставить.
32 Fish
 
14.05.25
10:38
(29) Потому что они не входят в БСП. Ты путаешь БСП и подсистемы из типовых.
33 Fish
 
14.05.25
10:41
+(32) А вот перетягивать эти подсистемы - это соглашусь, геморрой. Мы тут перетягивали кое-что из ДО в свою конфу, процесс был вдумчивый с учетом того, что ещё и версии БСП отличались :))
34 АгентБезопасной Нацио
 
14.05.25
12:14
Хм. В первом приближении оказалось не так уж и сложно.
35 Tatitutu
 
14.05.25
12:21
(0) дарю

Процедура Кнопка1Нажатие(Элемент)

Сообщить ("Привет,Мир!");

КонецПроцедуры
36 program345
 
14.05.25
13:46
(13) а если код начинается во внешней обработке?
37 lucky_
 
14.05.25
13:48
(36) Тогда УбейсяНах() Конецесли;
38 АгентБезопасной Нацио
 
14.05.25
14:41
(36) тоже решаемо при желании.
(37) "тогда" не нужно!
Здесь можно обсудить любую тему при этом оставаясь на форуме для 1Сников, который нужен для работы. Ymryn