Файл конфигурации не загружен

Обновлено: 18.05.2024

Я установил mosquito v2.0.11 на Raspberry Pi3. Я написал файл конфигурации, разрешающий анонимные подключения, но mosquitto, похоже, не загружает эту конфигурацию.

/etc/mosquitto/conf.d/custom.conf:

Когда я запускаю mosquitto в bash, результат выглядит так:

И "systemctl status mosquitto.service" говорит, что файл congfig был загружен. По-прежнему анонимные подключения не работают.

Когда я указываю файл конфигурации "mosquitto -c /etc/mosquitto/conf.d/custom.conf", файл конфигурации загружается правильно. Я действительно не знаю, как заставить его работать.

2 ответа

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

Файл конфигурации по умолчанию обычно хранится в /etc/mosquitto/mosquitto.conf . Этот файл включает следующую строку:

Это указывает mosquitto включить все файлы, которые заканчиваются на .conf из каталога /etc/mosquitto/conf.d

Когда вы пытались запустить mosquitto без передачи ему файла конфигурации, это не удалось, потому что служба уже была запущена. Если вы остановите его ( sudo service mosquitto stop ), а затем запустите mosquitto -c /etc/mosquitto/mosquitto.conf , он пойдет немного дальше, но также потерпит неудачу, потому что у вашего пользователя не будет доступа ни к файлу сохранения по умолчанию, ни к файлу журнала.

Самое простое решение - просто перезапустить службу с помощью

И он подберет изменения, внесенные в /etc/mosquitto/conf.d/custom.conf

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

Трудно сказать наверняка, так как вы не публиковали mosquitto.conf , но заметили ли вы эту строку в журналах?

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

Вам нужно будет изменить строку listener на:

Чтобы он слушал соединения с других машин.

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

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

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

Когда вы имеете дело с файлом конфигурации .cf, вы изменяете его средствами 1С:Предприятия. Но, как вы знаете, в платформе существует и другой механизм, который позволяет вносить изменения в конфигурацию без использования платформы. Это механизм выгрузки конфигурации в файлы XML и загрузки из них.

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

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

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

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

Загрузка в конфигурацию, подключённую к хранилищу


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

Загрузка в конфигурацию, находящуюся на поддержке


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

Загрузка конфигурации, которая содержит настройки поддержки


Если XML выгрузка содержит настройки поддержки (файл ParentConfigurations.xml) то:

  • Полная загрузка невозможна;
  • Частичная загрузка невозможна в том случае, когда загружается корневой объект конфигурации (файл Configuration.xml) .

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

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

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

Для примера я буду использовать 1С 8.2 но для версии 8.3 эта инструкция так же подойдет. Давайте разберемся подробней, что же такое конфигурация. Я постараюсь своими словам вам это объяснить. Конфигурация в 1С это набор документов, таблиц, различных отчетов и т.д только не заполненных, пустых без данных. Аналогия можно провести с документами Excel, пустая таблица в которой забиты различны формулы и диаграммы это конфигурация. Конфигураций очень много это Бухгалтерия, Зарплата и кадры, документооборот, Розница и т.д Так же существует очень много различных самописных конфигураций.

Как выгрузить конфигурацию из 1С в файл

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


В конфигураторе переходим в пункт Конфигурация и выбираем пункт Сохранить конфигурацию в файл.


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


Вот и все на этом выгрузка конфигурации завершена. Теперь поговорим о том как её загрузить.

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

С выгрузкой разобрались давайте теперь разберемся с загрузкой конфигурации из файла .Для этого так же необходимо зайти в конфигуратор. И выбрать пункт Конфигурация в нем ищем Загрузку конфигурации из файла.


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


Закрываем конфигуратор и запускаем 1С в обычном режиме.

Как видите все оказалось достаточно просто.

Скриншоты, опубликованные в данной статье, являются цитатами и иллюстрациями программного продукта «1C:Предприятие», авторское право на который принадлежит ЗАО 1С.

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

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


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


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


Теперь давайте посмотрим, как загрузить конфигурацию в 1с 8.2. Для этого мы зайдем в меню «Конфигурация», и выберем «Загрузить конфигурацию из файла». Далее просто выбираем нужный файл в формате *.cf.


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



Итак, мы рассмотрели в этом уроке как можно загрузить конфигурацию в 1с 8.2. Рекомендуем вам почитать статью, как добавить базу в 1с.

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

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

Когда вы имеете дело с файлом конфигурации .cf, вы изменяете его средствами 1С:Предприятия. Но, как вы знаете, в платформе существует и другой механизм, который позволяет вносить изменения в конфигурацию без использования платформы. Это механизм выгрузки конфигурации в файлы XML и загрузки из них.

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

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

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

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

Загрузка в конфигурацию, подключённую к хранилищу

01.jpg

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

Загрузка в конфигурацию, находящуюся на поддержке

03.jpg

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

Загрузка конфигурации, которая содержит настройки поддержки

02.jpg

Если XML выгрузка содержит настройки поддержки (файл ParentConfigurations.xml) то:

  • Полная загрузка невозможна;
  • Частичная загрузка невозможна в том случае, когда загружается корневой объект конфигурации (файл Configuration.xml) .

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

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

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

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


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


. новый формат выгрузки, иерархический, формирует структуру каталогов с файлами:


Иерархическая выгрузка позволяет избавиться от проблем, связанных с очень длинными именами файлов. Такие проблемы могли возникать раньше как при выгрузке, так и при переносе файлов между разными файловыми системами (FAT, NTFS, EXT).

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

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

"C:\Program Files (x86)\1cv8\8.3.7.1759\bin\1cv8.exe" DESIGNER /IBName "TestBase" /DumpConfigToFiles "C:\dump" -Format Plain

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

Частичная загрузка конфигурации из файлов XML

Мы реализовали возможность загружать из файлов XML не всю конфигурацию, а только её часть. В первую очередь эта возможность востребована в новой среде разработки 1C:Enterprise Development Tools. Ведь Development Tools ориентированы на работу с крупными конфигурациями, а частичная загрузка помогает ускорить процесс разработки, сократить цикл «редактирование - отладка».

Однако вы можете использовать эту возможность и независимо от Development Tools. Потому что для загрузки отдельных файлов конфигурации используется запуск конфигуратора из командной строки в пакетном режиме. А значит, используя частичную загрузку, вы можете:

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

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

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

"C:\Program Files (x86)\1cv8\8.3.7.1759\bin\1cv8.exe" DESIGNER /IBName "TestBase" /LoadConfigFromFiles "C:\dump" -Files "C:\dump\Catalogs\Номенклатура\Ext\ObjectModule.bsl"

Для частичной загрузки используется прежний параметр LoadConfigFromFiles, и две новых опции: Files и ListFiles. Files позволяет вам перечислить через запятую те файлы, которые нужно загрузить, если таких файлов немного. А если их много, тогда вы можете использовать опцию ListFiles. Она указывает на файл, в котором перечислены XML файлы, которые нужно загрузить.

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

Выгрузка/загрузка внешних отчётов и обработок в/из XML

В версии 8.3.8 мы добавили возможность выгружать в XML и загружать внешние отчёты и обработки:


Более того, при работе в конфигураторе вы можете сохранять их сразу в формате XML (Файл - Сохранить как. ). То же самое относится и к открытию:


Также мы добавили возможность сравнить внешний отчёт или обработку с XML выгрузкой. Все эти изменения мы сделали в первую очередь для того, чтобы в новой среде разработки 1C:Enterprise Development Tools обеспечить полноценную работу с внешними отчётами и обработками. Однако и отдельно от Development Tools эти возможности могут быть вам полезны для любых автоматизированных изменений выгруженных XML файлов.

Выгрузить/загрузить внешние отчёты/обработки вы можете не только интерактивно, но и автоматически, запуская конфигуратор в пакетном режиме. Для этого мы добавили два новых параметра: DumpExternalDataProcessorOrReportToFiles и LoadExternalDataProcessorOrReportFromFiles.

Читайте также: