Как в 1с 7 сделать переиндексацию
Многие ежедневно сталкиваются с рутинными процедурами администрирования баз данных 1С. К ним можно отнести выгрузку и сохранение данных, тестирование и исправление информационной базы, обмен данными между распределенными базами данных. Как раз в этом случае и можно воспользоваться пакетным режимом работы конфигуратора.
Работа в пакетном режиме подразумевает выполнение программой последовательных действий без участия пользователя. Причем сама последовательность действий должна быть описана пользователем по определенным правилам с использованием документированных ключевых параметров.
Инициализация работы конфигуратора в пакетном режиме производится командной строкой вида
Path1 config /dPath2 /nUser /pPwd /@Path3
где
Path1 - путь к файлу 1cv7*.exe;
Path2 - путь к каталогу базы данных;
Path3 - путь к файлу с инструкциями (пакетному файлу);
User, Pwd - имя и пароль пользователя, под которым будут выполняться действия. Не забудьте, что у указанного пользователя должны быть права на выполнение таких действий;
config - ключевое слово, указывающее, что запуск 1С нужно произвести в режиме "Конфигуратора";
/d - каталог базы данных, с которой будут производиться действия;
/n - имя пользователя, под которым будут выполняться действия
/p - пароль этого пользователя;
/@ - путь к файлу инструкций.
Например, командная строка может выглядеть так:
C:\Program Files\1Cv77\BIN\1cv7s.exe config /dC:\Bases_1C\v77\pr262 /nAdmin /p1qwsa2 /@C:\exchrbd.prm
Рассмотрим теперь, что же собой представляет файл инструкций. Данный файл имеет расширение по умолчанию *.prm, но если будет другое расширение, то в командной строке необходимо указывать данное расширение. Структура файла должна иметь следующий вид:
[Секция]
Параметр=Значение
Имя параметра | Значение | Описание |
---|---|---|
Секция [General] | Секция содержит общие параметры | |
Output | file_name | имя лог-файла для записа произведенных действий |
Quit | 1/0 | нужно ли закрывать программу после выполнения сценария |
CheckAndRepair | 1/0 | нужно ли производить тестирование-исправление ИБ |
UnloadData | 1/0 | нужно ли делать выгрузку данных |
SaveData | 1/0 | нужно ли делать сохранение данных (для формата БД *.dbf) |
AutoExchange | 1/0 | нужно ли выполнять автообмен с РБД |
Секция [CheckAndRepair] | Секция содержит параметры о тестировании-исправлении ИБ | |
Repair | 1/0 | делать исправление или только тестирование |
PhysicalIntegrity | 1/0 | проверять физическую целостность таблиц ИБ |
LogicalIntegrity | 1/0 | проверять логическую целостность таблиц ИБ |
Reindex | 1/0 | производить переиндексацию ИБ |
RecalcSecondaries | 1/0 | производить обносление вторичных (служебных) данных ИБ |
RecalcTotals | 1/0 | пересчитывать бухгалтерские и оперативные итоги |
Pack | 1/0 | упаковывать таблицы ИБ (сжимать, убрав удаленные записи) |
SkipUnresolved | 1/0 | пропускать неразрешенные ссылки или удалять их |
CreateForUnresolved | 1/0 | способ разрешения неразрешенных ссылок: создавать объекты (1) или очищать такие ссылки (0) |
Reconstruct | 1/0 | способ восстановления частично потерянных данных объектов: создавать объекты (1) или удалять их (0) |
Секция [UnloadData] | Секция содержит параметры о выгрузке данных | |
UnloadToFile | file_name | имя файла переноса данных |
IncludeUserDef | 1/0 | включать список пользователей |
Password | password | пароль на zip-архив |
Секция [SaveData] | Секция содержит параметры о сохранении данных | |
SaveToFile | file_name | имя файла архива |
FileList | mask1,mask2. | список масок архивируемых файлов через запятую или пробел |
Секция [AutoExchange] | Секция содержит параметры об автообмене между РБД | |
SharedMode | 1/0 | производить автообмен в разделенном (1) или монопольном (0) режимах |
WriteTo | base_code | код(ы) ИБ, в которую(ые) производить выгрузку; (*) - все |
ReadFrom | base_code | код(ы) ИБ, в которую(ые) производить загрузку; (*) - все |
ReceiveFrom | base_code | код(ы) ИБ, из которой(ых) получать почту; (*) - все |
SendTo | base_code | код(ы) ИБ, которой(ым) отправлять почту; (*) - все |
Таким образом, если оформить запуск конфигуратора в пакетном режиме в виде файла *.bat, *.cmd или *.wsh, то с помощью любого планировщика можно организовать полностью автоматическое выполнение некоторых рутинных операций в заданное время.
Файловая версия программы 1С работает с dbf файлами. Для ускорения поиска данных система создает для каждого файла *.dbf соответствующий файл индексов с расширением *.cdx. В результате сбоя или некорректного выхода из 1С индексные файлы могут нарушаться. Иногда это приводит к отказу работы системы до переиндексации 1С, для этого нужно сделать переиндексацию.
Запустите программу "1С:Предприятие" в монопольном режиме: меню Пуск -> Программы -> 1С:Предприятие 7.7 -> 1С:Предприятие Монопольно.
Когда же система работает, но данные отображаются некорректно нужно провести принудительную переиндексацию 1С.
Для принудительной переиндексации 1С следует удалить все индексные файлы из каталога базы данных. Индексными являются все файлы с расширением *.cdx. Это жесткий вариант, есть мягкий.
Нужно зайти в конфигуратор, выбрать пункт меню Администрирование - Тестирование и исправление ИБ, установить галочку на необходимый пункт, Реиндексация (остальные снять) и нажать кнопку Выполнить. Режим, естественно должен быть установлен Тестирование и исправление. То же, но в автоматическом режиме можно выполнить следующим образом.
Автоматическая переиндексация базы 1С
Когда нужно делать переиндексацию 1С? У меня с базой работают много пользователей с невысокой квалфикацией. Выключить компьютер кнопкой питания для них норма и никакие разъяснения не действуют. Естественно, при таком выключении 1С слетают все индексы и их при следующем входе в систему нужно восстанавливать, переиндексировать базу. В этом случае мне помогает автоматическая переиндексация базы ночью по расписанию.
Для автоматизации процесса переиндексирования можно воспользоваться пакетным режимом запуска 1С. Для этого нужно создать файл с расширением *.prm, например reindex.prm, и поместить в него следующий код
[General]
Quit=1
CheckAndRepair=1
[CheckAndRepair]
Repair=1
PhysicalIntegrity=0
Reindex=1
LogicalIntegrity=0
RecalcSecondaries=0
RecalcTotals=0
Pack=0
SkipUnresolved=1
CreateForUnresolved=0
Описание этих опций Вы найдёте на странице "Пакетный режим работы конфигуратора в 1С v 7.7"
Следующим шагом нужно в 1С создать пользователя Reindex с паролем Reindex с минимальными правами, и возможностью переиндексировать базу.
- *.bat - файл сценария
- ярлык
- запись в шедулере
"C:\Program Files\1Cv77\BIN\1cv7.exe" config /Dd:\bases\basa1\ /M /NReindex /PReindex /@reindex.prm
Естественно, пути к файлам у Вас должны быть указаны свои.
Вот, собственно и всё. При соответствующем запуске будет начато выполнение пакетного файла. Откроется конфигуратор под указанным пользователем, переиндексирует базу и корректно закроет конфигуратор.
Запустите программу "1С:Предприятие" в монопольном режиме: меню "Пуск" -> "Программы" -> "1С:Предприятие 7.7" -> "1С:Предприятие Монопольно".
Для принудительной переиндексации следует удалить все индексные файлы из каталога базы данных. Индексными являются все файлы с расширением *.cdx. Их удалить можно вручную, либо воспользовавшись специальной программой Clear.BAT:
Код DOS Batch File
Похожие FAQ
1С Предприятие что это? 12
Что такое 1С? 1С — это фирма , у которой одно из направлений деятельности — разработка программного обеспечения для автоматизации бизнес-процессов предприятий. « 1С:Предприятие » - конкретный продукт, который выпускает компания 1С . Что такое Автоматическое резервное копирование 1С:Предприятия в облако с помощью ПО Effector Saver 3
Всем известно, для большей гарантии восстановления важных данных, необходимо копировать архивы в несколько мест хранения. Отдельный диск может помочь в случае порчи основного, но в случае если устройство будет потеряно или украдено, он будет так же Автоматическое резервное копирование 1С:Предприятия в облако с помощью ПО Effector Saver 0
Всем известно, для большей гарантии восстановления важных данных, необходимо копировать архивы в несколько мест хранения. Отдельный диск может помочь в случае порчи основного, но в случае если устройство будет потеряно или украдено, он будет так же Вывести все виды субконто, прикрепленные к заданному счету? 0
Для ведения аналитического учета в 1С используется термин “субконто”. Субконто в системе 1С:Предприятие называется объект аналитического учета. Термином «субконто» могут быть обозначены любые объекты аналитического учета: основные средства, нематери Горячие клавиши 1С 0
Конфигуратор 1С Конфигурация 1 Alt + К + Enter Открыть конфигурацию 2 Alt + К + Т Поиск во всех текстах 3 Alt + К + О Объединение конфигураций 4 Alt + K + З Загрузить измененную конфигурацию 5 Alt + К + Е Конвертирование да Посмотреть все результаты поиска похожих
Есть файловая 1с-ка 7 на терминальном сервере 2008. Каждый день, хоть один пользователь да забудет выйти из нее правильно. Мне приходится каждое раннее утро заходить на сервер и выполнять индексацию, запарился. Можно ли решить эту задачу каким скриптом/батником?
Переход на MSSQL - невозможен.
Пользователям разрешено видеть только окно выбора пользователя, ввода пароля, так-что индексация первым вошедшим пользователем тоже отпадает.
Содержимое Index.txt:
[General]
Output=Log.txt
Quit=1
CheckAndRepair=1
UnloadData=1
SaveData=1
AutoExchange=0
[CheckAndRepair]
Repair=0
PhysicalIntegrity=0
Reindex=1
LogicalIntegrity=0
RecalcSecondaries=0
RecalcTotals=0
Pack=1
Создается файл Reindex.prm в директории "C:\Program Files\1Cv77\BIN".
Создается батник, всё равно где, можно и в "C:\Program Files\1Cv77"
последняя команда в батнике делает копию бекапа на другой ПК в сети и переименовывает файл. пример (число, месяц, год 01-01.2001.zip)
Создается задача в Windows (запускать батник раз в N дней \ в X часов). В итоге получаем реиндексированную базу и бекап на локальный и удалённый ПК.
"C:\Program Files\1Cv77\BIN\1cv7.exe" config /D"D:\Bases_1C\ ( " /M /Nлогин /Pпароль /@Reindex
echo off
set day=%DATE:~0,2%
set month=%DATE:~3,2%
set year=%DATE:~6,4%
echo %day%
echo %month%
echo %year%
set YYYYMMDD=%year%-%month%-%day%
echo %YYYYMMDD%
copy "D:\BackUps\1c7backup.zip" "\\my_pc\_v7.7\%YYYYMMDD%.zip"
[General]
Quit=1
CheckAndRepair=1
UnloadData=0
SaveData=1
AutoExchange=0
[CheckAndRepair]
Repair=1
PhysicalIntegrity=0
LogicalIntegrity=0
Reindex=1
RecalcSecondaries=0
RecalcTotals=0
Pack=0
SkipUnresolved=1
CreateForUnresolved=0
Reconstruct=0
Народ, помогите советом, нужно перенести в 1С 8 из 7.7 хотя бы справочники и контрагентов. Как это можно реализовать? У кого есть программа для такого переноса?
Во многих типовых (и некоторых отраслевых) восьмерочных решениях уже есть или встроенные средства переноса из 7.7 или в виде дополнительных файликов в каталоге установки шаблона.
Если переносить самостоятельно, то на диске ИТС (а так же во многих местах интернета - гугл в помощь) есть обработка "Загрузка из табличного документа", которая позволяет загружать в справочники/документы/регистры произвольные табличные данные. При достаточно высоком уровне квалификации можно воспользоваться боевой артиллерией - специальной конфигурацией "Конвертация данных 2" (не путать с 3. ).
Не подскажете почему выходит такая ошибка? В документации к 1С все слишком запутанно пишут - зарплату ведь надо получать, поэтому в их рукописях вообще не разобраться, война и мир легче заходит чем их туториалы по эксплуатации их далеко не сложной системы.
Максим Кравченко, ну так ведь все написано русским языком :)
По моему опыту самыми распространенными причинами могут быть следующие:
Максим Кравченко, а почему не через IRC или чаты на народовских "чертовых куличках"? :)
Нет, я уже повторно на одни и те же грабли наступать не буду. Уже одному неблагодарному дал свой скайп и тот на шею сел.
Если у вас есть общие вопросы, ответы на которые могут помочь остальным - задавайте. Вместе сделаем доброе дело. Никаких тайных переговоров.
P.S. Что бы у людей не пропадало желание давать ответы на этом ресурсе, было бы неплохо отмечать решения или нажимать кнопку "нравится" на наиболее адекватных ответах, даже если они прямо и не помогли.
Максим Кравченко, FAQ невозможен так как чистая 7.7 не существует в природе. Есть целая палитра типовых/отраслевых решений, есть разные версии одной и той же конкретной конфигурации, но ни одно из этого множества не покрывает "из коробки" потребности компаний и все проданные 7.7 после установки годами допиливались. С учетом того, что массово продавать 7.7 перестали еще более десяти лет назад, в конкретно вашей базе от типового функционала могло ничего не остаться.
Одно дело, если вы берете стандартные механизмы переноса, про которые я написал в своем ответе, и переносите понимая, что ответственность за косяки на вас и все нестыковки вы посадите исправлять "девочек". А совсем другое привлекать за деньги специалиста на работу. Вам нужно описать все справочники для переноса, объем информации для переноса (артикулы, штрихкоды, ИНН и пр.), от куда брать недостающую информацию и так далее. Я сейчас не готов браться за ваш проект. Предлагаю зарегистрировать эту задачу на сайтах фрилансеров и провести между ними тендер.
Максим Кравченко, с помощью стандартной обработки RefPrint выгрузить эти справочники в Excel, а от туда загрузить в восьмерку с помощью стандартной обработки "Загрузка из табличного документа". Обе обработки есть на сайте ИТС и на дисках ИТС за любой месяц любого года (не говоря про бесчисленные файлохранилища в интернете).
Народ, помогите советом, нужно перенести в 1С 8 из 7.7 хотя бы справочники и контрагентов. Как это можно реализовать?
Нужно сравнить конфигурации, написать правила обмена, или найти готовые правила подходящие под конкретный случай, и сделать перенос штатными средствами.
У меня такая ошибка при переносе стандартным методом.
Читайте также: