Записки IT специалиста
Тестирование и исправление информационной базы — что делает и для чего нужно
- Автор: Уваров А.С.
- 22.05.2021
Существуют вещи настолько привычные, что кажется все про них знают, но это весьма обманчивое впечатление. Да, о них почти все знают, почти все используют, но мало кто представляет происходящие при этом процессы, скрытые за привычной внешней формой инструмента. При этом те, кто знает не спешат делиться, ведь это «общеизвестно», а те, кто не знает стесняются спросить по той же самой причине. Но мы не будем стесняться, а подробно расскажем о том, что делает каждая опция данного инструмента, заглянув каждый раз немного глубже простого описания.
Научиться настраивать MikroTik с нуля или систематизировать уже имеющиеся знания можно на углубленном курсе по администрированию MikroTik. Автор курса, сертифицированный тренер MikroTik Дмитрий Скоромнов, лично проверяет лабораторные работы и контролирует прогресс каждого своего студента. В три раза больше информации, чем в вендорской программе MTCNA, более 20 часов практики и доступ навсегда.
Давно известно: как вы лодку назовете — так она и поплывет. Это в полной мере применимо к такому известному инструменту как Тестирование и исправление информационной базы, название выбрано крайне неудачно, так как предполагает, что использовать представленные в нем возможности следует при возникновении проблем с информационной базой и исправлении ошибок. На самом деле это не так. Любой имеющий опыт работы с «серьезными» СУБД найдет в этом списке привычные ему инструменты обслуживания баз данных, которые следует применять регулярно для поддержания высокой производительности сервера. Но речь сейчас не о них, а о начинающих, либо имеющих к 1С опосредованное отношение.

Описание этой таблички можно найти много где, но в большинстве случаем там будут стандартные абзацы вроде:
Проверка логической целостности информационной базы проверяет и исправляет логические ошибки в структурах таблиц
Что это за ошибки, откуда они берутся, чем чреваты? Кто в теме — тот знает, а кто нет? Спросить? Да как бы неудобно, это же все знают. Вот и сводится большинство «знания» к тому, как правильно расставить в этой форме галочки и не забыть перед этим обязательно сделать резервную копию, а то мало ли.
Поэтому давайте разбираться, мы специально упростили многие вопросы, постаравшись сделать их понятными даже тем, кто имеет смутное представление о структуре и принципах работы баз данных.
Реиндексация таблиц информационной базы
Начнем с того, что такое индексы и для чего они нужны. Если рассматривать базу данных логически — то это некая совокупность связанных друг с другом таблиц, которые в свою очередь содержат какие-либо данные. Физически таблицы хранятся на диске в виде страниц и чем больше размер таблицы, тем большее количество страниц она будет содержать.
Допустим у нас есть некая таблица и мы хотим получить из нее все данные, связанные с фамилией Иванов. Для этого программе нужно последовательно считать все страницы, принадлежащие данной таблице и найти в них записи, соответствующие запросу.

Но ведь это чудовищно неэффективно, скажет внимательный читатель и будет прав. Что же делать? К счастью, все уже давно придумано. Хранение данных в СУБД можно сравнить с библиотекой, где таблицы — это залы библиотеки, а страницы — стеллажи. И когда вам нужна какая-то книга библиотекарь ведь не обходит физически все стеллажи, а сразу идет куда надо и приносит вам то, что вы просили. Чтобы быстро искать книги в библиотеках существуют каталоги, где книги перечислены в упорядоченном виде, и каждая карточка содержит сведения о том, где именно хранится тот или иной экземпляр.
В нашем случае роль такого каталога выполняет индекс. Это — специальный набор записей, связанный с определенным ключом — полем таблицы, в нашем случае фамилией, и указывающий на каких страницах хранятся интересующие записи. После того как мы создали индекс программе больше не нужно последовательно считывать всю таблицу, потому что известно, что записи, связанные с ключом Иванов, хранятся только на первой и третьей страницах.

По мере работы с программой эффективность индексов снижается, особенно если вы активно удаляли или добавляли данные. Также индексы могут подвергаться фрагментации. Если снова сравнить с библиотекой, то за день работы посетители перепутали несколько ящиков, а работники библиотеки карточки новых книг поставили в конец и забыли убрать отсутствующие. Но все равно поиск по такому каталогу окажется быстрее, чем обход всех стеллажей в зале. А что нужно сделать, чтобы вернуть поиску прежнюю эффективность? Правильно, навести порядок в каталоге. Именно этим и занимается реиндексация, которая заново формирует индексы таблиц базы данных и устраняет их фрагментацию, что важно, если вы используете обычные жесткие диски или недорогие SSD.
Реиндексация — это простой и достаточно недорогой способ повысить эффективность работы с информационной базой, причем эффект может быть виден сразу, особенно в файловых базах. Поэтому реиндексацию делать нужно и желательно регулярно, включив ее в обязательный план регламентного обслуживания информационных баз.
Проверка логической целостности информационной базы
Если говорить о СУБД, то любая система управления базами данных, в том числе и та, которая используется файловой версией 1С, обеспечивает целостность данных встроенными средствами и вам вряд ли придется заниматься этим вопросом, если только, конечно, не произошло физического повреждения базы данных. Как мы уже говорили выше, база данных — это набор взаимосвязанных таблиц и самой СУБД в общем то все равно что мы храним в этих таблицах, для нее таблица Документа ничем не отличается от таблицы Справочника, кроме состава полей.
Но на уровне информационной базы 1С существует совсем иной набор объектов: Справочники, Документы, Регистры сведений и накопления и т.д. и т.п. При этом они связаны определенной внутренней логикой. Так элементы справочника могут иметь иерархическую структуру, являться подчиненными для другого справочника, а документы быть основанием для других документов, формировать проводки, записи регистров и т.д. и т.п. В процессе работы данная логика может быть нарушена, как по причине ошибок в программе, так и в результате некоторых действий пользователя.
Давайте рассмотрим следующую схему, отражающую некоторый набор бизнес-логики. У нас есть два документа: Реализация и Оплата, которые делают движения по некоторым регистрам. Так при реализации мы списываем нужное количество товара со склада и вносим в регистр взаиморасчетов задолженность покупателя. В момент оплаты мы вносим полученную сумму в регистр денежных средств и закрываем задолженность покупателя по отгрузке полностью или частично. Но как мы определим, какую именно задолженность погасил клиент? А для этого мы введем в документе оплата обязательное поле Основание, в котором будем указывать нужную реализацию.

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

Внешне это может проявляться так: отчеты по реализациям и оплатам от контрагента совпадают, а вот отчет по взаиморасчетам или акт сверки формируется неправильно. При этом вы можете раз за разом пересчитывать суммы руками, все будет сходиться, но отчет снова и снова будет давать неверный результат.
Поэтому во всех подобных случаях, когда отчеты показывают неверные результаты или не сходятся друг с другом, следует запускать проверку логической целостности. Но не следует ожидать от нее какого-либо чуда, потому что она способна исправить только некоторые, самые очевидные ошибки (проводка без регистратора, неверный родитель элемента справочника и т.д.), в остальных случаях потребуется анализ ситуации и ручное исправление обнаруженных проблем. При этом нарушение логической целостности очень часто бывает связано с нарушением ссылочной целостности, о которой мы поговорим ниже.
Как часто нужно запускать эту проверку? Время от времени, особенно в файловых базах с обязательным изучением лога проверки, чем раньше вы узнаете о возможных проблемах в структуре данных и устраните их — тем лучше.
Проверка ссылочной целостности информационной базы
Данная проверка является одним из вариантов проверки логической целостности базы и выявляет проблемы со ссылками на отсутствующие элементы базы данных. Как мы уже говорили, база — это набор связанных между собой таблиц. В одной из них мы можем хранить контрагентов, в другой номенклатуру, в третьей — список складов, а внося запись о реализации товаров просто делаем ссылки на нужные элементы других таблиц. Например, наш условный документ Реализация может ссылаться на справочники Контрагенты, Номенклатура, Склады, выбирая и указывая в документе соответствующие значения мы не создаем дополнительных записей в таблице реализации, а даем ссылки на элементы связанных таблиц.

Контроль ссылочной целостности является подмножеством контроля логической целостности и осуществляется на уровне конфигурации. С ним сталкивался каждый, кто пытался удалить какой-либо объект их базы, а в ответ получал сообщение, что это невозможно, так как данный объект используется и приводился список мест использования.
Но что будет, если используемый объект все-таки удалить? Возникнет битая ссылка. Внешне она выглядит как запись со ссылкой на уникальный идентификатор отсутствующего объекта:
Если подходить с чисто теоретических позиций, то битых ссылок в информационной базе быть не должно. Но не все так просто, если в базе используется РИБ, либо иные технологии обмена с другими базами и внешними источниками, то ряд второстепенных реквизитов может не передаваться. Например, сведения о подключаемом оборудовании.
![]()
В данном случае это нормально (Конфигурация Розница 2.3), так как конкретный экземпляр оборудования подключен именно к конкретному рабочему месту и передавать эти данные куда-то еще лишено особого смысла.
Но чаще к этой ошибке приводит повреждение базы или некорректные действия пользователя, скажем, удалившего объекты без контроля ссылочной целостности. В любом случае появление битых ссылок — это серьезный симптом и повод для отдельного разбирательства, рубить с плеча здесь неуместно. Поэтому сами разработчики при активации этой проверки переводят ее в безопасный режим, устанавливая действие Не изменять, по сути проверка лишь проинформирует вас о наличии битых ссылок, не более.

А вот после, установив сам факт их наличия следует думать. В ряде случаев, если выявленные ссылки являются второстепенными объектами подчиненных баз не нужно делать ничего. Наоборот, любая попытка «исправления» может привести к нарушению нормальной работы информационной базы. А вот в других надо предпринимать какие-либо действия.
Давайте посмотрим какие варианты у нас есть. Начнём со ссылок на несуществующие объекты. Здесь все довольно просто, мы можем или очистить ссылку, или создать новый объект нужного типа. Допустим, если запись справочника Номенклатура оказалась повреждена, но мы точно знаем по бумажным документам, что именно реализовывали, то ставим Создавать объекты, после чего переходим к ним и заполняем нужные реквизиты. Если же это какой-то второстепенный реквизит, то можем просто очистить ссылки. Второй вариант довольно часто применяется в тех случаях, когда надо быстро почистить базу и ряд объектов удаляется без контроля ссылочной целостности.
Теперь о частичной потере данных объектов. К ним могут относиться элемент подчиненного справочника без владельца или движение без регистратора. Мы можем либо удалить такие объекты, либо создать связанные с ними. Чаще всего такие объекты имеет смысл удалять, особенно если это движения, хотя если это элемент справочника, владелец которого потерян, то в ряде случаев имеет смысл создать владельца.
Внимание! Перед любыми исправлениями ссылочной целостности в базе обязательно создайте резервную копию. Помните, что данная операция необратима и может привести к полной или частичной потере данных!
Но даже имея показания к исправлению некоторых битых ссылок следует иметь ввиду, что данный инструмент применит выбранное действие ко всем ссылкам без разбора, что во многих случаях неприемлемо. Поэтому чаще всего проблему битых ссылок следует решать иными путями, один из них — выгрузка необходимых справочников или документов в XML из резервной копии и загрузка их в целевую базу в тех случаях когда просто восстановиться из бекапа невозможно.
Когда следует запускать эту проверку? В тех случаях, когда в базе не обнаружены битые ссылки или когда проверка логической целостности выявляет ошибки. Но в любом случае первый запуск следует производить с действиями Не изменять, а последующие решения принимать на основании глубокого анализа ситуации.
Пересчет итогов
В составе конфигурации 1С имеются специальные объекты — регистры, которые предназначены для хранения записей в разрезе определенных измерений. Например, регистр сведения Цены хранит сведения о ценах в разрезе измерений Номенклатура и Дата, а регистр накопления Товары хранит сведения об остатках товаров в разрезе Номенклатуры, Вида движения (расход или приход), Количества и Даты.
Начем с более простого, регистров сведения, допустим мы хотим получить действующие цены на определенную дату. Но если мы просто получим записи за этот день, то увидим, что цены менялись только для некоторых позиций номенклатуры, чтобы получить полный набор цен нам надо прочитать записи регистра на неопределенное количество дней назад, пока мы не получим последние цены для каждой позиции номенклатуры. Чтобы этого не делать регистр сведений имеет специальную виртуальную таблицу — СрезПоследних, которая содержит последние актуальные цены на каждый день. Теперь нам достаточно один раз обратиться к этой таблице, чтобы получить нужные сведения на интересующую дату.

Немного сложнее с регистрами накопления, записи в них содержат только сведения о движениях, скажем, такого-то числа в такое-то время на склад пришло 10 позиций некоторой номенклатуры, затем тем же днем продали 1 шт, потом 3 шт, за ней снова 5 шт и после еще 1 шт. При этом ряд вопросов, которые могут нас интересовать гораздо шире. Нас могут интересовать остатки на произвольный момент времени, либо обороты за некоторый период.
Чтобы не делать глубоких выборок по регистрам накоплений в них предусмотрены виртуальные таблицы Остатки, Обороты, Остатки и обороты. Каждая из них содержит актуальные данные за определенный период, в нашем случае день. И если таблица остатков в особом пояснении не нуждается, то таблица оборотов на нашей схеме может вызвать вопросы, так как ее содержимое полностью совпадает со значениями регистра. На самом деле редко когда регистр содержит единственную запись за день, чаще всего там множество записей движения: утром привезли на склад товар, потом его активно продавали, затем довезли еще немного и продолжили торговлю. При этом таблица обороты отобразит общий оборот за период.

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

Какой практический смысл этой операции? Да особо никакого, фрагментация данных от этого не уменьшится, а скорее всего даже увеличится. Единственный смысл сжатия базы — это если вы удалили из нее значительный объем данных и теперь просто оптимизируете общее занимаемое место.
Когда следует выполнять данное действие? Только если вы удалили из базы значительный объем данных, ну или если размер файла базы для вас критичен.
Реструктуризация таблиц информационной базы
Если реиндексация только перестраивала индексы, то реструктуризация полностью перестраивает содержимое базы данных, для каждой таблицы создается копия и записывается в отдельное место на диске, затем вся база данных полностью замещается копией. В чем смысл этого действия? Фактически мы произвели дефрагментацию базы данных, если ранее данные таблицы могли быть разбросаны по диску, то теперь они будут расположены последовательно.
![]()
Есть ли в этом практический смысл? В общем и целом, нет, чтение из страниц таблицы носит преимущественно случайный характер, последовательно считывание все таблицы — это уже ошибка построителя запросов. Но реструктуризация все-таки имеет смысл, скажем если вы добавили в базу собственный набор реквизитов или обновили релиз конфигурации (в этом случае реструктуризация будет выполнена автоматически). В любом случае лучше, чтобы связанные данные лежали рядом. Но следует понимать, что в процессе реструктуризации придется переместить весь объем информационной базы, а это может занять весьма продолжительное время.
И как раз-таки после реструктуризации будет уместно выполнить сжатие. Так как данные перемещать уже не надо, а пустое пространство уже сосредоточено в одном месте.
Как часто следует запускать? По необходимости, в том случае если вы изменили набор метаданных.
Пересоздание автономной конфигурации
Достаточно специфическая функция и относится к мобильному клиенту с возможностью автономной работы. Потеряв связь с основной базой данных такой клиент переключается в автономный режим и начинает использовать автономную конфигурацию. Если в данном режиме автономный клиент ведет себя неадекватно, то автономную конфигурацию следует пересоздать.
Проверка логической целостности расширений конфигурации
Не так давно фирма 1С добавила еще один способ доработки конфигураций — расширения. Основное их преимущество, что нет необходимости править код основной конфигурации или снимать ее с поддержки. Но современные расширения позволяют добавлять в базу новые реквизиты, справочники, документы, регистры и организовывать логические связи между ними.
Данная проверка аналогична проверке логической целостности, только с учетом подключенных расширений, которых может быть и не одно. Если вы используете расширения, то обязательно включайте данную проверку вместе с проверкой логической целостности.
Заключение
По умолчанию фирма 1С предлагает достаточно сбалансированный набор действий: реиндексация и пересчет итогов благотворно влияют на производительность, а проверка логической целостности позволяет на ранних этапах выявить возможные проблемы. Если вы используете расширения, то добавьте туда проверку логической целостности расширений.
Остальные проверки и действия следует выполнять только при наличии необходимости. Так обнаружив ошибки в логической целостности следует выполнить проверку ссылочной целостности, а существенно изменив структуру базы данных имеет смысл выполнить реструктуризацию.
Надеемся, что данный материал окажется вам полезен, а также поможет по-новому взглянуть и глубже понять привычные действия.
Научиться настраивать MikroTik с нуля или систематизировать уже имеющиеся знания можно на углубленном курсе по администрированию MikroTik. Автор курса, сертифицированный тренер MikroTik Дмитрий Скоромнов, лично проверяет лабораторные работы и контролирует прогресс каждого своего студента. В три раза больше информации, чем в вендорской программе MTCNA, более 20 часов практики и доступ навсегда.
Помогла статья? Поддержи автора и новые статьи будут выходить чаще:
![]()
Или подпишись на наш Телеграм-канал: ![]()
Администрирование узлов распределенной информационной базы
Описанные рекомендации применимы в том числе к автономным рабочим местам ( АРМ ) для приложений в модели сервиса.
Процедуру восстановления информационной базы подчиненного узла можно разделить на несколько этапов:
Шаг 1. Обновить конфигурацию подчиненного узла путем загрузки конфигурации главного узла.
Шаг 2. Выполнить получение данных для восстановления в подчиненных узлах
Выполнить вход в подчиненный узел. Если при запуске открывается форма Повторная синхронизация данных перед запуском , нажать Синхронизировать и продолжить .
В противном случае, перейти в раздел Администрирование – Настройка синхронизация данных , в форму Синхронизация данных и выполнить синхронизацию данных.
После выполнения этих действий работоспособность распределенной информационной базы восстановлена.
Отключение от главного узла требуется в случае, если было принято решение использовать подчиненный узел как самостоятельную информационную базу. Описанные рекомендации применимы в том числе к автономным рабочим местам ( АРМ ) для приложений в модели сервиса.
Процедуру отключения информационной базы подчиненного узла можно разделить на несколько этапов:
Шаг 1. Отключение режима распределенной информационной базы
Выполнить отключение информационной базы с помощью параметра запуска конфигуратора /ResetMasterNode .
Шаг 2. Подтверждение отключения связи с главным узлом
Шаг 3. Действия над служебными данными
В этом шаге описаны действия по обходу ошибки, связанной с тем, что после отключения от главного узла не очищается ряд настроек, что в дальнейшем может создавать трудности при работе с информационной базой.
- Настройка подчиненного узла РИБ завершена — флаг должен быть снят;
- Это автономное рабочее место -флаг должен быть снят.
Так же, через меню Все функции — Планы обмена , необходимо удалить запись плана обмена, соответствующий главному узлу распределенной информационной базы.
В режиме «1С:Предприятие» выполнить вход в подчиненный узел и отказаться от предложения на восстановление связи с главным узлом.
В первой части статьи был рассмотрен собственно Автономный сервер – приложение ibsrv, его преимущества, ограничения, показания к использованию.
Перейдем ко второй части, представляющей для кого-то, возможно, даже больший интерес. В первую очередь, думаю, это должно заинтересовать адептов CI-CD.
Утилита администрирования – ibcmd
Утилита администрирования на текущий момент предоставляет два режима работы
- Server – в этом режиме создаются или изменяются конфигурационные файлы для Автономного сервера.
- Infobase – предназначен для выполнения различных действий с информационными базами: создание, загрузка/выгрузка, импорт/экспорт и т.д.
Режим «server»
Режим работы server тесно связан с самим «Автономным сервером»
Главным его назначением является формирование корректного файла настроек для Автономного сервера, в формате YML.
Например, приведенная ниже команда, на основании переданных параметров и значений по умолчанию, сформирует файл sb_demo.yml, который далее можно указывать как самому серверу ibsrv, так и утилите управления ibcmd вместо длинной цепочки параметров.
>ibcmd server config init —db-server=localhost —dbms=MSSQLServer —db-name=sb_demo —db-user=test_db_user —db-pwd=test_pwd_123 «%tmp%\sb_demo.yml»
Содержимое созданного файла sb_demo.yml:
На этом, пожалуй, описание режима server можно считать исчерпанным.
Режим «infobase»
Возможности утилиты я продемонстрирую на примерах. В замечаниях будут указаны особенности, определенные экспериментально или в переписке с разработчиками на партнерском форуме.
Все примеры буду приводить с заполнением параметров командной строкой. Но в каждом из них можно вместо общих ключей указать путь к файлу конфигурации подобным образом:
Создание базы
Начнем, как обычно, с самого простого примера. Создадим файловую базу.
C:\Program Files (x86)\1cv8\8.3.14.1630\bin>ibcmd infobase create —db-path=»d:\test\demo_db»
[ INFO] Создание информационной базы.
[ INFO] Создание информационной базы успешно завершено
В результате выполнения команды, создан каталог «d:\test\demo_db» и в нём размещена пустая база 1С – файл 1Cv8.1CD (и пара служебных файлов .cfl)

Одновременно с созданием, одной командой можно выполнить дополнительные действия:
- Загрузить базу из dt-файла
- Загрузить конфигурацию из cf-файла
- Загрузить конфигурацию из XML-файлов
Создать и загрузить выгрузку из dt-файла.
>ibcmd infobase create —db-path=»d:\test\demo_db» —restore=»E:\1C_templates\1c\smallbusiness\1_6_18_156\ОпцииВкл.dt»
C:\Program Files (x86)\1cv8\8.3.14.1630\bin>ibcmd infobase create —db-path=»d:\test\demo_db» —restore=»E:\1C_templates\1c\smallbusiness\1_6_18_156\ОпцииВкл.dt»
[ INFO] Создание информационной базы.
[ INFO] Создание информационной базы успешно завершено
[ INFO] Загрузка информационной базы.
[ INFO] Загрузка информационной базы успешно завершена
Создать и загрузить Конфигурацию из cf-файла.
Для разнообразия создадим новую базу с размещением в СУБД. Добавляем ключ загрузки из cf-файла и путь к нему. Повторяющиеся ключи и параметры в дальнейших примерах будут затенены серым шрифтом.
>ibcmd infobase create —db-server=localhost —dbms=MSSQLServer —db-name=sb_demo —db-user=test_db_user —db-pwd=test_pwd_123 —create-database —load=»%tmp%\sb_demo.cf»
C:\Program Files\1cv8\8.3.14.1630\bin>ibcmd infobase create —db-server=localhost —dbms=MSSQLServer —db-name=sb_demo —db-user=test_db_user —db-pwd=test_pwd_123 —create-database —load=»%tmp%\sb_demo.cf»
[ INFO] Создание информационной базы.
[ INFO] Создание информационной базы успешно завершено
[ INFO] Загрузка конфигурации.
[ INFO] Загрузка конфигурации успешно завершена
Замечание. При создании базы в СУБД, смысл команды create правильнее было бы назвать «инициализацией», т.к. выполняется создание структуры таблиц и индексов в существующей базе данных. Если же базы данных не существует, будет выдана ошибка. Чтобы при отсутствии базы данных она была создана, требуется указать ключ —create-database , аналогично установке флажка «Создать базу данных в случае её отсутствия» в консоли кластера.
Создать и загрузить Конфигурацию из XML-файлов.
Меняем ключ загрузки на —import и указываем каталог с исходниками.
>ibcmd infobase create —db-server=localhost —dbms=MSSQLServer —db-name=sb_demo —db-user=test_db_user —db-pwd=test_pwd_123 —create-database —import=»%tmp%\sb_demo_export»
C:\Program Files\1cv8\8.3.14.1630\bin>ibcmd infobase create —db-server=localhost —dbms=MSSQLServer —db-name=sb_demo —db-user=test_db_user —db-pwd=test_pwd_123 —create-database —import=»%tmp%\sb_demo_export»
[ INFO] Создание информационной базы.
[ INFO] Создание информационной базы успешно завершено
[ INFO] Импорт конфигурации из XML.
[ INFO] Импорт конфигурации из XML успешно завершен
Замечание. Загрузка конфигурации из cf-файла или XML-файлов выполняется в «основную» Конфигурацию информационной базы. Конфигурация базы данных после такой операции остается прежней. Чтобы сразу после загрузки произвести обновление конфигурации базы данных, можно добавить ключ —apply .
Загрузка и выгрузка сf, cfe, dt, xml
Разумеется, загрузку dt, cf, cfe, xml-файлов можно выполнить и отдельными командами, без создания информационной базы. Выгрузка во всех поддерживаемых форматах также присутствует.
>ibcmd infobase restore —db-server=localhost —dbms=MSSQLServer —db-name=sb_demo —db-user=test_db_user —db-pwd=test_pwd_123 «E:\1C_templates\1c\smallbusiness\1_6_18_156\ОпцииВкл.dt»
>ibcmd infobase dump —db-server=localhost —dbms=MSSQLServer —db-name=sb_demo —db-user=test_db_user —db-pwd=test_pwd_123 «%tmp%\sb_demo.dt»
Загрузка конфигурации из cf-файла:
>ibcmd infobase config load —db-server=localhost —dbms=MSSQLServer —db-name=sb_demo —db-user=test_db_user —db-pwd=test_pwd_123 «%tmp%\sb_demo.cf»
Выгрузка конфигурации в cf-файл:
>ibcmd infobase config save —db-server=localhost —dbms=MSSQLServer —db-name=sb_demo —db-user=test_db_user —db-pwd=test_pwd_123 «%tmp%\sb_demo.cf»
Замечание. Для команды выгрузки конфигурации save по умолчанию выгружается конфигурация базы данных, а не основная. Для того, чтобы сохранить основную конфигурацию, необходимо указать ключ —staging
Загрузка конфигурации из XML-файлов:
>ibcmd infobase config import —db-server=localhost —dbms=MSSQLServer —db-name=sb_demo —db-user=test_db_user —db-pwd=test_pwd_123 «%tmp%\sb_demo_export»
Выгрузка конфигурации в XML-файлы:
>ibcmd infobase config export —db-server=localhost —dbms=MSSQLServer —db-name=sb_demo —db-user=test_db_user —db-pwd=test_pwd_123 «%tmp%\sb_demo_export»
Замечание. Для команд загрузки и выгрузки конфигурации доступно указание ключа —extension и имени расширения, которое нужно загрузить или выгрузить.
Обновление конфигурации базы данных
После загрузки Конфигурации или расширения, конечно же, требуется обновить конфигурацию базы данных.
>ibcmd infobase config apply —db-server=localhost —dbms=MSSQLServer —db-name=sb_demo —db-user=test_db_user —db-pwd=test_pwd_123
C:\Program Files\1cv8\8.3.14.1630\bin>ibcmd infobase config apply —db-server=localhost —dbms=MSSQLServer —db-name=sb_demo —db-user=test_db_user —db-pwd=test_pwd_123
[ INFO] Обновление конфигурации базы данных.
[ INFO] Проверка корректности метаданных.
[ INFO] Обработка структуры базы данных.
[ INFO] Обработка данных: Реструктуризация Перечисление.РезультатыОбработкиЗапросовНаИспользованиеВнешнихРесурсовВМоделиСервиса
.
[ INFO] Новый объект: РегламентноеЗадание.ЧтениеНовостейСлужбыПоддержки
[ INFO] Новый объект: РегламентноеЗадание.ЭкспортОценкиПроизводительности
[ INFO] Изменена структура таблиц базы данных
[ INFO] Принятие изменений.
[ INFO] Обновление конфигурации базы данных успешно завершено
Прочие команды
Без примеров оставлю последние три команды, что есть в текущей версии утилиты.
- config check — проверка конфигурации
- config reset — восстановление конфигурации базы данных.
- clear — очистка информационной базы
Для чего всё это нужно?
Предполагаю, что у Вас уже возник вопрос: «И чем это отличается от пакетного режима Конфигуратора, который делает всё то же самое, и даже больше, давным-давно?». Признаюсь, я ждал этого вопроса.
Отличия от пакетного режима Конфигуратора:
Во-первых, для выполнения описанных действий посредством Конфигуратора, нужно, как минимум, чтобы Клиентская часть Платформы была установлена. С этим не возникает проблем, когда Вы работаете на своем компьютере с локальной базой. Но когда база расположена на сервере, который является только сервером приложений 1С, для загрузок-выгрузок есть следующие варианты:
а) выполнять операции Конфигуратором по сети. Это может занимать очень продолжительное время ввиду особенностей сетевого обмена между компонентами Платформы.
б) устанавливать клиентскую часть Платформы на сервер. Исключительно с целью ускорения выгрузок-загрузок.
А если Ваш сервер – на Linux и без графического интерфейса? Конечно, можно установить пакет Xvfb, эмулирующий вывод на дисплей, но ведь это «костыли», как Вы считаете?
Выполнение действий утилитой ibcmd возможно непосредственно на сервере, без установленного Клиентского приложения. Специально ничего устанавливать не требуется. Утилита присутствует в дистрибутиве сервера приложений 1С.
Во-вторых, клиентское приложение, в частности и Конфигуратор, работающий в пакетном режиме, требует лицензию. И возможность получить лицензию Конфигуратором есть не всегда.
Пример: лицензии выдаются Сервером 1С, локальных лицензий нет. При этом требуется загрузка/выгрузка для файловой базы.
Для выполнения действий утилитой ibcmd лицензия не требуется. Ни клиентская, ни серверная.
В-третьих, все операции с базой, выполняемые Конфигуратором, требуют авторизации в этой базе.
Пример: требуется извлечь конфигурацию из dt-файла, который Вам достался, скажем, из архива и неизвестен пароль пользователя ИБ, обладающего административными правами в ней.
Традиционный способ – создать временную информационную базу в клиент-серверном варианте, чтобы иметь возможность очистки таблицы пользователей. Загрузить в неё dt-файл. Очистить таблицу пользователей базы в СУБД. Перезапустить Конфигуратор. Выгрузить конфигурацию в файл. Удалить временную базу из СУБД.
Для операций, выполняемых ibcmd не требуется авторизация информационной базы. Upd 15.12.21: Ниже, в комментариях, коллеги указывают, что в Платформе версий 8.3.18.1689, 8.3.20.1549 авторизация ИБ уже требуется.
Выполнение той же задачи посредством ibcmd, будет выглядеть следующим образом:
>ibcmd infobase create —db-path=»%tmp%\db» —restore=»%tmp%\some_infobase.dt»
>ibcmd infobase config save —db-path=»%tmp%\db» «%tmp%\some_infobase.cf»
Да, я в знаю что существуют разработки на Инфостарте, позволяющие извлечь конфигурацию в виде cf-файла непосредственно из dt-файла. Здесь я описываю штатные механизмы.
В-четвертых, для выгрузки конфигурации посредством ibcmd, не имеет значения, запущен ли в данный момент Конфигуратор этой базы у кого-то еще или нет. Просто потому что мы не запускаем Конфигуратор.
Более того, я пока не знаю, расценивать ли это как баг или как фичу, но для выгрузки dt-файла не требуется монопольный режим! Конечно же, пользоваться этим стоит с осторожностью. Не думаю что попытка сделать dt-шник в момент активной работы с базой пройдет без негативных эффектов.
В-пятых. Формат командной строки гораздо проще чем для Конфигуратора. Кроме того, есть возможность использования конфигурационного файла, чтобы не указывать повторяющиеся параметры подключения.
Возможно, Вы сможете добавить еще пару-тройку отличий, если заинтересуетесь инструментом и станете им пользоваться.
Чего не хватает для полного счастья
Перечислю функционал, который хотелось бы увидеть в релизе (первоочередные хотелки):
- Инкрементальная выгрузка в XML только тех файлов, версии которых изменены.
Сейчас доступна только полная выгрузка в XML. - Работа с Хранилищем конфигураций: выгрузка версий, получение отчета по версиям.
- Экспорт непосредственно в формат EDT.
Об этом отдельно ниже. - Логирование в Технологическом Журнале в полном объеме.
Сейчас привычных событий SDBL, DBMSSQL, DBPOSTGRS, DBV8DBENG в ТЖ нет. Пишется только служебное SYSTEM.
Мне представляется, что утилита ibcmd получилась очень функциональным и универсальным инструментом. Возможно, даже более универсальным, чем изначально предполагалось. И сейчас, пока инструмент в статусе беты, у нас есть возможность повлиять на его дальнейшее развитие. Одним из применений и векторов развития мне видится использование в контурах CI-CD. Как для «традиционной» разработки с использованием Хранилищ, так и для работы в новом формате EDT.
Чтобы заменить пакетный режим Конфигуратора в процессе синхронизации «традиционной» разработки с репозиторием Git, не хватает только возможности работы с Хранилищем.
В своей переписке на партнерском форуме с разработчиками я обозначил такой вектор возможного развития инструмента и получил обещание проанализировать и подумать. Ниже привожу цитату своего описания возможного сценария использования. Здесь я защищал предложения включить возможность работы с Хранилищем и выгрузки в формате EDT.
- перевода существующих разработок в формат EDT
- совместной работы над общим Проектом, команд, ведущих разработку «традиционным методом» в Хранилище и «новаторских» с EDT. Пример такой работы приведен в статье «Постепенный переход на разработку в EDT».
- синхронизации Хранилища с репозиторием Git для целей CI-CD.
- необходимость установки Клиента и использование клиентских лицензий
- необходимость установки java
- необходимость установки самой EDT для конвертации XML-EDT
Заключение
Спасибо всем, кто дочитал до конца. Статья получилась значительно больше, чем я предполагал, создавая заготовку. Надеюсь, что я не зря потратил силы и время, и Вы открыли для себя что-то новое.
Чтобы ответить на поставленный вопрос, необходимо в принципе разобраться с тем, что такое «автономная конфигурация 1С». Для этого нужно понимать, как происходит работа с информационными базами в системе. После чего можно будет перейти к раскрытию темы статьи.
1. Клиентские приложения 1С
Работа в программе 1С строится на взаимодействии системы с пользователем. Для обеспечения этого используются клиентские приложения.

На сегодня применяют несколько клиентских приложений:
- Конфигуратор,
- Мобильный клиент,
- Веб-клиент
- Тонкий и толстый клиент.
В отличие от других конфигуратор предназначен для разработки и управления информационными базами, поэтому в данной статье подробно на нем останавливаться не будем.
Необходимо отметить, что до появления редакции 8.2 единственное клиентское приложение, которое использовалось продуктами 1С, было Толстый клиент. Для чего применялся файл 1cv8.exe.
Главное отличие, существующее между толстым и тонким клиентом основано на следующих моментах. При работе толстого клиента большая часть информации обрабатывается непосредственно на ПЭВМ. Это приводит к тому, что используемый ПЭВМ должен обладать большой мощностью, в частности, если одновременно пользуется не менее пяти человек. Минус в том, что существенно понижается скорость работы устройства, так как времени на обработку всей информации тратится куда больше.
Благодаря тонкому клиенту пользователь через приложение может взаимодействовать с системой. Все работы выполняются на самом сервере, сам пользователь видит только итоговую информацию, которая появляется после обработки. За счет этого заметно снижаются требования, предъявляемые к самой системе и каналам связи, ПК необходимо меньше ресурсов для хранения и обработки информации. Таким образом, запуск выполняется одним файлом 1cv8c.exe.
При сравнении приложений можно выделить следующие моменты:
-работа по сети может поддерживаться любым клиентом, кроме мобильного, при работе через Интернет может использоваться, как тонкий и мобильный клиент, так в веб;
-для возможности работать, как с тонким, так и толстым клиентом необходимо выполнить предварительную установку;
-здесь строго обозначены отличия между размерами используемого дистрибутива;
-перед тем, как использовать мобильное приложение необходимо также выполнить предварительную установку.
Какими свойствами обладают приложения рассматривается в следующей главе.
2. Преимущества и недостатки толстого и тонкого клиентов
В файловом варианте используется уникальная среда, где и выполняются все загрузки, в клиент-серверном все осуществляется за счет протокола TCP/IP. Именно в это и выражается явное преимущество тонкого клиента перед толстым. Однако, данный момент не освобождает от предварительной установки на ПЭВМ клиента.

Большой плюс использования толстого клиента заключается в полном исполнении прикладного кода. Хотя этот же фактор является и минусом. Так как для его реализации требуется большой объем дистрибутива. Потому что взаимодействие через интернет не предусмотрено, следовательно, все информационные базы загружаются на ПК.
Приложение лучше всего использовать при работе с предыдущими версиями платформы.
Есть следующие варианты:
-Клиент-сервер, используется за счет подключения по локальной сети используя протокол TCP/IP;
-Файловый, обмен информацией осуществляется через сеть.
В обоих вариантах возможно взаимодействие с базами данных, расположенных на том же ПК, где расположены кластер или файловая база данных.
3. Плюсы и минусы других приложений
Если говорить о мобильном клиенте, то по факту он представляет собой тонкий клиент, только применяемый для мобильных устройств. Интерфейс точно такой же, как и сама мобильная платформа. Особенность приложения заключается в том, что оно может сразу взаимодействовать с кластером серверов 1С. Также за счет мобильного клиента можно автоматически трансформировать формы, описанные в самой конфигурации.
То есть формы, которые были созданы для ПК, трансформируются таким образом, чтобы с ними было комфортно работать на смартфонах. Это делается за счет того, что наименее значимым элементам предоставляется меньше места, допустим, за счет сворачивания их в группу или сокрытия. Соответственно больше места отводится важным элементам. Вместе с тем мобильный клиент обладает способностью разворачивать горизонтально расположенные таблицы и списки для удобства их прокрутки и чтения с экрана.

Веб-клиент отличается тем, что исполняется не на компьютере пользователя, а в интернет-браузерах, таких как Safari, Mozilla Firefox, Google Chrome, Internet Explorer. Соответственно снижаются требования к ресурсам персонального компьютера, к количеству пользователей. Вся работа осуществляется просто запуском браузера. В нем следует ввести адрес web-сервера. После его загрузки происходит доступ к содержащимся там информационным базам.
Соответственно следует отметить, что не имеет значения какое клиентское приложение используется: веб-клиент, толстый или тонкий клиент, непосредственно разработка прикладного решения производится в конфигураторе 1С: Предприятие 8.3. А серверные и клиентские коды пишутся на встроенном языке 1С: Предприятие 8.
4. Автономный сервер в 1С
У данной автономной конфигурации отсутствуют следующие возможности:
5. Установка АС
Установка происходит одновременно с кластером серверов. Следовательно, для автономной конфигурации необходимо соблюдение тех же системных требований.

В итоге образуется два файла в каталоге под названием \bin:
- непосредственно автономный сервер – ibsrv.exe
- и утилита администрирования – ibcmd.exe.
Справочная система каждого из этих приложений вызывается стандартным методом, который применяется обычно для утилит командной строки:
C:\Program Files\1cv8\8.3.14.1494\bin>ibsrv.exe help
1C:Enterprise 8.3 Stand-alone Server с 1С-Soft LLC 1996-2020
Автономный сервер 1С:Предприятия 8
C:\Program Files\1cv8\8.3.14.1494\bin>ibcmd.exe help
1C:Enterprise 8.3 Stand-alone Server and Infobase Management Utilite с 1С-Soft LLC 1996-2020
Инструменты управления автономным сервером и информационной базой 1С:Предприятия 8
Запустить автономную конфигурацию можно как обычное приложение. Существует возможность запуска в виде сервиса операционной системы. Но в этом случае необходимо задействовать средства ОС, т.к. автономная конфигурация не обладает способностью саморегистрации как сервиса.
6. Запуск АС
Для того, чтобы запустить автономный сервер, следует ввести параметры либо в определенном конфигурационном файле, либо сразу в командной строке. При этом последняя обладает большей важностью. В случае пропуска какого-либо параметра применится значение по умолчанию.
Вручную или определенной командой можно создать конфигурационный файл. С помощью утилиты администрирования ibcmd это осуществляется следующим образом:

В консоли текст конфигурационного файла отразится:

С помощью данной утилиты можно создавать базы, осуществлять загрузки и выгрузки, а также иные действия. Например, загрузить выгрузку в базу:

В итоге получится:
Для того, чтобы запустить сервер для взаимодействия с файловой базой следует выполнить простую команду:
Однако, существует более легкий способ запуска автономного сервера. При таком методе отсутствует необходимость ввода параметров, сервер сам осуществляет поиск базы в каталоге.
Для это нужна команда:
ibsrv —dbms=db-type —db-server=server-name —db-user=pass —db-pwd=pass —db-name=db-name
Затем через интернет можно посмотреть саму базу:
7. Что такое «Пересоздание автономной конфигурации»?
В 1С на платформе 8.3.16 появилась возможность пересоздания автономной конфигурации. Чтобы осуществить этот процесс, нужно перейти в раздел «Тестирование и исправление». Внизу списка «Проверки и режимы» поставить галочку возле «Пересоздание автономной конфигурации». Затем поставить маркер «Тестирование и исправление», выбрать действия при наличии ссылок на несуществующие объекты и при частичной потере данных объектов. После этого нажать кнопку «Выполнить».

В каких случаях необходимо пересоздавать автономную конфигурацию? Этот процесс необходим при использовании мобильного клиента и представляет собой создание определенной формы с автономным режимом работы. Такая форма открывается заново после изменения доступности основного сервера. Особенность заключается в том, что форма переоткрывается с сохранением группы параметров, присутствовавших в оригинальной форме.
Более подробно можно изучить рекомендации, данные в документации, по созданию начальной страницы мобильного клиента с автономным режимом.
Параметр MobileStandalone был создан для запуска конфигуратора CheckConfig в пакетном режиме. Данный критерий дает возможность проверять конфигурацию для работы в автономной конфигурации.
Параметр RebuildStandaloneCfg был создан для запуска конфигуратора IBCheckAndRepair в пакетном режиме. Данный критерий дает возможность пересоздать автономную конфигурацию.
8. Заключение
Таким образом, создание автономного сервера 1С:Предприятие предоставило возможность обслуживания некоторых клиентских приложений. А именно тех, которые работают с информационными базами через интернет. Для работы такого сервера не требуется выделение веб-сервера. Следовательно, происходит значительная экономия компьютерных ресурсов, в частности, объема памяти и производительной мощности.

При этом следует помнить, что
- один автономный сервер может взаимодействовать только с одной ИБ;
- управление осуществляется утилитой командной строки;
- невозможно взаимодействие АС и конфигуратора;
- при этом возможна работа как с клиент-серверным, так и с файловым вариантами ИБ.
Также необходимо учитывать, что только при выборе файлового варианта возможно применение трех клиентских сеансов без использования серверной лицензии.
И хотя огромный плюс использования толстого клиента заключается в полном исполнении прикладного кода, однако, для его реализации требуется большой объем дистрибутива. Потому что взаимодействие через интернет не предусмотрено, следовательно, все информационные базы загружаются на ПК. Поэтому наиболее приемлемым вариантом является применение тонкого клиента.
Вместе с тем мобильный клиент по факту представляет собой тонкий клиент, только применяемый для мобильных устройств. Особенность приложения заключается в том, что оно может сразу взаимодействовать с кластером серверов 1С. Также за счет мобильного клиента можно автоматически трансформировать формы, описанные в самой конфигурации.
Взаимодействие приложений с ИБ происходит при помощи автономного сервера. А пересоздание автономной конфигурации необходимо при использовании мобильного клиента и представляет собой создание определенной формы с автономным режимом работы.
Общая информация
Разумеется, автономный сервер имеет некоторые ограничения. В частности он НЕ поддерживает следующие возможности:
Запуск автономного сервера
Автономный сервер устанавливается вместе с кластером серверов 1С и имеет такие же системные требования. После установки в каталоге bin появятся два файла:
- ibsrv.exe — сам автономный сервер;
- ibcmd.exe — утилита администрирования.
Оба приложения имеют справочную систему, которую можно вызвать стандартным, для утилит командной строки, способом:

Команда «help» автономного сервера
Автономный сервер может быть запущен как обычное приложение и как сервис (демон) операционной системы, при этом сам автономный сервер не умеет регистрировать себя в качестве сервиса, для этого нужно воспользоваться средствами ОС.
Параметры для запуска автономного сервера можно указать прямо в командной строке или в специальном конфигурационном файле. При этом командная строка имеет больший приоритет. Если какой-то параметр не указан ни в командной строке ни в конфигурационном файле, то будет использовано значение по умолчанию.
Конфигурационный файл создается специальной командой или вручную (подробнее ниже). Для запуска автономного сервера с учетом конфигурационного файла, необходимо указать расположение этого файла.
Запуск сервера для работы с файловой базой в самом простом случае выглядит так:
На самом деле самый простой вариант будет запуск автономного сервера вообще без параметров, в этом случае сервер поищет файловую базу в каталоге данных по умолчанию.
Запуск сервера для работы с клиент-серверным вариантом базы в самом простом случае выглядит так:
ibsrv —dbms=db-type —db-server=server-name —db-user=pass —db-pwd=pass —db-name=db-name

Запуск автономного сервера 1С
После этого к базу можно посмотреть например через браузер:

База на автономном сервере
Отладка на автономном сервере

Настройка отладки для автономного сервера 1С
В самом клиентском приложении также нужно указать сервер отладки (меню Сервис — Параметры…), например так:

Настройка клиентского приложения
После всего можно будет подключить предмет отладки через соответствующее меню (Главное меню — Отладка — Подключение…)
Конфигурационные файлы
Конфигурационный файл можно создать вручную, а можно при помощи утилиты администрирования ibcmd. Например:
ibcmd.exe server config init —dbms=mssqlserver —db-server=192.168.0.15 —db-user=sa —db-pwd=Z123456z —db-name=test01 —name=test03 —base=webAccess
В данном случае текст конфигурационного файла будет выведен прямо в консоль:

Создание конфигурационного файла
Что бы записать все это в файл на диске можно воспользоваться специальным параметром —out :
ibcmd.exe server config init —dbms=mssqlserver —db-server=192.168.0.15 —db-user=sa —db-pwd=Z123456z —db-name=test01 —name=test03 —base=webAccess —out=C:\test.conf
Или стандартными средствами:
ibcmd.exe server config init —dbms=mssqlserver —db-server=192.168.0.15 —db-user=sa —db-pwd=Z123456z —db-name=test01 —name=test03 —base=webAccess > C:\test.conf
Кроме этого утилита ibcmd позволяет выполнять различные операции — создавать базы и загружать в них конфигурации и выгрузки. Для примера загрузим выгрузку (dt) в базу на MSSQL сервере:
ibcmd.exe infobase restore —dbms=mssqlserver —db-server=192.168.0.15 —db-user=sa —db-pwd=Z123456z —db-name=test01 C:\1Cv8.dt

На этом все, надеюсь эта статья была Вам интересна.
Если Вы нашли ошибку или неточность, пожалуйста, выделите фрагмент текста и нажмите Ctrl+Enter.
(оценок: 4, средняя оценка: 5,00 из 5)
В статье рассматриваются основы механизма расширений – зачем они нужны, какие подводные камни при их использовании, и примеры использования.
Содержание
Что такое расширения 1С простыми словами?
По сути, расширение – это особый вид конфигурации, который предназначен для использования “поверх” основной конфигурации (ее в этом случае называют расширяемой). Расширение использует объекты основной конфигурации, а потому самостоятельно работать не может. Можно в этом плане сравнить расширения 1С с плагинами для браузеров или надстройками в MS Office.
Расширения нужны для доработки прикладного решения без внесения изменений в основную конфигурацию. Это позволяет не снимать с поддержки типовые решения и упрощает процесс обновления.
Какие бывают расширения?
1С предусматривает 3 вида расширений, исходя из их назначения.
- Исправление – данное назначение следует использовать для исправления ошибок в конфигурации. Следует понимать, что расширения 1С с таким назначением рассчитаны на конкретную версию конфигурации, и могут перестать работать после обновления. В базе может быть подключено несколько расширений – исправлений, но важно следить, чтобы не было конфликтов между такими расширениями. В некоторых типовых решениях 1С реализован механизм автоматической установки исправлений (патчей).
- Адаптация – как следует из названия, такие расширения предназначены для доработки конфигурации под условия конкретного заказчика. Рекомендуется обходиться минимальным количеством одновременно подключенных расширений с таким назначением. Если адаптацию выполняет одна команда разработчиков, лучше стараться обойтись одним расширением. Если же это невозможно, то рекомендуется делить расширения – адаптации по максимально крупным блокам.
- Дополнение – расширения с таким назначением следует применять для разработки новой функциональности, которая минимально связана с конкретными версиями прикладных решений. Такие расширения не должны учитывать наличие в системе расширений с другими назначениями, должны корректно работать после обновления версии конфигурации. Таких расширений в базе данных может быть подключено неограниченное количество. Предполагается, что дополнения – наиболее независимый от других конфигураций вид расширений, вплоть до того, что такое расширение можно применять на самых различных конфигурациях с разной структурой.
Список выше пронумерован не просто так. Расширения применяются к расширяемой конфигурации последовательно. Сперва подключаются исправления, затем добавляются расширения для адаптации, и в последнюю очередь – дополнения.

Разработка расширений
Приемы работы с расширениями во многом схожи с разработкой конфигураций. Точно также можно добавлять и редактировать объекты в дереве метаданных, модули, формы.
Но отличительной особенностью является возможность заимствования объектов из расширяемой конфигурации. В этом случае разработчик может переопределить поведение объекта, его внешний вид, добавить новую функциональность. Добавить объект в расширение можно при помощи контекстного меню:

Проверка возможности применения расширения
До запуска в пользовательском режиме можно проверить совместимость расширения и расширяемой конфигурации.
Это можно сделать в конфигураторе в окне “Расширения конфигурации” – как для текущего выделенного расширения, так и для всех подключенных расширений одновременно.
Также проверку можно выполнить в пользовательском режиме при помощи стандартной обработки “Управление расширениями конфигурации”.
Менее часто используемые способы проверки – средствами встроенного языка и при пакетном запуске конфигуратора.
Подводные камни при использовании расширений 1С
При разработке и подключении расширений следует учитывать возможность расширений работать в безопасном режиме и защиту от опасных действий. Кроме того, при обновлениях или внесении доработок в основную конфигурацию, нужно проверять работоспособность расширений. Также, следует обновлять заимствованные объекты, если они были изменены в расширяемой конфигурации.
Помимо перечисленного, при работе с расширениями следует учитывать режим совместимости конфигурации и самого расширения. Расширения на настоящий момент имеют некоторые ограничения – т.е. поддерживаются не все объекты, есть ограничения на определяемые типы и др. С каждой новой версией платформы часть ограничений уходит в прошлое, становятся доступны новые возможности и функциональность, поэтому особое внимание следует обращать на версию платформы, для которой предназначено расширение.
Примеры использования расширений
Исправления ошибок конфигураций, находящихся на поддержке, до выхода очередного обновления.
Пересоздание автономной конфигурации 1с что это
Недостатком автомной конфигурации являются следующие ограничения:
Автономная конфигурация устанавливается вместе с кластером серверов 1С и имеет такие же системные требования. После установки в каталоге \bin появятся два файла:
- ibsrv.exe — сам автономный сервер;
- ibcmd.exe — утилита администрирования.
Оба приложения имеют справочную систему, которую можно вызвать стандартным, для утилит командной строки, способом:

Автономная конфигурация может запускаться в виде обычного приложения или как сервис операционной системы. Только он не умеет регистрировать себя в качестве сервиса, для этого необходимы средства операционной системы.
Параметры для запуска автономного сервера можно задать прямо в командной строке или в специальном конфигурационном файле. При этом командная строка имеет больший приоритет. Если какой-то параметр не указан ни в командной строке, ни в конфигурационном файле, то будет использовано значение по умолчанию.
Конфигурационный файл создается специальной командой или вручную (подробнее ниже). Для запуска автономного сервера с учетом конфигурационного файла, необходимо указать расположение этого файла.
Запуск сервера для работы с файловой базой в самом простом случае выглядит так:
На самом деле самый простой вариант будет запуск автономного сервера вообще без параметров, в этом случае сервер поищет файловую базу в каталоге данных по умолчанию.
Запуск сервера для работы с клиент-серверным вариантом базы в самом простом случае выглядит так:

После этого базу можно посмотреть через браузер:


Грамотные специалисты обычно дают свою профессиональную трактовку по этому вопросу. Пересоздание автономной конфигурации подразумевает создание специальной формы в мобильном клиенте с автономным режимом работы, которая переоткрывается после изменения доступности основного сервера. Причем переоткрывается, имея в наличии тот набор параметров, которые есть в оригинальной форме.
Для команды пакетного режима запуска конфигуратора CheckConfig реализован параметр -MobileStandalone, позволяющий выполнить проверку конфигурации для работы в автономной конфигурации. Для команды пакетного режима запуска конфигуратора IBCheckAndRepair реализован параметр -RebuildStandaloneCfg, позволяющий выполнить пересоздание автономной конфигурации.
(2020.6 RC2) Компактное представление информации в программе запуска и обновления

Теперь всю информацию в программе запуска и обновления мы показываем более компактным образом. Кроме этого действия, которые можно выполнять с проектами и версиями сред разработки, отображаются теперь не все время, а только при наведении курсора на выбранный элемент.



(2020.6 RC2) Быстрый доступ к файлам журналов программы запуска и обновления

Файлы журналов могут понадобиться для расследования ошибок работы программы запуска и обновления. Теперь вы можете быстро открыть каталог с этими файлами из настроек программы.

(2020.6 RC2) Работа через корпоративный прокси-сервер

Раньше в некоторых случаях программа запуска и обновления могла не работать через корпоративный прокси-сервер. Мы устранили эту проблему в ОС Windows и Linux. Теперь вам достаточно удостовериться, что в настройках операционной системы указаны правильные параметры корпоративного проски-сервера (подробнее). Решение для macOS будет позже.
(2020.6 RC2) Корректное удаление 1C:EDT, установленной из программы запуска и обновления

Мы устранили существовавший ранее недостаток. Теперь при удалении 1C:EDT, которая была установлена с помощью программы запуска и обновления, связанный ring-модуль с этой версией так же удаляется из пользовательского реестра утилиты ring.
(2020.6 RC1) 1С:Предприятие 8.3.18

Реализована поддержка версии 8.3.18 платформы «1С:Предприятие 8». Вы можете использовать ее для запуска и отладки конфигураций. Также вы можете использовать новую функциональность этой версии при разработке прикладных решений.
(2020.6 RC1) Оптимизация

Ускорен экспорт конфигурации из 1C:EDT за счет оптимизации чтения модулей. Тестовые замеры на конфигурации «1С:ERP Управление предприятием» показывают, что выигрыш составил 9% от общего времени экспорта модулей.
(2020.6 RC1) Новая модель сравнения и объединения конфигураций

Мы изменили внутреннюю модель сравнения и объединения конфигураций. В результате этого появилось несколько внешних изменений в поведении редактора сравнения и объединения:
- Выбрать режим объединения для узла (в правой колонке) теперь можно только при установленном флажке объединения. Если у узла флажок объединения снят, то выбор режима объединения недоступен. Ранее выбор режима объединения был доступен при снятом флажке объединения.
- При работе в операционных системах Windows и Linux редактор сравнения и объединения теперь не показывает чекбоксы для узлов, которые имеют под собой не объединяемые дочерние узлы. Ранее такие чекбоксы показывались и могли быть выбраны, но это не влияло на результат объединения.
(2020.6 RC1) Новый формат файла настроек объединения конфигураций

В результате изменения внутренней модели сравнения и объединения конфигураций мы изменили формат файла настроек объединения конфигураций. Новый формат файла несовместим со старым:
- при сохранении настроек из 1C:EDT версии 2020.6, файл сохраняется в новом формате; такой файл не может быть прочитан предыдущими версиями 1C:EDT ,
- файл настроек, созданный предыдущими версиями 1C:EDT , не может быть прочитан в 1C:EDT версии 2020.6.
Если ранее вы использовали сохраненные настройки объединения конфигураций, то перенести их в новую версию 1C:EDT не удастся. Настройки объединения нужно будет выполнить «с чистого листа» в новой версии 1C:EDT и сохранить их в файл.
(2020.6 RC1) Редактирование состава автономной конфигурации

Мы реализовали возможность редактирования состава автономной конфигурации при разработке приложения мобильного клиента с автономным режимом. Для этого в палитре свойств конфигурации появилась новая команда — Состав автономной конфигурации > Открыть .

Она открывает редактор состава автономной конфигурации, который расположен в одной из вкладок редактора конфигурации.

(2020.6 RC1) Просмотр значений при отладке

Мы улучшили просмотр значений переменных в модуле. Всплывающий диалог отладки имеет теперь заголовок, за который вы можете перетащить его в удобное место.

Кроме этого в заголовке есть меню, которое позволяет указать, нужно ли сохранять положение и размер диалога в дальнейшем.


Кроме этого мы улучшили просмотр выражений. Если вы не пользуетесь мышью при отладке, то теперь вы можете просто установить курсор на имени свойства и нажать Shift+F9 (команда Инспектировать в контекстном меню). Будет открыт диалог просмотра выражения. Раньше для этого необходимо было выделить все выражение целиком ( ЭлементРезультатаПоиска.Значение ).

(2020.6 RC1) Литералы в методах объектов блокировки данных

Мы реализовали контекстную подсказку при вводе литералов в методах БлокировкаДанных.Добавить() и ЭлементБлокировкиДанных.УстановитьЗначение(). Ранее такая подсказка отсутствовала и эти литералы нужно было вводить вручную.


(2020.6 RC1) Отображение кода счета в контекстной подсказке по счетам

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

(2020.6 RC1) Копирование реквизитов формы и колонок реквизитов

Теперь вы можете копировать существующие реквизиты формы и колонки реквизитов, которые создаются вручную. Например, колонки таблицы значений. Используйте для этого сочетания клавиш Ctrl+C и Ctrl+V .

(2020.6 RC1) Автоматическая установка псевдонимов полей в конструкторе запроса

Теперь в конструкторе запроса вы можете автоматически установить псевдонимы тем полям, которые их не имеют. Для этого мы добавили команду как на вкладке Объединения/Псевдонимы.

(2020.6 RC1) Просмотр информации о коммитах в текстовых макетах

Теперь в текстовых макетах, также, как и в модулях, вы можете просматривать информацию о коммитах, которая содержится в хранилище Git. Для этого в контекстное меню вертикальной линейки редактора мы добавили команду Показать информацию о ревизии. Она включает визуальное отображение коммитов Git, которое вы можете настраивать так же, как и в редакторе встроенного языка.

(2020.6 RC1) Сохранение конфигурации или расширения в файл

В контекстное меню панели Информационные базы мы добавили команду Сохранить конфигурацию в файл. . Она позволяет выгрузить конфигурацию информационной базы в CF-файл или расширение конфигурации в CFE-файл. Раньше для выполнения этих же действий нужно было сначала открыть Конфигуратор (Запустить Конфигуратор. ), а затем уже выгружать из него конфигурацию или расширение.

(2020.6 RC1) Публикация дистрибутивов тонкого клиента для ОС Linux

В платформе «1С:Предприятие» версии 8.3.18 реализована одновременная установка на один компьютер c ОС Linux нескольких версий 1С:Предприятия. Поэтому в настройках публикации информационной базы на веб-сервере вы можете теперь указывать расположение дистрибутива тонкого клиента для каждого типа Linux-дистрибутива.

(2020.6 RC1) Публикация системы аналитики

В диалоге публикации информационной базы и в свойствах публикации реализована возможность публикации системы аналитики. Подробнее о системе аналитики читайте здесь.

(2020.6 RC1) Добавление новой строки перед строкой многострочного литерала

Теперь вы можете добавлять новые строки перед строкой многострочного литерала. Для этого нужно установить курсор на строку, перед которой требуется добавить новую, и нажать Ctrl+Shift+Enter .

Как раньше, так и сейчас, аналогичное действие можно выполнить, установив курсор в конец первой строки и нажав Enter .
(2020.6 RC1) Команда для активации поиска в панели Навигатор

Для того, чтобы быстро перейти к строке поиска в панели Навигатор, вы можете использовать теперь сочетание клавиш Ctrl+8 .

(2020.6 RC1) Команда открытия синтакс-помощника

Для быстрого открытия синтакс-помощника мы добавили команду Shift+F1 . По этой команде в отдельном окне открывается справочная информация и позиционируется на описании встроенного языка.

(2020.6 RC1) Разработка плагинов

Для разработки плагинов используйте теперь сборку Eclipse 2020-06 for Eclipse Committers. Она доступна для установки из программы запуска и обновления.
Чтобы ответить на поставленный вопрос, необходимо в принципе разобраться с тем, что такое «автономная конфигурация 1С». Для этого нужно понимать, как происходит работа с информационными базами в системе. После чего можно будет перейти к раскрытию темы статьи.
1. Клиентские приложения 1С
Работа в программе 1С строится на взаимодействии системы с пользователем. Для обеспечения этого используются клиентские приложения.

На сегодня применяют несколько клиентских приложений:
- Конфигуратор,
- Мобильный клиент,
- Веб-клиент
- Тонкий и толстый клиент.
В отличие от других конфигуратор предназначен для разработки и управления информационными базами, поэтому в данной статье подробно на нем останавливаться не будем.
Необходимо отметить, что до появления редакции 8.2 единственное клиентское приложение, которое использовалось продуктами 1С, было Толстый клиент. Для чего применялся файл 1cv8.exe.
Главное отличие, существующее между толстым и тонким клиентом основано на следующих моментах. При работе толстого клиента большая часть информации обрабатывается непосредственно на ПЭВМ. Это приводит к тому, что используемый ПЭВМ должен обладать большой мощностью, в частности, если одновременно пользуется не менее пяти человек. Минус в том, что существенно понижается скорость работы устройства, так как времени на обработку всей информации тратится куда больше.
Благодаря тонкому клиенту пользователь через приложение может взаимодействовать с системой. Все работы выполняются на самом сервере, сам пользователь видит только итоговую информацию, которая появляется после обработки. За счет этого заметно снижаются требования, предъявляемые к самой системе и каналам связи, ПК необходимо меньше ресурсов для хранения и обработки информации. Таким образом, запуск выполняется одним файлом 1cv8c.exe.
При сравнении приложений можно выделить следующие моменты:
-работа по сети может поддерживаться любым клиентом, кроме мобильного, при работе через Интернет может использоваться, как тонкий и мобильный клиент, так в веб;
-для возможности работать, как с тонким, так и толстым клиентом необходимо выполнить предварительную установку;
-здесь строго обозначены отличия между размерами используемого дистрибутива;
-перед тем, как использовать мобильное приложение необходимо также выполнить предварительную установку.
Какими свойствами обладают приложения рассматривается в следующей главе.
2. Преимущества и недостатки толстого и тонкого клиентов
В файловом варианте используется уникальная среда, где и выполняются все загрузки, в клиент-серверном все осуществляется за счет протокола TCP/IP. Именно в это и выражается явное преимущество тонкого клиента перед толстым. Однако, данный момент не освобождает от предварительной установки на ПЭВМ клиента.

Большой плюс использования толстого клиента заключается в полном исполнении прикладного кода. Хотя этот же фактор является и минусом. Так как для его реализации требуется большой объем дистрибутива. Потому что взаимодействие через интернет не предусмотрено, следовательно, все информационные базы загружаются на ПК.
Приложение лучше всего использовать при работе с предыдущими версиями платформы.
Есть следующие варианты:
-Клиент-сервер, используется за счет подключения по локальной сети используя протокол TCP/IP;
-Файловый, обмен информацией осуществляется через сеть.
В обоих вариантах возможно взаимодействие с базами данных, расположенных на том же ПК, где расположены кластер или файловая база данных.
3. Плюсы и минусы других приложений
Если говорить о мобильном клиенте, то по факту он представляет собой тонкий клиент, только применяемый для мобильных устройств. Интерфейс точно такой же, как и сама мобильная платформа. Особенность приложения заключается в том, что оно может сразу взаимодействовать с кластером серверов 1С. Также за счет мобильного клиента можно автоматически трансформировать формы, описанные в самой конфигурации.
То есть формы, которые были созданы для ПК, трансформируются таким образом, чтобы с ними было комфортно работать на смартфонах. Это делается за счет того, что наименее значимым элементам предоставляется меньше места, допустим, за счет сворачивания их в группу или сокрытия. Соответственно больше места отводится важным элементам. Вместе с тем мобильный клиент обладает способностью разворачивать горизонтально расположенные таблицы и списки для удобства их прокрутки и чтения с экрана.

Веб-клиент отличается тем, что исполняется не на компьютере пользователя, а в интернет-браузерах, таких как Safari, Mozilla Firefox, Google Chrome, Internet Explorer. Соответственно снижаются требования к ресурсам персонального компьютера, к количеству пользователей. Вся работа осуществляется просто запуском браузера. В нем следует ввести адрес web-сервера. После его загрузки происходит доступ к содержащимся там информационным базам.
Соответственно следует отметить, что не имеет значения какое клиентское приложение используется: веб-клиент, толстый или тонкий клиент, непосредственно разработка прикладного решения производится в конфигураторе 1С: Предприятие 8.3. А серверные и клиентские коды пишутся на встроенном языке 1С: Предприятие 8.
4. Автономный сервер в 1С
У данной автономной конфигурации отсутствуют следующие возможности:
5. Установка АС
Установка происходит одновременно с кластером серверов. Следовательно, для автономной конфигурации необходимо соблюдение тех же системных требований.

В итоге образуется два файла в каталоге под названием \bin:
- непосредственно автономный сервер – ibsrv.exe
- и утилита администрирования – ibcmd.exe.
Справочная система каждого из этих приложений вызывается стандартным методом, который применяется обычно для утилит командной строки:
C:\Program Files\1cv8\8.3.14.1494\bin>ibsrv.exe help
1C:Enterprise 8.3 Stand-alone Server с 1С-Soft LLC 1996-2020
Автономный сервер 1С:Предприятия 8
C:\Program Files\1cv8\8.3.14.1494\bin>ibcmd.exe help
1C:Enterprise 8.3 Stand-alone Server and Infobase Management Utilite с 1С-Soft LLC 1996-2020
Инструменты управления автономным сервером и информационной базой 1С:Предприятия 8
Запустить автономную конфигурацию можно как обычное приложение. Существует возможность запуска в виде сервиса операционной системы. Но в этом случае необходимо задействовать средства ОС, т.к. автономная конфигурация не обладает способностью саморегистрации как сервиса.
6. Запуск АС
Для того, чтобы запустить автономный сервер, следует ввести параметры либо в определенном конфигурационном файле, либо сразу в командной строке. При этом последняя обладает большей важностью. В случае пропуска какого-либо параметра применится значение по умолчанию.
Вручную или определенной командой можно создать конфигурационный файл. С помощью утилиты администрирования ibcmd это осуществляется следующим образом:

В консоли текст конфигурационного файла отразится:

С помощью данной утилиты можно создавать базы, осуществлять загрузки и выгрузки, а также иные действия. Например, загрузить выгрузку в базу:

В итоге получится:
Для того, чтобы запустить сервер для взаимодействия с файловой базой следует выполнить простую команду:
Однако, существует более легкий способ запуска автономного сервера. При таком методе отсутствует необходимость ввода параметров, сервер сам осуществляет поиск базы в каталоге.
Для это нужна команда:
Затем через интернет можно посмотреть саму базу:
7. Что такое «Пересоздание автономной конфигурации»?
В 1С на платформе 8.3.16 появилась возможность пересоздания автономной конфигурации. Чтобы осуществить этот процесс, нужно перейти в раздел «Тестирование и исправление». Внизу списка «Проверки и режимы» поставить галочку возле «Пересоздание автономной конфигурации». Затем поставить маркер «Тестирование и исправление», выбрать действия при наличии ссылок на несуществующие объекты и при частичной потере данных объектов. После этого нажать кнопку «Выполнить».

В каких случаях необходимо пересоздавать автономную конфигурацию? Этот процесс необходим при использовании мобильного клиента и представляет собой создание определенной формы с автономным режимом работы. Такая форма открывается заново после изменения доступности основного сервера. Особенность заключается в том, что форма переоткрывается с сохранением группы параметров, присутствовавших в оригинальной форме.
Более подробно можно изучить рекомендации, данные в документации, по созданию начальной страницы мобильного клиента с автономным режимом.
Параметр MobileStandalone был создан для запуска конфигуратора CheckConfig в пакетном режиме. Данный критерий дает возможность проверять конфигурацию для работы в автономной конфигурации.
Параметр RebuildStandaloneCfg был создан для запуска конфигуратора IBCheckAndRepair в пакетном режиме. Данный критерий дает возможность пересоздать автономную конфигурацию.
8. Заключение
Таким образом, создание автономного сервера 1С:Предприятие предоставило возможность обслуживания некоторых клиентских приложений. А именно тех, которые работают с информационными базами через интернет. Для работы такого сервера не требуется выделение веб-сервера. Следовательно, происходит значительная экономия компьютерных ресурсов, в частности, объема памяти и производительной мощности.

При этом следует помнить, что
- один автономный сервер может взаимодействовать только с одной ИБ;
- управление осуществляется утилитой командной строки;
- невозможно взаимодействие АС и конфигуратора;
- при этом возможна работа как с клиент-серверным, так и с файловым вариантами ИБ.
Также необходимо учитывать, что только при выборе файлового варианта возможно применение трех клиентских сеансов без использования серверной лицензии.
И хотя огромный плюс использования толстого клиента заключается в полном исполнении прикладного кода, однако, для его реализации требуется большой объем дистрибутива. Потому что взаимодействие через интернет не предусмотрено, следовательно, все информационные базы загружаются на ПК. Поэтому наиболее приемлемым вариантом является применение тонкого клиента.
Вместе с тем мобильный клиент по факту представляет собой тонкий клиент, только применяемый для мобильных устройств. Особенность приложения заключается в том, что оно может сразу взаимодействовать с кластером серверов 1С. Также за счет мобильного клиента можно автоматически трансформировать формы, описанные в самой конфигурации.
Взаимодействие приложений с ИБ происходит при помощи автономного сервера. А пересоздание автономной конфигурации необходимо при использовании мобильного клиента и представляет собой создание определенной формы с автономным режимом работы.
Кнопка — не самая обычная бухгалтерская компания, но бухгалтерию мы ведём в 1С, как и большинство отечественных коллег. На текущий момент у нас на сервере проживают сотни баз, поэтому нам пришлось научиться быстро и качественно всё это богатство администрировать. Если вы — бухгалтерская компания, хостер с сервисом 1С, или у вас просто взялась куча 1Сок, вы знаете, как это трудно. Мы любим приносить пользу, поэтому поделимся опытом, практическими советами и инсайтами, которые успели нас посетить за бессчётное количество ночей, праздничных и выходных дней, проведенных за обновлением и актуализацией всего нашего хозяйства.

Мы не продаём 1С, а потому рассказ будет без купюр, цензуры, а главное — без маркетингового булшита. Бонустреком, по ходу поста можно найти несколько полезных скриптов и советов для тех у кого действительно много баз 1С.
Итак, почему у нас вообще так много баз? В действительности, прямо сейчас мы исследуем технологию разделения данных, но использовать её ещё не начали, поэтому для каждого бизнеса, который мы обслуживаем, вынуждены создавать отдельную базу (и часто не одну).
Невероятный путь от облачной 1С до собственного кластера серверов
В начале нашего пути мы пользовались облачным : этот сервис в меру удобен, насколько может быть удобно использовать настольное приложение через браузер. Однако, довольно быстро мы накопили полсотни баз и администрировать их через веб стало невыносимо — начал тормозить, плюс появилась необходимость программно интегрировать 1С с нашими внутренними инструментами, чего Фреш категорически не умеет. Пришлось мигрировать, выгружая все данные из облака. Благо сделать это было нетрудно («Выгрузить данные в локальную версию» → «Загрузить данные из сервиса»).
Вторым важным этапом эволюции стало использование , и нас, опять же, всё устраивало, пока баз не стало больше сотни. Обновления конфигураций, как и публикация с добавлением пользователей, происходили через письмо в техподдержку. В принципе, всё оперативно, но не интерактивно.
Особые неудобства доставляла невозможность запуска. без предварительного согласования (добавления в разрешающие политики домена), а нам, напомню, была необходима интеграция. Также были проблемы с тем, что, по непонятным причинам, СХД провайдера неправильно синхронизировало ноды на блочном уровне. Так мы потеряли несколько важных баз, которые пришлось долго и мучительно восстанавливать. С системами хранения часто всё непросто и нечестно.
После всех приключений мы решили мигрировать на свой VPS. Мощности современных виртуальных серверов позволяют спокойно содержать пару сотен , без труда допуская к ним пару десятков бухгалтеров. Провайдеры VPS, зачастую, не отвечают за лицензирование программных продуктов, которые вы запускаете внутри, поэтому нужно озаботиться приобретением лицензии на пользователей и покупкой конфигурации.
Не будем забывать, что даже самый лучший VPS (выбранный с использованием вот этого клёвого сервиса) не сравнится с тёплым и ламповым собственным сервером. Мы решили мигрировать в третий раз.
Итого
Сейчас, имея сотни баз пройдя путь от , через боль, миграции, неконсистентность баз, некомпетентность техподдержки, проблемы с синхронизацией нод у хостера, публикацию через веб, экспорты, импорты, резервные копии и массу восстановлений, мы пришли к своему кластеру серверов.
- думайте о лицензиях;
- если вам нужна интеграция — используйте выделенный сервер или VPS;
- позаботьтесь о хранилище или тщательно тестируйте его у вашего провайдера;
- резервные копии — это правда важно;
- сразу откажитесь от , если нагрузка будет серьёзной и важна стабильность.
Как упростить жизнь, если вы вынуждены работать с кучей баз
Создание базы со ссылкой на неё в профиле текущего пользователя
Мы разворачиваем все наши базы из заранее подготовленного шаблона (с загруженными обработками, справочниками, настроенной подпиской ИТС и резервным копированием).
Для файлового варианта:
Для SQL варианта:
Как создать или удалить пользователя сразу в сотне баз?
Как подключить пользователю сразу сотню баз?
Для добавления сразу всех нужных баз в список пользователя мы используем v8i общих баз, размещённые на файловой шаре. Ссылки на эти файлы добавляются в профиле пользователя (например, через GPO или в профиль ) в файл %AppData%\1C\1CEStart\1CEStart.cfg:
Либо из самой 1С (уже под пользователем) добавляем список общих информационных баз:

Внутри файлы v8i выглядят так:
Создать их можно прямо из окна выбора базы («Сохранить ссылку в файл») или же взять в профиле базы — %AppData%\\1CEStart\ibases.v8i. Ссылка может быть на базу работающую в любом режиме (файловый, серверный, веб). Рекомендуем хранить в одном файле не более ста баз, иначе файл может попросту загрузиться не до конца 🙂
Как обновить сразу сотню баз?
Обновление баз лучше производить на отдельном сервере (а еще лучше сразу на двух 🙂 — это и быстрее, да и управлять процессом проще. Мы используем типовые конфигурации (без снятия с поддержки), обновляемые через ИТС. В первом квартале этого года для «Бухгалтерии 3.0» вышло более 10 обновлений, накатить их даже на десяток баз вручную — та ещё веселуха. Потому мы разработали некоторую стратегию.
Блокировка

Или через создание файлика в каталоге базы 1Cv8.cdn вот с таким содержимым:
Обновление
Для файлового варианта:
Для SQL варианта:
Как правильно делать резервное копирование баз?
Если вы используете SQL, следующий абзац можно безжалостно скипнуть — он актуален только для файлового режима.
В нашей практике мы не раз встречали базу в неконсистентном состоянии. Более того, в файловом варианте, не существует специальных инструментов, чтобы сообщить базе о начале копирования, нет возможности заблокировать работу с ней, если она идёт прямо сейчас. Мы справлялись с этим так: в полночь сервер RDP переходил в режим запрета новых подключений, через пару часов всех пользователей мягко выгонял скрипт. Затем срабатывало регламентное обновление и резервное копирование.
Выгрузка в dt
Для файлового варианта:
Для SQL варианта:
Все выше сказанное справедливо для 1С Предприятие, платформа 8.3; Бухгалтерия 3.0; Зарплата и Управление Персоналом 2.5.
В следующий раз мы расскажем о работе в режиме разделения данных для нескольких сотен фирм на одну базу. Будем рады услышать вопросы, замечания и предложения. А всем тем кто столкнулся с подобными задачами — хочется пожелать терпения, упорства и веры в победу.
Тестирование и исправление базы 1С 8. Ставим флажки осознанно
В статье рассматривается системная утилита “Тестирование и исправление информационной базы” – в каких случаях может помочь, какие имеет настройки для чего нужны.
Содержание
Бывает так, что из-за программного или аппаратного сбоя, аварийного прерывания работы или еще по ряду причин, в базе 1С начинают накапливаться ошибки. До поры они могут быть незаметными, но со временем симптомы проявляются все отчетливее. Вот лишь некоторые из них:
- Расходятся цифры в отчетах на границе периодов – например, на конец января остаток по товару 100 штук, а на 1 февраля – 50 штук. При этом документов в последней секунде января нет. Связано это чаще всего с нарушением таблицы итогов по остаткам.
- При сортировке данные сортируются криво – например, сортируем документы по дате, а даты идут вперемешку, или сортируем номенклатуру по наименованию, а наименования не по алфавиту. Такая ошибка возникает при повреждении таблиц индексов
- При попытке открытия, редактирования или проведения система выдает ошибки, которые не связаны с некорректным программным кодом – например, платформа типовая на поддержке, все должно работать, но начинают сыпаться ошибки.
- Появляются данные с названием начинающемся на “Объект не найден…” – это результат некорректно удаленных документов или поврежденной ссылочной логики
- При входе под определенным пользователем 1С вылетает, а под другими все ОК.
на самом деле, проблем и ошибок много, и для разных баз они могут быть совершенно разными, вплоть до того, что 1С в принципе отказывается запускаться или вылетает. В большинстве случаев причина – физическое повреждение базы данных или рассогласование логической целостности (например, платформа должна была удалить данные из двух таблиц синхронно, но по какой-то причине удалила только из одной, и т.п.).
Все болит, ничего не помогает!
Если мы словили ошибку времени выполнения – отладчик в руки и вперед! А что делать, если причина ошибки не локализуется и от нас не зависит? Верно! Воспользоваться средствами диагностики! Вообще, средств диагностики и исправления ошибок, связанных именно с платформой и БД, не так много.
- Собственно, “Тестирование и исправление” – герой нашей статьи.
- Утилита для файловых баз – chdbfl.exe
- Средства СУБД для клиент-серверных баз, если тестирование от 1С не помогает.
- Очистка кэша – тоже следует использовать как средство исправления ошибок.
Тестирование и исправление ИБ средствами встроенной утилиты
Запускается данная утилита из конфигуратора, через меню Администрирование, в котором следует выбрать пункт “Тестирование и исправление“. Откроется окно утилиты:

Какие же флажки следует ставить и для чего?
Первое и главное – сделать резервную копию базы. Так как если вы будете не просто запускать не просто тестирование, а еще и исправление выявленных ошибок, данная операция будет необратима, и если что-то пойдет не так, все может стать еще хуже
Реиндексация таблиц информационной базы
Данная галочка отвечает за перестроение индексов у таблиц базы данных. Вообще, индексы – это предмет отдельного обсуждения, и здесь я упомяну лишь, что часть индексов создается платформой, а другая часть – нашими умелыми ручками разработчиков 1С. Индексы нужны для ускорения поиска данных и повышения производительности 1С при работе с данными. И вот этот флажок “Реиндексация таблиц” отвечает за то, что утилита заново физически пересчитает все индексы, чтобы они не расходились с индексируемыми исходными таблицами. Также, полное перестроение индексов может привести к значительной оптимизации их работы и ускорению всей системы в целом.
Небольшое дополнение – этот флажок больше подходит для файловых баз, так как для клиент-серверных 1С рекомендует реиндексацию делать средствами самой СУБД (MS SQL Server, PostgreSQL и т.д.) Например, можно почитать тут: https://its.1c.ru/db/metod8dev#content:5837:hdoc:p4
Проверка логической целостности информационной базы
Ошибки, связанные с нарушением логической целостности, чаще всего возникают в результате некорректного обновления конфигурации, или в момент аварийного завершения работы при записи объекта. Это происходит потому, что редактирование объекта в базе означает редактирование записей в соответствующих таблицах СУБД. А при аварийном завершении в одних таблицах записи уже внесены, а в других – система не успела, что и приводит к логической рассинхронизации.
Тестирование и исправление с установленным флажком “Проверка логической целостности информационной базы” решает эти проблемы, восстанавливая логические связи между записями в таблицах.
Проверка ссылочной целостности информационной базы
Это подпункт проверки логической целостности, и отдельно его указать нельзя – если проставить его, то и предыдущий устанавливается автоматически.
Данный флажок отвечает за проверку и исправление т.н. “битых” ссылок на несуществующие объекты. Чаще всего “битые” ссылки появляются из-за некорректных действий разработчика. Неверно настроенные правила обмена или непосредственное удаление объектов могут приводить к появлению “битых” ссылок.
- При включении этого флажка становятся доступными три варианта обработки ошибочных ссылок – Создавать объекты – будут создаваться пустые объекты-заглушки, которые затем можно заполнить
- Очищать ссылки – некорректные ссылки будут просто очищены
- Не изменять – утилита лишь проинформирует о наличии “битых” ссылок, но сама ничего предпринимать не будет.
Пересчет итогов
Итоги – это отдельные таблицы в ИБ, которые хранят рассчитанные на основе движений итоги по регистрам бухгалтерии, накопления и периодических регистров сведений. Простейший пример – мы начали учет в январе; за январь у нас 100 движений приход и 100 движений расход. Когда мы хотим сформировать отчет, к примеру, по остаткам на 15 февраля, платформа получает уже рассчитанные итоги за январь, досчитывает по таблице движений остатки до 15 февраля, и возвращает эти остатки. Если бы итогов не было, нам бы каждый раз пришлось анализировать все движения с начала времен, что сильно замедлило бы работу.
Но в процессе работы, в таблицах итогов накапливаются нулевые значения, которые замедляют обработку данных для соответствующих регистров. Кроме того, в результате сбоев, выключения электричества и т.п., таблица итогов может не соответствовать движениям, которые эти итоги сформировали. Например, два движения в приход 10 шт, но в итогах не 20шт, как ожидается, а 10.
Для того, чтобы привести в соответствие итоги и движения, а также для оптимизации таблиц итогов, и используется утилита со включенным флажком “Пересчет итогов”.
Сжатие таблиц информационной базы
Данный флажок доступен только для файлового варианта, так как при использовании сервера 1С, за управление физическими таблицами и выделение места на диске под них отвечает СУБД. При удалении данных из базы 1С, платформа для экономии ресурсов и времени не удаляет физически данные из СУБД. Они остаются в таблицах, но со специальной пометкой, чтобы платформа 1С их не использовала. В результате объем файла БД со временем увеличивается за счет этих скрытых объектов. Сжатие таблиц ИБ физически удаляет такие объекты.
Реструктуризация таблиц информационной базы
Если включена данная опция, то утилита для каждой таблицы в СУБД создаст копию с такой же структурой, и переместит данные из старой таблицы в новую. Аналогичная процедура реструктуризации происходит при изменении структуры конфигурации.
Пересоздание автономной конфигурации
Этот флажок предназначен для создания автономной конфигурации для мобильного клиента с автономным режимом. Эта возможность появилась в платформе начиная с версии 8.3.16. Если вкратце, часть критичного функционала, который должен быть доступен оффлайн, можно вынести в автономную конфигурацию, которая будет использоваться мобильным клиентом, если основной сервер не доступен. Подробнее можно почитать здесь:
https://wonderland.v8.1c.ru/blog/mobilnyy-klient-s-avtonomnym-rezhimom/
Нюансы
Следует учитывать, что тестирование и исправление ИБ в 1С – процедура длительная, необратимая, и монопольная. Отсюда рекомендации – делайте перед запуском резервную копию, убедитесь что предоставлен монопольный доступ – кроме конфигуратора не должно быть ни других сеансов, ни фоновых заданий. И планируйте запуск утилиты в нерабочее время. Соответственно, чем больше размер базы и больше отмечено флажков, тем длительнее будет работа утилиты.
На этом статья подходит к концу! Спасибо что дочитали, и удачи!
6 комментариев к “Тестирование и исправление базы 1С 8. Ставим флажки осознанно”
Спасибо, единственная статья где всё понятно и полно описано о модуле тестирования и исправления. А как почистить кэш?
Александр, есть несколько вариантов очистки кэша.
Вот в этой статье я привожу три варианта очистки пользовательского кэша, а также там написано как почистить серверный кэш:
https://1c.alexcode.ru/3-sposoba-ochistit-kesh-v-1s-8/
благодарю за статью!
Я заметил неудобные нюансы в работе тестирования/исправления:
1) если Вы собираетесь проверять ссылочную целостность, то не сможете это сделать без проверки логической целостности, т.к. флажок для проверки ссылочной целостности без установки флажка проверки логической целостности не устанавливается (а почему так сделали совсем не понятно)
2) очень неприятный нюанс при установке флажка “Продолжить прерванное ранее тестирование” – пример моя ситуация:
я установил флажок тестирования логической целостности, флажок прервать выполнение через определенное время и флажок “Продолжить прерванное ранее тестирование”. Несколько раз продолжал, но затем подумал, что после тестирования логической целостности неплохо протестировать и ссылочную целостность. После очередной остановки тестирования я установил дополнительно флажок проверки ссылочной целостности и продолжил тестирование, но… тестирование не продолжилось, а началось с начала тестирование логической целостности! Это был удар ниже пояса. Т.к. тестирование делается последовательно по установленным флажкам (по крайней мере для проверки логики и ссылок), то почему бы не проверять, какой флажок установлен дополнительно – ниже или выше логического тестирования – если ниже, то не начинать с начала, а на самом деле продолжить?
3) абсолютно не ясно (и нигде не описано – я не нашел), при каких условиях продолжается тестирование, именно продолжается, а не начинается с начала – например, если после остановки тестирования, кто-то из пользователей поработает в Предприятии, то после этого продолжится тестирование или начнется с начала? Логично начать с начала, но как будет на самом деле неизвестно, т.к. логика и платформа 1С не всегда дружат.
B еще вопрос по Реструктуризации таблиц для понимания, поможет ли реструктуризация и исправит что-то или нет.
Вы написали: “…утилита для каждой таблицы в СУБД создаст копию с такой же структурой, и переместит данные из старой таблицы в новую”.
Вопрос: “переместит данные” – только скопирует данные или всё же произведет какие-то проверочные корректирующие действия над данными таблиц?
Если только скопирует данные, то какой смысл в этой операции? Абсолютно никакого.
А если произведет какие-то проверочные корректирующие действия над данными таблиц, то что именно делается с данными при реструктуризации. Ответ нужен не для “тупой”, а для осмысленной установки флажков.
Спасибо
В целом, реструктуризация всех таблиц через “тестирование и исправление” по сути близка к дефрагментации жесткого диска – при длительной эксплуатации базы и интенсивной модификации структуры метаданных, таблицы БД имеют свойство фрагментироваться – т.е. записываться в разные части диска. Реструктуризация перестраивает их все последовательно. Этот флажок целесообразно ставить вместе со сжатием таблиц. Ошибки этот флажок не исправляет, в основном его задача – повышение быстродействия БД.