|
Подскажите верную архитектуру для моего случая | ☑ | ||
---|---|---|---|---|
0
korstin
26.05.16
✎
09:08
|
Разрабатываю расширение для типовой БП.
Встал вопрос, где хранить большой объем кода, который использовать в другом месте. Создание общих модулей недоступно. Пока создал обработку и поместил код в ее модуль. Что смущает? Приведу код: &НаСервере Процедура ОбработатьНаСервере (Запись) О = Обработки.МояОбработка.СоздатьЭлемент(); О.Выполнить(); КонецПроцедуры &НаКлиенте Процедура Обработать () Для Каждого Запись Из Записи Цикл ОбработатьНаСервере(Запись); КонецЦикла; КонецПроцедуры Понимаю, что цикл можно поместить в серверной процедуре, но мне не очень подходит (в цикле хочу делать какие-то интерфейсные вещи, например). В данном случае обработка будет создана во время каждого вызова, что приведет к увеличению потребляемой памяти, ведь так? Можно ли очистить переменную О после вызова? Передавать с клиента на сервер обработку не получится. Поместить обработку в переменную на сервере не выходит (при каждом вызове получается Неопределено), поместить во временное хранилище нельзя. Искал в интернете и на форуме что-нибудь по этому поводу, ничего не нашел. Подскажите верное решение? Спасибо |
|||
1
VladZ
26.05.16
✎
09:11
|
(0) "Создание общих модулей недоступно" - базовая что ли? Почему недоступно?
|
|||
2
aleks_default
26.05.16
✎
09:14
|
(0)Да в любом объекте: регистр, справочник и т. п. Добавляешь текстовое поле неограниченной длины и пиши туда сой код. А потом выполняй через Выполнить().
|
|||
3
korstin
26.05.16
✎
09:14
|
(1) "Добавить" недоступно на общих модулях
Бухгалтерия предприятия, редакция 3.0 (3.0.43.173) 1С:Предприятие 8.3 (8.3.7.2027) |
|||
4
b_ru
26.05.16
✎
09:16
|
(3) Дык настройки поддержки видимо.
В случае с обработкой. Раз она у тебя не внешняя, у нее тоже есть модуль менеджера - можешь там процедуру определить. |
|||
5
Mort
26.05.16
✎
09:16
|
А замеры делал?
Создание обработки ничто, по сравнению с серверным вызовом. |
|||
6
Mort
26.05.16
✎
09:17
|
+(5) Лучше копать в сторону ухода от серверных вызовов в цикле.
|
|||
7
korstin
26.05.16
✎
09:19
|
(4) Так и делал, но кода очень много, при программировании платформа уже тупит на анализе
(5) Сделал 100 вызовов, где создается обработка и вызывается пустой метод. 50-60 Мб минимум прироста и не освобождаются, пока не закроешь клиента (6) Придется отказаться от интерфейсных вещей (допустим, индикатор выполнения), чего не хотелось бы |
|||
8
Smile 8D
26.05.16
✎
09:21
|
(1) Потому что человек говорит про расширения, а в них модули появятся только в 8.3.9 (https://wonderland.v8.1c.ru/blog/rasshirenie-moduley/)
|
|||
9
korstin
26.05.16
✎
09:29
|
(8) Да, читал про это. 8.3.9... Долго ждать
|
|||
10
b_ru
26.05.16
✎
09:30
|
(7) Напрягись и осознай разницу между модулем менеджера и модулем объекта. Для использования процедуры из модуля менеджера обработку создавать не нужно.
|
|||
11
hhhh
26.05.16
✎
09:44
|
(9) чего это долго? Может месяц-два.
|
|||
12
korstin
26.05.16
✎
09:54
|
(11) А в повседневное использование?
(10) Простите дурака. И ведь точно же. Спасибо большое |
|||
13
RomanYS
26.05.16
✎
10:16
|
(0) Цикл однозначно на сервер, а для интерфейса
либо отдавать на сервер порциями, либо запускать фоновое задание и пытаться с ним "общаться" с клиента. |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |