Справочник сотрудников компании

Мне необходимо получить список всех сотрудников компании (без разницы являются они пользователями системы Terrasoft или нет), и отобразить их в ввиде выпадающего списка на форме. В каком справочнике они хранятся и с помощью какого элемента, их можно вывести на форме?

Нравится

9 комментариев

Можно сделать фильтрацию справочника по типу контакта "Сотрудник вашей компании".

"Глова Сергей" написал:

Можно сделать фильтрацию справочника по типу контакта "Сотрудник вашей компании".


Спасибо за ответ, возможно ли описать более подробно. К сожалению я пока новичок.
Опишу весь бизнес-процесс как я его вижу и то что уже проделано:
Бизнес-процесс "Обеды".
Процесс выполняется одним и тем же человеком ежедневно.
Этап 1:
В начале месяца выбираются сотрудники которые будут питаться в этом месяце из списка сотрудников.
Этап 2:
Так же в начале месяца выбирается из уже полученного списка чем будет питаться каждый из людей (есть: первое, второе, салат. пользователь может кушать всё или есть только салат или второе целый месяц).
Этап 3:
Ежедневно до 10.00 можно указать питается определенный человек сегодня или нет.
Этап 4:
В обеденное время с 13 до 14 (только в будние дни) привозят обед, необходимо указать цены за салат, первое и второе из накладной и указать номер накладной.
Этап 5:
Необходимо указать кто получил обед.
Этап 6.....
Ежедневно (кроме выходных и праздничных дней) повторяются действия с 3-его этапа
Этап ....98
Вывод отчета по отдельному сотруднику (когда и что ел + сумма на которую он съел)
Вывод отчета по всем сотрудникам (на какую сумму каждый из них наел)
Этап ....99
Повтор действий производимых в начале месяца: Этап 1 и Этап 2

Да к вот сейчас я работаю над Этапом 1, я хочу разобраться во всем этом, я имею представление что такое таблица, запрос к базе и т.п. вообщем строить я умею в Terrasoft. Но всё-равно пробелов пока много, поэтому прошу помощи.
Сейчас мне необходимо получить список сотрудников, делать это через sq или как-то по-другому? опять же как таблица называется в которой их можно забрать?

Здравствуйте Максим
Без дополнительного программирования тут не обойтись, можете указать ваш продукт.
В случае если вы используете XRM Distribution, возможно будет использовать часть функционала "Опросы" (Маркетинг -> Опросы)

Немного разобрался, но есть проблемы. Опишу что делаю:

создаю таблицу tbl_pitanie_mesyac
в ней следующие поля:
id
name (строка unicode)
pervoe (Булевское)
vtoroe (Булевское)
salat (Булевское)

создаю select query
тут следующее:
select:
tbl_pitanie_mesyac.ID as ID
tbl_pitanie_mesyac.name as name
tbl_pitanie_mesyac.pervoe as pervoe
tbl_pitanie_mesyac.vtoroe as vtoroe
tbl_pitanie_mesyac.salat as salat
from tbl_pitanie_mesyac
joint:
tbl_pitanie_mesyac left outer joint tbl_contact as name on name AccountID = tbl_pitanie_mesyac.Name
tbl_pitanie_mesyac left outer joint tbl_contact as ID on name ID = tbl_pitanie_mesyac.ID

создаю dataset
id и name - поле справочника (источник данных ds_contact)
pervoe, vtoroe, salat (булевское поле)

windows:
используется DataGridView с отображение колонок id, name, pervoe, vtoroe, salat
для DataGridView разрешено редактирование в колонках.
есть три кнопки: BtnAdd, BtnSave, BtnDel
используют скрипт:

function BtnAddOnClick(Control) {
dlpitaniemesyac.Dataset.Append();
}

function BtnDelOnClick(Control) {
dlpitaniemesyac.Dataset.Post();
}

function BtnSaveOnClick(Control) {
dlpitaniemesyac.Dataset.Delete();
}

function wnd_pitanie_obed(Window) {
dlpitaniemesyac.Dataset.Open();
}

function Main() {
var Window = Services.GetNewItemByUSI('wnd_pitanie_obed');
Window.IsDesigning = false;
Window.Prepare();
Window.Show();
}

при попытке выбора человека через форму, выдаётся ошибка:
[12.01.05 17.49.42.591] (E) Ошибка выполнения метода 'BtnAddOnClick'. Catastrophic failure «Call Stack»
[12.01.06 01.58.16.731] (E) Ошибка выполнения метода 'grdDataOnDblClick'. Ошибка открытия источника данных "".
Оригинальное сообщение об ошибке: Syntax error converting from a character string to uniqueidentifier «Call Stack»
[12.01.06 01.58.26.356] (E) Ошибка выполнения метода 'BtnSaveOnClick'. Ошибка сохранения записи. Оригинальное сообщение об ошибке: The statement has been terminated.
Cannot insert the value NULL into column 'Name', table 'tssurit.dbo.tbl_pitanie_mesyac'; column does not allow nulls. INSERT fails «Call Stack»

первая ошибка сама по-себе появилась.. раньше она не выскакивала как и последня... а вот что говорит вторая? где я ошибся?
\
получается сейчас у меня задача стоит следующая:
организовать выборку по людям (понимаю что нужен будет фильтр по организации конкретной, но это уже вопрос другой). В чем моя ошибка?

на данный момент стоит версия 3.3.0.42 Terrasoft CRM

"Яворский Алексей" написал:

Здравствуйте Максим

Без дополнительного программирования тут не обойтись, можете указать ваш продукт.

В случае если вы используете XRM Distribution, возможно будет использовать часть функционала "Опросы" (Маркетинг -> Опросы)

С уважением,

Яворский Алексей

Эксперт 3-й линии поддержки


Реализация штатными средствами системы возможна? У меня есть стимул учиться и разбираться в этом продукте.

Максим,
Общий принцип следующий:
Вы создали таблицу tbl_pitanie_mesyac, для того что бы установить внешнюю связь с контактом, необходимо добавить в таблицу поле ContactID c типом "Уникальный идентификатор", и уже в SQ, добавлять связь с tbl_Contact по внешнему ключу ContactID
1
После чего вытаскивать необходимые колонки в SQ
2

Профильтровать по Сотрудникам вашей компании, можно добавив фильтр
3
Предварительно посмотрев ID типа контакта 'Сотрудник Вашей компании' запросом

SELECT * FROM dbo.tbl_ContactType

и записав данное значение в параметр
4

для поля name я задаю в ds тип поле справочника...
в окне я задаю компонент LookupDataControl, при запуске выдаётся ошибка:
[12.01.11 10.50.33.655] (E) Ошибка выполнения метода 'btnOkOnClick'. Ошибка открытия источника данных "".
Оригинальное сообщение об ошибке: Syntax error converting from a character string to uniqueidentifier «Call Stack»

В чём моя ошибка?

Максим,
Ошибка "Syntax error converting from a character string to uniqueidentifier" скорее всего возникает из-за того что, Вы указали для поля Name лукапное поле, когда для лукапного поля необходимо задать идентификатор.
Т.е к примеру если мы хотим получить в карточке контрагента лукапное поле для выбора ответственного с датасета контактов
1
Нам необходимо:
1. В таблице tbl_Account иметь поле OwnerID
2
2. В SelectQuary нам необходимо иметь связь (Join) с таблицей tbl_Contact, в ней выбрать еще одно поле, которое мы будем отображать в карточке, в данном случае OwnerName (tbl_Contact.Name)
4
6
5
3.В Датасете мы укахываем что OwnerID, это поле лукапного типа, а поля для отображения в картоке поле OwnerName
3

Спасибо, ответ достаточно подробный, всё получилось!

Показать все комментарии