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

Как привязать изменение одного реквизита другому?

Входные данные на форме:
Реквизит1
Реквизит2

При изменении Реквизит1.Наименование необходимо автоматическое изменение Реквизит2.Наименование. Чтобы их значения были одинаковыми.

На примере справочника «Номенклатура поставщиков». Есть привязка к справочнику «Номенклатура». В это поле указывается наименование номенклатуры. При изменении наименования должно автоматически меняться поле «Наименование» для справочника «Номенклатура поставщиков».

Как это сделать в конфигураторе?


  • Вопрос задан

    более года назад

  • 404 просмотра

На примере справочника «Номенклатура поставщиков» такой кейс вообще странный, потому что оно для того и сделано разными справочниками, чтобы решить проблему, когда одна и та же номенклатура, у нас и у поставщика по разному называется.
Если формально решать задачу; «при изменении реквизита изменить другой», то решение зависит от того, обычные у вас формы или управляемые. Предположу что управляемые, поскольку они используются практически во всех современных конфигурациях. Тогда нужно для реквизита1 добавить обработчик события ПриИзменении, и в нем описать алгоритм заполнения реквизита2. Чтобы в управляемых формах добавить обработчик события, нужно вызвать контектное меню реквизита1 и в пункте «События» выбрать <ПриИзменении> После чего выбрать, какой обработчик события вам нужен, на клиенте, или на клиенте с обработкой на сервере.

Пригласить эксперта


  • Показать ещё
    Загружается…

22 мар. 2023, в 01:49

5000 руб./за проект

22 мар. 2023, в 01:01

3000 руб./за проект

22 мар. 2023, в 00:50

15000 руб./за проект

Минуточку внимания

При изменении одного реквизите менять автоматически другой.

Я
   El_lynx

27.12.16 — 08:38

Все здравствуйте! Я новичок в 1С, подскажите, пожалуйста:

В документе есть реквизиты «КонтактноеЛицо» и «Телефон». Нужно чтобы при изменении контактного лица автоматически вставлялся телефон. Данные пользователь выбирает из справочника «КонтактныеЛицаКонтрагентов». Пишу код, но при выборе контактного лица в поле с телефоном ничего не происходит. Помогите, пожалуйста, разобраться:

&НаКлиенте

Процедура КонтактноеЛицоПриИзменении(Элемент)

   КонтактноеЛицо = Объект.КонтактноеЛицо;

   Объект.Телефон = ПолучитьТел (КонтактноеЛицо);

КонецПроцедуры

&НаСервереБезКонтекста

Функция   ПолучитьТел (КонтактноеЛицо)

     Возврат КонтактноеЛицо.ОсновнойТел;

КонецФункции

  

Партнерская программа EFSOL Oblako

   asady

1 — 27.12.16 — 08:40

(0) поле «телефон» путь к данным что содержит?

   El_lynx

2 — 27.12.16 — 08:44

В поле телефон выбирается значение из справочника КонтактныеЛицаКонтрагентов.ОсновнойТел, а в поле КонтактноеЛицо из этого же справочника наименование

   SleepyHead

3 — 27.12.16 — 08:49

Отладчиком пробовал посмотреть, что реально в значениях переменных?

   El_lynx

4 — 27.12.16 — 09:00

в поле КонтактноеЛицо — Справочники.КонтактныеЛицаКонтрагентов,

в поле Телефон — Справочники.КонтактныеЛицаКонтрагентов

   El_lynx

5 — 27.12.16 — 09:01

может можно другим способом? нужно просто чтоб при выборе контактного лица из справочника, автоматом вставлялся его телефон в поле телефон

   МимохожийОднако

6 — 27.12.16 — 09:02

(5) Ответь на (3)

   Неверный Параметр И

7 — 27.12.16 — 09:06

(4) >в поле Телефон — Справочники.КонтактныеЛицаКонтрагентов

Сильно. И какой ожидается результат? Ну просто по-русски, словами?

   Mankubus

8 — 27.12.16 — 09:07

(4) >>в поле Телефон — Справочники.КонтактныеЛицаКонтрагентов

телефон точно не строка должно быть?

   vicof

9 — 27.12.16 — 09:07

(4) Телефон — это не контактное лицо

   El_lynx

10 — 27.12.16 — 09:14

я видимо не совсем понимаю (3) вопрос. Я пытаюсь в значение переменной КонтактноеЛицо записать данные, которые ввел пользователь в поле КонтактноеЛицо. Потом передать это значение в метод, который вернет телефон контактного лица, и этот телефон вставить в поле Телефон

(4) ожидается результат, что туда вставится телефон из справочника… Так, понятно, попробую сделать его строкой

   shpioleg

11 — 27.12.16 — 09:22

(10) >я видимо не совсем понимаю (3) вопрос.

Иди изучи сначала как пользоваться отладчиком. В УФ без него никак.

   El_lynx

12 — 27.12.16 — 09:28

(11) ок

я уже смогу посмотреть только вечером )) потом напишу в форум что получилось

   SleepyHead

13 — 27.12.16 — 10:45

(12) Вечером надо мужу борщ варить, пишите завтра.

  

El_lynx

14 — 28.12.16 — 08:50

(8)(7)(9) Вы были правы, ошибка в этом, тип Телефон должен быть строкой. Код был правильный, сейчас все заработало. Всем спасибо :)

Автор Амалия, 06 апр 2014, 14:54

0 Пользователей и 1 гость просматривают эту тему.

Здравствуйте, подскажите, пожалуйста. Как правильно написать код, при котором при изменении поля Получатель формы документа будут автоматически устанавливаться Поля БанкПолучателя и РСПолучателя (которые ссылаются на справочник Контрагенты). Вот моя неудачная попытка (процедура на сервере — написана как в 8.1):

&НаКлиенте
Процедура ПолучательПриИзменении(Элемент)
ПолучитьРеквизитыНаСервере();
КонецПроцедуры

&НаСервере
Процедура ПолучитьРеквизитыНаСервере()
// Установить банк и банковский счет
БанкПолучателя = Получатель.БанкПолучателя;
РСПолучателя = Получатель.РС;
КонецПроцедуры

Сейчас он выдает ошибку {Документ.СписаниеДенежныхСредств.Форма.ФормаДокумента.Форма(18,19)}: Переменная не определена (Получатель)
   БанкПолучателя = <<?>>Получатель.БанкПолучателя; (Проверка: Сервер)
Так же и для РСПолучателя.

Как исправить? Заранее спасибо!


Цитата: Амалия от 06 апр 2014, 14:54
Здравствуйте, подскажите, пожалуйста. Как правильно написать код, при котором при изменении поля Получатель формы документа будут автоматически устанавливаться Поля БанкПолучателя и РСПолучателя (которые ссылаются на справочник Контрагенты). Вот моя неудачная попытка (процедура на сервере — написана как в 8.1):&НаКлиенте
Процедура ПолучательПриИзменении(Элемент)
ПолучитьРеквизитыНаСервере();
КонецПроцедуры

&НаСервере
Процедура ПолучитьРеквизитыНаСервере()
// Установить банк и банковский счет
БанкПолучателя = Получатель.БанкПолучателя;
РСПолучателя = Получатель.РС;
КонецПроцедуры

Сейчас он выдает ошибку {Документ.СписаниеДенежныхСредств.Форма.ФормаДокумента.Форма(18,19)}: Переменная не определена (Получатель)
   БанкПолучателя = <<?>>Получатель.БанкПолучателя; (Проверка: Сервер)
Так же и для РСПолучателя.

Как исправить? Заранее спасибо!

Объект.Получатель.БанкПолучателя


Цитата: DmitriyF от 06 апр 2014, 19:28

Цитата: Амалия от 06 апр 2014, 14:54
Здравствуйте, подскажите, пожалуйста. Как правильно написать код, при котором при изменении поля Получатель формы документа будут автоматически устанавливаться Поля БанкПолучателя и РСПолучателя (которые ссылаются на справочник Контрагенты). Вот моя неудачная попытка (процедура на сервере — написана как в 8.1):&НаКлиенте
Процедура ПолучательПриИзменении(Элемент)
ПолучитьРеквизитыНаСервере();
КонецПроцедуры

&НаСервере
Процедура ПолучитьРеквизитыНаСервере()
// Установить банк и банковский счет
БанкПолучателя = Получатель.БанкПолучателя;
РСПолучателя = Получатель.РС;
КонецПроцедуры

Сейчас он выдает ошибку {Документ.СписаниеДенежныхСредств.Форма.ФормаДокумента.Форма(18,19)}: Переменная не определена (Получатель)
   БанкПолучателя = <<?>>Получатель.БанкПолучателя; (Проверка: Сервер)
Так же и для РСПолучателя.

Как исправить? Заранее спасибо!

Объект.Получатель.БанкПолучателя

Да, это конечно хорошо. Я теперь поняла в чем ошибка была. Объект работает с РС, т.к. он забит непосредственно в справочнике Контрагенты. А как быть с банком, если он так же есть в справочнике Контрагенты, но ссылается на другой справочник Банки?

Добавлено: 10 апр 2014, 14:35


И еще. А то тогда сразу забыла уточнить. Документ этот (Списание денежных средств) вводится на основании другого. Таким образом Получатель автоматически попадает в Списание денежных средств. И БанкПолучателя с РСПолучателя должны заполняться при его создании.


Теги:

  • Форум 1С

  • Форум 1С — ПРЕДПРИЯТИЕ 8.0 8.1 8.2 8.3 8.4

  • Конфигурирование, программирование в 1С Предприятие 8

  • Заполнение одного реквизита формы документа при изменении другого 8.2

Похожие темы (5)

Рейтинг@Mail.ru

Rambler's Top100

Поиск

Как в 1С 8.2 при изменении на форме одного реквизита менять другой реквизит?

на документе два реквизита на форме (тип дата), вот — нужно выставить дату на форме, и эта же дата выставилась и у другого реквизита — тоже на форме.

я тоже — пока не вижу решения :)

Объект.Дата1=Объект.Дата2

кошмар — точно :) а я через Элементы пытался… Думал объект надо записывать обязательно, а потом прочитывать, что не удовлетворяло.

а как лучше синхронизировать данные на клиенте и на сервере?

при открытии — прочитать.

ну прочитать это хорошо, а как синхронизировать?

а теперь: это не реквизиты объекта, а формы?

Чо тебе синхронизировать? при открытии формы прочитал в неё данные, при записи отдал..

а вы на чем пишите на 7.2 ? а вообще врачи опехмеологи рекомендуют отказаться от — СоздатьОбъект(«Справочник.ПланыПродаж»);

Тэги:

Комментарии доступны только авторизированным пользователям

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

  • При изменение реквизита табличной части количество выполнять пересчет реквизита стоимость = количество*цена.
  • При изменение реквизита табличной части сумма выполнять пересчет реквизита количество = стоимость /цена.
  • При изменение реквизита табличной части цена выполнять пересчет реквизита стоимость = количество*цена.

Я пробовала сделать пересчет при процедуре обработки продвижения документа через регистр, но не получилось. Подскажите, где можно описать пересчет по формулам и есть ли ошибки в процедуре ПриИзменении?

1C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
Процедура ОбработкаПроведения(Отказ, Режим)
    //{{__КОНСТРУКТОР_ДВИЖЕНИЙ_РЕГИСТРОВ
    // Данный фрагмент построен конструктором.
    // При повторном использовании конструктора, внесенные вручную изменения будут утеряны!!!
 
    // регистр ОстаткиТоваровНаСкладе Приход
    Движения.ОстаткиТоваровНаСкладе.Записывать = Истина;
    Движения.ОстаткиТоваровНаСкладе.Очистить();
    Для Каждого ТекСтрокаТовары Из Товары Цикл
        Движение = Движения.ОстаткиТоваровНаСкладе.Добавить();
        Движение.ВидДвижения = ВидДвиженияНакопления.Приход;
        Движение.Период = Дата;
        Движение.Склад = Склад;
        Движение.Номенклатура = ТекСтрокаТовары.номенклатура;
        Процедура ТоварыСтоимостьПриИзменении(Элемент)
        Движение.Количество = ТекСтрокаТовары.Стоимость/ТекСтрокаТовары.Цена;
    конецПроцедуры
    Процедура ТоварыКоличествоПриИзменении(Элемент)
        Движение.Сумма = ТекСтрокаТовары.Количество*ТекСтрокаТовары.Цена;
    конецПроцедуры
    Процедура ТоварыЦенаПриИзменении(Элемент)
        Движение.Сумма = ТекСтрокаТовары.Количество*ТекСтрокаТовары.Цена;
        конецПроцедуры
        Движение.Цена = ТекСтрокаТовары.Цена;
    КонецЦикла;
 
    //}}__КОНСТРУКТОР_ДВИЖЕНИЙ_РЕГИСТРОВ
КонецПроцедуры

Содержание:

1.     Добавление реквизитов на 1С управляемые формы

2.     Добавить элементы на форму

3.     Установка событий элементам формы

При адаптации типовых конфигураций 1С часто приходится изменять в 1С 8 управляемые формы. Такие адаптации сложно потом поддерживать при обновлении. Такие изменения приходится вносить вручную заново, перепроверять корректность изменений в каждом обновлении. И если таких изменений множество, то каждое обновление может представлять серьезные трудозатраты. Есть несколько решений, которые позволяют упростить поддержку и обновление измененных систем 1С. Одно из них – это программное изменение форм.

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

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

Изменения, которые нужны в форме изначально, стоит вносить в процедуре «ПриСозданииНаСервере». Для внесения изменений лучше сделать отдельную процедуру (например, «ДополнитьФормуПрограммно») и вызывать ее в штатной процедуре «ПриСозданииНаСервере», тогда изменение типовой формы 1С будет выглядеть одной строчкой:

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

Рассмотрим на примерах, как делать доработку управляемых форм кодом в 1С. 

1.          Добавление реквизитов на 1С управляемые формы

Если в ходе разработки изменилась типовая структура объекта, то добавлять новые реквизиты на форму нет необходимости. Эти реквизиты будут доступны по пути «Объект.НовыйРеквизит».

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

«ДобавляемыеРеквизиты» и «УдаляемыеРеквизиты» – это массивы с элементами типа «РеквизитФормы». Тут все просто – «Добавляемые» добавляются, «Удаляемые» – удаляются.

Функция РеквизитФормы («ИмяРеквизита», «ТипРеквизита», «Путь», «Заголовок») создает объект типа «РеквизитФормы».

Тут важно понимать, что «ИмяРеквизита» содержит имя без точек. То есть имя без пути реквизита. Если нужно добавить реквизит, например, табличной части объекта, то уже в реквизите «Путь» указать путь к ТЧ реквизита – «Объект.Товары». «ТипРеквизита» задается через объект «ОписаниеТипов».

В примере ниже я добавил два реквизита «ЭтоСборка» для табличной части «Товары» у объекта и «СтатусОбработки» на форму документа. 

2.          Добавить элементы на форму

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

Для добавления новых элементов на форму есть два метода:

­-Элементы.Добавить(«ИмяЭлемента», «ТипЭлемента», «Родитель»).

-Элементы.Вставить(«ИмяЭлемента», «ТипЭлемента», «Родитель», «Элемент»).

«ИмяЭлемента» должно быть уникальным в рамках элементов формы. Лучше добавить какой-то префикс, чтобы не возникло пересечений с типовыми элементами формы.

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

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

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

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

3.          Установка событий элементам формы

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

Для установки событий элементам нужно использовать процедуру УстановитьДействие («ИмяСобытия», «Действие»).

«ИмяСобытия» — имя события, которое нужно отработать. Например, «ПриИзменении», «Очистка», «ОбработкаВыбора» и т.п.

«Действие» — процедура отработки события. Самое главное процедура должна содержать параметры необходимые для выполняемого события. Например, процедура «ПриИзменении» должна иметь параметр «Элемент».

Также программно можно задавать прочие доступные свойства новых элементов формы. Например, установить видимость кнопки очистки:

НовыйЭлемент.КнопкаОчистки = Истина;

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

Код для копирования:

&НаСервере

Процедура КЛ_ДополнитьФормуПрограммно()

МассивРеквизитовФормы = Новый Массив;

//Новый реквизит Товары.КЛ_ЭтоСборка

НовыйРеквизитФормы = Новый РеквизитФормы(«КЛ_ЭтоСборка»,

           Новый ОписаниеТипов(«Булево»)

           ,»Объект.Товары»

           ,»Это сборка»);

МассивРеквизитовФормы.Добавить(НовыйРеквизитФормы);

//Новый реквизит КЛ_СтатусОбработки

НовыйРеквизитФормы = Новый РеквизитФормы(«КЛ_СтатусОбработки»,

           Новый ОписаниеТипов(«ПеречислениеСсылка.СтатусыДокументовРеализации»)

           ,

           ,»Статус обработки»);

МассивРеквизитовФормы.Добавить(НовыйРеквизитФормы);

ИзменитьРеквизиты(МассивРеквизитовФормы);

НовыйЭлемент = Элементы.Добавить(«КЛ_СтатусОбработки», Тип(«ПолеФормы»), Элементы.ГруппаШапкаЛевая);

НовыйЭлемент.Вид = ВидПоляФормы.ПолеВвода;

НовыйЭлемент.КнопкаОчистки = Истина;

НовыйЭлемент.УстановитьДействие(«ПриИзменении»,»КЛ_ПриИзмененииСтатусаОбработки»);

НовыйЭлемент = Элементы.Вставить(«КЛ_ЭтоСборка», Тип(«ПолеФормы»),Элементы.Товары,Элементы.ТоварыКоличество);

НовыйЭлемент.Вид = ВидПоляФормы.ПолеФлажка;

КонецПроцедуры

Специалист компании ООО «Кодерлайн»

Кирилл Карцев.

На чтение 6 мин. Просмотров 2.6k. Опубликовано 15.12.2019

Содержание

  1. Как изменить значение реквизита документа 1С?
  2. Изменение команд формы
  3. Изменение реквизитов формы
  4. Изменение элементов формы
  5. Документы
  6. Документы в языке 1С 8.3, 8.2 (в примерах)

Как изменить значение реквизита документа 1С?

Как изменить значение реквизита документа 1С?
Часто возникает потребность изменить какое-то значение в отдельном реквизите. И не в одном документе, в в нескольких документах. Возможно использовать запрос.
Например:

В статье был рассмотрен вопрос:
Как изменить значение реквизита документа 1С?

Платформа 1С:Предприятие позволяет программно добавлять и изменять элементы управляемой формы. Разберемся для чего это может потребоваться.

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

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

В управляемой форме можно программно добавить, изменить и удалить:

Все указанные операции возможны только на сервере.

Программное изменение формы имеет ограничения:

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

Изменение команд формы

Для управления составом команд у объекта УправляемаяФорма есть коллекция Команды . У коллекции есть несколько методов:

Коллекция Команды доступна как на клиенте, так и на сервере. Изменять коллекцию (методы Добавить () и Удалить () ) можно только на сервере. Искать и получать количество элементов (методы Найти () и Количество () ) можно как на клиенте, так и на сервере.

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

&НаСервере
Процедура ПриСозданииНаСервере ( Отказ , СтандартнаяОбработка )
Команда = Команды . Добавить ( «ИсторияИзменений» );
Команда . Действие = «Подключаемый_ОтобразитьИсторию» ;
Команда . Заголовок = «История изменений…» ;
КонецПроцедуры
&НаКлиенте
Процедура Подключаемый_ОтобразитьИсторию ( Команда )
// действия команды
КонецПроцедуры

Обработчик команды должен располагаться в форме и иметь директиву компиляции &НаКлиенте .

Изменение реквизитов формы

Чтение состава реквизитов формы выполняется функцией ПолучитьРеквизиты ( Путь >) , возвращающей массив типа РеквизитФормы . Параметр функции указывает путь к родительскому реквизиту (в виде строки). Если параметр опущен или указана пустая строка, возвращаются реквизиты верхнего уровня.

Изменение реквизитов выполняется методом ИзменитьРеквизиты ( ДобавляемыеРеквизиты >, УдаляемыеРеквизиты >) объекта УправляемаяФорма . В параметры ДобавляемыеРеквизиты и УдаляемыеРеквизиты передаются массивы с элементами типа РеквизитФормы .

Внимание!

Процесс изменения состава реквизитов является достаточно ресурсоемким. Фактически выполняется пересоздание формы. В связи с этим работа с реквизитами формы выполняется в пакетном режиме.

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

// Описание добавляемых реквизитов
ДобавляемыеРеквизиты = Новый Массив ;
ДобавляемыеРеквизиты . Добавить(Новый РеквизитФормы («Покупатель», Новый ОписаниеТипов ( «СправочникСсылка.Контрагенты» ), , «Клиент» ));

// Изменения состава реквизитов
ИзменитьРеквизиты ( ДобавляемыеРеквизиты );

Изменение элементов формы

Для управления составом элементов у объекта УправляемаяФорма есть коллекция Элементы . У коллекции есть несколько методов:

Коллекция Элементы доступна как на клиенте, так и на сервере. Изменять коллекцию (методы Вставить () , Добавить () , Переместить () и Удалить () ) можно только на сервере. Искать и получать количество элементов (методы Найти () и Количество () ) можно как на клиенте, так и на сервере. Элементами коллекции могут быть:

Элементам формы можно программно назначить обработчики событий. Для этих целей предназначен метод УстановитьДействие ( ИмяСобытия >, Действие >) .

Рассмотрим несколько наиболее распространенных на практике примеров работы с командами, реквизитами и элементами формы.

Добавление команды и связанной с ней кнопки:

// Создание команды
Команда = Команды . Добавить ( «ИсторияИзменений» );
Команда . Действие = «Подключаемый_ОтобразитьИсторию» ; // В форме должна быть процедура с указанным наименованием
Команда . Заголовок = «История изменений…» ;
// Создание кнопки и связь ее с командой
Элемент = Элементы . Добавить ( «ИсторияИзменений» , Тип ( «КнопкаФормы» ));
Элемент.ИмяКоманды = «ИсторияИзменений» ;

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

// Описание добавляемых реквизитов
ДобавляемыеРеквизиты = Новый Массив;
ДобавляемыеРеквизиты . Добавить (Новый РеквизитФормы ( «Покупатель» , Новый ОписаниеТипов ( «СправочникСсылка.Контрагенты» ), , «Клиент» ));
// Изменение состава реквизитов
ИзменитьРеквизиты ( ДобавляемыеРеквизиты );
// Создание поля ввода и связь с реквизитом
Элемент = Элементы . Добавить ( «Покупатель» , Тип ( «ПолеФормы» ));
Элемент . Вид = ВидПоляФормы . ПолеВвода ;
Элемент . ПутьКДанным = «Покупатель» ;

Назначение элементу формы обработчика события:

ЭлементПокупатель . УстановитьДействие ( «ПриИзменении» , «Подключаемый_ПокупательПриИзменении» );

&НаКлиенте
Процедура Подключаемый_ПокупательПриИзменении ( Элемент )
// Действия события
КонецПроцедуры

Внимание!

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

Внимание!

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

Остались вопросы?
Спросите в комментариях к статье.

Вступайте в мою группу помощник программиста.
В ней мы обсуждаем программирование в 1С.

Документы

Описание:

Документ — одно из основных понятий системы 1С:Предприятие. При помощи документов организуется ввод в систему информации о совершаемых хозяйственных операциях, а также ее просмотр и корректировка.

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

Структура каждого конкретного вида документа определяется при его создании в конфигураторе. У любого вида документа существуют реквизиты, которые создаются автоматически — это «Дата» и «Номер». Номер создается, если при конфигурировании длина номера указана больше 0. Другие реквизиты документа определяются в конфигураторе отдельно для каждого создаваемого вида документа.

Документы в языке 1С 8.3, 8.2 (в примерах)

С уважением, Владимир Милькин (преподаватель школы 1С программистов и разработчик обновлятора).

Подписывайтесь и получайте новые статьи и обработки на почту (не чаще 1 раза в неделю).

Вступайте в мою группу ВКонтакте, Одноклассниках, Facebook или Google+ — самые последние обработки, исправления ошибок в 1С, всё выкладываю там в первую очередь.

Как помочь сайту: расскажите (кнопки поделиться ниже) о нём своим друзьям и коллегам. Сделайте это один раз и вы внесете существенный вклад в развитие сайта. На сайте нет рекламы, но чем больше людей им пользуются, тем больше сил у меня для его поддержки.

Нажмите одну из кнопок, чтобы поделиться:

Понравилась статья? Поделить с друзьями:
  • 2348 ифнс россии по северскому району краснодарского края реквизиты
  • 2460 ифнс россии по железнодорожному району г красноярска реквизиты
  • 2465 ифнс россии по советскому району г красноярска реквизиты октмо
  • Черногорский городской суд республики хакасия реквизиты госпошлины
  • 250 тысяч на развитие малого бизнеса 2021 условия самарская область