Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Вернуть структуру с модуля объекта на клиент
Украинский 1С форум: всё про 1С 8.3, 1С 8.2, 1С 8.1, 1С 8.0, 1С 7.7 > Программисту > Программирование в 1С Предприятие 8.3
Inkognito
Оптимизирую код обработки, управляемая форма, Бухгалтерия 2.0
Есть табличная часть, по которой проходимся в цикле (по документам). Для каждого документа нужно получить структуру и обработать на клиенте. Сейчас весь код в "МодулеФормы", и хорошо работает. Но вот беда - приходится копировать часть функций с "МодуляФормы" в "МодульОбъекта" (и наоборот). Код становится запутанней, поддерживать все сложнее.
Вопрос: как вызывать функцию получения структуры, если она находится в "МодулеОбъекта", которая должна вернуть структуру?

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

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

КонецЦикла;

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

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

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

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


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

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

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