Mft что это 1с
Сначала создадим начальную поставку.
Будем использовать платформу 8.3.5.1231, на более новых должно работать также (пока).
Создаем каталоги (имена каталогов для примера):
X:\Current - каталог текущей информационной базы
X:\Versions - каталог версий файлов поставки и обновлений
X:\Distribute - каталог дистрибутивов
X:\ExtFiles - каталог для дополнительных файлов поставки
Создаем пустую конфигурацию в каталоге X:\Current.
В конфигурации создаем Справочник Номенклатура.
В свойствах конфигурации обязательно заполняем следующие реквизиты, например:
Имя - НашаКонфигурация
Синоним - Наша конфигурация редакция 1.0
Поставщик - Наша фирма
Версия - 1.0.1.2
Эта информация нужна для оформления файлов поставки.
Настраиваем возможность изменения конфигурации. Выбираем в меню Конфигурация – Поставка конфигурации – Настройка поставки.
Настройки производим на свое усмотрение.
Если в конфигурацию внесены изменения, касающиеся изменения структуры конфигурации, и эти изменения нужно производить в несколько этапов, то флажок - Файл поставки может использоваться для обновления - нужно снять. Например:
В Справочнике Контрагенты реквизит Адрес изменили со строкового на ссылку на Справочник Адреса.
В этом случае необходимо сначала создать реквизит НовыйАдрес в Справочнике Контрагенты, создать Справочник Адреса.
Затем обработкой заполнить Справочник Адреса и установить в реквизите НовыйАдрес ссылки на Справочник Адреса.
Затем удалить реквизит Адрес и переименовать реквизит НовыйАдрес в Адрес.
Каждое из этих действий необходимо заканчивать обновлением конфигурации.
Правда, с помощью БСП это можно решить в один этап, но это отдельная тема, здесь я просто пояснил назначение флажка .
Выбираем в меню Конфигурация-Поставка конфигурации-Создать файлы поставки и обновления
Нажимаем кнопку Каталог файлов поставки и выбираем каталог X:\Versions
Устанавливаем флажок - Создать файл поставки, Имя файла поставки – X:\Versions\1.0.1.2\1Cv8.cf
И снимаем флажок - Создать файл обновления конфигурации
Нажимаем кнопку Выполнить
Убеждаемся, что создан файл X:\Versions\1.0.1.2\1Cv8.cf
Выбираем в меню Конфигурация-Поставка конфигурации-Комплект поставки
Выбираем - Создать новое описание комплекта поставки и нажимаем ОК.
Указывается наименование поставки и поставщика (для этого мы выполнили пункт 4).
Можно их отредактировать.
Нажимаем Далее
Указываем параметры шаблона - Путь это каталог, который будет создан в каталоге X:\Distribute, например КаталогПоставщика.
Также этот каталог будет создан в каталоге шаблонов платформы при установке конфигурации, например, в каталоге X:\tmpl, т.е X:\tmpl\ КаталогПоставщика. Типовая конфигурация БП, к примеру, располагается в каталоге X:\tmpl \1c\Accounting\.
Нажимаем Далее
Выбираем файлы шаблона и, если нужно, указываем каталог X:\ExtFiles с дополнительными файлами.
Нажимаем Готово
Создается комплект поставки
В окне комплекта поставки можно редактировать содержание комплекта.
Самое интересное, о чем практически нет информации :
Если пункт Наименование в шаблоне оставить, как предлагает помощник создания комплекта поставки. То после установки конфигурации, в окне шаблонов создания конфигурации, пустая конфигурация и Демо конфигурация будут располагаться в разных папках. Чтобы они располагались в подпапках одной папки (как типовые конфигурации), необходимо сделать следующее:
Это нужно сделать для Файла выгрузки информационной базы и для Файла конфигурации.
Нажимаем Создать файлы комплекта
Сохраняем описание комплекта поставки в каталог X:\Versions
Выбираем каталог для файлов комплекта X:\Distribute
Убеждаемся, что создан каталог X:\Distribute\КаталогПоставщика и в нем файлы:
1Cv8.cf – шаблон конфигурации.
1Cv8.dt – выгрузка Демо конфигурации.
Файлы из каталога X:\ExtFiles и, если выбрано из его подкаталогов.
Эти файлы можно использовать непосредственно как файлы шаблонов.
Нажимаем Создать комплект
Выбираем каталог X:\Distribute\1.0.1.2 (этот подкаталог нужно создать).
Убеждаемся, что в каталоге X:\Distribute\1.0.1.2 созданы файлы:
1Cv8.efd – файлы конфигурации в упакованном виде.
setup.exe – программа установки файлов конфигурации.
Это файлы установки, их можно упаковать в архив для передачи пользователю.
Начальную поставку мы создали, теперь переходим к обновлениям.
Вносим изменения в конфигурацию – создаем Справочник Контрагенты. И не забываем поменять в свойствах конфигурации версию, в нашем примере на 1.0.1.3.
Обновляем конфигурацию (клавиша F7).
Выбираем пункт меню Конфигурация – Поставка Конфигурации – Создать файлы поставки и обновления конфигурации.
Убеждаемся, что Имя файла поставки – X:\Versions\1.0.1.3\1Cv8.cf и Имя файла обновления – X:\Versions\1.0.1.3\1Cv8.cfu
Выбираем конфигурации для обновления, в нашем примере 1.0.1.2. Здесь нужно понимать, что обновление будет работать не только с предыдущей версией конфигурации, а и с теми версиями, которые перечислены в списке.
Устанавливаем флажки – Создать файл обновления… и Создать файл поставки. (Последний можно не создавать с каждым обновлением, в этом случае для создания пустой текущей конфигурации нужно будет установить наиболее близкий шаблон и затем обновить его).
Нажимаем кнопку Выполнить.
Убеждаемся, что создались файлы – X:\Versions\1.0.1.3\1Cv8.cf и X:\Versions\1.0.1.3\1Cv8.cfu
Выбираем пункт меню Конфигурация – Поставка конфигурации – Комплект поставки…
Выбираем – Открыть описание комплекта поставки: X:\Versions\КомплектПоставки1.efd и нажимаем ОК.
Выбираем ветку – Шаблоны конфигураций\НашаКонфигурация(НашаФирма, версия 1.0.1.3) и нажимаем на кнопку Добавить.
Выбираем – Отдельный файл, указываем путь – X:\Versions\1.0.1.3\1Cv8.cfu и нажимаем кнопку ОК.
Выбираем ветку – Вариант поставки и нажимаем кнопку Добавить.
Переименуем Вариант поставки 1 в Обновление.
Нажимаем ссылку Редактировать.
В диалоге ставим флажок возле файла 1Cv8.cfu и нажимаем ОК.
Нажимаем кнопку – Создать файлы комплекта.
Сохраняем описание комплекта поставки.
В диалоге – Выбор варианта построения выбираем Обновление и нажимаем ОК.
Выбираем каталог – X:\Distribute (если в нем есть файлы, их нужно удалить или перенести) и нажимаем на кнопку Выбор папки.
Убеждаемся, что созданы файлы – X:\Distribute\КаталогПоставщика\1Cv8.cfu и D:\Distribute\КаталогПоставщика\1Cv8.mft
Нажимаем кнопку – Создать комплект.
В диалоге – Выбор варианта построения выбираем Обновление и нажимаем ОК.
Выбираем каталог – X:\Distribute\1.0.1.3 (этот подкаталог нужно создать).
Убеждаемся, что в каталоге X:\Distribute созданы файлы:
1Cv8.efd – файлы конфигурации в упакованном виде.
setup.exe – программа установки файлов конфигурации.
Это файлы установки, их можно упаковать в архив для передачи пользователю.
Работа с новым форматом файловой базы данных, начиная с "1С:Предприятие" 8.3.8
Начиная с версии платформы "1С:Предприятие" 8.3.8 появилась поддержка нового формата файловых баз данных (включая работу в режиме совместимости с предыдущими версиями). Новый формат файловых баз данных предназначен для ускорения процесса открытия и работы с информационной базой, поэтому, начиная с версии платформы 8.3.9, новый формат используется по умолчанию при создании новых файловых баз данных.
В новом формате (версии " 8.3.8" ) появились следующие возможности:
- Уменьшен размер и оптимизирована структура заголовка с метаинформацией в файле 1Cv8.1CD . Это позволяет существенно снизить число операций чтения файла при открытии базы данных и, тем самым, заметно ускорить время старта и начала работы программы.
- Теперь можно настраивать размер внутренней страницы файла данных. Это размер порции данных, в которых хранится информация и которыми обменивается программа с файловой системой. Предыдущий формат файловой базы данных (версии " 8.2.14" ) поддерживал единственный размер внутренней страницы файла – 4Кб . Новый формат по умолчанию использует размер страницы 8Кб , но позволяет его менять в диапазоне от 4Кб до 64Кб .
Наибольший эффект от использования нового формата файловых баз данных ожидается в следующих сценариях:
- "холодный" запуск программы,
- работа с файлами базы данных по локальной сети,
- работа с сильно фрагментированной базой данных,
- использование дисковых подсистем с невысокой производительностью.
При создании новых файловых баз данных рекомендуется использовать настройки формата базы по умолчанию (версия формата " 8.3.8 ", размер страницы файла 8Кб ). Если Вы используете базу данных, созданную в предыдущих версиях платформы, и наблюдаете недостаточно высокую производительность при старте и во время работы программы, то рекомендуется сконвертировать базу данных на новый формат файла.
Для преобразования формата файловой базы данных в комплектацию поставки платформы "1С:Предприятие" добавлена утилита CNVDBFL.EXE , которая должна находиться в папке " \bin " вашей установки "1С:Предприятие". Например, полный путь к папке, где находится утилита, может быть " C:\Program Files (x86)\1cv8\8.3.9.1850\bin ", где " 8.3.9.1850 " – номер версии установленной платформы "1С:Предприятие". В этой же папке находятся другие исполняемые файлы платформы, такие как, например, "1Cv8.exe".
Если Вы не можете найти утилиту CNVDBFL.EXE в папке " \bin ", проверьте, что Вы используете версию "1С:Предприятие" 8.3.8 и выше.
Подробно про использование утилиты CNVDBFL.EXE можно почитать в документации по администрированию "1С:Предприятие", или в документации: "Утилита преобразования cnvdbfl". Также информация о возможностях и командах утилиты CNVDBFL.EXE выводится при её запуске без параметров, или с ключом " -h ".
Если Вы хотите проверить параметры Вашей файловой базы данных, используйте следующий вызов утилиты (указав в команде правильный путь к Вашей базе данных):
При этом утилита выведет версию формата файла и размер страницы.
Версия формата " 8.3.8 " указывает на то, что используется новый формат файла. Версия формата " 8.2.14 " означает, что формат – старый, и имеет смысл выполнить конвертацию базы данных в новый формат.
Размер страницы может принимать одно из значений: 4096 , 8192 , 16384 , 32768 , или 65536 байт. Для старой версии формата файла используется размер страницы 4096 байтов ( 4Кб ), для новой версии по умолчанию установлен размер в 8192 байта ( 8Кб ).
Для конвертации файловой базы данных Вы можете использовать следующую команду:
где 16k замените на нужный размер страницы файла ( 4k , 8k , 16k , 32k , или 64k ) и укажите правильный путь к Вашей базе данных.
ВНИМАНИЕ!
Напоминаем, что чтобы избежать риска потери Ваших данных, всегда имейте свежую резервную копию Вашей файловой базы данных перед выполнением операции конвертации файлов.
*.cf - файл содержит только конфигурацию(код и структура) без пользовательских данных. Создаётся из конфигуратора 1С 8.х: «Конфигурация -> Сохранить конфигурацию в файл» или «Конфигурация -> Поставка конфигурации -> Создать файл поставки и обновление конфигурации -> признак «Создать файл поставки»».
*.cfu - файл содержит только обновление конфигурации. Например файл 1cv8.cfu. Создать конфигурацию из этого файла невозможно, так как он содержит в себе только отличия новой конфигурации от предыдущей. Создаётся из конфигуратора 1С 8.х: «Конфигурация -> Поставка конфигурации -> Создать файл поставки и обновление конфигурации -> признак «Создать файл обновления конфигурации»».
*.cfe - файл-расширение, предназначенный для доработки конфигурации без её изменения. При использовании расширений 1С (*.cfe) - доработанная конфигурация может полноценно обновляться и с поддержки не снимается.
*.dt - файл содержит конфигурацию вместе с пользовательской базой данных. Это специализированный формат архива 1С 8. Создаётся из конфигуратора 1С 8.х: «Администрирование -> Выгрузить информационную базу».
*.epf (*.erf) – файл внешней обработки (отчёта). Любую обработку (отчёт) из конфигурации можно сохранить внешней. Создаётся из конфигуратора 1С 8.х: «Конфигурация -> Открыть конфигурацию -> становимся на нужную обработку (отчёт) -> выделяем правой кнопкой мыши -> Сохранить как внешнюю обработку, отчёт…».
*.1cd – файл полноценной базы данных. Представление имени по умолчанию: 1Cv8.1CD. Включает в себя конфигурацию, базу данных, пользовательские настройки. Открывается платформой 1С 8.x. Создаётся для разработки новой конфигурации автоматически по кнопке «Добавить» при выборе пункта «Создание новой информационной базы».
*.log, *.lgf, *.lgp, *.elf - лог файлы, которые собирают информацию (регистрируют данные) в 1С 8.0 8.1, 8.2, 8.3. Например, файл 1Cv8.lgf (в каталоге 1Cv8Log ) содержит информацию журнала регистрации.
*. cdn - файл с таким расширением ( 1Cv8.cdn) служит для ручной или автоматической блокировки базы данных 1С Предприятия восьмой версии .
*.mxl - файлы печатных форм используются, в том числе и в 1С. Являются как печатными формами документов, справочников, отчётов, так и различными накопителями данных для различных классификаторов. Открывается через Конфигуратор или в режиме 1С:Предприятии через «файл -> открыть». Создаётся точно так же: в режиме Конфигуратор или в 1С:Предприятии через «файл -> новый». Так же файлы с такими расширениями могут служить правилами переноса, например, из 1С 7.7 в 8.2 ( acc77_82.xml и вспомогательная обработка exp77_82.ert) - находятся они обычно в папке ExtForms.
*.efd - это архивный файл 1С, используется для установки конфигурации. Содержит или конфигурацию 1с или обновление к ней. Запускается с помощью вспомогательного исполняющего файла setup.exe (должен находиться в одной папке).
*.mft – вспомогательный файл для создания конфигурации из шаблона. Содержит информацию о конфигурации, описание, пути, название. Используется непосредственно самой платформой при создании информационной базы 1С из шаблона.
*.grs - файлы графических схем в специализированном формате 1С. Открывается через Конфигуратор или в режиме 1С:Предприятии через «файл -> открыть». Создаётся точно так же: в режиме Конфигуратор или в 1С:Предприятии через «файл -> новый».
*.geo - файлы географических схем в специализированном формате 1С. Открывается через Конфигуратор или в режиме 1С:Предприятии через «файл -> открыть». Создаётся точно так же: в режиме Конфигуратор или в 1С:Предприятии через «файл -> новый».
*.st - файлы шаблонов текстов. Используются в основном 1С разработчиками.
*.pff - файл с сохраненными замерами производительности. Используются системными администраторами и специалистами 1С.
*.pfl - файл содержащий различные параметры для старта и работы с 1С:
. 1Cv8.pfl - параметры для компьютера/информационной базы/пользователя (в т.ч. пароли пользователей, настройки текстового редактора, настройки глобального поиска по текстам конфигурации, список переменных для быстрого просмотра в отладчике ). Настройки модулей в конфигураторе хранятся в файле 1Cv8.pfl . Этот файл обычно находится в каталоге настроек пользователя C:\Users\<ИмяПользователя>\AppData\Roaming\1C\1cv8.
Сколько же всего сложного и таинственного нас окружает.
Черные дыры и сновидения. Темная материя и подсознание. Корпускулярно-волновой дуализм и 1С.
И ведь думаешь, что знаешь эту "1Ску" как свои пять пальцев, но стоит случайно копнуть глубже. И очередная багофича. Да ешё и какая!
В этой статье рассмотрим секретный оператор ?
О нём мало кто знает, хоть он и существует как минимум с версии 8.0.
В последнее время я публикую на своём телеграм-канале разные хитрые задачки с подвохом для программистов 1С. Какие-то беру "по памяти", а какие-то "рождаю" в результате экспериментов. Об этом скоро выйдет отдельная статья. И вот в очередном тесте адекватности платформы случайно натыкаюсь на такую конструкцию:
Синтаксис-проверка прошла успешно. Никаких ошибок не высветилось. И, казалось бы, ошибка тогда должна произойти в момент выполнения.
Код успешно выполнился. Удивительно, но сработало! И тут меня понесло.
Как оказалось, знак ? ведёт себя крайне странно. Давайте посмотрим ещё раз прошлый пример.
Мы создаём новую переменную и назначаем ей значение - ?. И в переменной находится Неопределенно. И, казалось бы, это и есть ответ на вопрос. Знак ? означает Неопределено.
Но что же тогда это:
В данном коде сначала идёт объявление переменной "А". И в А установлено числовое значение "1". А далее идёт наше сравнение с ?. Если бы под знаком вопроса скрывалось Неопределено, то мы бы не попали внутрь условия. А по скрину видно, что попали.
Очень странная ошибка. "Переменная не определена (Сообщить)". Ну допустим. Добавим тогда такую переменную:
Данный код компилируется без ошибок. И при выполнении в 1С сообщает "ТЕСТ". То есть значение переменной Сообщить
Выходит, что символ ? указывает на предыдущее слово в коде. В данном случае, перед ? было слово Сообщить. И поэтому 1С изначально поругалась, что такая переменная не определена. А когда мы добавили переменную Сообщить, то всё стало на свои места.
То есть наш код для 1С выглядит так:
А теперь вернемся к нашим предыдущим примерам и разберём что и как сработало.
В данном коде предыдущее слово перед ? - Если. Но оно является ключевым для 1С. Как "Цикл", "Процедура" и так далее. Поэтому, его оператор ? не учитывает и берет в качестве источника значения переменную А.
Скорректируем же этот код так, как его видит 1С:
Теперь всё логично. А = А и поэтому условие выполняется.
А что с нашим самым первым примером?
На самом деле всё так же. Просто заменяем знак вопроса на предыдущее слово.
Да, такой код тоже странный, но в рамках 1С всё логично. Сначала объявляется переменная и в ней Неопределено. А затем происходит присвоение переменной значения из её самой. То есть опять же Неопределено. Можете проверить такой код - это хоть и выглядит странно, но работает. А почитать чуть подробнее можно в статье на ИТС: МояПеременная = 0; МояПеременная = ? + 1; //1 МояПеременная = ? + 1; //2 МояПеременная = ? * 5; //10 МояПеременная = ? / 2; //5 МояПеременная = ? - 6; //-1
А самое интересное, что такая возможность существовала как минимум ещё с версии 8.0 . Специально скачал старую платформу и проверил.
На самом деле такой код можно ещё упросить:
Но такой вариант становится менее надежным. Ведь всё работает до тех пор, пока перед ? находится МояПеременная. Если же вставить после этого какое-то другое "слово", то всё порушится.
Но вот ещё пример:
Мы же помним, что знак ? берет предыдущее слово. Так вот в нашей строке кода это слово "А". Именно так - без "Структура".
Поэтому 1С в таком коде вместо знака вопроса вставит "А"
Но зато появляется новая возможность применения:
В данном коде мы создали структуру и наполнили её объявленными ранее переменными. Тоже бывает удобно, когда нужно передать какой-то набор переменных метода в другой метод через структуру.
А вот ещё пример. Можно передать в какой-то метод или конструктор одно значение несколько раз:
Передавать знак ? можно даже в условный тернарный оператор. Например, этот код приводит отрицательные числа к 0:
А этот приводит отрицательные числа к положительным:
Подобным образом можно присваивать дефолтные значения необязательным параметрам:
Главное помнить, что знак ? берет именно предыдущее слово, поэтому вот так работать НЕ будет:
1С поругается, что Переменная не определена (Структура). Ведь перед последним знаком ? слово Структура
Но что если использовать символ ? в параметрах?
Сделаем процедуру с параметром ? :
Такую процедуру действительно возможно создать. И можно вызывать. Причем 1С понимает, что параметр обязательный и его необходимо передать.
Но мы можем сделать его необязательным:
И параметр не обязан быть единственным. Можно делать разными способами:
А можно использовать Знач
Но вот незадача, ? в параметре метода не использует предыдущее слово (как во всех других случаях). Как обратиться к этому параметру - неизвестно.
В стеке вызовов он отображается:
А попробуем добавить второй параметр ?
1С ругается так:
Формальный параметр с указанным именем уже определен (?)
Опираясь на текст ошибки, мы можем предположить, что 1С объявляет параметр с именем "?"
И когда мы пытаемся добавить ещё один такой параметр, то платформа ругается.
Как обратиться к параметру с именем "?" - неизвестно. Методы Вычислить() и Выполнить() не помогли.
Но, возможно, это всё те вопросы, которые нам ещё предстоит разгадать. Секреты и загадки этой таинственной платформы под кодовым названием 1С.
Понравилась статья?
Поставьте лайк плюс. Пишите свои идеи и комментарии по теме. Статья будет дополняться.
Читайте также: