<?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='\
Пока не резал, но однозначно + видно большая была проделана работа
Не хватает подробного описания по шагам.
Хотя из интерфейса все понятно, но может не всем 😉
Резали базу ТиС?
Переделать запросы и выборки на прямые запросы было бы быстрее
Сворачиваются ли периодические реквизиты или просто удаляются до даты свертки?
Проставьте в каких компонентах происходит свертка 😉
В названии есть, а вот в параметрах нету.
Спасибо за заочный плюс.
Периодика «сворачивается» вариантно:
Вар. 1. последнее значение на дату свертки.
Вар. 2. запись в дате свертки суммы периодич. значений по дату свертки (для числовых «накопительных» реквизитов)
Вар. 3. Вариант 2 только для значений, прописанных документами.
Указывается на второй закладке для каждого периодического реквизита, по умолчанию вариант 1.
Периодику можно предварительно сохранить
+(4) Периодика и ссылки сохраняются в подкаталог ИБ «SVERTKA» Т.е. предварительно их можно сохранить в копии, потом просто перекинуть папку в основную базу, обработка файлы найдет.
Свертка для компоненты «Торговля и склад» (обычная, не
(1) базу резал два-три раза, можно сказать, определенный уровень отладки пройден. Прямыми запросами будет быстрее, но не на порядок, — в целом алгоритм стандартной свертки «тяжеловат» (идея была основной ход алгоритма сохранить). Долю времени по запросам можно посмотреть в листинге выполнения.
Подробное описание будет позднее. Хотя, оно больше касается «деталей» типа (5).
+1 несомненно.
пригодится тем, кто предпочитает сворачивать базы алгоритмами, близкими к штатным…
(7) В отсутствие подробного описания: периодические значения по справочникам и константам можно свертывать в любой базе.
еще бы добавить не просто свертку периодических, а и удаление незначащих пер.значений
(9) Что означает «незначащих» и где будет удаление?
Имхо, по периодике ничего лишнего: п. 4 — сохранение периодики на дату свертки; п. 11 — удаление прошлых (читай — по дату свертки) периодических значений; п 12 — восстановление периодики в дате свертки.
(10) незначащие — значит лишние.
как пример история периодического значения может иметь такой вид:
01.10.2007 — 123.00
05.10.2007 — 123.00
06.10.2007 — 125.00
периодическое значение 123 на дату 05.10.2007 — лишнее…
Ну, так-то можно, да и не сложно это. Наверно, стоит вынести обработку периодики в отдельную программу, добавить твоё предложение. Тогда ее будет можно использовать с нестандартными свертками, где обработки периодики нет.
изменения от 30.10.2007
Исправлена ошибка: в сворачиваемом периоде не распроводились документы «ВводОстатков…» сформированные предыдущими «свертками» (наличие в реквизите «Комментарий» словосочетания «СверткаБазы»). Строки кода 3114-3116 закомментированы. Сорри, проверял на «девственной», ни разу не свернутой базе.
изменения от 06.11.2007. Новое: — встроенное удаление помеченных документов; ведение лога; закрытие сеанса 1с после выполнения
Обновление
Сунулся с этой сверткой в сильно-переработанную ТиС 8.7. Исправлял, исправлял мелочи типа глНазваниеДокументаВЖурнале и т.д. И в итоге заткнулся на Перечислениях и совершенно другом составе реквизитов ДокументовВводаОстатков. Пришлось бросить.
А вообще очень понравилась Ваша Свертка, хоть и не пригодилась.
(17) Эта обработка под 9.2, Под 8.7 нужно использовать универсальные или дорабатывать текущую. В описании неявно указано:
«Отличия от штатной свертки ТиС v9:»
(17) Под 8.7 дорабатываться, скорее всего не будет. Имхо, если переделывать, смотреть на сколько отличаются между собой штатные 8.7 и 9.2 . В этой версии планируется добавить восстановление ГП.
Да и не нужно ;0)
а (Glide) пускай разбирается с универсальными, на сайте есть парочку неплохих
Блестящая вещь. По скорости — фантастика!
ДокОст.НоваяСтрока();
{\…СВЕРТКА ОТ ШАМАНАSVERTKA_1340SVERTKA.ERT(788)}: Не выбран документ!
Разбираюсь почему не смог создаться документ.
А вот это из лога
21.01.2008;10:06:59;Администратор;1С:Предприятие;Свертка;Информация;3; 12 : 00 : 00 : 00 : 1 471 / 558 608 : Документ ВводОстатковПокупателя Регистр КнигаПродаж. Выгрузка в ТЗ;;;
21.01.2008;10:07:00;Администратор;1С:Предприятие;Свертка;Информация;3; 12 : 00 : 00 : 01 : 1 471 / 147 100 : Документ ВводОстатковПокупателя Регистр КнигаПродаж. Производные колонки;;;
21.01.2008;10:07:00;Администратор;1С:Предприятие;Свертка;Информация;3; 12 : 00 : 00 : 00 : / : Документ ВводОстатковПокупателя Регистр КнигаПродаж. Сортировка ТЗ;;;
21.01.2008;10:07:00;Администратор;1С:Предприятие;Ошибка времени выполнения;Ошибка;5;ДокОст.НоваяСтрока(); : {\…СВЕРТКА ОТ ШАМАНАSVERTKA_1340SVERTKA.ERT(788)}: Не выбран документ!;;;
21.01.2008;10:09:03;Администратор;1С:Предприятие;Документ создан;Информация;3;;;Ввод остатков ТМЦ МП-0002517 31.12.2007;
21.01.2008;10:09:08;Администратор;1С:Предприятие;Документ не записан;Информация;3;;;Ввод остатков ТМЦ ГП-0000001 31.12.2007;
Получается документ создается позже или теряется ссылка текущего ввода
По ценам. Чтобы не менять ручное изменение цен, можно использовать спец документ для фиксации периодики.
На разрешении 1024*768 не виден ряд кнопок.
Приходится отключать панель окон или фиксить обработку 😉
супер, 1,8гб. до 300мб. за час!!! +++
(22) и (23) За что боролся ( см.http://infostart.ru/profile/8196/blogs/298/ ), на то и напоролся 🙂
Почему не смог создаться документ. Предполагаю, что в остатках присутствуют записи с пустыми измерениями (которые как раз и служат реквизитами-ключами при создании нового документа) Видимо, пустые ключи совпали с пустыми измерениями первой записи, — условие на создание нового документа было пропущено.
Обновил, добавил в условие создания нового документа проверку первой записи таблицы.
Тезка, сообщи о результатах, — по алгоритму данной свертки, созданный документ с пустыми реквизитами обязательного заполнения д.б. помечен как BAD и не проводиться.
(24) Я понял. Идея хорошая, тем более, реализуется не сложно.
(25) Фиксить насыщенный диалог, чтобы он остался удобным и красивым, — долго, сделаю позднее с добавлением возможности восстановления ГП. Пока для себя перемести на первой закладке галки с рамками вниз, а кнопки с обновляемым текстом — наверх.
Пока все работает 😉
Премного благодарен за оперативность.
Куда перечислять благодарности?
…
Еще бы хотелось синхронизации по Вводам.
Например поменяли что-то в архивной базе (оч. редко но бывает). Теперь формируем новые вводы на конец в архивной БД, а вот в новой хотелось бы не только создание новых доков, но и проверка отличий от текущих вводов. Надеюсь объяснил понятно %)
Попробую объяснить поподробнее.
После свертки получаются 2 базы:
А(до свертки), Б(после свертки)
Вдруг понадобилось в базе А исправить один из документов (крайняя мера, но бывает и такое)
После изменений в базе А формируем новые вводы.
так вот чтобы в базу Б не переносить все вводы, а переносить только те кот. поменялись.
Т.е. у нас получается архив с возможностью синхронизации с текущей базой (Правда там возможны проблемы со ссылками, но они решается замыканием на документ ввода)
По поводу ошибки. Так и есть
По несколько строк в КнПрод и КнПок без фирм
Сейчас разбираюсь откуда такое может висеть
(28) спасибо.
(29) По поводу синхронизации, — оперировать документами «ВводОстатков…» скорее всего не стоит, — большой объем поиска, сравнения и перепроведения. В общем, вижу такой способ:
Для базы А(до свертки) хранить таблицы значений с запросами по регистрам на конец даты свертки.
При синхронизации:
1. В базе А выполняем запросы по регистрам повторно, выгружаем в таблицы значений.
2. Восстанавливаем сохраненные таблицы, находим разницу с п.1.
3. По оле соединяемся с базой Б,
4. В базе Б по оле удаляем прежние «корректурные» Вводы остатков
5. По таблицам-«разницам» создаем новые «корректурные» вводы остатков и проводим их.
Второй вариант — синхрить каждый измененный документ отдельно, — в таком случае
оперируем разницей между движениями регистров до и после изменений, п. 4 пропускаем, синхронизацию проводим сразу.
Однако, думаю не все так просто, — отрицательную разницу свертка обрабатывает иначе, да и объекты, удаленные в базе Б могут «всплыть», придется всю цепочку по ним передавать… — писать вторую выгрузку загрузку… Если делать, то совсем просто: нет объекта — нет синхронизации.
(30) У вас Кораблев-Пустынный не работает случаем?
(31)часть регистров закрываю «срезами регистра» (спецдоки) со встроенной возможностью выгрузки загрузки итогов. Это оч. удобно. Конечно так делать стоит только по регистрам, у кот. нет в измерениях типа документ.
Делаю синхронизацию по ОЛЕ, проверяю по ключевым полям, если документ изменен перегружаю его полностью в новую базу
(32)нет
прекрасная обработка 🙂 еще бы дождаться автоматического восстановления ГП 🙂
Крутанская обработка, сильно помогла, спасибо!!!
Возможно ли её использовать для комплексной, з/п не ведется.
БИ здесть естественно не обрабатываются.
Может быть грохнуть все проводки и перепровести все документы
А остатки?
Да даже если бы и бух. не велась, только оперучет, — структура регистров и документы переноса остатков должны совпадать с ТиС.
Структуру регистров и документы переноса еще не анализировал.
Необходимо будет сформировать БИ на начало, ну и все таки перепровести
остальные документы, чтобы сформировалисть проводки.
Доброе время суток ! Помогите, пожалуйста — Торговля и склад для Украины 7.70.008
При запуске Вашей обработки такие сообщения :
глПриИзмененииФирмы<<?>>(Док2);
{C:TMPTESTEXTFORMSSVERTKA.ERT(541)}: Процедура не обнаружена (глПриИзмененииФирмы)
ГлПриИзмененииФирмы<<?>>(ДокОст);
{C:TMPTESTEXTFORMSSVERTKA.ERT(834)}: Процедура не обнаружена (ГлПриИзмененииФирмы)
Сообщить(«Распроведен » + глПредставлениеДокумента<<?>>(Док.ТекущийДокумент()));
{C:TMPTESTEXTFORMSSVERTKA.ERT(3697)}: Функция не обнаружена (глПредставлениеДокумента)
Сообщить(«Распроведен » + глПредставлениеДокумента(Док.ТекущийДокумент()<<?>>));
{C:TMPTESTEXTFORMSSVERTKA.ERT(3697)}: Неопознанный оператор
ЗаписатьЛог(«Распроведен » + глПредставлениеДокумента<<?>>(Док.ТекущийДокумент()));
{C:TMPTESTEXTFORMSSVERTKA.ERT(3699)}: Функция не обнаружена (глПредставлениеДокумента)
ЗаписатьЛог(«Распроведен » + глПредставлениеДокумента(Док.ТекущийДокумент()<<?>>));
{C:TMPTESTEXTFORMSSVERTKA.ERT(3699)}: Неопознанный оператор
ЗаписатьЛог(«Распроведен » + глПредставлениеДокумента(Док.ТекущийДокумент()))<<?>>;
{C:TMPTESTEXTFORMSSVERTKA.ERT(3699)}: Ожидается ключевое слово ‘КонецЕсли’ (‘EndIf’)
ЗаписатьЛог(«Распроведен » + глПредставлениеДокумента(Док.ТекущийДокумент()))<<?>>;
{C:TMPTESTEXTFORMSSVERTKA.ERT(3699)}: Ожидается ключевое слово ‘КонецЕсли’ (‘EndIf’)
<<?>>КонецЕсли;
{C:TMPTESTEXTFORMSSVERTKA.ERT(3700)}: Ожидается ключевое слово ‘КонецПроцедуры’ (‘EndProcedure’)
Я _полный_ дилетант. Очень нужно обрезать базы, ситуация крайне запущена 🙁
4 года это все живет. Штатные средства никуда не годятся.
Доброе.
Эта свертка для Российской ТиС v9.хх, для другой версии может не работать,
перенос отсутствующих функций из глобального модуля в обработку может не спасти.
Все отлично работает.Спасибо разработчику, просто выручили. Стандартная обработка «работала» 9 суток без перерыва на базе в 1.5ГБ, пришлось все равно прервать. На той же самой базе на все операции, включая проверку неуникальности документов ушло около пяти часов.
(43) Выложил обновление. В качестве платы за оперативность оставляю тестирование на Вас, rustork (там не страшно, всего 3 добавленных строки). 🙂
Указанная ошибка могла возникнуть при установленном фильтре по фирмам.
Успехов.
Отсутствует контроль режима работы: монопольный или нет.
Дата свертки меняется до того как свертка была произведена, если что не так приходиться лезть в константы
Упс, дата свертки берется не из констант, еще не лучше. И что теперь восстанавливать базу из архива?
Извиняюсь, спешка блин, достаточно пометить на удаление новые документы ввода остатков и дата свертки «вернется обратно»
Транзакция каждые полминуты:
16 : 00 : 05 : 56 : / : ТА назад…
16 : 00 : 00 : 00 : 80 / 21 333 : Свертка и удаление документов за Февраль 2003 г.
16 : 00 : 00 : 01 : 402 / 36 054 : Свертка и удаление документов за Март 2003 г.
16 : 00 : 00 : 01 : 561 / 61 089 : Свертка и удаление документов за Апрель 2003 г.
16 : 00 : 00 : 01 : 772 / 64 603 : Свертка и удаление документов за Май 2003 г.
16 : 00 : 00 : 00 : 525 / 78 947 : Свертка и удаление документов за Июнь 2003 г.
16 : 00 : 00 : 01 : 828 / 59 640 : Свертка и удаление документов за Июль 2003 г.
16 : 00 : 00 : 01 : 1 069 / 57 525 : Свертка и удаление документов за Август 2003 г.
16 : 00 : 00 : 01 : 1 354 / 66 864 : Свертка и удаление документов за Сентябрь 2003 г.
16 : 00 : 00 : 01 : 1 285 / 68 839 : Свертка и удаление документов за Октябрь 2003 г.
16 : 00 : 00 : 01 : 1 225 / 69 602 : Свертка и удаление документов за Ноябрь 2003 г.
16 : 00 : 00 : 04 : 1 887 / 27 348 : Свертка и удаление документов за Декабрь 2003 г.
ЗафиксироватьТранзакцию();
{C:DOCUMENTS AND SETTINGSSYCHEVРАБОЧИЙ СТОЛSVERTKASVERTKA_1340SVERTKA.ERT(395)}: Ошибка при выполнении процедуры ЗафиксироватьТранзакцию
Код посмотрю.
Однако, транзакция «срывается» если в ней сработало Исключение в конструкции «Попытка…», о чем в листинге сообщается, — советую просмотреть его еще раз и за больший промежуток времени (хотя бы полминуты)
В коде все нормально вродь…
Да, монопольный режим я, однако, забыл проконтролировать. 😉
Хотя… немонопольно можно запускать предварительные этапы свертки.
Монопольный режим нужно контролировать если стоят галки Переброска ТА
У меня такая же фигня (50) при установке транзакции (по этапам) винда говорит, что недостаточно виртуальной памяти,
пробовал несколько раз, всегда одно и тоже,
База 5гигов, не сворачивалась с 2003 г. (на 2007 подает), комп двух ядерный, оперативы 2гига, свободного места на винте 80 гигов.
(55) Попробуй установить транзакцию через каждые полминуты, 8-й пункт выполнить отдельно, если все равно останавливается — запускай его повторно, пока не дойдет до конца, затем продолжить оставшиеся пункты.
Скл базу можно без транзакции запустить.
Что еще можно придумать? Чаще, чем полминуты фиксировать транзакцию, ну, например, добавить условие на количество обрабатываемых объектов (300, например):
В строке 394 модуля формы изменить условие
Показать полностью
на
Показать полностью
ИЛИ (Тран_КолОбъектов > 300)
Показать полностью
что-то все равно тоже самое, при любом виде транзакции
(57) попробуй отдельно 8 пункт свертками из патча. пароль на архив 4606224005911
архив вроде бы не полный (скачал пару раз) только одна обработка разворачивается,
а так у меня уже второй день запущена свертка(основная) без транзакции ,
пока нормально вроде, как закончит напишу
(59) обновил архив по патчам, без пароля.
Ну я основной сверткой без использования транзакций пробовал, двое суток работало по 8-му пункту,
нормально отработало (файловый вариант), спасибо за обработку.
Баловался с выгрузками — загрузками документов ввода из одной базы в другую и свертками.
Можно сделать выгрузку-загрузку вводов в файлы (тем более уже почти все готово) по аналогии с Periodic.ert (только по тем регистрам, где нет документов, хотя можно и по всем, но мороки больше с переносом связанных доков)
Смысл я уже объяснял раньше.
Например у меня есть след. базы: 2006, 2007, 2008 годов
Нехорошие люди поменяли остатки в 2006 году, теперь их нужно перенести 2006->2007->2008
Конечно можно через OLE или еще как, но удобнее иметь все в одной обертке свертки 😉
Т.е. делаем «псевдо» свертку в 2006 году, только с формированием доков Ввода на конец года. Переносим их в 2007, проводим вводы, перепроводим «нужные доки» (отдельная обработка сравнивает, что менялось) в 2007 и по аналогии с 2006 делаем в 2007.
Думаю, можно проще… Есть «Сравнение регистров», — в 2006 запустить сохранение, в 2007 — сравнение, и там же «разницу» подать в свертку как «штатную ТЗ полученную из запросов по регистрам», по ним создать Вводы остатков — корректуры. Но, блин, подводных камней не избежать… К старой базе отношение м.б. менее серьезное, чем к рабочей, и переносить из нее «косяки»… Как быть с удаленными ссылками в более свежей базе? Делать загрузку объектов? 😉
Точно, добавить кнопку «Исправить Регистры», найти доки ввода и править их …, притом старые док можно скопировать непроведенными и добавить в подчинение текущим (для истории)
С другой стороны по ОЛЕ получается лучше, тем что если чего нет в приемнике, то оно перенесется …
Ваша свертка понравилась, она наиболее полная, по сравнению с тем, что предлагают другие авторы. А это то, что и требуется.
Если базу разместить на RAM диске — >1Гб меньше часа, спасибо!
упс… у меня проблемы граждане…
не пинайте сильно, т.к. сворачиваю базу первый раз…
проблема в следующем:
— есть база с 2003 года, в период с 2003 по 2008 документов 83102
— сворачиваю выше выложенной обработкой на дату 31.12.08
— после сверстки остаются шапки документов в кол-ве 38296 (2003-2008 года)
удалить их не возможно, так как они находятся в подчинении документов созданных сверсткой…
как их удалить? Может я что то не так делаю?
(67) скорее всего эти документы используются в вводе остатков по долгам покупателей/поставщиков — используются в качестве кредитных документов, по которым зафиксирован долг (вообще-то такое большое колво «остатков» долгов по кредитным докам вызывает вопросы); можно сделать следующее: универсальной обработкой очистить реквизит «кредитный документ» в доках ввода остатков долгов по взаиморасчетам покупателей/поставщиков и перепровести эти доки ввода остатков — тогда в качестве кредитных доков возникновения долга в регистрах будут зафиксированы доки ввода остатков (потом можно чохом пометить на удаление старые оставшиеся доки и удалить их штатно).
тьфу, (68) относится к результатам штатной свертки… но, надеюсь, идея понятна, в нештатной свертке можно сделать аналогично — на место упомянутых кредитных доков прописать ссылку на сам документ ввода остатков.
(69) спасибо, смысл понятен, нужно в документах ввода остатков реквизит «кредитный документ» очистить, удалить шапки и перепровести все доки…
А не подскажете, какой обработкой можно очистить реквизит по всем документам ввода?
(70) Берем диск ИТС и устанавливаем набор универсальных отчетов и обработок, используем универсальную обработку подбора объектов
(68) А как же ссылки в конфе на реквизиты заменяемого документа, — в документе «ВводОстатков…» таких одноименных может не оказаться.
Мыслю, что лучше проанализировать ТЧ Ввода остатков, по-сворачивать ее по ограниченному набору измерений, — глядишь и выяснится, что в итоге по некоторым контрагентам взаиморасчеты = 0. Вот по этим контрагентам удалить строки из ввода остатков совсем. Как «По-сворачивать»? Можно с пом. «Сравнение регистров», сравнивая остатки в той же базе на ту же дату, но с разным составом измерений регистров.
Конечно, прикрутить эту феньку (68) к свертке легче, чем прописывать «родные» документы в регистры. Или же просто изменить модуль проведения Ввода остатков, заменить
…. .КредДокумент = ТекущийДокумент();
(67) По сокращению кол-ва неудаленных документов: отключи два регистра при свертке КнигаПродаж и КнигаПокупок (однако, если они не используются) или удали уже готовые документы ввода остатков по ним.
(72) не втыкнул про что речь… при вводе остатков по взаиморасчетам никаких ссылок на РЕКВИЗИТЫ (заменяемых) документов — нет, так что спокойно можно занулить реквизит кредитный документ (или прописать в него ссылку на документ ввода остатков)
Во вводе остатков по взаиморасчетам нет, а в отчетах, обработках конфы — ссылки на реквизиты КредДокументов есть.
(76) а на какие именно? я знаю на кредДокумент и ДатаОплаты.. и все…
поиск во всех текстах «КредДокумент.»
ДатаОплаты есть, часто проверяется вид() КредДокумента, наличие реквизитов в шапке.
Если подойти к вопросу глобально — очистка и замена КредДокумента — это та же свертка (по набору измерений регистров) внутри свертки. Нужна такая вешь?
Хотелось бы узнать можно-ли убрать шапки документов после свертки по подробней??
(80) что ж они, с непокрытой головой будут? )))
А если серьезно, самое простое:
1. Если не используются регистры «КнигаПродаж» и КнигаПокупок» — отключи их.
2. Если есть закрытые фирмы — отключи их.
3. Покопать ошибки и перекосы в остатках Взаиморасчетов по документам
Если свертка уже сделана, — удалять соответствующие этим регистрам и фирмам Вводы остатков.
Добрый день!!!
У меня на уже один раз свернутой 1с ТиС при попытке открытия выдает
Если Док.ФлагСвертки = 1 Тогда
{D:1C_UMKA1СSVERTKASVERTKA_1340SVERTKA.ERT(1676)}: Поле агрегатного объекта не обнаружено (ФлагСвертки)
Что можно сделать подскажите?
Могу сразу сказать, запускал на базе предыдущей свертке, работает всё отлично и великолепно. База 3.6 Гб свернулась за 55 минут убрав при этом информацию за три года!!!!
Предыдущая и текущая базы разные?
Сама ошибка означает, что в базе есть непомеченный на удаление документ, с именем начинающимся на «ВводОстатков…» у которого нет реквизита шапки «ФлагСвертки». И расположен он, судя по тому, что раньше свертка запускалась без ошибок, позднее предыдущей даты свертки. Скорее всего, какой-нить новый, добавленный вид документа «ВводОстатков», только без этого реквизита.
Что делать?
Совет для пользователя — найти его в полном журнале по отбору по виду документа, и если он(и) не проведен (ы) — пометить на удаление. Или ждать обновление.
нет одно и тоже. Просто была база, сказали свернуть использовал стандартную встроенную свертку. Прошло время сказали что еще нуно один год свернуть. Стандартная проработала второй раз более 4 дней срок не приемлимый. Нашел ссылку на вашу, начал пробовать а она выдет при открытии
Если Док.ФлагСвертки = 1 Тогда
{D:1C_UMKA1СSVERTKASVERTKA_1340SVERTKA.ERT(1676)}: Поле агрегатного объекта не обнаружено (ФлагСвертки) ……
Конфигуратором владеешь, хоть чуть-чуть?
Спасибо пробую найти документы и поправить их.
Да. В принципе знаний хватает на правку отчетов на создание всяких мелочей. Конфигуратор знаю юзаю…
(86) Обновил файлы. Добавил проверку на наличие реквизита «ФлагСвертки» в документах «ВводОстатков». Документы с отсутствущим реквизитом в дате свертки включаются обработкой в общий список документов ввода остатков, даже если они были созданы другим способом.
Документы нашел и пометил на удаление. Но что то всё равно выдает туже ошибку.
+ (90) + много сообщений от таких документах
(91) качай новую версию
(92) Спасибо щяс буду пробывать… 🙂
Обновление. Очистка ссылок на документы.
Обработка — замечательная. Базу свернул быстро. Но столкнулся с непонятным явлением(в природе которого сейчас разбираюсь): Сворачивал базу ТиС 9.2 на 31.12.2008. Пропали из базы несколько документов в периоде с января 2009 по февраль 2009. Пропали несколько заявок покупателя и счетов-фактур. В остальном — обработка отработала на 5+
(96) Ошибка в программе, п.16 (рис. 931, первый скрин). В течение часа выложу обновление
Обновлены файлы
«Свертка + листинг + описание» (первый)
«03.03.09 Свертка с очисткой измерений регистров типа Документ» (пятый)
Доброго всем времени суток. Хотел узнать как сделать чтоб данная обработка не брала во внимание склады и номенклатуру помеченную на удаление и не вормировала по ним остатки. Заранее благодарен…
Это, похоже, системное сообщение, инициируется методом УдалитьОбъекты(), если база распределенная….
А вопрос выдается в периферийной или в центральной ИБ? Галка «Отключить контроль прав» не помогает?
В принципе, можно обойти, используя в случае УРИБ не УдалитьОбъекты(<УдаляемыеОбъекты>,1), а НайтиСсылки(<УдаляемыеОбъекты>,<ТаблицаСсылок>) и удаляя каждый объект из <УдаляемыеОбъекты> c пом. метода Удалить(1) и обрабатывая <ТаблицаСсылок> . Будет долго.