Свертка ИБ 7.7 Оперативный учет




Принцип обмена данными из 1С с сайтом (на MySQL) и выдачи (публикации) этих данных по запросу.
PHP-Скрипт автоматической загрузки данных из файла данных в формате CSV в базу данных сайта работающего на WordPress.

В продолжение моей темы: 1С:Альфа-Авто Автосалон Автосервис: обмен с сайтом.
С помощью данного скрипта можно загружать в автоматическом режиме, по расписанию, данные сервисных книжек (ремонтов авто) из 1С:Альфа-Авто Автосалон Автосервис.
Также можно загружать данные в ручном режиме: для этого делается скрытая страница, где размещается специальная кнопка.
Комментарии размещенные внутри скрипта разъяснят логику и порядок действия.
Комментарии с "/////    echo" использовались для отладки.
Дополнительно создана таблица для журналирования результатов загрузки данных.
Скрипт включает в себя защиту от SQL инъекций (думаю безопасность соблюдена в полной мере).
В кратце:
1. Пишется скрипт, который запускает этот.
2. Создается регламентное задание в WordPress, по которому запускается скрипт из п.1. 
3. Этот скрипт осуществляет проверку на существование файла обмена в папке.
4. Если данные не новые, загрузка не производится.
5. Если данные новые, очищается таблица сервисных книжек.
6. Загружаются новые данные.

Собственно сам скрипт:

<?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='\

99 Comments

  1. samadurov

    Работа на +

    Reply
  2. kermit_80

    Подскажите, у меня после обр. док-тов, ост. товаров появилось такое сообщение об ош-ке:

    Для а = 1 По дбф.КоличествоПолей() Цикл

    {Обработка.СверткаИБ.Форма.Модуль(180)}: Перед выполнением операции нужно открыть базу!

    Для а = 1 По дбф.КоличествоПолей() Цикл

    {Обработка.СверткаИБ.Форма.Модуль(180)}: Операции сравнения на больше-меньше допустимы только над значениями совпадающих базовых типов (число, строка, дата)

    Основная база не была запущена.

    Reply
  3. andrewbc

    (2)

    Обработка последовательно обрабатывает следующие файлы:

    1cv7.md — конфигурация

    1SJOURN.DBF — журнал документов

    1SCRDOC.DBF — ссылки документов

    DH*.DBF — шапки документов

    DT*.DBF — таб.части документов

    RG*.DBF (по индексу RG*.CDX) — итоги по регистрам

    RA*.DBF — движения по регистрам

    1SCONST.DBF (по индексу 1SCONST.CDX) — константы и периодич.реквизиты

    Reply
  4. andrewbc

    (2) продолжение

    SC*.DBF — справочники (по необходимости)

    1SBLOB.DBF — длинные строки

    1SSYSTEM.DBF — системные установки

    1SSTREAM.DBF — последовательности

    1SJOURN.DBF (по индексу 1SJOURN.CDX) — журнал документов

    Удаление всех *.CDX

    Сжатие всех *.DBF

    Reply
  5. andrewbc

    (2) продолжение

    Поэтому все указанные файлы должны присутствовать в выбранной папке и не должны быть открыты ни в 1С (даже в разделенном режиме), ни в какой-либо другой программе (например, просмотрщик DBF файлов).

    Reply
  6. andrewbc

    (2) еще попробу переиндексировать базу перд сверткой, может, нарушены индексы

    Reply
  7. kul

    Будет ли работать на бюджетной конфигурации?

    Reply
  8. andrewbc

    Пока работает только с компонентой «Оперативный учет» (сворачивает регистры). Свертка бух.итогов и проводок в отладке.

    Reply
  9. OneGb79

    Чёрт! Черт! Черт! 😀 Просто супер! Спасибо огромное автору! 5 гиговая база свернулась за 40 минут в 1.6! 😀 Причем свернулась корректно! Респект и уважуха автору! 😀

    Reply
  10. andrewbc

    (9) а + слабо поставить? 😉

    Reply
  11. OneGb79

    Уважаемый автор! 🙂 исправился! Прошу прощения что тупанул и сразу не поставил. 🙂 и еще раз спасибо. Моя собственная обработка свертки сворачивала базу 5 гиг за 6 часов…. 😉 так что вашу я ОЧЕНЬ оценил.

    Reply
  12. andrewbc

    (9) для меня главное — «Причем свернулась корректно!»

    и, конечно, скорость.

    благодарю за отзыв

    Reply
  13. OlegKH

    Для а = 1 По дбф.КоличествоПолей() Цикл

    {Обработка.СверткаИБ.Форма.Модуль(180)}: Перед выполнением операции нужно открыть базу!

    Для а = 1 По дбф.КоличествоПолей() Цикл

    {Обработка.СверткаИБ.Форма.Модуль(180)}: Операции сравнения на больше-меньше допустимы только над значениями совпадающих базовых типов (число, строка, дата)

    У меня тоже самое только при запуске «Свертка ИБ»….Я что-то сделал не так?

    Reply
  14. OlegKH

    Все нормально.Разобрался. 😀 .Начал сворачивать на копии.Посмотрим ,что получиться…… 🙂

    Reply
  15. Ёпрст

    (0) Есть ли смысл использовать объект XBase, когда можно всё и так свернуть, используя 1cpp и прямые запросы ? И не надо иметь для этого стороннюю базу..+ сворачивать таким способом можно хоть в dbf, хоть в скуле..

    Да.. недостатки:

    1.нужно хотя бы ставить флаг проведенности у документа СверткаИБ

    2.нет возможности правки документа СверткаИБ (разве что «руками»)…

    3.Теряется вся аналитика..по кред.докам/партиям и т.д..

    4.Будут битые ссылки в справочниках/документах..нужно ТиИ хотя бы. потом

    Reply
  16. Ёпрст

    +15 да еще… Не у всех периодичность хранения останков «месяц»… что тоже будетиметь плачевный результат..

    + зачем писать функции перевода в др. систему счисления, когда есть 1cpp и штатные функции самой 1с-ины

    _IdToStr(ДесЗначение)

    Reply
  17. rad1st

    Уж не знаю что за базы вы сворачивали, но моя база 5.5 гб 600 т.док сворачивалась сутки, и при этом на обработке регистра «ПартииОтданные» 1ска вылетела я с++ runtime ошибкой, без каких либо разъяснений. И чтож теперь делать то?

    Reply
  18. rad1st

    (17) Хех, удалил индексы, сжал базу (ужалась до 2.5Гб) (сворачивал на 1.10.09, так что у меня еще осталось 140 тыс. документов). И тупо запустил свертку еще раз, вот теперь она действительно быстро часа за 3 все доделала. Потом еще час на свертку итогов. И вот сейчас глядя на остатки по регистрам могу сказать — Все отлично! Копейка в копейку на 1.01.10 🙂 +

    Reply
  19. host_kms

    При выборе базы пишет «Ошибка открытия ИБ».

    «амд.Открыть(КаталогИБ+»1Cv7.MD») = 3″, а не < 2.

    ActiveMD.dll зарегистрировал.

    Что я не так делаю?

    Reply
  20. host_kms

    (19) Разобрался. Для SQL базы работает?

    Reply
  21. Donat

    (16) А что будет если периодичность не 1 месяц, у меня например 5 дней, и вроде бы нормально свернулась, правда конечно не за 40 минут.

    Reply
  22. AlimovAlex

    база не большая 160 метров. Свернулась за несколько минут.

    Остатки свернулись нормально. Запустил тестирование и исправление ИБ.

    Тест физической целостности проходит нормально. А вот тест логической целостности уже двое суток идет ). Мне просто интересно через сколько он закончится )

    Reply
  23. andrewbc

    Всех с прошедшими наконец праздниками! Спасибо за комментарии.

    Кое-что подправлено и выложено сегодня (11.01.10).

    Теперь по конкрентным вопросам.

    (15) (16) — разработка делалась изначально на xBase, 1cpp было добавлено в самом конце для ускорения поиска в таблице значений (объект «ИндексированнаяТаблица»), в принципе, замечания Ёпрст по поводу использования 1cpp и прямых запросов правильны и будут учтены в следующей версии.

    (16) (21) с периодичностью остатков тоже проблемы будут решены, просто в моей базе периодичность была месяц.

    И вообще, эта разработка пока не тянет на универсальную, потому что делалась в «пожарном» режиме для конкретной базы. Поэтому еще раз благодарю за замечания и предложения, будем двигаться дальше.

    Reply
  24. averon

    Шикарно. Прям спас. Аналогично база на 6 гигов -> 25 минут и база в 200 метров без косяков

    Reply
  25. rad1st

    А я передумал… При более детальном разбирательстве, выяснилось что не пошли остатки по покупателям, поставщикам и партиям отданным. Все остальные регистры в норме. Причем и на 6гб и на 200мб. Базы совершенно разные, организации тоже, слегка модифицированные торговли… В маленькой базе пропали полные наименования номенклатуры, адреса и телефоны физ.лиц. Ну видимо обновление это исправляет. Маленькую базу могу предоставить для опытов 🙂

    Reply
  26. rainbow83

    Остатки не перенесены вообще 😮 . А документы все благополучно удалились. Что сделано не так?

    Reply
  27. Ёпрст

    (26) чем проверил, что останков нема ? В RA и RG должны быть записи..от документа СверткаИБ

    Reply
  28. rainbow83

    Остатки по складам проверяю обычным отчетом «Остатки ТМЦ», должен быть конечный остаток — там пустота. По контрагентам тоже самое. Все сделано по инструкции.

    Reply
  29. Ёпрст

    (28) Ошибки писал при этом (при свёртке)?

    Что в самих RA и RG ? Например, в любом останковом регистре ? Есть чО?

    Reply
  30. rainbow83

    Ошибок не писал.

    В регистрах ничего нет. 🙁

    Reply
  31. andrewbc

    Извиняюсь, что не отвечал — работы навалилось.

    (26) (28) (30) — остатки переносятся следующим образом: на 1 число в начале дня создается документ «СверткаИБ», все остатки на конец 31 пред.месяца пишутся как движения этого документа, поэтому на 31 не будет никаких остатков. нужно смотреть движения и остатки за тот месяц, в котором документ «СверткаИБ.

    Reply
  32. andrewbc

    (25) — обратись в личку, думаю это связано с ошибками в пред.версии. базу тоже можно посмотреть, чем больше вариантов для тестирования — тем лучше.

    Reply
  33. ViK79

    +! Однозначно! Потестил… Нашел косяк… После свертки, при проверке регистра «Покупатели», обнаружилась куча записей с битыми ссылками (объект не найден). Т.е. по договору часть записей привязались к доку «СверткаИБ», а часть (большая) нет… По моему т

    Reply
  34. OlegKH

    Версия от 11.01.10 пошустрей…Но у меня при обработке движений ОстатковТоваров 98%

    Выдает ошибку

    дбф.УстановитьЗначениеПоля(Наименование,ПолучитьПусто(рек.Тип));

    {Обработка.СверткаИБ.Форма.Модуль(736)}: Не соответствие типов!

    А после отработки корректировки служебных данных:

    Для а = 1 По дбф.КоличествоПолей() Цикл

    {Обработка.СверткаИБ.Форма.Модуль(180)}: Перед выполнением операции нужно открыть базу!

    Для а = 1 По дбф.КоличествоПолей() Цикл

    {Обработка.СверткаИБ.Форма.Модуль(180)}: Операции сравнения на больше-меньше допустимы только над значениями совпадающих базовых типов (число, строка, дата)

    Обработка останавливается и не завершается

    В результате регистры ОстатковТоваров битые. (объект не найден)

    Все делал по инструкции.Что-то не так?

    Конфа- слегка модифицированная торговля….

    Reply
  35. rad1st

    (31) Свернул маленькую базу версией от 11.01.10, справочники в порядке, остатки по контрагентам тоже… Эхх еще бы успеть свернуть заново 6гб ))

    Reply
  36. strannik&777

    Здравия! свернул типовую ТиС с «раздолбаной последовательностью док.» за 4 года за 3 часа. Всё было на ура, пока не заглянули в спр. Номенклатура (длинные наименования почему-то пустые были и на печать в доках пустота. Перезалил справ.универсальной выгр./загр. Всё тип-топ.). То же самое с спр. Контрагенты (не у всех реквизиты перенеслись. Лекарство — перезалил справ.универсальной выгр./загр.) Создал в старой БД док. Инвентаризация, перенёс его в нов. БД и на основании, документом прихода внёс корректные остатки на начало. Пока всё — Гуд! (Большой + ) и (маленький — ).

    Могу отблагодарить по яндекс-деньгам(давайте счёт).

    Заказы принимаете? 😎

    Reply
  37. strannik&777

    Имеет смысл собрать «ремкомплектик инструментов» по свёрткам ТиС, Бух, ЗиК самых эффективных и быстрых… (?)

    Здравия!

    Reply
  38. ViK79

    Господа призываю очень внимательно проверять остатки по регистрам! Т.е. не просто по итоговым сумам, но и в разре записей! Т.к. как я уже говорил есть реальный косяк с привязкой пустых ссылок! Не в обиду автору!

    Reply
  39. andrewbc

    (38) косяка с привязкой нет. есть простой вопрос о свертке базы — или вы храните документы, на которые есть ссылки (в регистрах, например), (тогда нет смысла в свертке) или вы их удаляете. если реквизит имеет тип документа определенного вида, то он будет очищен, если просто «документ» или «неопределенный», тогда будет ссылка на документ свертки. по-моему, логично.

    Reply
  40. andrewbc

    Проблемы со сверткой могут возникнуть из-за того, что платформа 1с 7.7 игнорирует операционную систему (100% загрузка процессора, или 25% на 4-х ядерном и т.п.). Во время свертки НЕ НУЖНЫ параллельные процессы. Особенно важно — те, что работают с hard’ом, raid’ом и т.п.

    Reply
  41. andrewbc

    Наверное, правильнее было назвать разработку не «свертка», а «обрезка» ИБ.

    Reply
  42. Laura

    (40) Действительно, когда я первый раз запустил «обрезку» базы, у меня параллельно работало в рабочей копии базы 40 человек, и кроме них еще одна копия базы сворачивалась другим способом. И свертка заняла сутки. Второй раз делал ее ночью, все лишнее убил, в результате за два часа управился. Но все равно есть у меня одна проблема, но она скорее не с самой сверткой, а с базой. Дело в том что раньше криво был поставлен учет проданных товаров, грубо говоря весь товар отпускали через реализацию на комиссию, в результате у меня регистр «ПартииОтданные» раздуло до гигабайта, а отчет комиссионера никто никогда не делал. В итоге чтобы получить долги контрагентов нужно было застрелиться, предварительно посчитав сколько денег пришло и сколько товаров было отгружено (. Собственно проблема в том что свертка вылетает на этом регистре где то на 64% с runtime ошибкой (не зависимо от загрузки сервера). Приходится делать сжатие и снова запускать. И тогда у меня все регистры сворачиваются правильно, кроме партий отданных. Я думаю вообще удалить движения по этому регистру из «СверткаИБ» и скорректировать долги по контрагентам. Наверное так будет проще всего.

    Reply
  43. rad1st

    А есть ли способ передвинуть уже готовый документ «СверткаИБ» на день раньше? Чтобы на 1-е число получились начальные остатки. Я пробовал действовать в разрез с инструкцией, т.е. ввел в оригинальной базе документ 30.10.09 в конец дня. Но тогда у меня все документы за октябрь сохранились в базе и вышло что попало.

    Reply
  44. ViK79

    (38) Хм… Суть в том, что сворачивалась (практически типовя ТиС). При контроле итогов после свертки сумма итоговая по Покупателям сошлась. Проверил по конкретному контрагенту с детализацие по докам и…. Фиг! Т.е. полезли долги. Привязанные к док «вертка ИБ». Посмотрел итоги по регу и точно! Выходит что если галку детализация по докам движения убрать то все гуд если поставить, то та часть доков что привязалась вылазит в долг. Думаю не надо обяснять почему так… 😉 Думаете не косяк? Как мне кажется все битые (удаленные) ссулки должны вязаться на док Свертка ИБ тогда итоговые суммы ессно будут падать в 0.

    Reply
  45. andrewbc

    (42) Отдельный комментарий на:

    <Дело в том что раньше криво был поставлен учет проданных товаров, грубо говоря весь товар отпускали через реализацию на комиссию, в результате у меня регистр «ПартииОтданные» раздуло до гигабайта, а отчет комиссионера никто никогда не делал.»>

    Если бы делали «Отчет комиссионера», то регистр раздулся бы еще больше.

    А что касается вылета на 64% по runtime — это нехватка памяти. я тестировал свою обработку на ноутбуке — вылетала такая ошибка на 2-х из 5 тестируемых баз. на серверной платформе (конфигурация в описании) — 1 раз, на домашнем под 7 ultimate с 4Г памяти и обычным SATA — ни разу. в чем проблема?…

    Reply
  46. andrewbc

    (44)

    <Думаете не косяк? Как мне кажется все битые (удаленные) ссулки должны вязаться на док Свертка ИБ тогда итоговые суммы ессно будут падать в 0.>

    Делать ссылку на документ можно только если реквизит имеет тип документ того же вида, или «Документ» неопределенного вида, или «Неопределенный». иначе проблемы со ссылочной целостностью.

    Reply
  47. andrewbc

    (43) по поводу начальных остатков.

    уже обсуждаю этот вопрос в личке — говорят: «надо остатки на начало». на вопрос «зачем?», для налоговой, бухгалтерии, взаиморасчетов и т.п. — ответа пока не получил. если нужно — доработка займет 15 минут. согласен сделать.

    Reply
  48. andrewbc

    (40) доп. комментарий:

    неправильно сказано: не «1с игнорирует операционную систему», а последователи Билла Гейтса не выдерживают стандарты. извинения гг Нуралиевым.

    Reply
  49. rad1st

    (47) Основное конечно взаиморасчеты, так как бухгалтеров смущает в актах сверки отсутствие начальных остатков.

    Reply
  50. ViK79

    (47) <Делать ссылку на документ можно только если реквизит имеет тип документ того же вида, или «Документ» неопределенного вида, или «Неопределенный». иначе проблемы со ссылочной целостностью.>

    Уважаемый автор вы безусловно правы! 🙂 Естественно я имел ввиду только те ссылки, которые являются документами! Надо разбираццо! 😀

    Reply
  51. haron_123

    Сдраствуйте!!

    в конце оброботки «Свертка ИБ» выдаёт ошибку

    »

    Для а = 1 По дбф.КоличествоПолей() Цикл

    {Обработка.СверткаИБ.Форма.Модуль(180)}: Перед выполнением операции нужно открыть базу!

    Для а = 1 По дбф.КоличествоПолей() Цикл

    {Обработка.СверткаИБ.Форма.Модуль(180)}: Операции сравнения на больше-меньше допустимы только над значениями совпадающих базовых типов (число, строка, дата)

    »

    (сворачиваю Бухгалтерию 7.7)

    выяснил что не хватает файла 1SSTREAM.DBF

    вопрос как это можно полечит???

    зараниее Спасибо!!

    Reply
  52. Denimv

    Здравствуйте! Помогите!! ТиС 8.7. Все сделано по инструкции. При открытии каталога базы «Ошибка открытия ИБ!» 🙁 🙁 🙁 Конфигурация 7.70.873

    Reply
  53. andrewbc

    (51) Господа, по-моему оперелено в кописании «Свертка базы 7.7 Оперативный учет» (Оперативный учет!!!).

    Reply
  54. andrewbc

    (52) не думал, что еще кто-то работает на версиях ТиС менее 9

    Reply
  55. andrewbc

    (53) -исправление ошибок:

    (51) Господа, по-моему определено в описании: «Свертка базы 7.7 Оперативный учет» (Оперативный учет!!!).

    Reply
  56. andrewbc

    для (52) могу предложить стукнуть в личку

    Reply
  57. andrewbc

    (49) еще раз вопрос — «Оперативный учет» потому и называется оперативным, что в нем контролируются ОПЕРАТИВНЫЕ (читай ТЕКУЩИЕ) остатки. ЗАЧЕМ начальные на 01.01.??. встречный вопрос — если есть остатки на 31.12…, а нет на 30 11…, то как?

    Reply
  58. rad1st

    (57) Да уже в принципе не важно 🙂 В любом случае спасибо огромное за обработку

    Reply
  59. haron_123

    (53) 😮 поторопился!!

    подскажите существует, что-то подобное для Бухгалтерского учета!!!

    Reply
  60. Denimv

    (54) Работает, и весьма активно работает. И сейчас ему очень плохо так как надо ОЧЕНЬ срочно обрезать базу под нуль.

    Reply
  61. Denimv

    (56) простите мне мою темноту 😳 , но как и чем стучать в личку.. 🙂

    Reply
  62. andrmit

    ТОже проблемы при свёртке ТиС8.7… После окончания сворачивания 1С зависает при попытке ТиИ базы… 🙁

    Reply
  63. andrewbc

    (59) Я сломал ногу (физиологически, левую), поэтому приостановилось на время разработка. но бух. итоги обязательно будут в свертке.

    Reply
  64. andrewbc

    (61) щелкнуть на моем ник’е, потом — «написать сообщение»

    Reply
  65. andrewbc

    (60) под нуль база обрезается проще: там не нужны остатки и документы. для упрощения: удаление всех DH*, DT*, RG*, RA*. (правда, при этом все-таки остается периодика и длинные строки). но база работать должна.

    Reply
  66. andrewbc

    еще раз хочу сказать: моя разработка — это не коммерческая и не финальная версия. просто хотелось предложить идею и услышать замечания о багах и, может быть, предложениях. все базы протестировать, ессно не смогу, но с версией ТиС 8.7 интересно. можно мне отправить после личной связи (дам мыло и аську).

    Reply
  67. haron_123

    (63) скорейшего выздоровления.

    Буду ждать ваше решение по свертке «Бухгалтерского учета».

    И будет ли она сворачивать итоги по нескольким Планам счетов??

    Reply
  68. andrmit

    Версия обработки — от 11.01.2010

    Версия ТиС 875

    После свертки База зависает на ТиИ (где-то на константах)

    В Обработке «СверткаИБ» закомментировал строки с 746 по 801 (отвечают за свертку периодических реквизитов и констант) всё стало работать.

    Не стал разбираться до конца, но видимо где-то ошибочка при свёртке периодических реквизитов.

    Вопрос автору:

    1. Можно ли посмотреть этот случай?

    2. Не очень ли критично не сворачивать периодические реквизиты и константы?

    P.S. Автору скорейшего выздоровления

    Reply
  69. whtblck

    отлично отработало, спасибо

    Reply
  70. pepe1961

    Можно ли при работе свертки прерывать ее работу, а потом запускать заново?

    Reply
  71. andrewbc

    (70) Категорически нет

    Reply
  72. sumeragi

    Подскажите, эту свертку можно применять для SQL-ных баз?

    Reply
  73. Ёпрст

    (72) в данном варианте -нет

    Reply
  74. pepe1961

    Не знаю с чем было связано следующее. После свертки базы, содержащей пять разных фирм, в справочнике фирмы были перепутаны полные наименования.

    Reply
  75. pepe1961

    Дополню, каша с периодическими реквизитами в справочнике фирм.

    Reply
  76. andrewbc

    (75) стесняюсь спросить — а какие периодические реквизиты есть в справочнике фирм?

    Reply
  77. anyanovmichael

    Отличная свертка, с первого раза сделала все без нареканий! Спасибо огромное!

    Reply
  78. pepe1961

    (76) У меня ТиС для Украины и в нем периодические руководители, наименования, адреса.

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

    Reply
  79. Daydko

    Спасибо, отличная работа, очень помог и бесплатно) хороший человек, спасибо)

    Reply
  80. Altez

    Грац) Обгоняет, пожалуй, все выложенные на ИС аналоги.

    Для дальнейшего переноса между базами напрашивается структура документа свертки по аналогии с http://infostart.ru/public/14740/, хотя скорости явно не прибавит.

    Косячок: 1SSTREAM.DBF есть не везде (Аналит: Аптека 5.0 проф. релиз 4.00)

    Reply
  81. OlegKH

    Хорошая вещь.Чуть-чуть под свое подшаманил…И песня…

    Reply
  82. andrewbc

    (80) Косячок: 1SSTREAM.DBF есть не везде (Аналит: Аптека 5.0 проф. релиз 4.00)

    Честно говоря, там много косяков — нет проверок на типы установленных компонент, на существование файлов, на версии компонетов и конфигураций и т.д. и т.п.. Делался как очень срочный заказ, а выложено как идея. Кто понял — тот доработает. ((81) Чуть-чуть под свое подшаманил…). Кому помогло — рад.

    Если кому нужны бухитоги (недавно сам столкнулся) или еще что — это обсуждается. Будет готовый продукт.

    Reply
  83. btg

    Обработка очень помогла. Автору СПАСИБО! Надо было _срочно_ резать три базы торговли, уперлось в ограничение на размер DBF, что бы я делал без этой обработки — не знаю… Не успеть самому быстро написать подобное. Еще раз спасибо!

    Reply
  84. SergLeo

    Плин, у человека на 5й странице уже было:

    «Ошибка открытия ИБ».

    «амд.Открыть(КаталогИБ+»1Cv7.MD») = 3″, а не < 2.

    ActiveMD.dll зарегистрировал.

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

    Reply
  85. wiscola

    Громадное спасибо. Использовал для большой распределенной базы (10Гб). Учитывая цейтнот (нельзя остановить работу в базе) за ночь обрезал.

    Reply
  86. andrewbc

    (84) Описание метода Открыть(,);

    Синтаксис: Открыть(<ИмяФайла>,<Пароль>)

    Назначение: открыть файл конфигурации

    Возвращает: Число.

    0 — удачное открытие;

    1 — открыто в режиме «только-чтение»;

    2 — ошибка открытия по неизвестной причине;

    3 — неправильный пароль.

    Параметры

    <ИмяФайла> Строка .Имя открываемого файла

    <Пароль> Строка. Пароль для защищенной конфигурации

    Можно попробовать для незащищенной конфигурации указать в качестве пароля пустую строку. Также ошибка может возникнуть, если MD-ник уже открыт (в конфигураторе, мониторе или предприятии).

    Reply
  87. SergLeo

    Спасибо автору за ответ. Тож подумал вчера, что дело в пароле, переименовал Users.usr, не помогло. Щас дошло, что на конфе у меня тож пароль стоит. 🙂 Снес пароль — обработка запустилась, конфа — переписанная ТиС, записал результаты отчетов по контрам и товарам, запустил обработку. Пока шуршит. Жду.

    Reply
  88. andrewbc

    09.08.10 выложено обновление обработки (см. в описании). Сделано это потому, что большинство ошибок, о которых мне пишут в личку и аську («Ошибка открытия ИБ»), связаны именно с тем, что конфигурация запаролена. Хотя зачем это делать, никак не могу понять… Также введена проверка на присутствие файла последовательностей (1SSTREAM), так как во многих самописных конфигурациях последовательностей обычно нет, а закомментарить обработку этого файла, видимо, не желают.

    Reply
  89. СергейК

    Жалко, что весной не нашел твою обработку, пришлось самому писать. Но сделал только минимальный функционал, по снятию с проведения документов (удаление записей о движении в регистрах). Остальное программно. Еще может кому пригодится: немного отсрочить конец большой базы dbf, если самый большой файл rg*.dbf, то можно попробовать удалить из него записи с нулевыми значениями по всем ресурсам. Один раз меня это спасло.

    Reply
  90. andrewbc

    (89) «Еще может кому пригодится: немного отсрочить конец большой базы dbf, если самый большой файл rg*.dbf, то можно попробовать удалить из него записи с нулевыми значениями по всем ресурсам.» —

    это (и не только это) и делается во второй обработке «Свертка итогов».

    Reply
  91. serov_yura

    1. Каким образом можно удалить документ «Свертка ИБ»?

    2. При помощи чего можно отредактировать движения документа «Свертка ИБ»?

    2.1. Если это возможно, то при помощи чего?

    Reply
  92. andrewbc

    (91) Документ «Свертка ИБ» не удаляется, не делается непроведенным и пр. интерактивно. Его движения тоже отредактировать нельзя. Это фактические остатки предыдущего периода, причем все документы за этот период физически удалены. Т.е. период закрыт и движения в нем редактировать нельзя. Поэтому рекомендуется его делать после всех регламентных операций по закрытию периода. Удаление документа и его движений будет сделано автоматически при следующей свертке. Корректировка остатков может быть произведена только обычными документами, имеющимися в конфигурации.

    Также можно удалить или сделать документ непроведенным программно (например, из какой-нибудь обработки) или вручную, скорректировав запись журнала документов и записи регистров.

    Reply
  93. serov_yura

    Удалять программно пробовал, не удаляет и не помечает на удаление!

    Reply
  94. andrewbc

    (93) Если ты пробовал методами 1с — Удалить() и СделатьНепроведенным(), тогда не получится. Нужно прямое обращение к dbf — файлам журнала, ссылок документов и движений регистров.

    А если не секрет, зачем его удалять?

    Reply
  95. DF_slayer

    Автору большое спасибо! Отличная скорость обработки, не ожидал такого. На базе в 13 гиг свернулось часа за 3, если считать только время выполнение самой обработки. Правда пришлось заменить использованные ТЗ на Индексированные таблицы, так как объемы большие (регистр ПартииНаличие в районе 700000 записей) и 1Ска падает как известно от такого дела.

    Еще вопрос возник, почему обработка заявлена как «Свертка ИБ 7.7 Оперативный учет»? Бух итоги тоже ведь сворачивает.

    Reply
  96. andrewbc

    (95) «Еще вопрос возник, почему обработка заявлена как «Свертка ИБ 7.7 Оперативный учет»? Бух итоги тоже ведь сворачивает.» —

    а вот это для меня открытие. Спасибо, конечно, за положительный отзыв, но нельзя ли пояснить, откуда такое мнение? Я вообще-то бухитоги и проводки не сворачивал. Может, они просто остаются в базе с неверными ссылками на удаленные документы?

    Reply
  97. DF_slayer

    Вообще да, конечно это ссылки на удаленные документы. Это так показалось из-за того, что БИ были свернуты на более раннюю дату чем ОУ 🙂 Придется чето думать…

    Reply
  98. Direct

    Огромное спасибо. Выручила обработка уже не раз. Вещь.

    Reply
  99. konfed

    Корректно и быстро: 1.1 Гига база свернулась в 200 Мб — за 15 минут. Автор — молодчинка -> +

    Reply

Leave a Comment

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