6Глава Концепция управляемого приложения
Скачать 6.74 Mb.
|
Глава 12. Запросы к регистрам бухгалтерии 12.1. Регистры-источники данных для запроса Извлечение информации из регистров бухгалтерии обычно производится с помощью запросов. Для этого система 1С:Предприятие 8 предоставляет в распоряжение разработчику несколько таблиц-источников данных для запроса. Каждая таблица-источник предоставляет свой набор полей. Некоторые таблицы имеют параметры, которые позволяют наложить ограничение на выборку, а также задать периодичность. Основная таблица записей. Доступ к записям регистра бухгалтерии (проводкам). Доступна вся информация о проводке, кроме субконто. Поля таблицы: o <Измерения> o <Реквизиты> o <Ресурсы> o Активность o ВидДвижения o МоментВремен o НомерСтроки o Период o Регистратор o Счет ДвиженияССубконто. Доступ к записям регистра бухгалтерии с учетом 271 субконто. Является расширением предыдущей таблицы. Поля таблицы: o <Измерения> o <Реквизиты> o <Ресурсы> o Активность o ВидСубконто<Номер субконто> o МоментВремен o НомерСтроки o Период o Регистратор o Субконто<Номер субконто> o Счет ЗначенияСубконто. Доступ к значениям субконто. Обычно эта таблица соеди- няется в запросе с какой-нибудь другой таблицей. Поля таблицы: o ВидСубконто o Значение o МоментВремен o НомерСтроки o Период Остатки. Получение остатков по счетам, измерениям и субконто. Поля таблицы: <Имя измерения> <Имя Ресурса>Остаток <Имя Ресурса>ОстатокДт <Имя Ресурса>ОстатокКт <ИмяРесурса>РазвернутыйОстатокДт <ИмяРесурса>РазвернутыйОстатокКт Субконто<Номер субконто> Счет Обороты. Получение оборотов по счетам и между счетами, а также по измерениям и субконто. Поля таблицы: o <Имя измерения> o <ИмяРесурса>Оборот o <ИмяРесурса>ОборотДт o <ИмяРесурса>ОборотКт o КорСубконто<Номер субконто> o КорСчет o НомерСтроки o Период o Регистратор o Субконто<НомерСубконто> o Счет 272 ОстаткиИОбороты. Получение начальных и конечных остатков, а также оборо- тов за период по счетам, измерениям и субконто. Поля таблицы: <Имя измерения> <ИмяРесурса>КонечныйОстаток <ИмяРесурса>КонечныйОстатокДт <ИмяРесурса>КонечныйОстатокКт <ИмяРесурса>КонечныйРазвернутыйОстатокДт <ИмяРесурса>КонечныйРазвернутыйОстатокКт <ИмяРесурса>НачальныйОстаток <ИмяРесурса>НачальныйОстатокДт <ИмяРесурса>НачальныйОстатокКт <ИмяРесурса>НачальныйРазвернутыйОстатокДт <ИмяРесурса>НачальныйРазвернутыйОстатокКт <ИмяРесурса>Оборот <ИмяРесурса>ОборотДт <ИмяРесурса>ОборотКт НомерСтроки Период Регистратор Субконто<НомерСубконто> Счет ОборотыДтКт. Эта таблица существует только для регистров бухгалтерии с поддержкой корреспонденции. Она предназначена для получения дебетовых и кредитовых оборотов между счетами, измерениями и субконто. Поля таблицы: o <Имя измерения> o <Имя измерения>Дт o <Имя измерения>Кт o <ИмяРесурса>Оборот o <ИмяРесурса>ОборотДт o <ИмяРесурса>ОборотКт o НомерСтроки o Период o Регистратор o СубконтоДт<НомерСубконто> o СубконтоКт<НомерСубконто> o СчетДт o СчетКт 12.2. Примеры запросов к регистрам бухгалтерии Разберем на примерах, как извлекать из регистра бухгалтерии требуемую информацию. Реализуем некоторые стандартные бухгалтерские отчеты с помощью запросов. 273 Структура регистра бухгалтерии Ниже в примерах будет использован регистр бухгалтерии Хозрасчетный , поддерживающий корреспонденцию и имеющий следующую структуру: Измерения Организация балансовый Тип: СправочникСсылка. Организации Валюта Небалансовый Тип: СправочникСсылка.Валюты. Только для признака учета Валютный Ресурсы Сумма балансовый Тип: Число. Количество Небалансовый Тип: Число. Только для признака учета Количественный ВалютнаяСумма небалансовый Тип: Число. Только для признака учета Валютный Реквизиты ЖО Тип: Строка Движения без субконто Самой простой тип запросов - получение детальных записей регистра. Для этого используется основная таблица-источник регистра бухгалтерии. Обратите внимание, что для небалансовых измерений и ресурсов, а также для счета существуют поля с добавлением «Дт» и «Кт», например, ВалютаДт: |ВЫБРАТЬ |Период, //дата и время записи |Регистратор, НомерСтроки ,//документ и номер строки |Организация, //балансовое измерение Организация |СчетДт, СчетКт , //счета дебета и кредита |Сумма, //балансовый ресурс Сумма |ВалютаДт, ВалютаКт, //небалансовое измерение Валюта |ВалютнаяСуммаДт, ВалютнаяСуммаКт, //небалансовый ресурс |КоличествоДт, КоличествоКт, //небалансовый ресурс Количество |ВалютнаяСумма, |ЖО //реквизит записи ЖО |ИЗ РегистрБухгалтерии. Хозрасчетный Заметьте, что эта таблица не предоставляет информацию о субконто. Для этого предназначена следующая таблица. Движения с указанием субконто Теперь получим список движений регистра с субконто. Для этого нужно воспользоваться таблицей ДвиженияССубконто. Для демонстрации мы включим в результат поле ВидСубконтоДт1 и другие поля, содержащие информацию о субконто 274 по дебету и кредиту проводки. Это реализуется в следующем запросе: |ВЫБРАТЬ |Период , //дата и время записи |Организация , //балансовое измерение Организация |СчетДт, СчетКт, //счета дебета и кредита |Сумма, //балансовый ресурс Сумма |ВидСубконтоДт1, СубконтоДт1 , //вид и значение субконто 1 по дебету |СубконтоДт2, //субконто 2 по дебету |СубконтоКт1, СубконтоКт2 , //субконто 1 и 2 по кредиту |КоличествоДт КолДт, КоличествоКт КолКт , //небалансовый ресурс |ЖО //реквизит записи ЖО |ИЗ РегистрБухгалтерии. Хозрасчетный . ДвиженияССубконто Остатки по счетам Абсолютно необходимая информация для бухгалтера - остатки по счетам. Сформируем отчет, который будет показывать остатки по счетам для каждой организации и консолидированный остаток по счету. Для этого нам понадобится следующий запрос: |BЫБPATb |ОсновнойОстатки.Организация КАК Организация, |ОсновнойОстатки.Счет КАК Счет, |ОсновнойОстатки.СуммаОстаток КАК СуммаОстаток |ИЗ |РегистрБухгалтерии Хозрасчетный . Остатки КАК ОсновнойОстатки |УПОРЯДОЧИТЬ ПО |ОсновнойОстатки.Счет.Код |ИТОГИ СУММА(СуммаОстаток) ПО |Организация, |Счет Валютные остатки по счетам Так как в нашем регистре есть измерение Валюта, то возможно получить остатки по каждой валюте в разрезе счетов и организаций. Это можно сделать следующим запросом: |ВЫБРАТЬ |ОсновнойОстатки.Организация КАК Организация, |ОсновнойОстатки.Счет КАК, Счет, |ОсновнойОстатки.Валюта КАК Валюта, |ОсновнойОстатки.ВалютнаяСуммаОстаток КАК Остаток |ИЗ |РегистрБухгалтерии. Хозрасчетный . Остатки КАК ОсновнойОстатки |УПОРЯДОЧИТЬ ПО |ОсновнойОстатки.Счет.Код |ИТОГИ СУММА(Остаток) ПО |Организация, |Счет, 275 |Валюта Обороты по счетам Сформируем отчет, который покажет дебетовые и кредитовые обороты по счетам в разрезе организаций. Это можно сделать с использованием таблицы Обороты, задействуя поле Счет и измерение Организация. Следующий запрос это демонстрирует: |ВЫБРАТЬ |ОсновнойОбороты.Счет КАК Счет, |ОсновнойОбороты.Организация КАК Организация, |ОсновнойОбороты.СуммаОборотДт КАК ОборотДт, |ОсновнойОбороты.СуммаОборотКт КАК ОборотКт |ИЗ |РегистрБухгалтерии. Хозрасчетный . Обороты КАК ОсновнойОбороты |УПОРЯДОЧИТЬ ПО Счет.Код |ИТОГИ СУММА(ОборотДт), СУММА(ОборотКт) ПО |Счет, |Организация Обороты между счетами Отчет, показывающий обороты между счетами, можно сформировать на основе таблицы Обороты, используя поля Счет и КорСчет: |ВЫБРАТЬ |ОсновнойОбороты.Счет КАК Счет, |ОсновнойОбороты.КорСчет КАК КорСчет, |ОсновнойОбороты.СуммаОборот КАК СуммаОборот |ИЗ |РегистрБухгалтерии. Хозрасчетный . Обороты КАК ОсновнойОбороты |УПОРЯДОЧИТЬ ПО |Счет.Код, КорСчет.Код |ИТОГИ СУММА(СуммаОборот) ПО |Счет, |КорСчет Таблица Обороты также предоставляет поля Субконто и КорСубконто для того, чтобы получать обороты по субконто или между субконто. Параметры виртуальной таблицы Обороты позволяют указывать начало и конец периода, периодичность, условия по счетам и субконто. Оборотно-сальдовая ведомость Оборотно-сальдовая ведомость показывает остатки на начало и конец периода и обороты за период. Ее можно легко сформировать, используя виртуальную таблицу ОстаткиИОбороты: 276 |ВЫБРАТЬ |Счет КАК Счет, |СуммаНачальныйОстатокДт КАК НачОстДт, |СуммаНачальныйОстатокКт КАК НачОстКт, |СуммаОборотДт КАК ОборотДт, |СуммаОборотКт КАК ОборотКт, |СуммаКонечныйОстатокДт КАК КонОстДт, |СуммаКонечныйОстатокКт КАК КонОстКт |ИЗ | РегистрБухгалтерии. Хозрасчетный . ОстаткиИОбороты (&НачДата, |&КонДата) |УПОРЯДОЧИТЬ ПО |Счет.Код |ИТОГИ СУММА(НачОстДт), СУММА(НачОстКт), |СУММА(ОборотДт), СУММА(ОборотКт), |СУММА(КонОстДт), СУММА(КонОстКт) |ПО Счет Обратите внимание на параметры виртуальной таблицы НачДата и КонДата. Они задают определенный период, за который формируется оборотно-сальдовая ведомость. 12.3. Пример формирования отчета Задача. Сформировать отчет: «Ведомость безвозмездного поступления ТМЦ от организаций» за период с____ по _______ Поставщик Поступило материалов на сумму Поступило ОС на сумму Поступило денег на сумму Всего поступило от организации 1 2 3 4 5 Отчет должен иметь общие итоги по всем суммовым колонкам. Решение. 1. Анализ постановки задачи. Отчет будет строиться на следующих проводках, расположенных в регистре бухгалтерии «Хозрасчетный»: Дт 10 Кт 98 – поступление материалов; Дт 01 Кт 98 – поступление ОС; Дт 51 Кт 98 – поступление денег. Данные о поступлениях необходимо получить в разрезе контрагентов – поставщиков. Поставщики в указанных проводках присутствуют в качестве субконто счета 98, т.е. первого субконто кредита. Поэтому в качестве источника данных для отчета выбираем виртуальную таблицу ДвиженияССубконто. 2. Проект запроса. Для получения отчета, в котором каждый поставщик (сколько раз и какие виды ТМЦ он не поставлял за указанный период), должен присутствовать один раз, необходимо выполнить группировку по СубкнтоКт1. 277 Кроме того, поскольку данные в колонках 2,3,4 формируются из разных проводок, для размещения их на одной строке по поставщику будем в запросе использовать вычисляемые поля. 3. Реализация. Для разработки отчета используем СКД. Создаем новый объект конфигурации - отчет «БезвозмездноеПоступлениеТМЦ», помещаем его в подсистему «Бухучет» и заказываем СКД . В СКД добавляем новый набор данных «Запрос» (рис.12.1.) Рис.12.1. Формирование нового набора данных типа «Запрос» и запускаем конструктор запроса. В конструкторе выбираем таблицу-источник данных – виртуальную таблицу «ДвиженияССубконто», формируем поля таблицы (большинство из них - вычисляемые) , рис.12.2. Рис.12.2. Выбор источника данных, полей в конструкторе запроса На закладке «Группировка» сворачиваем результирующую таблицу по СубконтоКт1 (рис.12.3.) 278 Рис.12.3. Группировка числовых полей по полю «СубконтоКт1» На закладке «Объединения/псевдонимы» формируем псевдонимы полей ( рис.12.4.) и выходим из конструктора запроса Рис.12.4. Назначение псевдонимов для полей запроса В нижнем окне конструктора СКД получили текст запроса: ВЫБРАТЬ Хозрасчетный1ДвиженияССубконто.СубконтоКт1 КАК Организация, СУММА(ВЫБОР КОГДА Хозрасчетный1ДвиженияССубконто.СчетДт = &счет10 ТОГДА Хозрасчетный1ДвиженияССубконто.Сумма ИНАЧЕ 0 КОНЕЦ) КАК Материалы, СУММА(ВЫБОР КОГДА Хозрасчетный1ДвиженияССубконто.СчетДт = &счет01 ТОГДА Хозрасчетный1ДвиженияССубконто.Сумма ИНАЧЕ 0 КОНЕЦ) КАК ОС, СУММА(ВЫБОР КОГДА Хозрасчетный1ДвиженияССубконто.СчетДт = &счет51 ТОГДА Хозрасчетный1ДвиженияССубконто.Сумма ИНАЧЕ 0 КОНЕЦ) КАК ДенежныеСредства, СУММА(ВЫБОР 279 КОГДА Хозрасчетный1ДвиженияССубконто.СчетДт = &счет10 ТОГДА Хозрасчетный1ДвиженияССубконто.Сумма ИНАЧЕ 0 КОНЕЦ + ВЫБОР КОГДА Хозрасчетный1ДвиженияССубконто.СчетДт = &счет01 ТОГДА Хозрасчетный1ДвиженияССубконто.Сумма ИНАЧЕ 0 КОНЕЦ + ВЫБОР КОГДА Хозрасчетный1ДвиженияССубконто.СчетДт = &счет51 ТОГДА Хозрасчетный1ДвиженияССубконто.Сумма ИНАЧЕ 0 КОНЕЦ) КАК Всего ИЗ РегистрБухгалтерии.Хозрасчетный1.ДвиженияССубконто КАК Хозрасчетный1ДвиженияССубконто СГРУППИРОВАТЬ ПО Хозрасчетный1ДвиженияССубконто.СубконтоКт1 На закладке «Ресурсы» выбираем все числовые поля, по которым хотим получить общие итоги (рис.12.5.). Рис.12.5. Выбор ресурсов отчета На закладке «Параметры» определяем, какие параметры будут означиваться на форме отчета, а какие необходимо означить в СКД (рис.12.6.): Рис.12.6. Настройка параметров отчета Переходим на закладку «Настройки» , назначаем группировку отчета «Организация», а на закладке «Параметры» указываем, какие параметры необходимо поместить в пользовательский интерфейс (рис.12.7.) 280 Рис.12.7. Настройка параметров, помещаемых в пользовательский интерфейс Наконец, на закладке «Другие настройки» формируем заголовок отчета (рис.12.8.) Рис.12.8. Формирование заголовка отчета Отчет готов. Результат (рис.12.9.): 281 Рис.12.9. Вывод отчета в пользовательском режиме 12.4. Варианты заданий Выполнение работы состоит из следующих этапов: Создать новую подсистему «Лабораторная работа 9». Все новые объекты, созданные в данной работе, поместить в данную подсистему. Разработать отчет, форма которого – см. варианты заданий. 1. Для разработки отчета использовать СКД 2. Отчет должен иметь общие итоги. 3. Отчет должен иметь нестандартную расшифровку. Форму конкретизирующего отчета разработать самостоятельно. 4. Конкретизирующий отчет должен иметь возможность запускаться как автономный отчет (см. глава 10). Вариант 1 Ведомость оплаты поставщикам» за период с начало текущего года по____ Месяц Сумма оплаты по типам поставщиков Всего Сумма оплаты Юрлиц Сумма оплаты Физлиц Вариант 2 Ведомость продаж товаров за период с _____ по ________ Организация Товар Количество продаж Сумма продаж Сумма скидки 282 Отчет должен иметь промежуточные итоги по организациям «Итого по организации» Вариант 3 Ведомость сумм НДС продаж товаров за период с ___ по ___ Склад товар Сумма продажи Сумма НДС Отчет должен иметь промежуточные итоги по складам «Итого по складу» Вариант 4 Ведомость списания товара-брака за период с___ по ___ Сотрудник ТМЦ Количество Сумма Отчет должен иметь промежуточные итоги по сотрудникам «Итого по сотруднику» Вариант 5 Ведомость списания товара за период с ___ по___ Дата Сумма списанного товара Сумма списанного материала Всего Вариант 6 Ведомость начислений зарплаты и отчислений в ФСС за период с ___ по ___ Подразделение Сотрудник Сумма зарплаты Сумма отчислений в ФСС Отчет должен иметь промежуточные итоги по подразделениям «Итого по подразделению» Вариант 7 Ведомость поступлений ОС в подразделения организации за период с____ по _____ Подразделение Основное Средство Постав щик Сумма Амортизационная группа Отчет должен иметь промежуточные итоги по подразделениям «Итого по подразделению» Вариант 8 Ведомость начисления зарплаты по подразделениям за период с____ по _____ Подраздел ение Штатные Совместители ВСЕГО Сумма зарплаты Сумма НДФЛ Сумма зарплаты Сумма НДФЛ Сумма зарплаты Сумма НДФЛ Вариант 9 Ведомость поступлений денег на расчетные счета за проданный товар за период с____ по____» 283 Расчетный счет Покупатель Сумма оплаты от Юрлиц Сумма оплаты от Физлиц Отчет должен иметь промежуточные итоги по расчетным счетам «Итого по расчетному счету» Вариант 10 Ведомость поступления нематериальных активов за период с____ по______ Подразделение НМА Стоимость НМА Сумма отнесения на затраты Сумма принятия к учету Отчет должен иметь промежуточные итоги по подразделениям «Итого по подразделению» Вариант 11 Ведомость начисления зарплаты и материальной помощи сотрудника за период с_ по___ Расчетчик зарплаты Сотрудник Зарплата Материальная помощь Всего Отчет должен иметь промежуточные итоги по расчетчикам «Итого по расчетчику» Вариант 12 Обороты по кассе за период с_____ по _________ Дата Начальный остаток Приход Расход Конечный остаток Вариант 13 Обороты по кассе за период с_____ по _________ Кор. счет От кого/ кому Приход Расход В отчете должны быть сгруппированы сначала все данные о приходе, затем о расходе. Отчет должен иметь два промежуточных итога: «Итого приход», «Итого расхода». Вариант 14 Ведомость выплат из кассы сотрудникам с____ по_____ Подразделение Сотрудник Сумма выплаты зарплаты Сумма выплаты материальной помощи Всего Отчет должен иметь промежуточные итоги по подразделениям «Итого по подразделению» Вариант 15 Ведомость списаний материалов в производство» Подразделение_____________ 284 Подразде ление Продукция, для которой отпускается материал Материал Количество Сумма Отчет должен иметь промежуточные итоги по подразделениям «Итого по подразделению» Вариант 16 Ведомость поступлений денег в кассу за период с____ по______ Принято от Кор. счет Сумма Если кор. cчет не имеет субконто ( «принято от»), то поле «Принято от» остается пустым. Отчет должен иметь промежуточные итоги по полю “принято от» Вариант 17 Ведомость поступлений материалов по доверенностям за период с____ по____ Подотчетное пицо Поставщик Материал Количество Сумма Отчет должен иметь промежуточные итоги по полю “подотчетное лицо» Вариант 18 Ведомость расхода денег из кассы за период с____ по______ Получил Кор. счет Сумма Если кор. cчет не имеет субконто ( «Получил»), то поле «Получил» остается пустым. Отчет должен иметь промежуточные итоги по полю “Получил» Вариант 19 Ведомость взаимозачетов за период с____ по_____ Контрагент с долгом на сч. 60 Контрагент с долгом на сч. 62 Сумма взаимозачета НДС Имя Сумма долга до взаимозачета Имя Сумма долга до взаимозачета Вариант 20 Ведомость банковских платежей за период с____ по_________ Расчетн ый счет Получатель (организация ) Сумма платежа Ставка НДС В том числе сумма НДС Назначение Платежа Отчет должен иметь промежуточные итоги по полю “Расчетный счет» Вариант 21 285 Ведомость выдачи спецодежды работника за период с____ по_____ Склад Подотчетное лицо Спецодежда Количество Сумма Отчет должен иметь промежуточные итоги по полю “ Склад» Вариант 22 Ведомость списания спецодежды работника за период с____ по_____ Подотчетное лицо Спецодежда Количество Сумма Отчет должен иметь промежуточные итоги по полю “ Подотчетное лицо» Вариант 23 Ведомость возвратов от покупателя за период с_________по________ Покупатель Склад Товар Количество Стоимость Отчет должен иметь промежуточные итоги по полю “ Покупатель» Вариант 24 Ведомость продаж товаров по заявкам покупателей за период с____ по_____ со склада ______________________________ Покупатель Товар Количество Стоимость В том числе НДС Отчет должен иметь промежуточные итоги по полю “ Покупатель» Вариант 25 Ведомость отпуск материалов в производство по внутренним заказам от подразделений за период с_ по______ Склад Материал Количество Стоимость Отчет должен иметь промежуточные итоги по полю “ Склад» |