Вход | Регистрация


1С:Предприятие :: 1С:Предприятие 7.7 и ранее

v7: Контекст модуля документа

v7: Контекст модуля документа
Я
   Shrk_V_V_V
 
15.08.18 - 11:17
Есть некоторая функция про документ, которую в восьмерке я бы положил в модуль объекта. Куда ее положить в семерке? Если тоже в модуль объекта документа, то как получить  контекст модуля документа? В глобальный модуль или накопировать во все места где вызывается не очень хочется((
 
 
   1Сергей
 
1 - 15.08.18 - 11:18
глВзятьКонтекст
   Остап Сулейманович
 
2 - 15.08.18 - 11:21
(0) "В глобальный модуль ... не очень хочется"

Жизнь штука несправедливая...
   MWWRuza
 
3 - 15.08.18 - 11:26
+(2)
Во во...
Зачем такие сложности... Положить в глобальный модуль, с дирекивой "Экспорт", в единственном экземпляре, и вызывать потом уже ото-всюда, где она нужна.
   Время
 
4 - 15.08.18 - 11:30
(2) Не соглашусь...
Справедливая. Только понятие справедливости отлично от человечьего.
   ADirks
 
5 - 15.08.18 - 12:52
(0) Штатненько - только в ГМ.
А по людски - в класс 1С++.
   Shrk_V_V_V
 
6 - 15.08.18 - 13:04
Я правильно понимаю, что контекст я только формы могу получить? Контекст модуля объекта получить нельзя?
   ADirks
 
7 - 15.08.18 - 13:07
(6) правильно
но опять же, штатненько ты не сможешь что-то там вызвать из этого контекста
   Builder
 
8 - 15.08.18 - 13:11
В 7-ке есть 3 основных места куда можно что то положить:
1. Глобальный модуль.
2. Модуль формы.
3. Модуль документа (используется только при проведении документа)

Вот в зависимости от задачи и решай куда положить.
   Время
 
9 - 15.08.18 - 13:15
(5) Кстати... У меня в классах столько лежит... Тоже не смогла придумать - куда запихнуть.
   Shrk_V_V_V
 
10 - 15.08.18 - 13:29
(7) Смогу. И вызываю. Если мы про форму говорим. Я могу положить код в обработку, открыть форму, выполнить функцию и закрыть обработку. Но могу не значит хочу))
 
 Рекламное место пустует
   Shrk_V_V_V
 
11 - 15.08.18 - 13:33
Понятно. Пока распихаю по углам, в глобальный модуль не могу себя заставить положить. Будет время- буду курить 1спп, тем более он(а) уже включен(а) в проект.
   ADirks
 
12 - 15.08.18 - 13:42
(10) Методы контекста вызываются потому, что 1С++ загружается. В своё время для этого была отдельная компонента (TurboBL), потом её включили в состав 1С++.
Для надёжности желательно явно разрешить этот функционал, а то бывает... наступали как-то, долго ничо понять не могли...

оНастр = СоздатьОбъект("УправлениеНастройками");
оНастр.Включить("TurboBL");
   Shrk_V_V_V
 
13 - 16.08.18 - 07:08
(12) Это место я не понимал, спасибо большое. Думал, что сами клюшки так умеют..
   Salimbek
 
14 - 16.08.18 - 08:53
(11) "Будет время- буду курить 1спп" - а чего тама курить то? Для этой тему начало очень простое: создаешь файл в каталоге ИБ defcls.prm и внутрь пишешь:
класс АнализДокумента = classes\АнализДокумента.ert {}
Далее создаешь обработку, в модуле которой вставляешь свою функцию с ключевым словом Экспорт, типа
Функция Анализ(Конт) Экспорт
  Рез = ?(Конт.Флаг=1, "Крестик", "Нолик");
  Возврат Рез;
КонецФункции

и сохраняешь эту обработку в подкаталог classes с именем АнализДокумента.ert
А далее в любом нужном месте пишешь:
обр = СоздатьОбъект("АнализДокумента");
Результат = обр.Анализ(глВзятьКонтекст(Контекст));
   Shrk_V_V_V
 
15 - 16.08.18 - 09:04
Хочется детально познакомится с технологией, прежде чем использовать в боевом проекте. Мне нравится иметь иллюзию понимания, что происходит))
   Shrk_V_V_V
 
16 - 16.08.18 - 09:12
Второй момент -  грамотная раздача файликов. Поскольку клиентов МНОГО.
   Salimbek
 
17 - 16.08.18 - 09:22
(15) Дык, знакомься, я просто описываю тебе "Быстрый вход", без того, чтобы много доков читать, а далее уже внимательно изучай: http://www.1cpp.ru/docum/icpp/html/classes.html
(16) Второй момент, это то, что если отключишь настройку "EnableOptimization", то классы будут грузиться с диска каждый раз при обращении, что позволит дописывать функционал без необходимости отключения пользователей от 1С-ки. Хотя лучше для этого пользоваться методом ОчиститьДанныеОптимизацииКлассов у MetaInfoClasses
   Shrk_V_V_V
 
18 - 16.08.18 - 09:26
(17) Спасибо
   Shrk_V_V_V
 
19 - 16.08.18 - 09:29
Про много клиентов я имел в виду не много человек, сидящих в одной конфе, а несколько тысяч конф, расположенных в разных местах. Соответственно есть проблема грамотно раздать файлики и не запутаться в версиях файликов и конфигураций.
   Peltik
 
20 - 16.08.18 - 09:37
(17) " что позволит дописывать функционал без необходимости отключения пользователей от 1С-ки."

А для этого и не обязательно 1cpp подключать
   Salimbek
 
21 - 16.08.18 - 10:13
(20) Угу, вариантов много и разных, как с помощью ТурбоМД, так и просто #LoadFromFile. У каждого есть свои плюсы/минусы.
   ADirks
 
22 - 16.08.18 - 11:44
(14) блин, недавно же была тема про "глВзятьКонтекст()" ...
не надо так писать, а надо:
Результат = обр.Анализ(Контекст);

насмотрелись типовых, понимаешь...
   ADirks
 
23 - 16.08.18 - 11:48
(19) Если это конфигурация, в которую лазишь только ты, то лучше не в файлы классы складывать, а в сам МДшник. Тогда главный хедер будет в обработке defcls, классы тоже в обработках, и объявление класса будет выглядеть

класс ТДокумент = класс_ТДокумент@MD : Документ
{
};
   Salimbek
 
24 - 16.08.18 - 13:46
(22) Не ругайся нащальниканама! Моя не со зла!
(23) Так ведь для обновления придется всех выгонять из базы, а в файликах - положил новое, дал команду всем Очистить оптимизацию и вперед, к новым вершинам...
   ADirks
 
25 - 16.08.18 - 13:56
(24) это хорошо, когда база одна, и вся твоя
а когда это серийный продукт, то лучше уменьшить гемор при обновлении, ибо упаришься потом разбираться, что у кого пошло не так.


Список тем форума
Рекламное место пустует  Рекламное место пустует
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.
Рекламное место пустует