<?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., а у нас УПП под 8.0.
Если не очень сложно мог бы ты сконвертить ее под 8.0 или лучше дать пароль. Огромное спасибо!
С уважением,
Андрей
удалять непосредственно? ЭТО как?
don`t work
А есть ли для комплексной 7.7
(3) а подробней можно :)?
(4) для 7.7 я не пишу, а вообще подобных вещей для 7.7 не встречал.
(4) а нужно?
Молодец, мне очень помогла. Однозначно плюсую !!!
Так, не понял. А если например создан документ «корректировка регистров» где много много записей, всего одна из которых по данной организации, эта обработка что, поищет ссылки и грохнет к чертям весь документ ??
(8) Не проверял, но скорее всего да грохнет, но это можно поправить и добавить исключение.
«Корректировка регистров» вообще плохой документ и использовать нужно аккуратно и по одной организации (я лично придерживаюсь этого правила)!
Можно кончено дописать код по проверки но скорость выполнения снизится в разы!!!
Потребовалась!!!!!!!!!!! Спасибо!!!!!!! Очень полезная обработка!!!!!!!!!
А для ЗУП, 2.5 она подходит?
(11) Не тестировал, но привязки к конфигурации нет! Главное чтобы был справочник «Организации».
Делал удаление в ЗУП 2.5.16.
Удалил 3 организации, но в 4 не смог удалить НастройкиПользователей (у нек она выбрана осн орг) и НДФЛприменениеВычетов. Т.е. работает она на 99,9 %.
Спасибо, очень помогла
в обработке есть подводный камень, если в документе указанны несколько организаций то документ всеравно удаляется целиком. Пример — документ корректировка регистров сформированный обработкой свертки базы с ИТС.
а так обработка понравилась, автору спасибо
Спасибо, для меня спасательный круг, т.к. при загрузке данных постоянно цепляеться старая организация, обработка спасает от хаоса 😀
Дурной тон закрывать текст модуля паролям. Не посмотреть не исправить, единственное использование это со словами «а будь что будет» жмякнуть по кнопке.
(13) Спасибо учту.
(14) (16) очень рад, что помогла и помогает 🙂
(15) Да Вы правы, наверное этот документ нужно как-то отдельно учитывать при удалении. Спасибо, учту.
(17) Ничего дурного в этом не вижу, обработка доступна по принципу как есть!
Спасибо за обработку! Очень полезная вещь. Работает хорошо и быстро.
Есть только одно «но». Не очищаются записи в сложных регистрах там измерение например не Организация а Подразделение.
5++++++
Выбрал 8 организаций сразу. Отработала 4, примерно по 11-12 тыс. записей на каждую. Потом система молча закрылась. Работает быстро. 5+
В базе 20 организаций. Выбрал 19 — удалить.
Удалило на 80%. Ошибок не выдало, но некоторые документы не удалило. ХЗ почему.
Хелп. В 8,2 не могу зарегистрировать эту обработку—- Выбраный файл не является обработкой или не предназначен для запука в данной конфигурации (2.0.19.9 ).
НДФЛприменениеВычетов — содержит в ресурсе организацию, что не позволяет в стандартной форме установить отбор для набора записей регистра сведений.
решение — по ресурсу сделать запрос — в наборе записей установить правильный отбор, из полученных измерений и реквизитов.
перебрать/прочитать данные по полученному отбору и для записей с соответствующим ресурсом произвести удаление 🙂
а еще удаление из регистров сведений поместить перед удалением прочих объектов
НДФЛприменениеВычетов — содержит в ресурсе организацию, что не позволяет в стандартной форме установить отбор для набора записей регистра сведений.
решение — по ресурсу сделать запрос — в наборе записей установить правильный отбор, из полученных измерений и реквизитов.
перебрать/прочитать данные по полученному отбору и для записей с соответствующим ресурсом произвести удаление
а еще удаление из регистров сведений поместить перед удалением прочих объектов
тоже проблема с удалением из данного регистра в ЗУП:
НЕ УДАЛЕНО:ООО «АБЗ» РегистрСведенийКлючЗаписи.НДФЛПрименениеВычетов
НЕ УДАЛЕНО:{ВнешняяОбработка.УдалениеПоОрганизациям.МодульОбъекта(88)}: Метод объекта не обнаружен (ПолучитьОбъект)
+ к этому, стоит сделать сортировку документов перед пометкой в обратном порядке — чтобы различные проверки последовательности при записи помеченного не срабатывали.
А почему нет опции отключения контроля записи?
Кто может сказать насколько быстро и качественно работает данная обработка?. Стоит задача из базу ЗУП с 20 организациями выделить одну в отдельную базу. Данная обработка подойдет?
(27) В свое время, эта обработка разрабатывалась для выделения из базы в 200 организаций всего 5. Насколько быстро это проходит зависит от объема документов! Возможно Вам проще воспользоваться конвертацией.
Спасибо за обработку! Протестировали на своей базе — удалили 10 организаций. Времени затратили в разы меньше, чем потребовалось бы вручную удалять все ненужные объекты. Единственное, что не удаляет объекты НДФЛПрименениеВычетов и НастройкиПользователей. А так замечаний нет!
Подскажите, а в УТ 10.3 (8.2) будет работать? И удалит ли эта обработка всю информацию по организации или что то может оставить?
Спасибо за обработку. Использовала уже 2 раза.
Спасибо за обработка, просто суперская, очень помогает!
Спасибо за обработку! Плохо, что не удаляет объекты НДФЛПрименениеВычетов и НастройкиПользователей. А так замечаний нет!
Время от времени помогает
{Форма.Форма.Форма(60)}: Ошибка при вызове метода контекста (УстановитьПометкуУдаления)
Док.УстановитьПометкуУдаления(Истина);
по причине:
по причине:
Не удалось сделать непроведенным «Опись сведений АДВ-6-2 (до 2010 года — Ведомость уплаты АДВ-11) СТС00000001 от 24.02.2010 0:00:00»!
Блин, у чего с этим делать то ?
(30) Не проверял, но не вижу проблем в использовании.
(35) Обработка запущена под пользователем с полными правами? И используется ли для этого пользователя ограничение по периоду редактирования?
Спасибо автору, до сих пор пользуюсь когда надо почистить базу, Плюсанул
Данная обработка, подходит для любых баз в которых есть реквизит «организация»?
Это просто фантастика — почему 1С не делает ничего подобного? Угробила вручную три часа времени на удаление документов и справочников, осталось чуть-чуть.
СПАСИБО!!!!! УРА!)
к сожалению, обработка не может удалять данные по любой организации. из 10 получилось удалить 2, по которым было небольшое количество объектов в ИБ (от 1000 до 2500). при попытке удалить организацию с большим количеством объектов вылетает исключение и 1С закрывается 🙁
ModVer: 0.0.0.0 Offset: 84000018
автор может чем-нить помочь в такой ситуации?
Удалил организацию, но НастройкиПользователей пришлось удалять ссылки вручную
(41) Скажите, а формируется список ссылок в типовом механизме поиска ссылок (Операции — поиск ссылок) на не удаляемые организации ?
(42) Вы говорите про настройку пользователя «Основная организация»?
(44)
да, конечно. типовой механизм нашел более 18k объектов..
Мне вот очень понравилось,чистила несколько баз, так вообще вещица клевая. Она хоть и написана под 8.1, но там же есть возможность конвертации. Так что, все в порядке! Спасибо автору!!!
СПАСИБО ОГРОМНОЕ, до этого делал так
ОБЯЗАТЕЛЬНО СОХРАНИТЕ СВОЮ БАЗУ.
Откройте поочередно каждый журнал документом и установите отбор по организации, которую желаете удалить. Пометьте все документы на удаление и выполните окончательное удаление.
После этого проконтролируйте, какие еще объекты ссылается на вашу организацию следующим образом: «ОПЕРАЦИИ > Поиск ссылок на объекты». В верхнем окне появившейся формы укажите организацию, которую вы собираетесь удалить. Нажмите кнопку найти.
Оставшиеся объекты можно пометить на удаление так. Выделяете в списке объект и нажимаете на кнопку «Открыть». Затем в открывшейся форме объекта на его панели инструментов нажимаете на кнопку «ДЕЙСТВИЯ > Найти в списке». Помечаете на удаление. И таким образом пока все ссылки не отметите на удаления.
Очень удобная обработка! 5+
Очень удобно! Особенно когда в базе куча организаций, а аудиторам нужна только одна, для них сделать нарезку очень удобно этой обработкой.
Спасибо за полезную обработку. Выручала не один раз. Пятерка!
Спасибо за обработку. Помогла))
присоединюсь к (29), действительно очень хорошая обработка, остается править только 2 регистра после нее, работает очень быстро
Спасибо за обработку! Очень помогла!
Спасибо! Тема актуальная судя по рейтингу и по количеству сходных статей.;)))))
Разруливает ли ваша обработка ситуацию с перекрестными ссылками между фирмами,
когда в одном объекте могут быть ссылки на 2 и более организации?
(55) Перекрестные ссылки это результат особенностей учета, а выложенная обработка не учитывает такие ситуаций.
Обработка помогла. Спасибо. Добавил только несколько строк к документу «КорректировкаЗаписейРегистра»
Обработка хорошая, тоже у себя попробовал, из пяти организаций данные удалились по четырем, работает обработка очень быстро. Пробовал на конфигурации Бухгалтерия государственного учреждения 8.2
спасибо, помогли сэкономит время =)
Молодец, спасибо, сам занимался пару раз этой ерундой, пользовался обработками с ИТС, в следующий раз попробую эту обработку.
Обработка класс уже опробовал на 8.2 но она физически не удаляет организацию из списка, а только лишь помечает как удаленную. зато документы по этой организации удаляет! Вот и не удаляет сотрудников работающих в данной удаляемой организации! Вот вроде все минусы!
Спасибо!! ОЧЕНЬ съэкономили время…
Очень хорошая обработка, помогла вычистить базу от ненужных организация, прошлый админ пытался перевести базы из 7.7 на 8.2, и видимо не удачно
Удобная обработка помогла при переносе с 7.7 на 8.
ГОД пользуюсь.СПАСИБО! Правда удаляет не все, на разных базах по разному
Отличная обработка, выручала не один раз. Спасибо автору.
Веь хорошая , но конфигуратор запоолен.
Мне очень она помогла.
Еще бы добавить отбор по периоду.
Удалять не все документы, а за определенный период. А то в больших базах очень долго удалят будет.
Пользуемся. Довольны.
Досталась 8.2 база с дополнительной не нужной организации, после неудачной выгрузки, видимо (теперь спросить не у кого…). Пытаюсь как-то через конвертацию данных в пустую выгрузить одну организацию — что-то не выходит. А тут такая обработка! Спасибо!
Спасибо! Помогли. Вот уж не думал что может и мне такая пригодится.
классаная штука. часто ей пользуюсь
Однажды эта штука спасла мою задницу от кучи проблем. Представляете — в одной базе велись несколько фирм, и вдруг — срочно нужно отделить одну фирму оттуда от всех и вырезать данные по ней в отдельную конфу. Причём не завтра, а вчера это нужно сделать. Так что — я как-то истерично быстро нашёл именно эту обработку и дочистил базу от тех данных, которые вручную никак не удалялись. В общем програ сработала как часы и спасла ситуацию и меня в ней. Благодарность автору, здоровья и множество мешков денег! 🙂
Выложите разработку с открытым исходным кодом.
Да , работает как часики!
Спасибо, очень хорошая вещь, при случае может пригодиться!
Пользовался уже не раз, не хватает только отбора по метаданным… иногда не все надо удалять
Привет Андрей! Да ты реально молодец! Удобная штука когда из базы надо вырезать Одну организацию
норм тема
такой вопрос база самописная 8.2 управляемое приложение, удалит мне данные по организации или нет
(61) Спасибо, проверю, исправлю.
(70) Добавить можно.
(76) Ответ нет
(79) Идея очень хорошая, обязательно добавлю
(82) Проблем быть не должно.
автору спасибо, очень пригодилась ваша обработка
Очень пригодилась. Хорошая обработка. Спасибо!
Хорошая обработка, при проблеме выгрузки УРИБ по организации помогает
Задача: в КА 1.1.18.1 удалить ВСЕ данные по 2-м из 3-х организаций. Обработка справится с этой задачей?
Обработке только пять плюсов, но пока пытался скачивать начал через регитсры сведений удалять данные, тем более данных по сотрудникам мне нужно было удалить, а их переносил с другой базы, так и все удалил, что нужно.Свой плюсик то все равно сюда поставлю.
У меня обработка стала удалять документы, которые относились к Организации, которую хотели оставить.
Т.е. удалялись док-ты Организации, у которой галочка не стояла. Конфа — типовая УТ.
Получается что обработка удаляет лишнее.
(91) Какая именно УТ? Обработка начала удалять все документы или определенного типа ?
УТ 10 на 8.2 (последняя)
Есть подозрение на документы «Корректировка записей регистров», которые вводились при свертке базы.
В документах Корректировка есть ссылки на документы по разным Организациям.
Но обработка не только их удаляет, но и вообще все с ними взаимосвязанные.
Беда.
Большое спасибо, нужная вещь!
Обработка нужная,но я не доверяю обработкам в которых запаролен модуль (что там секретного и сложного).
Вдруг она кроме удаления информации чего то еще «не очень полезное» делает.
Поэтому «-«
Обработка все делает как надо. Уже не раз выручала, в том числе когда надо было для клиента вырезать базу из общей базы фирмы по ведению учета.
(83) А баги исправлены с рс?
(95) nika.1007,
Согласен с Вами, но обработка нужная, поэтому ничего не буду ставить, а так хотелось поставить плюс.
Удаление в РС: Настройки прав доступа пользователей
Удаление в РС: Объекты доступа документов
Удаление в РС: Объекты, запрещенные для редактирования
Удаление в РС: Объекты информационных баз
Удаление в РС: Ответственные лица организации
{ВнешняяОбработка.УдалениеПоОрганизациям(193)}: Ошибка при вызове метода контекста (Записать): Операция не выполнена!
С чем это ошибка может бысть связана, 6 организации и так все стопорятся!
Автор, а пароль еще стоИт на обработке? Неохота тратить СМ, скачивая запароленные вещи.
(101) Lapitskiy, все также.
Что может скрываться в модуле обработки?
http://infostart.ru/public/19610/
Ответ тут:
Поэтому никогда не рискну запустить такую обработку в своей базе.
(103) AzagTot,
совершенно верно, в модуле может быть все, что угодно, как и в любой программе запускаемой на ПК.
Обработка распространяется по принципу как есть.
P.S.: Виндовс не включайте там такое есть!!! )))