Сборник лабораторных работ для студентов учебных заведений, изучающих программирование в системе С: Предприятие



бет47/63
Дата18.12.2022
өлшемі36,29 Mb.
#57878
түріЛабораторная работа
1   ...   43   44   45   46   47   48   49   50   ...   63
Определение
Регистр накопления – это такая итоговая таблица, которая может автоматически считать какие-либо элементы, например, денежные средства, материалы (дополнительно про регистры накопления можно прочитать здесь: https://v8.1c.ru/platforma/registr-nakopleniya/).
Создайте регистр накопления «ОстаткиТоваров» вида «Остатки».
Вид регистра «Остатки» позволяет настроить данный регистр таким образом, что какие-то объекты будут вносить в него данные, а какие-то, наоборот, вычитать. Таким образом и получается хранение остатков.

Для формирования структуры регистра переходим на вкладку «Данные».
Структура регистра накопления отличается от структуры документа.
Заполнение данного окна проще всего начинать с добавления ресурса. Чтобы понять, что использовать в качестве ресурса, нужно задать вопрос: «Что мы хотим накапливать/считать в данном регистре?». Мы хотим считать количество. Следовательно, количество и будет являться ресурсом. Тип данного реквизита – «Число».

Чтобы разобраться с измерением, необходимо понять, в разрезе чего мы хотим считать количество. Мы хотим считать количество (чего?) товаров. Значит, в качестве измерения следует добавить реквизиты «Товар» (тип – «СправочникСсылка.Товары»).

Чтобы регистр накопления заработал, нужно сделать следующее:
1. Определить источники данных, которые должны попадать в регистр (определить документы-регистраторы).
2. Описать, каким образом данные из документа-регистратора должны попадать в регистр.
Укажем документы, из которых будут формироваться движения в созданный регистр накопления. Для этого перейдем на вкладку «Регистраторы» и отметим галочкой созданные нами документы.

Далее для каждого документа-регистратора требуется сформировать движения в созданный регистр накопления.
Откройте окно редактирования объекта «ЗакупкаТоваров» на вкладке «Движения». Убедитесь, что галочка у регистра активна и воспользуйтесь конструктором движений.

Окно конструктора движений состоит из нескольких областей:

  • Левая верхняя область позволяет переключаться между регистрами (один документ может делать движения сразу в несколько разных регистров).

  • Правая верхняя область описывает реквизиты документа-регистратора. Чтобы отобразить в данной области реквизиты табличной части, нужно выбрать ее в соответствующем поле.

  • В нижней части окна описаны реквизиты регистра накопления. Нужно заполнить поле «Выражение» реквизитами документа.

Поскольку закупка товара должна увеличивать количество товаров на складе, то тип движения регистра необходимо выбрать «Приход». Регистр будет обозначаться знаком «+» (плюс).
Если все было сделано правильно, имена и типы реквизитов совпадают, то при нажатии на кнопку «Заполнить выражения» реквизиты регистра заполнятся автоматически. Если этого не произошло, то заполните поле «Выражение» вручную, путем выбора соответствующих реквизитов документа.

При нажатии на кнопку «ОК» система сформирует программный код, который при успешном проведении документа произведет движения в регистр накопления, то есть скопирует данные из документа в регистр накопления.

По аналогии сформируйте движения для второго документа «ПродажаТоваров», изменив вид движения на «Расход».
В результате в модуле объекта документа «ПродажаТоваров» вы получите аналогичный программный код, который отличается только видом движения.

Для визуализации работы регистра накопления нужно создать отчет.
Определение
Отчет – это такой объект конфигурации, который формирует данные в понятном для пользователя виде, например, в виде таблицы или диаграммы (подробнее про отчеты можно прочитать здесь: https://v8.1c.ru/platforma/otchet/).
Создадим новый отчет «ОстаткиТоваров». Для наполнения отчета воспользуемся конструктором схемы компоновки данных.


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

При построении запросов используется собственный язык запросов 1С. Их можно писать вручную или воспользоваться конструктором запросов.

Открывается конструктор запроса. Эта вкладка имеет три части:

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

  • Посередине находятся таблицы – это выбранные нами объекты, откуда мы хотим получать данные для конкретного отчета.

  • Справа поля – это те значения (поля), которые мы хотим увидеть в отчете.

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

По завершении работы с конструктором нажмите на кнопку «ОК». Система сформирует следующий запрос:

Измените заголовок у поля «КоличествоОстаток» на «Количество».

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

Чтобы у пользователя была возможность выбирать только даты, без указания секунд, нужно настроить формат редактирования параметра «ДатаОтчета».



После нажатия кнопки «ОК» нужно настроить стандартный параметр «Период» для корректного учета последней секунды дня:

  • во-первых, этот параметр должен быть недоступен пользователю, так как носит вычислительный характер;

  • во-вторых, для корректного расчета требуется написать выражение для стандартного параметра «Период»:



Достарыңызбен бөлісу:
1   ...   43   44   45   46   47   48   49   50   ...   63




©emirsaba.org 2024
әкімшілігінің қараңыз

    Басты бет