Студопедия

КАТЕГОРИИ:


Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748)

Остатки




Из

Выбрать

Практикум № 24

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

3.34. Таблицы регистра сведений Основная таблица

РегистрСведений.<Имя>
Поле Тип
Период Дата
Регистратор ДокументСсылка.<Имя>
НомерСтроки Число
Активность Булево
МоментВремени Момент времени
<Измерение> Тип измерения
<Ресурс> Тип ресурса
<Реквизит> Тип реквизита

Практикум21 _____________________________________________

1. Напишите текст запросов, позволяющих просматривать наполнение регистров сведений «Валюты», «ШтатноеРасписание»

2. Сформируйте текст запроса, выполнение которого приведет к получению данных о курсах валют на выбранную дату.

3.34.1. Таблица получения среза последних

Виртуальная таблица. Она предназначена для получения наиболее близких в «прошлое» записей регистра сведений на указанную дату (включительно). Включает только активные записи.

РегистрСведений.<Имя>. СрезПоследних (Дата, Условие)
Поле Тип
Период Дата
Регистратор ДокументСсылка.<Имя>
НомерСтроки Число
Активность Булево
<Измерение> Тип измерения
<Ресурс> Тип ресурса
<Реквизит> Тип реквизита

РегистрСведений. Валюты. СрезПоследних (&НачПериода)

Таблица получения среза первых

Виртуальная таблица. Предназначена для получения наиболее близких в «будущее» записей регистра сведений на указанную дату (включительно). Включает только активные записи.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

  РегистрСведений.<Имя>. СрезПервых (Дата, Условие)  
Тип
Дата
ДокументСсылка.<Имя>
Число
Булево
Тип измерения
Тип ресурса
Тип реквизита

Практикум22 ___________________________________________

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

Напишите текст запроса, результат выполнения которого будет получение значения курса выбранной валюты, действующего на выбранную дату. (При этом не надо пользоваться конструкцией «Где» запроса).

3.34.2. Таблицы регистра накопления

3.34.3. Основная таблица

Предназначена для получения записей регистра накопления

РегистрНакопления.<Имя>  
Поле Тип  
Период Дата  
Регистратор ДокументСсылка.<Имя>  
НомерСтроки Число  
Активность Булево  
МоментВремени Момент времени  
Выбрать * ИзРегистрСведений. Валюты. СрезПервых (&НачПериода)
Приход Булево  
Расход Булево  
ВидДвижения ВидДвиженияНакопления  
<Измерение> Тип измерения  
<Ресурс> Число  
<Реквизит> Тип реквизита  
Выбрать * Из РегистрНакопления. ОстаткиНоменклатуры  
           

3.34.4. Таблица получения оборотов

Виртуальная таблица. Предназначена для получения оборотов за период по регистру накопления. При расчете итогов учитываются только активные записи. Данная таблица определена для всех (обоих) видов регистров накопления.

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

Параметры «Начало», «Окончание» задают период, за который получаются обороты.

В качестве периодичности может задаваться один из следующих вариантов:

• Период (не разворачивать)

• Регистратор

• День

• Неделя

• Месяц

• Квартал

• Год Посмотреть таблицу можно с помощью запроса:

Выбрать * ИзРегистрНакопления. ОстаткиНоменклатуры. Обороты („Неделя)

3.34.5. Таблица получения остатков

Виртуальная таблица. Предназначена для получения остатков по регистру накопления. При расчете итогов учитываются только активные записи. Таблица существует только для регистров остатков.

 

 

 

 

 

 

  РегистрНакопления.<Имя>. Остатки (Период, Условие)  
Поле Тип
<Измерение> Тип измерения
<Ресурс>Остаток Число
Выбрать * ИзРегистрНакопления. ОстаткиНоменклатуры. Остатки (&НачПериода)

3.34.6. Таблица получения остатков и оборотов

Виртуальная таблица. Предназначена для получения остатков и оборотов за период по регистру накопления. При расчете итогов учитываются только активные записи. Таблица существует только для регистров остатков.

РегистрНакопления.<Имя>ОстаткиИОбороты (Начало, Окончание, Периодичность, Метод дополнения, Условие)
Поле Тип
Период Дата
Регистратор ДокументСсылка.<Имя>
НомерСтроки Число
<Измерение> Тип измерения
<Ресурс>Оборот Число
<Ресурс>Приход Число
<Ресурс>Расход Число  
<Ресурс>НачальныйОстаток Число  
<Ресурс>КонечныйОстаток Число  
       

Возможные значения метода дополнения:

• Движения (выдаются те периоды, в которых были движения)

• ДвиженияИГраницыПериода (выбираются периоды, по которым были движения и существовали остатки на начало и конец)

Практикум23 ——————————————————————————————————1. Напишите текст запроса, который при выполнении позволил бы получать остаток выбранной номенклатурной позиции на интересующую дату.

2. Напишите текст запроса, который при выполнении выдавал бы данные, необходимые для «оборотки по месяцам» (номенклатурная позиция, остаток на начало периода, приход, расход, остаток на конец периода) за выбранный интервал дат.

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

3.34.7. Таблицы регистра бухгалтерии (с поддержкой корреспонденции)

3.34.8. Основная таблица

Хранятся записи регистра бухгалтерии

РегистрБухгалтерии.<Имя>  
Поле Тип  
МоментВремени Момент времени  
Период Дата  
Регистратор Любая ссылка  
НомерСтроки Число  
Выбрать * ИзРегистрНакопления. ОстаткиНоменклатуры. ОстаткиИОбороты („Неделя)
  Активность   Булево  
  СчетДт   ПланСчетовСсылка. Имя. СчетДт  
  СчетКт   ПланСчетовСсылка. Имя. СчетКт  
  <Измерение>   Тип измерения  
  <Измерение>Дт   Тип измерения  
  <Измерение>Кт   Тип измерения  
  <Ресурс>   Число  
  <Ресурс>Дт   Число  
  <Ресурс>Кт   Число  
  <Реквизит>   Тип реквизита  
             

3.34.9. Значения субконто

Таблица хранит значения субконто записей регистра бухгалтерии. Связь с таблицей записей регистра бухгалтерии осуществляется через поля;
«Регистратор», «Номер строки». Поле «Корреспонденция» показывает, к какой части записи относится данное значение.


 

РегистрБухгалтерии.<Имя>. Субконто
Поле Тип
МоментВремени Момент времени
Период Дата
Регистратор Любая ссылка
НомерСтроки Число
ВидДвижения Вид движения бухгалтерии
ВидСубконто ПланВидовХарактеристикСсылка. Имя
Значение Тип субконто
Выбрать* ИзРегистрБухгалтерии. Основной. Субконто  
     

Практикум24____________________________________________

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

Выбрать* ИзРегистрБухгалтерии. Основной
Движения с субконто Виртуальная таблица. Позволяет получить информацию о записях регистра вместе со значениями субконто.  
Выбрать* ИзРегистрБухгалтерии. Основной. ДвиженияССубконто  
     

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

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

РегистрБухгалтерии.<Имя>. ДвиженияССубконто (<Начало периода>, <Конец периода>, <Условие>)  
Поле Тип
МоментВремени Момент времени
Период Дата
Регистратор Любая ссылка
НомерСтроки Число
Активность Булево
СчетДт ПланСчетовСсылка. Имя. СчетДт
СубконтоДт<№ > Значение субконто
ВидСубконто Дт<№ > ПланВидовХарактеристикСсылка. Имя
СчетКт ПланСчетовСсылка. Имя. СчетКт
СубконтоКт<№ > Значение субконто
ВидСубконтоКт<№ > ПланВидовХарактеристикСсылка. Имя
<Измерение> Тип измерения
<Измерение>Дт Тип измерения
<Измерение>Кт Тип измерения
<Ресурс> Число
<Ресурс>Дт Число
<Ресурс>Кт Число
<Реквизит> Тип реквизита
Выбрать* ИзРегистрБухгалтерии. Основной. Остатки  
       

3.34.10. Обороты

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

Выбрать* ИзРегистрБухгалтерии. Основной. Обороты

3.34.11. Остатки и обороты

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

Выбрать * Из РегистрБухгалтерии. Основной. остаткиИОбороты

3.34.12. Обороты Дт Кт

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

3.34.13. Конструктор запросов, конструктор выходных форм

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

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

Выбрать * ИзРегистрБухгалтерии. Основной. ОборотыДтКт  
Выбрать * ИзРегистрБухгалтерии. Основной. остаткиИОбороты („Неделя)

Создадим отчет, дадим ему имя «Закупки» и сразу же перейдем на закладку «макеты». Используя кнопку «Конструкторы» вызовем нужный нам конструктор. В открывшейся сразу после этого форме можно определить имя выходной формы отчета.

Далее на закладке «таблицы и поля» необходимо выбрать поля запроса.

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

На закладке связи требуется определить вид и условие соединения двух таблиц:

В случае, если отмечен левый флажок «Все», то используется «Левое соединение», и первой таблицей является «таблица № 1», если только правое «Все», то также используется «Левое соединение», но первой

таблицей является «Таблица № 2». Если отмечены оба флажка, то это «Полное соединение», если оба сброшены — это «Внутреннее».

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

На любом этапе работы в конструкторе, используя кнопку «Запрос», можно посмотреть текст получающегося запроса.

Далее на закладке «условия» можно определять отборы, накладываемые на запрос. На закладке «дополнительно» указывать ряд дополнительных признаков (первые, различные, для изменения). На закладке «Объединения/Псевдонимы» настраивать объединения и указывать псевдонимы и т. д. В нашем случае будем далее настраивать только раздел «Итоги».

В результате конструктор создаст выходную форму, пропишет необходимые процедуры (как это делается указываем на последней закладке конструктора форм).

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

Процедура СформироватьНажатие (Элемент) ТабДок = Новый ТабличныйДокумент; ОтчетОбъект. Закупки (ТабДок); ТабДок. ТолькоПросмотр = Истина; ТабДок. ОтображатьСетку = Ложь; ТабДок. ОтображатьЗаголовки = Ложь; ТабДок. Показать (); КонецПроцедуры

В модуле отчета:

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

Практикум25 __________________________________________

1. Создайте с помощью конструктора отчет по продажам товаров. В нем после установки периода должна содержаться следующая информация: какой покупатель, какие товары, в каком количестве и на какую сумму закупал.

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

3. Создайте отчет, который позволяет смотреть продажи товаров. Но в нем помимо сумм продажи фигурирует себестоимость и прибыль. Себестоимость единицы товара берется из реквизита «ЦенаПокупки» справочника «Номенклатура»

3.34.14. Способы обхода результатов запроса, группировки в табличном документе

В предыдущем примере в основном использовался линейный способ обхода результата (метод «Выбрать ()» вызывался без явного указания способа обхода). Кроме линейного существует еще иерархический обход и обход результата по группам. Для явного указания способа обхода первым параметром метода «Выбрать» необходимо указать значение системного перечисления «ОбходРезультатаЗапроса».

Определены возможные значения:

• Прямой

• ПоГруппировкам

• ПоГруппировкамСИерархией

Разбираться с порядком обхода будем на примере отчета «ПорядокОбхода»

У отчета необходимо определить два реквизита: НачПериода — тип «Дата» КонПериода — тип «Дата»

В диалоге предлагается (с использованием элемента формы «Панель») определить две страницы. На первой находятся элементы формы, связанные с реквизитами отчета, табличное поле (имя «тПоле», тип «ТаблицаЗначений»), поле выбора (имя «ОбходРезультата», тип «Произвольный»). На второй странице находится поле табличного документа (имя «тблРезультат»).

Текст модуля формы:

Процедура ВыполнитьНажатие (Элемент) ТабДок = ЭлементыФормы. тбл Результат; ТабДок. Очистить (); ВыполнитьОтчет (ТабДок, ЭлементыФормы. ТПоле, ОбходРезультата); ТабДок. ТолькоПросмотр = Истина; ТабДок. Показать (); КонецПроцедуры Процедура ВыбПериодНажатие (Элемент) НастройкаПериода = Новый НастройкаПериода; НастройкаПериода. УстановитьПериод (НачПериода, КонецДня (КонПериода)); НастройкаПериода. РедактироватьКакИнтервал = Истина; НастройкаПериода. РедактироватьКакПериод = Истина; НастройкаПериода. ВариантНастройки = ВариантНастройкиПериода. Период; НастройкаПериода. Редактировать (); НачПериода = НастройкаПериода. ПолучитьДатуНачала (); КонПериода = НастройкаПериода. ПолучитьДатуОкончания (); КонецПроцедуры ЭлементыФормы. ОбходРезультата. СписокВыбора. Добавить (ОбходРезультатаЗапроса. ПрямоЙ, "Прямой"); ЭлементыФормы. ОбходРезультата. СписокВыбора. Добавить (ОбходРезультатаЗапроса. ПоГруппировкам, "По группировкам"); ЭлементыФормы. ОбходРезультата. СписокВыбора. Добавить (ОбходРезультатаЗапроса. ПоГруппировкамСИерархией, "По иерархии");  
Текст модуля отчета:  
ПроцедураВыдатьРекурсивно (ВыборкаДетальная, Знач Номер, ТабДок, Секция, ОбходРезультата) Номер=Номер+1; Пока ВыборкаДетальная. Следующий () Цикл Секция. Параметры. Наименование = ВыборкаДетальная. НаименованиеНоменклатуры; Секция. Параметры. Колво = ВыборкаДетальная. Количество; Секция. Параметры. Сумма = ВыборкаДетальная. Сумма; Секция. Параметры. ТипЗаписи = ВыборкаДетальная. ТипЗаписи (); Секция. Параметры, Уровень = ВыборкаДетальная. Уровень (); Секция. Параметры. Номер = Номер; ТабДок. Вывести (Секция, ВыборкаДетальная. Уровень ()); ВыборкаДетальная2 = ВыборкаДетальная. Выбрать (ОбходРезультата); ВыдатьРекурсивно (ВыборкаДетальная2, Номер, ТабДок, Секция, ОбходРезультата); КонецЦикла; КонецПроцедуры Процедура ВыполнитьОтчет (ТабДок, ТП, ОбходРезультата) Экспорт Перем ОбщиеИтогиСумма;
     

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

Перем ОбшиеИтогиКоличество; Макет = ПолучитьМакет ("ПрололжениеМакет"); Секция = Макет. ПолучитьОбласть ("Шалка"); Секция. Параметры. ПериодС = Формат (КонПериода, "ДЛФ-D"); Секция. Параметры. ПериодПо = Формат (КонПериода, "ДЛФ=D"); ТабДок. Вывести (Секция); Секция = Макет. ПолучитьОбласть ("Позиция"); Запрос = Новый Запрос; ТекстЗапроса = "ВЫБРАТЬ [Номенклатура, Номенклатура. Наименование НаименованиеНоменклатуры, Количество Количество, Сумма Сумма |ИЗ Документ. Приходная. Товары Где Ссылка. Дата Межлу &НачПериода И &КонПериода |УПОРЯДОЧИТЬ ПО Номенклатура. Наименование |ИТОГИ Сумма (Количество), Сумма (Сумма) ПО ОБЩИЕ, Номенклатура ИЕРАРХИЯ Запрос. Текст = ТекстЗапроса; Запрос. УстановитьПараметрС'НачПериола", НачПериода); Запрос. УстановитьПараметрС'КонПериода", КонецДня (КонПериола)); РезультатЗапроса = Запрос. Выполнить (); ТП. Значение=РезультатЗапроса. Выгрузить (); ТП. СоздатьКолонки (); ТабДок. НачатьАвтогруппировкуСтрок (); Номер=0; ВыборкаОсновная = РезультатЗапроса. Выбрать (ОбходРезультата); Пока ВыборкаОсновная. Следуюший () Цикл Секция. Параметры. Наименовакие = ВыборкаОсновная. НаименованиеНоменклатуры; Секция. Параметры. Колво = ВыборкаОсновная. Количество; Секция. Параметры. Сумма = ВыборкаОсновная. Сумма; Секция. Параметры. Номер = Номер; Секция. Параметры. ТипЗаписи = ВыборкаОсновная. ТипЗаписи (); Секция. Параметры. Уровень = ВыборкаОсновная. Уровень (); ТабДок. Вывести (Секция, ВыборкаОсновная. Уровень ()); ВыборкаДетальная = ВыборкаОсновная. Выбрать (ОбходРезультата); ВыдатьРекурсивно (ВыборкаДетальная, Номер, ТабДок, Секция, ОбходРезультата); КонецЦикла; ТабДок. ЗакончитьАвтогруппировкуСтрокО; | КонецПроцедуры



Поделиться с друзьями:


Дата добавления: 2014-11-29; Просмотров: 1017; Нарушение авторских прав?; Мы поможем в написании вашей работы!


Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет



studopedia.su - Студопедия (2013 - 2024) год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! Последнее добавление




Генерация страницы за: 0.008 сек.