Print
Category: Все материалы
Hits: 14473

User Rating: 0 / 5

Star InactiveStar InactiveStar InactiveStar InactiveStar Inactive
 

Уж, вроде, 1С 7.7 канула в лету, однако, то и дело приходиться решать задачи связанные с ней. Не так давно я решал следующую интересную задачу:

Имеем большую базу с оперативным учетом, в которой слетела граница последовательности документов. Слетела далеко. Перепроводить документы - не реально, клиент на это не согласен по двум причинам: объективные опасения, что она не перепроведется, опасения о том, что изменится состояние учета, ну и самое страшное, никто не берется предсказать, сколько это будет выполняться (сутки, двое, трое...). Восстанавливать копию и колотить заново дневную работу - не вариант. Очень большой документооборот.

В итоге позвали меня. Я предложил два варианта, оба хороши, но один обойдется клиенту в 10 минут моего инженерного времени, другой в несколько часов. Второй - развернуть вчерашнюю копию и перенести туда сегодняшние документы, благо обработка универсального переноса была под рукой. Первый - исправить ДБФ (DBF) файл, который содержит в себе дату с границей последовательности.

Первый способ - рискованный был, т.к. я понятия не имел где, что надо править и делал это в первый раз. Был шанс запороть базу совсем. Но заказчик выбрал его))

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



1. Нам нужен редактор ДБФ (DBF) файлов. Я использовал DBFNavigator. С собой его не было, с помощью яндекса скачал его за 5 секунд.

2. Нам нужно знать в каком файле лежит граница последовательности. Много в инете статей про имена файлов базы 1С 7.7, но видимо все пишут про бух учет в основном, т.к. имя файла с границей последовательности в первых 20 результатов поиска не было. Методом тыка прошерстил все файлы, я знал, что в торговле и Склад - 3 границы последовательности, а значит в таблице будет 3 строчки. Также могло помочь хорошее знание английского))) 1SSTREAM.DBF

3. Разобраться в структуре.

Открыв файл я увидел следующее:

Граница последовательности

Колонка ID - идентификатор последовательности, задается при сохранении метаданных, его править нельзя.

DATE TIME DOCID - дата время и сам документ, на котором сейчас стоит последовательность, их то нам и надо исправить.

4. Где взять DOCID? Для этого открываем в навигаторе другой файл, который является журналом всех документов 1SJOURN.DBF

В нем мы переходим в самый конец

Восстановление границы последовательности

Убеждаемся, что дата документа в этой строчке нас устраивает и запоминаем поля IDDIC DATE TIME

Тут хочу обратить внимание на следующее: посмотрите поле DOCNO и найдите по этому номеру в режиме предприятия этот документ. Посмотрите его вид. Это должен быть оперативный документ, влияющий на последовательность. Например платежное поручение не влияет на последовательность. Оно нам не подходит.

5. Пишем в файл 1SSTREAM.DBF найденные значения и сохраняем файл. Я правил все три последовательности, а в качестве документа подбирал реализацию.

Все, можете открывать базу и радоваться.

Спасибо за внимание.