|
v7: Контекст модуля документа | ☑ | ||
---|---|---|---|---|
0
Shrk_V_V_V
15.08.18
✎
11:17
|
Есть некоторая функция про документ, которую в восьмерке я бы положил в модуль объекта. Куда ее положить в семерке? Если тоже в модуль объекта документа, то как получить контекст модуля документа? В глобальный модуль или накопировать во все места где вызывается не очень хочется((
|
|||
1
1Сергей
15.08.18
✎
11:18
|
глВзятьКонтекст
|
|||
2
Остап Сулейманович
15.08.18
✎
11:21
|
(0) "В глобальный модуль ... не очень хочется"
Жизнь штука несправедливая... |
|||
3
MWWRuza
гуру
15.08.18
✎
11:26
|
+(2)
Во во... Зачем такие сложности... Положить в глобальный модуль, с дирекивой "Экспорт", в единственном экземпляре, и вызывать потом уже ото-всюда, где она нужна. |
|||
4
Время
15.08.18
✎
11:30
|
(2) Не соглашусь...
Справедливая. Только понятие справедливости отлично от человечьего. |
|||
5
ADirks
15.08.18
✎
12:52
|
(0) Штатненько - только в ГМ.
А по людски - в класс 1С++. |
|||
6
Shrk_V_V_V
15.08.18
✎
13:04
|
Я правильно понимаю, что контекст я только формы могу получить? Контекст модуля объекта получить нельзя?
|
|||
7
ADirks
15.08.18
✎
13:07
|
(6) правильно
но опять же, штатненько ты не сможешь что-то там вызвать из этого контекста |
|||
8
Builder
15.08.18
✎
13:11
|
В 7-ке есть 3 основных места куда можно что то положить:
1. Глобальный модуль. 2. Модуль формы. 3. Модуль документа (используется только при проведении документа) Вот в зависимости от задачи и решай куда положить. |
|||
9
Время
15.08.18
✎
13:15
|
(5) Кстати... У меня в классах столько лежит... Тоже не смогла придумать - куда запихнуть.
|
|||
10
Shrk_V_V_V
15.08.18
✎
13:29
|
(7) Смогу. И вызываю. Если мы про форму говорим. Я могу положить код в обработку, открыть форму, выполнить функцию и закрыть обработку. Но могу не значит хочу))
|
|||
11
Shrk_V_V_V
15.08.18
✎
13:33
|
Понятно. Пока распихаю по углам, в глобальный модуль не могу себя заставить положить. Будет время- буду курить 1спп, тем более он(а) уже включен(а) в проект.
|
|||
12
ADirks
15.08.18
✎
13:42
|
(10) Методы контекста вызываются потому, что 1С++ загружается. В своё время для этого была отдельная компонента (TurboBL), потом её включили в состав 1С++.
Для надёжности желательно явно разрешить этот функционал, а то бывает... наступали как-то, долго ничо понять не могли... оНастр = СоздатьОбъект("УправлениеНастройками"); оНастр.Включить("TurboBL"); |
|||
13
Shrk_V_V_V
16.08.18
✎
07:08
|
(12) Это место я не понимал, спасибо большое. Думал, что сами клюшки так умеют..
|
|||
14
Salimbek
16.08.18
✎
08:53
|
(11) "Будет время- буду курить 1спп" - а чего тама курить то? Для этой тему начало очень простое: создаешь файл в каталоге ИБ defcls.prm и внутрь пишешь:
класс АнализДокумента = classes\АнализДокумента.ert {} Далее создаешь обработку, в модуле которой вставляешь свою функцию с ключевым словом Экспорт, типа Функция Анализ(Конт) Экспорт Рез = ?(Конт.Флаг=1, "Крестик", "Нолик"); Возврат Рез; КонецФункции и сохраняешь эту обработку в подкаталог classes с именем АнализДокумента.ert А далее в любом нужном месте пишешь: обр = СоздатьОбъект("АнализДокумента"); Результат = обр.Анализ(глВзятьКонтекст(Контекст)); |
|||
15
Shrk_V_V_V
16.08.18
✎
09:04
|
Хочется детально познакомится с технологией, прежде чем использовать в боевом проекте. Мне нравится иметь иллюзию понимания, что происходит))
|
|||
16
Shrk_V_V_V
16.08.18
✎
09:12
|
Второй момент - грамотная раздача файликов. Поскольку клиентов МНОГО.
|
|||
17
Salimbek
16.08.18
✎
09:22
|
(15) Дык, знакомься, я просто описываю тебе "Быстрый вход", без того, чтобы много доков читать, а далее уже внимательно изучай: http://www.1cpp.ru/docum/icpp/html/classes.html
(16) Второй момент, это то, что если отключишь настройку "EnableOptimization", то классы будут грузиться с диска каждый раз при обращении, что позволит дописывать функционал без необходимости отключения пользователей от 1С-ки. Хотя лучше для этого пользоваться методом ОчиститьДанныеОптимизацииКлассов у MetaInfoClasses |
|||
18
Shrk_V_V_V
16.08.18
✎
09:26
|
(17) Спасибо
|
|||
19
Shrk_V_V_V
16.08.18
✎
09:29
|
Про много клиентов я имел в виду не много человек, сидящих в одной конфе, а несколько тысяч конф, расположенных в разных местах. Соответственно есть проблема грамотно раздать файлики и не запутаться в версиях файликов и конфигураций.
|
|||
20
Peltik
16.08.18
✎
09:37
|
(17) " что позволит дописывать функционал без необходимости отключения пользователей от 1С-ки."
А для этого и не обязательно 1cpp подключать |
|||
21
Salimbek
16.08.18
✎
10:13
|
(20) Угу, вариантов много и разных, как с помощью ТурбоМД, так и просто #LoadFromFile. У каждого есть свои плюсы/минусы.
|
|||
22
ADirks
16.08.18
✎
11:44
|
(14) блин, недавно же была тема про "глВзятьКонтекст()" ...
не надо так писать, а надо: Результат = обр.Анализ(Контекст); насмотрелись типовых, понимаешь... |
|||
23
ADirks
16.08.18
✎
11:48
|
(19) Если это конфигурация, в которую лазишь только ты, то лучше не в файлы классы складывать, а в сам МДшник. Тогда главный хедер будет в обработке defcls, классы тоже в обработках, и объявление класса будет выглядеть
класс ТДокумент = класс_ТДокумент@MD : Документ { }; |
|||
24
Salimbek
16.08.18
✎
13:46
|
(22) Не ругайся нащальниканама! Моя не со зла!
(23) Так ведь для обновления придется всех выгонять из базы, а в файликах - положил новое, дал команду всем Очистить оптимизацию и вперед, к новым вершинам... |
|||
25
ADirks
16.08.18
✎
13:56
|
(24) это хорошо, когда база одна, и вся твоя
а когда это серийный продукт, то лучше уменьшить гемор при обновлении, ибо упаришься потом разбираться, что у кого пошло не так. |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |