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

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

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

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

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

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

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

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

  1. ForgetMeNot

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

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


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

  2. ForgetMeNot

    Добрый день!
    Вопрос по заданию 3: «При помощи запроса необходимо определить количество записей в любом регистре
    накопления.»
    Вы в решении предлагаете *. Но * это все поля, а можно обойтись и одним полем, например ресурсом.
    Будет ли запрос с * более тяжелым, чем с одним полем?

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


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

      • ForgetMeNot

        Вы пишите, что план выполнения запроса будет идентичный. А что понимается под планом выполнения запроса? Последовательность действий? Количество секций Fields … Statistics?

        Вот что выдает мне консоль запросов:
        1) При выборе одного поля:
        Fields:( COUNT(T1._Fld91))_ACCUMRG87 (T1) FULL SCAN GROUPING
        Statistics: RecordsScanned = 26, ParseTime = 0, ExecuteTime = 0, BuffersMemory = 28672, ResultRecords = 1, RecordSize = 16
        2) При выборе *:
        Fields:(COUNT(*))_ACCUMRG87 (T1) FULL SCAN GROUPING
        Statistics: RecordsScanned = 26, ParseTime = 0, ExecuteTime = 0, BuffersMemory = 28672, ResultRecords = 1, RecordSize = 16

        На каком основании я могу сделать вывод,что планы идентичны?
        Я никогда раньше не работала с планами выполнения запроса, поэтому мне непонятно.
        По планам я просмотрела урок Query-2-Syntax-23, может быть в курсе еще где-то объясняется про планы, а я не заметила.

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


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

  3. Панфилов Александр

    «А при использовании, например, MS SQL Server существует ограничение на количество
    используемых таблиц в одном запросе – не более 256.»

    Применимо к ранним версиям СУБД (например, 2005 года). В более поздних версиях (например, 2008 года) запрос проходит и с бОльшим количеством таблиц. В реальной базе УПП поле типа «ЛюбаяСсылка» разворачивается примерно в 1300 соединений. Проходит…

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


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

  4. Панфилов Александр

    Результат выполнения запроса из задания №13 не зависит от наличия/отсутствия слова «РАЗЛИЧНЫЕ» ввиду малого количества записей в тренировочной базе.

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


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

  5. Панфилов Александр

    В решении к заданию №15 преподаватель забыл наложить отбор по периоду.

    «Пользователь устанавливает два параметра запроса – Дата начала и Дата
    окончания. Необходимо запросом получить список документов «Поступление
    товаров», попадающих в этот интервал.»

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


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

  6. spv

    Добрый день

    Подскажите, пожалуйста, допускается ли упорядочивание по представлению?
    Столкнулся с тем, что в результате запроса представление отображается, но порядок следования записей — отнюдь не по представлению. В чем может быть причина?

    Запрос:

    |
    |ВЫБРАТЬ
    | втОстаткиИОбороты.Период КАК Период,
    | втОстаткиИОбороты.Номенклатура КАК Номенклатура,
    | втОстаткиИОбороты.Номенклатура.Представление КАК НоменклатураПредставление,
    | втОстаткиИОбороты.КоличествоПриходВУпаковках КАК КоличествоПриходВУпаковках
    |
    |ИЗ
    | втОстаткиИОбороты КАК втОстаткиИОбороты
    |
    |УПОРЯДОЧИТЬ ПО
    | втОстаткиИОбороты.Номенклатура.Представление
    |
    |ИТОГИ
    | СУММА(КоличествоПриходВУпаковках)
    |ПО
    | втОстаткиИОбороты.Номенклатура

    Здесь втОстаткиИОбороты — временная таблица, в ней втОстаткиИОбороты.Номенклатура имеет тип Справочник. Номенклатура.

    Если в запросе меняю
    |ВЫБРАТЬ

    | втОстаткиИОбороты.Номенклатура.Представление КАК НоменклатураПредставление,

    |
    |УПОРЯДОЧИТЬ ПО
    | втОстаткиИОбороты.Номенклатура.Представление

    на
    |ВЫБРАТЬ

    | ПРЕДСТАВЛЕНИЕ(втОстаткиИОбороты.Номенклатура) КАК НоменклатураПредставление,

    |
    |УПОРЯДОЧИТЬ ПО
    | ПРЕДСТАВЛЕНИЕ(втОстаткиИОбороты.Номенклатура)

    выдает ошибку о недопустимости функции ПРЕДСТАВЛЕНИЕ в условии запроса.

    Нужные результат получаю только в таком случае:

    |ВЫБРАТЬ

    | втОстаткиИОбороты.Номенклатура.Представление КАК НоменклатураПредставление,

    |
    |УПОРЯДОЧИТЬ ПО
    | втОстаткиИОбороты.Номенклатура.Наименование

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

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


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

      • spv

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

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

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


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

  7. Igor

    практическое задание 8.
    Я в условии указал Контрагенты.Телефон НЕ ПОДОБНО …
    В Вашем решении — НЕ Контрагенты.Телефон ПОДОБНО …
    Результат одинаковый. Как все же правильнее, есть ли разница?

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


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

  8. Igor

    Здравствуйте,
    Вопрос по упорядочиванию элементов справочника. Можно ли использовать иерархическую сортировку (по наименованию), а внутри иерархии чтобы элементы были отсортированы не по наименованию, а по другому реквизиту, например по артикулу. И небольшой подвопрос тоже по иерархии — чтобы группы сортировались по возрастанию, а элементы внутри группы по убыванию.
    Спасибо.

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


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

      • Igor

        Спасибо за предложенное решение. Вопрос был теоретическим. Получается что «упорядочивание по иерархии» нельзя применить только на иерархию — записи внутри иерархии тоже будут отсортированы по полю, после которого указано ИЕРАРХИЯ?
        п.с. Ваше решение рабочее, но, как и указано, с ограничениями. С ВЫБОР-ом нельзя получить иерархическую сортировку, а без ВЫБОР-а вообще не отсортировать записи как надо… замкнутый круг. Вроде бы примитивная задача… например, список книг — разбит по группам А…..Я, каждая группа на группы Аа-Ак., Ал-Ая. Необходимо получить выборку с иерархией по возрастанию, но внутри отсортированную по Автору.

        Наименование Автор
        А
        Яяяяя Антон
        Ыыыы Боря
        Ттттт Вася
        Б
        Шшшш Антон
        Ккккк Гриша
        Сссс Зяма

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


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

          • Igor

            Большое спасибо!
            И еще небольшой вопрос. Запрос к таблице с выбором поля ссылочного типа. Например спр-к Контрагенты имеет реквизит Город, тип спр-к.Города.
            1. ВЫБРАТЬ
            Контрагенты.Наименование,
            Контрагенты.Город // !!!
            ИЗ
            Справочник.Контрагенты КАК Контрагенты
            2. ВЫБРАТЬ
            Контрагенты.Наименование,
            Контрагенты.Город.Ссылка // !!!
            ИЗ
            Справочник.Контрагенты КАК Контрагенты
            Есть ли какая разница в выполнении этих вариантов запроса (я не про результат), будут ли они по разному отрабатываться на стороне субд?

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


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

  9. Vit

    Здравствуйте Василий,
    подскажите как использовать ВЫРАЗИТЬ, для более оптимального запроса, если в условии есть поле составного типа. ДокументРезерва в запросе составного типа и необходимо наложить условие по дате

    ВЫБРАТЬ
    | Выразить(ТоварыВРезервеНаСкладахОбороты.ДокументРезерва КАК Документ.ЗаказПокупателя)
    |ИЗ
    | РегистрНакопления.ТоварыВРезервеНаСкладах.Обороты КАК ТоварыВРезервеНаСкладахОбороты
    |ГДЕ
    | ТоварыВРезервеНаСкладахОбороты.ДокументРезерва.Дата > &Дата
    | И ТоварыВРезервеНаСкладахОбороты.ДокументРезерва Ссылка Документ.ЗаказПокупателя»

    можно ли использовать ВЫРАЗИТЬ в условии ГДЕ например:

    ВЫБРАТЬ
    | Выразить(ТоварыВРезервеНаСкладахОбороты.ДокументРезерва КАК Документ.ЗаказПокупателя)
    |ИЗ
    | РегистрНакопления.ТоварыВРезервеНаСкладах.Обороты КАК ТоварыВРезервеНаСкладахОбороты
    |ГДЕ
    | Выразить(ТоварыВРезервеНаСкладахОбороты.ДокументРезерва КАК Документ.ЗаказПокупателя).Дата > &Дата
    | И ТоварыВРезервеНаСкладахОбороты.ДокументРезерва Ссылка Документ.ЗаказПокупателя»

    или в параметрах виртуальной таблицы

    |ВЫБРАТЬ
    | ВЫРАЗИТЬ(ТоварыВРезервеНаСкладахОбороты.ДокументРезерва КАК Документ.ЗаказПокупателя) КАК Поле1
    |ИЗ
    | РегистрНакопления.ТоварыВРезервеНаСкладах.Обороты(
    | ,
    | ,
    | ,
    | ВЫРАЗИТЬ(ДокументРезерва КАК Документ.ЗаказПокупателя).Дата > &Дата
    | И ВЫРАЗИТЬ(ДокументРезерва КАК Документ.ЗаказПокупателя) ССЫЛКА Документ.ЗаказПокупателя) КАК ТоварыВРезервеНаСкладахОбороты»;
    или

    |ВЫБРАТЬ
    | ВЫРАЗИТЬ(ТоварыВРезервеНаСкладахОбороты.ДокументРезерва КАК Документ.ЗаказПокупателя) КАК Поле1
    |ИЗ
    | РегистрНакопления.ТоварыВРезервеНаСкладах.Обороты(
    | ,
    | ,
    | ,
    | ДокументРезерва.Дата > &Дата
    | И ДокументРезерва Ссылка Документ.ЗаказПокупателя) КАК ТоварыВРезервеНаСкладахОбороты»;

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

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


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

      • Vit

        На примере с оборотами понятно.А если я использую остатки, получать вначале заказы в отдельную вт будет лишним, ведь туда попадут и заказы без остатков. Главное, что меня интересует это использование функции «ВЫРАЗИТЬ» в параметрах виртуальной таблицы и в условиях отбора. Или функция «ВЫРАЗИТЬ» используется только в выходных полях. Например каким должно быть условие в запросе, что избежать лишних неявных соединений
        ВЫБРАТЬ
        | Выразить(ТоварыВРезервеНаСкладахОстатки.ДокументРезерва КАК Документ.ЗаказПокупателя) КАК Заказ
        |ИЗ
        | РегистрНакопления.ТоварыВРезервеНаСкладах.Остатки(, &УСЛОВИЕ) КАК ТоварыВРезервеНаСкладахОстатки

        1)ДокументРезерва ССЫЛКА Документ.ЗаказПокупателя
        2)ВЫРАЗИТЬ(ДокументРезерва КАК Документ.ЗаказПокупателя) ССЫЛКА Документ.ЗаказПокупателя
        3)ТипЗначения(ДокументРезерва ) = Тип(Документ.ЗаказПокупателя)
        4)ТипЗначения(ВЫРАЗИТЬ(ДокументРезерва КАК Документ.ЗаказПокупателя)) = Тип(Документ.ЗаказПокупателя)

        Какой из вариантов поможет избежать лишних соединений? Следует ли вообще использовать «выразить» в условиях?

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


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

          • Vit

            Спасибо за ответы, вы не ответили на вопрос «Следует ли вообще использовать «ВЫРАЗИТЬ» в УСЛОВИЯХ, если в условии происходит обращение к значению через точку от поля составного типа?». Например если в вашем примере необходимо наложить условие по дате заказа покупателя, то допустимо использовать выразить в параметрах вирт таблицы?

            ВЫБРАТЬ
            | ВЫРАЗИТЬ(ТоварыВРезервеНаСкладахОстатки.ДокументРезерва КАК |Документ.ЗаказПокупателя).Дата КАК ДатаЗаказа
            |ИЗ
            | РегистрНакопления.ТоварыВРезервеНаСкладах.Остатки(, ДокументРезерва ССЫЛКА |Документ.ЗаказПокупателя И ВЫРАЗИТЬ(ДокументРезерва КАК |Документ.ЗаказПокупателя).Дата < &ТекущаяДата) КАК ТоварыВРезервеНаСкладахОстатки

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


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

  10. vlad_u_mir

    Мне кажется решение задания № 8 не совсем верно. В приведенном решении не будут выведены номера содержащие буквы, но подходящие по шаблону,например +7(МК9)123-12-12, а это не совсем то что требуется. Если не ошибаюсь должно быть так:

    Контрагенты.Телефон НЕ ПОДОБНО «+7([0-9][0-9][0-9])[0-9][0-9][0-9]-[0-9][0-9]-[0-9][0-9]»

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


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

  11. spv

    Добрый день
    В уроках упомянуто, что, если в запросе выбирается ссылка, то эффективнее добавлять ещё и поле Представление, чтобы система не выбирала представление ссылки повторно. Хотелось бы уточнить, в каких случаях система будет повторно обращаться к базе за представлением; в частности, если я для отчетов получаю Контрагент.Наименование для значения параметра отчета и Контрагент.Ссылка для расшифровки, надо ли ещё и получать в запросе Контрагент.Представление?

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


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

  12. spv

    Добрый день

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

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


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

  13. Ирина

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

    Извините, задание было 3, а решение из 4. Вопрос снят.

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


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

  14. Podkoshki

    Здравствуйте. Подскажите, пожалуйста:
    1) В практическом задании №5 в примере в качестве таблицы используется регистр ПродажиОбороты, а я в своем решении использовала просто Продажи. Есть ли критическая разница с точки зрения оптимальности работы? Результат, само собой, такой же.
    2) При попытке установить галку «Показывать план выполнения запроса» мне выдается ошибка: «Ошибка создания конфигурационного файла в каталоге … Проверьте права доступа.» Хотя у меня административные права на моем компьютере, да, и пользователь единственный. Может есть нюансы, о которых я не знаю? :)

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


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

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


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

          • Podkoshki

            Василий, еще один небольшой вопрос по консоли: я скачала ее с сайта ИТС и у меня количество строк запроса всегда =0, аналогично и с количеством записей в результате. Где-то есть консоль для посвященных с уже исправленными ошибками? :)

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


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

              • Podkoshki

                В общем-то, от текста запроса ситуация не меняется. Я заметила ее еще с первых практических заданий. Привожу скриншот с выполненным заданием №14. Текст запроса ниже:
                «ВЫБРАТЬ
                | ПоступлениеТоваровТовары.Номенклатура КАК Товар,
                | СУММА(ПоступлениеТоваровТовары.Сумма) КАК СтоимостьЗакупа
                |ИЗ
                | Документ.ПоступлениеТоваров.Товары КАК ПоступлениеТоваровТовары
                |
                |СГРУППИРОВАТЬ ПО
                | ПоступлениеТоваровТовары.Номенклатура
                |
                |ИМЕЮЩИЕ
                | СУММА(ПоступлениеТоваровТовары.Сумма) > &Сумма
                |
                |УПОРЯДОЧИТЬ ПО
                | СтоимостьЗакупа УБЫВ»

                Во втором скриншоте представлены параметры платформы.

                %D0%9E%D0%BA%D0%BD%D0%BE%D0%9A%D0%BE%D0%BD%D1%81%D0%BE%D0%BB%D0%B8.png%D0%9F%D0%B0%D1%80%D0%B0%D0%BC%D0%B5%D1%82%D1%80%D1%8B%D0%9F%D0%BB%D0%B0%D1%82%D1%84%D0%BE%D1%80%D0%BC%D1%8B.png

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


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

              • Podkoshki

                Спасибо, вторая обработка работает корректно, как Вы и указали.

  15. pyatkin

    Добрый день.
    Существует ли ограничение по количеству параметров, передаваемых в запрос, при выполнении запроса?
    То есть.
    Какое максимальное количество параметров можно задавать при конструировании запроса?

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


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

  16. Andrefan

    Добрый день.
    В случае вывода ссылки в запросе, в отчете при отображении каждый раз будет происходить дополнительный запрос к БД, чтобы получить представление. То есть получать представление в запросе – это существенная оптимизация. Но как быть, если в отчете есть необходимость открывать ссылку двойным кликом по ячейке (чтобы просматривать данные)? В данном случае без вывода ссылки в выходное поле не обойтись? Или есть ли какие-то альтернативы?

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


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

  17. DamirXan

    Добрый день!

    При запуске технологического журнала происходит COM-ошибка аналогично как у пользователя «VIF». ОС Win8 64бит, платформа 1Cv8.3.5.1517, база файловая (из учебных материалов).

    Запуск 1С от имени администратора не помогает. Служба Winmgmt (название в русскоязычной Windows — «Инструментарий управления Windows») работает. Утилита WMI Diagnosis Utility сообщает, что пользователю не хватает прав.
    Я запускал 1С под всеми 4-мя пользователями своего ПК, результат один и тот же — ошибка.
    Что можно еще сделать?

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


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

      • DamirXan

        Добрый день!
        Переименование каталога C:\Windows\System32\wbem\repository и попытка восстановления WMI не помогли (проблема с администраторской учетной записью).
        Пришлось переустановить ОС.
        Сразу все заработало.

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


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

  18. xdd

    Добрый день Василий!
    Скачал базы для выполнения практических заданий Query-Homework-Template.dt, при просмотре видео уроков, обнаружил, что например используется документ ПриходТовара (видеоурок из Query-1cv8-Module9, нумерация строк в запросе), но в базе для выполнения практических заданий, такого документа нет.
    Для урока из Query-1cv8-Module9, остатки в периоде, когда не было движений используется регистр ТоварныеЗапасы, в базе есть только регистр ТоварыНаСкладах. Правильно ли я понимаю, что база на которой записывались видео уроки отличается от базы на которой выполняются практические задания? Если да то где взять базу на которой выполнялись задания из видео?

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


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

  19. enmelnik

    Здравствуйте, на стр.82 методички есть запрос:

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

    Мне не понятно наличие функции «Выразить()», т.к. мы вибираем документы типа «Документ.РасходТовара»

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

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


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

  20. igor-kz

    При попытке загрузить в 1С Модельную базу для решения практических заданий Query-Homework-Template.dt выдается сообщение об ошибки:»Неверный формат файла для загрузки информационной базы» . Платформа 1С : 8.2.19.83

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


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

  21. Alek___

    Здравствуйте, благодарю за предыдущие ответы!

    Вопрос относительно конструкции ИМЕЮЩИЕ: в условиях отбора, устанавливаемых после этого ключевого слова можно устанавливать агрегатные функции, а также поля, по которым осуществляется группировка.
    Ниже я приведу два запроса: в первом запросе условие на поле «Номенклатура» размещено в конструкции ИМЕЮЩИЕ, а во втором запросе — это условие перемещено в секцию ГДЕ. Результат показывается одинаковый. Можете прокомментировать какой вариант и при каких условиях использовать предпочтительнее?

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

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

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

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

    УПОРЯДОЧИТЬ ПО
        Сумма УБЫВ
    • Василий Ханевич


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

  22. Alek___

    Добрый день!
    1. Вопрос по практическому заданию №2, текст запроса следующий:

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

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

    Подскажите (дайте ссылку на тему материалов курса), а в каком порядке идут операции условия (ГДЕ) и группировки (СГРУППИРОВАТЬ ПО)? Сначала выбирается таблица, затем все её строки группируются, а затем на результат предыдущего действие накладывается условие?

    2. Вопрос по теме «Автоупорядочивание»:
    Текст запроса:

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

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

    В описании сказано, что если поле для упорядочивания ссылается на иерархический справочник, то будет применена иерархическая сортировка по этому справочнику.
    Насколько понимаю, иерархическая сортировка (например, по наименованию в порядке возрастания) предполагает, что сначала идёт очередная группа, сразу после неё упорядоченно располагаются элементы, входящие в группу; затем идёт следующая группа.. и т.п., при этом порядок расположения групп друг относительно друга тоже подчинён сортировке.
    Почему в результате вышеприведённого запроса сначала идут группы друг за другом в порядке сортировки, а затем уже после них идут все остальные элементы так же в порядке сортировки. В чём здесь проявляется иерархическая сортировка по этому справочнику?

    3. Вопрос по практическому заданию №6.

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

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

    ———-

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


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

  23. Ренат

    Доброго времени суток.
    Вопрос по 18 заданию.
    Как описано в задании доработал менеджер справочники Номенклатура.

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

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

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

    Непонятно почему для групп не формуруется корректно виртуальное поле …

    %D0%97%D0%B0%D0%BF%D1%80%D0%BE%D1%81%2018.png

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


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

  24. segen

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

    Если в секции «ГДЕ» запроса к регистру бухгалтерии Хозрасчетный написать «Хозрасчетный.Регистратор Ссылка Документ.ПоступлениеТоваровИУслуг», то будут отобраны только регистраторы данного типа.
    В данном примере имеет ли смысл использовать ВЫРАЗИТЬ к выходному полю:

    Выразить (Хозрасчетный.Регистратор как Документ.ПоступлениеТоваровИУслуг) КАК Документ

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


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

  25. segen

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

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

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


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

  26. hjkl

    Добрый день.

    Вопросы по ограничению количества таблиц в запросе:
    1) Это только для mssql, а с другими СУБД можно не заморачиваться по этому поводу?
    2) Это ограничение действует только на один запрос в пакете — или на весь пакет запросов?
    3) Под словом таблица что имеется ввиду — временные таблицы, только реальные таблицы БД,таблицы внутри вложенных запросов тоже считаются, если дважды выбрана таблица одна и та же таблица — это +1 или +2?
    4) Виртуальная таблица это +1 или +Х, где Х кол-во таблиц из которых собирается виртуальная таблица?
    5) Есть ли ограничение на количество запросов в пакете?

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


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

  27. FIV

    Добрый день!

    При запуске технологического журнала происходит COM-ошибка (см.рис.приложен). ОС Win7Prof, платформа 1Cv8.3.5.1443, база файловая (из учебных материалов). Подскажите, пожалуйста, как исправить?

    %D0%9E%D1%881.png

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


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

      • FIV

        Да! Спасибо. Запуск под администратором, действительно, спасает. Хотя строка, вызывающая ош. смущает. Запускается процесс, чтобы по его родителю определить ID текущего процесса. Далее появляется еще одна ош. (см.Рис.Приложен). Явно синтаксическая (перепутано имя). В версии «ИнструментыРазработчикаКонсольЗапросов83.epf» не проявляется. Странно, что никто не жалуется. Наверное, народ продвинутый. Такие ош. сам исправляет.

        %D0%9E%D1%882.png

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


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

  28. Cos

    Добрый день!
    В Модуле 2, в теме «Табличные части справочников и документов в запросах», в Примере 2 приводится такой запрос (фрагмент):
    «ВЫБРАТЬ РасходТовараТовары.Ссылка.Покупатель,»
    Насколько правильна эта строка? Слышал о том, что «обращение через 2 точки» — суть страшное зло. Это оно? И как с этим бороться?
    Я бы подтянул в запрос таблицу документов и связал ее через поле ссылка. Потом бы вытянул Покупателя через Ссылка.Покупатель.

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


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

  29. Сергей Беляков

    Добрый день! У меня несколько неожиданно-технический вопрос. Решаю ДЗ 16-18 и при попытке поставить флаг «Показывать план выполнения запроса» (даже при отсутствии какого либо запроса) консоль выдает ошибку
    {Форма.Форма.Форма(313)}: Поле объекта не обнаружено (ПоказатьПланВыполненияЗапроса)
    Элементы.ПоказатьПланВыполненияЗапроса.Доступность = Ложь;
    В консоли я ничего не трогал Чтобы это значило и как с этим бороться?!

    • Сергей Беляков

      Извините, пожалуйста. Разобрался. Это была учебная тревога

  30. Cos

    Добрый день!
    У меня вопрос по псевдонимам таблиц.
    Как в конструкторе запроса посмотреть, какая таблица в какую переименована?
    Особенно актуально, если работаешь с запросом, написанным не тобой. И вот, периодически, приходится просматривать текст запроса, чтобы найти «КАК» по отношению к той или иной таблице.

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


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

      • Cos

        Ну да, так я и делаю.
        Думал, что чего-то не знаю, ан нет… знаю, к сожалению. :)

  31. rasymka

    Добрый день!
    Очень интересует такой вопрос:
    Например, в форме списка документа «Тест» отображаются реквизиты: Дата, Номер, СчётФактура. СчётФактура имеет ссылочный тип. Возможно ли как-то изменить представление ссылки СчётФактуры конкретно только для формы списка «Тест» ?

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


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

      • rasymka

        Да, это понятно. Получается невозможно изменить представление ссылки для конкретной формы ?

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


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

  32. Taktic

    ВЫБРАТЬ
    ВЫБОР
    КОГДА «ТеСт» = «тЕсТ»
    ТОГДА ИСТИНА
    ИНАЧЕ ЛОЖЬ
    КОНЕЦ КАК СтрокиРавны

    Действительно выдает истину, а вот

    ВЫБРАТЬ
    ВЫБОР
    КОГДА «Тест» = «Тест »
    ТОГДА ИСТИНА
    ИНАЧЕ ЛОЖЬ
    КОНЕЦ КАК СтрокиРавны
    получается ложным.

    ВЫБРАТЬ
    «Строки равны!» КАК СтрокиРавны
    ГДЕ
    «Тест» = «Тест »

    ВЫБРАТЬ
    Контрагенты.Наименование,
    ВЫБОР
    КОГДА Контрагенты.Наименование = «Супермаркет ООО »
    ТОГДА ИСТИНА
    ИНАЧЕ ЛОЖЬ
    КОНЕЦ КАК СтрокиРавны
    ИЗ
    Справочник.Контрагенты КАК Контрагенты
    Тут снова Истина.

    В каких случаях не учитываются а в каких не учитываются концевые пробелы при сравнении строк?

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


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

  33. DasTPID

    Добрый день!
    По окончании урока №22 про объектную модель запроса самая цензурная мысль из тех, которые пришли в голову, выглядела почти бритвой Оккама, что-то типа не стоит плодить сущности в условиях, когда половина моего города до сих пор успешно работает на 7.7. Василий, мой вопрос — честно, положа руку на сердце — неужели вы на самом деле считаете такой метод более наглядным и существует хотя бы одна ситуация, где его применение могло бы быть оправдано?

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


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

      • DasTPID

        [CODE]Отбор.Добавить(ИмяОтбора + «=&»+ИмяОтбора);[/CODE]

        Выглядит ничем не лучше нижеприведённого, всё равно формируется строка, которая добавляется в отбор. «А если нет разницы — зачем платить больше?» (с)
        [CODE]
        Запрос = Новый Запрос;
        Запрос.Текст = «ВЫБРАТЬ Поле из Таблица ГДЕ А = &А «;
        Для Каждого ТекЭлемент Из ПараметрыОтбора Цикл
        ИмяОтбора = ТекЭлемент.Ключ;
        Запрос.Текст = Запрос.Текст + » И » + ИмяОтбора + «=&»+ИмяОтбора;
        Запрос.УстановитьПараметр(ИмяОтбора, ТекЭлемент.Значение);
        КонецЦикла;
        [/CODE]

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


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

          • DasTPID

            А подскажете как у вас на форуме тэг «код» нужно писать?

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


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

  34. monstera

    Добрый день!
    У меня вопрос по функции РАЗНОСТЬДАТ(&Дата1, &Дата2, ГОД). Для значений, например, 25.12.2014 и 05.01.2015 функция вернет 1. И если вместо ГОД указать МЕСЯЦ, тоже вернет 1, только разница в днях считается адекватно (11 дней). При этом нужда в подсчете разницы дат возникает часто в таких задачах, когда надо, например, определить достижение определенного возраста или истечение какого-то срока — но во всех этих случаях нужно число полных указанных периодов от одной даты до другой, а не просто (ГОД(&Дата2) — ГОД(&Дата1)). Объективно функция оказывается бесполезной и приходится решать задачу другими средствами. Если нужен просто факт истечения какого-то срока, то можно достаточно легко использовать вместо неё (ДОБАВИТЬКДАТЕ(&Дата1, ГОД, Срок) < &Дата2). Но если нужно само число полных периодов для использования, скажем, в расчете, то приходится изобретать какие-то неуклюжие конструкции типа
    РАЗНОСТЬДАТ(&Дата1, &Дата2, ГОД) — ВЫБОР
    КОГДА ДОБАВИТЬКДАТЕ(&Дата1, ГОД, РАЗНОСТЬДАТ(&Дата1, &Дата2, ГОД)) < &Дата2
    ТОГДА 0 ИНАЧЕ 1
    КОНЕЦ

    Почему такая потенциально полезная функция так бестолково себя ведет? Или я не умею её использовать?

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


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

      • monstera

        Спасибо.

        Хотя у функции языка 1С ДобавитьМесяц() и у функции языка запросов ДОБАВИТЬКДАТЕ() нет никаких сложностей с определением полных периодов — они надежно работают независимо от месяца и високосности года. Стало быть, вообще в системе четкие определения периодов есть, это просто функция РАЗНОСТЬДАТ их почему-то не учитывает.

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


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

  35. CT

    Добрый день!

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

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


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

      • CT

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

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


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

          • CT

            Мы же запросы обсуждаем, поэтому метод Сравнить() не подходит. Для документов есть виртуальное поле «МоментВремени». «Беда» заключается в том, что при упорядочивании по этому полю однотипные документы «собираются вместе». Действительно, если посмотреть запрос «SQL», то в поля сортировки вставляются «типы» документов перед ссылками. И кроме того, в статье: http://its.1c.ru/db/metod8dev#content:2737:hdoc:_top:%D0%BC%D0%BE%D0%BC%D0%B5%D0%BD%D1%82%D0%B2%D1%80%D0%B5%D0%BC%D0%B5%D0%BD%D0%B8 говорится, что «порядок двух документов с одинаковой датой можно считать неопределенным». Я думал, что существуют какие-то «трюки» на этот случай.
            Спасибо.

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


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

  36. dsdred

    Сегодня решил скачать консоль 1С так как в ней есть возможность посмотреть SQL запрос непосредственно, но не тут то было. 1С-ки поменяли место расположение.
    У вас в первом видео уже устаревшее место.

    Сейчас тут:
    Главная -> Разработка и администрирование -> Методическая поддержка для разработчиков и администраторов 1С:Предприятия 8 -> Консоль запросов для управляемого приложения

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


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

  37. dsdred

    Добрый вечер!
    Почему в практическом задании №8 использовался Символ «_», а не [0-9]?
    На сколько я понимаю, если телефон содержит символ а не число он тоже будет считаться правильным.
    К примеру +7(9F9)1FF-45-67

    НЕ Контрагенты.Телефон ПОДОБНО «+[0-9]([0-9][0-9][0-9])[0-9][0-9][0-9]-[0-9][0-9]-[0-9][0-9]»

  38. DasTPID

    Добрый день!
    В практическом задании 18, там, где переопределялось представление, после написания вашего кода консоль запросов (да и простое открытие справочника Номенклатура) выдаёт ошибку «Преобразование к типу Число не может быть выполнено», наверное это связано с тем, что у какой-то номенклатуры Артикул — это число, и конструкция вида Представление = Данные.Артикул + » — » + Данные.Наименование; пытается преобразовать к числу всё подряд.
    Если написать Представление = «» + Данные.Артикул + » — » + Данные.Наименование; то всё хорошо.

    Почему у вас работает, а у меня нет?
    8.3.5.1383

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


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

      • shevelyov

        Добрый день! А у меня почему-то для групп в результате запроса Представление не Null а пусто.

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


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

          • shevelyov

            Просмотрел видеоуроки ещё раз. Не нашёл. :(

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


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

              • shevelyov

                То есть в модуле 4, до него я ещё не добрался.В данный момент идёт обсуждение модуля 2. Понятно.

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


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

  39. AndreyM

    Добрый день! В практическом задании № 9, на мой взгляд, более оптимально обратиться к виртуальной таблице оборотов регистра накопления «Продажи» (количество используемых таблиц БД будет меньше). Запрос будет следующим:

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

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


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

  40. Наталья Жукова

    Добрый день!
    На стр. 80-81 приводятся примеры с использованием ТИПЗНАЧЕНИЯ() и ССЫЛКА. Если пользоваться этими функциями в условии ГДЕ, какая из этих функций будет лучше и быстрее работать? Особенно, если надо тип регистратора вытащить определенный в запросе.

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


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

  41. FreeArcher

    Добрый день!

    Создал запрос:

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

    И получаю следующий план запроса:

    SELECT TOP 1
    CASE WHEN T1.Регистратор = 0x000000B9 THEN T2.Номер WHEN T1.Регистратор = 0x000000BB THEN T3.Номер WHEN T1.Регистратор = 0x000000EB THEN T4.Номер WHEN T1.Регистратор = 0x0000010D THEN T5.Номер WHEN T1.Регистратор = 0x000000BC THEN T6.Номер WHEN T1.Регистратор = 0x000000B6 THEN T7.Номер WHEN T1.Регистратор = 0x000000D0 THEN T8.Номер WHEN T1.Регистратор = 0x000000D3 THEN T9.Номер WHEN T1.Регистратор = 0x000000CA THEN T10.Номер WHEN T1.Регистратор = 0x00000101 THEN T11.Номер WHEN T1.Регистратор = 0x000000E3 THEN T12.Номер WHEN T1.Регистратор = 0x000000D4 THEN T13.Номер WHEN T1.Регистратор = 0x000000D5 THEN T14.Номер WHEN T1.Регистратор = 0x000000C5 THEN T15.Номер WHEN T1.Регистратор = 0x00002533 THEN T16.Номер WHEN T1.Регистратор = 0x000000FA THEN T17.Номер WHEN T1.Регистратор = 0x000000D9 THEN T18.Номер WHEN T1.Регистратор = 0x00002C03 THEN T19.Номер WHEN T1.Регистратор = 0x000000E4 THEN T20.Номер WHEN T1.Регистратор = 0x00002538 THEN T21.Номер WHEN T1.Регистратор = 0x000000E5 THEN T22.Номер WHEN T1.Регистратор = 0x000000DF THEN T23.Номер WHEN T1.Регистратор = 0x000000C4 THEN T24.Номер WHEN T1.Регистратор = 0x000000D2 THEN T25.Номер WHEN T1.Регистратор = 0x0000010C THEN T26.Номер WHEN T1.Регистратор = 0x000000BA THEN T27.Номер WHEN T1.Регистратор = 0x000000FC THEN T28.Номер WHEN T1.Регистратор = 0x000000E2 THEN T29.Номер WHEN T1.Регистратор = 0x000000EF THEN T30.Номер WHEN T1.Регистратор = 0x000000F1 THEN T31.Номер WHEN T1.Регистратор = 0x000000C3 THEN T32.Номер WHEN T1.Регистратор = 0x000000C2 THEN T33.Номер WHEN T1.Регистратор = 0x000000E9 THEN T34.Номер ELSE CAST(NULL AS NVARCHAR(11)) END,
    T1.Склад
    FROM РегистрНакопления.СвободныеОстатки T1
    LEFT OUTER JOIN Документ.ВнутреннееПотреблениеТоваров T2
    ON (T1.Регистратор = 0x000000B9 AND T1.Регистратор = T2.Ссылка) AND (T2.ОбластьДанныхОсновныеДанные = ?)
    LEFT OUTER JOIN Документ.ВозвратТоваровОтКлиента T3
    ON (T1.Регистратор = 0x000000BB AND T1.Регистратор = T3.Ссылка) AND (T3.ОбластьДанныхОсновныеДанные = ?)
    LEFT OUTER JOIN Документ.ПоступлениеТоваровУслуг T4
    ON (T1.Регистратор = 0x000000EB AND T1.Регистратор = T4.Ссылка) AND (T4.ОбластьДанныхОсновныеДанные = ?)
    LEFT OUTER JOIN Документ.ЧекККМВозврат T5
    ***

    Я же вроде сделал ограничение условием «СвободныеОстатки.Регистратор ССЫЛКА Документ.ПоступлениеТоваровУслуг», почему все равно идет неявное соединение со всеми таблицами документов регистраторов?

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


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

  42. shevelyov

    Добрый день, в разделе учебника «Типы данных в запросах», стр. 80 есть запрос:
    ВЫБРАТЬ ТИПЗНАЧЕНИЯ(ТоварныеЗапасы.Регистратор) ИЗ РегистрНакопления.ТоварныеЗапасы КАК ТоварныеЗапасы ГДЕ ТИПЗНАЧЕНИЯ(ТоварныеЗапасы.Регистратор) = &Тип
    В консоле вижу: Имя параметра: тип, Тип: тип, Значение: Не определено. Какой параметр нужно выбрать, чтобы увидеть продажи?

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


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

  43. Longinoff

    Добрый день.
    1. В видеорешении д/з по работе с «Подобно» не накладывался фильтр на группы справочника, но они не попали в результат выборки. Можно объяснить почему?
    2. В одном из домашних заданий нужно было получить даты всех документов регистраторов регистра. В видеорешении было представлено получение даты первого попавшегося документа, который неявно делал соединения по всем документам регистраторам. Я в своем решении сделал объединение 3-х запросов, в каждом из которых стоял фильтр по своему виду. Это более оптимально или правильно, как видеорешении?

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


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

  44. Надежда

    Здравствуйте! Вопрос по видео 16 «Использование конструкции ИМЕЮЩИЕ». Согласно видео изначально решается задача выбора покупателей, совершивших покупку на сумму более 10000 рублей, но в запросе выбираются СТРОКИ табличной части документа расход товара, то есть рассматриваются суммы отдельных позиций, а не покупки в целом. Например, если покупатель купил Товар1 на сумму 7000 рублей и Товар2 на сумму 4000 рублей одним документом, то есть итоговая сумма покупки будет 11000 рублей, то данная покупка не попадет в результат запроса из видео:

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


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

  45. Надежда

    Добрый день! Вопрос по формулировке задания № 3. Определить количество записей в ЛЮБОМ регистре накопления. Я одна такая, кто подумал, что в любом, значит в каждом из существующих в конфигурации и пыталась в запрос передавать названия регистров, чтобы не плодить однотипные запросы?

    Слово «Любой» по словарю Ушакова имеет несколько значений:
    1. Всякий, каждый.
    2. Какой угодно на выбор.

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

    Аналогичная ситуация с формулировкой задания № 4: определить количество документов, сделавших записи в любом регистре накопления. Можно подумать, что надо найти количество документов, которые делают движения во всех регистрах накопления. Но после 3 задания значение слова «любом» в 4 задании уже понятно. Хотя на мой взгляд формулировка задания не совсем корректна.

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


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

  46. morpheus

    Здравствуйте! В видео уроке консоль запросов открывается в конфигурации «Демонстрационная конфигурация «Управляемое приложение»». Я скачал и установил эту конфигурацию с сайта ИТС. У автора при нажатии в контекстном меню консоли запроса на пункте «Конструктор запроса…» открывается форма конструктора запроса, а у меня выскакивает сообщение «Конструктор запроса доступен в режиме Толстого клиента». Что я делаю не так ?

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


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

      • sergei224

        Morpheus где-то на сайте нашел Демонстрационную конфигурацию «Управляемое приложение,
        а я не могу там найти. Подскажите, пожалуйста, где ее взять, чтобы все повторять, как по лекции.

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


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

  47. bsi

    в решении Практическое задание 08 я бы жестко указал, что в номере только цифры:
    НЕ Контрагенты.Телефон ПОДОБНО «+7([0-9][0-9][0-9])[0-9][0-9][0-9]-[0-9][0-9]-[0-9][0-9]»

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


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

  48. 13jaguar

    В решении 7-го задания есть небольшая неточность. Следует запросом также отсечь группы, ибо в задании сказано: «Вывести список товаров». Например, вот так:
    ВЫБРАТЬ
    Номенклатура.Представление
    ИЗ
    Справочник.Номенклатура КАК Номенклатура
    ГДЕ
    Номенклатура.Наименование ПОДОБНО «%\%%» СПЕЦСИМВОЛ «\»
    И НЕ Номенклатура.ЭтоГруппа

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


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

  49. SBruder

    Добрый день! Вы несколько раз упоминали, что, если есть возможность указать тип поля, которые имеет составной тип, с помощью ВЫРАЗИТЬ, то это оптимизирует отчет. У меня возник вопрос. Если я пишу запрос к регистру бухгалтерии к определённому счету, т.е. я точно знаю, какого типа у меня будут субконто, и я хочу выбрать субконто в качестве выходного поля, то лучше указать его тип?

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


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

  50. Tervolina

    Василий,здр-те. Пробую посмотреть анализ плана выполнения запроса. Система выдает ошибку:
    {Форма.Форма.Форма(310)}: Поле объекта не обнаружено (ПоказатьПланВыполненияЗапроса)
    Элементы.ПоказатьПланВыполненияЗапроса.Доступность = Ложь;

    В чем может быть дело? У меня уч.версия 1С 8.3.5.1238.
    Спасибо.

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


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

      • FreeArcher

        Может стоит в материалах к курсу выкладывать уже подправленную обработку?

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


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

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