Заказы на доработку 1С (сервис удаленной работы)

Хранилище

База знаний
Неназначенных незавершенных заказов: 2, свеженьких 1
Бесплатные отчеты, обработки, конфигурации, внешние компоненты для 1С Статьи, описание работы, методики по работе с 1С

Здравствуйте, гость ( Вход | Зарегистрироваться )



> Вернуть структуру с модуля объекта на клиент          
Inkognito Подменю пользователя
сообщение 13.11.20, 12:15
Сообщение #1

Ветеран
*******
Группа: Пользователи
Сообщений: 766
Из: Украина
Спасибо сказали: 436 раз
Рейтинг: 7.5

Оптимизирую код обработки, управляемая форма, Бухгалтерия 2.0
Есть табличная часть, по которой проходимся в цикле (по документам). Для каждого документа нужно получить структуру и обработать на клиенте. Сейчас весь код в "МодулеФормы", и хорошо работает. Но вот беда - приходится копировать часть функций с "МодуляФормы" в "МодульОбъекта" (и наоборот). Код становится запутанней, поддерживать все сложнее.
Вопрос: как вызывать функцию получения структуры, если она находится в "МодулеОбъекта", которая должна вернуть структуру?

&НаКлиенте
Процедура Тест()

    Для каждого Строки из Элементы.ТЧДокументы.ВыделенныеСтроки цикл    
        Документ = Элементы.ТЧДокументы.ДанныеСтроки(Строки).Документ;        
                ПолученнаяСтруктура = ПолучитьСтруктуру(Документ); //перенести в "МодульОбъекта" и получить структуру
                //обрабатываем ее

КонецЦикла;

КонецПроцедуры

&НаСервереБезКонтекста
Функция ПолучитьСтруктуру(Документ)
    
    Структура = Новый Структура;
    Структура.Вставить("Номер", Документ.Номер);
       //...............................

    Возврат Структура;
КонецФункции

Petre Подменю пользователя
сообщение 13.11.20, 12:35
Сообщение #2

Живет на форуме
Иконка группы
Группа: Местный
Сообщений: 2750
Из: Київ, Україна
Спасибо сказали: 828 раз
Рейтинг: 826.3

МодульОбъекта = РеквизитФормыВЗначение("Объект");
РезультатМоегоМетода = МодульОбъекта.МойМетод();

А почему бы не переместить содержимое модуля объекта в модуль формы?


Signature
Допрацьовую:
- "Бухгалтерія для України 2.1";
- "Альфа-Авто: Автосалон+Автосервіс+Автозапчастини, українська версія".

Спасибо сказали: Inkognito,

Inkognito Подменю пользователя
сообщение 13.11.20, 13:20
Сообщение #3

Ветеран
*******
Группа: Пользователи
Сообщений: 766
Из: Украина
Спасибо сказали: 436 раз
Рейтинг: 7.5

Petre
1) Не удается полноценно отлаживать код, который написан в модуле формы. Ставлю точку останова, а результат нет. Код выполняется без каких-либо отладочных остановок. Очень неудобно, по сравнению с "обычными формами" (где ставить точку останова можно где угодно).
2) Использую "Нетленку" для шифрования обработки, так вот модуль формы обфусцирует так, что он начинает очень медленно работать у пользователей. Код, зашифрованный в модуле объекта, работает быстро. По рекоендации техподдержки Нетленки, желательно выносить код в МодульОбъекта для быстроты работы зашифрованного кода.
Вот эти две проблемы и вынуждают переписывать код.

Gazulo Подменю пользователя
сообщение 13.11.20, 13:36
Сообщение #4

Завсегдатай
****
Группа: Пользователи
Сообщений: 212
Спасибо сказали: 31 раз
Рейтинг: 31

Inkognito @ Сегодня, 14:20 * ,
1) база на клиент-серверная?? [необходимо зарегистрироваться для просмотра ссылки]

Inkognito Подменю пользователя
сообщение 13.11.20, 13:41
Сообщение #5

Ветеран
*******
Группа: Пользователи
Сообщений: 766
Из: Украина
Спасибо сказали: 436 раз
Рейтинг: 7.5

Нет, обычная локальная 1С. Интересно. Спасибо, попробую.
Попробовал "Отладка - ТолстыйКлиент". Запустил обработку, установил точку останова ПриОткрытии(), обработка открылась но в отладчике остановки не было.

Gazulo Подменю пользователя
сообщение 13.11.20, 13:48
Сообщение #6

Завсегдатай
****
Группа: Пользователи
Сообщений: 212
Спасибо сказали: 31 раз
Рейтинг: 31

Inkognito @ Сегодня, 14:41 * ,
[необходимо зарегистрироваться для просмотра ссылки]


[необходимо зарегистрироваться для просмотра ссылки]

Inkognito Подменю пользователя
сообщение 13.11.20, 14:37
Сообщение #7

Ветеран
*******
Группа: Пользователи
Сообщений: 766
Из: Украина
Спасибо сказали: 436 раз
Рейтинг: 7.5

Цитата(Petre @ 13.11.20, 13:35) *
МодульОбъекта = РеквизитФормыВЗначение("Объект");
РезультатМоегоМетода = МодульОбъекта.МойМетод();

1) Действительно, переписанный таким образом код заработал и отлично перехватывается в "МодулеОбъекта" отладкой (и это самое главное для меня). Спасибо.

2) Отладка формы так и не влючилась. Подключение сделал. В свойствах конфигурации разрешил использование отладки по протоколу TCP/IP. Отладка в толстом клиенте. Вроде все по инструкции. Но нет...

Не нашли ответа на свой вопрос?
Зарегистрируйтесь и задайте новый вопрос.


Ответить Новая тема
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 

RSS Текстовая версия Сейчас: 24.11.20, 12:19
1С Предприятие 8.3, 1С Предприятие 8.2, 1С Предприятие 8.1, 1С Предприятие 8.0, 1С Предприятие 7.7, Литература 1С, Общие вопросы по администрированию 1С, Методическая поддержка 1С - всё в одном месте: на Украинском 1С форуме!