Почему отчет Ведомость по работам в 1С получается пустым и как его правильно настроить

Программист 1С v8.3 (Управляемые формы) Управленческий учет IT и автоматизация бизнеса
← На главную

При разработке конфигурации с нуля начинающие программисты часто сталкиваются с ситуацией: база создана, справочники заполнены, документы введены, но при попытке сформировать отчет "Ведомость по работам" на экране отображается пустая форма. Давайте вместе разберем, почему так происходит, проанализируем типичные ошибки и составим алгоритм правильной реализации задачи по учету выполненных работ и расчету зарплаты.

Выясняем причину: почему отчет не выводит данные

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

  1. Документы не проведены. В системе 1С простое нажатие кнопки «Записать» не создает записей в регистрах. Чтобы данные попали в отчет (который обычно строится по регистрам), документ должен быть «Проведен». Проверьте иконку документа в списке: на ней должна быть зеленая галочка.
  2. Отсутствие ресурсов в СКД. Перейдем в конструктор схемы компоновки данных. Если на закладке "Настройки" в разделе "Выбранные поля" пусто, отчет не будет знать, какие именно колонки выводить, даже если запрос написан верно.
  3. Не определены ресурсы на вкладке "Ресурсы". Если мы хотим видеть итоги по количеству или сумме, эти поля обязательно должны быть добавлены на вкладку «Ресурсы» с указанием функции Сумма. Без этого система не сможет сгруппировать данные по сотрудникам или видам работ.
  4. Неправильный период. Проанализируем настройки периода в отчете. Если документы созданы будущим числом или в настройках отчета указан период, в который не попадают даты документов, отчет будет пустым.

Проектируем правильную архитектуру базы данных

Чтобы отчет "Ведомость по работам" работал корректно и быстро, мы не должны строить его напрямую по документам. Правильный подход в 1С — использование регистров. Рассмотрим структуру объектов, которые нам понадобятся:

Справочники: нам необходимы Сотрудники и ВидыРабот. Это аналитика, по которой мы будем группировать данные.

Регистр накопления: создадим регистр ВыполненныеРаботы с видом «Обороты». В Измерения добавим Сотрудник и ВидРаботы. В Ресурсы добавим Количество и Сумма.

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

Пример кода для записи данных в регистр накопления:


Процедура ОбработкаПроведения(Отказ, Режим)
    // Удаляем старые записи регистра, если документ перепроводится
    Движения.ВыполненныеРаботы.Записывать = Истина;
    Движения.ВыполненныеРаботы.Очистить();
    
    Для Каждого ТекСтрокаРаботы Из ТабличнаяЧастьРаботы Цикл
        Движение = Движения.ВыполненныеРаботы.Добавить();
        Движение.Период = Дата;
        Движение.Сотрудник = ТекСтрокаРаботы.Сотрудник;
        Движение.ВидРаботы = ТекСтрокаРаботы.ВидРаботы;
        Движение.Количество = ТекСтрокаРаботы.Количество;
        Движение.Сумма = ТекСтрокаРаботы.Сумма;
    КонецЦикла;
КонецПроцедуры

Создание отчета Ведомость по работам через СКД

Теперь, когда у нас есть данные в регистре, приступим к созданию самого отчета. Рассмотрим пошагово настройку СКД:

  1. Создание набора данных: В схеме добавим новый «Набор данных - запрос». В тексте запроса лучше всего обращаться к виртуальной таблице регистра накопления РегистрНакопления.ВыполненныеРаботы.Обороты. Это обеспечит получение готовых сумм за выбранный период.
  2. Связи с ценами (если нужно): Если в задании требуется расчет зарплаты по расценкам, мы можем подключить РегистрСведений.РасценкиРабот. В запросе выполним Левое Соединение данных регистра оборотов с данными регистра сведений по полю ВидРаботы.
  3. Настройка полей: На закладке «Ресурсы» выберем Количество и Сумма. На закладке «Настройки» создадим структуру отчета.

Проанализируем рекомендуемую структуру группировок для "Ведомости":

Типичная ошибка: Отчет не сохранен в конфигурации

Посмотрим на ситуацию, описанную в теме форума: пользователь утверждает, что создал отчет, но при открытии базы другим человеком отчетов нет вообще. Это происходит по двум причинам:

1. Отчет был создан как Внешний отчет (файл .erf) и не был включен в состав метаданных конфигурации. Чтобы отчет был внутри базы, его нужно создавать в дереве объектов конфигурации в ветке "Отчеты".

2. Не было выполнено Обновление конфигурации базы данных. После внесения любых изменений (создания отчета или документа) необходимо нажать клавишу F7 или синий цилиндр на панели инструментов в Конфигураторе. Если этого не сделать, в режиме "1С:Предприятие" вы будете видеть старую версию программы без ваших изменений.

Рекомендации по обучению

Для более глубокого понимания того, как работают виртуальные таблицы и механизмы компоновки данных, мы рекомендуем ознакомиться с курсом «1С:Предприятие 8.3. Практическое пособие разработчика» под авторством М.Г. Радченко. Там подробно разбирается именно этот пример — создание базы для учета услуг и работ с нуля. Также обратите внимание на работу с объектом РегистрНакопления, так как именно он является фундаментом для построения любых ведомостей в системе 1С.

← На главную