Страница 1 из 1

Данные в отчете и филиальность

Добавлено: 09 июл 2015, 12:05
Irina_
Здравствуйте.
Используется филиальность. Начинаю писать отчет на vip, в котором должна использоваться и выводится инфо по персоналу и по з/п сразу по обоим филиалам. Ранее с таким не сталкивалась. Может кто-то даст рекомендации как в своих отчетах использовать данные по филиалам одновременно.
И еще. Подозреваю возможную проблему с данными по персоналу, т.к. таблица CATALOGS не настроена как общая, т.е. у каждого ф-ла данные в CATALOGS свои. Я права в своих подозрениях или проблемы не должно быть?

Re: Данные в отчете и филиальность

Добавлено: 09 июл 2015, 12:35
m0p3e
Irina_ писал(а):Здравствуйте.
Используется филиальность. Начинаю писать отчет на vip, в котором должна использоваться и выводится инфо по персоналу и по з/п сразу по обоим филиалам. Ранее с таким не сталкивалась. Может кто-то даст рекомендации как в своих отчетах использовать данные по филиалам одновременно.
И еще. Подозреваю возможную проблему с данными по персоналу, т.к. таблица CATALOGS не настроена как общая, т.е. у каждого ф-ла данные в CATALOGS свои. Я права в своих подозрениях или проблемы не должно быть?
Catalogs нужно было общим изначально. У себя, изначально делал надстройку для смешанного использования по видам каталогов.
По отчетам больших проблем нет. Filials - справочник филиалов. atl_branch ссылка в разделяемых таблицах.
Есть различные функции для работы с филиальностью.
Нужно больше конкретики в вопросах, для конкретики в ответах. :)

Re: Данные в отчете и филиальность

Добавлено: 09 июл 2015, 13:17
Irina_
Catalogs при внедрении не сделали общей. Это недочет внедренцев. Сейчас изменить проблематично, т.к. сами понимаете – на этой таблице завязано многое.
А более конкретно по отчету: мне нужно выбирать инфо из архивов оплат и удержаний по заданному списку сотрудников, причем часть сотрудников работают или только в одном ф-ле или в обоих одновременно. Написание отчета по одному ф-лу трудности не вызовет. Но необходимость учета инфо по обоим ф-лам одновременно пока вызывает вопросы. Например, в таблицах Persons и Lschet есть поле Atl_Branch, в котором, как Вы пишите, хранится ссылка на ф-л. Но при просмотре индексов по этим таблицам в Support я не вижу использования в индексах этого поля. Означает ли это, что при поиске нужного сотрудника по Nrec я однозначно найду того, который нужен?
А что за ф-ции при работе с филиальностью, о которых Вы пишите? Можно пример?

Re: Данные в отчете и филиальность

Добавлено: 09 июл 2015, 14:20
m0p3e
Irina_ писал(а):Catalogs при внедрении не сделали общей. Это недочет внедренцев. Сейчас изменить проблематично, т.к. сами понимаете – на этой таблице завязано многое.
Сделать можно, но очень трудоемко. Только при наличии много свободного времени.
Irina_ писал(а):А более конкретно по отчету: мне нужно выбирать инфо из архивов оплат и удержаний по заданному списку сотрудников, причем часть сотрудников работают или только в одном ф-ле или в обоих одновременно. Написание отчета по одному ф-лу трудности не вызовет. Но необходимость учета инфо по обоим ф-лам одновременно пока вызывает вопросы. Например, в таблицах Persons и Lschet есть поле Atl_Branch, в котором, как Вы пишите, хранится ссылка на ф-л. Но при просмотре индексов по этим таблицам в Support я не вижу использования в индексах этого поля. Означает ли это, что при поиске нужного сотрудника по Nrec я однозначно найду того, который нужен?
Nrec уникален всегда. За это можно не волноваться. В случае филиальности atl_branch работает как дополнительный разрез, обрабатываемый на уровне драйвера СУБД.
Irina_ писал(а):А что за ф-ции при работе с филиальностью, о которых Вы пишите? Можно пример?
Большая часть функций описана в VipProg.
Частенько приходится лазать в данные другого филиала из под пользователя, не имеющего на него доступ (или имеющего, но не выбравшего). Тогда выручает такой блок:

Код: Выделить всё

 Var AllBranches,CurBranches : LongInt; 
 CurBranches := SortedContainer_Init ( '', 8, 100, 10, false );
 SortedContainer_Copy ( CurBranches, GetCurrentBranches ); //Сохраняем список выбраных филиалов
 AllBranches := SortedContainer_Init ( '', 8, 100, 10, false );
 _loop Filials //Набиваем контейнер всеми филиалами
  {
   SortedContainer_Insert ( AllBranches, Filials.atl_nrec );
  }; //loop Filials
 SetBranches ( AllBranches, 0 ); //Устанавливаем видимость по всем филиалам
 .....................
 В данной точке мы имеем програмный доступ на все филиалы
 .....................
 SetBranches ( CurBranches, 0 ); //Устанавливаем изначально выбранные филиалы
 SortedContainer_Done ( CurBranches, '' );
 SortedContainer_Done ( AllBranches, '' );

Re: Данные в отчете и филиальность

Добавлено: 09 июл 2015, 14:52
Irina_
Сергей, огромное спасибо за консультацию и за пример. Вы развеяли мои сомнения.

Re: Данные в отчете и филиальность

Добавлено: 10 июл 2015, 11:49
Irina_
Столкнулась с 1-ой проблемой. В своих отчетах по з/п часто работаю с настройкой отчетного периода з/п. Использую для разных целей: для контроля дат в интерфейсе ввода параметров, для проверки необходимости работать с архивом оплат и/или начислениями отчетного периода з/п, и др. Использую sGetTune('UP.DATOTCH'). Для получения нового отчета при входе в Галактику выбрала 2 филиала. Указанная ф-ция вернула период 12.2012, хотя сейчас на обоих филиала период в з/п 06.2015. Соответственно сейчас не могу проконтролировать ввод дат в интерфейсе. Как сейчас это сделать? Возможно, мне надо входить в Галактику с одиночным выбором филиала, а потом воспользоваться Вашим примером? Или есть другой вариант?

Re: Данные в отчете и филиальность

Добавлено: 10 июл 2015, 12:40
m0p3e
В данном случае настройку нужно брать соответствующего филиала.

Код: Выделить всё

coGetTuneEx ( 'MYORG', OfficeFilialTune ( GetCurrOffice, FilialNo ( Persons.Atl_Branch )), 0 )

Re: Данные в отчете и филиальность

Добавлено: 10 июл 2015, 14:47
Irina_
Отчетный период з/п мне надо вытащить в интерфейсе ввода параметров формирования отчета, т.е. на этот момент можно оттолкнуться только от перечня выбранных филиалов. Получается, что мне надо приспособить Ваш кусок кода, пройти по перечню выбранных филиалов (или всем, если выбран один), найти для каждого отчетный период з/п и выбрать максимальный. Я права?
Может еще подскажите, как вытащить настройку отчетного периода з/п по nrec филиала?
В sGetTuneEx('UP.DATOTCH', ???, ???) какие значения передать в качестве 2 и 3 параметров?

Re: Данные в отчете и филиальность

Добавлено: 10 июл 2015, 15:42
m0p3e
Какую дату брать максимальную/минимальную или еще какую зависит от задачи. :)
Выбрать максимальный из перечня доступных можно так:

Код: Выделить всё

Function GetDatOtchMax : date;
{
 var DatOtch : date;
 var Branches : LongInt;
 Branches := GetCurrentBranches;
 var iBranch : word;
 var cBranch : comp;
 For ( iBranch := 1; iBranch <= Container_GetCount ( Branches ); iBranch++ )
  {
   cBranch := Container_AtC ( Branches, iBranch - 1 );
   DatOtch := dGetTuneEx ( 'UP.DATOTCH', OfficeFilialTune ( GetCurrOffice, FilialNo(cBranch)), 0 );
   If Result < DatOtch 
     Result := DatOtch;
  };
};

Re: Данные в отчете и филиальность

Добавлено: 10 июл 2015, 16:06
Irina_
Сергей. По правде говоря не ожидала, что Вы напишите полную процедуру. Огромное спасибо за затраченное время и усилия. Буду пробовать.

Re: Данные в отчете и филиальность

Добавлено: 10 июл 2015, 16:25
Den
Irina_ писал(а):Сергей. По правде говоря не ожидала, что Вы напишите полную процедуру.
Серега, эххх..недооценивают.... )

Re: Данные в отчете и филиальность

Добавлено: 10 июл 2015, 16:42
m0p3e
Den писал(а):Серега, эххх..недооценивают.... )
Сам себя не оценишь - никто не оценит! :-)

Re: Данные в отчете и филиальность

Добавлено: 10 июл 2015, 16:53
Irina_
Даже очень ценю. Знаю, что у каждого есть своя работа, возможно и срочная. Поэтому и времени может иногда не быть не только ответить, но и прочитать. А есть и такие, кто не окажет никакую помощь из принципа. Поэтому всегда благодарна тем, кто откликается.

Re: Данные в отчете и филиальность

Добавлено: 14 июл 2015, 14:22
Irina_
Здравствуйте. Все получилось! В т.ч. и с выборкой з/п.
Нашла максимальную дату среди дат отчетного периода для филиалов, но только для того, чтобы проконтролировать дату окончания периода (в интерфейсе ввода параметров формирования отчета), за который надо формировать отчет. Потом заполнила таблицу в памяти с перечнем филиалов, там же заполнила отчетные периоды для каждого. А потом для каждой карточки из выборки по Persons.Atl_Branch из таблицы брала отчетный период там, где надо было проанализировать необходимость работы с SumvidOp и/или с Nachisl. Т.о. если сотрудник работает в обоих филиалах и отчетные периоды з/п по филиалам разные (может такое быть), то суммы по обоим ф-лам выбираются и/или из архива/начислений отчетного периода.
И теперь необязательно помечать при входе в Галактику нужные филиалы, т.к. устанавливаю видимость по всем филиалам программно.
Еще раз большое спасибо m0p3e.

Re: Данные в отчете и филиальность

Добавлено: 14 июл 2015, 17:44
m0p3e
Незачто. Обращайтесь.
У меня этих филиалов 11 штук. :)