arefaste/1C_Forums huggingface dataset:
Необходимо передать значение СтандартногоПериода на форме документа в реквизит ДатаНачало и ДатаКонец объектов документа для отображения в списке документов.
Подскажите какие методы необходимо использовать?
Конфигурация самописная, платформа 8.3, управляемые формы
---
```1c
    Объект.ДатаНачало = СтандартныйПериод.ДатаНачала;
```
---
в реквизит ДатаНачало и ДатаКонец объектов документа для отображения в списке документов.
что это значит? реквизит объекта документов? напишите понятней что хотите сделать.
---
Все верно, ДатаНачало и ДатаКонец - Реквизиты Объекта Документа, на форме можно добавить СтандартныйПериод, как значения СтандартногоПериода.ДатаНачала и СтандартногоПериода.ДатаКонец передать в реквизиты соответствующие Документа ДатаНачало и ДатаКонец
---
ЕКЛМН, а как уже пытался? Показывай.
---
В модуле объекта ПриЗаписи через ЭтотОбъект.ПолучитьФорму("ФормаДокумента"). но тут ошибка "Интерактивные операции недоступны"
В модуле формы в Процедуре НаСервере объявил переменную Реквизит = РеквизитФормыВЗначение("Объект") далее Реквизит.НужноеПолеФормы = ЗначениеЭтогоРеквизита но вот дальше как его получить в модуле объекта не соображу в Реквизитах Документа добавил Объект НужноеПолеФормы
---
то есть ты объекту метаданных никаких новых реквизитов не добавлял, но хочешь их сохранить в объекте?
---
в реквизитах Документа есть объекты ДатаНачало и ДатаКонец, на форме документа есть поле СтандартныйПериод, хочу значения СтандартныйПериод.ДатаНачала и СтандартныйПериод.ДатаКонец передать из формы в соответствующие реквизиты документа ДатаНачала и ДатаКонец
---
```1c
    Объект.ДатаНачало = СтандартныйПериод.ДатаНачала;
```
Всем, привет. Есть вопрос по изменению объекта из модуля формы. В параметрах формы хранится ссылка на бизнес-процесс, с помощью метода ПолучитьОбъект хочу заполнить реквизит бизнес-процесса но выходит ошибка при выполнении команды: Значение не является значением объектного типа (ПолучитьОбъект)
{ОбщаяФорма.ФормаДляЗадачи1.Форма(9)}:БП = БизнеcПроцесс.ПолучитьОбъект();
{ОбщаяФорма.ФормаДляЗадачи1.Форма(4)}:ИзменитьБизнесПроцесс();

Вот код, что находится в модуле формы:
&НаКлиенте
Процедура Записать(Команда)
  ИзменитьБизнесПроцесс();
КонецПроцедуры
&НаСервере
Процедура ИзменитьБизнесПроцесс()
 БП = БизнеcПроцесс.ПолучитьОбъект();
 БП.Контрагент = Контрагент;
 БП.ТочкаМаршрута = БизнесПроцессы.БизнесПроцессЗакупка.ТочкиМаршрута.ОформлениеПоступленияТоваров;
 БП.Записать();
КонецПроцедуры
&НаСервере
Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)
  Реквизит1 = Параметры.БП;
  БизнесПроцесс = Параметры.БП;;
КонецПроцедуры
---
Так сделайте его реквизитом формы, либо объект получайте из Реквизит1.
---
Переменная БизнесПроцесс очищается после ухода с сервера. Используйте реквизит формы.
---
Реквизит формы "БизнесПроцесс" какой тип имеет?
---
БизнесПроцессСсылка
---
извиняюсь перепутал, "БизнесПроцесс" это переменная, объявил ее перед текстом программы, а реквизит "Реквизит1' имеет тип данных БизнесПроцессСсылка
---
Так сделайте его реквизитом формы, либо объект получайте из Реквизит1.
---
Главное, не перепутать его с Реквизит22...
---
Спасибо, так работатет
---
Переменная БизнесПроцесс очищается после ухода с сервера. Используйте реквизит формы.
---
Спасибо, не знал этого, использовал реквизит, в котором записан бп и все заработало
Возможно ли переопределить процедуру в расширении с тегом ИзменениеИКонтроль, и изменить там состав параметров (добавить параметр)?
---
Есть. Можно один из параметров заменить на тип-коллекцию, например на структуру или соответствие. Если параметры и так сложно-составные, можно добавлять в них свои ключи или строки (в случае с массивом, например). Конечно это все индивидуально и зависит от специфики задачи.
---
На сколько мне известно, в расширении нельзя изменять количество параметров заимствованных методов.
---
Похоже на то. Как раз второй день бодаюсь с необходимостью добавить параметр в функцию общего модуля, находящуюся в расширении.
---
Что мешает проверить?
---
думал, может какой-то способ обхода есть
---
Есть. Можно один из параметров заменить на тип-коллекцию, например на структуру или соответствие. Если параметры и так сложно-составные, можно добавлять в них свои ключи или строки (в случае с массивом, например). Конечно это все индивидуально и зависит от специфики задачи.
---
Мне нужно было как-то добавить параметр в функцию,у которой не было совсем параметров, правда вызывать с этим параметром нужно было не со всех мест, а только с некоторых которые были в расширении.
Я добавил в расширении вместосконтролем и ничего там не менял, а рядом создал нужную мне фукнцию с новым похожим названием и нужным мне параметром и там уже реализовал нужный мне функционал, а потом вызвал, где была необходимость, новую функцию. А из переопределенной функции получился своего рода семафор, расширение не подключалось при изменении исходной конфигурации, что давало возможность оперативно изменть мою фукнкцию в соотвествии с ихсодной конфигурацией.
Хотя конечно это никакое ни переопределение и ни расширение.
При обновлении в предприятии выходит ошибка:

Найдена циклическая ссылка
Имя модуля:ОбщийМодуль.УправлениеДоступомСлужебный.Модуль
Имя процедуры:ДобавитьВложение
Имя переменной:
Вложения
Участники цикла:
Вложения[0].Строки[0], Вложения[0].Строки[0].Строки, Вложения[0].Строки[0].Строки[0], Вложения[0].Строки[0]

Обновление на релиз 2.0.86.37 от 21.09.22. Платформа 8.3.17.1989.
Как устранить ошибку? Тестирование и исправление уже запускалось. Обновление на релиз пониже тоже выдает такую ошибку.
---
Такое включено у вас?
---
Такое включено у вас?
---
Да. Отключение решит мою проблему?
---
Может да, а может и нет. У вас бекап есть?
---
Ага. Я попробую так сделать. Чуть позже отпишу результат.
---
Может производительность снизится. Можно после обновления обратно включить. Если юзеры будут жаловаться, то снова отключить. Но в идеале, ждать нового релиза.
---
Может производительность снизится.
Из-за отключенной проверки? Так как бы наоборот, это проверка потребляет ресурсы и снижает производительность.
---
Имею ввиду, что если запустят пользователе механизм с этим циклом, тогда будут ресурсы тратиться. А если проверка включена, ошибку получат и для других пользователей ресурсы будут доступны.
---
Да.
Циклические ссылки это не критичная проблема, они негативно влияют память - не освобождается.
Ошибка у вас только из-за включенной проверки.
---
Всем спасибо.
Подскажите как в СКД написать ПОДОБНО, когда у меня параметр?

Пример ниже, не ищет:

```1c
    ГДЕ Контрагент.Наименование ПОДОБНО &Наименование + "%"
```
---
Есть один нюанс: У параметра тип строка неограниченная, надо заменить на ограниченную. Ну и условия я в фигурные скобки всегда ставлю, что бы не ругался если параметр не заполнен.

```1c
    {ГДЕ (Контрагенты.Наименование ПОДОБНО &Наименование + "%")}
```
---
В параметре "Наименование" пользователь сможет указывать маску. Или можно сделать автоматическое дополнение параметра спецсимволом % - на вкладке параметры написать для этого параметра выражение "%" + &Наименование + "%"

В запросе пишем ВашаТаблица.ВашРеквизит ПОДОБНО (&Наименование)

А в выражение прописываем
---
Сделайте 2 параметра. В выражение второго затолкайте "&Наименование + "%"" или что вам там надо и подставьте в запрос. Соответственно, параметр с выражением пользователю не показывать.
---
У меня нашел
---
У меня на 8.3.18 ошибку выкинул
---
Есть один нюанс: У параметра тип строка неограниченная, надо заменить на ограниченную. Ну и условия я в фигурные скобки всегда ставлю, что бы не ругался если параметр не заполнен.

```1c
    {ГДЕ (Контрагенты.Наименование ПОДОБНО &Наименование + "%")}
```
---
Век живи - век учись)) Да, так без кульбитов со вторым параметром работает.
---
В параметре "Наименование" пользователь сможет указывать маску. Или можно сделать автоматическое дополнение параметра спецсимволом % - на вкладке параметры написать для этого параметра выражение "%" + &Наименование + "%"

В запросе пишем ВашаТаблица.ВашРеквизит ПОДОБНО (&Наименование)

А в выражение прописываем
---
а что в Наименование передаете?
вообще должен искать,
только в вашем случае поиск будет с начала

а так везде
ГДЕ Контрагент.Наименование ПОДОБНО "%"+ &Наименование + "%"
---
Строка
Всем привет

подскажите как убрать у определенного пользователя видимость на вкладку "Заявки", но доступ к ней должен быть, просто пользователь не должен видеть ее в этой подсистеме
---
Всем спасибо, сделал сам, через командный интерфейс
---
Выдать пользователю роль, в которой не будет доступа к этому документу
---
Мне доступ нужен, просто ее отражать не нужно в подсистеме
---
Тогда просто в конфигураторе убрать его из подсистемы)
---
Админ должен ее видеть, а рядовой пользователь - нет =/
---
Настроить доступ на подсистему, в которой будет этот объект.
Но нужно учесть, что команду "Показать в списке" никто не отменял
---
не совсем понял
---
Вывести документ в отдельную подсистему (в рамках даже в действующем варианте "Документ")
Дать на новую подстистему свою роль (убрать из базовых или какие есть у всех пользователей).
Выдать роль требуемым людям.

Ну или просто кодом: при открытии формы списка, если нет нужной роли выдавать отказ = ИСТИНА;
---
Настройку навигации не предлагать? Убрать через неё можно, но опытный пользователь её себе сам и вернуть сможет...
---
давайте хотя бы ее
---
Я как-то убрал видимость задачи, но не понимаю как. И пользователь не может ее включить, при этом доступ у него к ней есть =/
---
На шестеренку нажимаешь, там настройка действий и ненужный документ удаляешь из правой части
---
Всем спасибо, сделал сам, через командный интерфейс
Делаю так в общей команде.
ЗначениеОтбора = Новый Структура("Контрагент", ЗапроситьКонтрагнета(ПараметрКоманды));
 ПараметрыВыбора = Новый Структура("Отбор", ЗначениеОтбора);

ОткрытьФорму("Документ.хх.ФормаСписка",
        ПараметрыВыбора,
 ПараметрыВыполненияКоманды.Источник,
 ПараметрыВыполненияКоманды.Уникальность,
 ПараметрыВыполненияКоманды.Окно);

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

Как можно открыть форму не учитывая отбор пользователя и не трогая процедуру ПриСозданииНаСервере формы?
---
Как вариант,
```1c
    ПараметрыВыбора.Вставить("КлючПользовательскихНастроек", Новый УникальныйИдентификатор);
```
---
Не обязательно использовать ПолучитьФорму(), насколько помню, 1с не рекомендует это использовать. ОткрытьФорму() тоже возвращает ссылку на форму, через которую можно точно так же всё запрограммировать. Например:

```1c
    Форма = ОткрытьФорму(ИмяФормы);
    ЭлементОтбора = Форма.Список.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
    ЭлементОтбора.ВидСравнения = ВидСравненияКомпоновкиДанных.ВСписке;
    ЭлементОтбора.Использование = Истина;
    ЭлементОтбора.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("Ссылка");
    ЭлементОтбора.ПравоеЗначение = МассивСсылок;
```
---
Здесь надо курить в сторону пользовательских настроек. Там очищать отборы.
Проще пройти через получить форму и дальше смотреть в отладчике что есть у списка.
---
Не обязательно использовать ПолучитьФорму(), насколько помню, 1с не рекомендует это использовать. ОткрытьФорму() тоже возвращает ссылку на форму, через которую можно точно так же всё запрограммировать. Например:

```1c
    Форма = ОткрытьФорму(ИмяФормы);
    ЭлементОтбора = Форма.Список.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
    ЭлементОтбора.ВидСравнения = ВидСравненияКомпоновкиДанных.ВСписке;
    ЭлементОтбора.Использование = Истина;
    ЭлементОтбора.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("Ссылка");
    ЭлементОтбора.ПравоеЗначение = МассивСсылок;
```
---
ЭлементОтбора = Форма.Список.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
ЭлементОтбора.ВидСравнения = ВидСравненияКомпоновкиДанных.ВСписке;
ЭлементОтбора.Использование = Истина;
ЭлементОтбора.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("Ссылка");
ЭлементОтбора.ПравоеЗначение = МассивСсылок;

тоже вариант, но настройки пользователя отключать придется, иначе ошибку выдает - "Невозможно применить фиксированные настройки. Пересекаются элементы отбора."
---
Как вариант,
```1c
    ПараметрыВыбора.Вставить("КлючПользовательскихНастроек", Новый УникальныйИдентификатор);
```
---
ПараметрыВыбора.Вставить("КлючПользовательскихНастроек", Новый УникальныйИдентификатор);
Это решение, но оно сбрасывает отборы и пользователю вновь приходиться настраивать форму. В моем случае не подходит, но если не будет других предложений отмечу это как решение. Мне пришлось создать общую форму, просто скопировал и переименовал.
---
Если пользовательские отборы нужно убрать только частично, то ответ в (1).
Добрый день. Обычное приложение. Добавил свой общий модуль, с экспортной функцией. При обращении к модулю из обработки или из других модулей конфигурации файлы находит, а при обращении из веб сервиса количество искомых файлов = 0. Подскажите, пожалуйста, что неправильно настроил?
```1c
    Функция ПолучитьФайлыИзПапки() Экспорт
    ПутьПоиска = "D:\ТестоваяПапка";
    ИскомыеФайлы = НайтиФайлы(ПутьПоиска, "*.dbf*");
    Возврат ИскомыеФайлы.Количество();
    КонецФункции
```
---
То есть кроме как отправлять на вебсервис имя файла с клиента вариантов нет
Смотря для чего. Если для работы с файлом, то отправлять имя файла бессмысленно. Он все равно не будет доступен.
Как вариант, размещать файлы на сетевом ресурсе доступном и с клиента и со стороны сервера.
---
. Если для работы с файлом, то отправлять имя файла бессмысленно. Он все равно не будет доступен. Точно, вы правы. Что то я об этом не подумал. Придется файл обрабатывать в одной базе, а в другую отправлять таблицу значений. Спасибо за наводку!
---
ПутьПоиска = "D:\ТестоваяПапка";
Этот путь на клиенте. А web-сервис выполняется на сервере. Соответственно ищет файлы на сервере.
---
понял. То есть кроме как отправлять на вебсервис имя файла с клиента вариантов нет, или можно как то по другому сделать?
---
То есть кроме как отправлять на вебсервис имя файла с клиента вариантов нет
Смотря для чего. Если для работы с файлом, то отправлять имя файла бессмысленно. Он все равно не будет доступен.
Как вариант, размещать файлы на сетевом ресурсе доступном и с клиента и со стороны сервера.
---
. Если для работы с файлом, то отправлять имя файла бессмысленно. Он все равно не будет доступен. Точно, вы правы. Что то я об этом не подумал. Придется файл обрабатывать в одной базе, а в другую отправлять таблицу значений. Спасибо за наводку!
---
"*.dbf*" Мне кажется лишняя звездочка в конце.
---
возможно и так, но файлы ищет. Если б не искало - другой вопрос.
---
Веб сервер и 1с сервер на одной машине? Скорей всего проблема в правах, попробуйте сделать сетевую папку и дать всем права.
---
нет, на разных. Спасибо, попробую.
Здравствуйте, после объединения БСП со своей конфигураций, произвел настройки согласно инструкции. Вроде бы все ок, нопри попытке создать пользователя или же воспользоваться другими объектами подсистемы администрирования выпадает ошибка:

```1c
    ОбщийМодуль.ОбщегоНазначенияКлиент.Модуль

    Переменная не определена (ПараметрыПриложения)
```

Подскажите, что делать, если кто сталкивался?
---
ПараметрыПриложения это глобальная переменная, объявляемая в модуле приложения.
---
ПараметрыПриложения это глобальная переменная, объявляемая в модуле приложения.
---
Спасибо, почему то не был заполнен. Скопировал данные и все заработало.
Добрый день, пытаюсь настроить сканер штрихкода в БП 3.0( эмуляция COM) штатными средствами, возникло два вопроса:
- При тестировании сканера в подключаемом оборудовании вместо того, чтобы вывести значение сканируемого ШК одной строкой система пишет с переносом строки по одному символу
COM11:4
COM11:6
COM11:0
... и т.д.
-при обработке события в типовых формах документов система не перехватывает событие в процедурах ОбработкаОповещения

Драйвер используется 1С:Сканеры штрихкода (NativeApi)
настройки на скриншоте.

Подозреваю, что что-то не учел. Прошу подсказать.
---
Проблема решена, совместимость старой компоненты Native API с текущим сканером .
---
Проблема решена, совместимость старой компоненты Native API с текущим сканером .
Здравствуйте. Я уже немного "плыву". Имеем Комплексную Автоматизацию. Разбираюсь как работать программно с доп реквизитами. Как передавать значения, понял. Но не могу понять, почему значение на вкладке "Карточка товара" есть. А при переходе во вкладка "Реквизиты", там поле пустое! При этом если открыть список, то там моего значения, нет. При этом консоль так же выводит, что доп реквизит заполнен. Что я делаю не так!?

Код, которым я заполняю значение:

```1c
    МассивРеквизитов = Новый Массив;
    МассивРеквизитов.Добавить(Новый Структура("Свойство, Значение", ПланыВидовХарактеристик.ДополнительныеРеквизитыИСведения.НайтиПоНаименованию("Производитель товара"), "Тестовый производитель"));
    УправлениеСвойствами.ЗаписатьСвойстваУОбъекта(СсылкаНоменклатура, МассивРеквизитов);
```
---
```1c
    Справочники.ЗначенияСвойствОбъектов.СоздатьЭлемент();
```
---
Пончик уронил
---
Интересный пончик :)
Не смотрите на поле. Их там много. Это всё информация для сайта. Я с любым полем из доп реквизитов проворачиваю такое. И вот почему то булево (БИО, Диетический, без сахара и т.д.) там они отображаются. А вот там где поле выбора, нет =(
---
Так вы строку пихаете в ссылочное поле.
---
ОК. Я тоже это предполагал. Подскажите, как мне создать новый элемент в этом доп реквизите и получить его ссылку? На все мои попытки поиска, гугл упорно выдает, как программно создать и добавить НОВЫЙ доп реквизит с нуля на форму. Я не мог найти как добавить элемент в уже созданном доп реквизите.
---
Тип какой у этого реквизита?
---
Дополнительно значение ...
---
```1c
    Справочники.ЗначенияСвойствОбъектов.СоздатьЭлемент();
```
---
Да, я уже понял. Что все элементы для такого типа, лежат в отдельном справочнике. И в этом же справочнике надо их создавать\искать, а уже оттуда передавать ссылки в доп реквизит. Спасибо тебе большое. У меня уже всё, глаз замылился! :)
Добрый день всем! Обращаюсь к Вам профессионалам) есть доработка в 1с УТ 10.3 чтобы на каждую характеристику могли фото добавлять.
Проблема возникла при добавлении характеристик копированием. Код ЭлементыФормы.Характеристики.ТекущиеДАнные выбирает на все добавленные копированием характеристики оригинал с которого копировалось(((. Меняешь в одном характеристике фото и меняется во всех.
---
Перевыбери характеристику и присвой новую картинку
---
ТекущиеДанные - это текущая (выделенная) строка таблицы.
---
Вот, ты нажимаешь на изображение выделенной строки а он открывает изображение другой характеристики. И так только с теми которые добавлены копированием.
---
Продолжайте наблюдение
---
???
---
ТД = ЭлементыФормы.Характеристики.ТекущиеДанные;

 Если ТД <> Неопределено Тогда

  РаботаСФайлами.ОткрытьФормуИзображения(ЭтаФорма, ТД.ОсновноеИзображение, ТД.Ссылка);

 КонецЕсли;
---
Значит, при копировании, оставили ссылку на объект от старого элемента. И они теперь все принадлежат одному.
---
как это можно проверить ?
---
Первые две копированные, а серый где написано добавлен без копирования.
---
у тя даже на картинках видно, что характеристика одна и та же для первых двух, только наименование разное в списке
---
Если там поменять характеристику меняются на всех
---
Когда открываешь саму характеристику, то там все как надо. В справочниках тоже смотрел. К этой номенклатуре привязаны все эти цвета.
---
Перевыбери характеристику и присвой новую картинку
---
Делал уже. Не помогает.
---
Удалил характеристику а потом по новой добавил. И все исправилось! Просто выбрать не удаляя изменений не давало.
---
Разве при копировании ссылка должна оставаться одинаковой ?
---
Тебе говорят про ссылку на фотографию, а непр ссылку самой характеристики.
---
Решил только что.
---
Как всегда невыполнимые проблемы у меня случаются(
В модуле формы документа документ можно провести вот так:

\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\­\\\\\\\\\\\\\\\

```1c
    ПараметрыЗаписи = Новый Структура();
    ПараметрыЗаписи.Вставить("РежимЗаписи", РежимЗаписиДокумента.Проведение);
    Записать(ПараметрыЗаписи);
```

В процедуру в общем модуле передаю параметр "Объект":

\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\­\\\\\\\\\\\\\\\

```1c
    Процедура ЗаполнитьТаблицуЗатрат(Объект, АдресФайла) Экспорт
```

Для записи и проведения документа пишу:

\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\­\\\\\\\\\\\\\\\

```1c
    Объект.Записать(РежимЗаписиДокумента.Проведение);
```

\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\­\\\\\\\\\\\\\\\

Но не находит метод Записать()
Как записать объект, который передается в параметре, в общем модуле?
---
В процедуру в общем модуле передаю параметр "Объект":
Объект в модуле формы это основной реквизит формы. У него нет метода Записать.
Нужно передавать ЭтотОбъект, или ЭтаФорма.
---
никто не запрещает передавать и основной реквизит Объект и ЭтотОбъект. И использовать соответствующий в нужных местах кода.
---
Но не находит метод Записать()а точно объект? Может быть ссылка, структура?
---
Ой, извините за дезинформацию, Тип: ДанныеФормыСтруктура
---
в (3) ответили, как правильно сделать.
---
В процедуру в общем модуле передаю параметр "Объект":
Объект в модуле формы это основной реквизит формы. У него нет метода Записать.
Нужно передавать ЭтотОбъект, или ЭтаФорма.
---
Сейчас попробую
---
Спасибо
---
Но теперь не работают такие строки кода, как:

ТЗ = Объект.Затраты.Выгрузить();

Ошибка: Поле объекта не обнаружено (Затраты)

Затраты - Табличная часть

Подскажите, как с этим быть?
---
никто не запрещает передавать и основной реквизит Объект и ЭтотОбъект. И использовать соответствующий в нужных местах кода.
---
Понял,спасибо
---
Если это на форме, то надо использовать РеквизитФОрмыВЗначение("Объект").Затраты.Выгрузить(), потому как Объект.Затраты.Выгрузить() выгружает коллекцию формы документа.
---
Это не на форме, в общем модуле
---
Вам точно надо проведение в модуле формы?
Проведение правильнее делать в модуле объекта, тогда и Объект сможете передать как параметр
---
Нет, я просто для примера описал метод Записать() в модуле формы