Счет-фактура с 09.06.2009 (Бух 7.7)




Принцип обмена данными из 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='\

82 Comments

  1. victuan

    Скриншот давай!

    Reply ↓
  2. valent

    В ячейке (2,6) «Продавец: [?(ДатаДок>=’09.06.2009′,….» поменять Контроль строки

    Reply ↓
  3. Antia

    (2) Зачем? Специально поменял на «переносить по выделенным столбцам». Теперь используется полное название и одной страки может не хватить.

    (1) ?

    Reply ↓
  4. Antia

    (3+) «одной строки», конечно…

    Reply ↓
  5. Димча

    Спасибо за своевременную информацию

    Reply ↓
  6. victuan

    (3) Скриншот образца печатаемой с/ф. Чтобы видеть, что качаю.

    Reply ↓
  7. dummy

    (7) а ты просто не качай?

    Reply ↓
  8. MegaMouse

    Нафига скрин? этож .mxl-ка (там даже ни 1 кнопочки нет-)))

    Спасибо что предупредил про СФ новую!

    Reply ↓
  9. alexbuh2

    скачиваю а файлик получается php — что делать?

    Reply ↓
  10. Altair777

    (10) Чем скачиваете? У меня все нормально

    Reply ↓
  11. ron1

    Спасибо.

    Reply ↓
  12. AKV77

    Спасибо

    Reply ↓
  13. Арчибальд

    ДорогА ложка к обеду

    ВооооОооот…..

    Reply ↓
  14. ValeraH

    Во внешней печатной форме SF_451.epf упоминания о новом приказе нет, только в скобках краткое наименование.

    Reply ↓
  15. Antia

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

    Reply ↓
  16. Antia

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

    Reply ↓
  17. x-lota

    Спасибо, что вернули строку с номером Постановления.

    Reply ↓
  18. paul509

    по поводу шапки — в постановлении ничего не сказано и шаблона нет, т.ч. думаю фирма 1с права (как всегда), помнится они так и оставили «он же » в счет фактуре, хотя все бухгалтера просили дублировать

    Reply ↓
  19. Ёпрст

    (19) в консультанте форма с исправленной шапкой…

    Reply ↓
  20. paul509

    согласен, консультант прав, 1С нет

    Reply ↓
  21. manan

    не судьба что ли было дождаться 1с-ной формы? сегодня вот вышло, преспокойно поставил

    Reply ↓
  22. Antia

    Фирма 1С выпустила новую счет-фактуру в виде внешней печатной формы (пара файлов .ert и .efd) для всех конфигураций 7.7 ( http://www.buh.ru/newsDescr-4858 ). Номера нового приказа в шапке в них нет.

    Reply ↓
  23. Antia

    (22) Ну, если в день полторы счет-фактуры, то можно и дождаться. А если в день их сотня, то можно и пораньше минуту времени потратить, чтобы потом не перепечатывать.

    Reply ↓
  24. KosmosMars

    дайте для комплексной ссылку на новую форму. Есть где нибудь?

    Reply ↓
  25. logdog

    1с: Бухгалтерия, Пр-во+услуги, Комплексная, Торговля и склад, Платежные документы, Аспект

    http://rapidshare.com/files/245243109/forms.rar

    Reply ↓
  26. KosmosMars

    для комплексной есть где нибудь?

    Reply ↓
  27. Olyunchik

    Спасибо, актуально…

    Reply ↓
  28. alex231273

    Извините но это же постановление по ведению книги покупок и продаж, и мало ли что они там написали по форме счф. В кодекс в ст.169 (форма и показатели счф) изменения не внесены. А не получится обратная ситуация что мне потом налоговая скажет что у вас лишние показатели не предусмотренные НК РФ и к вычету не примем.

    Reply ↓
  29. Арчибальд

    (29) Основания для неприема — только ОТСУТСТВИЕ показателей, предусмотренных НК. И общее правило: показатель добавить всегда можно.

    Reply ↓
  30. alex231273

    (30) ок. но все же изменения в 169 не внесены, смысл тогда этого постановления в части формы счф.

    Reply ↓
  31. Sara3

    HELP !!!! ?(ДатаДок<<?>>>=’09.06.2009′,СокрЛП(Константа.ОфициальноеНазваниеОрганизации)+» («+СокрЛП(Константа.НазваниеОрганизации)+»)»,СокрЛП(Константа.НазваниеОрганизации))

    Переменная не определена (ДатаДок)

    Reply ↓
  32. Арчибальд

    (32)Шо, без документа печатаете?

    Reply ↓
  33. Altair777

    (33) Из операции?

    Reply ↓
  34. Sara3

    Нет, я заменил файл на свой. Открыл документ С/Ф выбрал печать как и всегда и выпала такая табличка снизу. Индификатор ДатаДок соответствует ДатаДок С/Ф

    Reply ↓
  35. Looking

    Наличие/отсутствие надписи в шапке

    «,от 26 мая 2009 г. N 451»

    влияет на принятие НДС к вычету?

    Если я эту надпись сам допишу — это может быть проблемой и клиентов могут потом заставить счета-фактуры перепечатывать?

    Кстати в Консультанте в тексте есть упоминание, а в шаблоне Excel нет, вот скриншот из Консультанта

    http://i077.radikal.ru/0906/bb/8e15e433c977.jpg

    может нам Консультантовцы шаблоны Excel не обновили? или они автоматом обновляются?

    Reply ↓
  36. Looking

    у кого-нибудь в шаблоне Excel из Консультанта есть надпись «,от 26 мая 2009 г. N 451» ?

    Reply ↓
  37. Looking

    Сохранил из Консультанта в формате rtf

    «ПОСТАНОВЛЕНИЕ

    от 2 декабря 2000 г. N 914

    ОБ УТВЕРЖДЕНИИ ПРАВИЛ ВЕДЕНИЯ ЖУРНАЛОВ

    УЧЕТА ПОЛУЧЕННЫХ И ВЫСТАВЛЕННЫХ СЧЕТОВ-ФАКТУР,

    КНИГ ПОКУПОК И КНИГ ПРОДАЖ ПРИ РАСЧЕТАХ

    ПО НАЛОГУ НА ДОБАВЛЕННУЮ СТОИМОСТЬ

    (в ред. Постановлений Правительства РФ от 15.03.2001 N 189,

    от 27.07.2002 N 575, от 16.02.2004 N 84,

    от 11.05.2006 N 283, от 26.05.2009 N 451,

    с изм., внесенными решением Верховного Суда РФ

    от 10.07.2002 N ГКПИ2001-916)»

    в нём в приложениях в счёте-фактуре, и в Книге покупок и в Книге продаж, в доп.листах написано следующее

    (в ред. Постановлений Правительства РФ от 15.03.2001 N 189,

    от 27.07.2002 N 575, от 16.02.2004 N 84,

    от 11.05.2006 N 283, от 26.05.2009 N 451)

    Reply ↓
  38. Looking

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

    Reply ↓
  39. Looking

    В Приложении 1 в Консультанте шапка выглядит так:

    (в ред. Постановлений Правительства РФ от 15.03.2001 N 189,

    от 27.07.2002 N 575, от 16.02.2004 N 84,

    от 11.05.2006 N 283, от 26.05.2009 N 451)

    В Приложении 1 в Системе Главбух так:

    (в редакции постановления Правительства Российской Федерации от 11.05.2006 N 283)

    до Гаранта пока не добрался 🙂

    Reply ↓
  40. Igor-san

    У кого возникает ошибка «Значение не представляет агрегатный объект (Вид)» на 88 строке Товар.Вид() = «Номенклатура», добавьте выше Товар = Докум.Товар; (например, после СтранаПроисхождения = Докум.СтранаПроисхождения; )

    Reply ↓
  41. Igor-san

    Блин, извините, предыдущий мой комментарий к теме http://www.new.infostart.ru/projects/4466/ относится 🙁

    Reply ↓
  42. alexgood

    Минфин утверждает, что опечатки нет, но для налоговых агентов написано «или» в этом поле можно указать или полное или краткое наименование из этого же постановления и никакого «и» — так что надо это в счет-фактуре предусмотреть (отдельно для налоговых агентов).

    А в целом видно что у них опечатка (т.к. либо в первом случае с «и» либо во втором с «или» — неувязка форма должна быть одинаковой для всех, а они ошиблись). Никто не хочет признавать своих ошибок!

    Reply ↓
  43. Sofia_E

    У меня выдает ошибку, пишет,

    ПечКоличество<<?>>

    Переменная не определена (ПечКоличество)

    ПечЦена<<?>>

    Переменная не определена (ПечЦена)

    ПечСумма<<?>>

    Переменная не определена (ПечСумма)

    ПечАкциз<<?>>

    Переменная не определена (ПечАкциз)

    ПечНДС<<?>>

    Переменная не определена (ПечНДС)

    ПечВсего<<?>>

    Переменная не определена (ПечВсего)

    ПечИтогНДС<<?>>

    Переменная не определена (ПечИтогНДС)

    ПечИтогВсего<<?>>

    Переменная не определена (ПечИтогВсего)

    Reply ↓
  44. Sofia_E

    Обновила до 504 релиза-все нормально стало

    Reply ↓
  45. Antia

    Вчера уже 507 вышел с новой формой счет-фактуры.

    Reply ↓
  46. Дашка

    А у меня тоже пишет такую же ошибку как у Sofia_E что значит обновила до 504 релиза?

    я только начала заниматься 1С , помогите мне:)

    Reply ↓
  47. drool

    ребят она для 1с предприятия пойдёт? а то я только вникаю…

    там просто ert и efd файлы, mxl там не пахнет(

    Reply ↓
  48. Дашка

    что такое релиз я поняла,а как обновить его?((

    Reply ↓
  49. Vit aka proger

    нужно менять не только накладную но торг12.

    я к тому что не нужно вобще заморачиваться, а можно просто поменять название организации 🙂

    Reply ↓
  50. Looking

    В вышедшем 155 релизе Предпринимателя 7.7 нет изменений с двумя наименованиями, в описании тоже нет никакой информации об изменениях

    Релиз 7.70.155 от 23.06.2009 г.

    Новое в релизе:

    1. Добавлен комплект регламентированной отчетности за 2 кв. 2009 года.

    2. Исправлены выявленные ошибки.

    Значит ПБОЮЛ не нужно эти изменения делать? Т.к. у них сокращённого наименования нет?

    Reply ↓
  51. Дашка

    а что нужно прописать если не вставлять этот файл?

    Reply ↓
  52. nadiaramazanova

    Подскажите а как скопировать этот файл со счет фактурой в 1С.Спасибо

    Reply ↓
  53. dgv

    Спасибо, все хорошо, для своей организации доработал

    Reply ↓
  54. Antia

    26 числа фирма 1С выпустила исправленные внешние печатные формы СФ для Бух507 и УСН163, у которых в шапке добавлены дата и номер нового постановления.

    Reply ↓
  55. VeRkA

    Файл скачала в указанную папку, а в списке печатных форм в конфигурации «1С предпринимател» новая форма так и не появилась? как загрузить?

    Reply ↓
  56. Antia

    (56) Этот файл предназначен только для Бухгалтерии и не подходит для Предпринимателя. И новая печатная форма в списке печатных форм не появляется.

    Reply ↓
  57. VeRkA

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

    Reply ↓
  58. IP43

    Все установили новую СФ, и многие с опозданием, а теперь контрагенты просят заменить старую на новую, если СФ выписано много, то можете воспользоываться групповой печатью СФ http://infostart.ru/projects/4746/

    Reply ↓
  59. TOsya

    СПАСИБО БОЛЬШОЕ!!!!

    Reply ↓
  60. Loo

    «Инструкция. Скопируйте файл 1csf283_.mxl в папку ExtFormsPrnForms информационной базы.»

    Ну и чего!? СФ не меняется!

    Reply ↓
  61. Antia

    (61) У всех меняется… Поэтому вопросы:

    1. Конфигурация — типовая бухгалтерия?

    2. Ее релиз — 506?

    3. Дата печатаемого документа позже 08.06.09?

    Reply ↓
  62. gamlet_33

    А если релиз 493??? чегой-то ничего не меняется

    Reply ↓
  63. Antia

    (63) Должно меняться.

    Reply ↓
  64. msam

    У меня 1С:Предприятие 7.7

    Типовая конфигурация «Торговля+Склад», редакция 9.2

    Релиз 7.70.942 от 14.07.2006 г. Понимаю, что это не релиз — 506)))))))))))) Как быть? Подскажите пожалуйста

    Reply ↓
  65. Antia

    (65) На инфостарте этих счет-фактур — как в улье мёду…

    Может быть, эта поможет http://infostart.ru/projects/4627/ ?

    Reply ↓
  66. msam@list.ru

    Antia, я какие-то файлики скачал, а второй раз не позволяет сегодня скачивать)) А можете на мыло переслать эти два чудесных файлика? пожалуйста))))))))))

    Reply ↓
  67. msam@list.ru

    спасибо))))

    Reply ↓
  68. Altair777

    (69) Почему не получается? Ссылка битая?

    Reply ↓
  69. msam

    не знаю, пишет что превышено количество скачиваний в сутки, а сутки уже прошли))

    Reply ↓
  70. osavvon

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

    Reply ↓
  71. alba

    Спасибо!

    Reply ↓
  72. vlad.com

    Пожалуйста скиньте релиз 507 на мыло, буду признателен.

    Reply ↓
  73. stalker52rus

    ПОМОГИТЕ !! комплексная 1С 7.7 R770492 , как в ней поменять счет фактуру ?

    Reply ↓
  74. poppy

    (73) Что ты хочешь поменять?

    Reply ↓
  75. stalker52rus

    сделал все обновления, а в счет фактуре один черт как прописывалось по старому строка 2 так и осталось , кас сделат по новому то ?

    Reply ↓
  76. poppy

    (77) Может не до конца обновил?

    Для определения необходимости печати по-новому используется глобальная переменная глДатаПостановления451.

    Reply ↓
  77. mol

    НЕ работает,,,, а собственно что мешало .ert приложить если он есть ?? 🙁

    Reply ↓
  78. Antia

    (79) У всех работает, а у одного не работает? Так не бывает. Релиз, скорее всего, старый.

    А .ert фирма 1С раздает.

    Reply ↓
  79. mol

    Усёёё могу извинится с моей стороны клевета —все работает, просто ошибка какая то в базе была, ну повозившись удалось устранить, у меня заведомо почему то очень много версий счет-фактур висело они и мешали данной работать (видимо полянка от компании 1с попалась).. 🙂

    Reply ↓
  80. spryn

    ПечКоличество<<?>>

    Переменная не определена (ПечКоличество)

    ПечЦена<<?>>

    Переменная не определена (ПечЦена)

    ПечСумма<<?>>

    Переменная не определена (ПечСумма)

    ПечАкциз<<?>>

    Переменная не определена (ПечАкциз)

    ПечНДС<<?>>

    Переменная не определена (ПечНДС)

    ПечВсего<<?>>

    Переменная не определена (ПечВсего)

    ПечИтогНДС<<?>>

    Переменная не определена (ПечИтогНДС)

    ПечИтогВсего<<?>>

    Переменная не определена (ПечИтогВсего)

    Reply ↓
  81. Antia

    (82) Релиз какой? Я для 506 делал.

    Reply ↓
  82. spryn

    RE:

    ПечКоличество<<?>>

    Переменная не определена (ПечКоличество)

    ПечЦена<<?>>

    Переменная не определена (ПечЦена)

    ПечСумма<<?>>

    Переменная не определена (ПечСумма)

    ПечАкциз<<?>>

    Переменная не определена (ПечАкциз)

    ПечНДС<<?>>

    Переменная не определена (ПечНДС)

    ПечВсего<<?>>

    Переменная не определена (ПечВсего)

    ПечИтогНДС<<?>>

    Переменная не определена (ПечИтогНДС)

    ПечИтогВсего<<?>>

    Переменная не определена (ПечИтогВсего)

    Моя ошибка. Извините, все работает.

    Reply ↓

Leave a Comment

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