<?php // Полная загрузка сервисных книжек, создан 2024-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='\
Санек — это кто?
Если действительно делается только один док, то для больших баз это не покатит. Одна из пенок стандартной свертки в комплексной (и в ТиС) это отсутствие контроля числа строк в доках формирования остатков. Если их оказывается больше 9999, а в доке больше строк ТЧ быть не может, то следующая свертка не проработает.
(2) читай редми из архива
Если что-то не работает — могу доделать за 500руб.
😀 😀 😀
Описание: перечислено целое стадо конфигураций — но где там разделители учета? И «СвоиЮрЛица»?
Начал смотреть. Сразу уперся в то, что в форме дока нет кнопки «Очистить», а автоочищение ТЧ перед заполнением тоже отсутствует.
1) «Очистить» сделаю 🙂
2) 9999 строк нет ограничения, у меня 200000 строк и нормально 🙂
200000… мЛиииин… а если нужно будет подправить что-то. Скока он будет перепроводиться???
1) подправить — лучше не надо, и вряд ли получится
2) документ СверткаБазы проводится быстро — 5 минут.
(5) Ограничение есть, при контроле базы это видно. Но работоспособность не нарушается, если не пытаться программно получить строку документа по номеру.
нужная вещь, но:
у меня нет бух. учета, только оперативный.
работает быстро, это да. но после проведения результаты по регистрам разные.
может быть и их-за ограничения, яхз. однозначно — после открытия сохраненного документа нумерация строк корявая
1) результаты по регистрам — должны совпадать уж
для проверки есть Контрольные_цифры.ert
2) нумерация строк корявая — так и должно быть, нечего там лазить
(10)
[quote]1) результаты по регистрам — должны совпадать уж
для проверки есть Контрольные_цифры.ert
[/quote]
должны, только ни рожна не совпадают
надо сначала документы удалить до этого (до СветкаБазы) потом сверять только
(12)
[quote]
обожди, не понял. открываем риадми, что мы там видим:
…
Порядок работы:
1) Скопировать базу на всякий случай
2) Запустить Контрольные_цифры.ert ,цифры сохранить или распечатать
3) Сделать документ на конец месяца(года) СверткаБазы,
нажать Заполнить и Провести(ОК)
4) Запустить Удаление_документов_2.ert , нажать «Удалить документы»
5) Запустить Контрольные_цифры.ert ,цифры сравнить со старыми
если цифры не изменились то все данные в порядке
6) Запустить Удаление_документов_2.ert , нажать «Удалить периодические реквизиты»
(или пункт 6 в первую очередь)
[/quote]
т.о. удаление доков уже после совпадения сумм.
что я делал не так?
4) Запустить Удаление_документов_2.ert , нажать «Удалить документы»
5) Запустить Контрольные_цифры.ert ,цифры сравнить со старыми
сначала 4) потом 5) а не наоборот !!!
(14)
санек, сделал все, как ты сказал.
одна бочина — база до свертки была 1,2 гига, опосля — 2,5.
только партии товаров весили 200 метров, стали 1,5 гига
у меня база была 10Гигов стало 7Гигов
(после удаления 2008г.)
удалю 2009г и станет 1-2Гига наверна 🙂
частично с вами не согласен.
не всегда 1 документ лучше чем 1000 документов..
Вовремя! А то я типовой в Комплексной уже неделю сворачиваю… :))
после заполнения документа СверткаБазы, при нажатии кнопки «Провести» (то же самое происходит и по кнопке «Записать») появляется сообщение вида: «1C:V7 starter program (single-user) — обнаружена ошибка.» и программа закрывается.
сталкивался ли кто с данной ошибкой?
(19)
сюда . у меня на серваке отработало за 23 минуты, при этом и доки поудаляло, и периодику, и регистры, и таблицы попаковало.
такого не было.
кроме того, не совсем понравилось. долговато отрабатывало, и в (15) я уже говорил.
рекомендую посмотреть
«рекомендую посмотреть сюда»
— оно только для ТИС подходит как я понял т.к. там сворачивает только регистры без проводок.
Не работает! База 11 гигов, необходимо удалить 2 года инфы, запускаю работает, потом пишет недостаточно памяти и закрывает 1С, пробовал и на сервере и локально! Может я что-то не правильно делаю?
один документ на миллион строк, это круто!!!
при нажатии кнопки заполнить просит записать, при записи 1с вылетает без ошибок.
Когда-то делал такое для ПУБа, конечно не универсальное. В документах надо не более 300 строк, больше трудно проверять и проводятся дольше. И было вида три документов для разных видов регистров, но точно не один.
«при нажатии кнопки заполнить просит записать, при записи 1с вылетает без ошибок.»…
Для «Торговля и Склад» также выбрать галочкой «Планы Счетов»
(или отключить проведение по бухучету)
у меня на этом пункте
3) Сделать документ на конец месяца(года) СверткаБазы,
нажать Заполнить и Провести(ОК)
после того как нажимаю провести пишет точка актуальности будет перенесена…..!продолжить! нажимаю да и пишет период не открыт((Что делать?
так же она не поддерживает валютные счета в БИ
т.е. сохраняется только сумма в нац.валюте
для себя поправил
тоже намечается свертка. на досуге попробую погонять, чтобы заценить
При удалении документов можно было бы и транзакции воткнуть.. на это очень много времени тратится..
«транзакции воткнуть..» — транзакции наоборот зря много времени пожирают.
«валютные счета в БИ..» — добавлю через год при след. свертке.
хорошая тема
что нужно вводить в поле ПолеВидРегистра когда открываю документ свертка базы?
само всё вводится по кнопке Заполнить
«валютные счета в БИ..» — доделано 🙂
3) Сделать документ на конец месяца(года) СверткаБазы,
нажать Заполнить и Провести(ОК)
Делаю по инструкции По любой кнопке, записать заполнить и тд программа 1с ТиС просто схлопывается (Закрывается) без всяких причин, даже отчет не предлагает отправить
база дописанная по цветам и размерам, так что не получается
риадми читать надо было, там примечание как раз для ТиС
Это то как раз сделал, отключил дополнительно formex и 1cpp вроде пошел, через 20 минут опять выкинул без объявления войны и ошибок, в документе пусто
если уж совсем неохота риадми читать то скопирую оттуда уж:
Установка:
Запустить 1С с помощью Конфигуратора, Конфигурация — Объединение конфигураций — Открыть
Выбрать в списке только документ СверткаБазы, остальные галочки убрать.
Для «Торговля и Склад» также выбрать галочкой «Планы Счетов»
(или отключить проведение по бухгалтерскому учёту у документа).
всем привет!
кто-нить пробовал уже сворачивать? А то у меня 1С Комплексную один год уже вторую неделю сворачивает. Может я чего не так сделал, хотя документ заполнился (порядка 88000 строк). Сервак показывает что процесс загружен на 25%, ОП под нее примерно 1.8 Гб использует
Реально, быстрои и чисто большую базу > 2 Гб можно свернуть только посредством УРБД! Проверено на практике!
Хотя это и сложный метод…
Пробовала сворачивать небольшую Торговлю- все получилось прекрасно. все остатки сошлись как надо — народ доволен
после заполнения документа СверткаБазы, при нажатии кнопки «Провести» (то же самое происходит и по кнопке «Записать») появляется сообщение вида: «1C:V7 starter program (single-user) — обнаружена ошибка.» и программа закрывается.
сталкивался ли кто с данной ошибкой?
Да, тот же результат.
Если действительно делается только один док, то для больших баз это не покатит. Одна из пенок стандартной свертки в комплексной (и в ТиС) это отсутствие контроля числа строк в доках формирования остатков. Если их оказывается больше 9999, а в доке больше строк ТЧ быть не может, то следующая свертка не проработает.
В документе СверткаБазы получилось более 189 тысяч строк. Затем первые строки по номеру стали 0, кроме последних 99999.
Скачала версию 2011-11-20. Тестирую…
свернул торговлю за 15 мин
delete this
Больше 3 суток удаляются документы. Может что-то не так делаю?
1)Контр.цифры. 1 мин
2)Док СверткаБазы создать, провести. 15 мин
3)Удалить документы больше 3-х суток…
Буду скачиватьhttp://infostart.ru/public/100646/ , кот.сделана на основе этой обработки.
Больше 3 суток удаляются документы. Может что-то не так делаю?
у меня удаляется 2 месяца за 1 ночь (60000 документов)
год удаляется за 6 ночей,
контора работает почти круглосуточно, поэтому пришлось сделать свою обработку чтоб работало быстрее чем стандартная.
Посмотрел я её — ничего лучше там нет.
(50) Согласен. Вашей версией все отлично свернулось уже который раз.
Пробовал на небольшой базе. Все получилось.
Озадачил базу на 14 гигабайт, хотел урезать 2 года.
Прождал до утра, утром пришлось выключить. Перегружал сервер из за обновлений.
Попробую позже еще раз.
Из существующих здесь обработок удобно средством анализа результатов свертки.
(52) OrsoBear,
Удаление документов может занять длительное время.
Можно остановить обработку удаление_документов с кнопкой ESC и потом запустить заново и продолжить дальше.
я может чего не понимаю или не так делаю, но сделать документ сверткабазы не получается
У меня заполняет документ, и выдаёт такую ошибку:
БИ.ВыполнитьЗапрос(ДатаДок,ДатаДок);
{Документ.СверткаБазы.Форма.Модуль(297)}: За данный период бухгалтерские итоги не рассчитаны!
Затем, при проведении база долго-долго обрабатывается и завершается аварийно.
Торговля и Склад 9.2. Бухучёт не ведётся. При проведении пишет количество строк 129171.
(55) malyavin,
через операции бух итоги рассчитайте
Спасибо, помогло 🙂
А что означает «Заполнять непустые реквизиты…»
Спасибо
(55) malyavin, для ТиС надо читать риадми как устанавливать(57) malyavin,
Пробывал на большой базе. Тоже оч. долго.
После выполнения обработки «свёртки базы» я пометил на удаление все документа и периодические реквизиты входящей в комплект обработкой.
Всё пометилось.
А потом, когда я делаю удаление помеченных объеков стандартной операцией, эти документы не удаляются.
Находится куча ссылок на них, с том числе на сам документ «Свёртка базы»!!!
Как удалить?
Ридми прочитал уже много раз. Что-то там ничего нет про это.
Могу скопировать его содержание сюда.
Может, старый ридми?
(61) malyavin,
«..на сам документ «Свёртка базы»» — для этого есть галочка в документе «заменять непустые реквизиты…»
«..Ридми прочитал уже много раз»
Установка:
Запустить 1С с помощью Конфигуратора, Конфигурация — Объединение конфигураций — Открыть
Выбрать в списке только документ СверткаБазы, остальные галочки убрать.
Для «Торговля и Склад» также выбрать галочкой «Планы Счетов»
(или отключить проведение по бухгалтерскому учёту у документа).
При попытке создать документ СверткаБазы, вылетает с ошибкой «Out memory» и все. Можно ли переносить регистры отдельно друг от друга, у меня есть впечатление что вылетает на регистре партий. В год у меня порядка 100000 документов, и все это нужно удалить и перенести остатки, которых тоже немало (товара — 1500, клиентов — 1000).
Конфигурация «Комплексная», на сервере 8 гиг памяти, ОС Винда Ентерпрайз 2003.
Проверьте, версию платформы, у меня на 25 платформе с такой же ошибкой падала ЗиК при переносе в ЗУП
«Out memory» — означает увеличьте размер файла подкачки
(наверна)
У меня 11Гиг база, 30 тыщ документов в месяц.
Сделал файл подкачки 8 гиг, все равно вылетает
Вопросы и замечания по свёртке ТиС 9.2:
1. Что за справочник КПК документы, который предлагается очистить? У меня такого нет. Имеется ввиду карманный комп, или что?
2. Не опасно ли «Очистить справочник Партии»? Она очистит партии за указанный период свёртки, или вообще все? Прошлый раз нажал, она ВСЕ партии удалила. Может, правда, я тогда в датах ошибся. Но повторно экспериментировать боюсь.
3. Когда я пытался сделать свёртку за 4 года, при проведении дока Свёртка база через какое-то время закрывалась аварийно, а док проводился пустым. За 2 года провёлся.
4. Валюта базы — USD. И по итогам за год результаты по некоторым позициям разошлись на несколько центов. Конкретно происходило округление, например, в итоге по 1 центу набежало 23 цента по одной позиции.
И главное:
Доки она все пометила на удаление, а окончательно удалить не получается. Находятся ссылки на них. Может, есть какая-то обработка для удаления этих ссылок?
1) КПК документы — есть только у кого в 1С подключены КПК
2) очистить партии за указанный период свёртки. Нужно указывать правильную дату.
3) лучше делать по году уж. Я делаю по 2 месяца за ночь.
4) не знаю, надо тестировать
5) чтоб доки удалялись надо было ставить галочку «заменять непустые реквизиты типа документ…»
Спасибо,очень нужная вещь иногда бывает))
Вы пишете, что обработка универсальная, и что Вы испытали ее на бухгалтерии.
Запустила Вашу обработку для Бухгалтерии, релиз 534. Снялась с ошибкой:»Не удалось создать Справочник.СвоиЮрЛица».
Да и не было в бухгалтерии никогда такого справочника 🙁
Что делать?
Не люблю я универсальные обработки… Точнее, люблю, но в меру ))) Для свертки данных все-таки лучше использовать точно заточенные решения.
(72) сон,
Сообщение пишет «Не удалось создать Справочник.СвоиЮрЛица»,
это не ошибка а просто сообщение.
А в чем проблема то ?
(73) alexism,
«Для свертки данных все-таки лучше использовать точно заточенные решения»
— это правильно, лучше всего использовать свертку которая в комплекте с программой, но не всегда так возможно, тем более что удалить за год стандартная думает 3-4 суток без остановки.
БИ.ВыполнитьЗапрос(рд_Дата, рд_Дата,,,,1,,»СВК»);
{C:DOCUMENTS AND SETTINGSЯРАБОЧИЙ СТОЛУТИЛИТЫ 1СССВЕРТКА БАЗЫКОНТРОЛЬНЫЕ_ЦИФРЫ.ERT(60)}: За данный период бухгалтерские итоги не рассчитаны! вот такая проблемка при контрольных цифрах плих хелп?
Навеяло (65).
Вообще есть информация, ниже какой версии платформы обработка не работает?
(77) j3d,
У всех работает,
кроме мудаков с сообщением: «За данный период бухгалтерские итоги не рассчитаны»
и кроме чуваков у которых «недостаточно памяти»
а почему так медленно документы удаляются?
Кнопка Заполнить жрёт в 3 раза меньше памяти 🙂 чем кнопка «Заполнить по-старому»
Спасибо за обработку! Единственная помогла. Правда документы за 2 года удаляла дней 5-6. Надо что-то с этим делать)
(81) Бегом в хозмаг, купить рашпиль — и затачивать, затачивать… 🙂
А автору — большое спасибо !!!
интересно а сколько времени уйдет на базу весом 6Гб? Надо свернуть около 8 лет,с большим документооборотом.
У меня почему то задваиваются остатки
например свернул базу на 31.12.2011 235959
строишь оборотку с 31.12.2011 по 01.01.2011
на начало одно значение на конец в два раза больше по каждому счету
Кто-нибудь сталкивался?
(85) materiy_boec, — так и должно быть у тех кто не читает риадми.
(27) aleksandrtymen,
Аналогичная проблема, может кто подскажет что сделать?
(87) dr-mail, может кто подскажет что сделать? — прочитать риадми.
Порядок работы:
1) Скопировать базу на всякий случай
2) Запустить Контрольные_цифры.ert ,цифры сохранить или распечатать
3) Сделать документ на конец месяца(года) СверткаБазы,
нажать Заполнить и Провести(ОК)
4) Запустить Удаление_документов_2.ert , нажать «Удалить документы»
5) Запустить Контрольные_цифры.ert ,цифры сравнить со старыми
если цифры не изменились то все данные в порядке
6) Запустить Удаление_документов_2.ert , нажать «Удалить периодические реквизиты»
(или пункт 6 в первую очередь)
При поппытке записать документ СверткаБазы появляется сообщение вида: «1C:V7 starter program — обнаружена ошибка.» и программа закрывается
(90) Всё делаю именно так, не пойму что за проблема, может носом ткнете, если я чего-то не вижу!
4) Запустить Удаление_документов_2.ert , нажать «Удалить документы»
а удалить все старые документы пробовали ?
(93) да, если удаляю, контрольные цифры по нулям.
(94) dr-mail,
прочитайте риадми ещё раз:
Порядок работы:
3) Сделать документ на конец месяца(года) СверткаБазы,
нажать Заполнить и Провести(ОК)
4) Запустить Удаление_документов_2.ert , нажать «Удалить документы»
что сложного ?
Если не сделать пункт 4) то остатки задваиваются.
Если удалить все документы и даже документ СверткаБазы то остатки обнуляются
Читать научитесь !!!
(95) Делал всё по пунктам, на 3-м выдаёт ошибку: «период не открыт» и документ не проводиться! читал несколько раз. Воспользовался стандартной обработкой 60000 документов свернулись за 8 часов.
(96) dr-mail,
Делал всё по пунктам, на 3-м выдаёт ошибку: «период не открыт» и документ не проводиться!
— с таким вопросом вам в детский сад надо.
Если выдаёт ошибку: «период не открыт» значит надо открыть период или не лезть куда не следует.
читал несколько раз. Воспользовался стандартной обработкой
— где в инструкции написано воспользоваться стандартной обработкой ?
там написано использовать обработку Удаление_документов_2.ert но ни в коем случае не чужие обработки !!
60000 документов свернулись за 8 часов.
— зря старались т.к. вы документ СверткаБазы тоже удалили видимо
Нахожусь на стадии тестирования! Пока все нормально. Документы только удаляются очень долго: 1 месяц (5000 документов) удаляется 9-12 часов! Но у меня SQL.
У меня кстати не смог провестись документ Свертка с 280000 строк. SQL выдавал ошибку о неуникальности какого-то ключа. не стал разбираться, а на основе кнопки «Заполнить» быстренько набросал обработку создающую документы с 3000 строк каждый. Из-за этого «Заполнить по старому» у меня не сработало — 22 символа не хватает, чтобы вместить все строку с объектом)
(24)Мне помогло в такой ситуации определить в конкретный журнал документ свертка базы, запускаю удаление доков.Посмотрим, что будет дальше. Заранее спасибо
(2) pol-pvi,
При открытии обработки УДАЛИТЬ_ВСЕ_ДОКУМЕНТЫ2 (это вариант с 1СPP) Выдает ошибку «Процедура не обнаружена» СоздатьЗапросSQL(1)