Как исправить конфигурационный файл

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

Эти текстовые файлы, что неудивительно, называются «конфигурационными файлами». Если вы хотите перейти от «пользователя» к «продвинутому пользователю», вам нужно знать, как их настроить.

Что такое файлы конфигурации?

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

Файлы конфигурации — это, по сути, файлы, которые содержат информацию, необходимую для успешной работы программы, которые структурированы особым образом. Вместо того, чтобы быть жестко запрограммированными в программе, они настраиваются пользователем и, как правило, хранятся в текстовом файле (хотя ранее я видел программы, которые использовали базы данных SQLite. как их конфигурационные файлы).

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

Некоторые конфигурационные файлы структурированы в формате собственного дизайна разработчика. Другие используют широко известные стандарты, используемые для структурирования данных, такие как формат JSON (нотация объектов JavaScript), YAML (язык разметки YAML) или XML (расширяемый язык разметки). Некоторые программы загружают информацию, хранящуюся в их конфигурационных файлах, когда они запускаются, в то время как другие периодически проверяют, была ли она изменена.

ConfigJSON

Если вы пользователь Linux, вы, вероятно, будете знакомы с ними, так как многие основные задачи обслуживания требуют редактирования файлов конфигурации. Если вы хотите настроить GRUB для двойной загрузки вашей системы загрузку загрузку или настройке веб-сервера настроить веб-сервер , вам придется иметь дело с ними.

Хотя это не исключительно Linux вещь. В зависимости от того, что вы делаете, вам, возможно, придется редактировать их в Windows или Mac OS X.

Как выглядят файлы конфигурации?

Теперь давайте взглянем на некоторые реальные конфигурационные файлы. Как мы упоминали ранее, они бывают разных форм и размеров. Один файл конфигурации, с которым вы почти наверняка знакомы, — это файл hosts, который используется в Windows, Mac и Linux для сопоставления IP-адресов с именами узлов вручную.

Хосты

В Windows вы можете найти его в папке c: windows system32 drivers etc hosts . На Mac и Linux это будет в / etc / hosts .

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

ВИМ-vundle-код

В Linux и Mac OS X некоторые программы требуют, чтобы пользователь сохранял файл конфигурации в домашнем каталоге с точкой в ​​начале имени файла. Эти конфигурационные файлы иногда имеют расширение .rc, и в разговорной речи называются «точечные файлы».

Одна из программ, которая следует этому конкретному соглашению, — текстовый редактор Vim . В прошлом мы говорили о том, как настроить VIM, отредактировав его конфигурационный файл настроек настроек

Файлы конфигурации даже используются в видеоиграх для определения и управления некоторыми действиями, такими как сопоставления клавиш. Конфигурационный файл ниже взят из Black Mesa — фанатского ремейка оригинального Half Life .

BlackMesa

В оригинальной версии Deus Ex , выпущенной в 2000 году, пользователю фактически пришлось отредактировать файл конфигурации, чтобы включить читы!

Как редактировать файлы конфигурации

Итак, теперь мы знаем, для чего используются файлы конфигурации, давайте поговорим о том, как мы можем их редактировать.

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

Пользователи Windows уже имеют предустановленный текстовый редактор. Я говорю о блокноте. Хотя стоит подчеркнуть, что для Windows существует множество отличных текстовых редакторов сторонних производителей, включая Notepad ++, Atom и Sublime Text Editor.

AtomHosts

В Linux наиболее близким аналогом Notepad является Gedit . Вы также можете рассмотреть возможность использования текстового редактора командной строки, такого как Nano или Vim . Ради большей эффективности я сильно склоняюсь к текстовому редактору Vim. Это позволяет мне легко переходить на разные позиции в файле конфигурации, просто используя всего несколько нажатий клавиш.

В Mac OS X (или MacOS Sierra, скоро станет известно, ), есть несколько текстовых редакторов, которые поставляются предварительно установленными. Вы, вероятно, знакомы с TextMate. Он также включает несколько текстовых редакторов командной строки, таких как Vim и Nano.

Когда вы редактируете файл, важно убедиться, что вы соблюдаете его соглашения. Это можно решить, просто взглянув на это. Некоторые конфигурационные файлы, такие как файл hosts, объяснят вам эти соглашения. Другие заставят вас прочитать некоторую документацию или пару постов в блоге.

Наконец, если редактируемый файл конфигурации структурирован в формате JSON или XML, вы можете использовать более мощный текстовый редактор с подсветкой синтаксиса. Я рекомендую Атом. Это повысит вашу точность, показывая, когда вы допустили ошибку.

Что, если это не работает?

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

Первый — это разрешения. Если вы не можете сохранить свои изменения, это может быть потому, что вы пытаетесь сделать это как обычный пользователь. Чтобы предотвратить случайное повреждение, многие конфигурационные файлы доступны для редактирования только тем, у кого есть права администратора.

Исправить это легко. В Mac и Linux попробуйте повысить свои права с помощью команды sudo. Итак, если вы редактировали файл hosts, вы бы запустили:

  sudo nano / etc / hosts 

В Windows щелкните правой кнопкой мыши Блокнот (или любой текстовый редактор, который вы используете) и выберите Запуск от имени администратора .

NotepadRunAsAdmin

Вторая распространенная проблема — ошибка пользователя. Если что-то не работает, это может быть ваша вина. Убедитесь, что вы не сделали никаких опечаток, и что вы следовали соглашениям файла конфигурации. Я знаю, это кажется очевидным, но простая орфографическая ошибка или забывание закрыть пару речевых меток может сделать весь файл бесполезным.

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

Файлы конфигурации важны

Более того, они являются неотъемлемой частью использования Linux. Знание того, как правильно их редактировать, поможет вам бесконечно.

Есть ли какие-то другие важные навыки, которые, по вашему мнению, должны знать пользователи Linux от начального до среднего уровня? Позвольте мне знать в комментариях ниже.

Содержание:

1.      Первый вариант ошибки файла сценария в конфигурации 1С: УНФ

2.      Второй вариант ошибки файла сценария в конфигурации системы 1С: Предприятие  

1.      Первый вариант ошибки файла сценария в конфигурации 1С: УНФ

В данной статье речь пойдёт о том, из-за чего происходят и как устранять два варианта ошибки файла сценария внутри системы конфигурации 1С. Для каждого варианта будет проведена диагностика, определена первопричина, а также рассказано то, как наиболее эффективно избавиться от ошибки файла сценария.

Иногда, у пользователей конфигурации «1С: Управление нашей фирмой», во время начала установки обновления при помощи интерфейса конфигурации системы «1С: Предприятие», вся система 1С «вылетает» — закрывается, после чего, происходит некий ряд непонятных действий и возникает окно с текстом о том, что произошла ошибка файла сценария. Внутри данного окна будет располагаться такой вопрос: «Вы хотите продолжить выполнение сценариев на этой странице?». Но, что бы юзер не начинал делать – процесс не происходит и изображение, сзади окна, о выполнении, зависает.

Чтобы устранить данную неполадку, нам необходимо запустить саму систему- приложение 1С через рабочий стол, причём, из сеанса «Администратор». В таком случае, наше обновление будет проходить с расширенными, полными, правами и изменения смогут свободно записываться.

Получаем, что, в данном варианте сценарной ошибки 1С, достаточно изменить права юзера на администраторские.

2.      Второй вариант ошибки файла сценария в конфигурации системы 1С: Предприятие

В этом случае, при обновлении именно файловой информационной базы 1С, появляется окно с текстом о том, что произошла ошибка файла сценария, дальше пишется о том, что «предполагается наличие…» и, вместо точек, какой-то символ. После чего, задаётся вопрос о том, нужно ли выполнять сценарии далее. Пример окна с ошибкой показан на примере ниже:

Ошибка сценария

При этом, в таком случае, ни администраторские права, ни обновления на «Windows», ни любые компоненты – ничего не устраняет ошибку.

Всё дело в том, что, в данном случае, ошибка возникла не из-за недостатка в 1С прав доступа пользователя, а из-за того, что сам скрипт, который сформировала система конфигурации 1С, был недоработан. Либо, внутри кода есть ссылка на некий объект, который не содержится внутри доступа к базе данных 1С.

В любом из вариантов, как ни странно, устранение ошибки будет основано на некорректных патчах. Получаем, что есть некие строки внутри скрипта « main.js», которых выполняются действия по устранению правок. Ниже показан пример такой строки:


Var removeFixNames

Чтобы, всё-таки устранить эту неполадку, которая была в неверной в 1С установке патчей, необходимо следовать такому плану:

1. Сделать копию 1С-базы данных. От этого, напрямую, не зависит устранение ошибки, но, чтобы перестраховаться, лучше всегда это делать в обязательном порядке.

2. Удалить все неверные правки-патчи, это можно сделать:

·        Собственноручно, через интерфейс;

·        При помощи команды, у которой есть функция «/DeleteCfg -AllExtensions», по запуску базы данных;

·        При помощи такой обработки, ниже приведён её текст:


На Сервере

Она вызывает такую типовую процедуру:


Процедура

После чего, все патчи, которые находятся в программе 1С базы данных, будут удалены.


Внутри системы конфигурациит1С, для удаления патчей, понадобится лишь кликнуть по одной кнопке:


Удалить патчи

3.      Теперь можно заново подключать проведение обновления и ошибка более не появится.

В данной статье было описано два варианта ошибки файла сценария в системе конфигурации 1С, рассказано, из-за чего возникает каждая из них, определены первопричины, а также написаны варианты решений, которые точно устранят данную неполадку.

Специалист компании «Кодерлайн»

Елена Шачнева

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

Типовая конфигурация

Обновление стандартной программы не должно вызвать затруднений – как правило, для этого достаточно стабильного подключения к интернету. Все нужные действия программа подскажет вам сама. Однако иногда и с этим могут возникнуть проблемы.

Ошибка при записи профиля. Такой профиль уже существует

Сообщение об ошибке говорит само за себя – и подсказывает решение проблемы. Зайдите в справочник пользователей программы и проанализируйте его – вероятно, в там уже зарегистрировано несколько одинаковых администраторов или бухгалтеров. Удалите дубли учетных записей, и ошибка 1С базы исчезнет.

Имя предопределенного элемента не уникально

Часто пользователи сталкиваются с сообщением «Имя предопределенного элемента не уникально». Такая ошибка при обновлении стандартной конфигурации 1С возникает из-за некорректного апдейта последней версии программы. Чтобы исправить проблему, можно откатить ПО к прошлой версии программы. Частично это сделать нельзя: вам придется скачать и установить предыдущую версию программы с сайта разработчика или же вернуться к ее резервной копии.

Если у вас есть резервная копия БД, вам потребуется:

  • Зайти в режим конфигуратора;
  • Перейти в меню «Администрирование – Загрузить информационную базу»;
  • Далее найдите файл, в котором ранее была сохранена резервная копия в формате .dt;
  • Система предупредит вас о том, что несохраненная ранее информация будет потеряна – согласитесь с этим и дождитесь загрузки ИД;
  • После успешной выгрузки перезапустите конфигуратор.

Резервное копирование – важная операция, которая позволит вам сэкономить время при появлении ошибки обновления локальной базы. В этом случае решить проблему можно быстро и без потери необходимых данных. Резервные копии можно делать вручную или настроить их сохранение автоматически. Кроме того, специалисты рекомендуют создавать резервную БД перед началом обновления. Для этого нужно:

  • Перейти в режим конфигуратора;
  • Включить режим администрирования БД и выбрать пункты «Администрирование – Выгрузить информационную базу»;
  • Выберите путь, в который программа сохранит БД, и ее название.

Лучше всего сохранять БД на внешний носитель – например, на жесткий диск или флэш-карту.

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

Файл не содержит доступных обновлений

Если во время обновления 1С появляется ошибка «Файл не содержит доступных обновлений», значит, не совпадают конфигурации ПО. Как правило, это сообщение также содержит список необходимых версий. Такое случается, когда вы долго не совершали апдейт программы. Поэтому, если вы пропустите больше полугода обслуживания, вас может ждать неприятный сюрприз – целый день (а может и больше) последовательных обновлений с самого первого пропущенного релиза до последнего. Ведь один апдейт может занять больше часа.

Можно ли ускорить обновление? Для этого потребуется актуальный релиз файла конфигурации 1Cv8.cf. Последовательность действий следующая:

  • Активируйте режим «Конфигуратор»;
  • Далее перейдите в меню «Конфигурация – Поддержка – Настройка поддержки – Включить возможность изменения конфигурации»;
  • Появится предупреждение о невозможности выполнять обновление автоматически полностью – нажмите кнопку «Да»;
  • В окне настройки правил поддержки включите дважды выберите «Объект поставщика редактируется с сохранением поддержки». На изменение режима уйдет несколько минут;
  • Закрыв последнее окно, перейдите в меню «Конфигурация – Загрузить конфигурацию из файла»;
  • Найдите на компьютере файл 1Cv8.cf с актуальным релизом и откройте его;
  • Появится предупреждение о замене текущей версии на загружаемую, нажмите «Да». Загрузка может занять несколько минут, после чего вам потребуется обновить конфигурацию БД;
  • В зависимости от объема вашей базы данных обновление может занять до нескольких часов. В процессе загрузки вы увидите окно «Реорганизация информации», в котором нужно нажать кнопку «Принять»;
  • Далее нажмите кнопку F5 на клавиатуре или же найдите опцию «Начать отладку» и подтвердите легальность обновления.

После этого нужно дождаться завершение апдейта базы данных – и проблема решена. Если же ошибка возникает при обновлении доработанной конфигурации, стоит обратиться к специалисту, который сможет найти выход из положения, сохранив все наработки особенности установленной у вас программы.

Ошибка формата потока

Еще одна распространенная ошибка после обновления платформы 1С. Чаще всего является следствием непоследовательного апдейта и сравнивания своей сборки ПО с файлом поставки. Это делают для того, чтобы сэкономить время: файл поставки и имеющаяся версия сравниваются, изменения выписываются, а затем вносятся в уже имеющуюся конфигурацию.

Чтобы исправить ее, необходимо очистить кэш вашей программы. Для этого:

  • Завершите все процессы в программе и закройте ее;
  • Вручную найдите папки с кэшем – как правило, они располагаются в директориях C:/Users/Username/AppData/Roaming/1C в папках, название которых начинается с 1Cv8. Если найти эти папки не получается, настройте видимость скрытых файлов и папок в настройках компьютера;
  • В этой директории могут находиться другие папки с очень длинными именами из букв и цифр – их и нужно удалить.

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

Если эти способы не помогли, обратитесь к своему программисту или специалистам компании «Авиант».

Предопределенный элемент отсутствует в данных

Если при обновлении вашей конфигурации платформы 1С появляется сообщение об этой ошибке, значит предопределенный элемент описан в конфигурации, но при этом отсутствует в вашей информационной базе (ИБ). Однако эта ситуация критична. Вполне вероятно, что использование не найденного элемента необходимо программной логике, которая не используется большинством пользователей вашей программы.

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

Ошибка при вызове метода контекста

Это сообщение часто появляется после обновления базы в случаях, когда конфигурация программы сильно повреждена. Вы будете наблюдать следующее: программа выполняет обновление до определенного момента, после чего «вылетает» или начинает процесс с самого начала.

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

Нужна консультация по возможностям и функционалу программы
«1C Розница 8»?

Специалисты 1С ответят на любые вопросы
и помогут выбрать программу абсолютно бесплатно!

Заказать бесплатную консультацию

Ошибки при обновлении нетиповой конфигурации

Другое дело – обновление доработанной 1С. Ошибка в такой версии программы может привести к серьезным последствиям. Как правило доработкой программ занимается штатный программист, поэтому обычный пользователь – бухгалтер или администратор, — может не разобраться в причинах появившейся проблемы. Так что ошибки апдейта нетиповой ПО стоит доверить профессионалам.

Но можно и вовсе избежать проблем, подключив пакет ИТС 1С от «Авиант». Так ошибки обновления базы, конфликты программы с другими ПО, неактуальные формы документов и неправильно оформленная отчетность останутся в прошлом. Удобные тарифы, официальное программное обеспечение, единые цены от компании 1С и максимальная эффективность поддержки – все это входит в пакет ИТС от «Авиант».

Как в 1С изменить ставку НДС

1c8-conf-error-000.pngОшибки информационной базы 1С:Предприятия — вещь крайне неприятная, особенно при отсутствии резервных копий. А если такая неприятность все-таки приключилась, то приходится порой принимать нестандартные и идущие в противоречие с общепринятыми практиками решения. Но это не должны быть шаманские камлания с бубном, а логически обоснованные и точно выверенные действия, которые позволят выйти победителем из, казалось бы, безнадежной ситуации. Сегодня мы расскажем об одном таком случае из нашей практики.

Научиться настраивать MikroTik с нуля или систематизировать уже имеющиеся знания можно на углубленном курсе по администрированию MikroTik. Автор курса, сертифицированный тренер MikroTik Дмитрий Скоромнов, лично проверяет лабораторные работы и контролирует прогресс каждого своего студента. В три раза больше информации, чем в вендорской программе MTCNA, более 20 часов практики и доступ навсегда.

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

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

1c8-conf-error-001.png

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

«А как-же резервные копии?» — спросит иной читатель. Резервные копии содержали точно такую же ошибку, так как она не препятствует выгрузке в DT файл и, тем более, архивированию непосредственно файла базы. Можно сказать, что клиент столкнулся с распространенной ошибкой начинающих администраторов, когда резервные копии создаются, но не проверяются.

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

На Инфостарте была найдена статья, которая на первый взгляд обещала привести к успеху, но все стало только хуже, раньше хотя бы конфигуратор открывался:

1c8-conf-error-002.pngВпрочем, так оно бывает всегда, когда бездумно применяешь чужие решения. Причин возникновения подобной ошибки может быть много и степень повреждения базы может быть разная, поэтом то, что помогло одному, может еще сильнее навредить другому. Поэтому будем думать.

Что предлагала нам вышеуказанная статья? Заменить кеш поврежденной базы на кеш от исправной, того же самого релиза, разумное зерно в этом есть и в ряде случаев такой подход увенчается успехом, но не в этот раз. Почему?

Здесь мы вплотную подошли к одному из самых распространенных мифов 1С — очистке кеша. Со временем это переросло в какой-то магический ритуал: не знаешь, что делать — очисти кеш. Давайте разберемся, что такое этот кеш и зачем он нужен.

Не для кого ни секрет, что многие данные в информационной базе не меняются в течении длительного времени и поэтому нет необходимости каждый раз их запрашивать из БД, а можно поместить в локальный кеш и брать оттуда. Кеш делится на пользовательский, где хранятся данные, с которыми работает пользователь и кеш конфигурации, где сохраняются программные модули и данные о конфигурации. Первый располагается в перемещаемой части профиля пользователя %USERPROFILE%AppDataRoaming1C, а второй в его локальной части %USERPROFILE%AppDataLocal1C.

Данные о структуре конфигурации хранятся в кеше конфигурации, когда мы первый раз открываем конфигурацию данные считываются из ИБ и сохраняются в кеш и в следующий раз их загрузка будет происходить гораздо быстрее. Если мы изменим данные конфигурации, то они прежде всего изменятся в нашей локальной копии и только после того, как мы нажмем на кнопку сохранить, будут записаны в БД и обновят локальный кеш.

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

В нашем случае проявлению указанной ошибки могла поспособствовать именно очистка кеша конфигурации. Если до повреждения ИБ конфигурация была открыта (а она была, т.к. базу обновляли), то при загрузке конфигуратора должны были быть подгружены кешрованные данные, что дало бы возможность либо обновить конфигурацию, либо загрузить ее из файла. После очистки кеша такая возможность пропала.

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

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

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

1c8-conf-error-003.pngТеперь дело техники, снимаем поврежденную конфигурацию с поддержки и загружаем из файла конфигурацию того же релиза, которую можно выгрузить из заведомо исправной базы или взять из комплекта поставки. Сохраняем, обновляем конфигурацию базы данных.

1c8-conf-error-004.pngТаким образом нам удалось полностью восстановить конфигурацию неисправной базы данных, но для этого пришлось пойти на несколько неожиданный шаг. Вместо того, чтобы, не думая очистить кеш, потому что «так принято», мы, наоборот, подумали и сохранили его, дополнив недостающими данными. Поэтому не следует идти на поводу у расхожих штампов, а следует вдумчиво проанализировать сложившуюся ситуацию и принять единственно верное решение, даже если оно «противоречит общепринятым практикам».

Научиться настраивать MikroTik с нуля или систематизировать уже имеющиеся знания можно на углубленном курсе по администрированию MikroTik. Автор курса, сертифицированный тренер MikroTik Дмитрий Скоромнов, лично проверяет лабораторные работы и контролирует прогресс каждого своего студента. В три раза больше информации, чем в вендорской программе MTCNA, более 20 часов практики и доступ навсегда.

В данной статье разберем частые ошибки, которые могут возникать при работе с программами 1С (файловый вариант) и дадим рекомендации по их исправлению.

Сначала сделайте копию

Перед исправлением ошибок настоятельно рекомендуется сделать архивную копию базы. Копию можно сделать разными способами:

  1. Из режима 1С: Предприятие (пользовательский режим работы). Меню Администрирование –> Обслуживание –> Создание резервной копии. Выбрать каталог, в который сохранится копия и нажать Сохранить резервную копию.
    Создание резервной копии
  2. Из режима Конфигуратор:
    Меню Администрирование –> Выгрузить информационную базу. Так же, как и в первом варианте нужно выбрать каталог, в который сохранится копия. Копия будет иметь расширение .dt.
    Выгрузка информационной базы
  3. Непосредственное копирование базы в другой каталог.
    Найти папку с базой и скопировать (важно: не вырезать, а именно скопировать) файл 1Cv8.1CD в другую папку. Можно скопировать и всю папку в которой лежит данный файл. На скриншоте это папка называется DemoAccounting.
    Копирование файла 1cV8

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

База 1С не открывается

Методы исправления:

  • Обновление платформы;
  • Очистка временных файлов. Самый простой способ — это удалить информационную базу из списка и добавить её снова. Нужно выделить проблемную базу, запомнить (записать, скопировать) её путь и нажать удалить. База пропадет из списка.

    Удаление базы

    Затем нажать добавить -> добавление в список существующей информационной базы.Далее указать наименование и каталог информационной базы. Готово.

    Добавление базы
    Выбор каталога

  • Тестирование физической целостности утилитой chdbfl.
    Нужно зайти в папку с установленной платформой в конечную папку bin. Запустить файл chdbfl, прописать путь к базе, поставить галку исправлять обнаруженные ошибки и нажать выполнить.

    Тестирование физической целостности

    После окончания тестирования окно закрыть и проверить базу на работоспособность.

Ошибка СУБД. Внутренняя ошибка компоненты dbeng

Внутренняя ошибка компоненты dbeng

Может помочь:

  • Обновление платформы – чаще всего ошибка связана с устаревшей платформой;
  • Тестирование физической целостности утилитой chdbfl.
  • Выгрузка и загрузка файла .dt. В режиме конфигуратор Администрирование –> выгрузить информационную базу. И соответственно загрузка: Администрирование –> загрузить информационную базу.

Ошибка формата потока в 1С

Ошибка формата потока

Данная ошибка возникает чаще всего из-за неправильного или аварийного завершения работы программы 1С. Например отключение электричества или выключение компьютера при открытой программе.

Варианты исправления:

  • Очистка временных файлов — удалить информационную базу из списка и добавить снова.
  • Удалить все лишние файлы из папки с базой. Файл 1Cv8.1CD удалять нельзя – это сама база, остальные файлы можно почистить.
    База данных

Неверный формат хранилища данных в 1С

Неверный формат хранилища данных

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

Ошибка СУБД. Файл базы данных подтвержден

Файл базы данных поврежден

Самый простой способ избавится от этой ошибки – это восстановить архивную копию базы. Способ эффективен, если копия не старая или не жалко потерять занесенные данные с момента создания копии по дату восстановления. После загрузки копии ошибка скорее всего пропадет, но и данные с момента её создания не вернуть.

Также может помочь:

  • Тестирование физической целостности утилитой chdbfl, о котором писалось выше;
  • Выгрузка архивной копии и повторная загрузка;
  • Тестирование из конфигуратора (при условии, что в него можно зайти). Меню Администрирование –> тестирование и исправление. Установить флажки как на рисунке и нажать выполнить.

    Тестирование

Обнаружено нарушение целостности системы

Нарушение целостности системы

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

Отсутствует файл базы данных 1С

Отсутствует файл базы данных

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

Если база установлена локально на ваш компьютер, необходимо убедится, что файл базы 1Cv8.1CD действительно расположен по указанному пути. Если нет, то необходимо поменять путь к базе.

Недостаточно памяти

Недостаточно памяти

Ошибка появляется, если на выполнение операций с программой выделено мало оперативной памяти компьютера. Ошибка может возникнуть, например, при закрытии месяца, формировании большого отчета, проведении документов и т.п. Самостоятельно увеличить размер выделенной памяти можно следующим способом: запустить адресную строку Пуск –> Выполнить и ввести команду cmd и нажать ОК.

Команда выполнить

В открывшемся окне ввести bcdedit /set increaseuserva 4096 и нажать Enter. Цифра 4096 – новый выделяемый объем оперативной памяти. Перезагрузить компьютер. Проблема должна быть исправлена.

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

Уделим внимание одному из наиболее часто возникающих багов программы. Ниже будет подробно рассмотрена ошибка формата потока 1С 8: как исправить ее, мы обязательно расскажем, но сначала выясним, почему она вообще появляется и какие ее виды существуют. Постараемся дать максимум подробностей, чтобы вы понимали, что лучше сделать – почистить кэш, запустить тестирование и восстановление, обновить ПО, – что удобнее конкретно в вашем случае.

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

Еще одно неудобство в низкой информативности такого уведомления. Оно не несет никаких объяснений – только 2 кнопки, и нажатие на любую из них, по сути, ничего не дает. Поэтому давайте разбираться.

ошибка формата потока конфигуратор

Что значит в 1С «Ошибка формата потока»

Это баг, связанный с затруднениями чтения кэша при обращении к базе данных (БД). Может проявляться на разных этапах работы (или подготовки к ней), то есть как при запуске программы, так и при открытии или заполнении отчета, проведении какого-нибудь бланка и тому подобное.

Есть сразу несколько причин ее возникновения (рассмотрим их ниже), но она в любом случае свидетельствует о наличии неверных сведений в БД системы, требующих актуализации, исправления, восстановления. Входит в топ-3 проблем по частоте «диагностирования», так что будьте готовы к тому, что вам, скорее всего, тоже придется выбирать подходящее решение.

Описание ошибки информации потока в 1С

Выглядит как всплывающее окно следующего вида:

формат потока 1с 8

Максимально лаконично: две кнопки на выбор – и нет конкретики.

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

Готовые решения для всех направлений

Склады

Ускорь работу сотрудников склада при помощи мобильной автоматизации. Навсегда устраните ошибки при приёмке, отгрузке, инвентаризации и перемещении товара.

Узнать больше

Магазины

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

Узнать больше

Маркировка

Обязательная маркировка товаров — это возможность для каждой организации на 100% исключить приёмку на свой склад контрафактного товара и отследить цепочку поставок от производителя.

Узнать больше

E-commerce

Скорость, точность приёмки и отгрузки товаров на складе — краеугольный камень в E-commerce бизнесе. Начни использовать современные, более эффективные мобильные инструменты.

Узнать больше

Учреждения

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

Узнать больше

Производство

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

Узнать больше

RFID

Первое в России готовое решение для учёта товара по RFID-меткам на каждом из этапов цепочки поставок.

Узнать больше

ЕГАИС

Исключи ошибки сопоставления и считывания акцизных марок алкогольной продукции при помощи мобильных инструментов учёта.

Узнать больше

Сертификация

Получение сертифицированного статуса партнёра «Клеверенс» позволит вашей компании выйти на новый уровень решения задач на предприятиях ваших клиентов..

Узнать больше

Инвентаризация

Используй современные мобильные инструменты для проведения инвентаризации товара. Повысь скорость и точность бизнес-процесса.

Узнать больше

Показать все решения по автоматизации

Список причин появления ошибки потока данных в 1С 8 3

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

  • пользовательские настройки;
  • сведения о регулярно выполняемых действиях;
  • размеры размещения функциональных окон.

В результате, когда ПО нужные какие-то данные, оно обращается к cash’у, а не к внешнему серверу, а значит получает ответ быстрее и снижает нагрузку на ОС, что оборачивается увеличением производительности.

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

В 1C ошибка потока также иногда возникает из-за некорректного сохранения справочника, реестра или другого документа, к которому впоследствии будет обращаться система. Это гораздо менее распространенная, но тоже встречающаяся причина, поэтому и ее не стоит сбрасывать со счетов.

ошибка формата потока

Виды

Любой такой баг можно условно отнести к одной из трех категорий:

  1. Возникает сразу при включении программы – обусловлен неправильным завершением предыдущего сеанса. Необходимо разбираться с кэшем.
  2. Проявляется по ходу действий, при выполнении какой-либо операции, допустим, при открытии каталога или проведении бланка. В этом случае проблема конкретно в той области, с которой взаимодействовало ПО, повреждена именно она.
  3. В штатном режиме неполадки отсутствуют, но при входе в «1С: Конфигуратор» ошибка формата потока не заставляет себя ждать (при осуществлении определенной операции). Здесь тоже всему виной cash – вопрос в нем.

От типа бага напрямую зависит и выбор варианта его устранения. Хотя можно поступить по-другому и поочередно пробовать все методы, пока какой-то не принесет результат, благо ни один из них не способен навредить системе или нарушить безопасность ПК. Но это стратегия для тех, у кого много свободного времени. Мы же советуем действовать более рационально: лучше потратить эти «лишние» полчаса на резервное архивирование – для бэкапа, на всякий случай – после чего проанализировать ситуацию, диагностировать проблему и решить ее с первой попытки.

Как устранить в 1С файловую ошибку формата потока

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

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

Почистить кэш 1С

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

Откройте приложение и посмотрите в левый нижний угол – в нем написан путь.

1с предприятие 8 ошибка формата потока

Перейдите по этому адресу в проводнике Windows и вручную уберите из каталога все элементы, кроме одного – папки 1Cv8 (после точки записывается его версия – в примере на скриншоте – 1CD).

1с файловая ошибка формата потока

Теперь остается снова попробовать запустить программу. Если проблема была в «битых» файлах, сообщения об ошибке не появится. В тех случаях, когда способ не сработал, необходимо попробовать другой.

Очистить cash базы 1С

Важно не путать с предыдущим методом – здесь характер воздействия более точечный. Для устранения ошибки при загрузке данных потока в 1C следует перейти к папкам хранения кэша. В ОС Windows 7 и выше они лежат здесь:

C:UsersUsernameAppDataRoaming1C

C:UsersUsernameAppDataLocal1C

Внимание, AppData может быть не видна – тогда потребуется настроить отображение скрытых папок; кроме того, по конечному адресу часто находится сразу много каталогов – вам нужны только те, что начинаются с «1Cv8».

Самый радикальный вариант – просто удалить эти элементы целиком, со всеми их вложениями:

1с неверный формат потока

Но мы предлагаем потратить чуть больше времени: зайдите еще и в них и уберите только папки с непонятными именами, состоящими из целой вереницы символов:

ошибка формата потока данных

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

Если же уведомление продолжает появляться, перейдите к следующему способу.

Запустить режим тестирования и исправления

Если у вас постоянно выскакивает ошибка формата потока данных 1С, Конфигуратор поможет ее устранить. Откройте его, кликните на вкладку «Администрирование» и там, в выпадающем меню нажмите на указанную на скриншоте строчку:

ошибка при загрузке данных потока

Откроется окно настроек – обязательно поставьте галочки напротив «реиндексация таблиц…» и «проверка логической целостности…», то есть возле двух первых пунктов; третий, касающийся ссылок, опционален – можете отметить и его, – а вот все последующие уже не нужны.

база 1с ошибка потока

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

Запустить утилиту «chdbfl.exe»

Она становится настоящим спасением, когда вообще не открывается «1С: Предприятие 8», и ошибка формата потока высвечивается сразу при старте работы, не давая даже зайти в Конфигуратор.

Чтобы воспользоваться ей, перейдите по такому адресу в Проводнике Windows:

C:Program Files (x86)1Cv88.3…bin

при загрузке информационной базы ошибка формата потока

Затем откройте исполнительный файл с расширением *exe от имени Администратора.

Поставьте галочку напротив пункта «Исправлять обнаруженные…» и подтвердите свой выбор, кликнув на «Выполнить».

ошибка формата потока 1с как исправить

Остальное сделает система: она проведет проверку, устранит все найденные нарушения, восстановит реестр и тому подобное, а также предоставит отчет с подробностями. Любые активные сеансы пользования программой при этом должны быть закрыты, чтобы не перегружать платформу и не влиять на результаты.

Рекомендуем повторить процедуру еще 2 раза – лучше, если таких прогонов будет в общей сложности 3. Потому что во время первого теста утилита может вообще не обнаружить повреждений и потерь файлов, но зато отыщет их потом, действуя в своеобразном фоновом режиме и не присылая уведомлений. И если вы приступите к работе сразу, то будете думать, что все в порядке, хотя проблема еще найдется, проявит себя в виде назойливого уведомления и не даст завершить важную операцию, например, сохранить заполненную форму.

Выгрузить/загрузить базу в .dt

Если произошла ошибка создания файлового потока, и ни одна из вышеописанных мер не помогает, можно сделать резервную копию БД и перейти на нее. Для этого:

Запустите Конфигуратор, выберите вкладку «Администрирование», а из выпадающего в ней списка – пункт «Выгрузить», как показано на скриншоте:

1c ошибка потока

Укажите место записи (папку на диске), совместимое расширение (.dt) и подтвердите все это кликом на «Сохранить».

Сделайте на сервере или на своем ПК новую базу – естественно, она будет пустой. Поэтому зайдите в ее Конфигуратор, клацните на «Администрирование», а затем на «Загрузить…».

произошла ошибка создания файлового потока

Выберите ранее созданный dt-массив и щелкните на «Открыть».

По сути, это простейшая операция экспорта-импорта, но она удобна сразу двумя вещами. Во-первых, вы автоматически почистите кэш, ведь система начнет использовать новый файл. Во-вторых, те индивидуальные настройки, которые вы ранее вносили под себя (шрифты, шаблоны и так далее) тоже перенесутся, их не придется задавать «с нуля».

Выгрузить/загрузить данные через XML

Если у 1С неверный формат потока, а конфигурация повреждена без возможности восстановления, придется переносить БД в чистую среду. Это наиболее сложный метод, рассчитанный даже не на опытных пользователей, а на специалистов техподдержки, потому браться за его реализацию стоит в самом крайнем случае.

Запустите модуль стандартной обработки – через «Главное меню», «Файл» и «Открыть», как показано на скриншоте, и задайте путь.

ошибка загрузки документа

Появится форма – в ней поставьте птички напротив каждого типа данных и нажмите на «Выгрузить».

ошибка информации потока в 1с

Система создаст XML-массив в указанной вами папке. Дальше останется только перейти в новую пустую БД и там, использовав эту же функцию, выполнить экспорт через вкладку «Загрузка», клик на кнопку со схожим названием и выбор ранее сохраненного файла.

Актуализировать систему

Это нужно делать тогда, когда компьютеры в рамках корпоративной сети используют ПО разных версий. Ошибка источника/приемника потока при обновлении 1С решается сразу же. Хотя сегодня она встречается все реже, потому что с 8.3.5 сеансы «более низких» платформ автоматически блокируются. Но если БД запустят на одной машине с софтом редакции 8.3.10 и на другой, с 8.3.4, то расхождения в процессе работы неизбежны. Правда, это тот момент, который не должен допускать, скорее, системный администратор, чем рядовые бухгалтеры.

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

  • отключение в реестре Windows протокола IPv6;
  • переустановка программы с последующей настройкой;
  • полный перенос БД на другой компьютер и запуск ее на том ПК;
  • использование утилиты Tool_1CD;
  • деактивация фаерволла и/или внесение исключений в антивирусную защиту;
  • актуализация конфигурации через cf-файл.

И это еще не все из возможных вариантов решения. Если появилась ошибка загрузки документа, имеет смысл проверить жесткий диск ПК на наличие битых кластеров, для чего отлично подойдет утилита chkdsk.exe. Если базовые способы не возымели должного эффекта, ничто не мешает провести более глубокую диагностику и/или почистить кэш не только приложения, но и компьютера в целом.

не открывается 1с ошибка формата потока

Запуск БД на другой машине – это тоже своеобразная проверка. Если и там ничего не выйдет, значит, проблема не в операционке, и не в железе, а именно в повреждении каких-то конкретных элементов реестра. Но любое действие должно быть рациональным, и предпринимать его нужно лишь тогда, когда вы четко понимаете, как, что и зачем открываете, экспортируете, импортируете.

Есть сразу 5 проверенных способов устранения проблемы + обновление, его все-таки нужно считать отдельно, ведь это, по сути, обязательная процедура. Они помогут решить вопрос в 99% ситуаций, и надоедливое сообщение больше не будет мешать вашей работе. Оставшийся процент – сложные и нестандартные случаи, над которыми пусть задумываются системные администраторы и специалисты техподдержки разработчика.

Итог

Мы подробно описали распространенный баг, частенько возникающий как в процессе работы, так и при загрузке информационной базы 1С: ошибка формата потока – неприятное явление, но оно устраняется, причем без особого труда, и вы уже узнали, как это сделать. Теперь, когда одной проблемой стало меньше, можно еще эффективнее использовать многочисленные возможности платформы, особенно с теми вспомогательными программными продуктами для ведения учета и торговли, которые представлены в «Клеверенс», – обращайтесь для выгодного заказа полезного ПО.

Количество показов: 12747

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

Я разберу основные шаги внесения изменений в конфигурацию клиента, особенно она будет интересна начинающим программистам 1С.

Как сохранить конфигурацию 1с

Вы пришли к клиенту, обговорили изменения и теперь вам нужно забрать конфигурацию базы клиента, в которую необходимо внедрить изменения. Чтобы это сделать, нужно выгрузить cf-файл.  Делается это в конфигураторе 1С, в котором необходимо выполнить команду «Сохранить конфигурацию в файл», находящуюся по пути «Главное меню» — «Конфигурация».

Сохранить конфигурацию в файл

В результате у вас получится cf-файл, который вы или зальете в облако, или скопируете на флешку, и отнесете на свое рабочее место (домой или в офис).

Как загрузить конфигурацию 1с

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

Создание пустой базы 1С

Создание пустой базы 1С

Создание пустой базы 1С


Создание пустой базы 1С

В пустой базе необходимо зайти в конфигуратор 1С и загрузить конфигурацию, которую вы взяли у клиента. Делается это при помощи команды конфигуратора «Загрузить конфигурацию из файла» по пути «Главное меню» — «Конфигурация».

Загрузить конфигурацию из файла

В результате выполнения команды, откроется окно выбора файла с расширением cf, в котором вы выбираете ранее сохраненный у клиента cf-файл.

Конфигурация загрузилась, и мы рассмотрим идеальный вариант, что ни кто не работал с базой клиента до вас. Узнать это можно, открыв окно «Настройка поддержки» по пути «Главное меню» — «Конфигурация» — «Поддержка» в конфигураторе 1С. И вверху окна должна быть надпись «Конфигурация находится на поддержке», это значит, что база с «типовой» конфигурацией, и ни кто с ней не работал.

Конфигурация находится на поддержке

Включить возможность изменения конфигурации

Чтобы мы могли с ней работать, необходимо включить возможность изменения конфигурации.

Более подробно о поддержке конфигурации читайте в моей статье Поддержка конфигурации 1С.

Мы включим возможность изменения конфигурации, оставив для всех объектов правила «Объект поставщика не редактируется».

Объект поставщика не редактируется

А также включим для справочника Номенклатура и документа ЧекККМ c основной формой документа правило «Объект поставщика редактируется с сохранением поддержки»

Объект поставщика редактируется с сохранением поддержки

Объект поставщика редактируется с сохранением поддержки

Объект поставщика редактируется с сохранением поддержки

Внести изменения в конфигурацию 1С

Изменим справочник Номенклатура, добавив в него реквизит.

Изменение объекта конфигурации 1С

А также документ ЧекККМ: добавим реквизит и поместим его на форму в виде элемента Поле.

Изменение объекта конфигурации 1С

Изменение объекта конфигурации 1С

Сделав нужные изменения, сохраним cf-файл нашей измененной конфигурации, как мы это делали ране, предварительно протестировав изменения.

Объединение конфигурации 1с

После того, как вы всё сделаете на своем рабочем месте и придете к клиенту, необходимо загрузить ваши изменения в клиентскую конфигурацию.

И здесь две рекомендации:

  1. Обязательно сохраните базу клиента, перед тем, как вносить изменения;
  2. Не используйте команду «Загрузить конфигурацию из файла».

Почему нельзя использовать команду «Загрузить конфигурацию из файла»? Потому что, если во время вашего отсутствия с клиентской конфигурацией что-то делали, то вы этой командой сотрете все ранее сделанные изменения.

Поэтому я рекомендую работать с командой «Сравнить объединить с конфигурацией из файла», которая находится по пути «Главное меню» — «Конфигурация».

Сравнить объединить с конфигурацией из файла

В результате выполнения этой команды, откроется окно «Сравнение, объединение …», в которой в левой части будут метаданные из основной (рабочей) конфигурации, а справа метаданные конфигурации из файла. В идеальном варианте, у вас должны быть отображены именно те объекты, которые вы изменили. В моем случае они стоят с замком, потому что клиентская конфигурация на поддержке без возможности изменения.

Сравнить объединить с конфигурацией из файла

Включим возможность изменения в клиентской базе так, как мы это делали выше в своей домашней копии, и выполним опять операцию сравнения-объединения.  В этот раз замки с объектов исчезнут, мы оставляем флажки у тех объектов, изменения которых мы хотим внести в базу клиента, и нажав на кнопку «Выполнить» вносим изменения в клиентскую базу.

Сравнить объединить с конфигурацией из файла

Сравнение конфигураций 1С

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

В этом случае вам поможет команда «Сравнение конфигураций» , которая находится по пути «Главное меню» — «Конфигурация».

Сравнение конфигураций 1С

После выполнения команды нужно будет выбрать, что с чем мы сравниваем.

Сравнение конфигураций 1С

И если мы сравниваем с конфигурацией из файла, то необходимо указать нужный cf-файл.

После выйдет окно, где будут показаны отличия одной конфигурации от другой.

Сравнение конфигураций 1С

Возврат на поддержку измененной конфигурации 1С

Редко, но бывают случаи, когда снимают полностью с поддержки измененную конфигурацию 1С, если мы в этом случае поставим обратно на поддержку при помощи команды «Загрузить конфигурацию из файла», то все изменения сделанные ранее затрутся.

Чтобы сохранить изменения нужно использовать уже знакомую команду «Сравнить объединить с конфигурацией из файла».

Во время возврата на поддержку нужно выбрать cf-файл типовой конфигурации 1С.

После выбора файла типовой конфигурации, выйдет предложение поставить конфигурацию на поддержку.

Поставить конфигурацию 1С на поддержку

Соглашаемся, и в открывшемся окне «Сравнение Основная конфигурация — файл» убираем флажки с тех объектов, изменения которых мы хотим сохранить.

Сравнение конфигурации 1С с файлом

После нажатия кнопки «Выполнить», появится окно с настройками правил поддержки для объектов, в этом окне оставим всё по умолчанию.

Настройка правил поддержки

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

Но наша конфигурация еще не полностью на поддержке.

Конфигурация 1С на поддержке

Для того, чтобы она стала полностью на поддержке, необходимо в окне «Настройка поддержки» у всех объектов конфигурации, которые были изменены установить правило «Объект поставщика редактируется с сохранением поддержки», а также у самой конфигурации. Если в вашей конфигурации все объекты должны быть на поддержке, то чтобы не ставить каждый объект отдельно, можно во время установки правила для всей конфигурации, поставить флаг «Установить для подчиненных объектов», тогда это правило для всех объектов конфигурации установится автоматически. Иначе нужно будет к каждому объекту отдельно применять это правило.

Настройка правил поддержки

Настройка правил поддержки

Настройка правил поддержки


Статьи по теме обновлений 1С:

Активные пользователи 1С

Релизы 1С

Шаблоны конфигураций и обновлений

Учимся обновлять конфигурацию 1С

Поддержка конфигураций в 1С

Если по мимо задач по администрированию, перед вами стоят задачи по разработке в 1С, то рекомендую вам свою книгу «Программировать в 1С за 11 шагов», в которой подробно и основательно шаг за шагом даются основные знания по разработке в 1С.

Книга «Программировать в 1С за 11 шагов»

Изучайте программирование в 1С в месте с моей книгой «Программировать в 1С за 11 шагов»

Программировать в 1С за 11 шагов

Книга написана понятным и простым языком — для новичка.

  1. Книга посылается на электронную почту в формате PDF. Можно открыть на любом устройстве!
  2. Научитесь понимать архитектуру 1С;
  3. Станете писать код на языке 1С;
  4. Освоите основные приемы программирования;
  5. Закрепите полученные знания при помощи задачника.

О том как разрабатывать под управляемым приложением 1С, читайте в книге Книга «Основы разработки в 1С: Такси»

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

Основы разработки в 1С такси
  1. Очень доступный и понятный язык изложения
  2. Книга посылается на электронную почту в формате PDF. Можно открыть на любом устройстве!
  3. Поймете идеологию управляемого приложения 1С
  4. Узнаете, как разрабатывать управляемое приложение;
  5. Научитесь разрабатывать управляемые формы 1С;
  6. Сможете работать с основными и нужными элементами управляемых форм
  7. Программирование под управляемым приложением станет понятным

Промо-код на скидку в 15% — 48PVXHeYu


Эти книги, плюс книга по программированию оперативного учета имеются в едином комплекте: комплект книг по разработке в 1С.
Только для читателей моего блога,
промо-код на скидку в 300 рублей на весь комплект: blog


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

можно оплатить вручную:

Яндекс.Деньги — 410012882996301
Web Money — R955262494655

Вступайте в мои группы:

Вконтакте: https://vk.com/1c_prosto
Фейсбуке: https://www.facebook.com/groups/922972144448119/
ОК: http://ok.ru/group/52970839015518
Твиттер: https://twitter.com/signum2009

Файлы конфигурации содержат информацию, необходимую для управления работой программы. Пользователи Linux, особенно администраторы Linux, должны знать, как редактировать файлы конфигурации для обслуживания сервера или рабочего стола Ubuntu. Файлы конфигурации в Ubuntu хранятся в подкаталогах папки /etc в виде текстовых файлов и могут быть отредактированы с помощью текстовых редакторов. Некоторые примеры конфигурационных файлов — /etc/hosts, host.conf, hosts. resolv.conf, /etc/networks, syslog.conf и т.д. в операционных системах на базе Linux.

Чтобы внести изменения в конфигурацию, необходимо открыть файл с помощью текстового редактора и отредактировать его. В этой статье я описываю несколько способов редактирования конфигурационных файлов в Ubuntu.

  • Использование редактора Gedit
  • Использование редактора Nano
  • Использование редактора Vim
  • Использование редактора Gvim
  • Использование редактора Emacs

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

Содержание

  1. Использование редактора Gedit
  2. Использование редактора Nano
  3. Использование редактора Vim
  4. Использование редактора Gvim
  5. Использование редактора Emacs

Использование редактора Gedit

Gedit — это текстовый редактор по умолчанию в среде рабочего стола Gnome. Он поддерживает вкладки, поэтому вы можете открывать различные файлы в нескольких вкладках. Это более простой и удобный текстовый редактор по сравнению с другими доступными текстовыми редакторами.

Чтобы отредактировать файл конфигурации в текстовом редакторе, запустите Terminal, нажав комбинацию клавиш Ctrl+Alt+T. Затем введите следующую команду как sudo:

sudo gedit /path/to/filename

Замените /path/to/filename на фактический путь к файлу конфигурации, который вы хотите отредактировать. Когда появится запрос на ввод пароля, введите пароль sudo.

Пример: редактирование файла /etc/resolv.conf

sudo gedit /etc/resolv.conf

Он похож на редактор Блокнот в операционной системе Windows. Как только откроется окно редактора, вы можете начать набирать текст или редактировать его, не входя ни в какой режим. Как только вы закончите редактирование, нажмите Ctrl+S, чтобы сохранить файл.

Редактирование файла конфигурации с помощью GEdit

Использование редактора Nano

Nano — это самый простой и самый мощный встроенный редактор во многих дистрибутивах Linux. Вам не нужно изучать редактор Nano перед его использованием, а также не нужно запоминать команды. Они отображаются внизу и могут быть вызваны клавишей Ctrl. Например, чтобы сохранить файл, нажмите Ctrl+O.

Чтобы отредактировать любой файл конфигурации, просто откройте окно терминала, нажав комбинацию клавиш Ctrl+Alt+T. Перейдите в каталог, где находится файл. Затем введите nano, за которым следует имя файла, который вы хотите отредактировать.

sudo nano /path/to/filename

Замените /path/to/filename на фактический путь к файлу конфигурации, который вы хотите отредактировать. Когда появится запрос на ввод пароля, введите sudo password.

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

Редактирование файла конфигурации в редакторе nano

После завершения редактирования нажмите Ctrl+O для сохранения и Ctrl+X для выхода из редактора.

Использование редактора Vim

Редактор Vim или Vi также поставляется предустановленным в большинстве дистрибутивов Linux. Он не имеет видимых подсказок или элементов управления, что может быть немного сложнее для новичков. Однако, как только вы освоите его, он станет более быстрым и мощным инструментом для редактирования. Используя Vim, вы можете редактировать и просматривать несколько файлов за один сеанс.

Чтобы открыть файл в редакторе Vim, откройте окно терминала, нажав комбинацию клавиш Ctrl+Alt+T. Затем введите vi как sudo, за которым следует имя файла и путь к нему, например:

sudo vi /path/to/filename

Замените /path/to/filename на фактический путь к файлу конфигурации, который вы хотите отредактировать. Когда появится запрос на ввод пароля, введите sudo password.

Затем отредактируйте файл с помощью редактора Vim. Обратите внимание, что при открытии редактора вы переходите в командный режим. Вот несколько шагов для редактирования файла в редакторе Vim:

  • Чтобы отредактировать файл, нажмите I на клавиатуре, чтобы войти в режим вставки, здесь вы можете редактировать так же, как в обычном редакторе.
  • После завершения редактирования выйдите из этого режима, нажав Esc. Это вернет вас в обычный режим.
  • Чтобы сохранить файл, введите :w в командном режиме.
  • Чтобы выйти из редактора, введите :q в командном режиме.
  • Чтобы совместить эти действия, введите :wq для сохранения и выхода одновременно.

Использование редактора файлов Vi на Ubuntu

Использование редактора Gvim

Gvim — это редактор Vim с графическим интерфейсом пользователя. Чтобы установить Gvim, запустите Terminal, нажав Ctrl+Alt+T. Затем введите следующую команду в Terminal, чтобы начать установку.

sudo apt-get install vim-gnome

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

sudo gvim /path/to/filename

Нажмите I, чтобы войти в режим вставки, в котором вы можете редактировать файл.

Файловый редактор GVim

В редакторе Gvim вы можете выполнять различные функции с помощью панели инструментов, как в любом обычном GUI-приложении, например, сохранение файла, отмена, повтор, поиск ключевого слова и т.д.

Использование редактора Emacs

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

Чтобы установить редактор Emacs, запустите Terminal, нажав комбинацию клавиш Ctrl+Alt+T. Введите следующую команду в Терминале как sudo:

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

Чтобы открыть файл конфигурации с помощью редактора emacs, введите emacs, затем имя файла и путь к нему в следующем синтаксисе:

sudo emacs /path/to/filename

Замените /path/to/filename на фактический путь к файлу конфигурации, который вы хотите отредактировать. Когда появится запрос на ввод пароля, введите пароль sudo.

Редактирование текстовых файлов в Emacs

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

Рубрика:

Администрирование / 
#10 лет назад

  | Дополнительные материалы

Facebook

Twitter

Мой мир

Вконтакте

Одноклассники

Google+

Без фото ВЛАДИМИР ЛЕГЕЗА

Контролируем изменения
в конфигурационных файлах

Контролируем изменения в конфигурационных файлахМногие системные администраторы хорошо знакомы с трудоемким процессом «ручного исправления» конфигурационных файлов. Да, вполне можно себе представить ситуацию, когда несколько администраторов ежедневно исправляют сотни конфигурационных файлов на десятках серверов. Расскажу о наиболее сложных проблемах, с которыми приходится сталкиваться, и о том, как с ними бороться

Одна из классических проблем, с которой я часто встречался на практике, является самой распространенной и звучит так:

  • «Только что работало, а сейчас не хочет» – возникает, как правило, когда во время редактирования случайно было задето что-то лишнее. Например, удалены несколько строк. Если эта оплошность не внесла нарушения в синтаксис файла, то устранить ее можно будет только после того, как станет известно «что» и «где» перестало работать. В другом примере, приложение не обладает встроенным контролем синтаксиса файла конфигурации, и отыскать несколько символов, по той или иной причине оказавшихся в неположенном месте, – задача не из легких. Особенно если в файле несколько тысяч строк.
  • «Я его случайно удалил!» – проблема, менее распространенная, но не менее неприятная. Вам повезло, у вас есть бэкап! Но радоваться рано – предстоит вспомнить и воссоздать модификации, которые в бэкап не попали.
  • «Мои изменения куда-то делись! Но я ведь проверял, что они сохранились!» – достаточно редкое, но весьма грустное явление. Такое зачастую происходит, когда один и тот же файл одновременно редактируется несколькими людьми с разных терминалов.
  • «А правил ли кто-нибудь…» – когда никто ничего не трогал, но все упало. Файлы правятся не только администраторами, как мы знаем, но и менеджерами пакетов, различными утилитами и так далее. К счастью, проблемы такого класса встречаются не так уж часто.
  • «Откатите, пожалуйста, назад изменения, которые вы делали на прошлой неделе» – кто-то действительно помнит, как было до этого? И снова бэкап, ленты, сравнение файлов, и т. д.

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

Теория

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

Система контроля конфигурационных файлов состоит из двух частей.

  • Репозитарий. Внутри репозитария хранится вся история изменений со всей сопутствующей информацией.
  • Файлы. Назовем их «последней версией, извлеченной из репозитария». Это те самые файлы, которые непосредственно используются приложениями (такими как Apache, Bind и т. д.). Содержимое каждого из них идентично последней версии, находящейся в репозитарии.

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

На сегодняшний день системы контроля версий сменили третье поколение:

  • Локальные – системы способны контролировать отдельные файлы, каждый из которых обладает собственным файлом репозитария. Представителем этого класса является RCS (Revision Control System). Это первая в истории система контроля версий с открытым кодом, созданная еще в середине 80-х годов. Несмотря на свой возраст, она по-прежнему «широко используется в узких кругах».
  • Централизованные – отличительной особенностью является способность хранить несколько файлов и каталогов в одном репозитарии, который может находиться удаленно. Это завоевавшие сердца миллионов CVS (Concurrent Versions System) и позднее пришедшая ей на смену SVN (Subversion).
  • Децентрализованные системы – принципиально новый подход в решении задач версионности. В последнее время они все чаще начинают использоваться в проектах с очень внушительным количеством файлов и большими, зачастую территориально разделенными группами разработчиков. Наиболее заметными реализациями с открытым кодом стали GIT (создававшаяся в первую очередь для ведения процесса разработки ядра OS Linux) и Mercurial, появившиеся практически в одно время.

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

К примеру, установка контроля над файлом в системе RCS может быть достигнута всего лишь одной командой. В Mercurial – минимум двумя. А в SVN это может превратиться просто в настоящую эпопею – если нужный файл имеет десяток вышестоящих в иерархии каталогов, каждый из которых придется последовательно инициализировать в системе.

Функции, позволяющие осуществлять хранение конфигурационных файлов в отдаленных (remote) репозитариях, практически неприменимы. Создание локального репозитария более целесообразно, поскольку в этом случае его функционирование не зависит от работоспособности сторонних систем и обеспечивает доступность данных в случае потери связи с «внешним миром».

Единственный случай, при котором перемещение репозитариев находит свое применение, – это синхронизация конфигурационных файлов нескольких серверов в системах с распределением нагрузки. Несмотря на то что этот способ синхронизации гарантирует идентичность изменений на каждом из серверов, применяется он крайне редко. Связано это с тем, что чаще всего конфигурация синхронизируется теми же средствами, что и основной контент.

Репозитарии

Каждый из репозитариев, созданных в соответствующей системе контроля версий, имеет особенности в механизме инициализации и внутреннем устройстве.

Репозитарий RCS создается отдельно для каждого нового файла и представляет собой файл с одноименным названием и дополнительным суффиксом (*,v), находящийся в том же месте, где и оригинальный файл конфигурации. Ситуацию можно немного улучшить, создав каталог RCS. В этом случае все репозитарии будут создаваться внутри этого каталога. Однако такой каталог должен располагаться непосредственно рядом с оригинальным файлом. Вследствие этого, на каждом из серверов со временем образуется достаточно большое количество таких каталогов, рассредоточенных по всей файловой системе. Пример получившейся структуры каталогов показан на рис. 1.

Рисунок 1. Репозитарий RCS

Рисунок 1. Репозитарий RCS

Рассматривая SVN, первое неудобство, с которым сталкиваешься, – необходимость хранить репозитарий отдельно от извлеченной текущей версии файлов. Далее. Каждый извлеченный из репозитария каталог (отдельный файл не может быть добавлен без каталога, в котором находится!) содержит папку с метаданными репозитария (.snv). И этими метаданными ваша система наводняется гораздо сильнее, чем каталогами RCS (см. рис. 2).

Рисунок 2. Репозитарий Subversion

Рисунок 2. Репозитарий Subversion

Самыми элегантными репозитариями, как оказалось, обладают децентрализованные системы. Всего один-единственный каталог в корне репозитария, который содержит в себе «все» (.hg – у Mercurial). Достаточно инициализировать корневой каталог сервера («/») и добавлять столько файлов, сколько потребуется. Никакого дополнительного мусора в системе нет – все в одном месте, в репозитарии (см. рис. 3).

Рисунок 3. Репозитарий Mercurial

Рисунок 3. Репозитарий Mercurial

Нюансы

Как вы думаете, нужно ли проверять состояние файла до того, как вы начинаете с ним работать? Ответ утвердительный.

Система RCS требует, чтобы перед работой файл был извлечен из репозитария, а после окончания помещен обратно. Если попытаться достать файл из репозитария дважды, будет выведено предупреждение. Но никаких предупреждений мы не увидим, если начнем извлекать файл, измененный до извлечения! Так происходит, например, в ситуациях, когда изменения нужно сделать очень срочно и терять драгоценное время на лишние команды нельзя.

Нюанс заключается в том, что если сразу не довести начатое до конца (сохранить в репозитарий или, как минимум, не заблокировать), то с вероятностью 90% эти изменения будут уничтожены руками ваших коллег. Оставшиеся 10% приходятся на бдительных администраторов, которые первым делом проверяют статус (так как RCS не выводит информацию о наличии изменений, это можно сделать, сравнив текущий файл с последней его версией в репозитарии). Все более поздние системы лишены таких сложностей.

Второй нюанс. Децентрализованные системы ориентированы на работу со всем репозитарием, а не отдельным файлом. Так что одно изменение может затрагивать несколько файлов. Это очень удобно. Нюанс заключается в том, что в ревизию попадают не только измененные файлы, а весь «конфигурационный состав». Абсолютно все контролируемые системой файлы! Это значит, что при извлечении определенной ревизии целиком (checkout) – абсолютно все файлы вернутся к состоянию, соответствующему выбранной ревизии. Такой нюанс требует хорошего понимания механизмов работы репозитария, но не является препятствием киспользованию децентрализованных систем. Далее я на примере покажу, как извлечь отдельный файл.

Третий немаловажный нюанс – отсутствие возможности контролировать права доступа к файлам. Это касается как традиционных прав доступа, так и Access Control Lists (ACL – расширение для файловой системы, позволяющее более гибко управлять правами доступа). Подвержены этому все упомянутые ранее системы.

Если описать кратко, единственное, что сохраняется в метаданных о правах доступа, – это является ли файл запускаемым или нет. В остальном все извлекаемые файлы создаются точно так же, как если бы они создавались текстовым редактором. Кроме того, RCS изменяет право на запись в зависимости от состояния блокировки. Запись разрешается, только если файл заблокирован.

Нюанс с правами очень важен, если затрагиваются такие файлы, как /etc/shadow. Эту ситуацию администраторы вынуждены решать собственными силами. Кто-то прибегает к созданию файлов, в которые записывают все права, и добавляют в репозитарий.

Некоторые идут дальше и пишут скрипты для автоматизации процесса. Так на свет появилась утилита etckeeper (http://joey.kitenet.net/code/etckeeper) – созданная любителями дистрибутива Debian для реализации контроля над правами и автоматического перемещения изменений в репозитарий (операция commit) после обновления пакетов в операционной системе. К радости некоторых администраторов, etckeeper способен работать c Git, Mercurial и Bazar.

В моей практике проблеме с правами уделяется не много внимания, поскольку я стараюсь контролировать версионность исключительно тех файлов, которые действительно в этом нуждаются (файлы типа shadow или group к ним не относятся). Вы можете возразить, но мой аргумент – хорошая система бэкапа, а информация о том, как файл shadow выглядел пару лет назад, не представляет никакого интереса.

Последним нюансом будет отсутствие функционала блокировок у децентрализованных систем. Механизм не вписывается в концепцию децентрализации. К сожалению, даже etckeeper эту проблему не решает.

Кому отдать предпочтение

Вместе со мной в компании работают порядка пяти сотен программистов. Разработка ведется на множестве языков (от PHP и JAVA до С) и для самых разнообразных платформ (от Windows до Solaris и Z/OS). При выборе системы контроля версий в качестве корпоративного стандарта нам хотелось найти систему с открытым кодом, которая могла бы стать единой для всех.

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

В свете «единой для всех» система должна быть кроссплатформенной. И в этом плане в лидеры вышел Mercurial благодаря наличию клиентов под множество ОС.

Далее Mercurial выделился привычным для пользователей Subversion интерфейсом и хорошей документацией. Это серьезно облегчает переход на новые «рельсы» тем, кто ранее работал с CVS или SVN.

Финальным аккордом стал проект TortoiseHG (http://tortoisehg.sourceforge.net) – клиент для MS Windows, интегрирующийся с Internet Explorer (многие почему-то к нему быстро привыкают).

Единственной преградой на пути интеграции Mercurial для нужд администраторов оставался механизм блокировок, а точнее его отсутствие. Ее удалось обойти «малой кровью» – написав небольшой скрипт, который я назвал hglock (сообразно названиям оригинальным командам системы). Актуальную версию можно скачать по ссылке http://primtech.ru/files/hglock. Возможно, стоит организовать такой функционал в виде дополнительного модуля. Но пока это не было сделано. Позже был добавлен механизм автоматической разблокировки при сохранении изменений в репозитарии. И после этих изменений нам больше ничто непрепятствовало.

Нельзя однозначно сказать, какую из систем использовать лучше. Главное, чтобы решалась основная задача – «контроль за изменениями» и «ничего не терялось». А в остальном – это дело привычки или конкретной ситуации. Могу лишь добавить, что чем проще с системой работать, тем меньше шансов наделать ошибок.

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

Интеграция

Для того чтобы описываемый метод работы стал не обузой, а эффективным инструментом, достаточно придерживаться нескольких правил:

Во-первых, система контроля версий должна применяться только к файлам, которые являются уникальными для данной системы и имеют версионную ценность.

Как я уже упоминал ранее, нет необходимости хранить файлы с паролями, группами или сетевыми настройками. Также нет смысла сохранять файлы, которые для большинства серверов идентичны. Например, настройки почтовой маршрутизации или правила авторизации пользователей (PAM, LDAP, SSH… ). Сюда же я отношу все файлы, которые всегда прибывают в том состоянии, в каком были установлены вместе с системой.

В итоге остается только очень небольшое число файлов, с которыми действительно постоянно приходится работать. Среди них named.confnginx.confcrontab (в компании, где я работаю, рядовым пользователям запрещено самостоятельно создавать записи в cron, это делается администраторами по заявке строго определенной формы), на почтовых серверах – конфигурация почтовых систем, на брандмауэрах (firewall) – непосредственно настройки фильтрации и т.д.

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

Для примера успешной интеграции на основе описанных правил могу сказать, что в одной очень крупной компании с помощью RCS команда из шести администраторов управляет конфигурацией приблизительно трехсот UNIX-серверов.

Практика

Практика показывает, что нагляднее всего – несколько простых примеров.

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

Обращаю ваше внимание на то, откуда берутся имена пользователей, сохраняемые в репозитарии. При повышении привилегий пользователя изменяется только «эффективный» (effective id) идентификатор, а «реальный» (real id) остается неизменным.

Скрипт hglock использует именно «реальный» идентификатор, то есть имя пользователя (login), использовавшееся при входе в систему. Mercurial же извлекает имя пользователя из переменных окружения, а также позволяет определять его самостоятельно в файле ~/.hgrc. Это означает, что не следует использовать методы повышения привилегий, изменяющие оригинальное окружение (например «su –»). В ином случае авторство будет приписано пользователю root.

Итак, демонстрация работы администратора будет показана на сервере под управлением ОС Solaris.

Прежде всего убедимся в том, что Mercurial установлен и функционирует.

$ hg --version
Mercurial Distributed SCM (version 0.9.5)
...

Несколько предварительных персональных настроек пользователя:

$ id
uid=100(john) gid=1(other)
$ echo >~/.hgrc< [ui]
> editor = vim
> fallbackencoding = UTF-8
> username = John Doe <john@example.com>
EOF

Повышаем уровень привилегий:

$ su
Password:
# id
uid=0(root) gid=0(root)

Убедимся, что реальный идентификатор при этом остался неизменным:

# who am i
john pts/2 Nov 20 18:00 (172.30.0.215)

Теперь можно создать репозитарий. Так как в нашем примере конфигурационные файлы выходят далеко за рамки /etc, логично будет инициализировать корневой каталог:

# hg init /

По умолчанию созданный репозитарий доступен для чтения абсолютно всем.

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

Закроем весь репозитарий от посторонних глаз:

# chmod 700 /.gh
# ls -ld /.hg
drwx------ 3 root root 4096 2008-11-20 15:30 .hg

Если возникает необходимость скрыть только определенный файл, права нужно изменять не у репозитария, а у соответствующего файла в каталоге /.hg/store/data. Например, файлу /etc/inet/hosts будет соответствовать файл /.hg/store/data/etc/inet/hosts.i.

Установим скрипт работы с блокировками и внесем соответствующие настройки в репозитарий:

# cp hglock /usr/bin/
# cat >>/.hg/hgrc< [hooks]
> port-commit = hglock -C
> post-add = hglock -A
> EOF

Если мы попробуем вывести статус репозитария, то вопреки нашим ожиданиям процесс займет несколько минут, а в результате нашему вниманию будет продемонстрирован список абсолютно всех файлов сервера.

Следующая команда решает эту проблему. Она заставляет игнорировать все файлы, о которых нет записей в репозитарии.

# echo `^` >/.hgignore

Теперь пришло время добавить несколько файлов. Обращаю внимание на то, что в Solaris файл /etc/hosts является символической ссылкой на /etc/inet/hosts.

# hg add /etc/inet/hosts
# hg add /usr/local/apache2/conf/httpd.conf
# hg add /var/spool/cron/crontabs/root

Посмотрим, как теперь выглядит вывод статуса:

# hg status
A etc/inet/hosts
A usr/local/apache2/conf/httpd.conf
A var/spool/cron/crontabs/root

Сейчас – в момент добавления файлов – мы можем убедиться, что автоматически установилась блокировка:

# cat /.hg/locksfile
etc/inet/hosts:john:15:47 2008.11.20 
usr/local/apache2/conf/httpd.conf:john:15:47 2008.11.20
var/spool/cron/crontabs/root:john:15:47 2008.11.20

Хорошо. Помещаем файлы в репозитарий:

# hg commit -m "Init"

Посмотрим на блокировку теперь:

# cat /.hg/locksfile

Отлично.

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

# hg locate
etc/inet/hosts
usr/local/apache2/conf/httpd.conf
var/spool/cron/crontabs/root

Все пути к файлам указываются от корня репозитария. Если сомневаетесь, в каком из репозитариев находитесь, поможет команда:

# hg root

Все самое сложное позади. Репозитарий настроен, файлы добавлены.

Теперь покажу пару несложных команд (по сути, их действительно только две), которые впишутся в вашу повседневную администраторскую жизнь.

Первая команда. Перед тем как изменять /etc/hosts, заблокируем его:

# hglock /etc/inet/hosts

Если же вас кто-то опередил, вы получите сообщение:

# hglock /etc/inet/hosts
File already locked by "other_user" at 19:00 2008.11.20.

Изменим hosts:

# cd /etc/inet
# sed –e "s/oldalias/newalias/" hosts > /tmp/1
# mv /tmp/1 hosts

Наличие изменений теперь отразится в hg status:

# hg status
M etc/inet/hosts

Вторая команда – это нечто иное, как commit.

# hg commit –m “first change” /etc/inet/hosts

В принципе имя файла можно опустить. Но так как hglock не проверяет, кем заблокирован файл, то есть опасность убрать еще и чужую блокировку.

Давайте рассмотрим еще несколько часто используемых команд.

Кем вносились последние изменения:

# cd /etc/inet
# hg log hosts
changeset:   1:3d8a608232b9
tag:         tip
user:        John Doe <john@example.com>
date:        Thu Nov 20 00:46:46 2008 +0300
summary:     first change

changeset:   0:9fe2667c2ab3
user:        John Doe <john@example.com>
date:        Thu Nov 20 00:44:37 2008 +0300
summary:     Init.

Мы видим первую строчку комментария «first change» и номер последней ревизии (changeset) 1.

Давайте посмотрим, что в этой ревизии было нами изменено.

# hg diff -r 0 -r 1
diff -r 9fe2667c2ab3 -r 3d8a608232b9 hosts
--- a/hosts	Thu Nov 20 00:44:37 2008 +0300
+++ b/hosts	Thu Nov 20 00:46:46 2008 +0300
@@ -2,4 +2,4 @@

 # that require network functionality will fail.
 127.0.0.1	localhost.localdomain	localhost
 ::1	localhost6.localdomain6	localhost6
-10.32.0.69 oldalias
+10.32.0.69 newalias

Как вы видите, была изменена запись с 10.32.0.69 oldalias на 10.32.0.69 newalias.

И еще. Скажу о том, как восстановить файл, если его случайно удалили. Потому как путь к его восстановлению не совсем очевиден. Этой же командой можно извлечь только один из файлов указанной ревизии.

# rm hosts
# hg log hosts
changeset:   1:3d8a608232b9
tag:         tip
user:        John Doe <john@example.com>
date:        Thu Nov 20 00:46:46 2008 +0300
summary:     first change

changeset:   0:9fe2667c2ab3
user:        John Doe <john@example.com>
date:        Thu Nov 20 00:44:37 2008 +0300
summary:     Init.
# hg cat -r 1 hosts > hosts 
# cat hosts
# Do not remove the following line, or various programs
# that require network functionality will fail.
127.0.0.1	localhost.localdomain	localhost
::1	localhost6.localdomain6	localhost6
10.32.0.69 newalias

Теперь наш файл снова на месте. У нас снова все прекрасно работает. Надеюсь, что теперь и у вас тоже.

Ключевые слова: контроль изменений, контроль версий, конфигурационный файл, репозитарий, RCS, Subversion, Mercurial.

Facebook

Twitter

Мой мир

Вконтакте

Одноклассники

Google+

Понравилась статья? Поделить с друзьями:
  • Как найти ковш малой медведицы
  • Как правильно составить ведомость на сбор денег
  • Как найти определенное фото в интернете
  • Как найти скорость через период вращения
  • Как найти угловой коэффициент стороны с координатами