Базовый курс. МГ сессия от 18.07.2011
Разбираем новые вопросы участников базового курса по программированию.
1. Компиляция кода на сервере и клиенте.
Каковы общие рекомендации по размещению кода НаСервере или НаКлиенте с точки зрения производительности?
Например, необходимо получить с сервера Константу и отформатировать ее определенным образом?
Где лучше выполнить форматирование НаСервере или НаКлиенте?
Чем руководствоваться при выборе? Насколько стоит увлекаться серверными вызовами? Стоит ли вызывать сервер, когда действие можно выполнить на клиенте?
2. Получение значений ИБ.
Как получить значение константы в контексте Клиента?
3. Менеджер, ссылка, объект…
Что есть Менеджер и с чем его едят?
Расскажите подробнее, пожалуйста. Ссылка, Объект – понятно, осязаемо, а вот Менеджер – ускользает…
Когда использовать Модуль Объекта справочника, а когда Модуль менеджера при условии, что и там и там доступен одинаковый метод? Например, метод ПолучитьФорму() работает, кажется, одинаково и для СправочникОбъект и для СправочникМенеджер?
4. Итоги по иерархии элементов.
Возможно ли получить итоги по “верхнему” Элементу при иерархии элементов, по аналогии с получением итогов по группе?
5. Рабочая дата.
Где в УправляемомПриложении указать «Рабочую дату»?
Если не активировали токен — посмотрите видео-инструкцию (видео N5)
Если вы залогинены, у Вас активирован токен доступа, но вы все равно видите эту запись — напишите нам на e-mail поддержки.
еще про менеджер,ссылка, объект… пока каша.
получаем объект только когда хотим его менять и никогда больше
получаем ссылку чтоб куда-нить ее присвоить (в реквизит документа, в таблицу значений)
берем менеджер когда нужно использовать новые групповые методы всех элементов конкретного вида справочника
так?
а кто из трех позволит поиметь реквизит через точку: Ссылка.ДатаРождения, Объект.ДатаРождения или в 8ке это щитается грехом и любое обращение лучше запросом даже для одного реквизита?
>в 8ке это щитается грехом и любое обращение лучше запросом даже для одного реквизита
Грехом не считается, но важно понимать к каким последствиям приведет обращение Ссылка.ДатаРождения. Все данные ссылки будут прочитаны из ИБ и помещены в кэш.
Если требуется только ДатаРождения, то правильно использовать запрос.
Жаль “рабочую дату” ;), была не плохим подспорьем для бухгалтерии, которая частенько работает “задним числом”…
вопрос про Печать() в Менеджере. Говорите что т.к. ПолучитьОбъект() не происходит то это быстрей и круче, но ведь для печати требуются реквизиты отого самого объекта и всеравно будет запрос на сервер по каждому реквизиту. в чом тогда ссуть экономии ?
>в чом тогда ссуть экономии ?
В том что при получении объекта получаются все его данные.
А запросом выбираются только нужные.
К примеру, у объекта 10 табличных частей, а печатная форма формируется только одной табличной части.
когда-то в детстве читал. наверно про 7,7 что если хоть бы один реквизит запрашивается то 1с сначала берет ЦЕЛЫЙ объект и тока потом из целого – реквизит. А здесь ПолучитьОбъект() получается забирает весь объект со всеми табличными частями типа в клиентский кэш, в виртуальную таблицу?
тогда возникает другой воспрос если через менеджер экономится объем запрос к серверу тогда в объекте писать Экспортные процедуры ваще теряется? Редкая процедура использует все реквизиты всех 10 табл.частей… И лучше выйти в менеджер и запросом поиметь чуть-чуть?
> если хоть бы один реквизит запрашивается то 1с сначала берет ЦЕЛЫЙ объект и тока потом из целого – реквизит.
Это актуально и для 8-ки, но только если Вы запрашиваете реквизит не через запрос, а от ссылки.
Например, Контрагент.Адрес – будут прочитаны все данные контрагента и помещены в кэш.
Но если Вы запросом читаете реквизит, то только он будет получен из базы.
>писать Экспортные процедуры ваще теряется
Нет, не теряется. Например, вы создаете программно элементы справочника и нужно вызвать функции заполнения или проверки этих элементов. Тогда логично соответствующие процедуры разместить в модуле объекта.
> И лучше выйти в менеджер и запросом поиметь чуть-чуть?
Если не работаете с объектом, то все правильно – используйте менеджер.
можно под итожить что экспортные функции в модуле объекта нужны тока для программного создания новых элементов. Во всех остальных случаях использовать модуль форм (для проверки интерактивного создания элемента) и все остальное в модуле менеджера? 90%ММ 5%МО и 5% МФ ?
>для программного создания новых элементов
А также модификации объектов.
>Во всех остальных случаях использовать модуль форм (для проверки интерактивного создания элемента) и все остальное в модуле менеджера
Да и не забывайте про общие модули.
>90%ММ 5%МО и 5% МФ ?
По процентам давать оценку не правильно. Так как в разных прикладных решениях разбиение будет различным.
… про модификацию.. Любая модификация,даже одного реквизита, все равно тащите ВЕСЬ объект?
Да, это так.
В первом файле неточность (28-36 сек): “Все сложные алгоритмы нужно перекладывать на сторону клиента”.
Да, спасибо. Конечно сложные алгоритмы нужно отдавать серверу.
Наверное, от 18.07.11 ?
Произошел сдвиг во времени :)
Частично исправлено :)