Runa
Администратор
Задача: составить сводную таблицу по каждому контрагенту на основе поступления/отпуска товара и прихода/расхода денег с получением текущего остатка.
Для решения будет использоваться форма баланса.
Составляем необходимую структуру проекта, состоящую из следующих объектов:
1. Контрагенты
2. Товары
3. Формы поступления и отпуска товара (форма связи с дочерним объектом состава поступления/отпуска)
4. Объекты прихода и расхода финансовых средств
Добавляем форму итогов на базе объекта клиентов для составления общего баланса с итоговым результатом. Условий по датам и по значениям в нём не будет - упрощённый вариант общего итога.
В конечном расчёте указывается итоговая формула сбора данных из результирующих полей.

В данной форме мы получили итоговый баланс, который даёт общий результат. Чтобы иметь возможность детализации по операциям с каждым контрагентом - надо использовать форму баланса.
На первой вкладке свойств, по общей схеме, задаются:
- имя формы;
- подгруппа (если надо);
- объект, для записей которого будет производится получение результата;
- условие отображения числа записей объекта.
Ниже расположена вкладка с настройкой основных свойств формы.
Для таблицы баланса обязательно определение типа операции, наличие её даты, а также суммы прихода и расхода. Пятое поле является расчётным.
Все эти графы могут быть переименованы пользователем по своему усмотрению. Например, графам "Приход" и "Расход" мы изменим имена на "Плюс" и "Минус".
Тип операции может быть скрыт, а для поля даты можно установить порядок сортировки: по возрастанию или убыванию. Расчётное поле баланса также можно скрыть свойством справа от него.
На нижней вкладке, из списка полей объекта, выбираются те, которые будут видны в списке записей формы. В нашем случае это только одно наименование клиента. Для каждого поля, аналогично как в форме связи, можно задать условие фильтрации, а также исходное значения фильтра или его значение из объекта пользователей (для сетевой работы).

На вкладке "Дополнительные поля" можно задать поля, которые будут содержать информацию из каждого объекта операций. Вернёмся к ним позже.
Сохранив форму, приступим к настройке объектов, из которых будет браться информация по операциям с контрагентом.
Переходим на вкладку "Объекты". По кнопке "Добавить" открывается окно, в котором для первого поля надо указать объект с операциями. После выбора нужного, если в нём несколько полей, содержащих ссылку на контрагента - выбираем нужное. Если ссылка только одна - она будет автоматически подставлена.
Имя объекта будет использовано для задания типа операции. Для остальных полей формы баланса активируются соответствующие поля для заполнения: "Дата", "Плюс" и "Минус". В них выбираются соответствующие типы (дата и число) из указанного объекта.
Если задано поле прихода ("Плюс"), то второе поле расхода ("Минус") блокируется, не позволяя использовать данный объект для расхода. Соответственно, задав расход - нельзя будет заполнить поле прихода.
Таким образом добавляем все объекты, имеющие ссылку на объект контрагентов и участвующие в расчёте баланса.

Теперь для каждого контрагента можно получить детализированный баланс по всем операциям, который может быть использован для сверки.
Результат каждой операции плюсуется или минусуется к предыдущему итоговому значению от последней операции. Итог будет в конце или в начале списка (в зависимости от настройки порядка сортировки для даты).


Теперь вернёмся к дополнительным полям в свойствах формы баланса.

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

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

Пример проекта в приложении.
В качестве второго примера приложен проект учёта доходов и расходов с итоговым балансом по валютам.

Для решения будет использоваться форма баланса.
Составляем необходимую структуру проекта, состоящую из следующих объектов:
1. Контрагенты
2. Товары
3. Формы поступления и отпуска товара (форма связи с дочерним объектом состава поступления/отпуска)
4. Объекты прихода и расхода финансовых средств
Добавляем форму итогов на базе объекта клиентов для составления общего баланса с итоговым результатом. Условий по датам и по значениям в нём не будет - упрощённый вариант общего итога.
В конечном расчёте указывается итоговая формула сбора данных из результирующих полей.

В данной форме мы получили итоговый баланс, который даёт общий результат. Чтобы иметь возможность детализации по операциям с каждым контрагентом - надо использовать форму баланса.
На первой вкладке свойств, по общей схеме, задаются:
- имя формы;
- подгруппа (если надо);
- объект, для записей которого будет производится получение результата;
- условие отображения числа записей объекта.
Ниже расположена вкладка с настройкой основных свойств формы.
Для таблицы баланса обязательно определение типа операции, наличие её даты, а также суммы прихода и расхода. Пятое поле является расчётным.
Все эти графы могут быть переименованы пользователем по своему усмотрению. Например, графам "Приход" и "Расход" мы изменим имена на "Плюс" и "Минус".
Тип операции может быть скрыт, а для поля даты можно установить порядок сортировки: по возрастанию или убыванию. Расчётное поле баланса также можно скрыть свойством справа от него.
На нижней вкладке, из списка полей объекта, выбираются те, которые будут видны в списке записей формы. В нашем случае это только одно наименование клиента. Для каждого поля, аналогично как в форме связи, можно задать условие фильтрации, а также исходное значения фильтра или его значение из объекта пользователей (для сетевой работы).

На вкладке "Дополнительные поля" можно задать поля, которые будут содержать информацию из каждого объекта операций. Вернёмся к ним позже.
Сохранив форму, приступим к настройке объектов, из которых будет браться информация по операциям с контрагентом.
Переходим на вкладку "Объекты". По кнопке "Добавить" открывается окно, в котором для первого поля надо указать объект с операциями. После выбора нужного, если в нём несколько полей, содержащих ссылку на контрагента - выбираем нужное. Если ссылка только одна - она будет автоматически подставлена.
Имя объекта будет использовано для задания типа операции. Для остальных полей формы баланса активируются соответствующие поля для заполнения: "Дата", "Плюс" и "Минус". В них выбираются соответствующие типы (дата и число) из указанного объекта.
Если задано поле прихода ("Плюс"), то второе поле расхода ("Минус") блокируется, не позволяя использовать данный объект для расхода. Соответственно, задав расход - нельзя будет заполнить поле прихода.
Таким образом добавляем все объекты, имеющие ссылку на объект контрагентов и участвующие в расчёте баланса.

Теперь для каждого контрагента можно получить детализированный баланс по всем операциям, который может быть использован для сверки.
Результат каждой операции плюсуется или минусуется к предыдущему итоговому значению от последней операции. Итог будет в конце или в начале списка (в зависимости от настройки порядка сортировки для даты).




Теперь вернёмся к дополнительным полям в свойствах формы баланса.

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

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

Пример проекта в приложении.
В качестве второго примера приложен проект учёта доходов и расходов с итоговым балансом по валютам.

Вложения
Последнее редактирование модератором: