Фирма 1С Система программ Решения Платформа Методическая поддержка Партнерам Другие сайты
.
 
 
Технологическая платформа
 
Функционал типовых решений
Библиотека стандартных подсистем
Система проектирования прикладных решений
 
1С:Бухгалтерия
 
1С:Упрощенка
 
1С:Предприниматель
 
1С:Управление небольшой фирмой
 
1С:Управление
торговлей
 
1С:Зарплата и Управление
Персоналом
 
1С:Комплексная автоматизация
 
1С:Управление производственным предприятием
 
1С:Консолидация
 
1С:Платежные документы
 
1С:Налогоплательщик
 
1С:Розница
 
1С:Документооборот
 
1С:Деньги
 
1С:Бухгалтерия государственного учреждения
 
1С:Зарплата и кадры бюджетного учреждения
 
1С:Бюджет поселения
 
1С:Документооборот государственного учреждения
 
1С:Бюджетная отчетность
 
1С:Свод отчетов
 
1С:Государственные и муниципальные закупки
 
1С:Электронное обучение
 
1С:Управляющий
Локализованные решения
Отраслевые и специализированные решения
Внедренные решения
Самые масштабные проекты
Технологические вопросы крупных внедрений

Интеграция

Как купить и внедрить?
Центры разработки

Центры компетенции по производству

Центры компетенции по торговле
Партнеры, работающие на корпоративном рынке
Новости и публикации
Обучение
Интернет-поддержка
Версия для печати Поиск
Главная 1С:Предприятие 8 Вопросы при переходе с версии 7.7

Запрос

Есть ли в запросах 1С:Предприятия 8 аналог опции "все вошедшие в запрос"?
Как в конструкторе запроса обратиться к таблице содержащей табличные части документа как таковой, а не как к полю основной таблицы?
Что обозначают фигурные скобки в запросе? (новое)
Почему в запросе не работает сравнение <Выражение> = NULL? (новое)

Есть ли в запросах 1С:Предприятия 8 аналог опции "все вошедшие в запрос"?

Эта опция запроса использовалась в 1С:Предприятии 7.7 прежде всего для построения кросс-отчетов, то есть отчетов, в которых состав колонок определятся всеми значениями одной из группировок. Например, это может быть отчет об остатках товаров на складах, в котором товары выводятся в строках, а склады в столбцах.

В 1С:Предприятии 8 для решения этой задачи используется параметр ГруппировкиДляЗначенийГруппировок методов Выбрать() результата запроса и выборки из результата запроса. При этом указание значения "Все" позволяет выбрать все значения этой группировки в запросе, а указание конкретных вышестоящих группировок позволяет получить все значения группировки для текущих значений указанных вышестоящих группировок. Например, может быть получен отчет по складским остаткам по фирмам. При этом данные по каждой фирме будут выводиться с новой страницы, и иметь свой состав колонок-складов в соответствии с тем, на каких складах есть остатки по этой фирме.

Кроме того, для группировок типа Дата существует возможность указать в тексте запроса способ дополнения результата запроса значениями группировки в указанном интервале с заданной периодичностью. Для этого в описании формирования итогов используется ключевое слово ПЕРИОДАМИ. Это позволяет, например, сформировать отчет по продажам по неделям, независимо от того, были ли продажи за каждую неделю. Использование этой возможности полезно для построения диаграмм, в которых необходимо обеспечить непрерывность отображения периодов.

Как в конструкторе запроса обратиться к таблице содержащей табличные части документа как таковой, а не как к полю основной таблицы?

Для объектных данных (документов, справочников и т.д.) в 1С:Предприятии 8 может быть определено несколько табличных частей. Каждая табличная часть имеет имя, которое задается в метаданных. В языке запросов можно обращаться к табличной части объекта как к полю основной таблицы или как к самостоятельной таблице.

Если необходимо использовать в качестве источника запроса таблицу, содержащую строки табличной части объектов (вложенную таблицу), то для этого достаточно в конструкторе запросов перетащить имя этой табличной части в поле "Таблицы".

Что обозначают фигурные скобки в запросе?

Фигурными скобками в запросе выделяются конструкции, предназначенные для обработки построителем отчета.

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

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

В частности, разработчик может указать, какие поля сможет выбирать пользователь (конструкция ВЫБРАТЬ), на какие поля он сможет накладывать ограничения (конструкция ГДЕ), какие поля могут быть использованы для сортировки (конструкция УПОРЯДОЧИТЬ ПО) и по каким полям могут быть рассчитаны итоги (конструкция ИТОГИ ПО).

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

ПостроительОтчета.Текст =
"ВЫБРАТЬ
| ОстаткиТоваровКомпанииОстаткиИОбороты.Номенклатура КАК Номенклатура,
| ОстаткиТоваровКомпанииОстаткиИОбороты.Номенклатура.Представление,
| ОстаткиТоваровКомпанииОстаткиИОбороты.СкладКомпании КАК Склад,
| ОстаткиТоваровКомпанииОстаткиИОбороты.СкладКомпании.Представление,
| ОстаткиТоваровКомпанииОстаткиИОбороты.Заказ КАК Заказ,
| ОстаткиТоваровКомпанииОстаткиИОбороты.Заказ.Представление,
| ОстаткиТоваровКомпанииОстаткиИОбороты.ЦенаВРознице КАК Цена,
| ОстаткиТоваровКомпанииОстаткиИОбороты.ХарактеристикаНоменклатуры КАК Характеристика,
| ОстаткиТоваровКомпанииОстаткиИОбороты.ХарактеристикаНоменклатуры.Представление,
| ОстаткиТоваровКомпанииОстаткиИОбороты.КоличествоНачальныйОстаток КАК КоличествоНачальныйОстаток,
| ОстаткиТоваровКомпанииОстаткиИОбороты.КоличествоПриход КАК КоличествоПриход,
| ОстаткиТоваровКомпанииОстаткиИОбороты.КоличествоРасход КАК КоличествоРасход,
| ОстаткиТоваровКомпанииОстаткиИОбороты.КоличествоКонечныйОстаток КАК КоличествоКонечныйОстаток
|ИЗ
| РегистрНакопления.ОстаткиТоваровКомпании.ОстаткиИОбороты КАК ОстаткиТоваровКомпанииОстаткиИОбороты
|
|{ИТОГИ ПО Номенклатура, Склад}
|
|ИТОГИ СУММА(КоличествоНачальныйОстаток), СУММА(КоличествоПриход), СУММА(КоличествоРасход), СУММА(КоличествоКонечныйОстаток) ПО
| ОБЩИЕ";

Почему в запросе не работает сравнение <Выражение> = NULL?

Если в запросе есть необходимость проанализировать значение некоторого выражения на равенство NULL, следует использовать не операции сравнения (=, <>), а специальный оператор проверки значения выражения на равенство NULL, имеющий следующий синтаксис:

<Выражение> ЕСТЬ [НЕ] NULL

Например:

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

Если же в этом запросе вместо конструкции ЕСТЬ НЕ использовать операцию сравнения (<>), то это приведет к тому, что записи отбираться не будут.

Следует отметить, что, несмотря на то, что при сравнении значений разных типов определен приоритет типов (NULL, булево, число, дата, строка, ссылка), подобное сравнение имеет смысл для всех типов, кроме NULL. Наличие типа NULL в этой иерархии необходимо лишь для того, чтобы обеспечить упорядочивание записей результата запроса в соответствии с порядком, заданным в предложении УПОРЯДОЧИТЬ ПО.

Вернуться к списку

   © ООО «1С»

Отправить ваши замечания и предложения по сайту