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

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

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

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

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

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

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

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

  1. Frostier1958

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

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


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

      • Frostier1958

        Спасибо, скачал, но она требует версию 8.3.11, не меньше, а у меня 8.3.6. Как заменить?

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


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

          • Frostier1958

            нашел и скачал только 8.3.8. Может быть дадите ссылку на 8.3.11?? Что такое пользовательский сайт?

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


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

              • Frostier1958

                попытался посмотреть — неудачно. нужна регистрация. попробовал зарегистрироваться — пишет, чтобы я дал другой адрес почты, которого нет в этой системе. Василий, не могли бы Вы дать мне ссылку или на 8.3.11. или на конфигурацию «управляемое приложение» для 8.3.6. Прошу учесть, что я не клиент 1с и у меня нет доступа к итс.
                Мне нужны продукты для обучения. Я уже запутался и у меня все время уходит на поиски чего-то и попытки сопряжения несопрягаемого, помогите, пожалуйста

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


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

                  • Frostier1958

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

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


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

                  • Frostier1958

                    Скачал демоверсию «упр.приложение» для платформы 8.2. Она такая-же, как в видеоуроках. Надеюсь, что ничьи имущественные права не нарушены

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


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

  2. Frostier1958

    Задание 16 к модулю 2. На моей консоли запросов нет опции «показывать план выполнения запроса». Что надо сделать? Прочитал посты с аналогичным вопросом, но … в общем, нельзя ли подробней?

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


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

      • Frostier1958

        Все сделал. Я неправильно выключал режим совместимости. Не заметил в предлагаемых вариантах кнопки «режим совместимости» строчки «не использовать» и выключал режим использования модальности. Все работает, извините, спасибо

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


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

          • Frostier1958

            Василий, опять!!!! Теперь другая проблема: при включении плана выполнения запроса появляется много цифр и сообщение «класс не зарегистрирован», а подробнее: {ВнешняяОбработка.КонсольЗапросов.МодульОбъекта(1683)}: Ошибка при вызове конструктора (COMОбъект)
            ОбъектСистемы = Новый COMОбъект(«WScript.Shell»);
            по причине:
            -2147221164(0x80040154): Класс не зарегистрирован .

            план, соответственно, не включается, опция «открыть» не активируется.

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


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

              • Frostier1958

                я все время запускаю 1с от имени администратора. А про перерегистрацию файлов с помощью regsvr32 даже отдаленного представления не имею :(

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


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

                  • Frostier1958

                    Попробовал, первый файл перерегистрировал успешно, а со вторым (%windir%\system32\wshom.ocх) хуже — пишет: не удалось загрузить указанный модуль , не найден указанный модуль

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


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

  3. Zhukus

    Добрый день!
    Модуль 2, задание № 14.
    Работаю в консоли, скачанной с сайта 1С (ИТС) в конце декабря 2017 года. Повторяю за преподавателем все действия. Получаю следующий запрос:

     ВЫБРАТЬ
        ПоступлениеТоваров.Товары.(
            Номенклатура КАК Товар,
            СУММА(Сумма) КАК СтоимостьЗакупа
        )
    ИЗ
        Документ.ПоступлениеТоваров КАК ПоступлениеТоваров

    СГРУППИРОВАТЬ ПО
        ПоступлениеТоваров.Товары.(Номенклатура)

    ИМЕЮЩИЕ
        СУММА(ПоступлениеТоваров.Товары.Сумма) > &Сумма

    УПОРЯДОЧИТЬ ПО
        СтоимостьЗакупа УБЫВ

    и результат, представленный на Рис. 1 :-(

    %D0%A0%D0%B8%D1%81.%201.jpg

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


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

      • Zhukus

        Спасибо, все получилось.

        Но тогда другой вопрос по консоли от 27.09.2017: когда я ее только запускаю, и текста запроса ещё нет, чаще всего выскакивает окошко (Рис. 2). Раньше я писал запрос: «ВЫБРАТЬ 1» и попадал в конструктор, но потом стало надоедать. Такое только у меня происходит? И есть ли лекарство?

        %D0%A0%D0%B8%D1%81.%202.jpg

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


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

          • Zhukus

            Спасибо! Под тонким клиентом все работает без замечаний.

  4. Mr.Smoke27

    Добрый день. Вопрос по 18 заданию и полю «ссылка» А каким образом можно делать отбор элементов справочника, например по группам, при переопределении поля представления. Поскольку следующий код:

    ВЫБРАТЬ ПЕРВЫЕ 10
        Номенклатура.Представление КАК Представление,
        Номенклатура.Наименование КАК Наименование
    ИЗ
        Справочник.Номенклатура КАК Номенклатура
    ГДЕ
        Номенклатура.Ссылка В Иерархии (&Ссылка)

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

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


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

  5. Jekson26

    Модуль 2. Задание 15.
    Добрый день. В решении д/з №15 не рассмотрена первая часть задачи — Пользователь устанавливает два параметра запроса – Дата начала и Дата
    окончания. Необходимо запросом получить список документов «Поступление
    товаров», попадающих в этот интервал.
    Не справился с наложением такого условия. Можете помочь с решением?

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


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

  6. Наталья Яковлева

    Модуль 2. Задание 16.
    1. Запрос сделала (к самому запросу вопросов нет), не могу сформировать план запроса.
    Дело в том, что в Консоли запросов 8.2 нет плана запроса, а при запуске консоли запроса 8.3 на учебной базе ошибки СтрНайти.
    Что делать?
    2. Не понять как запускать ufm для практических занятий. Где они должны находиться, чтобы определялся ключ активации для запроса?

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


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

      • Наталья Яковлева

        Спасибо, Василий.
        Все получилось.
        со 2-ым вопросом разобралась тоже.

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


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

  7. Mr.Smoke27

    Задание 9.
    Почему идет запрос именно к табличной части, а не к документу ? Результат получается один и тот же, но как стоит в подобных случаях лучше поступать ? И в том и в другом случае будет неявное присоединение второй таблицы, но какой способ, так сказать легче и будет работать быстрее? И как будет сказывать в обоих случаях размер табличной части документа (например 10-15т. строк) ?

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


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

  8. Mr.Smoke27

    Автоупорядочивание:
    Методичка стр. 49-50 про автоупорядочивание
    Почему сначала идет упорядочивание групп отдельно, потом только элементов, если при автоупорядочивании должна идти сортировка по основному представлению реквизита справочника, в данном случае «Наименование», что за странное поведение системы?

    Выбрать
       Товары.Ссылка Как Товар
    Из
       Справочник.Товары Как Товары
    Упорядочить По
        Ссылка
    Автоупорядочивание
    • Василий Ханевич


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

  9. Авиант

    Добрый день. Каким образом можно получить последний по дате документ?

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


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

  10. Anatoly.Pugin

    Добрый день. насколько сильно замедляет работу использование в СКД внешних процедур и функций глобального модуля. есть ли какие либо ограничения и особенности данного способа ?

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


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

  11. SergeNsk

    в задачах необходимо посмотреть план запроса, мне это сделать не удается, при включении галочки: включить план выполнения запроса, статус зависает на: включение анализа плана выполнения запроса, посмотреть план запроса не удается. ОС: Win7 х64, платформа 1с: 8.3.9.2170, конфигурация с сайта, консоль запроса качал по вашей сылки.

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


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

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


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

  12. Максим Рыболовлев

    Здравствуйте, Василий! Допустим, требуется выбрать товары, находящиеся в определенной группе. Подскажите пожалуйста, чем можно заменить в данной ситуации конструкции НайтиПоНаименованию() / НайтиПоКоду()? Ведь их использование не совсем корректно.

        Запрос = Новый Запрос;
        Запрос.Текст =
            "ВЫБРАТЬ
            |   Товары.Ссылка
            |ИЗ
            |   Справочник.Товары КАК Товары
            |ГДЕ
            |   Товары.Ссылка В (&ГруппаПродукты)";
           
        ГруппаПродукты = Справочники.Товары.НайтиПоНаименованию("Продукты");
        Запрос.УстановитьПараметр("ГруппаПродукты", ГруппаПродукты);
    • Василий Ханевич


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

  13. Максим Рыболовлев

    Здравствуйте, Василий! Есть ли возможность посмотреть план выполнения запроса в консоли запросов «портативных инструментов разработчика»?(об. приложение)

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


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

  14. Максим Рыболовлев

    Здравствуйте, Василий! Имеется запрос который получает информацию из документов. Хочется получить те же данные, но из регистров, при этом, чтобы не сильно сказалось на производительности. Подскажите пожалуйста, какие регистры можно использовать? (Конфигурация КА 1.1)

    ВЫБРАТЬ
        СчетФактураВыданный.Номер КАК НомерСчетаФактуры,
        СчетФактураВыданный.Дата КАК ДатаСчетаФактуры,
        РеализацияТоваровУслугТовары.Ссылка.Контрагент КАК Покупатель,
        РеализацияТоваровУслугТовары.Номенклатура КАК Номенклатура,
        РеализацияТоваровУслугТовары.ЕдиницаИзмерения,
        РеализацияТоваровУслугТовары.Количество КАК Количество,
        РеализацияТоваровУслугТовары.Сумма КАК СуммаБезНДС,
        РеализацияТоваровУслугТовары.СуммаНДС КАК СуммаНДС,
        ВЫБОР
            КОГДА НЕ РеализацияТоваровУслугТовары.Ссылка.СуммаВключаетНДС
                ТОГДА РеализацияТоваровУслугТовары.Сумма + РеализацияТоваровУслугТовары.СуммаНДС
            ИНАЧЕ РеализацияТоваровУслугТовары.Сумма
        КОНЕЦ КАК СуммаСНДС,
        РеализацияТоваровУслугТовары.Ссылка.Контрагент.ИНН КАК ИННПокупателя,
        РеализацияТоваровУслугТовары.Цена
    ИЗ
        Документ.СчетФактураВыданный КАК СчетФактураВыданный
            ПОЛНОЕ СОЕДИНЕНИЕ Документ.РеализацияТоваровУслуг.Товары КАК РеализацияТоваровУслугТовары
            ПО СчетФактураВыданный.ДокументОснование = РеализацияТоваровУслугТовары.Ссылка
    ГДЕ
        СчетФактураВыданный.Проведен = ИСТИНА
        И РеализацияТоваровУслугТовары.Ссылка.Проведен = ИСТИНА
        И РеализацияТоваровУслугТовары.Ссылка.Дата МЕЖДУ &ДатаНачала И &ДатаОкончания
        И РеализацияТоваровУслугТовары.Склад = &Склад
    • Василий Ханевич


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

      • Максим Рыболовлев

        Получился вот такой запрос, выполняется чуть медленнее первого. Почти все нужные измерения оных регистров имеют составной тип данных, правильно ли я использовал выражение ВЫРАЗИТЬ()?

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

        ////////////////////////////////////////////////////////////////////////////////
        ВЫБРАТЬ
            ЖурналУчетаСчетовФактур.НомерСчетаФактуры,
            ЖурналУчетаСчетовФактур.ДатаСчетаФактуры,
            ВЫРАЗИТЬ(ЖурналУчетаСчетовФактур.Контрагент КАК Справочник.Контрагенты) КАК Покупатель,
            ВЫРАЗИТЬ(ЖурналУчетаСчетовФактур.Контрагент КАК Справочник.Контрагенты).ИНН КАК ИННПокупателя,
            ВЫРАЗИТЬ(ЖурналУчетаСчетовФактур.СчетФактура КАК Документ.СчетФактураВыданный) КАК СчетФактура,
            ВТ_Товары.Номенклатура,
            ВТ_Товары.ЕдиницаИзмерения,
            ВТ_Товары.Количество,
            ВТ_Товары.Цена,
            ВТ_Товары.Сумма,
            ВТ_Товары.НДС,
            ВТ_Товары.СуммаБезНДС
        ИЗ
            РегистрСведений.ЖурналУчетаСчетовФактур КАК ЖурналУчетаСчетовФактур
                ВНУТРЕННЕЕ СОЕДИНЕНИЕ ВТ_Товары КАК ВТ_Товары
                ПО (ВЫРАЗИТЬ(ЖурналУчетаСчетовФактур.СчетФактура КАК Документ.СчетФактураВыданный).ДокументОснование = ВТ_Товары.ДокументПродажи)
        • Василий Ханевич


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

  15. CSiER

    Здравствуйте. По поводу альтернативного синтаксиса (из урока Query-2-Syntax-16) — спасибо, не знал. В справке этот синтаксис скорее всего планировали описать (добавили «Альтернативы выбора» после ключевого слова «ВЫБОР»), но в итоге получилось не очень понятно.

    switch.png

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


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

  16. Максим Рыболовлев

    Здравствуйте, Василий! Подскажите пожалуйста, как правильно нужно составить запрос к дополнительным реквизитам справочника. Допустим, у справочника «Контрагенты», есть два доп. реквизита: Руководитель и Главный бухгалтер (имеют строковый тип). Необходимо получить их значение одним запросом.

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


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

      • Максим Рыболовлев

        Спасибо большое! Теперь ясно.

  17. Hayce

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

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


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

  18. vkul2010

    Здравствуйте.
    Не понял действие ключевого слова РАЗРЕШЕННЫЕ в моей ситуации.
    В материалах дано:
    «Ключевое слово РАЗРЕШЕННЫЕ означает, что запрос выберет только те зависи, на которые у текущего пользователя есть права.
    Если данный критерий не указать, то запрос отработает с ошибкой, выбрав записи, на которые у пользователя нет прав.»
    Для пользователя «Продавец» я снял разрешение на чтение реквизита «Регион» у справочника «Контрагенты».
    Я полагал, что в результат запроса для данного пользователя это поле просто не должно выводиться.
    Однако и с ключевым словом РАЗРЕШЕННЫЕ и без него получаю такой результат (рис.). Что я делаю не так?

    %D0%BF%D1%80%D0%B0%D0%B2%D0%B0.jpg

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


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

  19. flex81

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

    Подскажите, в домашнем задании 2 и т.д. какие базы вы используете?
    Это демо-базы управления торговли?

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


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

      • flex81

        Скачал, но она пустая. В дз 2 по блоку 2, надо найти цену ботинок… А документы в модельной базе не заведены). Вот я и спрашиваю, какая база используется? Что анализировать? Какие данные?

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


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

          • flex81

            Перекачал, залил — заработало. Спасибо.

  20. Анна

    Добрый день.
    Консоль 8.3 после настройки конфигурации запускается, но при попытки установить флаг «Показывать план выполнения запроса» выдает ошибку.

    %D0%9F%D0%BE%D0%BA%D0%B0%D0%B7%D1%8B%D0%B2%D0%B0%D1%82%D1%8C%D0%9F%D0%BB%D0%B0%D0%BD%D0%92%D1%8B%D0%BF%D0%BE%D0%BB%D0%BD%D0%B5%D0%BD%D0%B8%D1%8F%D0%97%D0%B0%D0%BF%D1%80%D0%BE%D1%81%D0%B0.PNG

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


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

  21. flex81

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

    Скачал базу для выполнения ДЗ тут: http://курсы-по-1с.рф/1c-v8/development-optimize-queries/startpage/module02/
    Развернул.
    Попытался запустить обработку Консоль запросов 1С скачанную с портала 1С ИТС
    Получил ошибку: (во вложении)

    Нашел публикацию по данным ошибкам тут: http://infostart.ru/public/366865/
    Версия платформы: 1С:Предприятие 8.3 (8.3.9.2033) => ошибка не должна возникать
    При запуске в другой базе консоли запросов — ошибка не возникает.
    Как мне получить работающую базу для выполнения домашних заданий?

    %D0%A1%D0%BA%D1%80%D0%B8%D0%BD.png

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


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

      • flex81

        Спасибо. Заработало.
        Просьба:
        1. можно снять пару более подробных уроков по работе с временными таблицами. Практика применения, отладка без доп. обработок. Может показать функционал «Инструменты разработчика» от Tormozit?
        2. хотелось бы пару уроков по получению из РегистрСведений данных на дату из другого запроса?

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


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

  22. evsob

    В видеоуроке «Объектная модель запроса» рассказывается про схему запроса и приводится уже готовый код. В курсе где-нибудь освещается подробно работа со схемой запроса?

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


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

  23. profitsol

    Добрый день.
    В уроке по разбору объектной модели запроса, СхемаЗапроса (видеоматериал «_1cv8-Query-Modle2» фрагмент №23) присутствует строка в коде (я выделил ее на скрине). http://prntscr.com/dk2e2n

    Я не могу понять ее назначения. Будучи инициализированной, переменная «ДоступнаяТаблицаРасходТовара» далее нигде не используется.

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


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

  24. psbest

    Здравствуйте. Подскажите, как сделать запрос. Имеется регистр сведений хранящий тарифы транспортных компаний,для каждой трансп.комп один тариф может быть как по массе так и по объему. Как мне выбрать одно значение, содержащее максимальное значение тарифа по каждой ТК? Значение тарифа это расчитываемое поле СуммаТарифа. По нему нужно как-то вычислить максимум и для каждой ТК оставить только одну строку.
    Вот запрос, получающий все тарифы по трансп.комп, удовлетворяющий заданным условиям и вычисляющий сумму тарифа исходя из веса или объема

    Запрос.Текст=»ВЫБРАТЬ
    ТарифыТК.ТранспортнаяКомпания,
    ТарифыТК.ВариантТарифа,
    ТарифыТК.КлиентТарифа,
    ТарифыТК.ГородОтправления,
    ТарифыТК.ГородДоставки,
    ТарифыТК.ВидТарифа,
    ТарифыТК.ДиапазонТарифаОт,
    ТарифыТК.ДиапазонТарифаДо,
    ТарифыТК.ЕдиницаИзмерения,
    ТарифыТК.ВидДоставки,
    ТарифыТК.ЦеныСНДС,
    ТарифыТК.Минималка,
    ТарифыТК.ВремяДоставки,
    ТарифыТК.ДниОтправкиПоНаправлению,
    ТарифыТК.ПоправочныйКоэффициентУкладки,
    ТарифыТК.ПредельноеВремяСдачиГруза,
    ВЫБОР
    КОГДА ТарифыТК.ЗначениеТарифа * &НекийКоэффицент > ТарифыТК.Минималка
    ТОГДА ТарифыТК.ЗначениеТарифа * &НекийКоэффицент
    ИНАЧЕ ТарифыТК.Минималка
    КОНЕЦ КАК СуммаТарифа
    ПОМЕСТИТЬ ВТ_ТТ
    ИЗ
    РегистрСведений.ТарифыТК КАК ТарифыТК
    ГДЕ
    ((ТарифыТК.ЕдиницаИзмерения = «1»
    ИЛИ ТарифыТК.ЕдиницаИзмерения = «5»)
    И (ТарифыТК.ДиапазонТарифаОт <= &МестоМасса
    И &МестоМасса <= ТарифыТК.ДиапазонТарифаДо)
    ИЛИ (ТарифыТК.ЕдиницаИзмерения = "2"
    ИЛИ ТарифыТК.ЕдиницаИзмерения = "6")
    И (ТарифыТК.ДиапазонТарифаОт <= &МестоОбъем
    И &МестоОбъем <= ТарифыТК.ДиапазонТарифаДо)
    ИЛИ ТарифыТК.ЕдиницаИзмерения = "4")
    И ТарифыТК.ГородОтправления = &ГородОтправления
    И ТарифыТК.ГородДоставки = &ГородДоставки
    И ТарифыТК.ВидТарифа = &ВидТарифа
    И ТарифыТК.ВариантТарифа = &ВариантТарифа1

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


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

      • psbest

        Да, я сначала думал сделать подобным образом, но мне так все свернется в одну ТК и максимальное значение тарифа, а мне нужно для каждой ТК сохранить целиком только одну строку со всеми полями, отобранными в первом запросе (ВариантТарифа,КлиентТарифа,ГородОтправления,ВремяДоставки и тд) и максимальным значеним тарифа

  25. evsob

    Объясните как работают Процедуры ОбработкаПолученияПолейПредставления и ОбработкаПолученияПредставления и в чем их различие. Из Ситаксис-Помошника не понял, зачем нужна первая из них.

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


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

      • evsob

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

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


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

          • evsob

            Благодарю за исчерпывающий ответ. В базе к книге «1С:Предприятие 8.3 Практическое пособие разработчика» нашел в справочнике Номенклатура пример использования этих процедур. Лучше один раз увидеть, чем сто раз услышать. Извиняюсь, это касается таких как я «особо одаренных».

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


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

  26. b0nd

    Добрый день.
    Модуль 2, Табличные части в запросах. Объясните пожалуйста почему при выборе ТЧ из документа таким образом:

    ВЫБРАТЬ
        РасходТовара.Ссылка,
        РасходТовара.Товары.(
        Товар,
        Количество,
        Сумма
        )
    ИЗ
        Документ.РасходТовара КАК РасходТовара

    запрос отрабатывает, но при попытке написать подобную конструкцию при обращении в запросе непосредственно к ТЧ Товары:

    ВЫБРАТЬ
        РасходТовараТовары.Ссылка,
        РасходТовараТовары.(
            Товар,
            Количество,
            Сумма
            )
    ИЗ
        Документ.РасходТовара.Товары КАК РасходТовараТовары

    запрос выдает ошибку:

    Поле не найдено «РасходТовараТовары»
    РасходТовараТовары.(

    Получить в результате запроса ТЧ в виде Таблицы значений можно только при обращении в запросе целиком к документу (основной таблице)?

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


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

  27. Vladislav222

    Здравствуйте, объясните разницу в запросе а именно смысл оператора ВЫРАЗИТЬ(), к заданию №17. В результате выполнения запроса в обоих случаях мы все равно получаем выборку документов ПоступленияТоваров согласно условия. Тогда не понятен смысл использования оператора ВЫРАЗИТЬ() во втором варианте запроса.
    Вариант 1.

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

    Вариант 2.

    ВЫБРАТЬ
        ТоварыНаСкладах.Регистратор,
        ВЫРАЗИТЬ(ТоварыНаСкладах.Регистратор КАК Документ.ПоступлениеТоваров).Дата КАК Дата
    ИЗ
        РегистрНакопления.ТоварыНаСкладах КАК ТоварыНаСкладах
    ГДЕ
        ТоварыНаСкладах.Регистратор ССЫЛКА Документ.ПоступлениеТоваров>
    • Василий Ханевич


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

  28. svetim

    Добрый день!
    Модуль 2, видеоурок 23, Отображение плана запроса в консоли запросов.
    Судя по всему ошибка возникает потому что у меня нет прав администратора, есть ли возможность прописать другой путь для сохранения фала?

    %D0%A1%D0%BD%D0%B8%D0%BC%D0%BE%D0%BA.PNG

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


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

  29. Vladislav222

    Здравствуйте, почему при выполнении практического задания №7, где нужно получить список товаров содержащих символ «%», в результате запрос выдает всю номенклатуру игнорируя условие? Я попытался условие поместить сразу в выходное поле.

    ВЫБРАТЬ
        Номенклатура.Наименование ПОДОБНО "%\%%" СПЕЦСИМВОЛ "" КАК Поле1
    ИЗ
        Справочник.Номенклатура КАК Номенклатура
    • Василий Ханевич


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

  30. Vladislav222

    Здравствуйте, при выполнении практического задания №3, в котором нужно определить количество записей в любом регистре накопления, возник вопрос. А можно в запросе определить параметр (&Регистр) для выбора пользователем произвольного регистра накопления? чтоб не прописывать таблицу в тексте запроса.

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


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

  31. robotq

    Здравствуйте.
    У меня вопрос по 2-ому модулю, главе где описывается ключевое слово «Разрешенные».
    В методичке написано «Если ограничение доступа установлено на Прочие поля, данные будут получены, если
    ограничение выполняется для всех полей объекта, участвующих в запросе.»
    Если мы накладываем ограничение «РасходТовара Где РасходТовара.Проведен» — тут все понятно, ограничение на чтение всех реквизитов у не проведенных документов «РасходТовара» кроме реквизитов, которым ограничения заданы явно.
    А если например в ограничении для «Прочие поля» будет установлен например список контрагентов, а не на признак документа «Проведен» — как такое ограничение может выполняться для всех полей нашего документа «РасходТовара»?

    %D0%B2%D0%BE%D0%BF%D1%80%D0%BE%D1%81%20%D0%BF%D0%BE%20%D1%80%D0%BB%D1%81.png

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


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

  32. robotq

    Здравствуйте. Вопрос по 8 заданию из второго модуля. Мой запрос с шаблоном выглядит следующим образом

    ВЫБРАТЬ
    Контрагенты.Наименование КАК Наименование,
    Контрагенты.Телефон КАК Телефон
    ИЗ
    Справочник.Контрагенты КАК Контрагенты
    ГДЕ
    НЕ Контрагенты.Телефон ПОДОБНО «+7(» + «[0-9][0-9][0-9]» + «)» + «[0-9][0-9][0-9]» + «-» + «[0-9][0-9]» + «-» + «[0-9][0-9]»

    То есть заместо «любой символ» я указываю «число от 0 до 9». Это решение отличается от предложенного преподавателем. Оно корректно?

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


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

  33. b0nd

    Добрый день.
    Использую консоль запросов для 8.3 УП. При попытке войти в конструктор запроса выдает такую ошибку:

    {ВнешняяОбработка.ИнструментыРазработчикаКонсольЗапросов.Форма.Форма.Форма(487)}: Ошибка при вызове конструктора (КонструкторЗапроса)
        КонструкторЗапроса = Новый КонструкторЗапроса(ТекстЗапросаВФорме);
    по причине:
    {(1, 1)}: Ожидается выражение "ВЫБРАТЬ"

    При этом консоль запросов для 8.2 работает прекрасно…

    Также при попытке установить флаг «Показывать план выполнения запроса» выходит ошибка:

    {ВнешняяОбработка.ИнструментыРазработчикаКонсольЗапросов.МодульОбъекта(1542)}: Ошибка при вызове метода контекста (Существует)
        Если ФайлУказатель.Существует() Тогда
    по причине:
    Использование синхронных методов на клиенте запрещено!

    Платформа 8.3.8.1933

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


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

      • b0nd

        По поводу первого вопроса — ошибка возникает только тогда, когда пытаюсь войти в конструктор запроса с пустого поля, то есть, когда ни одного символа еще не внесено в поле текста запроса. Если в поле текста запроса есть, например ВЫБРАТЬ *, тогда в конструктор заходит без проблем. То есть получается чтобы зайти в конструктор и создать некий сложный отчет, в консоль сперва необходимо записать хотя бы «ВЫБРАТЬ»…

        По поводу второго — ясно, спасибо.

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


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

      • robotq

        Аналогичная проблема — под толстым клиентом конструктор запроса в консоле отказывается работать, если текст запроса пустой. Что примечательно под тонким клиентом эта же консоль запросов для платформы 8.3 работает без проблем. Но при доработке функционала консоли — согласно 11 главе видеоуроков во 2-ом модуле, требуется использовать функцию «ВыбратьСтроку()» которая работает только под толстым клиентом.

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


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

  34. Любовь

    Добрый день!
    Вопрос по 18 ДЗ. Для решения использовала только процедуру ОбработкаПолученияПредставления:

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

    Код запроса:

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

    Итоговый SQL запрос :
    SELECT
    T1.Ссылка,
    T1.Наименование,
    T1.Наименование
    FROM Справочник.Номенклатура T

    т.е. в отличие от решения преподавателя — поле Артикул в SQL запросе отсутствует(я его и не указывала в процедуре ОбработкаПолученияПолейПредставления), выбирается поле Наименование, которое указано в свойствах объекта Справочник.Номенклатура как основное представление, при этом результат запроса (см.вложение)- аналогичен решению преподавателя — представление выводится как «Артикул — Наименование» .
    Чем объясняется такое поведение платформы?
    Спасибо!

    18%20%D0%B2%D0%BE%D0%BF%D1%80%D0%BE%D1%81.png

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


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

  35. gfi

    Здравствуйте, Василий!
    Возникла ошибка при подключении консоли запросов для управляемого приложения (скрин приложен).
    Версия платформы 1С: 8.3.6.2014
    В чем может быть проблема?
    Заранее спасибо.

    Скрин ошибки

    %D0%9E%D1%88%D0%B8%D0%B1%D0%BA%D0%B0.jpg

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


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

    • Severus54

      Доброго дня!
      gfi, и если еще кто по этому вопросу зайдет: я бы лучше использовал консоль запросов для 8.2 и запускал отладку в толстом клиенте, так как текущая консоль с сайта ИТС для 8.3 имеет несколько иной интерфейс, и новичкам будет тяжелее сориентироваться.
      Если все-таки использовать консоль 8.3, то отключить следует режим совместимости полностью, так как «СтрНайти» и прочие функции, на которые ругается платформа, появились только в платформе 8.3.8 и не работают в режимах совместимости.
      Василий, еще лучше вариант — предоставить обучающимся ту самую версию консоли запросов, которую использовали Вы:)
      Консоль 8.2 только не показывает план выполнения запроса…

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


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

  36. Raeva

    Здравствуйте!
    По пункту 3 — всё так и делала, но получается как-то так: см.рисунок

    %D0%9E%D1%82%D1%87%D1%91%D1%82%D1%8B%D0%9F%D0%BE%D0%97%D0%B0%D0%B4%D0%B0%D0%BD%D0%B8%D1%8F%D0%BC.png

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


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

  37. Raeva

    1. Как вывести формат даты без времени в задаче №15 в консоле запросов? Почему, например, нельзя использовать функцию ДАТАВРЕМЯ(,,)?
    2. Почему в задаче № 16 не упорядочиваются элементы поля «Номенклатура», если запрос выглядит следующим образом:

    "ВЫБРАТЬ РАЗЛИЧНЫЕ
    |   РеализацияТоваровТовары.Номенклатура КАК Номенклатура,
    |   РеализацияТоваровТовары.Номенклатура.Артикул КАК Артикул
    |ИЗ
    |   Документ.РеализацияТоваров.Товары КАК РеализацияТоваровТовары
    |ГДЕ
    |   РеализацияТоваровТовары.Номенклатура.ВидНоменклатуры = ЗНАЧЕНИЕ(Перечисление.ВидыНоменклатуры.Товар)
    |
    |УПОРЯДОЧИТЬ ПО
    |   Номенклатура"

    ?
    3. Почему, выполняя ваши задания не в консоли, а в конфигураторе в виде отчётов, я не нахожу их в пользовательском режиме, хотя видимость и полные права в Командном интерфейсе выставлены (галки есть), и в подсистеме отчёты активны?

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


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

  38. Elvira82

    Добрый день!
    Использую Оператор ПОДОБНО. Нужно установить условие на Перечисление «СпособыРасчетаОплатыТруда», что оно содердит слово «средн». Значение перечисления находится по столбцу ссылка. Накладываю условие по сравнению Подобно и на саму ссылку, и на ее Представление, и на ПредставлениеСсылки и все время выходит одна и та же ошибка: неверно заполненное условие. Подскажите, пожалуйста, где я ошибаюсь? (скрин во вложении)

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


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

  39. S2015

    Пытаясь выполнить практические задания 16 — 18 столкнулся с ошибкой, которая возникала при установке выключателя «Показать план выполнения запроса» в консоли запроса (скачивал с сайта ИТС).
    Это связано с несоответствием версий (у меня платформа 8.3.8.1502) или причина в том, что запускалась файловая информационная база?

    %D0%9E%D1%88%D0%B8%D0%B1%D0%BA%D0%B0.jpg

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


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

  40. Куршев Алексей

    Здравствуйте.
    При закрытии консоли запросов с ИТС выдается такая ошибка:

    {Форма.Форма.Форма(45)}: Ошибка при вызове метода контекста (Вопрос)
    Ответ = Вопрос(Текст, Режим, 0);
    по причине:
    Использование модальных окон в данном режиме запрещено!

    Платформа 8.3.6.2421, толстый клиент. Выполнению заданий она не мешает, но неудобство в том, что приходится процесс вырубать через диспетчер задач. Есть решение? Использовать другую консоль?

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


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

  41. Grinat

    Добрый день!

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

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


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

  42. naticun

    Здравствуйте! При выполнении практикума №18 после написания процедур в модуле менеджера справочника номенклатура

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

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

    при открытии справочника Номенклатура выходит ошибка:

    {Справочник.Номенклатура.МодульМенеджера(10)}: Преобразование значения к типу Число не может быть выполнено
    Представление = Данные.Артикул + " - " + Данные.Наименование;

    Что не так?

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


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

  43. Анна

    Доброе утро!
    В запросе что означает число 15 — ЧИСЛО(15, 2)?
    ВЫБРАТЬ ПродажиОбороты.Покупатель,
    ПродажиОбороты.Товар,
    ПродажиОбороты.КоличествоОборот КАК Количество,
    ПродажиОбороты.СуммаОборот КАК Сумма,
    ВЫБОР КОГДА
    ПродажиОбороты.КоличествоОборот = 0
    ТОГДА 0
    ИНАЧЕ ВЫРАЗИТЬ(ПродажиОбороты.СуммаОборот / ПродажиОбороты.КоличествоОборот КАК ЧИСЛО(15, 2))
    КОНЕЦ КАК Цена
    ИЗ РегистрНакопления.Продажи.Обороты КАК ПродажиОбороты

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


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

  44. Анна

    Добрый день!
    Подскажите, по ошибке повторяю из Query-2-Syntax-15, но конф не много другая не как в примере.

    %D0%91%D0%B5%D0%B7%20%D0%B8%D0%BC%D0%B5%D0%BD%D0%B8-1.jpg

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


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

  45. Андрей

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

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


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

  46. Lucia_

    Добрый день!
    1. Я правильно понимаю, что нет аналога sql-ного LEN для строки? И как тогда выкручиваться, если надо?
    2. Можно ли в маске для строки в условии запроса указать такой факт, как некоторое количество символов, но обязательно нулей, например? То есть, есть в базе такие артикулы: М001112, М01112, М081112. Я знаю для поиска только 1112. Мне нужно соответственно найти все артикулы, которые начнутся на М, закончатся на 1112, а между только нули, но сколько их, не известно, ограничивается только длиной этого поля, но длину я получить не могу запросом. Приходит в голову только, программно собирать длинную колбасу условий через ИЛИ, с всякими возможными вариантами количества нулей. Но это как-то не комильфо…

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


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

  47. selena0363

    Добрый день!
    В видео-уроке 10 приводится пример изменения обработки «Консоль запросов» для визуального отображения в панел и результата запроса значений типа «Таблица значений». Ситуация: если я открываю файл с обработкой в конфигураторе, изменяю, даже просто ставлю точку останова, то в потом в режиме предприятия этот файл отрабатывает как и прежде, без изменений. На точки останова (как показано в видео-уроке) тоже не выхожу. Но если я добавляю эту обработку через конфигуратор в обработки, то в режиме предприятия все работает правильно. Т.е. одна и та же обработка как внешняя не позволяет по двойному клику проваливаться в «Таблицу значений», как объект конфигурации — позволяет. Что не так?

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


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

  48. Vladlen59

    Еще у меня вопрос по заданию 5. Я сделал не по регистру «Продажи», а по регистру «Взаиморасчеты». Насколько это верно?
    ВЫБРАТЬ ПЕРВЫЕ 3
    ВзаиморасчетыСКонтрагентамиОбороты.Контрагент,
    ВзаиморасчетыСКонтрагентамиОбороты.СуммаРасход КАК Сумма
    ИЗ
    РегистрНакопления.ВзаиморасчетыСКонтрагентами.Обороты КАК ВзаиморасчетыСКонтрагентамиОбороты

    УПОРЯДОЧИТЬ ПО
    Сумма УБЫВ

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


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

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


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

  49. Vladlen59

    Здравствуйте, дошел до представлений. Добавил вот такой код

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

    Процедура ОбработкаПолученияПредставления(Данные, Представление, СтандартнаяОбработка)
    СтандартнаяОбработка=ложь;
    представление=данные.наименование+» («+данные.код+» )»;
    КонецПроцедуры

    Всё работает. Вопрос в следущем, насколько ухудшается производительность? Получается, что запрос не весь выполняется на sql сервере, а за каждой строчкой обращается к данным процедурам.

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


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

  50. arevx@mail.ru

    Добрый вечер. У меня сразу 3 вопроса:
    1) по заданию №15, а именно выбор периода. Возможно ли указать сразу в параметрах запроса конкретный период, а потом при необходимости его менять «руками»?
    2) в методичке приведен пример «быстрых клавиш», а именно & = Alt+38. Где можно найти такие же сочетания на такие символы как > и <?
    3)Так же хочется больше узнать про "фишки" 1с8, которые ускоряют ввод кода и упрощают жизнь, где про них можно найти информацию?

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


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

      • arevx@mail.ru

        Благодарю за ответы.
        У меня с датой возник еще один вопрос, во время экспериментов с функциями для работы с датами система на
        РАЗНОСТЬДАТ(&ДатаКон, &ДатаНач, неделя) КАК разностьДат выдала ошибку:{ВнешняяОбработка.ИнструментыРазработчикаКонсольЗапросов.МодульОбъекта(555)}: Ошибка при вызове метода контекста (НайтиПараметры)
        ПарЗап = Запрос.НайтиПараметры();
        по причине:
        {(36, 2)}: Неверные параметры «РАЗНОСТЬДАТ»
        из-за чего данная ошибка? Другие функции спокойно воспринимали тип «неделя», а ф-ция РазностьДат выдала ошибку

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


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

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