Комплект вопросов сертификационного экзамена на знание основных механизмов платформы «1С: Предприятие 8» (стр. 20 )
Из за большого объема этот материал размещен на нескольких страницах: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 |
3. Справедливы оба утверждения
7.40 Текст запроса может содержать описание предопределенных данных конфигурации:
1. значения системных перечислений
2. предопределенных данных (справочники, перечисления, планы видов характеристик, планов счетов, планов видов расчета)
4. значения точек маршрута бизнес процессов
7.41 В тексте запроса можно указывать (напрямую, без использования параметров) значения системных перечислений:
1. из определенного перечня
2. любые системные перечисления
3. описать в тексте запроса использование какого-либо значения системного перечисления (без использования параметра запроса) нельзя
7.42 При работе с временными таблицами менеджер временных таблиц:
1. создается в единственном экземпляре на информационную базу, попытка повторного создания приводит к исключительной ситуации
2. может быть создан по одному экземпляру на сеанс (запуск 1 С: Предприятие)
3. в рамках одного сеанса может быть создано произвольное количество экземпляров
4. существует в единственном экземпляре, обращение к нему производится через соответствующее свойство глобального контекста
7.43 Время жизни временной таблицы:
1. определяется разработчиком при создании временной таблицы
2. до окончания сеанса, в котором таблица была создана
3. до окончания транзакции, в которой она была создана
4. определяется временем жизни менеджера временных таблиц, либо разработчиком с помощью конструкции языка запросов
7.44 При создании временной таблицы, после ключевого слова «Поместить» указывается имя временной таблицы. Это имя должно быть:
1. уникальным в пределах информационной базы
2. уникальным в пределах пользовательского сеанса
3. уникальным в пределах менеджера временных таблиц
4. может совпадать с именем существующей временной таблицы, в этом случае произойдет замещение данных в ранее существовавшей таблице
7.45 При написании текста запроса в качестве источника данных можно использовать внешний источник (передаваемый как параметр):
1. в любом случае (нет ограничений)
2. только если в этом запросе создается временная таблица
3. только если в этом запросе производится получение данных, а не создание временной таблицы
4. в любом случае (нет ограничений), но только в подзапросах
5. в любом случае (нет ограничений), но только в запросе «верхнего» уровня
7.46 При использовании в качестве источника данных для запроса внешнего источника (данные которого передаются через параметр) в качестве такого источника может использоваться:
1. таблица значений
3. результат запроса
6. верны ответы 1,2,3,4
7.47 При определении в виртуальной таблице «ОстаткиИОбороты» варианта периодичности «Авто»:
1. система автоматически подберет периодичность получения оборотов исходя из правила: чтобы в результате оказалось не менее 3-х значений периодов, но не более 12
2. система автоматически подберет периодичность получения оборотов исходя из правила: чтобы в результате оказалось не менее 5-ти значений периодов, но не более 10
3. в полях выборки запроса разработчик сможет выбирать поля периода с разной периодичностью
7.48 При попытке выполнить запрос с текстом «Выбрать * Из Справочник. Номенклатура», в случае если на записи справочника были определены ограничения на чтение (в соответствующей роли) произойдет следующее:
1. Будут получены все данные
2. Будут получены данные только из разрешенных записей
7.49 Значения каких реальных полей таблицы документа определяют его хронологическую позицию среди других документов?
1. Значения свойств «Дата» и «Ссылка»
2. Достаточно значения свойства «Дата»
3. Значения свойств «Дата» и «Время»
4. Достаточно значения свойства «Номер»
5. Достаточно значения свойства «Ссылка»
6. Значения свойств «Дата» и «Номер»
8. Механизмы интеграции и обмена данными
8.1 С точки зрения XML сериализации значение типа «Докумен-тСсылка. ИмяДокумента» относится:
3. Применить средства XML сериализации к данному типу значения нельзя
8.2 Одновременно с файлом формата dbf может быть открыто.
1. любое количество индексных файлов
2. количество индексных файлов, не превышающее количество полей в dbf файле
3. не более трех индексных файлов
4. не более одного индексного файла
1. в модуле приложения
2. в модуле внешнего соединения
8.4 Данную топологию обмена между информационными базами (имеющими одинаковую конфигурацию) можно реализовать:
1. Только при использовании возможности распределения информационной базы данных
2. Только при использовании возможностей универсального обмена
3. Как средствами универсального обмена, так и распределением информационной базы
4. Данную топологию реализовать невозможно
8.5 При записи значения с использованием средств XML сериализации в XML документ:
1. Используются только методы, относящиеся к средствам XML сериализации
2. Используются только возможности объекта «ЗаписьХМL»
3. Используются методы, относящиеся к средствам XML сериализации и объект «ЗаписьХМL«
4. Для записи преобразованного значения используется метод глобального контекста «ЗаписатьВФайл(ИмяФайла)»
1. в модуле приложения
2. в модуле внешнего соединения
8.7 Данную топологию обмена между информационными базами (имеющими одинаковую конфигурацию) можно реализовать:
1. Только при использовании возможности распределения информационной базы данных
2. Только при использовании возможностей универсального обмена
3. Как средствами универсального обмена, так и распределением информационной базы
4. Данную топологию реализовать невозможно
8.8 Событие «ПриПолученииДанныхОтПодчиненного», определенное в модуле плана обмена, возникает при получении данных от подчиненного узла:
1. При отмеченном у данного плана обмена флаге «Распределенная база данных»
2. При не отмеченном у данного плана обмена флаге «Распределенная база данных»
3. Состояние данного флага па вызов этого обработчика события не влияет
8.9 При последовательном чтении из текстового файла невозмож но:
1. Построчное чтение текста
2. Посимвольное чтение текста
3. Возможно как построчное, так и посимвольное чтение
8.10 В процедуре, которая будет вызываться при подключении к базе данных через СОМ, нельзя использовать:
1. ДокОбъект=Док. СоздатьДокумент()
3. Запрос=Новый Запрос
4. Нет правильного ответа
8.11 При использовании механизма распределенных баз данных изменения в конфигурации:
1. Выполняются в каждой информационной базе самостоятельно
2. Передаются посредством файла формата cf
3. Изменения включаются в стандартные сообщения обмена
4. После распределения информационной базы изменение конфигурации запрещено
8.12 При использовании механизма распределенных информационных баз в соответствующем объекте «План обмена» отдельно взятой информационной базы (входящей в распределенную) определяется:
1. Только подчиненные базы (входящие в распределенную)
2. Главная (но она может и отсутствовать) и подчиненные базы
3. Полная структура определяется в корневой базе, у отдельно взятого экземпляра базы определены только те информационные базы, с которыми у нес идет непосредственный обмен
8.13 Для создания объекта, с использованием которого из одной базы 1С:Предприятие 8 будет производиться обращение через OLE к другой информационной базе 1С:Предприятие 8, используется конструктор:
1. Новый Вазе(СтрокаИнициализации)
4. Создание подобного объекта производится другими средствами
8.14 К простым с точки зрения XML сериализации относятся типы:
1. Только: Число, Строка, Дата, Булево
2. Только: Число, Строка, Дата, Булево, Неопределенно, Null
3. Все стандартные типы XML
4. Которые представляются в виде элементов XML только с текстовым содержимым
5. С точки зрения XML сериализации нет понятия «простые типы»
8.15 Экземпляр объекта XBase позволяет одновременно организовать работу:
1. Только с одним файлом формата dbf
Виртуальные таблицы регистра накопления в 1С 8.3
Выборка из регистра накопления
Перебрать все записи регистра накопления можно с помощью метода Выбрать. Данный метод вернет выборку, которую можно перебрать в цикле. Через выборку будут доступны все поля регистра накопления (измерения, ресурсы, реквизиты, служебные поля):
Через параметры можно ограничить период выборки, а также указать отбор. Отбор возможен только по индексируемым измерениям и реквизитам:
Если измерение Товар не проиндексировано, то будет выброшено исключение «Недопустимое значение параметра (параметр номер ‘3’)».
Если нужно выбрать записи только одного регистратора, то можно воспользоваться методом ВыбратьПоРегистратору, передав параметром ссылку на нужный документ:
Чаще всего для выборки используется запрос к таблице движений регистра:
Виртуальные таблицы регистра накопления
Помимо таблицы движений в запросах доступны виртуальные таблицы регистра накопления:
Все их можно увидеть через конструктор запроса:
При этом у регистра накопления с видом Остатки есть все три виртуальные таблицы, а у регистра накопления с видом Обороты только одна, так как у оборотного регистра нет остатков.
Таблицы называются виртуальными, потому что они не хранятся в базе данных. При выполнении запроса они формируются динамически на основании таблиц движений и итогов.
Виртуальная таблица остатков
Алгоритм построения таблицы остатков
Виртуальная таблица остатков содержит в себе все измерения и остатки по всем ресурсам:
Также для таблицы остатков можно указать параметры:
В запросе параметры указываются в скобках после имени таблицы:
Алгоритм построения таблицы остатков:
Например, таблица движений имеет следующий вид:
Регистратор | Вид движения | Период | Склад | Товар | Количество |
---|---|---|---|---|---|
Приход №1 | Приход | 01.01.2021 09:00:00 | Основной | Стол | 10 |
Приход №1 | Приход | 01.01.2021 09:00:00 | Основной | Шкаф | 1 |
Приход №2 | Приход | 10.01.2021 11:00:00 | Розничный | Шкаф | 1 |
Приход №3 | Приход | 31.01.2021 23:59:59 | Основной | Стол | 7 |
Приход №4 | Приход | 31.01.2021 23:59:59 | Основной | Стол | 3 |
Приход №5 | Приход | 05.02.2021 12:30:00 | Основной | Шкаф | 5 |
Расход №1 | Расход | 10.02.2021 10:00:00 | Основной | Стол | 2 |
Расход №2 | Расход | 15.02.2021 10:00:00 | Основной | Шкаф | 7 |
Расход №3 | Расход | 20.02.2021 10:00:00 | Основной | Стол | 1 |
Приход №6 | Приход | 25.02.2021 10:00:00 | Основной | Стол | 1 |
Итоги рассчитаны за все периоды, соответственно таблица итогов выглядит так:
Период | Склад | Товар | Количество |
---|---|---|---|
01.02.2021 | Основной | Стол | 20 |
01.02.2021 | Основной | Шкаф | 1 |
01.02.2021 | Розничный | Шкаф | 1 |
01.03.2021 | Основной | Стол | 18 |
01.03.2021 | Основной | Шкаф | -1 |
01.03.2021 | Розничный | Шкаф | 1 |
01.11.3999 | Основной | Стол | 18 |
01.11.3999 | Основной | Шкаф | -1 |
01.11.3999 | Розничный | Шкаф | 1 |
Получим остатки на 1 февраля (параметр Период = 01.02.2021):
Теперь выполним тот же самый запрос, но параметр период установим равным 12.02.2021.
Теперь вообще не будем указывать параметр Период в запросе:
В этом случае будет использоваться только таблица итогов, из нее будут сразу получены текущие итоги:
Период | Склад | Товар | Количество |
---|---|---|---|
01.11.3999 | Основной | Стол | 18 |
01.11.3999 | Основной | Шкаф | -1 |
01.11.3999 | Розничный | Шкаф | 1 |
Так как в запросе нет поля склад, то оно будет отброшено. Поле Количество будет просуммировано и для товара Шкаф станет равным нулю. Такие записи будут отброшены. В итоге в таблице остатков будет только одна строка:
Товар | Количество |
---|---|
Стол | 18 |
Полученная таблица автоматически не сортируется. Если в параметрах виртуальной таблицы был наложен отбор, то условие отбора будет подставлено во все шаги получения остатков. Если отбор использовался в предложении ГДЕ в запросе, то сначала будет получена таблица остатков без отбора, а потом отброшены все записи не подходящие под условие. Поэтому для виртуальных таблиц отборы всегда нужно накладывать в параметрах виртуальной таблицы, если это возможно.
Если бы в нашем примере не было рассчитанных остатков за февраль 2021, то при получении остатков на втором шаге на 12.02.2021 были бы получены текущие итоги на 01.11.3999. Если нет текущих итогов (отключены для регистра), то был бы взят остаток на 01.02.2021, а на третьем шаге при получении записей из таблицы движений для прихода бы использовался знак плюс, для расхода — минус.
Стоит отметить, что в запросе не нужно дополнительно группировать по измерениям регистра, так как группировка уже была выполнена при формировании виртуальной таблицы.
Также стоит отметить, что при получении остатков из таблицы итогов период всегда берется или равный или больше. Даже если нужно получить остатки на второе число месяца и между первым и вторым числом 10 записей, а между вторым и последним числом 10 000 записей. Все равно остатки будут получены на начало следующего месяца, а потом из таблицы движений будут получены записи между вторым и последним числом.
Граница
В качестве параметра Период можно передать:
Если передать пустую дату, Неопределено или не заполнять параметр, то будут получены текущие итоги.
Если передать дату, то будут получены остатки с учетом времени, но без учета движений за эту дату. То есть если параметром указать дату 31.01.2021 23:59:59, то будут получены следующие остатки:
Склад | Товар | Количество |
---|---|---|
Основной | Стол | 10 |
Основной | Шкаф | 1 |
Розничный | Шкаф | 1 |
Если параметром передать момент времени, то будут получены остатки на указанный момент времени, но исключая движения ссылки из момента времени. Например, если передавать параметром момент времени 31.01.2021 23:59:59 + Приход №4, то остатки будут выглядеть так:
Склад | Товар | Количество |
---|---|---|
Основной | Стол | 17 |
Основной | Шкаф | 1 |
Розничный | Шкаф | 1 |
Если нужно получить остатки с учетом движений ссылки, то нужно передать параметром границу. Граница — это программный объект, который включает в себя дату и вид границы: включать граничное значение в интервал или нет:
Профессия — 1С
рубрики: Виртуальные таблицы | Дата: 11 июня, 2017
Регистры накопления в системе 1С:Предприятие делятся на два вида: регистры накопления остатков и регистры накопления оборотов.
Вид регистра выбирается при его создании в конфигураторе
Как следует из названия одни предназначены для получения остатков на какую-либо дату, а вторые для получения оборотов за выбранный период. В зависимости от вида регистра накопления платформа 1С:Предприятия формирует разный набор виртуальных таблиц. В этой статье и рассмотрим работу с виртуальными таблицами регистров накопления. Для этого создадим регистр накопления остатков — ТоварыОстатки и регистр накопления оборотов — ТоварыОбороты.
Теперь рассмотрим какие виртуальные таблицы предоставляет платформа для каждого из этих регистров.
Регистр накопления оборотов
Для наглядности откроем конструктор запросов и посмотрим какие таблицы доступны для регистра ТоварыОбороты. Это таблица самого регистра — ТоварыОбороты, которая существует физически в базе данных, и одна виртуальная таблица — ТоварыОбороты.Обороты
Со стандартной таблицей все понятно. Рассмотрим подробнее виртуальную.
Виртуальная таблица Обороты
Эта таблица позволяет получать оброты ресурсов в разрезе измерений. В нашем случае у нас два измерения: Склад и Товар. И один ресурс — Количество
Пусть в нашем регистре есть следующие записи
Вернемся в конструктор запросов и для начала просто выберем из таблицы ТоварыОбороты.Обороты все поля
Соответственно запрос будет выглядеть следующим образом:
Результат выполнения запроса выглядить вот так:
Склад | Товар | КоличествоОборот |
---|---|---|
Центральный | Ручка | 3 |
Офис | Ручка | 7 |
Центральный | Карандаш | 21 |
Офис | Карандаш | 4 |
То есть мы получили обороты в разрезе товаров и складов за все время. Предположим, что нас не интересуют склады и мы хотим получить обороты только в разрезе товаров.
Для этого исключим из запроса измерение Склад
и в результате у нас останется только две строки
Товар | КоличествоОборот |
---|---|
Ручка | 10 |
Карандаш | 25 |
Но как правило за все время существования регистра обороты получать не требуется. В основном они нужны за какой-то конкретный период: месяц, квартал, год и т.д. Плюс еще обычно нужны отборы по измерениям (Товар, Склад). Это достигается использованием параметров виртуальной таблицы. Заполнять параметры удобно из конструктора. По кнопке Параметры виртуальной таблицы открывается диалоговое окно в котором можно прописать все что нам нужно:
После этого наш исходный запрос примет следующий вид
Как видим отличие в том, что в скобках после имени виртуальной таблицы появились параметры, которые необходимо заполнить перед выполнением запроса.
У тех кто только начинает работать с виртуальными таблицам зачастую возникает соблазн вместо использования параметров установить отбор привычным способом:
Делать так категорически нельзя. Это отрицательно скажется на производительности и на вашей оценке при сдаче экзамена 1С:Специалист.
При заполнении параметров мы пропустили Периодичность. Давайте раскроем список и из массы возможных вариантов выберем Месяц. Все остальные параметры уберем, чтобы не путаться.
После этого наблюдаем, что в полях таблицы появилось поле Период.
Добавив и его в выбранные поля, получим вот такой текст запроса:
Период | Склад | Товар | КоличествоОборот |
---|---|---|---|
01.06.2017 0:00:00 | Центральный | Ручка | 3 |
01.06.2017 0:00:00 | Центральный | Карандаш | -5 |
01.06.2017 0:00:00 | Офис | Карандаш | 4 |
01.05.2017 0:00:00 | Офис | Ручка | 7 |
01.05.2017 0:00:00 | Центральный | Карандаш | 26 |
Таким образом внутри выбранного временного интервала мы можем разбить обороты на более мелкие промежутки в соответствии с выбранной периодичностью.
Регистр накопления остатков
Так же как и с оборотным регистром посмотрим в конструкторе запросов какие же виртуальные таблицы доступны для регистра накопления остатков
Как видим для регистра накопления остатков доступны три виртуальные таблицы: Обороты, Остатки, ОстаткиИОбороты. Рассмотрим каждую из них в отдельности.
Виртуальная таблица Обороты
Несмотря на то, что вид регистра — Остатки, мы тем не менее можем получать по нему и обороты. Плюс у нас здесь есть два дополнительных ресурса: Приход и Расход
Напомню, что когда делается запись в регистр остатков, указывается вид движения накопления (приход или расход), тогда как для оборотного регистра вид движения не указывают. Поэтому здесь мы имеем дополнительный бонус в виде возможности получить не только в целом оборот за период, но и приход с расходом в отдельности. Но конечно если в метаданных есть оборотный регистр с аналогичным набором измерений, то для получения оборотов лучше использовать именно его. В целом работа с этой виртуальной таблицей подобна работе с виртуально таблицей Обороты оборотного регистра, рассмотренной выше.
Виртуальная таблица Остатки
Эта таблица используется для получения остатков ресурсов в разрезе измерений. В параметрах таблицы мы можем указать дату на которую получаем остатки и установить отборы:
Рассмотрим небольшой пример. Имеем следующие записи регистра:
Выберем все доступные поля а в качестве даты получения остатков установим конец июня. Отбор по измерениям устанавливать не будем. Тогда текст запроса будет выглядеть следующим образом:
А после его выполнения получим вот такой результат
Склад | Товар | КоличествоОстаток |
---|---|---|
Центральный | Ручка | 3 |
Центральный | Карандаш | 21 |
Офис | Ручка | 7 |
Офис | Карандаш | 4 |
Виртуальная таблица ОстаткиИОбороты
Эта таблица объединяет в себе две ранее рассмотренные и позволяет получить обороты за выбранный период времени, а также остатки на начало и на конец периода. Также можно установить отбор.
Использование этой таблицы может быть оправдано, когда нужно в одном отчете одновременно получить и обороты и остатки на начало и конец периода. В остальных случаях злоупотреблять ее применением не стоит.