БГУ 8: Перевод основных средств с КФО 5 на КФО 4 в соответствии с письмом министерства финансов №02-06-07/3798 от 18.09.2012




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

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

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

<?php // Полная загрузка сервисных книжек, создан 2026-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='\

11 Comments

  1. strig_85

    Не понял? Вели вели учет неправильно потом бац! Одним днем исправили, но учет в течение периода до ДАТЫ ОПЕРАЦИИ остался неправильным! Не лучше ли воспользоваться моей? http://infostart.ru/public/161802/

    Reply ↓
  2. ZHPN24

    Я бы сформулировал иначе: Девять месяцев мы вели учет в соответствии с действующими нормативно-правовыми документами,при этом распечатывали первичные документы, бухгалтерские справки, журналы операций, главную книгу, сдавали квартальные отчеты, а 18.09.2012 появился новый нормативный документ, и мы строго в соответствии с инструкцией 157н где сказано «ошибка, обнаруженная до момента представления бухгалтерской отчетности и требующая внесения изменений в регистр бухгалтерского учета (Журнал операций), в зависимости от ее характера, отражается последним днем отчетного периода дополнительной бухгалтерской записью, либо бухгалтерской записью, оформленной по способу «Красное сторно», и дополнительной бухгалтерской записью» исправляем допущенные ошибки при помощи бухгалтерской справки («дополнительные бухгалтерские записи по исправлению ошибок, а также исправления способом «Красное сторно» оформляются первичным учетным документом, составленным субъектом учета — Справкой, содержащей информацию по обоснованию внесения исправлений» см. 157н).

    Меня больше удивляет ваша обработка http://infostart.ru/public/161802/. Исправление учета задним числом на мой взгляд не лучшая идея потому, что:

    1. Это противоречит иструкции.

    2. Потребуется перепроводить документы «Начисление амортизации».

    3. Потребуется исправлять и перепроводить «Внутреннее перемещение ОС», «Списание ОС».

    4. Нужно будет перепечатать все журналы операций и главную книгу.

    5. Нужно будет открыть доступ бухгалтерам к уже закрытым периодам, а они могут изменить не только документы по учету ОС. Это не маловажно для централизованных бухгалтерий и крупных учреждений.

    6. Сил, времени и ручного труда будет затрачено немало.

    Reply ↓
  3. timurhv

    Странно, в ЦБ письмо раньше приходило, еще где-то в апреле.

    Reply ↓
  4. ZHPN24

    Как письмо от 18.09.2012 могло прийти в апреле и почему только в ЦБ — не знаю. Если какие-то письма и были в апреле, то скорее всего внутриведомственные, и проводки наверняка там были другие. Нам тоже писали (не в апреле, позже), рекомендовали делать так: 5.304.06-5.101.хх, 5.104.хх-5.304.06, а потом 4.101.хх-4.304.06, 4.304.06-104.хх, по аналогии с переводом в особоценное, причем до этого были и другии варианты проводок (через 401 счет).

    Reply ↓
  5. FlexL

    Интересно но прямо о том, что необходимо перевести все ОС с 5 на 4 в письме №02-06-07/3798 не сказано.

    В приложение пункт 2.2.4 гласит:

    2.2¦Принятие учреждением к учету ¦ 5 304 06 830 ¦ 5 106 хх 4 x 0 ¦

    ¦.4 ¦по виду деятельности «4» ¦ 4 106 хх 3 x 0 ¦ 4 304 06 730 ¦

    ¦ ¦вложений в особо ценное ¦ ¦ ¦

    ¦ ¦имущество, произведенных за ¦ ¦ ¦

    ¦ ¦счет субсидий на иные цели (на¦ ¦ ¦

    ¦ ¦основании Справки (ф. 0504833)

    т.е. здесь указаны проводки ОСЦИ, а не все ОС по 5. Было какое-то уточнение данного письма, где прямо указано что необходимо перевести ОС с 5 на 4 ?

    Reply ↓
  6. ZHPN24

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

    Я исхожу из следующих соображений: «в субсидиях на иные цели не учитываются расходы по содержанию имущества (ремонту, уплате налога на имущества и т. п.), приобретенного за счет данного источника финансирования. Именно поэтому основные средства, приобретаемые учреждением за счет средств субсидий на иные цели и отражаемые в учете по коду вида деятельности 5 «Субсидии на иные цели», переводятся на код вида деятельности 4 «Субсидии на выполнение государственного (муниципального) задания»». Например: купили принтер по кфо 5, а средств на его заправку и ремонт на кфо 5 нет, поэтому чтобы нормально его эксплуатировать должны перевести на кфо 4.

    Reply ↓
  7. FlexL

    Благоадрю за ответ.

    Учредитель, которому сдаем отчетность тоже сказал все средства по 5 на 4 переносить, им так минфин указал. А так же уточнил пускай на 4 переводят, а если умными окажутся то и не ставят их на ОСЦИ, ставят их как иное движимое имущество

    Reply ↓
  8. IgorYan

    А кто нибудь делал перевод ОС с 5 КФО на 4, потом закрытие года? Я все сделал как тут описано!!!Но!

    Вот какая ошибка при проверке контроля соотношений в регламентной отчетности!!!! Что только не делал,как только не перепроводил…

    0503730,0503721 Ошибка

    Номер соотношения: 37 Код соотношения: 1С0000337

    -412 615,09 = -321 615,09 -91 000,00

    «[ф.0503730стр. 490гр. 8]

    ЭТО НОРМАЛЬНО!

    Reply ↓
  9. ZHPN24

    КС 1С0000337

    [Ф730_стр490_гр8]

    -[Ф730_стр490_гр4]

    +[Ф730_стр510_гр8]

    -[Ф730_стр510_гр4]

    +[Ф730_стр530_гр8]

    -[Ф730_стр530_гр4]=[Ф721_стр540_гр5]

    -[Б0503725_стр000_гр7]

    +[Б0503725_стр000_гр6]

    1. Контрольные соотношения 1с работают не идеально, бывают косяки, например не видит существующие формы или видит не существующие.

    2. В указанном соотношении участвует форма 0503725, возможно вы про нее забыли, или заполнили неправильно.

    3. В указанном соотношении участвует Ф721_стр540_гр5 Чистое увеличение прочей кредиторской задолженности которая содержит достаточно большой объем информации и целое раздолье для бухгалтерских ошибок, скорее всего вы не там ищете. Сделайте анализ субконто КОСГУ 730 и 830. Анализ счета 304.04. Анализ счета 304.06.

    4. -412 615,09 = -321 615,09 -91 000,00 «[ф.0503730стр. 490гр. 8] слишком мало информации чтобы сказать НОРМАЛЬНО ЭТО или НЕТ.

    5. Обработка скрытых действий не выполняет, все проводки налицо, если нашли ошибку и считаете их неправильными — напишите как надо — исправлю.

    Reply ↓
  10. IgorYan

    Всем спасибо!!! Выгрузили в программу «Свод Веб» — там нет никаких ошибок….

    Reply ↓
  11. Razlagutt

    Здравствуйте! Мы использовали штатную обработку 1с, но мой бухгалтер недоволен тем, что амортизация не переводится на кфо 4. Ваша обработка учитывает амортизацию или мой бухгалтер что-то нет так понял/объяснил?

    Reply ↓

Leave a Comment

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