Допустим, нам нужно построить отчёт об ожидаемых оплатах от клиентов таким образом, чтобы эти оплаты были сгруппированы по месяцам. Заголовки колонок отчёта должны выглядеть так: "Июль 2017", "Август 2017", "Сентябрь 2017".
В качестве источника данных для отчёта мы используем запрос. Уже в запросе мы получаем данные, сгруппированные по месяцам, с помощью конструкции:
Весь запрос (в несколько сокращённом виде, для наглядности) выглядит так:
На вкладке "Наборы данных" настроим формат поля "ПериодПлатежа":
В колонке "Оформление" зададим формат даты таким образом: ДФ=’ММММ гггг’. Это даст нужное нам отображение месяца, вида "Июль 2017".
Поле "КОплате" мы делаем ресурсом в нашем отчёте, а настройки отчёта выполняем так:
Всё бы хорошо, но при формировании отчёта наблюдаем такую вещь: если в каком-то месяце не ожидаются оплаты клиентов, то этот месяц не попадает в колонки отчёта. То есть, за колонкой "Август 2017" может идти колонка "Октябрь 2017". Чтобы в отчёт попал и "Сентябрь 2017", в котором не ожидается оплат, нужно настроить тип дополнения для группировки "ПериодПлатежа". Делается это в свойствах группировки. Тип дополнения выбираем "Месяц". После этого в отчёт попадут все месяцы по порядку.
Часто перед программистом 1с возникает следующая задача: в запросе требуется взять остатки регистра бухгалтерии или накопления по периодам.
Пример: Есть определенный временной интервал (полгода к примеру) и на начало каждого месяца нужно получить остатки по дебиторской задолженности с разрезами Организация, Контрагент, Договор контрагента.
Казалось бы сделать это внутри запроса несложно: нужно взять виртуальную таблицу ОстаткиИОбороты, выбрать разбивку на нужные периоды и все. Но такой метод не сработает из-за одной неприятной особенности ОстатковИОборотов, в ней не хранятся остатки по периодам для тех позиций, по которым не было оборотов.
Пример: Контрагент Иванов должен нам 100 рублей на начало года, в январе, феврале и марте его задолженность оставалась неизменной. Берем таблицу Остатки и обороты регистра бухгалтерии Хозрасчетный по счету 62 за первый квартал, в периодичности указываем значение Месяц. Выполняем запрос и получаем следующий результат:
Месяц | Нач. остаток | Приход | Расход | Кон. остаток |
---|---|---|---|---|
Январь | 100 | 100 | ||
Март | 100 | 100 |
Как мы видим взялись остатки только крайних периодов, а остатки февраля выпали. Что бы решить данную проблему, остатки на каждый период придется рассчитывать.
Ниже приведен запрос для конфигурации Бухгалтерия 2.0 (он также заработает для Бухгалтерии 3.0 если в запросе заменить регистр РегламентированныйПроизводственныйКалендарь на регистр ДанныеПроизводственногоКалендаря) в котором считаются остатки с разбивкой по месяцам по счету 62.
Разберем приведенный запрос по пакетам:
Здесь мы используя регистр РегламентированныйПроизводственныйКалендарь получаем все нужные нам периоды.
ОстаткиНаНачало
Получаем остатки на начало выбранного периода, а так же если остатков не было, а обороты за весь период были, добавляем нулевые остатки.
ОборотыЗаПериод
Получаем обороты за весь период с разбивкой по месяцам.
РасчетОстатковНаНачало
Сводим в одну таблицу начальный остаток и обороты за каждый месяц для расчета начальных остатков по периодам.
РасчетОстатковНаКонец
Сводим в одну таблицу начальный остаток и обороты за каждый месяц для расчета конечных остатков по периодам.
ОбщиеОстатки
Рассчитываем начальные и конечные остатки по периодам путем прибавления оборотов.
• 1С8 примеры запросов 1С8. » 1С8 пример запроса. Функция ПЕРИОДАМИ().
Пример использования функции ПЕРИОДАМИ( , &Дата1, &Дата2) в запросе 1с.
В консоле запросов это выглядит так:
В конструкторе запросов настройка
". ИЗ РегистрНакопления.ПартииТоваровНаСкладах.ОстаткиИОбороты(&Дата1, &Дата2, День, ДвиженияИГраницыПериода, )
КАК ПартииТоваровНаСкладахОстаткиИОбороты "
выглядит как
Предлагаем решение Ваших задач 1С.
Внедрение 1С:
- Организуем вам индивидуальное экспресс обучение программам 1С.
- Мы поможем Вам начать работать с программами 1С.
- Мы поможем Вам настроить ваши отчеты в 1С.
- Установим и настроим 1С под ваши задачи.
- Поможем сделать ввод начальных остатков по складам и контрагентам
- Перенесем данные из старых систем.
- Подскажем как избежать ошибок.
Доработка и сопровождение 1С:
- Доработаем существующие или создадим новые печатных формы и документы.
- Разработаем внешние отчеты по Вашим требованиям.
- Напишем внешние обработоки по загрузке документов из учетных (торговых) систем в бухгалтерию.
- Разработаем приложения для выгрузки данных на сайты.
Ориентировочная стоимость работ программиста 1С : 500 р. за 1 час работы.
Звоните: 8 916 710 83 51 Ольга
© j008.ru 2014 Обратная связь: j008@j008.ru