Как сделать отчет в 1с по месяцам

Добавил пользователь Алексей Ф.
Обновлено: 10.09.2024

1С Управление торговлей 11 - отличный инструмент для анализа продаж предприятия. В данных целях используется отчет “Валовая прибыль”. С помощью этого отчета можно оценить, насколько грамотно и эффективно работают подразделения, менеджеры, либо филиалы. Чем эффективнее производство — тем выше валовая прибыль.

В верхней панели есть возможность выбрать Период, отфильтровать по Менеджеру и по подразделению.

Для настройки отчета выберите Вид: расширенный. По настройкам данного отчета : есть 4 вкладки

1. Отборы: можем выбрать конкретного менеджера, контрагента, филиал

2. Поля и сортировка: в левой части - можем назначить и добавлять поля, которые у нас будут участвовать в отборе; в правой части - сортировка, в данном примере у нас выставлена сортировка по валовой прибыли)

3. Оформление: можем сделать форматы, если мы пишем пользовательские поля, нужно не забывать в форматировании пользовательских полей указывать длину (если это у нас расчетное числовое поле, необходимо указывать точность, длину после запятой, иначе можно получить некрасивую табличку с огромным количеством знаков после запятой)

4. Структура: на данном примере мы видим, что будет сформировано три таблицы. Мы можем отключать их либо добавлять новые. Нажимаем вверху панели “Добавить”, далее в меню строки выбираем структуру нашего отчета, то есть, как он будет сформирован, выбираем менеджера, контрагента и регистратор (документ подтверждающий продажу и себестоимость).

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

Приветствую. Продолжаем изучать объекты на дереве конфигурации и на очереди "Отчет" (Рисунок 1).

Создание отчета ничем не отличается от создания любого другого объекта дерева конфигурации: через контекстное меню или через значок плюсик.

Отчет - это объект дерева конфигурации, который предназначен для обработки данных и вывода их в виде, удобном пользователю.

Как и в жизни, отчеты хранят какую-то информацию, так и наши отчеты будут хранить информацию, которую хочет видеть пользователь.

Приступим к созданию отчета. Перед нами стоит задача: необходимо вывести список всех сотрудников по предприятию.

Добавляем отчет и называем его "Список сотрудников" (Рисунок 2).

Теперь необходимо нажать на кнопку "Открыть схему компоновки данных" (Рисунок 3).

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

В открывшемся окне нажимаем "Готово"(Рисунок 4).

В следующем окне нужно подготовить все для создания отчета. Для этого создадим запрос (Рисунок 5).

После этого переходим в низ открывшегося окна и нажимаем кнопку "Конструктор запроса" (Рисунок 6).

В открывшемся окне нужно выбрать тот объект, по которому вы хотите сделать отчет, в данном случае нас интересует отчет по сотрудникам, значит выбираем справочник "СписокСотрудников" (Рисунок 7).

Перетаскиваем справочник (или двойным нажатием или на стрелочку вправо, выделив справочник) во второй столбец (Рисунок 7).

Теперь необходимо раскрыть элементы этого справочника и выбрать там те, которые мы хотим видеть в отчете (Рисунок 8). Перетаскиваем в столбец "Поля" нужные элементы (Рисунок 8).

После этого нажимаем "Ок" и в поле "" появится запрос (Рисунок 9).

Переходим на вкладку "Настройки" (Рисунок 10).

На этой вкладке нужно создать сам отчет (Рисунок 11). Создаем группировку.

В новом окне нажимаем "Ок", ничего не меняя (Рисунок 12).

После этого идем вниз и перетаскиваем нужные поля (Рисунок 13).

В итоге у вас должно получиться так (Рисунок 14).

После этого закроем все окна, отчет готов, но нужно добавить его в одну из подсистем, иначе пользователь не сможет им пользоваться (Рисунок 15).

Запустим пользователя, перейдем в подсистему и найдем наш отчет (Рисунок 16).

Как видите, отчета нет. Нужно нажать кнопку "Сформировать" и отчет появится (Рисунок 17).

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

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

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

Самый простой и быстрый способ создать отчет в 1С это воспользоваться СКД (Системой компоновки данных). Это очень популярный а самое главное очень удобный инструмент, по сути для того чтобы создать отчет с помощью СКД даже не нужно знать 1С программирование. Так как у системы компоновки данных есть графический интерфейс. В сегодняшней статьи поговорим о добавление периодов. Т.е добавим возможность отбора за определенный промежуток времени. Данная возможность должны быть в любом нормальном отчете.

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

Добавление периода в СКД

1С СКД Период

Тоже самое можно сделать просто дописав в запрос вот такую строчку.

ГДЕ
АктОбОказанииУслуг.Дата МЕЖДУ &ДатаНачала И &ДатаОкончания

АктОбОказанииУслуг.Дата — ваш документ

Как в 1С добавить период в отчет сделанный с помощью СКД

Добавление периода в СКД

1С СКД настройка периода

1С СКД отбор по периоду

Но лучше сделать это в самих настройках СКД.

1С СКД добавить период на форму

В этом случае параметры будут отображаться у всех пользователей которые будут открывать отчет.

1С СКД как добавить отбор по периоду

Вот так добавляется период в СКД. Как сами видите все достаточно просто и понятно, самое главное не торопиться и внимательно читать названия пунктов.


1С 8.3 Разбить период по подпериодам (месяц, неделя, день, квартал)


Аналоги типовой функции РазложитьНаПериоды (запросом или через цикл). Методы использовались для разбиения периода в нетиповых решениях. Делят любой период (между начальной и конечной датой) по нужным отрезкам: месяц, неделя, день, квартал.

&НаСервере
Функция ЗапросомРазбитьПериодНаПодпериоды ( Знач НачДата , Знач КонДата )

// например НачДата 05.05.2021, КонДата 27.09.2021

Запрос . УстановитьПараметр ( "НачДата" , НачДата );
Запрос . УстановитьПараметр ( "КонДата" , КонДата );

РезультатЗапроса = Запрос . Выполнить ();
Если Не РезультатЗапроса . Пустой () Тогда // Такая проверка рекомендуется фирмой 1С
Записи = РезультатЗапроса . Выбрать ( ОбходРезультатаЗапроса . ПоГруппировкам , "Период" , "ВСЕ" );

// Обход результата запроса по каждой записи в полученной выборке
Пока Записи . Следующий () Цикл
Сообщить ( Записи . Период );
// 01.05.2021 0:00:00
// 01.06.2021 0:00:00
// 01.07.2021 0:00:00
// 01.08.2021 0:00:00
// 01.09.2021 0:00:00

//Год_Даты = СокрЛП(Год(Записи.Период)); // 2 021
//Месяц_Даты = СокрЛП(Месяц(Записи.Период)); // 9
//Сообщить(Год_Даты+" "+Месяц_Даты);
КонецЦикла;

Иначе // Например: Сообщить("Данные отсутствуют!");
КонецЕсли;

&НаСервере
Функция РазбитьПериодНаПодпериоды ( Знач НачДата , Знач КонДата , УровеньДетализации )

ТаблицаДат = Новый ТаблицаЗначений ;
ТаблицаДат . Колонки . Добавить ( "НачДата" );
ТаблицаДат . Колонки . Добавить ( "КонДата" );

ПервыйОбходЦикла = Истина;
Если УровеньДетализации = "День" Тогда


Пока НачДата КонДата Цикл
Если ПервыйОбходЦикла Тогда
Если КонецДня ( НачДата ) >= КонДата Тогда
НоваяСтрока = ТаблицаДат . Добавить ();
НоваяСтрока . НачДата = НачДата ;
НоваяСтрока . КонДата = КонДата ;
Прервать;
Иначе
НоваяСтрока = ТаблицаДат . Добавить ();
НоваяСтрока . НачДата = НачДата ;
НоваяСтрока . КонДата = КонецДня ( НачДата );
КонецЕсли;
Иначе
Если КонецДня ( НачДата ) >= КонДата Тогда
НоваяСтрока = ТаблицаДат . Добавить ();
НоваяСтрока . НачДата = НачалоДня ( НачДата );
НоваяСтрока . КонДата = КонДата ;
Прервать;
Иначе
НоваяСтрока = ТаблицаДат . Добавить ();
НоваяСтрока . НачДата = НачалоДня ( НачДата );
НоваяСтрока . КонДата = КонецДня ( НачДата );
КонецЕсли;
КонецЕсли;
НачДата = КонецДня ( НачДата )+ 1 ;
ПервыйОбходЦикла = Ложь;
КонецЦикла;

Пока НачДата КонДата Цикл
Если ПервыйОбходЦикла Тогда
Если КонецНедели ( НачДата ) >= КонДата Тогда
НоваяСтрока = ТаблицаДат . Добавить ();
НоваяСтрока . НачДата = НачДата ;
НоваяСтрока . КонДата = КонДата ;

Прервать;
Иначе
НоваяСтрока = ТаблицаДат . Добавить ();
НоваяСтрока . НачДата = НачДата ;
НоваяСтрока . КонДата = КонецНедели ( НачДата );
КонецЕсли;
Иначе
Если КонецНедели ( НачДата ) >= КонДата Тогда
НоваяСтрока = ТаблицаДат . Добавить ();
НоваяСтрока . НачДата = НачалоНедели ( НачДата );
НоваяСтрока . КонДата = КонДата ;
Прервать;
Иначе
НоваяСтрока = ТаблицаДат . Добавить ();
НоваяСтрока . НачДата = НачалоНедели ( НачДата );
НоваяСтрока . КонДата = КонецНедели ( НачДата );
КонецЕсли;
КонецЕсли;
НачДата = КонецНедели ( НачДата )+ 1 ;
ПервыйОбходЦикла = Ложь;
КонецЦикла;


Пока НачДата КонДата Цикл
Если ПервыйОбходЦикла Тогда
Если КонецМесяца ( НачДата ) >= КонДата Тогда
НоваяСтрока = ТаблицаДат . Добавить ();
НоваяСтрока . НачДата = НачДата ;
НоваяСтрока . КонДата = КонДата ;
Прервать;
Иначе
НоваяСтрока = ТаблицаДат . Добавить ();
НоваяСтрока . НачДата = НачДата ;
НоваяСтрока . КонДата = КонецМесяца ( НачДата );
КонецЕсли;
Иначе
Если КонецМесяца ( НачДата ) >= КонДата Тогда
НоваяСтрока = ТаблицаДат . Добавить ();
НоваяСтрока . НачДата = НачалоМесяца ( НачДата );
НоваяСтрока . КонДата = КонДата ;
Прервать;
Иначе
НоваяСтрока = ТаблицаДат . Добавить ();
НоваяСтрока . НачДата = НачалоМесяца ( НачДата );
НоваяСтрока . КонДата = КонецМесяца ( НачДата );
КонецЕсли;
КонецЕсли;
НачДата = КонецМесяца ( НачДата )+ 1 ;
ПервыйОбходЦикла = Ложь;
КонецЦикла;


Пока НачДата КонДата Цикл
Если ПервыйОбходЦикла Тогда
Если КонецКвартала ( НачДата ) >= КонДата Тогда
НоваяСтрока = ТаблицаДат . Добавить ();
НоваяСтрока . НачДата = НачДата ;
НоваяСтрока . КонДата = КонДата ;
Прервать;
Иначе
НоваяСтрока = ТаблицаДат . Добавить ();
НоваяСтрока . НачДата = НачДата ;
НоваяСтрока . КонДата = КонецКвартала ( НачДата );
КонецЕсли;
Иначе
Если КонецКвартала ( НачДата ) >= КонДата Тогда
НоваяСтрока = ТаблицаДат . Добавить ();
НоваяСтрока . НачДата = НачалоКвартала ( НачДата );
НоваяСтрока . КонДата = КонДата ;
Прервать;
Иначе
НоваяСтрока = ТаблицаДат . Добавить ();
НоваяСтрока . НачДата = НачалоКвартала ( НачДата );
НоваяСтрока . КонДата = КонецКвартала ( НачДата );
КонецЕсли;
КонецЕсли;
НачДата = КонецКвартала ( НачДата )+ 1 ;
ПервыйОбходЦикла = Ложь;
КонецЦикла;

Читайте также: