Базовый курс. МГ сессия от 11.07.2011
Рассматриваем новые вопросы от участников базового курса.
1. Серверная переменная.
Имеется следующий код в модуле формы обработке: &НаСервере Перем ТабЗначений12;
Если поставить точку останова на процедуре ТабЗн1(Команда) (которая на клиенте),то переменная ТабЗначений12 при выводе в табло вообще неопределена. А Если точка останова стоитв процедуре СерверТест()(которая на сервере), то она видится, но ее значение – “неопределено”, хотя переменная является гобальной.Как тогда в модуле формы создавать глобальную переменную на сервере?
2. Хранение ресурсов в регистре.
На платформе 7.7 сам столкнулся с очень интересным поведением: в версии с MS SQL регистр физически хранился как 2 таблицы, итоги в разрезе периодов и сами движения.При проведении документа, если например в ресурсе была длина 5 и точность 2 ( то есть под целую часть 2 числа) писалось движение приход по этому ресурсу на 10. При этом до проведения документа в таблице итогов в СУБД уже был накоплен итог в сумме 90. По сути после проведения в таблице должна была оказаться запись 90 +10 =100.00, но длина у ресурса только 5 …..
так вот платформа ничего не говоря пользователю брала и обрезала записываемое в СУБД значение до 99.99 (то есть 5 знаков) … последствия этого выражались очень не хорошо: по движениям все нормально — то есть движения все 10.00 и пр — меньше 5 знаков, но вот при получении итогов из регистра получались совсем не предсказуемые значения.Больше того в ДБФ версии все работало без ошибок — по началу это было отнесено на “мистику” работы платформы, но в итоге я нашел этот косяк и он был побежден увеличением длины ресурса. (С этого задания начал знакомство с платформой 7.7 и с 1С в целом — о чем не жалею не сколько).
3. Значение заполнено.
В уроке “Ограничения метода ЗначениеЗаполнено( )” Вы говорите, что функция не работает с мутабельными значениями, например, ТаблицаЗначений, но код
ТЗ = Новый ТаблицаЗначений;
// СтрокаТЗ = ТЗ.Добавить();
Сообщить(ЗначениеЗаполнено(ТЗ));
работает корректно, и возвращает либо Нет, либо Да, в зависимости от комментария на строке кода СтрокаТЗ = ТЗ.Добавить();
Что я неправильно понял?
4. Компиляция модулей.
В какой момент времени происходит компиляция различных модулей? Модуль компилируется каждый раз при обращении к нему или где-то кешируется, где?
Модуль сеанса компилируется при каждом подключении к системе пользователя и ПараметрыСеанса инициализируются столько раз, сколько подключилось пользователей? Где хранятся параметры сеанса, в БД или кешируются на клиенте?
5. Глобальные переменные.
Как долго живет глобальная переменная инициализированная в модуле приложения. До тех пор пока пользователь не завершит сеанс?
Возможно ли создать массив, доступный как глобальная переменная для всех сеансов? При решении ДЗ №4 получился только глобальный массив строк для каждого сеанса.
6. Модуль приложения.
Когда идет работа в режиме совместимости нужно ли дублировать код в модуле управляемого приложения (МУП) и модуле обычного приложения (МОП). Например,
если объявить глобальную переменную глПеременнаяМодуляПриложения в МУП, то
будет ли она доступна в МОП? А если объявить глПеременнаяМодуляПриложения и в
МУП и в МОП, то будут ли они пересекаться?
7. Управляемая форма в обычном приложении.
Случайно запустил внешнюю обработку из ДЗ №3 в режиме обычного приложения – ничего не произошло, хотя в режиме управляемого приложения все работает правильно. Все действия в обработке происходят в процедуре “ПриСозданииНаСервере”. В отладчике указал точку останова на операторах основной программы и все равно не попал в отладчик. Так и не понял, почему обработка не выполняется в режиме обычного приложения.
Если не активировали токен — посмотрите видео-инструкцию (видео N5)
Если вы залогинены, у Вас активирован токен доступа, но вы все равно видите эту запись — напишите нам на e-mail поддержки.
Может кому-нибудь покажется мнтересным наблюдение, сделанное за период общения с платформой. Я всегда думал, что таблица значений – мутабельный тип данных, но это видимо не совсем так.
Как оказалось, таблица значений может становится мутабельным типом данных, ежели таковые в ней присутствуют. И, например, при передаче с клиента на сервер и наоборот (речь идет об обычном приложении), таблица значений содержащая ссылки и примитивные типы будет передаваться нормально, но если в любую ячейку установить, допустим, тип “СправочникОбъект”, то тут же платформа упадет с ругательством, на то, что нельзя передавать мутабельные типы значений.
Спасибо за информацию!
Извиняюсь, не в почту написал, Первый вопрос(
Здравствуйте!
Вопрос: если создаю COM(OLE, ADODB и т.д.) -объект внушительных объёмов на клиенте, система не ругается, но на сервер не передаёт. В чём отличие от ТабЗнач, которая, в принципе, на клиенте не создаётся?
Забыл отметить: совсем маленькой ТабЗнач, в общем, объёмы передачи несопоставимы)
Александр, пока вопрос не ясен.
Напишите подробнее в ящик мастер-группы.
Отдельно поясните, что значит
>система не ругается, но на сервер не передаёт
Также поясните аналогию с таблицей значений.
Все пункты с описанием вылезли на главную. :)
Спасибо, исправлено :)