Разработка и оптимизация запросов в 1С:Предприятие 8.3. Модуль 2. Синтаксис текста запроса

На данной странице задавайте вопросы по материалам и практическим заданиям второго модуля курса «Разработка и оптимизация запросов в 1С:Предприятие 8.3».

Практические задания

К сожалению, у Вас недостаточно прав для дальнейшего просмотра.

Если Вы приобрели курс, но еще не активировали токен — пожалуйста, активируйте доступ по инструкциям, высланным на Ваш email после покупки.

Если Вы не залогинены на сайте — залогиньтесь, вернитесь на эту страницу и обновите ее.

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

Комментарии / обсуждение (1 016):

  1. Игорь

    Доброго дня!
    Ещё один вопрос назрел.
    Для ускорения формирования отчёта необходимо использовать Представление(), в то же время для получения расшифровок по выведенным ячейкам необходимо в расшифровку передать ссылку на объект.
    Получается в запросе нам необходимо получать как саму Ссылку так и Представление ссылки, однако, какой тогда смысл в получении представлении Ссылки если и по самой Ссылке на Объект нам будет выведено её представление при выводе отчёта?

    Подобные примеры постоянно попадаются в текстах запросов в типовых. Например вот начало одного из них:
    ТекстЗапроса = »
    |ВЫБРАТЬ РАЗРЕШЕННЫЕ
    | ИсточникДанных.Подразделение КАК Подразделение,
    | ПРЕДСТАВЛЕНИЕ(ИсточникДанных.Подразделение),
    | ИсточникДанных.СтатьяЗатрат КАК СтатьяЗатрат,
    | ПРЕДСТАВЛЕНИЕ(ИсточникДанных.СтатьяЗатрат),

    • Василий Ханевич


      (текст комментария доступен только участникам Мастер-группы)

  2. Игорь

    Доброго дня!

    В процедурах Получения Представления предложено использовать дополнительное поле «ЭтоГруппа». Я, когда сам делал, доп. полей не использовал, а просто проверял на заполненность поля «Артикул». Расскажите пожалуйста, что в конечном итоге будет быстрее работать?

    Процедура ОбработкаПолученияПредставления(Данные, Представление, СтандартнаяОбработка)
    СтандартнаяОбработка = Ложь;

    Если ЗначениеЗаполнено(Данные.Артикул) Тогда
    Представление = Данные.Артикул + » — » + Данные.Наименование;
    Иначе
    Представление = Данные.Наименование;
    КонецЕсли;
    КонецПроцедуры

    • Василий Ханевич


      (текст комментария доступен только участникам Мастер-группы)

  3. Tervolina

    ВЫБРАТЬ
    ПоступлениеТоваров.Номер,
    ПоступлениеТоваров.Дата,
    ПоступлениеТоваров.Контрагент,
    ВЫБОР МЕСЯЦ(ПоступлениеТоваров.Дата)
    КОГДА 1
    ТОГДА «ЯнВарь»

    ИНАЧЕ «Другой»
    КОНЕЦ КАК Месяц
    ИЗ
    Документ.ПоступлениеТоваров КАК ПоступлениеТоваров
    Вопрос — как их подтянуть?

    • Василий Ханевич


      (текст комментария доступен только участникам Мастер-группы)

    • Tervolina

      Василий, извините, не добавлялся комментарий, вопрос не скопировался. Вопрос возник при выполнении 15 задания, где требовалось установить два параметра ДатаНачала и ДатаОкончания и отобрать док.Поступления, попадающие в этот интервал. Я не знаю как это сделать, а в просмотренном видео-ответе, на данный вопрос не отвечается.

      • Василий Ханевич


        (текст комментария доступен только участникам Мастер-группы)

          • Василий Ханевич


            (текст комментария доступен только участникам Мастер-группы)

        • 13jaguar

          А еще интереснее сделать отбор интервала по целым дням:

          ГДЕ
          ПоступлениеТоваров.Дата МЕЖДУ НАЧАЛОПЕРИОДА(&ДатаНачала, ДЕНЬ) И КОНЕЦПЕРИОДА(&ДатаОкончания, ДЕНЬ)

          Отбор по целым дням, в отличие от секунд, более привычен для восприятия.

          • Василий Ханевич


            (текст комментария доступен только участникам Мастер-группы)

  4. Vovan58

    Все задания проверял на базе данных DB2. Нашел и исправил некоторые ошибки в Консоли запросов ( в частности при получении плана запроса). Исправленную версию прилагаю — возможно будет кому-либо полезна.

    • Василий Ханевич


      (текст комментария доступен только участникам Мастер-группы)

  5. samba

    Здравствуйте. Всех с наступившим!!!Заканчиваю смотреть 2 модуль курса. О-очень интересный и полезный курс.Вопрос, а вернее пожелание по теме «Объектная модель запросов». Если Вам не сложно — можно поподробнее именно по этой части? В частности хотелось бы увидеть помимо того, что механизм наконец то появился на самом деле и что то действительно работает, более углубленные сведения. В частности, было бы неплохо «вживую» пробежаться по ветке СхемаЗапроса в синтакс-помощнике( там как обычно все скудно и кратко).Это что касается теории. Ну и конечно Ваша «изюминка»- это демонстрация на практическом примере.Ну например «перевод» конкретного динамического запроса в объектную модель.Возможно подскажете какие либо другие «фишки», для облегчения понимания данной темы.Думаю, что более подробное освещение этого вопроса было бы интересно многим.
    Всего наилучшего, Игорь.

    • Василий Ханевич


      (текст комментария доступен только участникам Мастер-группы)

      • Даниил Матвеев

        Василий, извините, что не по теме, но обращаюсь к Вам, поскольку техподдержка молчит. Пытаюсь получить с утра регистрационный ключ, но везде тишина, и на форуме, и по телефонам…

        • Максим Гошко (Админ)

          Здравствуйте, Даниил.

          Приносим свои извинения за задержку с выдачей регистрационного ключа. На выходных поступает большое количество заявок на получение данных ключей, к сожалению, все заявки во время обрабатывать не успеваем — на дежурстве только один сотрудник.

          P.S. Регистрационный ключ для просмотра курса был выслан Вам сегодня около 16:00 по МСК.

          • Даниил Матвеев

            Спасибо за ключ, извините что написал не туда. Был немного озадачен отсутствием ответного отклика на форуме и тем, что телефон на 8-800, указанный в письме, вообще не работал («номер не используется»)…

            • Татьяна Гужавина

              Здравствуйте, Даниил!
              По данному вопросу мы разбираемся с нашим провайдером.
              Возможно, произошел сбой.
              Спасибо, что проинформировали :)

      • marivgo

        Добрый день!
        По поводу схемы запроса и примера в практическом задании, у меня сложилось такое впечатление, что схему запроса лучше применять не очень часто, а только в каких-то специфических ситуациях, чтобы можно было не склеивать текст запроса из разных частей и оставить возможность вызова конструктора. Хотя и по поводу склеивания — на простых запросах это выглядит более читабельно, чем новый объект. Мне кажется, что применение нового объекта сильно усложняет чтение кода, особенно другими разработчиками. Когда мы пишем сами — несложно посмотреть по Shift-F9, какой объект от какого объекта нужно взять. Но поскольку там очень большая вложенность, то это довольно плохо визуально воспринимается читающим код. Такое ощущение, что либо нужна привычка постоянной работы с этим объектом, либо лучше придерживаться старого метода. Но это лично для себя, просто мысли.

        • Василий Ханевич


          (текст комментария доступен только участникам Мастер-группы)

          • marivgo

            Согласна, при небольших изменениях текста запроса такой метод достаточно понятен. Надеюсь, в новых версиях типовых конфигураций запросы не будут создаваться таким способом с нуля и этим не будут злоупотреблять:) А для изменения текста запроса в некоторых местах может быть довольно удобно.

  6. niger

    Добрый день,

    не могу понять какое значение параметра &Тип вставлять в консоль запросов при передаче типа через параметр.

    Запрос:
    Возможна также передача значения типа Тип как параметра запроса:

    ВЫБРАТЬ ТИПЗНАЧЕНИЯ(ТоварныеЗапасы.Регистратор) ИЗ РегистрНакопления.ТоварныеЗапасы КАК ТоварныеЗапасы ГДЕ ТИПЗНАЧЕНИЯ(ТоварныеЗапасы.Регистратор) = &Тип

    при автозаполнении заполняет следующим образом:
    Имя параметра — тип,
    Тип — Тип
    Значение — не определено

    спасибо

    • Василий Ханевич


      (текст комментария доступен только участникам Мастер-группы)

  7. Templ

    Есть запрос который выдает ошибку превышение количество таблиц в sql 256.
    При этом составных типов данных нет, таблица в из одна.
    вот запрос https://www.evernote.com/shard/s14/nl/1642498/e8ac6a06-721a-4287-a48c-99c72af7fa18

    Конфигурация обычная приложение.
    В какой консоле можно посмотреть план запроса в sql в обычном приложении?

    • Василий Ханевич


      (текст комментария доступен только участникам Мастер-группы)

        • Василий Ханевич


          (текст комментария доступен только участникам Мастер-группы)

          • Андрей

            Можно подробнее: как использовать Консоль запроса (ИТС) в обычном приложении? Добавил в конфигурацию(в обычном режиме), но при запуске ничего не происходит.

            • Василий Ханевич


              (текст комментария доступен только участникам Мастер-группы)

              • Андрей

                Спасибо. Получилось запустить Консоль запросов для 8.2.
                А вот для 8.3 выдает ошибку
                {Обработка.ИнструментыРазработчикаКонсольЗапросов.Форма.Форма.Форма(33,2)}: Переменная не определена (ЭтотОбъект)
                ЭтотОбъект.Заголовок = ЗаголовокФормы;
                {Обработка.ИнструментыРазработчикаКонсольЗапросов.Форма.Форма.Форма(1054,90)}: Переменная не определена (ЭтотОбъект)
                ТекущийЗапрос.АдресРезультатовЗапроса = ПоместитьВоВременноеХранилище(Результат, ЭтотОбъект.УникальныйИдентификатор);

                P.S.В конфигурации стоит режим совместимости 8.3.1

                899981078968395950c22dfed3a0e282.png

                • Василий Ханевич


                  (текст комментария доступен только участникам Мастер-группы)

  8. Дмитрий

    Как в запросе проверить заполнено ли значение реквизита составного типа данных?

    • Василий Ханевич


      (текст комментария доступен только участникам Мастер-группы)

  9. Anatoli

    при нажатии флага «показать план выполнения запроса» выдает ошибка создания конфигурационного файла C:\….\conf проверьте права доступа
    Запускаю 1с от имени администратора
    {Форма.Форма.Форма(315)}: Поле объекта не обнаружено (ПоказатьПланВыполненияЗапроса)
    Элементы.ПоказатьПланВыполненияЗапроса.Доступность = Ложь;
    платформа 1С:Предприятие 8.3 (8.3.5.1383)
    конфигурация Профессиональная разработка запросов в 1С:Предприятие 8 (1.1)
    обработку скачал с итс

    • Василий Ханевич


      (текст комментария доступен только участникам Мастер-группы)

      • Anatoli

        Спасибо!
        На форме Элемент формы ПоказатьПланВыполненияЗапроса и событие при нажатии ПоказатьПланВыполненияЗапроса.
        Все заработало!

        • Василий Ханевич


          (текст комментария доступен только участникам Мастер-группы)

  10. Максим

    Как работает функция «КонецДня()»? Она возвращает дату и время 23-59-59, или она приводит дату к концу последней секунды дня?

    • Василий Ханевич


      (текст комментария доступен только участникам Мастер-группы)

      • Максим

        Ок. И ещё вопрос, может чуть-чуть не по теме. Подскажите, в скд есть такая штука как стандартный период. СтандартныйПериод.ДатаОкончания тоже приводит дату к концу дня, при этом он включает всю последнюю секунду, или так же приводит к дату к началу последней секунды дня?

        • Василий Ханевич


          (текст комментария доступен только участникам Мастер-группы)

  11. Максим

    как работает условие «Дата Между &Дата1 &Дата2»?
    Точнее, обе границы включаются в условие поиска, или верхняя граница не включена? И не приводит ли система верхнюю границу к концу дня?

    • Василий Ханевич


      (текст комментария доступен только участникам Мастер-группы)

      • Templ

        А время обнуляеться или будет то которое в параметрах передаеться?

        • Василий Ханевич


          (текст комментария доступен только участникам Мастер-группы)

  12. Максим

    Никогда раньше не задумывался, как работает индексирование, видимо пришло время :)
    Рассмотрим простой пример — выборка товаров с индексированием по ссылке.
    1) Я правильно понимаю, что индексирование — это банальное упорядочивание (сортировка) по выбранному полю? Или в 1с создаётся какая-то своя таблица индексов? Тогда, при упорядочивании, судя по всему, при поиске нужного элемента, будет использоваться не линейный поиск полным перебором, а какой-нибудь из логарифмических (вроде быстрее чем за логарифм искать ещё не научились), отсюда и выигрыш в производительности.
    2) Если мы хотим соединить две таблицы, тогда выгоднее всего (на достаточно больших объёмах данных) получить обе таблицы, как виртуальные и проиндексировать по соединяемым полям?
    3) как работает индексирование по нескольким полям? И как потом выполняется поиск по индексированному полю, которое не первое в списке. Т.е. если я индексирую по номенклатуре и контрагенту (первое поле — номенклатура), а соединяю таблицы по полю контрагент, как в этом случае будет работать поиск?
    4) Если я хочу сделать левое соединение двух таблиц (например, по полю ссылка-владелец), логичнее предположить, что индексировать оптимальнее всего только вторую таблицу (не главную), т.к. именно в ней будут искаться поля, соответствующие условию. Таким образом, я не трачу время на индексирование главной таблицы, и при этом поиск у меня будет выполняться оптимально, т.к. таблица, в которой ищутся элементы проиндексирована. Я правильно понимаю, что я добьюсь максимального выигрыша производительности в данном примере (на достаточно большом объеме данных)?

    • Василий Ханевич


      (текст комментария доступен только участникам Мастер-группы)

      • Максим

        1) Типов индексов в ms sql по ссылке перечислено много. Какой конкретно используется в запросах в 1с?
        2) А есть где-нибудь такое место, где собраны все эти рекомендации фирмы «1с»? :)
        3) Т.е. всё-таки есть ограничение по индексам, получается, что нельзя создать больше одной таблицы индексов (по одному или нескольким полям) для одной ВТ. Отсюда вытекает рекомендация, что если одну таблицу нужно соединить с двумя другими по разным полям, то нужно сначала проиндексировать исходную таблицу по одному полю и соединить со второй таблицей, то что получилось проиндексировать по другому полю и соединить с третьей таблицей и это будет работать быстрее, чем если бы таблицу одновременно соединяли с двумя другими. Так?
        4) Как в простейшем случае выполняется левое соединение? Я думаю, берутся по порядку все записи из главной таблицы и ищется соответствие во второй таблице по соединяемому полю. Т.е. получается, что индексировать по сути нужно только вторую таблицу, чтобы максимально быстро выполнялся поиск. А на индексирование первой таблицы в данном случае будет тратиться лишнее время и память. Или система делает соединение как-то по хитрому?

        • Василий Ханевич


          (текст комментария доступен только участникам Мастер-группы)

          • Максим

            4. Про соединение слиянием сказано, что «Соединение слиянием требует сортировки обоих наборов входных данных по столбцам слияния, которые определены предложениями равенства (ON) предиката объединения.» Т.е. получается, что нет большого смысла индексировать поле, если объединение выполняется более хитрым способом, чем проверка на равенство? Т.е. если я буду соединять таблицу саму с собой по условию, например, А.Дата < B.Дата, то мне нет смысла индексировать поле "дата"?

            • Василий Ханевич


              (текст комментария доступен только участникам Мастер-группы)

              • Максим

                Спасибо. Люблю первый поток, тренер ещё не устал от глупых вопросов и есть ещё силы давать полные и развернутые ответы :)

                • Василий Ханевич


                  (текст комментария доступен только участникам Мастер-группы)

  13. Templ

    Как определить принадлежность к группе «покупатели» в иерархическом справочнике, если элемент справочника находиться в подгруппе «Магазины»?

    • Василий Ханевич


      (текст комментария доступен только участникам Мастер-группы)

      • Templ

        Такой запрос выдаст весь список элементов входящих в группу «Покупатели». А я имел ввиду результат из одного элемента.
        Или только через временную таблицу сделать проверку на вхождение нужного элемента в этот список?

        • Василий Ханевич


          (текст комментария доступен только участникам Мастер-группы)

  14. segen

    Здравствуйте!

    Вопрос по практическому занятию №13 модуля №2.
    При использовании группировки по полям «Контрагент» и «Дата» получаем тот же результат.
    В данной ситуации какое преимущество использования «Различные»?

    • Василий Ханевич


      (текст комментария доступен только участникам Мастер-группы)

  15. Templ

    1. Практическое задание №9 в базе всего 2 контрагента которые покупали холодельник, слово РАЗЛИЧНЫЕ в запросе ни на что не влияет, т.е. в базе мало данных.

    2. Практическое задание №12. Задание на знание предопределенные данные, — хотя для решения предопределенные данные не нужны.

    3. Есть консоль запросов под тонкий клиент?

    • Василий Ханевич


      (текст комментария доступен только участникам Мастер-группы)

  16. gosn1ck

    Добрый день, на странице 82 говорится об ограничении sql сервера в 256 таблиц. в 12 сервере это ограничение не увеличивали ?

    • Василий Ханевич


      (текст комментария доступен только участникам Мастер-группы)

  17. Станислав Лукаш

    В какую конфигурацию загружать базу. Пишет не верный формат для загрузки? Query-Homework-Template.dt

    • Василий Ханевич


      (текст комментария доступен только участникам Мастер-группы)

      • Станислав Лукаш

        Спасибо. Понятно у меня платформа 8.2

      • Даниил Матвеев

        Добрый день! Попытался загрузить шаблонную конфигурацию используя платформу 8.3.5.1383. Выдается ошибка:
        Ошибка загрузки информационной базы. В информационную базу загружены не все данные
        по причине:
        Ошибка формата потока
        Подскажите пожалуйста, в чем может быть причина и помешает ли это дальнейшей работе?

        • Василий Ханевич


          (текст комментария доступен только участникам Мастер-группы)

          • Даниил Матвеев

            Обратил внимание на размер dt-файла, оказалось, что он меньше на несколько килобайт. Повторно скачанная конфигурация загрузилась нормально. Спасибо!

            • Василий Ханевич


              (текст комментария доступен только участникам Мастер-группы)

  18. serk@rarus.ru

    Здравствуйте, пытаюсь посмотреть план выполнения запроса.

    При нажатии на соответствующий флажок возникает ошибка:
    «Ошибка создания конфигурационного файла С:\…\1cv8\conf Проверьте права доступа»

    Релиз платформы 8.3.5.1231. ОС — windows 8.1

    В чем может быть ошибка?

    • Василий Ханевич


      (текст комментария доступен только участникам Мастер-группы)

        • Василий Ханевич


          (текст комментария доступен только участникам Мастер-группы)

  19. SonyaN

    Доброе время суток! В практических заданиях 16-18 текст не соответствует заданию. в задании 16 — «В данном практическом задании необходимо получить запросом артикулы всех товаров…» — из общего описания; из описания в практике «Необходимо реализовать отчет Продажи по месяцам в виде кросс-таблицы без использования СКД….». Файлы от 19.12.14

    • Татьяна Гужавина

      Добрый день!
      Скачайте задания повторно. Файлы уже исправлены.

  20. dj_serega

    Есть ВТ втПродуктНоменклатура. Эта ВТ, в запросе, используется несколько раз. Первый раз соединение по Продукту, второй раз по Номенклатуре.

    Выбрать
    Продукт Продукт,
    Номенклатура Номенклатура
    Поместить втПродуктНоменклатура
    Из
    &втПродуктНоменклатура

    Мне кажется нужно создать две дополнительные вт и одну проиндексировать по Продукту, а вторую по Номенклатуре.

    Будет выглядеть так:

    Выбрать
    Продукт Продукт,
    Номенклатура Номенклатура
    Поместить втПродуктНоменклатураОсновная
    Из
    &втПродуктНоменклатура
    ;
    Выбрать
    Продукт Продукт,
    Номенклатура Номенклатура
    Поместить втПродуктНоменклатура
    Из
    втПродуктНоменклатураОсновная
    Индексировать По
    Продукт
    ;
    Выбрать
    Продукт Продукт,
    Номенклатура Номенклатура
    Поместить втНоменклатураПродукт
    Из
    втПродуктНоменклатураОсновная
    Индексировать По
    Номенклатура

    • Василий Ханевич


      (текст комментария доступен только участникам Мастер-группы)

      • dj_serega

        Получается что то порядок при индексации не играет роли. Верно?

        • Василий Ханевич


          (текст комментария доступен только участникам Мастер-группы)

          • dj_serega

            Извините, но я имел ввиду немного другое.
            Нет разницы между
            «Индексировать ПО Номенклатура, Продукт»
            И
            «Индексировать ПО Продукт, Номенклатура».
            В обоих случаях будет создано два индекса «Номенклатура» и «Продукт». И связи между индексацией нет.

            В методичке был пример по областям, городам и адресам. Я понял так: порядок индексации играет роль. И нужно индексировать в том порядке, в котором поля будут связываться дальше.

            На примере выглядит так (разница только в полях соединения):

            Вариант1:

            Индексировать По
            Т1.Продукт, Т1.Номенклатура
            ;
            Индексировать По
            Т2.Продукт, Т2.Номенклатура
            ;
            Т1 КАК Т1
            Левое Соединение Т2 как Т2
            По Номенклатура1 = Номенклатура1
            И Продукт1 = Продукт1

            Вариант2:

            Индексировать По
            Т1.Продукт, Т1.Номенклатура
            ;
            Индексировать По
            Т2.Продукт, Т2.Номенклатура
            ;
            Т1 КАК Т1
            Левое Соединение Т2 как Т2
            По Продукт1 = Продукт1
            И Номенклатура1 = Номенклатура1

            • Василий Ханевич


              (текст комментария доступен только участникам Мастер-группы)

  21. dennisru

    Добрый день! В 1С есть объект ПостроительЗапросов, теперь добавился объект СхемаЗапроса. В чем разница?

    • Василий Ханевич


      (текст комментария доступен только участникам Мастер-группы)

  22. mfoleg

    Решение 15-ого практического задания не корректно условиям задания. Преподаватель умолчал о двух параметрах даты.

    • Василий Ханевич


      (текст комментария доступен только участникам Мастер-группы)

      • mfoleg

        Добрый день!
        Наверно стоит уточнить до:
        Дата МЕЖДУ НачалоПериода(&ДатаНачала, День) И КонецПериода(&ДатаОкончания, День)
        Спасибо.

        • Василий Ханевич


          (текст комментария доступен только участникам Мастер-группы)

  23. dj_serega

    Вопрос по оптимизации запроса:

    Выбрать
    Продукт,
    Номенклатура
    Поместить втПродуктНоменклатура
    Из &втПродуктНоменклатура

    ;

    Выбрать
    втПродуктНоменклатура.Продукт Продукт,
    ПродажиПоДням.Количество Количество
    Из
    РегистрНакопления.ПродажиПоДням.Обороты(
    &НачалоПериода,
    &КонецПериода,
    ,
    Номенклатура В
    (ВЫБРАТЬ
    втПродуктНоменклатура.Номенклатура
    ИЗ
    втПродуктНоменклатура КАК втПродуктНоменклатура)) КАК Продажи
    ЛЕВОЕ СОЕДИНЕНИЕ втПродуктНоменклатура КАК втПродуктНоменклатура
    ПО Продажи.Номенклатура = втПродуктНоменклатура.Номенклатура

    1. Отбор во временной таблице нужен.
    2. Нужна индексация по полю Номенклатура.

    верно?

    Почему возник вопрос. Сотрудник говорит что данные о продажах нужно с отбором проиндексировать и вынести в временную таблицу. После чего её связывать с втПродуктНоменклатура.

    • Василий Ханевич


      (текст комментария доступен только участникам Мастер-группы)

      • dj_serega

        Спасибо. Действительно быстрее по Вашему совету.
        Даже на не больших реальных данных прирост скорости 0.200 секунд.
        До оптимизации выполнялось 0.260 секунд. После 0.06 секунд.

        Ниже откорректированный текст запроса для форума.

        Выбрать
        Продукт Продукт,
        Номенклатура Номенклатура
        Поместить втПродуктНоменклатура
        Из
        &втПродуктНоменклатура
        ;
        Выбрать
        ПродажиПоДням.Номенклатура Номенклатура,
        ПродажиПоДням.Количество Количество
        Поместить втПродажи
        Из
        РегистрНакопления.ПродажиПоДням.Обороты(
        &НачалоПериода,
        &КонецПериода,
        ,
        Номенклатура В
        (ВЫБРАТЬ
        втПродуктНоменклатура.Номенклатура
        ИЗ
        втПродуктНоменклатура КАК втПродуктНоменклатура)) КАК Продажи
        ;
        Выбрать
        Продукт,
        сумма(Количество)
        Из
        втПродажи КАК втПродажи
        ЛЕВОЕ СОЕДИНЕНИЕ втПродуктНоменклатура КАК втПродуктНоменклатура
        ПО втПродажи.Номенклатура = втПродуктНоменклатура.Номенклатура

        Итог:
        1. Действительно работает быстрее. Даже на маленьких данных.
        2. На маленьких данных прирост индексации не сильно ощущался. На больших объемах заметно быстрее.
        3. Получается все выборки из БД лучше помещать в ВТ. И потом уже соединять. Да запрос будет большой, но что бы места меньше занимал можно использовать #Область.

        Спасибо!

        Следующий вопрос задам отдельно но он выплыл с этого :)

  24. n.poymanov

    Практическое задание №17.
    Почему для выполнения задания берется именно общая таблица регистра ТоварыНаСкладах? Почему нельзя работать с виртуальной ТоварыНаСкладахОбороты с периодичностью = Регистратор? И еще, почему-то по описанной мною схеме невозможно через конструктор запроса разименовать регистратора до даты, он просто не дает выхватить это поле, хотя руками все прописывается. Почему так?

    Практическое задание #18

    Процедура ОбработкаПолученияПредставления(Данные, Представление, СтандартнаяОбработка)
    СтандартнаяОбработка = Ложь;

    Представление = Данные.Артикул + » — «+Данные.Наименование;

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

    При таком написании процедуры при открытии Справочника «Номенклатура» вылезает ошибка по ошибке преобразования к числу. Почему в запросе при формировании представления нет ошибок и почему текст процедуры в видеоуроке написан с ошибкой? Ведь надо же преобразовать артикул к строке.

    • Василий Ханевич


      (текст комментария доступен только участникам Мастер-группы)

  25. n.poymanov

    Страница 59:
    Чтобы найти контрагентов, у которых поле ДополнительнаяИнформация содержит символ подчеркивания («_»), необходимо составить следующий запрос: ВЫБРАТЬ Контрагенты.Наименование, Контрагенты.Город ИЗ Справочник.Контрагенты КАК Контрагенты ГДЕ Контрагенты.ДополнительнаяИнформация ПОДОБНО «%\_%» СПЕЦСИМВОЛ «\»

    Поясните, пожалуйста, смысл использования конструкции СПЕЦСИМВОЛ. Если нам необходимо установить условие по наличию «_» в реквизите, то почему мы пишем ПОДОБНО «%\_%», а не просто ПОДОБНО «%_%»? Как здесь используется СПЕЦСИМВОЛ?

    Спасибо!

    • Василий Ханевич


      (текст комментария доступен только участникам Мастер-группы)

  26. SVB

    Здравствуйте!
    Вопрос по очередности условий в секции ГДЕ.
    Если одно из простых условий дает значение ЛОЖЬ, проверяются ли оставшиеся условия, т.е. важен ли порядок условий? Если порядок условий имеет значение, почему в конструкторе не предусмотрена возможность перестановки простых условий, которые соединяются логическим И, чтобы условия с наиболее вероятным значением ЛОЖЬ проверялись первыми.
    Спасибо.

    • Василий Ханевич


      (текст комментария доступен только участникам Мастер-группы)

  27. natzelv

    Здравствуйте!Вопрос по заданию 13. Можно ли в запросе получить Дату без времени? В решении по заданию мы получаем дату с нулевым временем 12.12.2014 00.00.00 , а как получить просто 12.12.2014 ?

    • Василий Ханевич


      (текст комментария доступен только участникам Мастер-группы)

      • natzelv

        Я правильно поняла, что как результат запроса получить дату без времени никак нельзя? Нельзя выразить дату как строку и применить функцию ПОДСТРОКА(). Отбросить время можно только при обработке выборки из результата запроса или в СКД.

        • Василий Ханевич


          (текст комментария доступен только участникам Мастер-группы)

  28. dj_serega

    1. На странице 91 (и 102 и 125) некорректная ссылка на мастер группу. Поидее должно сюда перебросить, а оно на курс по БУ.
    2. Прочитав модуль 2 не увидел еще одной особенности «ВЫРАЗИТЬ(11.111111 КАК Число(15, 2))».
    В данном случае будет получена исключительная ситуация (на ms sql так точно :) ).
    3. И было бы неплохо иметь закладки в PDF’ах. Как минимум на модули.

    Идем изучение дальше. Видео еще не смотрел так как еще не пришел доступ на плеер.
    А в общем все на высшем уровне. Спасибо.

    • Евгений Гилев (Мастер-тренер)

      Добрый день!

      1. Ссылки поправили, перекачайте файл.
      2. На этот вопрос ответит тренер.
      3. Быстрый переход по оглавлению не спасает?

      Ключ для просмотра видео Вам уже выдан, приступайте :)

      Попрошу Вас разделять вопросы организационные, технические и вопросы по курсу на разные комментарии.

      Поскольку на них отвечают разные специалисты :)

      • dj_serega

        3. Спасает =). Но было бы удобней видеть закладки а не переходить вверх и там уже искать. Это больше как пожелание а не проблема.
        Проблем с чтением нет. Как всегда на высшем уровне.

        «Ключ для просмотра видео Вам уже выдан, приступайте :)»
        Большое спасибо. Приступил :)

        «Попрошу Вас разделять вопросы организационные, технические и вопросы по курсу на разные комментарии.»
        Хорошо. Не хотел заспамивать комментами. Но если так будет лучше тогда хорошо ;)

        • Евгений Гилев (Мастер-тренер)

          Ок, пожелание записал.

          Успешного обучения! :)

    • Василий Ханевич


      (текст комментария доступен только участникам Мастер-группы)

      • dj_serega

        Точно. Имел ввиду второй вариант. Это он не описан в методичке.

        • Василий Ханевич


          (текст комментария доступен только участникам Мастер-группы)

  29. FoXSkr

    Здравствуйте.
    Подскажите, а кроме как выборки табличной части, можно как нибудь еще получить в выборку поле типа «Результат запроса»?
    P.S. Описанный в видео «Использование вложенных таблиц в запросе».

    • Василий Ханевич


      (текст комментария доступен только участникам Мастер-группы)

  30. julietta_w

    Здравствуйте!
    На стр.37 пособия о разделе «Синтаксис языка запросов» сказано так: «Обратите внимание, что данный раздел присутствует только в справке, в Синтакс-помощнике такого раздела нет.» Да уж обратила, потому что сначала взялась искать именно в Синтакс-помощнике. А не можете ли пояснить, чем обусловлена такая разница. Это ведь касается не только этого раздела. Будьте добры.

    • Василий Ханевич


      (текст комментария доступен только участникам Мастер-группы)

  31. Иван Татарников

    Здравствуйте. В каком случае план выполнения запроса отображается в виде таблицы? Как у Вас в последнем видеоуроке данного модуля.

    • Василий Ханевич


      (текст комментария доступен только участникам Мастер-группы)

  32. Андрей

    На странице 64 Хотя речь идёт о практическом задании № 9 в пояснении сказано «В третьем практическом задании из документов «Реализация товаров» необходимо выбрать всех клиентов, приобретавших заданный пользователем товар.»
    Тут опечатка? Нужно читать «В девятом практическом задании из документов «Реализация товаров» необходимо выбрать всех клиентов, приобретавших заданный пользователем товар.» или я не верно понял?

    • Василий Ханевич


      (текст комментария доступен только участникам Мастер-группы)

  33. ravsem

    Я так понимаю, что методы «ОбработкаПолученияПолейПредставления» и «ОбработкаПолученияПредставления» не вызываются при формировании оборотно-сальдовой ведомости? Интересовало, в частности, представление партий на счетах товаров (хотел добавить НомерВходящегоДокумента).

    • Василий Ханевич


      (текст комментария доступен только участникам Мастер-группы)

  34. Serg82

    Задание N18. Обнаружился глюк платформы (8.3.5.1231), делал свое представление для справочника Номенклатура, поля: ЭтоГруппа, Артикул, Наименование. Для виртуального поля Представление ЭтоГруппа инвертируется (для элементов Истина, для группы Ложь). Если в запросе указать только поле Ссылка, то обработчик получения представления отрабатывает штатно, но это не оптимально.

    • Василий Ханевич


      (текст комментария доступен только участникам Мастер-группы)

      • Serg82
        Процедура ОбработкаПолученияПолейПредставления(Поля, СтандартнаяОбработка)
            СтандартнаяОбработка = Ложь;
            Поля.Добавить("ЭтоГруппа");
            Поля.Добавить("Артикул");
            Поля.Добавить("Наименование");
            Поля.Добавить("Ссылка");
        КонецПроцедуры

        Процедура ОбработкаПолученияПредставления(Данные, Представление, СтандартнаяОбработка)
            Если Данные.Свойство("Артикул") И Данные.Свойство("Наименование")
                    И Данные.Свойство("ЭтоГруппа") И НЕ Данные.ЭтоГруппа Тогда
                СтандартнаяОбработка = Ложь;
                Если НЕ ПустаяСтрока(Данные.Артикул) Тогда
                    Представление = ""+Данные.Артикул+":";
                КонецЕсли;
                Представление = Представление+Данные.Наименование;
            КонецЕсли;
        КонецПроцедуры
        • Василий Ханевич


          (текст комментария доступен только участникам Мастер-группы)

          • FoXSkr

            Глюк платформы с полем ЭтоГруппа все таки есть.
            На платформе 8.3.5.1383
            Переопределил представление номенклатуры
            Процедура ОбработкаПолученияПолейПредставления(Поля, СтандартнаяОбработка)
            СтандартнаяОбработка = Ложь;
            Поля.Добавить(«Артикул»);
            Поля.Добавить(«Наименование»);
            Поля.Добавить(«ЭтоГруппа»);
            КонецПроцедуры

            Процедура ОбработкаПолученияПредставления(Данные, Представление, СтандартнаяОбработка)
            СтандартнаяОбработка = Ложь;
            Если Данные.ЭтоГруппа Тогда
            Представление = Данные.Наименование;
            Иначе
            Представление = Данные.Наименование + » Артикул: » + Данные.Артикул;
            КонецЕсли;
            КонецПроцедуры

            При выводе в запросе ссылки тогда представление корректно отрабатывается. А если выбрать в запросе виртуальное поле «Представление» тогда выводится только наименование — по причине что Это группа всегда равна Истине (даже у элементов справочника).
            Но при выводе ссылки или с помощью функции Представление или ПредставлениеСсылки все отрабатывается корректно.

            • Василий Ханевич


              (текст комментария доступен только участникам Мастер-группы)

            • Василий Ханевич


              (текст комментария доступен только участникам Мастер-группы)

              • Василий Ханевич


                (текст комментария доступен только участникам Мастер-группы)

            • Василий Ханевич


              (текст комментария доступен только участникам Мастер-группы)

              • FoXSkr

                Я подгрузил вашу информационную базу (вроде ничего не менял).
                Режим совместимости — Не использовать
                Режим совместимости интерфейса — 8.2

                • Василий Ханевич


                  (текст комментария доступен только участникам Мастер-группы)

          • Serg82

            Если в запросе выбрать не ссылку, а Представление.

            ВЫБРАТЬ
                Представление
            ИЗ Справочник.Товары
  35. chagchen

    Добрый вечер!
    Объясните, пожалуйста, алгоритм вычисления разности дат в запросе.
    Например в запросе:
    ВЫБРАТЬ РАЗНОСТЬДАТ(&Дата1, &Дата2, МЕСЯЦ) КАК Поле1
    При значении параметров
    Дата1 = 01.01.2014 00:00:00 Дата2 = 31.01.2014 23:59:59
    Результат 0 Мес
    При значении параметров
    Дата1 = 31.01.2014 23:59:59 Дата2 = 01.02.2014 00:00:00
    Результат 1 Мес

    • Василий Ханевич


      (текст комментария доступен только участникам Мастер-группы)

  36. FoXSkr

    Здравствуйте.
    Вопрос по 50 стр.
    Автоупорядочивание работает по следующим принципам:
    1. Если в запросе было указано предложение УПОРЯДОЧИТЬ ПО, то каждая ссылка на таблицу, находящаяся в этом предложении, будет заменена полями, по которым по умолчанию сортируется таблица (для справочников это код или наименование).
    У меня почему-то это не сработало, у меня сначала отсортировались группы, а затем элементы справочника. Или далее..
    Если поле для упорядочивания ссылается на иерархический справочник, то будет применена иерархическая сортировка по этому справочнику.
    Это и означает что сначала отсортируются группы а затем элементы.
    P.S. Формировал запрос к справочнику номенклатуры вашей базы.
    Примечательно что: согласно п.1 и п.4 на стр. 50
    Запросы:
    1) ВЫБРАТЬ
    Номенклатура.Ссылка КАК Ссылка
    ИЗ
    Справочник.Номенклатура КАК Номенклатура
    АВТОУПОРЯДОЧИВАНИЕ

    И

    2) ВЫБРАТЬ
    Номенклатура.Ссылка КАК Ссылка
    ИЗ
    Справочник.Номенклатура КАК Номенклатура

    УПОРЯДОЧИТЬ ПО
    Ссылка
    АВТОУПОРЯДОЧИВАНИЕ

    Должны выдавать одинаковые результаты. Но результаты увы, не одинаковые. В первом случае у меня элементы отсортировались иерархически (т.е. группа далее элементы в ней) во втором у меня вывелись отсортированные группы а затем отсортированные элементы справочника.
    Примечание: Платформа 8.3.5.1248

    • Василий Ханевич


      (текст комментария доступен только участникам Мастер-группы)

      • FoXSkr

        Здравствуйте.
        Интересный конечно запрос получился.
        P.S. Если вдруг вы действительно будите писать разработчикам, напишите пожалуйста что на платформе 8.3 платформа не всегда видит внесение изменений в СКД и при перезапуске отладки не сохраняет изменения которые я внес. или напишите плиз куда писать. За ранее благодарен.

        • Василий Ханевич


          (текст комментария доступен только участникам Мастер-группы)

        • Василий Ханевич


          (текст комментария доступен только участникам Мастер-группы)

  37. n.poymanov

    Добрый день!

    Страница 50, методического материала:

    «4. Если в запросе отсутствуют предложения УПОРЯДОЧИТЬ ПО, ИТОГИ и СГРУППИРОВАТЬ ПО, результат будет упорядочен по полям сортировки по умолчанию для таблиц, из которых выбираются данные, в порядке их появления в запросе.»

    > результат будет упорядочен по полям сортировки по умолчанию для таблиц, из которых выбираются данные, в порядке их появления в запросе.»
    Поясните, пожалуйста, какие это поля сортировки по умолчанию для таблиц и что значит в «порядке их появления в запросе»?

    • Василий Ханевич


      (текст комментария доступен только участникам Мастер-группы)

      • n.poymanov

        > Имеются в виду поля, по которым по умолчанию сортируется таблица (для справочников это код или наименование в зависимости от настроек в конфигураторе, а для документов – дата).
        Т.е. это по своей сути равно АВТОУПОРЯДОЧИВАНИЮ?

        • Василий Ханевич


          (текст комментария доступен только участникам Мастер-группы)

  38. s.trukhachev

    Добрый день!
    В практическом занятии №5 при использовании таблицы оборотов время выполнения запроса 0,133. При непосредственном обращении к регистру — 0,001. Какой смысл использования виртуальной таблицы оборотов в такой задаче?

    • Василий Ханевич


      (текст комментария доступен только участникам Мастер-группы)

  39. rut-marina

    Подскажите, пожалуйста, в последнем 18-м задании 2-го модуля у групп Представление=Null, и, судя по отладчику, в ОбработкаПолученияПредставления() для групп мы не попадаем? Как -то можно для групп оставить Представление как раньше, без артикула?

    • Василий Ханевич


      (текст комментария доступен только участникам Мастер-группы)

  40. Юрий

    Добрый день, в задании 17 сделал отбор с помощью «ВЫРАЗИТЬ»:
    ВЫБРАТЬ
    ВЫРАЗИТЬ(ТоварыНаСкладах.Регистратор КАК Документ.ПоступлениеТоваров).Дата КАК Дата
    ИЗ
    РегистрНакопления.ТоварыНаСкладах КАК ТоварыНаСкладах

    В результат выдает строки не только с датами, но множество пустых строк. Не понимаю откуда они берутся?

    • Василий Ханевич


      (текст комментария доступен только участникам Мастер-группы)

      • Юрий

        Ну да, пустые строки это все остальные документы. Получается необходимо ещё и условие:

        ГДЕ ТоварыНаСкладах.Регистратор ССЫЛКА Документ.ПоступлениеТоваров

        для корректного отображения. Спасибо.

        • Василий Ханевич


          (текст комментария доступен только участникам Мастер-группы)

          • Максим

            А как более оптимально, условие в секции «где», или в полях выбора писать
            Выбор Когда ТоварыНаСкладах.Регистратор Ссылка Документ.ПоступлениеТоваров Тогда
            Выразить(ТоварыНаСкладах.Регистратор КАК Документ.ПоступлениеТоваров)
            Конец
            ?

            • Василий Ханевич


              (текст комментария доступен только участникам Мастер-группы)

  41. Юрий

    Добрый день. Платформа 8.3.5. Консоль запросов скачана с сайта ИТС. При включении флага «Показывать план выполнения запроса» выдает ошибку «Поле объекта не обнаружено (ПоказатьПланВыполненияЗапроса)? Подскажите пожалуйста, что может быть?

    • Юрий

      Вообще с сайта скачивается архив с двумя обработками. Так вот, та что «ИнструментыРазработчикаКонсольЗапросов83.epf» работает.

    • Василий Ханевич


      (текст комментария доступен только участникам Мастер-группы)

      • Юрий

        А подскажите, есть разница (кроме этой), какую обработку использовать?

        • Василий Ханевич


          (текст комментария доступен только участникам Мастер-группы)

  42. rut-marina

    Добрый день!

    Корректно ли будет в задании 17 модуля 2 использовать вместо физической таблицы ТоварыНаСкладах — виртуальную с оборотами?

    • Василий Ханевич


      (текст комментария доступен только участникам Мастер-группы)

      • rut-marina

        Но если ресурс нулевой, смысла в данном движении и нет?

        • Василий Ханевич


          (текст комментария доступен только участникам Мастер-группы)

  43. sasha4e

    В бухгалтерии проверил подобный метод, что то не сработало.

    ВЫБРАТЬ
    КонтрагентыКонтактнаяИнформация.Ссылка
    ИЗ
    Справочник.Контрагенты.КонтактнаяИнформация КАК КонтрагентыКонтактнаяИнформация
    ГДЕ
    НЕ КонтрагентыКонтактнаяИнформация.НомерТелефона ПОДОБНО «+7(___)___-__-__»
    И КонтрагентыКонтактнаяИнформация.Вид = &ВидКонтактнойИнформации

    • Василий Ханевич


      (текст комментария доступен только участникам Мастер-группы)

  44. renjud

    Добрый день!
    В 8 задании по-моему решение не всегда будет корректно отрабатывать: например, если менеджер ошибся при вводе телефона и вместо цифры написал букву, но номер соответствует стандарту, то запрос, предложенный в решении, посчитает данный номер корректным и не выведет в результат запроса. На скриншоте выложил свой вариант решения.

    251644797c4f4332659970758f047f9a.jpg

    • Василий Ханевич


      (текст комментария доступен только участникам Мастер-группы)

        • Василий Ханевич


          (текст комментария доступен только участникам Мастер-группы)

  45. rut-marina

    Здравствуйте!
    Вызвала конструктор запросов из конфигуратора, нажиамаю (по мотивам урока Query-2-Syntax-3) кнопку Запрос. Виден текст запроса в отдельном окне и все, нет возможности (соотв. кнопок) для его выполнения. Доступна только одна кнопка для редактирования текста.Версия платформы 8.3.5.1248

    • Василий Ханевич


      (текст комментария доступен только участникам Мастер-группы)

  46. viaton

    Например, в задании №16 текст — от задания №26 (см. скриншоты). А в видеорешении — совсем другой текст.

    Извините, создал новое сообщение, а не ответил на старое. А исправить нельзя :(

    00581c8cbfd0f9bd51c3a57ed73f236e.gif1795e4752577d413cd278cc0b96cbcdc.gif

    • Евгений Гилев (Мастер-тренер)

      Добрый день!

      Да, спасибо, в течение часа исправим и выложим обновленные архивы на сайт.

  47. BogdSF

    Здравствуйте! Первое впечатление от курса отличное.Здорово подобран и организован изучаемый материал,темы в видеоуроках хорошо объясняются с нормальным темпом изложения.Теперь по существу. При выполнении запроса, например, из обработки, вызываются события объекта СправочникМенеджер.Товары:
    «ОбработкаПолученияПолейПредставления» и «ОбработкаПолученияПредставления», например при запросе к
    справочнику «Товары» демо базы упр приложения. Получается, что при выполнении кода: Запрос.Выполнить() происходит обращение к типу «СправочникМенеджер.Товары» и при этом полученное представление ссылки элемента справочника «Товары» кэшируется для сеанса, ибо повторный запрос не приводит к вызову этих событий. Как-то раньше не задумывался над таким поведением объекта «Запрос». Интересно, а еще что-то не очевидное при выполнении метода «Выполнить» объекта «Запрос» происходит? И второй вопрос — выгрузки Query-Homework-Template.dt к практическим заданиям одинаковые? Не надо каждый раз создавать новую базу для каждого модуля?

    • Василий Ханевич


      (текст комментария доступен только участникам Мастер-группы)

  48. rut-marina

    Здравствуйте!
    На сайте http://its.1c.ru/ в разделе
    Технологическая поддержка прикладных решений —
    Методическая поддержка 1С:Предприятия 8 — в левом окне нет ссылки на раздел для разработчиков (там только Прикладные решения для хоз. организаций и Универсальные приклодные решения).
    Обработка конечно есть в материалах курса, просто интересно, как в данный раздел попасть можно)

    • Василий Ханевич


      (текст комментария доступен только участникам Мастер-группы)

      • Суворов Юрий

        Консоль скачать не дает «Доступ к данному материалу ограничен».
        Для прохождения курса тоже нужен платный доступ на ИТС ?

        ( как «радует», что работая в купленной стандартной конфигурации, 1С постоянно посылает в справочные материалы на закрытой части сайта ИТС )

        • Василий Ханевич


          (текст комментария доступен только участникам Мастер-группы)

          • Василий Богданов

            Добрый день! Тест драйв получен, активирован, осуществлен вход. Скачивание обработки по-прежнему невозможно. Найти в Интернете обработку именно с флагом «Показать план запроса» не удалось

  49. viaton

    Здравствуйте!
    В pdf файлах с практическими заданиями 16, 17, 18 текст заданий неправильный (взят из других заданий).

    • Евгений Гилев (Мастер-тренер)

      Добрый день!

      Только что проверил — тексты заданий в архиве правильные.

      Уточните, почему Вы считаете, что текст заданий не корректный?

  50. dumal

    Здравствуйте! (В самом прямом смысле этого слова, мне очень нравятся Ваши курсы)
    Еще вчера на этой самой странице было сказано, что некоторые практические задания 2 модуля необходимо выполнять полностью самостоятельно и выкладывать здесь их решения. Я их выполнил, но страница полностью изменилась и теперь те задания тоже разобраны в методичке. о_О

    • Евгений Гилев (Мастер-тренер)

      Добрый день!

      Да, мы немного поменяли концепцию прохождения курса — решили отказаться от обязательных домашних заданий.
      Это связано с тем, что в курсе уже очень большое количество участников — многие участвуют впервые.
      И мы столкнулись с тем, что люди не понимают, что такое обязательные задания и зачем вообще по ним нужно отчитываться.

      Поэтому мы все максимально упростили — все задания и решения доступны сразу, отчетов не требуется, график обучения свободный :)

Комментарии закрыты