Партнёр

Партнёр - лицо или организация, непосредственно участвующее в движении товаров или денежных средств. Например, для товарных операций партнером является поставщик (для операций прихода) или получатель (для операций расхода) товара. Среди партнеров выделяются Подразделения (структурная единица предприятия, на котором создаются и хранятся документы). Партнёры хранятся в таблице ‘Партнер’.

Внутри раздела ‘Партнёр’ можно создать следующие разделы:

image-1648573482735.png

  • Параметры – содержит описания параметров, переменных и выражений.
  • Классификация – содержит описание классов и типов партнеров.
  • Виды просмотра – содержит описания видов просмотра, работающих от контекста партнера.
  • Выборки – содержит описания простых выборок, применяемых для отбора записей о партнерах.
  • Формы – содержит описания форм для ввода партнеров.
  • Схемы копирования партнеров - содержит описания схем создания одного партнера на основе другого. Схемы применяются при описании методов и процедур.
  • Процедуры – в данном разделе описываются процедуры, которые обрабатывают одну запись партнера.
  • Сценарии – содержит описания сценариев, которые предполагается использовать в качестве родителей при создании других сценариев.
  • Доступные параметры – не используется.
  • Отчеты – содержит описания отчетов, обрабатывающих одного партнера.

Подробное описание перечисленных разделов приведено ранее, в главе ‘Основные объекты’ и в главах по разделам (‘Параметры’, ‘Процедуры‘, ‘Виды просмотра’, ‘Выборки’, ‘Формы’, ‘Сценарии’, ‘Отчеты’).

Рассмотрим описание партнеров на примере.

Пример описания партнера

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

  • Параметры подразделения и партнера
  • Типы для подразделений и партнеров
  • Форму ввода подразделения и форму ввода партнера
  • Виды просмотров подразделений и партнеров
  • Сценарии для форм, видов просмотра и контекстных меню
  • Отчеты по партнерам

Рассмотрим возможный вариант действий автора проекта.

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

Параметры партнера

Описание базовых параметров партнера находится в базовом разделе ‘Системная область’.

image-1648573507130.png

Остальные параметры расположены в библиотеке [КЛАССЫ, ТИПЫ, ПАРАМЕТРЫ, ПЛАНЫ, ОПИСАНИЯ СПИСКОВ].

image-1648573524544.png

При выборе параметра необходимо обращать внимание на тип данных.

На этом этапе можно провести еще одно исследование.

В проекте создано множество функций и выражений, работающих от текущей записи партнера. Такие функции и выражения располагаются в разделе ‘Параметры’ раздела ‘Партнер’.

image-1648573542430.png

Фрагмент списка функций для партнера из библиотеки ‘! Базовый набор’

image-1648573564478.png

Фрагмент списка функций для партнера из библиотеки ‘# Товародвижение’

Некоторые из этих функций и выражений потребуются при описании формы, вида просмотра и отчетов.

Классификация партнеров

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

Базовые классы партнеров описаны в базовом разделе ‘Системная область’.

image-1648573585687.png

Описание класса ‘ПАРТНЕР’ выглядит вот так.

image-1648573605693.png

Для партнеров данного класса указаны стандартный метод при удалении записи и разрешены все действия с записью. Ширина параметра ‘Код’ записи равна 6 символов.

В описании класса ‘ПОДРАЗДЕЛЕНИЕ’ указан атрибут ‘Автоматически разрешать права пользователю на созданный объект’. Данный атрибут применяется для разрешения следующего конфликта. Конфликт возникает вследствие того, что права на доступ к подразделениям устанавливает один пользователь, а подразделение создает другой пользователь, часто не имеющий возможности изменять права. При установленном признаке права на доступ к новому подразделению автоматически будут установлены тому пользователю, который создал подразделение.

image-1648573624067.png

В библиотеке [КЛАССЫ, ТИПЫ, ПАРАМЕТРЫ, ПЛАНЫ, ОПИСАНИЯ СПИСКОВ] перечислены централизованно заведенные классы и типы партнеров.

Классы партнера ссылаются на два базовых класса. Это позволяет не повторять для каждого класса описание атрибутов ‘Методы’, ‘Права на выполнение действий над объектом’ и ‘Структура кода’.

image-1648573641939.png

Типы партнеров созданы на основе перечисленных классов.

image-1648573658732.png

В этой библиотеке никакие значимые атрибуты классов и типов не указываются. Атрибуты задаются в других библиотеках. Для этого применяют подстановки.

Для наших целей подходят два типа партнера: ‘Структурное подразделение’ и ‘Торговый партнер’.

Посмотрим как описаны атрибуты этих типов.

Находим в библиотеке ‘# Товародвижение’ подстановку типа ‘Структурное подразделение’.

image-1648573678729.png

В подстановке указана форма для ввода подразделений, задан сценарий для контекстного меню, структура партнера и иконка.

В этой же библиотеке расположена подстановка типа ‘Торговый партнер’. В ней кроме формы, сценария и структуры указано условие использования данного типа. Изменять и добавлять торговых партнеров сможет только тот пользователь, которому назначена роль ‘Оператор клиентов’.

image-1648573696719.png

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

Структура партнера

В подстановке типа ‘Торговый партнер’ указан атрибут ‘Структура (Состав, Содержание)’. Этот атрибут задает возможные типы наследников партнера.

Заполнение данного атрибута  для нашей задачи значения не имеет. Указанные значения означают, что для партнера можно создавать филиалы, расчетные счета, юридический и физический адреса и контактные лица. Отменить это назначение можно двумя способами. Либо создать подстановку типа ‘Торговый партнер’ и не указывать эти типы в атрибуте ‘Структура (Состав, Содержание)’. Либо можно запретить их использование с помощью подстановок этих типов.

Точно таким же образом можно поступить с указанным для структурного подразделения типом партнера ‘Товарный склад/секция’.

Форма партнера

В описаниях рассматриваемых типов имеются ссылки на формы ввода. Рассмотрим формы подробнее.

Форма, заданная в подстановке типа ‘Структурное подразделение’, находится в библиотеке ‘# Товародвижение’, раздел ‘Партнер’, раздел ‘Форма’.

image-1648573722246.png

Для формы указаны список полей и сценарий.

В этой же библиотеке находится форма, указанная в подстановке типа ‘Торговый партнер’.

image-1648573741189.png

В этой форме имеется описание полей, закладок и сценария.

Если заданный список полей не соответствует требованиям задачи, то его следует  изменить. Это можно сделать двумя способами:

  • Можно создать подстановку данной формы и изменить значение атрибута ‘Список полей формы’.
  • Можно создать новую форму и новую подстановку типа партнера. В подстановке потребуется указать ссылку на созданную форму.

Необходимо проверить наличие подстановок для изученных форм и последующие действия выполнять с учетом изменения значений атрибутов в этих подстановках.

Вид просмотра партнеров

Для решаемой задачи требуется отобразить два списка: список подразделений и список торговых партнеров.

Данные виды просмотра должны быть расположены в разделе ‘Виды просмотра’ на верхнем уровне библиотеки. Попробуем найти подходящие.

В библиотеке ‘! Базовый набор‘, раздел ‘Виды просмотра’, папка ‘! Базовый набор’, папка ‘Партнер’ находится вид просмотра ‘Структурные подразделения’.

image-1648573758957.png

Данный вид просмотра отображает всех партнеров типа ‘Структурное подразделение’, что и требуется для нашей задачи.

В этой же библиотеке,  папка ‘! Базовый набор’, папка ‘Партнер’, папка ‘Торговые партнеры’ расположен вид просмотра ‘Торговые партнеры по наименованию’.

image-1648573777039.png

Данный вид просмотра отображает всех партнеров класса ‘ТОРГОВЫЙ ПАРТНЕР’. Разрешено создавать партнеров типа ‘Торговый партнер’. Условиям задачи найденный вид просмотра удовлетворяет. 

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

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

Сценарии для партнеров

В описании типа партнера, формы и вида просмотра встречались атрибуты со ссылками на различные сценарии. Уточним описания этих атрибутов.

Контекстное меню

Для начала разберем сценарии у типов партнеров. Этот сценарий задает контекстное меню. Контекстное меню вызывается из вида просмотра при нажатии правой кнопки мыши. Выбранные в меню действия выполняются для текущей записи вида просмотра.

Еще раз рассмотрим подстановку типа партнера ‘Структурное подразделение’.

image-1648573797044.png

Сценарий содержит единственный элемент – вызов вида просмотра протокола.

Изучим подстановку типа партнера ‘Торговый партнер’.

image-1648573813385.png

Поскольку сам сценарий не имеет родителя, то проводим поиск наследуемых пунктов у типа партнера. В описании типа атрибут ‘Сценарий’ не указан. Значит, следует проверить родителя типа – это класс ‘ТОРГОВЫЙ ПАРТНЕР’. И в описании класса, и в подстановках класса атрибут ‘Сценарий’ отсутствует. Переходим к изучению родителя класса – это базовый класс ‘ПАРТНЕР’. В подстановке класса находим искомый атрибут.

image-1648573831067.png

Наследуемые пункты будут добавлены в контекстное меню торгового партнера.

Сценарии для видов просмотра

Теперь разберем указание сценария в виде просмотра подразделений. Сценарий в виде просмотра определяет панель инструментов.

image-1648573847522.png

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

После непродолжительных поисков сценарий найден в базовом виде просмотра ‘ОБЪЕКТЫ’.

image-1648573863306.png

Сценарий для вида просмотра торговых партнеров найти легче.

image-1648573878588.png

Для данного вида просмотра применяется сценарий ‘Сценарий для торговых партнеров’. Этот сценарий расположен в библиотеке ‘! Базовый набор‘, раздел ‘Партнер’, раздел ‘Сценарии’.

image-1648573896194.png

Поскольку в описании сценария использован атрибут ‘Наследуемые пункты’, то рассматриваем описание родителя.

image-1648573913912.png

От родителя в данный сценарий будут добавлены следующие пункты:

image-1648573928654.png

В итоге получаем сценарий, в котором объединены пункты из трех сценариев. Если хотя бы один из изученных сценариев имел подстановки, то результат был бы иным.

Сценарии для форм

Перейдем к сценариям формы. Сценарий в форме задает панель инструментов формы.

Форма ‘Торговый партнер’ содержит полное описание сценария.

image-1648573946760.png

Для двух пунктов сценария ‘Счета’ и ‘Филиалы’ указан атрибут ‘Сохранить изменения перед вызовом’.

Наличие этого атрибута означает, что перед выполнением указанных действий вся введенная в форму информация будет записана в БД. В данном случае перед вызовом видов просмотра для заполнения счетов и филиалов введенные в форму партнера данные будут сохранены. Это позволит пользователю сразу перейти к вводу дополнительных данных после заполнения полей формы. В противном случае, сначала необходимо сохранить введенную в форму информацию (по кнопке ‘Сохранить’), затем повторно вызвать форму и выбрать интересующий вид просмотра.

Для формы ‘Подразделение’ сценарий содержит только атрибут ‘Наследуемые пункты’.

image-1648573973376.png

Поскольку сам сценарий не имеет родителя, то проводим поиск наследуемых пунктов у родителей формы. Таковые находятся у базовой формы ‘ПАРТНЕР’.

image-1648573988469.png

Этот сценарий по правилу наследования подключается в форму для ввода подразделений.

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

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

Отчеты по партнерам

Последний этап решения поставленной задачи состоит в описании отчетов по партнерам.

Отчеты по одному партнеру располагают в разделе ‘Отчеты’ внутри раздела ‘Партнер’.

В раздел ‘Отчеты’ верхнего уровня библиотеки помещают отчеты по многим партнерам.

image-1648574007474.png