К вопросу об оптимизации запросов v8 с использованием виртуальных таблиц (1С: v8: Язык запросов)

Вопрос Можно ли в запросах 1С v8 всегда заменять условие «ГДЕ» параметрами среза виртуальной таблицы? Ответ Часто встречающаяся рекомендация по выполнению опимизации запросов: переносить условие из конструкции ГДЕ в параметры виртуальной таблицы. Однако без понимания, как это работает, легко совершить ошибку.

Continue reading


Что такое ПОЛНОЕ СОЕДИНЕНИЕ в запросе 1C, как оно работает? (1C: 8.1: Программисту: Язык программирования: Язык запросов)

Вопрос Что такое ПОЛНОЕ СОЕДИНЕНИЕ в запросе 1C, как оно работает? Ответ Любое «СОЕДИНЕНИЕ» наборов данных, в том числе и «ПОЛНОЕ», дает команду объединить определенным образом два набора данных между собой по некоторому условию (обычно это условие равенства каких-то ресурсов в этих наборах). В случае полного соединения в результирующем наборе будут не только строки, по […]

Continue reading


Хитрости запросов: сравнения и проверки в запросах 1С. Отбор не заполненного значения. Отбор в запросе документов конкретного типа при составном типе и т.п. ( 1С: 8.1: Язык программирования: Запросы)

Вопрос Как в языке запросов 1С отобрать не заполненное значение? Какое условие указать в запросе после ключевого слова «ГДЕ», когда нужно сделать отбор по не заполненным полям? Ответ См. примеры запросов и комментарии к ним: Запрос.Текст = «ВЫБРАТЬ | усЕдиницыХранения.Ссылка |ИЗ | Справочник.усЕдиницыХранения КАК усЕдиницыХранения // Пример 1. сравнение с не заполненным булевым значением: |ГДЕ […]

Continue reading


Временные таблицы: Пример получения цен (1С: 8.1: Программисту: Работа с запросами)

Вопрос Как в языке запросов 1С используются временные таблицы? Что такое временные таблицы? Ответ В одном из последних релизов платформы 8.1 появилась возможность использовать в запросах временные таблицы. Что это такое и как их можно использовать? Рассмотрим пример, с которым наверное многие из Вас сталкивались — а именно с необходимостью расчета цен по таблице товаров. […]

Continue reading


Аналог метода Лев в запросе (1С, 8.1, Программисту, Работа с запросами)

Вопрос Как в запросе использовать «СокрЛП», «Лев», «Прав», т.е. как отсечь нужное количество символов? Ответ Использовать конструкцию «ВЫРАЗИТЬ»: … ГДЕ (ВЫРАЗИТЬ(усЕдиницыХранения.Владелец.Наименование КАК СТРОКА(4))) <> «Груз» |ГДЕ | (ВЫРАЗИТЬ(усЕдиницыХранения.Владелец.Наименование КАК СТРОКА(4))) <> &Груз … Запрос.УстановитьПараметр(«Груз»,»Груз»);

Continue reading


Как назначить один из элементов справочника «более главным». Как создать группу для неиерархического справочника (1С: Программисту)

Вопрос Бывает, необходимо назначить один из элементов справочника «более главным», не затрагивая структуру самого справочника, т.е. объединить элементы неиерархического справочника в одну группу, либо добавить другой «срез иерархии», отличающийся от уже существующего. Как это сделать? Ответ Предположим, требуется объединить контрагентов в группу и назначить этой группе одного «главного» контрагента. При этом по условию задачи нельзя […]

Continue reading


Как в запросе 1С присоединить дополнительный реквизит по условию, не размножая строки, если условие соединения не идентифицирует строку регистра полностью (1С: 8.1: Программисту)

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

Continue reading