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

Новая сессия мастер-группы базового курса. Представлено 7 видео-уроков.


Пока рассматриваем вопросы первого потока.

1. Во втором модуле курса рассматривался вопрос как получить последнюю запись на дату для товара с помощью запроса по регистру сведений.
Но там устанавливался отбор по одному конкретному товару.
А как лучше получить последние записи по всем товарам, для которых есть данные в регистре сведений?
Например, есть регистр «Цены номенклатуры контрагентов».
Периодический, в пределах дня. Подчинен регистратору.
Измерения: Товар, Поставщик.
Ресурс: Цена.
Как выбрать последние цены по товарам, независимо от поставщиков (одним запросом)?
В общем случае, как получить СрезПоследних не по всем измерениям регистра, а по одному или нескольким?

2. Обработчик события НачалоВыбораИзСписка, передаю в процедуру текущий элемент, т.е. ПолеВыбора. Затем в процедуре такой код: Элемент.СписокВыбора.Очистить(); СписокСерий = Элемент.СписокВыбора;
В последней строчке мы присваиваем переменной СписокСерий – список значений.
Вопрос: почему при добавлении очередного элемента в список значений, который содержит переменная СписокСерий, этот элемент автоматически попадает в Элемент.СписокВыбора ?
Ведь мы не ссылку присвоили , а скопировали в переменную список значений?

3. В рамках курса вы говорили о том, что максимальный размер таблиц БД не может быть больше, чем 4Гб
В связи с чем у меня возникло 2 практических вопроса:
1.       Касается ли это всех(любых) таблиц? – в частности если я собираюсь хранить в БД большое количество графических файлов ка хранилище значений в определенном справочнике- будет ли действовать такое же ограничение?
2.       Есть ли какая то обработка, которая позволяет определить размеры таблиц БД

4. Для форм объектов со стандартным меню «Все действия», система не дает редактировать стандартные действия такие как добавить, редактировать и т.д.
Также нельзя внести/изменить синоним к примеру для перевода при использовании нескольких языков.
Как решается эта задача?

5. Для форм объектов со стандартным меню «Все действия», система не дает редактировать стандартные действия такие как добавить, редактировать и т.д.
Также нельзя внести/изменить синоним к примеру для перевода при использовании нескольких языков.
Как решается эта задача?

6. Имеется определенный список значений, содержащий список номенклатуры.
Необходимо запросом получить остатки для этой номенклатуры из регистра Остатки товаров (к примеру).
Причем необходимо чтобы в запрос попадали все значения номенклатуры, которые есть в списке значений, даже если остатки по ним равны 0?

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

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

  1. Евгений, в 6 уроке Вы отметили, что использование вложенного запроса не является оптимальным решением. Можно узнать почему?
    И еще такой вопрос, если во временной таблице не проиндексировать (скажем по забывчивости) поля, по которым в дальнейшем будут формироваться соединения с другими таблицами – насколько сильно это повлияет на производительность? Есть какая-то статистика или все зависит от объема обрабатываемых данных?

    • Вложенные запросы не позволяют сделать точную оценку количества записей в них оптимизатору запроса СУБД.
      Соответственно, есть вероятность выбора неоптимального плана выполнения запроса.
      Подробнее об этом в курсе продвинутом.

      Что касается временной таблицы. Статистики однозначной нет, поскольку на время выполнения запроса влияют множество факторов.
      Но можно сказать, что в общем случае запрос с использованием индексов в условиях соединений будет работать быстрее.

  2. У вас в описании написано 8 видеоуроков. А их 7.

  3. По поводу первого вопроса.
    Хорошо, но ведь может быть, что в один день от разных поставщиков поступила одна номенклатура, например у нас есть в регистре сведений записи:
    20.09.2010      Стул без ножек     Белявский    600
    03.10.2010      Стул без ножек     Алхимов        500
    03.10.2010      Стул без ножек     Альфа             650
    Тогда приведенный запрос вернет обе записи на 03.10.2010. Как получить все таки одну цену? Можно сгруппировать в конце по дате и номенклатуре, а по цене взять Среднее или Максимум, например. А еще какие-нибудь способы есть?

    • Вы правы для таких данных вернется два значения цены для номенклатуры.
      Вариант решения вы привели верный – брать минимум, максимум или среднее.
      Какой лучше? Это зависит от контекста решаемой задачи.