Налог на прибыль по 18ПБУ




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

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

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

<?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='\

35 Comments

  1. Арчибальд

    В чем отличия демки?

    Reply
  2. ZeBeR

    Демка полнофункциональна + наполнена данными для понимания.

    Reply
  3. Арчибальд

    Во время оно пришлось тоже делать нечто аналогичное. Правда, на внешних отчетах + док НалоговыеПроводки. Работа муторная и длятельная. Так что +

    Reply
  4. Арчибальд

    +3 длятельная = дятелная 😀

    Reply
  5. ZeBeR

    Народ оцените плиз работу 😥

    Арчибальд прав, писалась «длятельно» т.е очень долго и «дятелно», т.е очень упорно. Конфа рабочая, несколько фирм на ней работают, но есть одно НО все внедрения делал лично, как на ваш взгляд можно ли внедрить ее без помощи разработчика?

    Reply
  6. Доня

    Конечно очень трудоемкая работа!

    НО! с точки зрения бухгалтера:

    Подводя итоги и подготавливая отчеты (как правило время поджимает), анализировать столь расширенные и ёмкие расчеты по БУ и НУ, сверять, сличать, проверять — это надо еще штат сотрудников по каждому пункту, а потом все сводить. Накладно!

    Опять-таки повторюсь — с точки зрения бухгалтера.

    Reply
  7. ZeBeR

    (6) непонял? я сам бухгалтер и все делаю именно с этой точки зрения.

    Трудоемкая — это по времени написания и отладки самой программы,

    а вот по скорости работы, по наглядности и прозрачности эта программа далеко обставит типовой НУ. Ее внедрение наоборот позволяет уменьшить штат сотрудников, занятых НУ, причем последний все делает в считаные дни (часы) после закрытия периода в БУ.

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

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

    «Расширенные и емкие» расчеты наоборот не мешают, а помогают быстрее искать ошибки, так как ошибки взникают по контретным объектам, статьям и если нет детального учета, то найти одну-две неправильные проводки в общей массе сложно, вот тогда действительно нужен штат бухов, которые будут рыть всю первичку по карточкам счетов.

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

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

    Reply
  8. tango

    Отчего благородный дон не вывесил этот продукт (фулфанкшн) на ИС на продажу?

    Reply
  9. ZeBeR

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

    к тому же

    почему-то у меня есть сомнения, что его будут покупать,

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

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

    Продукт легко использовать, когда в нем разберешься, а вот разбираться — сложно, особенно самостоятельно, ведь разбираться надо буху, а не только программеру, а им «быстрее» сделать постаринке в Excel.

    Reply
  10. Арчибальд

    (9) Согласен. Какой-то НУ у всех уже прижился, менять вряд ли кто захочет. Хотя, может, зря. 😐

    Reply
  11. Моха

    Можно разъяснить такой момент … Мне казалось (я лишь косвенно касался НУ), что он достаточно жестко регламентирован и шаги влево-вправо по сути не очень то нужны и возможны.

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

    Reply
  12. Арчибальд

    (11) НУ, можно сказать, не регламентирован. А что касается правил определения налоговой базы, так там столько разночтений… Мысли 1С далеко не всегда совпадают с мыслями налоговиков. И ручное вмешательство требуется постоянно 😐

    Reply
  13. Моха

    Арчибальд, можно КОНКРЕТНЫЙ пример. Чтобы мне стало понятнее.

    Reply
  14. Арчибальд

    (12) Конкретный пример разночтения?

    Пожалуйста: считать ли зарплату рабочих вспомогательных цехов прямыми расходами или косвенными нигде не указано. Точнее, указано и то и другое.

    Ну и из сабжа:

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

    Reply
  15. ZeBeR

    (11)

    1. по поводу жесткой регламентации.

    НУ не так уж сильно регламентирован, вот один яркий пример п.1 ст.319 НК: «… Налогоплательщик самостоятельно определяет порядок распределения прямых расходов на НЗП и на изготовленную в текущем месяце продукцию (выполненные работы, оказанные услуги) …»

    т.е. это и еще много чего нужно предусмотреть в учетной политике, особенно что касается учета затрат и распределения их на прямые и косвенные. Все это делается индивидуально под каждое предприятие (я имею ввиду производство) и как правило не может быть автоматизировано штатными средствами 1С Бухгалтерии, а следовательно и не отразится в НУ.

    еще один пример это зарплата: надо один раз попробовать проверить ЗП на налоговых счетах (выгруженную например из ЗиКа) — та еще маета, а что там д.б. всеравно сверяют с бухучетом, т.к. в БУ все гораздо проще увидеть и проверить. Грубо: — прямая ЗП Дт20Кт70, — косвенная ЗП Дт23,25,26 Кт70, — непринимаемая к НУ Дт91 Кт70 и нафига после этого мне налоговые счета? котороые еще хрен проверишь.

    2. не очень понял про ручное вмешательство?

    ручное вмешательство возможно в программу, а не в учет.

    Если имеется ввиду НУ от 1С, то даже у них предусмотрено ручное вмешательство путем введения «Бухгалтерской справки». Это обусловлено тем, что автоматизируются только наиболее объемные операции, а в НУ много нюансов, которые встречаются не у всех или очень редко, так что автоматизировать их нецелесообразно. Считай отдельно и вводи вручную готовую цифру.

    Пример: расчет процентов по кредитам и займам, принимаемым к НУ. Сам расчет довольно сложный, многофакторный, а в 1С вводится справкой только итог.

    Reply
  16. Моха

    Я не уверен, но, кажется, в БП параллельный план счетов для нужд НУ по налогу на прибыль делает ситуацию боллее управляемой и прозрачной или нет?

    2Арчибальд

    Не это ли конкретный пример, когда надо иметь не один мегаплан мегасчетов, а 2? Это к вопросу о великом и могучем РСБУ.

    Reply
  17. Моха
    Налогоплательщик самостоятельно определяет порядок распределения прямых расходов на НЗП и на изготовленную в текущем месяце продукцию (выполненные работы, оказанные услуги) …»

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

    Reply
  18. Моха

    Зачем вворачиваться в космическую Задницу, бессмысленную и беспощадную? Чтобы потом с победой оттуда вылезть?

    Reply
  19. ZeBeR

    (17) никто и не мудрит, просто в 1С Бух 7.7 производства нет в принципе, поэтому как ни сделай, а штатный НУ работать не будет.

    (18) это ты про НУ и 18 ПБУ? так туда нас государство вворачивает без нашего согласия и слава тому кто вылезет с победой!

    Reply
  20. tango

    Термин «государство» мне все больше представляется лишенным смысла.

    За всем — какие-то люди со своими интересами.

    «Государство» при наличии отсутствия «государя»?

    2ZeBeR — не думали перевести настройку на 8.х?

    Reply
  21. Моха

    (19) Мне сложно судить по 7-ке. Я по БП сужу. Там и отдельный план счетов для НУ по налогу на прибыль выделен, и собственное производство простенькое реализованое.

    Reply
  22. ZeBeR

    (20) мне еще недовелось перейти на 8.х, по слухам там НУ сделан получше чем в 7.7. Надо сначала разобраться есть ли смысл как сказал Моха «вворачиваться в космическую Задницу». 😀

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

    Reply
  23. Моха

    (22) В БП нашел пока 1 реальный минус — меньше форм разных для отчетов по зарплатному блоку, чем в 7-шной бухии.

    Reply
  24. Арчибальд

    (21)

    и собственное производство простенькое реализованое.

    Здесь ключевое слово — простенькое. Даже очень простенькое. Страшно далеко оно от народа.

    А налоговый план счетов и в семерке отдельный. Толку то…

    Reply
  25. Арчибальд

    (22) «Получше сделан» — это тюнинг. На ходовую не влияет. Проблемы из 15 поста все равно никуда не денешь.

    Reply
  26. Моха

    Здесь ключевое слово — простенькое. Даже очень простенькое. Страшно далеко оно от народа.Не-а. Для небольших сопуцтствующих работ без массы переделов и т.п. при небольшом штате очень даже подходит. Точнее снимает массу проблем с буха. Проверено лично.

    Reply
  27. Моха

    (25) Не уверен, что квалифицированно сможем быстро обсосать эти вопросы со всех сторон. Спрошу наших бухов.

    Reply
  28. Арчибальд

    (26) Конечно, бывает, что подходит. Я со своей колокольни смотрю. 80% затрат проходят через 23 счет, нерегламентированный. Без переделов.

    (27) Быстро — не получится. И медленно тоже не получится. Не имеет задача универсального решения. Шесть лет жизни НУ это подтверждают. Автор получил от меня плюс за один из методов решения, а не за решение.

    Reply
  29. Моха

    (28) А я не за то, чтобы найти универсальное решение. Я за то, чтобы найти приемлемое усеченное адекватное по затратам и получаемым данным для анализа решение.

    Reply
  30. erthia

    Я практикующий бухгалтер. Использую эту публикацию с октября 2010 года. Внедрение осуществил штатный программист. Действительно, важнее, что бы в этой разработке разобрался тот, кто ею будет пользоваться. Чисто технически внедрение в нашу сильно измененную семерку ( у нас услуги) прошло быстро и без проблем. Хватило инструкции и недели тестирования на копии 1С. Очень удобно, что надстройка позволяет гибко вводить новые объекты, по которым нужно отслеживать разницы согласно ПБУ 18. Есть вопрос, а реализована ли в программе новая декларация,которая с декабря 2010 г.? Обновление не использовали, так как счет 99 менять не хотим.

    Reply
  31. ZeBeR

    (30) Спасибо, что пользуетесь моей программой. Новую декларацию не делал, т.к. отошел от бух.учета. Посмотрю старые обработки, которыми «накатывал» измененные декларации и постараюсь описать как это сделать, на что обратьть внимание. Ждите ответа.

    Reply
  32. ZeBeR

    (30) Сделал обновление на новую форму декларации. Для установки см. инструкцию разделы установка и начало работы.

    Изменения счета 99 боятся не стоит, просто добавится субсчет 99.3, он необходим чтоб не было глюков, т.к. на него делаются автоматические проводки по списанию ОНА, ОНО (но это черезвычайно редкие операции). Если не хотите его использовать — не используйте. (а сделанные проводки можете перенести операцией например на 99.1)

    Reply
  33. ulas

    Еще бы для 8ки такую же. И для новой формы деклараций. ПБУ 18 и так очень путанное. тут проще быть не может. А настроить налоговый учет — от и до — гораздо сложнее.

    Reply
  34. AB3012

    Еще бы для 8ки такую же. И для новой формы деклараций. ПБУ 18 и так очень путанное. тут проще быть не может. А настроить налоговый учет — от и до — гораздо сложнее. ПРИСОЕДИНЯЮСЬ, а можно для 8,2 такое чудо сотворить???, а то то что есть не устраивает…, тяжеловат для восприятия.

    Reply
  35. ZeBeR

    (34) На 8 ке видимо этого не будет, т.к. подобные вещи рождаются, когда есть в них потребность (личная), а у меня ее нет. Плюс к потребности д.б. возможность тестировать продукт на разных предприятиях и в разных режимах, чего то же нет. Так что увы…

    Reply

Leave a Comment

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