Табель по произвольному периоду




Принцип обмена данными из 1С с сайтом (на MySQL) и выдачи (публикации) этих данных по запросу.
PHP-Скрипт автоматической загрузки данных из файла данных в формате CSV в базу данных сайта работающего на WordPress.

В продолжение моей темы: 1С:Альфа-Авто Автосалон Автосервис: обмен с сайтом.
С помощью данного скрипта можно загружать в автоматическом режиме, по расписанию, данные сервисных книжек (ремонтов авто) из 1С:Альфа-Авто Автосалон Автосервис.
Также можно загружать данные в ручном режиме: для этого делается скрытая страница, где размещается специальная кнопка.
Комментарии размещенные внутри скрипта разъяснят логику и порядок действия.
Комментарии с "/////    echo" использовались для отладки.
Дополнительно создана таблица для журналирования результатов загрузки данных.
Скрипт включает в себя защиту от SQL инъекций (думаю безопасность соблюдена в полной мере).
В кратце:
1. Пишется скрипт, который запускает этот.
2. Создается регламентное задание в WordPress, по которому запускается скрипт из п.1. 
3. Этот скрипт осуществляет проверку на существование файла обмена в папке.
4. Если данные не новые, загрузка не производится.
5. Если данные новые, очищается таблица сервисных книжек.
6. Загружаются новые данные.

Собственно сам скрипт:

<?php // Полная загрузка сервисных книжек, создан 2024-01-05 12:44:55

global $wpdb2;
global $failure;
global $file_hist;

/////  echo '<H2><b>Старт загрузки</b></H2><br>';

$failure=FALSE;
//подключаемся к базе
$wpdb2 = include_once 'connection.php'; ; // подключаемся к MySQL
// если не удалось подключиться, и нужно оборвать PHP с сообщением об этой ошибке
if (!empty($wpdb2->error))
{
/////   echo '<H2><b>Ошибка подключения к БД, завершение.</b></H2><br>';
$failure=TRUE;
wp_die( $wpdb2->error );
}

$m_size_file=0;
$m_mtime_file=0;
$m_comment='';
/////проверка существования файлов выгрузки из 1С
////файл выгрузки сервисных книжек
$file_hist = ABSPATH.'/_1c_alfa_exchange/AA_hist.csv';
if (!file_exists($file_hist))
{
/////   echo '<H2><b>Файл обмена с сервисными книжками не существует.</b></H2><br>';
$m_comment='Файл обмена с сервисными книжками не существует';
$failure=TRUE;
}

/////инициируем таблицу лога
/////если не существует файла то возврат и ничего не делаем
if ($failure){
///включает защиту от SQL инъекций и данные можно передавать как есть, например: $_GET['foo']
/////   echo '<H2><b>Попытка вставить запись в лог таблицу</b></H2><br>';
$insert_fail_zapros=$wpdb2->insert('vin_logs', array('time_stamp'=>time(),'last_mtime_upload'=>$m_mtime_file,'last_size_upload'=>$m_size_file,'comment'=>$m_comment));
wp_die();
/////    echo '<H2><b>Возврат в начало.</b></H2><br>';
return $failure;
}
/////проверка лога загрузки, что бы не загружать тоже самое
$masiv_data_file=stat($file_hist);   ////передаем в массив свойство файла
$m_size_file=$masiv_data_file[7];    ////получаем размер файла
$m_mtime_file=$masiv_data_file[9];   ////получаем дату модификации файла
////создаем запрос на получение последней удачной загрузки
////выбираем по штампу времени создания (редактирования) файла загрузки AA_hist.csv, $m_mtime_file

/////   echo '<H2><b>Размер файла: '.$m_size_file.'</b></H2><br>';
/////   echo '<H2><b>Штамп времени файла: '.$m_mtime_file.'</b></H2><br>';
/////   echo '<H2><b>Формирование запроса на выборку из лога</b></H2><br>';
////препарируем запрос
$text_zaprosa=$wpdb2->prepare("SELECT * FROM `vin_logs` WHERE `last_mtime_upload` = %s", $m_mtime_file);
$results=$wpdb2->get_results($text_zaprosa);

if ($results)
{   foreach ( $results as $r)
{
////если штамп времени и размер файла совпадают, возврат
if (($r->last_mtime_upload==$m_mtime_file) && ($r->last_size_upload==$m_size_file))
{////echo '<H2><b>Возврат в начало, т.к. найдена запись в логе.</b></H2><br>';
$insert_fail_zapros=$wpdb2->insert('vin_logs', array('time_stamp'=>time(),'last_mtime_upload'=>$m_mtime_file,'last_size_upload'=>$m_size_file,'comment'=>'Загрузка отменена, новых данных нет, т.к. найдена запись в логе.'));
wp_die();
return $failure;
}
}
}
////если данные новые, пишем в лог запись о начале загрузки
/////echo '<H2><b>Попытка вставить запись о начале загрузки в лог таблицу</b></H2><br>';
$insert_fail_zapros=$wpdb2->insert('vin_logs', array('time_stamp'=>time(),'last_mtime_upload'=>0, 'last_size_upload'=>$m_size_file, 'comment'=>'Начало загрузки'));

////очищаем таблицу
$clear_tbl_zap=$wpdb2->prepare("TRUNCATE TABLE %s", 'vin_history');
$clear_tbl_zap_repl=str_replace("'","`",$clear_tbl_zap);
$results=$wpdb2->query($clear_tbl_zap_repl);
/////   echo '<H2><b>Очистка таблицы сервисных книжек</b></H2><br>';
if (empty($results))
{
/////   echo '<H2><b>Ошибка очистки таблицы книжек, завершение.</b></H2><br>';
//// если очистка не удалась, возврат
$failure=TRUE;
wp_die();
return $failure;
}

////загружаем данные
$table='vin_history';         // Имя таблицы для импорта
//$file_hist Имя CSV файла, откуда берется информация     // (путь от корня web-сервера)
$delim=';';          // Разделитель полей в CSV файле
$enclosed='"';      // Кавычки для содержимого полей
$escaped='\

99 Comments

  1. Gaffer

    а где скриншот?

    Reply
  2. e.kogan

    В разработке!

    Reply
  3. Kruzo

    Эх, такую бы для ЗиК ..

    Reply
  4. gutentag

    Замечание по отчету:

    — Просьба сделать, чтобы, при открытии отчета, открывался бы «фильтр отбора»

    — ИМХО если дата периода не указана, то обработка вызывает зависание ЗУП-8.1

    Reply
  5. selinata2005

    Ну пожалуйста, придумайте что-нибудь для БП-8.1 (1.6.13). Очень не удобно, что нет вообще табеля учета раб. времени

    Reply
  6. Re:аниматор

    (5) для расчета ЗП используется ЗУП, в бухии по мимо табеля нет понятия удержания. там рисовать и рисовать ЗП в бухии. Я сделал Бухия + ЗП, там и табель и удержания и т.д. полноценная программа для расчета ЗП и синхронное формирование проводок по бух учету. Если интересно пиши в личку. встраивается в стандартную бухию как подсистема по зарплате

    Reply
  7. angler225

    Такая же ошибка как и в стандартном отчете:

    «код ошибки: 10008246

    В отчете «Табель Т-13» выводится в выходные код «н/в» вместо «в», если сотруднику введено плановое начисление «Доплата за ночные часы»

    »

    В 1С обещали исправить к релизу 2.5.16. Как говорится обещанного три года ждут.

    Reply
  8. e.kogan

    (7) А наши не жаловались, вот я и не правила. Будет время — поправлю… или из типового стырю, как они поправят )))

    Reply
  9. angler225

    Вышел новый релиз ЗУП (2.5.16.2), ничего не поправили, только регламентированную отчетность.

    Reply
  10. platinum

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

    Reply
  11. e.kogan

    (10) А чем не устраивает типовая форма Т-13 на первой закладке?

    Reply
  12. e.kogan

    (10) Смотрите обновлённое. Вы это имели в виду?

    Reply
  13. platinum

    Меня больше интересует таблица «Сводные данные», не редко бухи выбирают учетный период год и очень не удобно такую таблицу анализировать, для визуального просмотра и для перекидки в эксель. Ну и очень бы хотелось бы видеть в отчете итоговые данные по каждому сотруднику за выбранный период, а не только за месяц. Хотя бы итог сделайте.

    Reply
  14. e.kogan

    Вниимательно смотрите обновлённое. И описание обновления.

    Reply
  15. platinum

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

    Reply
  16. e.kogan

    (15) Смотрите внимательнее. Итог по сотруднику за период — это колонка «Факт» (так и было). Для вывода таблицы с различными группировками воспользуйтесь кнопкой над табличей с картинкой «принтер».

    Reply
  17. platinum

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

    Reply
  18. platinum

    нашел, даже не заметил этих кнопок для печатных бланков ))

    Reply
  19. platinum

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

    И в отчете для печати уж больно широкие колонки, у нас народ столько не получает ))

    Reply
  20. platinum

    Есть ошибки в отчете «Табель учета рабочего времени»:

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

    Reply
  21. e.kogan

    (20) Извините, смоделировать не могу. Проверьте по Т-13 — там тоже идёт расхождение? Алгоритм расчёта строго идентичен Т-13.

    Reply
  22. e.kogan

    (19) Куда добавить? Как именно?

    Ширина колонок — произвол построителя. Делать ещё и это ради, как вы выразились, перекидки в Excel. В Excel’е и поправьте ))

    Reply
  23. platinum

    (21) Ну типовой отчет строится по одному месяцу, так что с ним не сравнишь.

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

    Reply
  24. platinum

    Не не для экселя, я не привередничаю ) Колонки слишком большие для визуального просмотра, у вас такой размер, что столько не получает никто в нашей стране.

    Reply
  25. platinum

    Вот заметил, такая ошибка, описанная мной выше проявляется, когда есть дни где стоят отрицательные часы (например «-8») в колонке «Отметки о явках и неявках на работу по числам месяца. Для других сотрудников у которых нет отрицательных часов в табеле, вроде все норм, но пока тестировал выборочно.

    Reply
  26. e.kogan

    (24) Не у меня. Так выводит построитель.

    Reply
  27. e.kogan

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

    Reply
  28. platinum

    (27) лан пусть будут такие колонки, сам что-нибудь придумаю.

    А вот то, что я описал в (25) — это реально проблема. Сам только недавно стал разбираться с ЗУП, некоторые вещи непонятны, как все-таки бухи умудрились так ввести данные, что показываются в табеле отрицательные часы.

    Reply
  29. e.kogan

    (28) Пока смоделировать не могу — разбирайтесь самостоятельно. У нас таких фортелей не выкидывает.

    Reply
  30. platinum

    А все-таки в сводной табличке, сложно вставить колонку,где будут рабочие часы приходящие на праздничные дни?

    Reply
  31. e.kogan

    Помесячно? Не знаю. Время появится — посмотрю.

    Reply
  32. platinum

    (31) Да помесячно и итоговую по конкретному сотру.

    Reply
  33. e.kogan

    (32) Можно. Но муторно. Хотите — добавьте сами, там легко, просто внимательно нужно.

    Reply
  34. e.kogan

    (28) Ксатти, появилась идея насчёт отрицательных часов — скорее всего, это расчётный документ, отсторнировавший ранее начисленное, а позже отпроведённое.

    Reply
  35. platinum

    Спасибо, что стараетесь еще лучше усовершенствовать отчет. Поставил бы еще один +)))

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

    Reply
  36. e.kogan

    (35) Ууупф… Вот это вряд ли в ближайшее время. Сейчас другие задачи стоят, а этот отчёт нашему ОК и так нравится. Посмотрите, теперь там совсем просто стало изменить вывод — в процедуру СформироватьОтчет дописать создание доп.колонок в тмес, в ВывестиТабельСотрудников — заполнение этой колонки.

    Reply
  37. e.kogan

    (36) Ну и интерфейсное создание докрутить, конечно.

    Reply
  38. IronKitty

    при формировании по всей орг. с разбивкой по подразделениям выдает ошибку

    Reply
  39. e.kogan

    (38) Упс, и правда одну запятую пропустила… сейчас обновлю.

    Reply
  40. platinum

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

    Reply
  41. e.kogan

    (40) Спасибо, исправлено. Копипаст — страшная штука )

    Reply
  42. platinum

    Очень нужно изменить календарь для расчета нормы часов. Нужен календарь по которому должен работать сотрудник, а у тебя получается календарь стандартный, при чем еще в нем 8 часовой рабочий день, а у нас 7,2ч.Как это исправить? Довольно плохо пока ориентируюсь в коде 8-ки.

    Reply
  43. e.kogan

    В процедуре ИнициализироватьПостроитель откройте конструктором текст запроса. В самой последней таблице найдите поля «Дней по РПК» и «Часов по РПК». В их тексте замените то, что относится к РегламентированныйПроизводственныйКалендарь, на ВТ_Графики соответственно смыслу.

    Если появятся ещё люди, которым это нужно — сделаю настройку аналогично выводу в Т-13. Наши пока хотят только так.

    Reply
  44. kush86

    У нас такая же проблема (42), и еще как в невыходы можно добавить выходные? А вообще большой (+)

    Reply
  45. platinum

    (43) Вообще-то это реальная необходимость, как только бухи стали сверять, сказали, что это совсем неправильно использовать такую норму, т.к. она может быть разной для разных сотрудников. Для мужчин одна,для женщин другая или это норма может быть по плановому календарю конкретного сотрудника, т.к. у него свой план.

    Reply
  46. e.kogan

    (44) Выходные в невыходах: какие выходные, обычные? Те, что у сотрудника по графику выходные???

    Reply
  47. kush86

    (46) Да обычные выходные в невыходах.

    Reply
  48. linekiller2

    при вводе на сотрудника индивидуального табеля рабочего времени, он его вообще не учитывает, а пишет как всё должно быть по графику.

    Reply
  49. linekiller2

    а точнее он показывает неявки введённые в индивидуальном табеле, а изменения в отработанных часах он не показывает 🙂

    Reply
  50. e.kogan

    (48) и все, кто хотел индивидуальный табель:

    Сделано.

    (45) Про расчёт нормы чуть подробнее можно? Где можно прочитать, что про это в законе говорится? Насколько оно гибко? Потому как пятидневка-шестидневка-личный я ещё реализую, а вот М/Ж и прочие тонкости уже тяжелее.

    Reply
  51. platinum

    Ух ты даже уже и не заглядывал давно,а здесь такие доработки.Спасибки.Скоро скачаю и буду тестить.

    Reply
  52. zubovas

    Столкнулся с такой проблемой.

    В новой версии в Т-13 не корректно учитываются больничные.

    Начало больничного считается верно, а вот после возврата сотрудника на работу, продолжает «рисовать» в Т-13 больничный(Б).

    Reply
  53. e.kogan

    (52) А возврат на работу оформлен?

    Reply
  54. linekiller2

    Внимание! Если для кадрового документа невыхода не введён возврат на работу — этот невыход выводится до конца периода табеля. Есть ли смысл исправлять — не знаю.

    Есть смысл есть :))

    Reply
  55. zubovas

    (53) Возврат оформлен.

    Reply
  56. zubovas

    (52) Ошибку нашел. В модуле объекта в процедуре «ИнициализироватьПостроитель()» закомментировал строку запроса 3778.

    Reply
  57. linekiller2

    (56) там столько строк то нету) Можно поподробнее, где ошибка?

    Reply
  58. zubovas

    (57) ))) Это номер строки модуля объекта, это тот номер строки. Вот кусок запроса из процедуры «ИнициализироватьПостроитель()» :

    |ПОМЕСТИТЬ ВТ_ОтклоненияПлан

    ….

    …..

    // | И (ВТ_ОтклоненияПлан_Возвраты.ПериодЗавершения <> ДАТАВРЕМЯ(1, 1, 1))

    | ГДЕ

    …..

    Reply
  59. linekiller2

    (58) Скачай обновлённую )

    Reply
  60. lavalava7

    у сотрудника 4 часовой рабочий день, в табеле рисует четверки верно, а в сводных данных в норму пишет 159 часов, вместо 79. График не индивидуальный.

    иногда вылетает с ошибкой «память не может быть read»

    Reply
  61. e.kogan

    (60) В сводных данных норма считается по пятидневке. Всегда. Так как (45) до сих пор не привёл варианты расчёта нормы согласно законодательству, а мой ОК ничего переделать не просит.

    Про объём памяти — пока ничего не могу сделать, на оптимизацию запроса времени не хватает катастрофически.

    Reply
  62. lavalava7

    (61) график работы и так пятидневка, но по 4 часа в день, а в норму идет как будто б 8

    Reply
  63. lavalava7

    (61) ну да в (45) тоже самое, норма берется не из графика работ, назначенного сотруднику, а неизвестно откуда.

    Reply
  64. e.kogan

    (62) Норма берётся из регистра «Регламентированный производственный календарь» по следующей формуле: рабочий — 8 часов, предпраздничный — 7 часов, прочие — 0.

    Еще раз повторяю, что пока у меня не будет чёткого понимания, откуда надо брать норму ПО ЗАКОНУ, переделывать это место лично я не буду. Наш отдел кадров задал жёсткое условие, которое я выполняю, пока у меня нет более приоритетных сведений из действующего законодательства. Я не хочу подставлять свой ОК.

    Reply
  65. lavalava7

    🙁 Ну Вы прям меня расстраиваете. Такой, казалось бы, хороший отчет делаете, а тут сразу громкие слова вроде «подставлять» и «ПО ЗАКОНУ».

    Закон этот называется Трудовой кодекс и регулирует он только _МАКСИМАЛЬНО_ возможную продолжительность нормального рабочего времени:

    ТК СТ.91

    Рабочее время — время, в течение которого работник в соответствии с правилами внутреннего трудового распорядка и условиями трудового договора должен исполнять трудовые обязанности, а также иные периоды времени, которые в соответствии с настоящим Кодексом, другими федеральными законами и иными нормативными правовыми актами Российской Федерации относятся к рабочему времени.

    Нормальная продолжительность рабочего времени не может превышать 40 часов в неделю.

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

    Всё. Норма — не может быть ни для кого больше 40 часов в неделю. Меньше — легко. Для суммированного учета немного по-другому, но смысл тот же — не более 40 часов в неделю (за период). Какая именно норма — зависит от трудового договора между организацией и работником. Если в нем указано, что это пятидневка по 8 часов, то значит, это и есть такая норма для этого работника. Если у другого стоит шестидневка по 3 часа в день, то это и будет его норма «ПО ЗАКОНУ». (т.к. не превышает 40 в неделю)

    В любом случае в 1С это отражается элементом справочника «График работы». Нормальная продолжительности рабочего времени получается наложением Графика работы на Производственный календарь (о котором ежегодно издает указ федеральное правительство, где указывает какой праздничный день куда переносится и т.д.) и отображается в на той же форме элемента справочника «График работы» внизу слева при нажатии кнопки «Заполнить».

    У вас же в отчете используется 1 график работы (пятидневка по 8часов), вместо графика работы сотрудника (который опять же у вас пятидневка по 8часов и 100% уже вбит и заполнен в справочнике «графики работы»)

    Надеюсь, помог Вам в создании более четкого понимания откуда брать норму ПО ЗАКОНУ. Я старался, честно.

    Reply
  66. e.kogan

    (66) Большое спасибо за подробное разъяснение. Сделаю выбор нормы, как руки дойдут (по РПК или по графику сотрудника). Не делала пока по причине недостаточной конкретности вариантов нормы (то, о чём говорил platinum, было слишком общо и чёткой формализации не поддавалось), а наш ОК хотел контроль только по РПК.

    Кстати, в таком случае может иметь смысл отчёт по контролю самих графиков (превышают они норму или нет)? Где-то у меня такой валялся…

    Reply
  67. cdiamond

    1) По коду РВ (работа в выходные) — количество отработанных часов не видит в упор. Хотя соответствющий документ введен и часы там указаны. В самой таблице показывается только код «РВ» без указания часов. Если попытаться вывести его как отклонение, то количество часов РВ всегда = 0, количество дней РВ верно.

    2) В ноябре были праздники. Отпуск, часть которого пришлась на праздники — невыходы считает отпуск вместе с праздниками. В таблице на праздничные дни указан код «ОТ», хотя это неправильно. Как исправить это настройками я не нашел, хотя в другой ветке автором вроде бы было обещано что эта проблема решается данной обработкой.

    Reply
  68. e.kogan

    (67) 1) По поводу РВ — посмотрю, уже есть мысль. Спасибо за замечание.

    2) Попробую, но в типовом так же — по закону-то что нужно? Пустой код? На все виды расчёта или только на какие-то? Как их отличить?

    Reply
  69. cdiamond

    (68) Мне юридически подкованные кадровики говорят, что государственные праздники в количество дней отпуска никак не входят, поэтому в колонке отклонений должно быть общее количество календарных дней отпуска минус кол-во праздничных дней. Сам день государственного праздника, в частности, когда он пришелся на отпуск работника, должен отражаться буквой «В», как выходной.

    Как быть в других случаях не знаю, скорее всего типовая конфигурация их показывает правильно.

    Reply
  70. e.kogan

    (69) На данный момент количество часов и дней отклонения считается согласно указанному в настройках графику (учтите, что «Календарь-пятидневка» в данном случае — это регламентированный производственный). Насчёт вывода кода отклонения: «В» выводится только если ЛЮБОЙ отпуск пересекается с календарным праздником? Верно?

    Reply
  71. cdiamond

    (70) Если настроить дни отпуска на календарь-пятидневку, тогда и простые выходные минусовать начинает.

    Т.е. например есть у меня Иванов, взял отпуск с 2 по 14 ноября включительно.

    У нас по производственному календарю 4 ноября государственный праздник и 6 ноября введен локальный праздник.

    Стандартный табель Т-13 из УПП показывает нам 13 дней отпуска, а на самом деле отпуск был на 11 дней и в кадровых документах УПП он правильно отображается как 11 дней.

    Ваш табель, с учетом пятидневки показывает 8 дней неявок, по рабочему графику тоже 8, по календарным дням 13. Получается, что простые выходные сгреблись в одну кучу с праздниками (две субботы и одно воскресение).

    Насчёт применимости к любому отпуску ответ не получен, нашим кадровикам интересен только этот конкретный случай с обычным отпуском.

    Reply
  72. e.kogan

    (71) Оппа! А мой отчёт в УПП нормально работает?

    Reply
  73. lavalava7

    нормально, и так же вылетает иногда без видимой причины ))

    Reply
  74. akat65

    На ЗУПе 2.5.19.3 обработка не запускаеся….

    {ОбщийМодуль.УправлениеПользователями(307)}: Поле объекта не обнаружено (ОсновнаяДатаНачалаОтчетов)

    НастройкаСсылка = ПланыВидовХарактеристик.НастройкиПользователей[Настройка];

    Reply
  75. e.kogan

    (74) Мы пока живём на 16-м релизе. Как перейдём — конечно, поправлю.

    Reply
  76. e.kogan

    (65) Рассказываю, в чём проблема с расчётом нормы из графика сотрудника с точки зрения моего ОК.

    Сотруднику могут ввести график, превышающий норму. Но в таком случае переработки в отчёте с расчётом нормы по графику не получится… а внутри запроса контролировать нормированность графика — уже усложнение на порядок (минимум 2 временных таблицы добавятся).

    Reply
  77. e.kogan

    (4), (10), (44), (48), (60) — смотрите обновления (они технические, но важные). (67) — пока порадовать не могу.

    Reply
  78. e.kogan

    (71) Не получается логически кое-что. РВ будет показывать и в те дни, которые отметили праздничными на предприятии (т.е. наравне с государственными, т.к. вид дня одинаковый), а верно ли это?

    Reply
  79. e.kogan

    (69) и все, кому нужен был нормальный подсчёт отпуска на праздниках: сделано. См. обновление.

    Reply
  80. e.kogan

    (42), (65): добавлен расчёт нормы по графику сотрудника. (74): поправлено.

    Reply
  81. akat65

    Вопрос по выводу внутр.совместителей — не входят в отчет….

    В форме Т-13 — ФЛ …

    В ТЗ ТаблицаВремениПомесячно итоги подвала лучше …»Прижать вправо»

    Хорошо бы сделать отбор для настройки вывода видов времени

    по данным текущего периода (с.. по)

    Reply
  82. lukyan

    Сотрудник по состоянию регистра «Состояние сотрудников организаций» находится в отпуске по уходу за ребенком с начала 2009 по конец 2010.

    Формируем табель за январь 2010 и у этого сотрудника за все рабочие дни января стоят явки. Происходит это, как мне показалось, из за этого условия в запросе, в таблице ВТ_ОтклоненияПлан

     ИЛИ ВЫБОР
    КОГДА (НЕ ВТ_ОтклоненияПлан_Возвраты.Сотрудник ЕСТЬ NULL )
    ТОГДА ВТ_ОтклоненияПлан_Возвраты.Период
    ИНАЧЕ ВТ_ОтклоненияПлан_Отсутствия.ПериодЗавершения
    КОНЕЦ МЕЖДУ &НачалоПериода И &КонецПериода

    строка 1142 модуля отчета.

    Скажите, зачем нужно это условие? Может ли отчет корректно работать без этого условия (если причина в нем)? Если нет, то как исправить эту ошибку?

    Reply
  83. e.kogan

    (82) Да, это логическая дырка. Условие введено для уменьшения размеров исходных таблиц. Должно выглядеть как

    «ИЛИ дата начала в периоде ИЛИ дата окончания в периоде ИЛИ дата начала до, окончания — после».

    Перепишу в ближайшее время. Спасибо за замечание.

    Reply
  84. e.kogan

    (82) Поняла. почему у нас такого не возникало. Отуска по уходу за ребёнком у нас рассчитывают сразу, а таблица факта перекрывает план.

    Дописала, сейчас выложу обновлённое.

    (81) Выравнивание в подвале сделала, проблем-то. С внутренними совместителями не могу найти у себя примера, вроде все нормально отображаются… а вот насчёт отбора поясните, пожалуйста!

    Reply
  85. lukyan

    (84) Большое спасибо за табель, очень хороший отчет. Жаль конечно, что не выводятся часы РВ, и часы внутрисменных отклонений, но ничего, мы это сами добавили 🙂

    Reply
  86. e.kogan

    (85) Может, выложите/пришлёте/прикрепите? У меня до внутрисменок руки не доходят никак (

    А РВ в каком случае не выводятся?

    Reply
  87. lukyan

    Хорошо. Вечером выложу. Нашел еще один минус. Отчет не удается сформировать если у пользователя установлено ограничение доступа по группам физлиц. Опять же как мне показалось, происходит это из-а таблицы ВТ_ФИОФизлиц. Добавил в условия этой таблицы

    ФИОФизЛиц.ФизЛицо В
    (ВЫБРАТЬ РАЗЛИЧНЫЕ
    ВТ_РаботникиОрганизацийПолная.Сотрудник.Физлицо
    ИЗ
    ВТ_РаботникиОрганизацийПолная КАК ВТ_РаботникиОрганизацийПолная)
    Reply
  88. lukyan

    И еще одно. Сотрудник с середины декабря 2009 года переведен временно на другую должность по конец 2010. При формировании отчета за январь 2010 года у него отображается старая должность, которая была до перемещения.

    Reply
  89. e.kogan

    (87) По-хорошему надо там всюду распихать РАЗРЕШЕННЫЕ, но некогда и тестировать не на чем.

    (88) Есть подозрение на эту тему, будет минутка — проверю. Там условия на таблицу регистра работников поправить надо.

    Reply
  90. dainastar

    Мне очень очень понравился этот отчет, но к сожалению возникли вопросы. Помогите пож-та разобраться. Если сотрудник находился в отпуске неоплачиваемом с разрешения работодателя, то у него ДО стоит только в те дни, в которые он должен был работать, а в остальные стоят НН (неявки по невыясненным причинам). Но ведь сотрудник был в отпуске, т.е. за весь период должно стоять ДО. Как это реализовать, может в настройках надо поставить. Я перепробовала, не смогла разобраться сама… 😥

    Reply
  91. e.kogan

    (90) Щёлкните по ячейке, где стоит «НН» — откроется документ, которым это зарегистрировано. И ещё вопрос — у вас отпуск был чем зарегистрирован? И был ли рассчитан?

    Reply
  92. larisa.raikova

    табель супер, спасибо огромное за такую полезную штуку!!!

    Reply
  93. lavalava7

    Хотелось бы еще видеть, чтобы норма часов бралась по РПК и для неполных смен (у нас много кто работает на 0.25, 0.5 и 0,75 ставки — сейчас сам пытаюсь допилить)

    Модуль объекта (467):

    стротмес.ЧасовПоРПК=стротмес.ДнейПоРПК+ВыборкаПоДнямМесяца[ИмяПоляНормыЧасов];
    
    Reply
  94. e.kogan

    (93) То есть брать норму как норму*ставку?

    Reply
  95. lavalava7

    (94) не совсем, норма*ставка даст неправильную норму в предпраздничные дни (для 0.5 будет 4-1 <> (8-10) *0.5);

    в (93) часы складываются с днями, еще 1 маленький баг заметил в модуле формы ОтчетНастройка: переменные РеквизитВариантОформления и ТипОформленияПоУмолчанию — нигде не используются, так как:

    Функция МакетОформления(ТипОформления)
    
    Если ТипОформления = Неопределено Тогда
    Возврат ПолучитьМакетОформления(СтандартноеОформление.Камень);
    Иначе
    Возврат ПолучитьМакетОформления(ТипОформления);
    КонецЕсли;
    
    КонецФункции
    

    Показать

    Reply
  96. e.kogan

    (95) Насчёт часов с днями — я в шоке. Неужели никто не заметил до сих пор? О_о

    Модуль формы я в основном дописывала, что там из типового старья болтается — не знаю.

    Reply
  97. e.kogan

    (95) Где можно посмотреть на расчёт нормы с учётом ставки?

    Reply
  98. smok1986

    (85) lukyan, Вышлите пожалуйста поправленный отчет, с учетом внутрисменных. smok-jonik@mail.ru Спасибо огромное!!!

    Reply
  99. smok1986

    (102) доброго времени суток! отчет отличный! подскажите пожалуйста, у Вас есть версия с учетом внутрисменных отклонений? очень нужно, спасите) если Вас не затруднит, отправьте пожалуйста его сюда smok-jonik@mail.ru. Заранее спасибо!!!

    Reply

Leave a Comment

Ваш адрес email не будет опубликован. Обязательные поля помечены *