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

  Маркет42 - Место для твоих разработок  

Как установить значение по умолчанию в поле со списком выбора (Обычная форма)

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

21.12.16 — 10:28

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

Есть примерно такой код, который не работает:

ВыбрПоставщик=СсылкаНаОбъект.Контрагент;

    КопияСписка = ЭлементыФормы.ВыбПоставщик.СписокВыбора.Скопировать();

    НайдЗначение=КопияСписка.НайтиПоЗначению(ВыбрПоставщик);

    ЭлементыФормы.ВыбПоставщик.Значение=НайдЗначение;

  

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

   Fragster

1 — 21.12.16 — 10:29

три последние строки убери

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

2 — 21.12.16 — 10:37

(1) Это не помогает. ВыбрПоставщик — это переменная.

Пробовал и так. Не получилось.

ЭлементыФормы.ВыбПоставщик.Значение=СсылкаНаОбъект.Контрагент;

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

3 — 21.12.16 — 10:37

(2) Тоже не работает

   butterbean

4 — 21.12.16 — 10:37

ВыбПоставщик = СсылкаНаОбъект.Контрагент;

   mistеr

5 — 21.12.16 — 10:39

(0) В реквизит устанавливай, а не в поле

А у поля режим выбора из списка не включен?

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

6 — 21.12.16 — 10:42

(5) Спасибо за подсказку. Завел на форме реквизит ВыбПоставщик и подвязал поле формы к этому реквизиту. У поля режим выбора списка был включен.

Всем спасибо. У меня получилось.

  

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

7 — 21.12.16 — 11:03

Провёл еще один эксперимент. Вот такой код сработал тоже и без реквизита формы

ЭтаФорма.ЭлементыФормы.ВыбПоставщик.Значение=СсылкаНаОбъект.Контрагент;

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

TurboConf — расширение возможностей Конфигуратора 1С

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

Поле ввода как задать значение по умолчанию

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

1C Значение по умолчанию

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

Как в 1С установить значение по умолчанию для поле ввода

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

Как в 1С установить значение по умолчанию

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

установить значение по умолчанию для поле ввода

И написать в нем вот такую строчку кода.

Объект.ПолеВвода = "0001"
Как в  установить значение по умолчанию для поле ввода 1с

Результат будет тот же самый.

1С Поле ввода как установить значение по умолчанию

Как видите все достаточно просто. Вообще ситуации могут быть разные поэтому если что-то не получается обязательно напишите об этом.

Инициализация реквизитов при создании нового объекта

Один из методов упрощения работы пользователя — это заполнение реквизитов нового объекта (элемент справочник, документ) значениями по умолчанию. Реализовать заполнение реквизитов можно двумя способами:

  1. в обработчике события формы элемента — ПриСозданииНаСервере;
  2. в обработчике события объекта — ОбработкаЗаполнения.

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


&НаСервере
Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)

// Если ссылка у объекта пустая, значит он еще не записан,
// а следовательно он является новым объектом.
ЭтоНовыйОбъект = Объект.Ссылка.Пустая();

// Если объект новый, то выполняем заполнение реквизитов.
Если ЭтоНовыйОбъект Тогда
Объект.Ответственный = Пользователи.ТекущийПользователь();
Объект.Комментарий = "Документ создан " + Формат(ТекущаяДата(), "ДФ=dd.MM.yyyy");
КонецЕсли;

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

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


Процедура ОбработкаЗаполнения(ДанныеЗаполнения, СтандартнаяОбработка)

ЭтотОбъект.Ответственный = Пользователи.ТекущийПользователь();
ЭтотОбъект.Комментарий = "Документ создан " + Формат(ТекущаяДата(), "ДФ=dd.MM.yyyy");

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

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

Заполнение полей формы по умолчанию

Автор Рустем Иманулов, 01 мар 2017, 11:23

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

Есть форма документа,поля, где источник данных-справочники(Выбираю значение из списка).
Как реализовать,чтобы при создании/копировании документа,поле по умолчанию заполнялось нужным мне элементом из справочника?
Или просто текст в поле по умолчанию,с возможностью выбрать элемент из справочника.


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


ПриСозданииНаСервере() и ПриКопировании() две различных процедуры и выполняются в различных местах. Первая на Форме, вторая в МодулеОбъекта.
ПриСозданииНаСервере()
    Если Объект.Ссылка.Пустая() Тогда
        Объект.Поле1Справочник = …..;
    КонецЕсли;
…..

Ну и
ПриКопировании()
    Объект.Поле1Справочник = …..;

….
Обратите внимание при копировании условие можно опустить.


Цитата: AsadRoman от 01 мар 2017, 13:17
ПриСозданииНаСервере() и ПриКопировании() две различных процедуры и выполняются в различных местах. Первая на Форме, вторая в МодулеОбъекта.
ПриСозданииНаСервере()
    Если Объект.Ссылка.Пустая() Тогда
        Объект.Поле1Справочник = …..;
    КонецЕсли;
…..

Ну и
ПриКопировании()
    Объект.Поле1Справочник = …..;

….
Обратите внимание при копировании условие можно опустить.

Объект.Поле1МойСправочник = МоёПоле *;  Я правильно понял?   В процедуре ПриКопировании ругается что переменная «Объект» не определена.


Спасибо за Сказать спасибо


Спасибо!Разобрался.

Объект.МОЕПОЛЕ=Справочники.МОЙСПРАВОЧНИК.НайтиПоКоду(«000000001») 

Добавлено: 02 мар 2017, 14:59


То же самое немогу сделать с Перечислениями.
Как Тащить значение из Перечислений в поле-аналогично


Перечисления[«Важность»][«Высокая»]

Спасибо за Сказать спасибо


38 / 38 / 25

Регистрация: 14.12.2009

Сообщений: 202

1

Значение по умолчанию

16.02.2011, 16:03. Показов 21517. Ответов 9


Добрый день, тока начинаю осваивать 1С, начал сразу с 8ки

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



0



Programming

Эксперт

94731 / 64177 / 26122

Регистрация: 12.04.2006

Сообщений: 116,782

16.02.2011, 16:03

Ответы с готовыми решениями:

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

-Создайте функцию с двумя аргументами,…

Как сделать значение по умолчанию для параметра, если оно должно быть значением по умолчанию для типа T?
Как сделать значение по умолчанию для параметра, если оно должно быть значением по умолчанию для…

Значение полей по умолчанию : «нет значения поля по умолчанию»; «Null»;»0″
Форумчане, доброго времени суток!
Подскажите. пожалуйста, как правильно указывать значение поля по…

Значение по умолчанию
Имеется БД, в ней есть поле для заполнение "Заказ №" , в которое данные вводится по маске, и там…

9

308 / 308 / 1

Регистрация: 16.01.2011

Сообщений: 1,073

16.02.2011, 16:24

2

тут книжки посмотри



0



38 / 38 / 25

Регистрация: 14.12.2009

Сообщений: 202

16.02.2011, 16:31

 [ТС]

3

Цитата
Сообщение от fimbulwinter
Посмотреть сообщение

тут книжки посмотри

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



0



308 / 308 / 1

Регистрация: 16.01.2011

Сообщений: 1,073

16.02.2011, 16:45

4

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



0



38 / 38 / 25

Регистрация: 14.12.2009

Сообщений: 202

16.02.2011, 16:47

 [ТС]

5

Цитата
Сообщение от fimbulwinter
Посмотреть сообщение

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

Управление торговлей 10.2



0



308 / 308 / 1

Регистрация: 16.01.2011

Сообщений: 1,073

16.02.2011, 17:11

6

Сервис->Настройки пользователя->Настройки->Основные значения для подстановки в документы и справочники->Прочие значения->Основная организация



0



smatch

38 / 38 / 25

Регистрация: 14.12.2009

Сообщений: 202

16.02.2011, 17:39

 [ТС]

7

Цитата
Сообщение от fimbulwinter
Посмотреть сообщение

Сервис->Настройки пользователя->Настройки->Основные значения для подстановки в документы и справочники->Прочие значения->Основная организация

Сервис->Настройки пользователя->Настройки->Основные значения для подстановки в документы и справочники->
а дальше нет прочих значений, но конфигурация тут изменена очень сильно от стандартной.

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

1C
1
2
3
4
5
Процедура ПриОткрытии()
    Если Организация.Значение=Неопределено Тогда
       Организация.Значение="Д";
    КонецЕсли;
КонецПроцедуры

результатов не дал



0



308 / 308 / 1

Регистрация: 16.01.2011

Сообщений: 1,073

16.02.2011, 17:54

8

зачем? существуют общие механизмы, рабочие.
ну если так интересно то вообще то Организация это ссылка на объект справочника Организаций.
Тогда при открытии Организация = Справочник.Организации.НайтиПоНаименованию(«Damage inc.»), либо Организация = Справочник.Организации.НайтиПоКоду(«00000001»)
как то так



0



38 / 38 / 25

Регистрация: 14.12.2009

Сообщений: 202

16.02.2011, 21:21

 [ТС]

9

Цитата
Сообщение от fimbulwinter
Посмотреть сообщение

зачем? существуют общие механизмы, рабочие.
ну если так интересно то вообще то Организация это ссылка на объект справочника Организаций.
Тогда при открытии Организация = Справочник.Организации.НайтиПоНаименованию(«Damage inc.»), либо Организация = Справочник.Организации.НайтиПоКоду(«00000001»)
как то так

спс завтра попробую.
просто общие механизмы могут быть не уместны при измененных конфигурациях.
допустим такое решение

Сервис->Настройки пользователя->Настройки->Основные значения для подстановки в документы и справочники->Прочие значения->Основная организация

для конфигурации с которой я столкнулся, неприменимо



0



308 / 308 / 1

Регистрация: 16.01.2011

Сообщений: 1,073

16.02.2011, 21:39

10

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



0



IT_Exp

Эксперт

87844 / 49110 / 22898

Регистрация: 17.06.2006

Сообщений: 92,604

16.02.2011, 21:39

Помогаю со студенческими работами здесь

Значение по умолчанию
Вопрос абсолютного новичка. Пытаюсь программировать на HTML и JavaScript буквально со вчерашнего…

Значение по умолчанию
В C++ можно устанавливать встроенным типам данных значения по умолчанию вот таким способом:
int i…

Значение по умолчанию
Не получается значение по умолчанию, которое должно быть от текущей даты + 4 года.
пишу…

Значение по умолчанию
Здравствуйте уважаемые. Начал изучать sql, встрял на вставке вычисляемого значения по умолчанию.

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:

10

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

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

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

&НаКлиенте
Процедура ТаблицаПредложенийПриНачалеРедактирования(Элемент, НоваяСтрока, Копирование)   	
            	//Получаем текущую строку таблицы
            	ТекСтрока = Элемент.ТекущиеДанные;
//Проверяем, что текущая строка определена и это новая строка таблицы
            	Если ТекСтрока <> Неопределено
                           	И НоваяСтрока Тогда
                           	//Устанавливаем значение по умолчанию
                           	ТекСтрока.ИдентификаторСтроки = Строка(Новый УникальныйИдентификатор);
            	КонецЕсли;                   	
КонецПроцедуры

Эту статью хорошо дополняют

Значение по-умолчанию для поля ввода можно задать только программно? Или где-то в конфигураторе можно указать?

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

Подскажи, где именно в свойствах это можно задать? Я что-то в упор не вижу.

так вопрос собственно такой — можно ли где-то в свойствах объекта это указать, или только программно

Спасибо! Видимо только программно можно задать:) Еще вопрос по — мне нужна задать значение в поле ввода на форме документа, поле ввода связано с реквизитом формы. Нужно ли в этом случае делать проверку этоновый ?

Если у поля ввода определено свойство «Данные», то то что вы пишите — это расово-неправильное решение

Да, поле «Данные» определено. То есть лучше напрмую изменять значение прикрепленной переменной?

Значение для заполнения этого поля по умолчанию — не то?

так это же одна и та же переменная. Только запись в 3 раза короче.

Тэги: 1С 8

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

Понравилась статья? Поделить с друзьями:
  • 1с как обратиться к дополнительному реквизиту документа
  • 1с как обратиться к реквизиту реквизита табличной части
  • 1с как скопировать реквизит документа в другой документ
  • 1с найтипореквизиту комментарий неверно указан реквизит
  • 1с получить значение дополнительного реквизита по имени