как программно выполнить команду управляемой формы 1с 83

Программирование в 1С для всех

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

В этой статье я разберу оба этих момента.

как программно выполнить команду управляемой формы 1с 83. Смотреть фото как программно выполнить команду управляемой формы 1с 83. Смотреть картинку как программно выполнить команду управляемой формы 1с 83. Картинка про как программно выполнить команду управляемой формы 1с 83. Фото как программно выполнить команду управляемой формы 1с 83

Открытие управляемой формы

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

как программно выполнить команду управляемой формы 1с 83. Смотреть фото как программно выполнить команду управляемой формы 1с 83. Смотреть картинку как программно выполнить команду управляемой формы 1с 83. Картинка про как программно выполнить команду управляемой формы 1с 83. Фото как программно выполнить команду управляемой формы 1с 83

В этой тренировке в форме Данные будем вводить некоторые числовые значения, которые потом используем в форме Расчёт. Сделаем простой пример: решим линейное уравнение тип ax + b = c. Для этого на форме Данные зададим величины a,b и с соответственно, а при открытии формы Расчёт вычислим значение x. Пример больше учебный, нужный для того, чтобы показать, как передавать данные с одной формы на другую. a, b и с – это реквизиты управляемой формы Данные с типом число (10,2). Создадим эти реквизиты и перетащим их на форму.

как программно выполнить команду управляемой формы 1с 83. Смотреть фото как программно выполнить команду управляемой формы 1с 83. Смотреть картинку как программно выполнить команду управляемой формы 1с 83. Картинка про как программно выполнить команду управляемой формы 1с 83. Фото как программно выполнить команду управляемой формы 1с 83

Следующим шагом создадим команду на форме Данные, при выполнении которой откроется форма Расчёт, где мы увидим решение линейного уравнения. Назовем команду«Решить уравнение» и поместим её на форму в виде простой кнопки.

как программно выполнить команду управляемой формы 1с 83. Смотреть фото как программно выполнить команду управляемой формы 1с 83. Смотреть картинку как программно выполнить команду управляемой формы 1с 83. Картинка про как программно выполнить команду управляемой формы 1с 83. Фото как программно выполнить команду управляемой формы 1с 83

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

Подробно о клиентском и серверном контексте управляемой формы читайте в статье:

Поэтому создадим обработчик команды «Решить уравнение» на клиенте.

как программно выполнить команду управляемой формы 1с 83. Смотреть фото как программно выполнить команду управляемой формы 1с 83. Смотреть картинку как программно выполнить команду управляемой формы 1с 83. Картинка про как программно выполнить команду управляемой формы 1с 83. Фото как программно выполнить команду управляемой формы 1с 83

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

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

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

как программно выполнить команду управляемой формы 1с 83. Смотреть фото как программно выполнить команду управляемой формы 1с 83. Смотреть картинку как программно выполнить команду управляемой формы 1с 83. Картинка про как программно выполнить команду управляемой формы 1с 83. Фото как программно выполнить команду управляемой формы 1с 83

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

как программно выполнить команду управляемой формы 1с 83. Смотреть фото как программно выполнить команду управляемой формы 1с 83. Смотреть картинку как программно выполнить команду управляемой формы 1с 83. Картинка про как программно выполнить команду управляемой формы 1с 83. Фото как программно выполнить команду управляемой формы 1с 83

В нашем случае мы выбираем форму Расчет обработки.

как программно выполнить команду управляемой формы 1с 83. Смотреть фото как программно выполнить команду управляемой формы 1с 83. Смотреть картинку как программно выполнить команду управляемой формы 1с 83. Картинка про как программно выполнить команду управляемой формы 1с 83. Фото как программно выполнить команду управляемой формы 1с 83

Подготовим форму Расчёт – создадим у этой формы реквизит x, который поместим на форму.

как программно выполнить команду управляемой формы 1с 83. Смотреть фото как программно выполнить команду управляемой формы 1с 83. Смотреть картинку как программно выполнить команду управляемой формы 1с 83. Картинка про как программно выполнить команду управляемой формы 1с 83. Фото как программно выполнить команду управляемой формы 1с 83

А так же установим у формы в свойство Режим открытия окна значение Блокировать окно владельца. Тогда форма Расчёт будет открываться в отдельном окне.

как программно выполнить команду управляемой формы 1с 83. Смотреть фото как программно выполнить команду управляемой формы 1с 83. Смотреть картинку как программно выполнить команду управляемой формы 1с 83. Картинка про как программно выполнить команду управляемой формы 1с 83. Фото как программно выполнить команду управляемой формы 1с 83

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

как программно выполнить команду управляемой формы 1с 83. Смотреть фото как программно выполнить команду управляемой формы 1с 83. Смотреть картинку как программно выполнить команду управляемой формы 1с 83. Картинка про как программно выполнить команду управляемой формы 1с 83. Фото как программно выполнить команду управляемой формы 1с 83

И первое что нам бросается в глаза, это заголовок в названии управляемой формы. Переименуем. Для этого в палитре свойств формы нужно снять флаг у свойства Автозаголовок и написать какой-то заголовок в свойстве Заголовок.

как программно выполнить команду управляемой формы 1с 83. Смотреть фото как программно выполнить команду управляемой формы 1с 83. Смотреть картинку как программно выполнить команду управляемой формы 1с 83. Картинка про как программно выполнить команду управляемой формы 1с 83. Фото как программно выполнить команду управляемой формы 1с 83

как программно выполнить команду управляемой формы 1с 83. Смотреть фото как программно выполнить команду управляемой формы 1с 83. Смотреть картинку как программно выполнить команду управляемой формы 1с 83. Картинка про как программно выполнить команду управляемой формы 1с 83. Фото как программно выполнить команду управляемой формы 1с 83

Параметры управляемой формы

С открытием форм все просто и понятно. Но как передать данные с одной формы на другую? Для этого у управляемой формы 1С есть закладка Параметры. В этой закладке перечисляются данные, которые будут использоваться при создании управляемой формы на сервере.

Создадим у управляемой формы Расчёт параметры a,b,c.

как программно выполнить команду управляемой формы 1с 83. Смотреть фото как программно выполнить команду управляемой формы 1с 83. Смотреть картинку как программно выполнить команду управляемой формы 1с 83. Картинка про как программно выполнить команду управляемой формы 1с 83. Фото как программно выполнить команду управляемой формы 1с 83

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

Если Вы хотите, чтобы параметр был доступен все время существования формы, то у него необходимо установить свойство Ключевой параметр.

как программно выполнить команду управляемой формы 1с 83. Смотреть фото как программно выполнить команду управляемой формы 1с 83. Смотреть картинку как программно выполнить команду управляемой формы 1с 83. Картинка про как программно выполнить команду управляемой формы 1с 83. Фото как программно выполнить команду управляемой формы 1с 83

У формы Расчёт создадим событие формы ПриСозданиеНаСервере. Для этого в палитре свойств формы нужно найти это событие и кликнуть на кнопку «Лупа».

как программно выполнить команду управляемой формы 1с 83. Смотреть фото как программно выполнить команду управляемой формы 1с 83. Смотреть картинку как программно выполнить команду управляемой формы 1с 83. Картинка про как программно выполнить команду управляемой формы 1с 83. Фото как программно выполнить команду управляемой формы 1с 83

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

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

Посмотрим, как будет работать этот код.

как программно выполнить команду управляемой формы 1с 83. Смотреть фото как программно выполнить команду управляемой формы 1с 83. Смотреть картинку как программно выполнить команду управляемой формы 1с 83. Картинка про как программно выполнить команду управляемой формы 1с 83. Фото как программно выполнить команду управляемой формы 1с 83

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

как программно выполнить команду управляемой формы 1с 83. Смотреть фото как программно выполнить команду управляемой формы 1с 83. Смотреть картинку как программно выполнить команду управляемой формы 1с 83. Картинка про как программно выполнить команду управляемой формы 1с 83. Фото как программно выполнить команду управляемой формы 1с 83

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

как программно выполнить команду управляемой формы 1с 83. Смотреть фото как программно выполнить команду управляемой формы 1с 83. Смотреть картинку как программно выполнить команду управляемой формы 1с 83. Картинка про как программно выполнить команду управляемой формы 1с 83. Фото как программно выполнить команду управляемой формы 1с 83

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

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

Изучайте основы конфигурирования в 1С и учитесь программировать в «1С: Предприятии» с помощью моих книг: «Программировать в 1С за 11 шагов» и «Основы разработки в 1С: Такси»

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


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

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

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

Вступайте в мои группы в соцсетях, и будьте в курсе всех новостей

Источник

Программирование в 1С для всех

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

Прежде чем мы начнем разбирать вопросы программной работы с документами в 1С 8.3, хочу обратить Ваше внимание, что на управляемой форме в режиме тонкого клиента мы можем программно работать (создавать, записывать и проводить) с документами только в серверном контексте. То есть, ваша процедура или функция должна выполняться под директивами &НаСервере или &НаСервереБезКонтекста.

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

Создать документ 1С программно

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

как программно выполнить команду управляемой формы 1с 83. Смотреть фото как программно выполнить команду управляемой формы 1с 83. Смотреть картинку как программно выполнить команду управляемой формы 1с 83. Картинка про как программно выполнить команду управляемой формы 1с 83. Фото как программно выполнить команду управляемой формы 1с 83

как программно выполнить команду управляемой формы 1с 83. Смотреть фото как программно выполнить команду управляемой формы 1с 83. Смотреть картинку как программно выполнить команду управляемой формы 1с 83. Картинка про как программно выполнить команду управляемой формы 1с 83. Фото как программно выполнить команду управляемой формы 1с 83

Для этой команды, я сделаю обработчики на клиенте и на сервере.

как программно выполнить команду управляемой формы 1с 83. Смотреть фото как программно выполнить команду управляемой формы 1с 83. Смотреть картинку как программно выполнить команду управляемой формы 1с 83. Картинка про как программно выполнить команду управляемой формы 1с 83. Фото как программно выполнить команду управляемой формы 1с 83

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

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

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

Номер я присваивать не буду, потому что у объекта моего документа включено свойство Автонумерация.

как программно выполнить команду управляемой формы 1с 83. Смотреть фото как программно выполнить команду управляемой формы 1с 83. Смотреть картинку как программно выполнить команду управляемой формы 1с 83. Картинка про как программно выполнить команду управляемой формы 1с 83. Фото как программно выполнить команду управляемой формы 1с 83

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

Записать документ 1С программно

Для того, чтобы документ 1С появился в базе, его необходимо записать. Делается это при помощи метода документа-объекта Записать. Этот метод позволяет и записать, и провести документ. Он имеет два параметра, которые я разберу ниже. Но, метод Записать также можно использовать и без параметров, тогда он будет просто записывать документ. Что мы и сделаем.

Все теперь документ появится в базе.

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

как программно выполнить команду управляемой формы 1с 83. Смотреть фото как программно выполнить команду управляемой формы 1с 83. Смотреть картинку как программно выполнить команду управляемой формы 1с 83. Картинка про как программно выполнить команду управляемой формы 1с 83. Фото как программно выполнить команду управляемой формы 1с 83

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

Заполнить документ 1С программно

У нашего документа два реквизита «шапки» – Склад и Комментарий. Создадим на форме обработки реквизит управляемой формы Склад с соответствующим типом, для последующей записи его в шапку документа, а реквизит комментарий заполним в ручную.

как программно выполнить команду управляемой формы 1с 83. Смотреть фото как программно выполнить команду управляемой формы 1с 83. Смотреть картинку как программно выполнить команду управляемой формы 1с 83. Картинка про как программно выполнить команду управляемой формы 1с 83. Фото как программно выполнить команду управляемой формы 1с 83

Присвоим реквизитам созданного объекта-документа нужные значения, просто обратившись через точку к этим реквизитам.

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

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

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

Всё! Мы можем смело создать документ, который будет заполнен.

как программно выполнить команду управляемой формы 1с 83. Смотреть фото как программно выполнить команду управляемой формы 1с 83. Смотреть картинку как программно выполнить команду управляемой формы 1с 83. Картинка про как программно выполнить команду управляемой формы 1с 83. Фото как программно выполнить команду управляемой формы 1с 83

как программно выполнить команду управляемой формы 1с 83. Смотреть фото как программно выполнить команду управляемой формы 1с 83. Смотреть картинку как программно выполнить команду управляемой формы 1с 83. Картинка про как программно выполнить команду управляемой формы 1с 83. Фото как программно выполнить команду управляемой формы 1с 83

Провести документ 1С программно

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

Записать( , )

Оба параметра это системные перечисления. Первый параметр это перечисление РежимЗаписиДокумента, которое может принимать следующие значения:

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

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

Т.е. мы можем провести документ как в оперативном режиме, так и в неоперативном. Если этот параметр не указан, то документ проводится в неоперативном режиме.

Изменим запись нашего документа: пусть он проводится в оперативном режиме.

Теперь документ будет сразу проведен при создании.

Изменить документ 1С программно

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

как программно выполнить команду управляемой формы 1с 83. Смотреть фото как программно выполнить команду управляемой формы 1с 83. Смотреть картинку как программно выполнить команду управляемой формы 1с 83. Картинка про как программно выполнить команду управляемой формы 1с 83. Фото как программно выполнить команду управляемой формы 1с 83

Как и в прошлый раз, я создам обработчик команды на сервере и на клиенте. И в серверном обработчике напишу код получения объекта из ссылки документа.

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

Изменим склад и проведем документ. В этот раз проведем в неоперативном режиме.

Открыть документ 1С программно

Научимся открывать документ 1С программно. Для этого мы доработаем предыдущую обработку: после изменения документа откроем основную форму этого объекта для просмотра и возможного редактирования. Для открытия формы документа, мы будем использовать метод ОткрытьФорму, в котором будем использовать параметр Ключ, где укажем ссылку на открываемый документ.

Если мы сейчас выполним этот код, то откроется форма документа, с уже измененным реквизитом Склад.

как программно выполнить команду управляемой формы 1с 83. Смотреть фото как программно выполнить команду управляемой формы 1с 83. Смотреть картинку как программно выполнить команду управляемой формы 1с 83. Картинка про как программно выполнить команду управляемой формы 1с 83. Фото как программно выполнить команду управляемой формы 1с 83

Более подробно и основательно разработка в 1С дается в моей книге: «Программировать в 1С за 11 шагов»

как программно выполнить команду управляемой формы 1с 83. Смотреть фото как программно выполнить команду управляемой формы 1с 83. Смотреть картинку как программно выполнить команду управляемой формы 1с 83. Картинка про как программно выполнить команду управляемой формы 1с 83. Фото как программно выполнить команду управляемой формы 1с 83Изучайте программирование в 1С в месте с моей книги «Программировать в 1С за 11 шагов»

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

как программно выполнить команду управляемой формы 1с 83. Смотреть фото как программно выполнить команду управляемой формы 1с 83. Смотреть картинку как программно выполнить команду управляемой формы 1с 83. Картинка про как программно выполнить команду управляемой формы 1с 83. Фото как программно выполнить команду управляемой формы 1с 83

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

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

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

6 thoughts on “ Программная работа с документами в 1С ”

Одинаковые имена для реквизитов и элементов — это норма. Любую типовую открой и посмотри, как там сделано.
И о какой ошибке округления идет речь? Ты что здесь округлять собрался? В момент записи значения в поле Сумма округление производится автоматически в соответствие с заданной точностью в Конфигураторе.

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

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

Падежи можно, конечно, и пропустить. Хотя, лучше все эти склонения и жиши перепроверить. Читающие оценят. Однако, ошибка в округлении — выдаёт безалаберность в прикладной области. Это важно. Автору — радуйтесь поддержке, но обращайте особое внимание на критику, она делает Вас лучше.

Ты где здесь ошибку в округлении нашел?
Ну и запятые проверь у себя в сообщении.

Источник

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

Введение в управляемая форма 1С реквизиты элементы команды

Рекомендуется модифицировать управляемые формы типового решения 1С программно для удобного будущего обновления и исключения конфликтов, а также для удобной работы с изменениями и надежности при использовании механизма расширений.
В некоторых типовых конфигурациях 1С (ЕРП 2, УТ 11) используется механизм упрощенного изменения конфигурации. Статьи о типовом механизме можно найти в разделе полезных ссылок. Данный механизм используется в БСП, и его необходимо знать при модификации типовых конфигураций.
При добавлении элементов на форму программно можно отредактировать практически любое свойство из панель свойств, которое можно установить вручную в конфигураторе.
Также все описанные в текущем разделе процедуры и функции находятся во внешней обработке УпрФормы.

Примеры работы с объектом «ДанныеФормыКоллекция» и созданием дин. списка и таблицы значений программно можно будет посмотреть в части 2.

Для запуска обработки в режиме предприятия необходимо наличие объектов «Справочники.Номенклатура», подчиненный ему «Справочники.ХарактеристикиНоменклатуры» и «РегистрыСведений.ЦеныНоменклатуры”.

Программное переопределение обработчиков событий формы и элементов формы

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

В теле модуля формы:

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

Аналогично можно поступить и с обработчиками элементов формы:

Программное создание групп формы.

Доступные виды групп формы:

как программно выполнить команду управляемой формы 1с 83. Смотреть фото как программно выполнить команду управляемой формы 1с 83. Смотреть картинку как программно выполнить команду управляемой формы 1с 83. Картинка про как программно выполнить команду управляемой формы 1с 83. Фото как программно выполнить команду управляемой формы 1с 83

Программное добавление команды на форму.

Удалить команду можно при помощи метода коллекции формы команд: Команды.Удалить( ). Удалять можно только те команды, которые были созданы программно.

Программное создание декораций форм.

Программное добавление реквизита на форму.

Добавлять новые реквизиты в управляемую форму и удалять необходимо с помощью метода ИзменитьРеквизиты(), куда в параметры передается массив добавляемых реквизитов и массив удаляемых. Удалять при этом можно только те реквизиты, которые были созданы программно.

Вывод реквизитов на форму.

Вызов процедур при создании на сервере 1С

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

Некоторые советы при программном редактировании формы

Итак, взглянем на получившийся результат. Все элементы на форме созданы программно:
как программно выполнить команду управляемой формы 1с 83. Смотреть фото как программно выполнить команду управляемой формы 1с 83. Смотреть картинку как программно выполнить команду управляемой формы 1с 83. Картинка про как программно выполнить команду управляемой формы 1с 83. Фото как программно выполнить команду управляемой формы 1с 83

Источник

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

Здравствуйте Уважаемые коллеги. Столкнулся с задачей выполнить процедуру управляемой формы, но что-то как-то не получается.
Коротко: в УТ11 создается программно элементы справочника вид цен. И все бы хорошо, только вот этот вид цен работать не будет до тех пор, пока элемент не откроешь в программе вручную, а затем нажмешь «Записать и закрыть».
Объекты создаются на сервере.
Проверял в отладчике, события формы элемента естественно не выполняются(при создании и записи).
Пробывал создовать объекты на сервере, затем по ссылке открывать формы на клиенте, все равно обработчики событий не срабатывают!

&НаКлиенте
Процедура ЗагрузитьНаКлиенте()

Для Каждого Строка Из МассивСсылок Цикл

ПараметрыОткрытия = Новый Структура(«Ключ», Строка);

ФормаОбъекта = ПолучитьФорму(«Справочник.ВидыЦен.Форма.ФормаЭлемента», ПараметрыОткрытия);

ФормаОбъекта.Открыть();
//ОЗ = ДанныеФормыВЗначение(Объект, Тип(«Справочник.ВидыЦен.Форма.ФормаЭлемента»));
ЭтаФорма.ОбновитьОтображениеДанных();
ФормаОбъекта.Закрыть();

На сервере создаются так:

&НаСервере
Процедура СоздатьВидЦен(КоллекцияАтрибутов, БазовыйВидЦен = Неопределено)

НовыйВидЦен.Заполнить(Неопределено);
НовыйВидЦен.Наименование = КоллекцияАтрибутов.ПолучитьИменованныйЭлемент(«Наименование»).Значение;

// недопустимо пустое наименование
Если Не ЗначениеЗаполнено(НовыйВидЦен.Наименование) Тогда
НовыйВидЦен.Наименование = Новый УникальныйИдентификатор();
КонецЕсли;

// не допустимы не уникальные идентификаторо относительно всех видов цен
Запрос = Новый Запрос;
Запрос.УстановитьПараметр(«Идентификатор», НовыйВидЦен.Идентификатор);
Запрос.Текст = «ВЫБРАТЬ
| ВидыЦен.Ссылка
|ИЗ
| Справочник.ВидыЦен КАК ВидыЦен
|ГДЕ
| ВидыЦен.Идентификатор = &Идентификатор»;
РезультатВыполнения = Запрос.Выполнить();

Если Не РезультатВыполнения.Пустой() Тогда

НовоеНаименование = НовыйВидЦен.Наименование + «_» + Новый УникальныйИдентификатор();

Если КоллекцияАтрибутов.ПолучитьИменованныйЭлемент(«ЦенаВключаетНДС»).Значение = «1» Тогда
НовыйВидЦен.ЦенаВключаетНДС = Истина;
КонецЕсли;

НовыйВидЦен.ИспользоватьПриПродаже = Истина;
НовыйВидЦен.ИспользоватьПриПередачеМеждуОрганизациями = Истина;

// проверим, если валюту не нашли отменяем создание вида цены
Если Не ЗначениеЗаполнено(НовыйВидЦен.ВалютаЦены) Тогда
Сообщить («Не удалось создать вид цен: » + НовыйВидЦен.Наименование + «. Причина: не найдена валюта цены с кодом: [» + КоллекцияАтрибутов.ПолучитьИменованныйЭлемент(«Валюта»).Значение + «]»);
Возврат;
КонецЕсли;

// Определимся, вдруг расчитывается на основании базовой цены
Если ЗначениеЗаполнено(БазовыйВидЦен) Тогда
НовыйВидЦен.СпособЗаданияЦены = Перечисления.СпособыЗаданияЦен.РассчитыватьПоДругимВидамЦен;
ПроцентнаяСтавка = КоллекцияАтрибутов.ПолучитьИменованныйЭлемент(«Процент»).Значение;
Если Число(ПроцентнаяСтавка) >= 0 Тогда
НовыйВидЦен.АлгоритмРасчетаЦены = «[» + БазовыйВидЦен.Идентификатор + «] * ((100 + » + Строка(ПроцентнаяСтавка) + «) / 100)»;
Иначе
НовыйВидЦен.АлгоритмРасчетаЦены = «[» + БазовыйВидЦен.Идентификатор + «] * ((100 » + Строка(ПроцентнаяСтавка) + «) / 100)»;
КонецЕсли;
Иначе
НовыйВидЦен.СпособЗаданияЦены = Перечисления.СпособыЗаданияЦен.Вручную;
КонецЕсли;

Вообще это все пишется для обработки переноса данных из писаной-переписанной семерки в УТ11. Так сказать, одноразовая обработка, лишь бы перебросить данные ))))

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

Источник

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *