<?php // Полная загрузка сервисных книжек, создан 2025-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='\
А для 8.1?
(1) Добавил вариант для 8.1.
Имхо полезная вещь, взял в копилочку
(0) На УПП не тестировал?
(4) Работает и на УПП и на КА
(5) 1.Тогда, плиз, добавь в название обработку текст про УПП и КА — аудитория будет шире 🙂
2. Нет ли какой-нибудь обработки по вводу начальных остатков по налогам для случая ввода ЗУП не с начала года?
(6) 1. ОК
2. Нет, а каких именно налогов нужно?
скачал, может, пригодится +
(7) НДФЛ и Страховые взносы
неплохо было бы сразу ввод по ПФР, ФСС, НДФЛ исчисленных, для тех кто базу начинает в середине года, было бы хорошо единую форму занесения остатков на все
Обработка ошибочно создает движение по регистру накоплния Зарплата за месяц в орг с видом расход, следствие чего при вылате зп сотруднику не учитывается сальдовка. а так обработка хорошая и нужная 😀
Спасибо, работает и ЗУП бюджет по источникам
Спасибо за обработку, хочу скрестить с загрузкой данных из бух 7.7
у Вас нет случайно что-нибудь подобного?
Спасибо. Работает. беру в копилку
Спасибо, полезная вещь.
Очень полезная вещь! Спасибо!
Отлично! Полезная вещь!
В копилку..
Гуд
Класс! То, что нужно. Очень пригодилась при переходе на 8-ку.
Огромное спасибо, очень удобный документ! Главное понятен пользователю и нет лишних ошибок, особенно если в организации работают до 50 человек, легче занести начальное сальдо документом сразу правильно, чем потом исправлять ошибки!
Ставлю плюс, хотя ещё не скачал. Полезная разработка, сейчас переходим на ЗУП, а ввод начальных остатков неподготовленному бухгалтеру сделать сложно. Спасибо что есть облегчение для нашей работы.
Скачал проверил на ЗУП 8.2 — 2.5.44, все работает. Спасибо ещё раз, всех с наступившим новым годом, удачи и благополучия.
А зачем движения по регистру «Зарплата за месяц организаций»? Где потом эти движения используются? Достаточно по «взиморасчетам с сотрудниками» движений
(25) На основании остатков по регистру «Зарплата за месяц организаций» производится заполнение документа «Зарплата к выплате организаций»
(26) Ок. Спасибо. Сегодня проверю в КА 1.1.
А для расчета среднего заработка подойтет
(29) Движения по регистру «Зарплата за месяц организаций» обязательно должны быть введены — на их основании производится заполнение документа «Зарплата к выплате организаций». При формировании документов ввода начальных остатков выполняется:
Обнуление остатков по регистрам «Взаиморасчеты с депонентами организаций», «Взаиморасчеты с работниками организаций» и «Зарплата за месяц организаций» — формирование движения с видом «Расход». Соответственно, если нет остатков по этим регистрам — не будет и движений по обнулению остатков.
Формировании движения с видом «Приход» — ввод записей по указанным регистрам на основании указанных пользователем данных.
Пожалуйста, если обнаружена ошибка — сообщить о ней предметно, предложения типа
ясности не добавляют.
(30) в посте 11 про одну проблему уже сообщалось, при вводе остатков в регистр «Взаиморасчеты…» вносятся суммы с видом «Приход», а в регистр «Зарплата…» с видом «Приход» и «Расход» на одну и ту же сумму.
Пожелание: сделать ввод данных в регистр «НДФЛ расчеты с Бюджетом» = очень актуально с 01-01-2011г
В остальном, понравилось.
«Движения по регистру «Зарплата за месяц организаций» где потом эти движения используются?»
так и не понятно…
Спасибо, скачаю. Пригодится при переходе на новую программу.
Чем вам всем не нравятся типовые решения документы «Корректировка регистров накопления» и «Перенос данных»? При их заполнении на маленьких организациях ни один бухгалтер пока не жаловался на какую-то сложность. Все ясно и понятно. Но автору конечно плюс за работу.
(36) ГердаКай,
Чем вам всем не нравятся типовые решения документы «Корректировка регистров накопления» и «Перенос данных»?
Лично мне, нравится, тем что эта обработка эти документы открывает. Очень своевременная обработка была выложена.
Автору — респект
(36) ГердаКай, а в больших организациях бухов сложно заставить это делать. Поэтому автору +
Удобная обработка))) Облегчает процесс на самом деле
Доброго времени суток, подскажите кто сможет — запускаю в небольшой организации ЗУП, конфигурация для меня абсолютно новая, потому взялась за неё с нуля, чтобы изучить. Хотелось бы корректно внести начальные остатки по взаиморасчетам по зарплате, отпускам и налогам работников (ранее учет велся на бумажных носителях). Есть в ЗУПе 2 документа, о которых говорилось в каментах выше, у меня численность работников составляет 30 человек, подскажите вот данная обработка заполняет только регистры накопления, посмотрев ещё на форумах, получила вот такой список регистров помимо регистров накопления, которые должны быть заполнены при старте программы:
Регистры расчета
1)Удержания с физических лиц организаций
2)Отражение основных начислений в бухучете сотрудников организаций
3)Дополнительные начисления сотрудников организаций
4)Основные начисления сотрудников организаций
5)Отражение дополнительных начислений в бухучете сотрудников организаций
и Регистры сведений
1)Состояние сотрудников организаций
2)Учет основного заработка сотрудников организации в регламентированном учете
3)Кадровая история сотрудников (по юрлицам)
их вручную заполнять в документе «Перенос данных»? Просто мне нужно знать качать данную обработку или нет. Ато старт мани не так много )))
Ваша обработка мне очень помогла, спасибо большое.
Под 8.2 УПП не получилось запустить. Сначала при запуске выдавал ошибку на 20ю и 21. строку, попробовал закоментить, форма запустилась но не делает ничего, при любых действиях выдает ошибки.
(42) mihalichman, к сожалению, Вы не указали ни версию платформы (и вариант использования), ни релиз конфигурации, ни описание ошибки. А проверять на всех версиях платформы, всех релизах конфигураций УПП, искать непонятно какую ошибку…
(43) Извините, действительно не подумал. Платформа 8.2.17.153, конфигурация 1.3.41.1 для Украины.
Текст ошибки:
{Форма.Форма.Форма(20)}: Значение не является значением объектного типа (Отбор)
ДокументСписок.Отбор.Организация.Установить(Организация);
Конфигурация незначительно доработана под требования организации. ничего из стандартной конфигурации не изменено.
(44) mihalichman, к сожалению не имею доступа к УПП для Украины. Возможно, в ней нет документа «Перенос данных». В этом случае необходимо выполнить доработку самостоятельно.
(45) К сожалению так и есть. Документа «перенос данных» не нахожу. Что можно сделать в данном случае и как доработать, если возможно опишите в общих чертах, будем разбираться.
(46) mihalichman, если нет документа «Перенос данных», то скорее всего есть документ «Корректировка записей регистров». На форме обработки есть табличное поле «ДокументСписок» тип ДокументСписок.ПереносДанных. Необходимо изменить его тип на ДокументСписок.КорректировкаЗаписейРегистров и изменить в коде использование одного документа на другой.
(47) Из связанных с ДокументСписок нашел только эти
ДокументСписок.Отбор.Организация.Установить(Организация);
ДокументСписок.Отбор.ПериодРегистрации.Установить(Период);
А из найденных указаний на ПереносДанных
ДокументСсылка = ПолучитьСоздатьСсылкуНаОбъект(«Документ», «ПереносДанных», ПоляПоиска, СтруктураРеквизитов, ТабличныеЧасти);
Пробовал изменить в последнем и ошибка та же.
(48) mihalichman, чтобы найти на форме табличное «ДокументСписок» можно воспользоваться командой «Форма — Список элементов управления формы…». А вообще, правильнее обратиться к специалисту.
(49) с «ДокументСписок» разобрался. Со специалистами у нас проблема, те кто обслуживал пропали, новых найти в городе большая проблема, поэтому пока приходится самому выкручиваться.
после решения вопроса с ДокументСписок выходит следующая ошибка
{(8, 47)}: Поле не найдено «ВзаиморасчетыСРаботникамиОрганизацийОстатки.Физлицо»
ВзаиморасчетыСРаботникамиОрганизацийОстатки.<<?>>Физлицо КАК Физлицо,
на сколько я понимаю нужен документ «ВзаиморасчетыСРаботникамиОрганизацийОстатки» в котором поле Физлицо. И в целом я смотрю расхождения в конфигурациях значительные, и выискивать все ошибки и дорабатывать придётся долго, видимо нужно искать такую же обработку только для конфигурации Украины.
UPD: Вместо Физлицо в указанном документе стоит Сотрудники, заменил все ссылки на документ с Физлицо на сотрудники и обработка запустилась
Добрый день! Насколько правильно сработает Ваша обработка, если переносить остатки по зарплате из УПП для Крыма в российскую УПП? И подходит ли она в принципе для такого переноса зп?
(51) IrenLS, к сожалению не знаком с УПП для Крыма.
УПП для Крыма сделано на базе украинского УПП, но проблема в переносе зарплаты из украинского законодательного поля в российское. И еще — не подскажете, как в УПП разделяются документы ввода остатков по зарплате и текущие начисления зарплаты?
При обновлении остатки вылетают.
(54) Уточните пожалуйста — при обновлении чего? Какие остатки? Откуда именно вылетают?