<?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='\
А зачем это все сейчас? Вот в декабре 2008 бы…
Ну почему же? приведение ОС к 148н можно делать любой (почти) датой этого года (если РБС не даст более точные сроки)
Спасибо за плюсы, не ожидал такой активности: за первые сутки уже 14 человек скачало. Значит проблема перехода на 148 действительно серьезная и злободневная. Так как охватить все возможные сочетания бухгалтерских ошибок при ведении учета ОС в бюджетке тяжело ,особенно при их сочетании — то просьба о нестандартном поведении обработки просьба сообщать. Сам пользуюсь уже месяц: выложил сюда только тогда, когда замеченые самим собой косяки исправил.
Первый замеченый не мной косяк: очень редкий случай (у меня точно исключительно редкий) когда в справчнике ОС счет затрат указан не 401.01.х а иной , и соответственно амортизация начисляется не д401.01 К104.хх а с другого счета затрат, например Д106.хх К104.хх, ТАК ВОТ ЭТО ПОКА НЕ ПРЕДУСМОТРЕНО! Если у Вас есть такие ОС, то можете для них восползоватся документом «Корретировка аммортизации» по этому ОС с датой не позднее даты обработки (которая является датой перехода на 148н). до тех пор пока не поправлю эту обработку
Подтверждаю ошибочку (4) или фичу-))
Проблемм она не вызвала, решил как и описал автор.
Огромный плюс !!!!!
Опробовал на клиенте — те в восторге.
Желательно скриншоты сделать.
За проделанную работу конечно же плюс. Всех своих клиентов уже перевел на 148н, делал по инструкции которая была выложена на сайте http://www.buh.ru. Обработкам которые были до этого написаны не очень то доверял, предпочитаю когда все бухгалтерские изменения происходят не ручными операциями, а специализированными документами, уже не переживаешь что проводки как то не так в баланс сядут или ещё откуда хвосты повылазят. Если кто читал инструкцию на buh.ru знают что списание до 3 000 проводится документом «Списание ОС (колич)», чтобы проделать это быстрее в конфигурации немного корректировал обработку «Подбор ОС», добавлял строку
«Если (ИтЗаполнить.СКД()/ИтЗаполнить.СКД(3))>2999.99 Тогда
Продолжить;
КонецЕсли;»
Все. В подбор включаются ОС до 3000 р. Проводил документ. Затем нужно принять на забаланс списанные ОС. Сделал чтобы документ «Послупление ОС (заб.счета)» вводился на основании док-та «Списание ОС(колич)» и добавил в нее процедуру
Процедура ВводНаОсновании (ДокОснование)
ВыбраннаяФирма = ДокОснование.ВыбраннаяФирма;
ДатаДок=ДокОснование.ДатаДок;
МестоХранения=ДокОснование.МестоХранения;
ВидОС = 4;
СпрОС = СоздатьОбъект(«Справочник.ОсновныеСредства»);
ДокОснование.ВыбратьСтроки();
Пока ДокОснование.ПолучитьСтроку()=1 Цикл
НоваяСтрока();
ОС = ДокОснование.ОС;
Если СпрОС.НайтиПоКоду(ОС.Код,0)=1 Тогда
СпрОС.СписыватьПриПриемеКУчету=1;
СпрОС.СпособНачисленияАмортизации=1;
СпрОС.Записать();
КонецЕсли;
СтрСч = Строка(ДокОснование.СчетОС);
Сч = СтрЗаменить(СтрСч,»101.»,»С01.»);
СчетОС = СчетПоКоду(Сч,ПланыСчетов.ЕПСБУ);
Количество = ДокОснование.Количество;
Цена = ДокОснование.Цена;
Сумма = ДокОснование.Сумма;
КонецЦикла;
КонецПроцедуры
Все. ОС переходят на забаланс на основании документа «Списание ОС(колич)» и в них проставляется галочка «Списывать при вводе в эксплуатацию».
Доначисление амортизации для ОС от 10 до 20 тыс 1С сама сделала в документе «Корректировка амортизации».
После небольших корректировок переход производил довольно таки быстро.
Метод не идеальный, понравится наверняка не всем. Но вдруг кто-то хочет привести ОС в соответствие со 148н специализированными документами.
Плюсы:
1. Приведение ОС к инструкции 148н происходит специализированными документами.
2. Из п.1 следует, что документы разбиты по МОЛ, а не все в одной куче(как в ручной операции).
Минусы:
1. Если МОЛ много придеться попатеть 🙂
Присоеденяюсь к мнению Borometr, за работу конечно большой плюс. Я тоже свои организации давно перевел на 148 н, так же делал по инструкции, выложенной на сайте http://www.buh.ru.. Так же сам доделывал поступление ОС на забалансовый счет, тока в отличие от Borometr, я сделал обработку, которая сначала выгрузила все файлы документа Списания ОС в дбф формат потом загрузил их в док. Поступление ОС на забалансовый счет, конечно маленько дольше и чуть сложнее, чем выше описано, но все, же работает. Как говориться, сколько людей столько и способов решения!!!
(8) + поддерживаю. Пришлось дорабатывать документ Списание ОС(колич). Добавил в форму кнопку до 3000 и отбор по ней ОС. Также добавил в модуль проведения проводку С01.
В документ Корректировка Амортизации добавил ограничение до 20000.
Все проходит на ура.
(9) В документ Корректировка Амортизации добавил ограничение до 20000.
В 632 релизе эта опция уже есть.
Опция-то есть, но некоторые бухши ее не видят и оставляют <без ограничения>, а потом катаются в истерике. Другой случай: одна вручную выбирала все ОС, затем орала на меня — почему у половины ОС не доначислилась амортизация. Еле-еле объяснил, что амортизация доначисляется на ОС до 20000. Только когда ткнул в инструкцию, замолкла.
Надо предвидеть чужую глупость, чтобы не оказаться крайним и пресекать ее в зародыше.
Интересна часть — анализ ошибок.
Замечен второй замеченый не мной косяк. Если в организации имелись нематериальные активы (102 счет), или имущество казны (108) и они имели амортизацию на счетах соотвественно 104.09, 104.10, 104.11, 104.12 то эта амортизация находилась как амортизация без бал стоимости (конечно не будет балансовой стоимости на 101 счетах, она ведь на 102 или 108 счетах) и списывалась на 401 счет. Выложил исправленую обработку в момент написания этого комментария. Если же Вы воспользовались обработкой скачанной до 16. июля 2009, и у Вас имелись нематериальные активы на счете 102(программные продукты, лицензии, исключительные или авторские права) или имущество казны на 108 счетах, и они имели амортизацию, то амортизация списалась.
Вариант исправления первый: Скачать обработку еще раз с 16 июля включительно, удалить старую операцию, и запуститиь обработку еще раз.
Вариант исправления второй: Найти вручную или спец.обработкой подбора объектов (UCHOISE например) эти ошибочные списания амортизации и удалить их.
Прошу прощения за неудобство вызванное некоректной работой
aldakin 15.07.2009 23:58:11
>Интересна часть — анализ ошибок.
что именно интересно?
Код писал с комментами, удобочитаемо. Если язык 1С понятен, то смотрите листинг обработки. Если непонятен — спрашивайте: отвечу.
Обработка обновлена. счетчик скачиваний обновлен.
Borometr
Ваша боязнь к внешним обработкам и ручным операциям понятна: думаете, что штаьными документами проводки куда надо сядут. Но одного вы не учли: Такое приведение к новой инструкции — разовая операция.
А вот типовых документов вы изменили не один. Теперь либо при каждом обновлении вам нужно не терять код ваших наработок в типовых документах и тянуть годами из релиза в релиз Ваш код , который больше никогда не пригодился(как я понял вы сделали нетиповыми 3 документа и одну обработку), либо второй вариант: спечиально ограничивать возможность их случайного проведения-перепроведения. И ради чего??? для того чтобы быть увереным в корректности операции которую почти типовой документ.
Да соглашусь, обработка может совершить больше глупостей. Моя обработка как я писал выше находила амортизацию нематериальных активов и считала их амортизацией бех балансовой стоимости, что я уже исправил. Вам осталось найти старую операцию, пометить ее на удаление и запустить обработку еще раз.
А вот если ошибка допущена Вами во вставке в типовой документ, или еще хуже : допущена программистами фирмы 1С, что тоже не редкость, то тут не только в конфигураторе каждой базы где вы это делали нужно посидеть, но и потом несколько документов перепровести. В результате такого проведения также возможно ошибки, как и при выполнении внешней обработки. Корректность же выполнения и тех и других способов можно (и нужно) проверять многочисленными другими отчетами, Например «технологический анализ бухгалтерского учета» в регламентированных отчетах. Оборотно-сальдовые ведомасти. ведомости остатков. В поддержку своего решения скажу: что операция собирается кореектно с точки зрения бухучета. так что с 130, 121, 127 и 168 формы должы собиратся без «косяков»
Чудесная вещь, но жаль, что раньше этого не было. Уже почти все заказчики перешли на 148н при помощи документа «Корректировка амортизации»
Обновил обработку. Теперь корректно работает со счетами затрат амортизации «106» и «304.04», до этого все с 401.01 счета шло.
Ну даже если собрали — то контроль ошибок пригодится. Поможет правильно бухотчетность, главную книгу и 7-й журнал собрать. 🙂
По просьбам трудящихся добавил маленькую обработочку в 50 строк которая тем ОС которые уже каким -то образом были списаны на забалансовые счета установить признак забалансового учета.
Плюсанул, Даныч ты лучший 😉
Данычу респект.
а нет случаем обработки по перенумерации инвентарных номеров ОС?
Спасибо!!!
А чем коплект универсальных обработок c диска ИТС не подходит? UCHOIS найти все — дествие — перенумеровать и REFRENUM сам перенумеровывает. А если писать обработку то это строк 5 всего. Есть такие обработки
Необходимо перенумеровать инвентарный номер ОС в соответствии с шаблоном:
1-2 знак (Код аналитического счета)
3-11 знаки (Код по ОКОФ)
12-15 знаки (Порядковый инвентарный номер)
Есть такая обработка, там правда всего строк 150 но не моя. Я свою не писал так как другой человек до меня сделал
У меня есть, но она не совсем такая:http://infostart.ru/projects/5388/
Могу попробовать переделать… ПМ если что…
Сижу грущу… Бухгалтер тормоз вселенский. Полгода думала как сделать. Помог на свою голову. Этой обработкой операцию присобачил. Смотрела на нее 2 недели, потом стерла…. Эх. Говорит — «Вертай все взад!, буду документами и руками править по инструкции!» А там «мама не горюй», — более 2 тысяч карточек, у которых в истории прописано, что ОС Выбыло. И ссылается на эту удаленную операцию. Тетя наша «вспомнила», что нужно еще попередавать ОС туда сюда, чтоб привести в соответствии с действительностью… В общем мрак. Такая хорошая вещь, а как исправить этот «подарок» — пока не знаю….
Так все по инструкции минфина сделано обработкой. Бух справка распчатана, журнал 7 сшит. А что еще КРУ нужно? Что смущает бухгалтера?
Если это был мне вопрос про КРУ, то повторю «…. Тетя наша «вспомнила», что нужно еще попередавать ОС туда сюда, чтоб привести в соответствии с действительностью… » а Выбывшие ОС особо не попередаешь.
Подскажите, нужно ли списывать на забаланс библиотечный фонд и каким документом?
Если цена ОС меньше 3000 р то подлежат списанию с баланса ОС типа Машины и оборудование, Транспортные средства (велосипеды вполне за такую сумму), прочие ОС и Хозинвентарь.
В то время как это не распространяется на Библиотечный фонд, Здания, сооружения, имущество казны, Нематериальные активы. Тут действует принцип до 20000 — однократно начислить 100% амортизации. Особняком стоят драгоценности и ювелирные украшения — ни в какой забаланс не списываются и амортизации не подлежат; и периодические издания (газеты журналы) — для них есть особый забалансовый счет. В 2008 году библиотечный фонд делился только по годам приобритения, например:
До 2003 — 54654руб.
2003 — 54646руб.
2004 — 65771руб.
2005 — 2342руб.
2006 — 67445руб.
2007 — 23425руб.
2008 — 64246руб.
Теперь нужно из каждого такого сводного ОС выделить Издания дороже 20000 (чтобы амортизировать линейно)
и периодические издания — их на специальный забалансовый счет А23. Поскольку это кропотливая и сто-процентно ручная работа — то эти действия нужно делать операциями введенными вручную.
спасибо, буду вводить вручную. Еще хотелось бы спросить, ОС стоимостью до 20000, амортизация была не 100%. Провела корректировку амортизации, ошибки ушли, больше ничего с ними не надо делать?
Больше ничего кроме как……вести учет правильно 😀
Большое спасибо! Все просто и понятно. 😀 😀
Ребят. проблема. запустил обработку. всё записалось. всё шикарно.
Но та сумма которая начислилась отображается только в оборотно-сальдовой ведомости. в главной книге не проходит. получаются расхождения.
Как исправить…. очень срочно нужно
Вопрос снят. нужно было указать вид деятельности в субконто
Все верно. Эти данные должгы бытьл заполнены у каждого элемента справочника ОС вообще для нормальной работы в 1С.
Списания и амортизации происходят исходя из реквизитов элементов справчника ОС. Заполнять их обязательно. Моя обработка тоже использует эти реквизиты.
Для быстрой обработки этих реквизитов с отбором и сортировкой удобно использовать комплект универсальных обработок с диска ИТС конкретно UCHOISE.ERT
Спасибо!!!
Спасибо, обработка очень нужная.
Огромное спасибо автору!!!
ого, неужели всё еще актуально? есть обновленная версия.
+ автору за сей труд.
Автору большое спасибо за эту обработку. Она очень помогла мне. Всегда использую ее для проверки касяков по учету ОС
(41) еще как пригодилась. Передали пару учреждений на совпровождение — у них ничего не сделано!!!
Спасибо!
Обновил для редакции 6.2 скачивая будте внимательны, обработки теперь две
для редакции 6.1 и для редакции 6.2.
рекомнендую еще один мой отчет для контроля кассовых документов.
http://infostart.ru/public/97480/
Кассиры обычно в шоке.
Вчера странно себя повела обработка. Пишет что-то вроде «для недорогих (наименование) стоит линейный способ начисления амортизации». Захожу в справочник — все ок. Как такое может быть?
(47) Fruit83, Это когда основное средство в силу своей малой цены должно быть либо со 100% амортизацией, либо вообще быть забалансом. напрмер некоторые талантливые «бухгалтера» принимают к учету основное средство «калькулятор» за 60 рублей. ставят срок полезного использования 5 лет и начинают начислять амортизацию в один рубль ежемесячно.
Спасибо большое за обработку для 6,2 !!!
Очень хорошая обработка! Только вот можно было бы сделать возможность выбора ОС, а не все ошибки исправлять. У нас, например, есть ОС, по которым ГРБС указал до 40000 руб. начислять амортизацию линейным способом. И еще, в 2011 году не надо доначислять амортизацию по тем ОС (до 40000 р.), которые были приняты до 2011 года (http://www.garant.ru/consult/budget/352112/) .
(51) kadet, пока сильная засада со временем. но буду иметь в виду
Очень хорошая обработка! Только вот можно было бы сделать возможность выбора ОС, а не все ошибки исправлять. У нас, например, есть ОС, по которым ГРБС указал до 40000 руб. начислять амортизацию линейным способом. И еще, в 2011 году не надо доначислять амортизацию по тем ОС (до 40000 р.), которые были приняты до 2011 года(
К этому еще можно добавить в отчеты дату ввода в эксплуатация, так в некоторых случаях проще оценить какие средства и как их учитывать в данном году (напримере все того же отчета: Перечень основных средств с ценой от 3000 до 40000 рублей подлежащих доначислению амортизации)
Отдельное большое спасибо за эту программку…Проследили момент когда надо было делать переброску, пока ревизоры не ткнули нас, если бы не эта штука — пришлось бы 2700 с лишком проводок вручную перебрасывать
Бухгалтер из меня не какой. Прошу помочь с решением ошибки которая препятствует переносу с ББУ 7.7 на 8.2
Ошибка при загрузке базы:
Ошибка записи объекта
ТипОбъекта = Ввод остатков ОС и НМА
Объект = Ввод остатков ОС и НМА 00000003 от 31.12.2011 0:00:00
ОписаниеОшибки = Ошибка при вызове метода контекста (Записать): Номер года в литерале типа ‘Дата’ превышает 3999.
ПозицияМодуля = Обработка.УниверсальныйОбменДаннымиXML.МодульОбъекта(4754)
КодСообщения = 26
(55) Andro_sas, бухгалтерия тут не при чем. Проблема в запросах. SQL 2005?
(56) Yatana, НЕТ Сервера на SQL не имею. Ошибка выходит при переносе данных из ББУ 7.7 в ББУ 8.2.
Dansur, А Вы не могли бы прислать свою обработку мне на эл. почту. (S-blueberry@yandex.ru)У нас очень большая организация хотелось бы попробовать.Пожалуйста
большое спасибо
Присоединяюсь к Katya.buh, моя электронка domino92@mail.ru Тоже очень хочется эту обработку, пожалуйста, но авторитета на форуме совсем нету, скачать низя ((. Если получится, то заранее преогромное спасибо!
а для бгу она подойдет?
Спасибо вам
Обработка отличная и плюс лови