1с передача параметра в конфигурацию

Обновлено: 07.07.2024

Передача параметров по ссылке и по значению при вызове процедур и функций

Внимание! Материал данной статьи устарел. Рекомендуется использовать документацию к платформе "1С:Предприятие 8".

Встроенный язык 1С:Предприятия поддерживает два способа передачи параметров в процедуры и функции: передача параметров по ссылке и передача параметров по значению.

Передача параметров по ссылке

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

Передача параметров по значению

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

Особенности передачи переменных различных типов данных по значению

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

Рассмотрим в качестве примера ситуацию, когда параметром процедуры, передаваемым по значению, является таблица значений. Внутри вызываемой процедуры ОбработатьТаблицу() создается новый экземпляр таблицы значений, в который добавляется три строки. Это никак не влияет на состояние таблицы значений Тз , переданной в качестве фактического параметра при вызове процедуры ОбработатьТаблицу() :

Рассмотрим в качестве примера ситуацию, когда параметром процедуры, передаваемым по значению, является таблица значений. Внутри вызываемой процедуры СвернутьТаблицу() таблица значений, переданная в качестве параметра при вызове процедуры, сворачивается:

Схематично изобразить происходящее при вызове процедуры СвернутьТаблицу(Тз) можно следующим образом:

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

(2) - из процедуры вызывается метод Свернуть таблицы значений;

(3) - формальный параметр ссылается на тот же самый экземпляр таблицы значений, что и фактический параметр (переменная Тз) - происходит свертка в экземпляре таблицы значений, на которую ссылается переменная Тз;

(4) - выходим из процедуры. Экземпляр таблицы значений, на которую ссылается переменная Тз, находится в свернутом состоянии.

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

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

В обычных формах для передачи параметра было 2 возможности:

  1. менее распространенный способ: в форме объекта на вкладке «Реквизиты» добавлялся реквизит, при необходимости определялся доступ визуальными средствами
  2. более распространенный способ: в модуле формы объявлялась экспортная переменная и в обработчике « ПередОткрытием » значение обрабатывалось

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

Форма = Объект . ПолучитьФорму ( "ФормаВыбора" , ВладелецФормы , КлючУникальности );
Форма . Параметр = ЗначениеПараметра ;
Форма . Открыть ();

Как передаются параметры в управляемых формах

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

Параметры = Новый Структура ( "ТекущееЗначение" , ПоследнийЭлемент );
ФормаВыбора = ПолучитьФорму ( "Справочник.Номенклатура.ФормаВыбора" , Параметры );
НайденыйЭлемент = ФормаВыбора . ОткрытьМодально ();

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

Также у разработчика появилась возможность определять свои параметры (в конструкторе управляемой формы вкладка «Параметры»). Время жизни параметров ограничено обработчиком ПриСозданииНаСервере , что логично т.к. параметры требуются только при создании формы, но если данный параметр определяет уникальность формы (установлен флаг «ключевой параметр» в свойствах параметра) он будет доступен и в других обработчиках.

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

В обработчике ПриСозданииНаСервере определить обработку данного параметра (обращение к переданным параметрам через свойство « Параметры », имеющее тип ДанныеФормыСтруктура )

  1. Описать получение формы и передать значение нового параметра в параметрах функции ПолучитьФорму.

Таким образом код будет иметь вид:

Параметры = Новый Структура ( "НовыйПараметр" , ПоследнийЭлемент );
ФормаВыбора = ПолучитьФорму ( "Справочник.Номенклатура.ФормаВыбора" , Параметры );

&НаСервере
Процедура ПриСозданииНаСервере ( Отказ , СтандартнаяОбработка )
Если Параметры . Свойство ( "НовыйПараметр" ) Тогда
// здесь код обработки параметра
КонецЕсли;
КонецПроцедуры

Заключение

Возможно данная статья кому-то пригодится, с экономит время и убережет от лишнего кода. Для более детальной информации о полном списке параметров управляемой формы рекомендуется посмотреть справку «Интерфейс управляемый \ Управляемая форма».

Помимо запуска путем выбора соответствующей пиктограммы из меню «Пуск —Программы» операционной системы MS Windows, запуск системы 1С:Предприятие 8.x может быть выполнен путем запуска исполняемого файла 1CV8.EXE. Такой запуск может быть произведен, например, при помощи пункта «Выполнить» меню «Пуск» операционной системы MS Windows, или двойным щелчком мыши на имени файла 1CV8.EXE в программе Проводник (Explorer).

В командной строке запуска файла 1CV8.EXE можно указать все необходимые параметры: режим запуска, имя каталога с информационной базой, имя пользовательского каталога, и другие. Если параметры командной строки указаны верно, файл 1CV8.EXE будет запущен в одном из режимов запуска: «1С:Предприятие» или «Конфигуратор» — в зависимости от указанных параметров.

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

Для файлового варианта определен параметр:
File — каталог информационной базы;
Locale — язык (страна), которые будут использованы при создании информационной базы. Допустимые значения такие же как у параметра <Форматная строка> метода Формат. Параметр Locale задавать не обязательно. Если не задан, то будут использованы региональные установки текущей информационной базы.

Для клиент-серверного варианта определены параметры:
Srvr — имя сервера 1С:Предприятия;
Ref — имя информационной базы на сервере;
SQLSrvr — имя SQL сервера;
SQLDB — имя SQL базы данных;
SQLUID — имя пользователя SQL;
SQLPwd — пароль пользователя SQL. Если пароль для пользователя SQL не задан, то данный параметр можно не указывать
SQLYOffs - смещение дат, используемое для хранения дат в SQL Server. Может принимать значения 0 или 2000. Данный параметр задавать не обязательно. Если не задан принимается значение 0.
Locale - язык (страна), (аналогично файловому варианту).

Для всех вариантов определены параметры:
Usr — имя пользователя;
Pwd — пароль
/AddInList - параметр, показывающий, под каким именем добавлять базу в список, если не указан, база не будет добавлена в список. Если не указано имя, используется умолчание, аналогичное интерактивному созданию информационной базы.

Одновременное использование ключей не допускается.

При наличии ссылок на несуществующие объекты:
BadRefCreate - создавать объекты
BadRefClear - очищать объекты
BadRefNone -не изменять

при частичной потере объектов:
BadDataCreate - создавать объекты
BadDataDelete - удалять объекты

Одновременное использование ключей внутри подгруппы параметров не допускается.
Если команда прошла успешно, возвращает код возврата 0, в противном случае — 1 (101, если в данных имеются ошибки).
После выполнения закрывает систему 1С:Предприятие 8.x.

Параметры командной строки пакетного режима создания файлов поставки и обновления:
/CreateDistributionFiles [-cffile<имя cf файла>] [-cfufile <имя cfu файла> [-f<имя cf файла>|-v<версия дистрибутива>]+] - Создание файлов поставки и обновления
-cffile<имя cf файла> - указание создать дистрибутив
-cfufile<имя cfu файла> - указание создать обновление
-f<имя cf файла> - дистрибутив, включаемый в обновление, задан именем
-v<версия дистрибутива>] - дистрибутив, включаемый в обновление, задан версией
Примечание: группа параметров -f<имя cf файла>|-v<версия дистрибутива> повторяется столько раз, сколько файлов дистрибутивов включается в обновление.

Параметры командной строки режима работы с хранилищем конфигурации:
/DepotF - каталог хранилища
/DepotN - имя пользователя хранилища
/DepotP - пароль пользователя хранилища
/DepotDumpCfg<имя cf файла> [-v<номер версии хранилища>] - сохранить конфигурацию из хранилища в файл (пакетный режим)
-v<номер версии хранилища>
v - номер версии, если номер версии не указан, или равен -1, будет сохранена последняя версия.
/DepotUpdateCfg [-v<номер версии хранилища>] [-revised] - Обновить конфигурацию хранилища из файла (пакетный режим)
-v<номер версии хранилища> - номер версии, если номер версии не указан, или равен -1, будет сохранена последняя версия, если конфигурация подключена к хранилищу, то параметр игнорируется
-revised - получать захваченные объекты, если потребуется. Если конфигурация не подключена к хранилищу, то параметр игнорируется.

Параметры командной строки пакетного режима регистрации 1С:Предприятия 8.x в качестве Automation сервера:
/RegServer - регистрация приложения
/UnregServer - удаление регистрации приложения
После выполнения закрывает систему 1С:Предприятие 8.x.
Если значения параметров включают пробелы (например, путь или имя файла), значения должны быть заключены в кавычки.

В данной статье мы рассмотрим параметры запуска 1C и как ими пользоваться. Рассмотрим несколько вариантов использования. По мере прочтения статьи мы нацчимся автоматизировать процессы запуска.

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

Существует 2 вида режима запуска 1С

Варианты запуска 1С с возможность автоматического выбора пользователя



При запуске 1С, должно появиться данное окно:


Данные необходимые для запуска 1С в автоматическом режиме

В случае если ваша база находится на каком либо сервере, путь необходимо прописать следующим образом:


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

Автозагрузка 1С при запуске системы

Дополнительные параметры запуска 1С

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


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

Настройка параметров запуск отладки приложения


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

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