Базовый курс. МГ сессия от 12.02.2011

Продолжаем МГ базового курса.

1. Проектирование базы данных.
Есть Детали Д1 и Д2.Они входят в сборку Cб1 и Cб2
А сборки и детали могут входить в Готовую продукцию и вложенность может быть многоуровневая.
С нового месяца в связи с заменой оборудования какая-то из деталей стала производиться быстрее (или медленнее).
Как быть в этом случае при перерасчете производства готовой продукции…. вложенность может быть большой?!

2. Работа со справочниками.
Во многих случаях не могу понять как обратиться к тому или иному объекту.
Например, возьмем справочник.  В синтаксис помощнике есть “СправочникМенеджер ” “Справочник Ссылка”  “СправочникОбъект«
Но мне хотелось бы пойти наоборот от объекта системы к Сылкам.
Например, есть справочник “Номеклатура” чтобы обратиться к данному справочнику можно через команду  “Справочник.Номенклатура” Как обратиться
к элементу справочника
к группе справочника
табличной части справочника
реквизиту
Не знаю к чему еще можно обратиться или могут быть какие-либо ссылки

3. Кэширование возвращаемых значений.

Не понял утверждения «Первый раз будет выполнен серверный вызов, во всех остальных случаях обращение к серверу не будет выполняться».
Где располагается кэш серверного модуля? – на сервере или на клиенте? Я понимаю так – при первом вызове с клиента значение функции будет вычислено и помещено в серверный кэш, при последующих – возвращаться из серверного кэша без выполнения кода функции на сервере.
Функция не должна содержать параметров, или кэшируются значения с учетом параметоров?
Пример: ПолучитьКонтрагента(ИНН, КПП) – в теле функции запрос – может ли такая функция кэшироваться?

4. Передача параметров по ссылке.
Интересный момент с передачей параметров всерверную процедуру.
При передаче переменной-объекта в качестве параметра в процедуру, выполняемую на сервере, обратно возвращается другой объект.
Можете прокомментировать такое наблюдение?

К сожалению, у Вас недостаточно прав для просмотра этой записи. Если Вы еще не залогинены на сайте — залогиньтесь. Если Вы оплачивали курс, у Вас активирован токен доступа, Вы залогинены, но Вы видите эту запись — напишите нам на e-mail поддержки.

комментариев 10 на “Базовый курс. МГ сессия от 12.02.2011”

  1. Александр Горлов 20.02.2011 в 03:24

    По п.4.
    Видимо, после возвращения из серверного вызова для клиентских переменных, измененных на стороне сервера, выделяется новая область памяти и их значения загружаются туда.
    Интересны возможные последствия показанного в уроке “эффекта”:
    1. Не очищается ли область памяти, выделенная под Б, сразу после возвращения с сервера, а в отладчике видим структуру до вызова только потому, что эта область еще не затерлась другими данными?
    2. Если память под Б не очищается, то очищается ли она после окончания процедуры или происходит утечка памяти?
    3. Дальнейшее изменение А на клиенте после возврата из серверного вызова, видимо, уже не повлияет на Б, поскольку это будут указатели на совершенно разные области памяти.

    • На самом деле показанное в уроке поведение является задуманным (это не баг).
      И дело здесь в том, что передача по ссылке между клиентом и сервером невозможно.
      В любом случае данные будут скопирована на сервер.
      А при окончании серверного вызова происходит создание нового объекта (выделение новой области памяти).
      Ну а память очищается, с этим проблем быть не должно.

  2. При отсутствии циклов в графе спецификаций разузлование можно сразу расчитать для всего каталога. Для этого достаточно посчитать разузлование от листов конечных комплектующих вверх к готовой продукции выполнив обход узлов по графу.
    В случае изменения вариантов комплектации полуфабрикатов можно пересчитать зависимую от измененных узлов часть графа. Зависимость узлов можно хранить в  текстовом поле иерархии построенном как Код1.Код2.  …  .КодН для позиций каталога фиксирующем для узла зависимость от  спецификации составляющих узлов с кодами (КодЗависимого)=(Код1), … , (КодН)
    Наличие такого поля зависимости преобразует порядок хранения  зависимости узлов из реккурсивного в комулятивный.
    т.е. я в любой структуре хранения комбинаций структурных единиц каталога смогу выделить например подграф зафисимый от узла  (Код1) или нескольких узлов _одним запросом_ вместо реккурсии которая может иметь много уровней. 

    • Хорошая идея, подробно с ней поработаем в курсе продвинутом.

  3. Гуляев Алексей 12.02.2011 в 20:49

    А возможно ли немного подробнее об реализации первого вопроса?

    • Гуляев Алексей 12.02.2011 в 21:03

      Я имею ввиду про реализацию изменения какого нить из параметров вследствие изменения времени на производство той или иной детали.
      Каким образом можно проверять, в каких сборках нужно изменить время?!

      • Проверять никаким образом не нужно.
        Идея, которую я предлагаю – всегда иметь одну активную спецификацию, именно ее использовать при разузловании.

        • Гуляев Алексей 13.02.2011 в 16:03

          тогда я не понял идею о спецификации… хотя может пока не дошел до изучения, того что нужно.

          • Здесь я порекомендую попробовать составить простейшую конфигурацию, понимание должно прийти.

            • Гуляев Алексей 13.02.2011 в 22:56

              Вот этим я и пытаюсь заниматься!