<?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='\
{Форма.ФормаОтчета2007Кв1(1276)}: Преобразование значения к типу Число не может быть выполнено
ИтогЗП_Ж = ИтогЗП_Ж + ВыборкаПоПолу.ЗарПлата;
Проверю. Наверно где-то Null закрался.
Думаю да, а отчет оченно нужный 🙂
В графу раздел 1 Среднесписочная численность работников за октябрь , человек
включаются мамочки, что не должно быть
у меня в орг. всего 30 чел. списочного состава, в октябре половинв из них были либо в отпуске либо еще где-то. В отчете насчиталось полностью отработавших за октябрь 32 чел. и где он их нашел???
(1) это если делать отчет за месяц, в котором еще не начислялась з/п
но ведь отчет за октябрь и зарплата за октябрь начислена.
(1) так и исправлено…
(1) так и не исправлено…
Плюс, как минимум за то что сделал форму.
Залил новый файл, исправленный!
При расчете количества полностью отработавших добавил сравнение «Отработано часов» и «Норма часов» из регистра «Основные начисления». Не знаю, на сколько это верно — жду комментариев.
(1) не уверен, что исправлено — нет возможности отладить. если можно, дайте больше информации.
(4) «по уходу» не включаются, а по «беременности и родам» — не знаю пока как исключить.
(5) проверьте в новом варианте, если не сложно — отпишитесь
{Форма.ФормаОтчета2007Кв1(1299)}: Преобразование значения к типу Число не может быть выполнено
ИтогЗП_Ж = ИтогЗП_Ж + ВыборкаПоПолу.ЗарПлата;
В Разделе 2 в поле Пол должно быть 1 или 2 и не мужской и женский.
При печати раздела 2 если количество строк больше 20, то 4 лист со строками с 21 по 32 не выводится. В таблице ИМЯ «ОсновнаяЧастьРаздел2_2» не захватывает все строки. Плюсую, очень помог!
сегодня выложу окончательный вариант, получше будет
У меня почему-то во второй раздел только 20 человек отбирает (
а как же остальные 300?
(17) Туда не должны все попадать, в первом разделе справа есть таблица — сколько должно попадать. Причем они выбираются из всей выборки случайным образом через определеный интервал и максимум 64 человека.
Я добавил возможнось вывода всех (для отладки и проверки корректности занесенных данных по сотрам) — галочка в верхнем правом углу.
Уважаемые товарищи знатоки. помогите пожалуйста!
При формировании этого отчета у меня появляются данные только на титульном листе. Зарплаты за рассчитываемый период у меня начислены и выплачены, должности, категории заполнены… Что ему не хватает?
Спасибо! Именно то, что искал!
Спасибо
спасибо, очень нужный отчет… ручками заполнять такое совсем не хочется
Отчет действительно нужный. Спасибо. Но у меня он:
1. задваивает людей у кого было кадровое перемещение в октябре (Раздел 1).
2. уволенные в октябре попадают в отчет (Раздел 1 и Раздел 2).
Вот сижу разбираюсь. Может кто уже сталкивался с такими ошибками и решил их уже.
(13) При использовании ОБЪЕДИНИТЬ записи сгрупировываются по всем полям, т.е. исчезают одинаковые записи. Чтобы такого не было нужно писать ОБЪЕДИНИТЬ ВСЕ. Хорошо что прочитал комментарии, а то у меня кругленькая сумма исчезла.
Спасибо за отчет. Незнаю только как он пойдет у нас.
Версия 2.5.33.4 Пытаюсь выполнить отчет. Выдает Ошибка загрузки документа
Внешний отчет не может быть прочитан текущей версией программы.
Что не так?????
1 раздел графа 4 строки 01-03 при наличии внутреннего совместительства суммы заработной платы по данным физ. лицам удваиваются. Помогите исправить
(26) elys, сконвертируйте на 8.2
Спасибо заработало(28) altair1,
Спасибо! Очень нужный отчет
очень нужен отчет, но уже с исправлениями и доработками за 2011 год
Приказом Росстата №330 от 20.07.2011 г. утверждена форма 57-Т.
Предлагаемая обработка полностью подходит для последнего варианта формы 57-Т или её всё-таки надо дорабатывать ?
В качестве «рыбы», к которой надо руки приложить замечательно !!! А вот пользователям придется просто облизываться…
(32) marshev_vn, (33) slvovich,
Форма в свое время деалалсь под конкретную задачу. В дальнейшем необходмости дорабатывать не было, поэтому публикуется «как есть».
Судя по комментариям, есть определенные недоработки и ошибки. К сожалению, у меня сейчас возможности нет этим заниматься. Спасибо за понимание.
Наверно, хороший отчет и нужный. Но рейтинг НОЛЬ. Кончились добрые дела на этом свете 🙁
как я понял, если прилодить руки к этому отчету, то можно его подвести к новому приказу от 20.07.2011, кто-нибудь уже сдавил 57-т за октябрь 2011 сделанную на базе данного отчета?
Отличный отчет! С удовольствием бы переделала этот отчет под новые требования, только скачать не могу ((
Спасибо БОЛЬШОЕ за отчет!!! Есть от чего оттолкнуться дальше для доработки.
а для ЗБУ такая форма есть?
не высчитывается Численность работников списочного состава, сначало ругался на ПорядокКатегории, попровал добавлением, но после выполнения запроса выдает всего две записи с пустыми полями КатегорияСтатистическогоУчета и ПорядокКатегории, кто-нибудь сталкивался с этой проблемой?
нашел сам причину с пустыми полями: у нас в организации в Должностях не установлен Статистический учет.
Обидно блин, придется отдельно кучу запросов писать для составлнеия отчетов вручную(
(41) CHELLL,
Ну так заполните этот реквизит. Так то он ключевой для формирования отчета.
(40) CHELLL, (37) Грааль, (33) slvovich, (32) marshev_vn, (31) love71,
форму обновил, можете проверять.
Все скачала, спасибо!
(34) altair1, С чем может быт связана эта ошибка — пробовала на демо-базе. Отчет пытается записать в ячейку недоступную для записи. Что за ячейка?
{(1)}: Поле объекта недоступно для записи (Значение)
ОбластиРаздел1.П0100001103.Значение = ВыборкаПоКатегориям.Численность
(46) medv,
возможно в программе используется больше, чем 4 категории стат. учета (руководители, специалисты, другие служащие, рабочие)
например, есть «Научные и научно-педагогические работники»
p.s. сегодня поправлю
У меня при нажатии кнопки заполнить выдает такую ошибку
{Форма.ФормаОтчета2011Кв4.Форма(916)}: Поле объекта не обнаружено (ОплатаБЛПоТравмеВБыту)
ВидыРасчетаНорма.Добавить(ПланыВидовРасчета.ОсновныеНачисленияОрганизаций.ОплатаБЛПоТравмеВБыту);
(47) altair1, Точно, нашла. «Научные и ..» имеют порядок «3». Я эту категорию переместила в конфигураторе! на последнее место, чтобы наши «Рабочие» стали ЧЕТВЕРТЫМИ, и отчет заработал. Спасибо!
P.S. добавила в основные начисления по больничным — больничный лист за счет работ.,плюс смотрю норму дней, а не часов.
ау помогите я + поставил
P.S. добавила в основные начисления по больничным — больничный лист за счет работ.,плюс смотрю норму дней, а не часов.
не уверен, что его нужно выкидывать из 1 раздела
Указания по заполнению форм федерального статистического
наблюдения:
…
В фонде заработной платы работников списочного состава, в частности, учитываются:
…
89.2. Оплата за неотработанное время:
…
м) оплата дней невыхода на работу по болезни за счет средств организации, не оформленных листками временной нетрудоспособности;
…
(48) Valdis_KH,
уточните программу и номер релиза
(53) altair1,
ЗБУ 8 релиз 32.3
(54) Valdis_KH,
как говорит в этом случае 1С: «пользуйтесь актуальными релизами» 🙂
видимо у вас нет в списке предопределенных такого вида расчета. обновитесь или закомментируйте эту строчку в отчете.
релиз актуальный вышел только вчера
(55) altair1,
как и где?
(56) Valdis_KH,
прошу прощения, не увидел «ЗБУ».
Отчет не проверялся на данной конфигурации и предназначен для ЗУП, КА и УПП.
Но способ решения проблемы тот же — закомментируйте эту строчку в отчете.
строчку закомментировал но вышла эта ошибка
{(1)}: Поле объекта недоступно для записи (Значение)
ОбластиРаздел1.П0100001103.Значение = ВыборкаПоКатегориям.Численность
{(1) }: Поле объекта недоступно для записи (Значение)
ОбластиРаздел1.П0100001103.Значение = ВыборкаПоКатегориям.Численность
можно это изменить в самом отчете, а не в основной конфигурации программы
(49) medv,
у меня та же ситуация подскажи где поправила
(47) altair1,
поправил?
(62) Valdis_KH,
вечером, попозже.
Спасибо большое за отчет. Очень кстати.
Не работает функция Сохранить отчет, выдает ошибку «Преобразование значения к типу Булево не может быть выполнено».
Исправила так:
Функция СобратьДанныеТекущегоТаблПоля(ТабличноеПоле)
СтруктураДанныхПоля = Новый Структура;
Для Инд = 0 По ТабличноеПоле.Области.Количество() — 1 Цикл
ТекущаяОбласть = ТабличноеПоле.Области[Инд];
Если Не ТекущаяОбласть.ТипОбласти = ТипОбластиЯчеекТабличногоДокумента.Прямоугольник Тогда
Продолжить;
КонецЕсли;
//Если НЕ(ТекущаяОбласть.СодержитЗначение) Тогда
// Продолжить;
//КонецЕсли;
Если ТекущаяОбласть.СодержитЗначение = Ложь Тогда
Продолжить;
КонецЕсли;
ИмяПоказателя = ТекущаяОбласть.Имя;
//ЗначениеПоказателя = ТекущаяОбласть.Значение;
ЗначениеПоказателя = ТекущаяОбласть.Текст;
СтруктураДанныхПоля.Вставить(ИмяПоказателя, ЗначениеПоказателя);
КонецЦикла;
СтруктураДанныхПоля.Вставить(«ОргАдрес», мАдресвФорматеДляВыгрузки);
Возврат СтруктураДанныхПоля;
КонецФункции // СобратьДанныеТекущегоТаблПоля()
(63) altair1,
А теперь исправлено?
(66) Valdis_KH,
да.
Аналогично не работает функция очистки.
форма заполняется все супер, выдает
Категория «Рабочие» не обрабатывается!
и еще во 2 разделе другие служащие ставит цифру 4, а рабочие 5. Это можно как то исправить.
Стаж берет по приказу о принятии, а можно брать из данных по сотруднику, общий стаж?
(69) Valdis_KH,
1. Используемых категорий статистического учета, которые указаны в должностях организации должно быть всего 4 и именно в таком порядке: 1 — руководители, 2 — специалисты, 3 — другие служащие, 4 — рабочие.
В других случаях отчет корректно работать не будет.
А у вас категория «рабочие» 5-я по-порядку.
2. Колонка 7 в Разделе 2 называется «Стаж работы в данной организации» (считается с момента приема) — туда не должен попадать общий стаж.
(65) KOMETA,
странно, у меня все работает. а вы на какой программе (релизе) пробовали?
(71) altair1, ЗУП редакция 2.5 (2.5.41.3).
а можно сделать чтоб в разделе 2 эту категорию можно было исправит вручную
(73) Valdis_KH,
что вы хотите исправить? весь смысл отчета построен на анализе 4-х категорий учета (не 5-ти)
если у вас рабочие — 5, то какие категории с 1 по 4?
(52) altair1, как раз эти дни — подтверждены больничным листом — это и есть больничный, только источник финансирования другой
(61) Valdis_KH, у клиентов конфигурация не на замке, поэтому не составило труда зайти в конфигурацию, открыть Перечисления — КатегорииДляСтатистическогоУчета. В значениях «Педагогов» просто кнопочкой «вниз» переместила на последнее место.
(73) Valdis_KH, в форме внешнего отчета (в которой заполнение разделов), на закладке 2 раздела выделить ячейки с категорией и в свойствах убрать галочку «Защита». И можете вручную подправить. А еще проще — при печати — Показать бланк — там все поля редактируются
У меня в колонку «другие выплаты» раздела II ничего не попадает, заполняется только графа 9, а 11 — нет. Потому что РК нет. Нужно в запросе применить EстьNULL в значениях ВложенныйЗапрос.ЗарПлата, ВложенныйЗапрос.ТарифныйЗаработок, ВложенныйЗапрос.РК при вычисления выражения «ДругиеВыплаты». А в общем спасибо за отчёт, очень помог.
Можете мне прислать последний вариант отчета на oxumoron@bk.ru? Вам плюсик)
Для тех, у кого проблемы с категориями:
в предпоследнем релизе ЗУП (2.5.41.3) добавили категорию «Научные и педагогические работники» и поставили ее на 3 место. временное решение — сдвинуть ее вниз, после рабочих.
а отчет я поправлю с учетом этого.
огромное спасибо все супер очень помогло. только отчет не сохраняет. Вот бы еще добавить при заполнении 2 раздела при установленной галочке по всем можно было удалять лишние строки.
(83) Valdis_KH, сохраняет, смотри по ветке выше мое сообщение. Там можно подправить несколько строчек. Так же и в очистке.
Спасибо большое!!
очень вовремя)
(84) KOMETA,
у меня при запуске пишет
Внимание отчет не зарегистрирован! функция сохранения будет недоступна.
(86) Valdis_KH, зарегьте через регламентированную отчетность.
Вкладка Налоги > Регламентированная отчетность > Справочник отчетов > Добавить.
спасибо добавил, почему-то не стала дата ставиться.
наименование ставится полное, а где можно поправить чтоб ставило краткое и адрес не заполняется
наименование ставится полное, а где можно поправить чтоб ставило краткое и адрес не заполняется
1. поправить можно в модуле отчета. кстати, по инструкции должно ставиться полное наименование, а потом в скобках краткое
2. заполните в карточке организации почтовый адрес
{Форма.ФормаОтчета2011Кв4.Форма(1873)}: Преобразование значения к типу Число не может быть выполнено
Если ТекКатегория-СтарКатегория>1 Тогда
В модуле
ТекКатегория = Выборка.КатегорияСтатистическогоУчета;
Если ТекКатегория-СтарКатегория>1 Тогда
// пропустили
ПропущенныеКатегории.Добавить(ТекКатегория-1);
сообщить(«пропустили категорию «+Строка(ТекКатегория-1));
КонецЕсли;
Значение ТекКатегория получается неопределенным. Подскажите, в чем может быть дело.
Не для всех должностей проставлены категории?
Можно наверное в запросе добавить:
|ГДЕ
| (НЕ ВложенныйЗапрос.ОтработаноЧасов < ВложенныйЗапрос.НормаЧасов)
| И ВложенныйЗапрос.ЗарПлата > 0
| И ВложенныйЗапрос.ОтработаноЧасов > 0
| И ВложенныйЗапрос.КатегорияСтатистическогоУчета > 0
(91) EliasShy,
Да, не для всех должностей проставлены категории
(90) altair1,
пусть будет полное, но оно у меня не влазит полностью, а в других формах оно у меня переносится
«1. Используемых категорий статистического учета, которые указаны в должностях организации должно быть всего 4 и именно в таком порядке: 1 — руководители, 2 — специалисты, 3 — другие служащие, 4 — рабочие.
В других случаях отчет корректно работать не будет.
А у вас категория «рабочие» 5-я по-порядку.»
1 — руководители, 2 — специалисты, 3 — научные работники 4-другие служащие, 5 — рабочие.Релиз 41.3 ЗУП
Что надо исправить при изvенившихся категориях?
(96) rybusha,
отправьте научных работников на 5-е место. и не выбирайте их в должностях в категории статистического учета, иначе выборка будет недостоверная.
Ну вот и все. Дружно впадаем в спячку еще на 2 года. Всем спасибо за участие! 🙂
Спасибо за отчёт!Очень кстати,а то сотрудники отдела труда и зарплаты у меня сидели куковали!
Подскажите как отправить научных работников на 5 место.
(103) ritavg,
в конфигураторе откройте перечисление КатегорииДолжностейДляСтатистическогоУчета, стрелочками переместите значение вниз после всех
да… скачать проблематично( если есть возможность киньте на мыло Ghost13341@yandex.ru
прога норм+ однозначно)
часто не правильно формирует отчет
Спасибо! очень помогло при сдаче отчета в Росстат