1с автоматическое заполнение владельца при создании на форме
Сегодня мы сделаем так, что на форме при заполнении одного поля и нажатии на кнопку "Tab" будет заполняться второе поле.
Это может пригодиться для ситуации, когда у вас на форме есть какое-то сокращенное значение фирмы и есть полное название фирмы. Пользователь заполнит краткое название фирмы, а полное автоматически заполнится этим же значением и пользователю останется только дополнить до конца это значение. Это все ускоряет работу и экономит время пользователя.
Перейдем в справочник "Контрагенты" и откроем форму элемента (Рисунок 1).
На этой форме у нас есть поле идентификатор и поле полный идентификатор. Теперь мы должны сделать так, что пользователь заполнит только поле "Идентификатор", а поле "ПолныйИдентификатор" заполнится само!
Все это делается просто! Нужно вспомнить про событие "ПриИзменении".
Это событие работает, когда мы начинаем что-то менять в поле, а как раз это мы и будем делать! Мы будем вносить данные в поле, а значит мы меняем его.
Выделим поле "Идентификатор" и найдем событие "ПриИзменении" (Рисунок 2).
Нажмем на значок увеличительного стекла и создадим процедуру на клиенте и пропишем там код (Рисунок 3).
Этот код говорит о следующем: Если поле ПолныйИдентификатор пустое - "", тогда оно автоматически становится равным полю идентификатор, то есть заполняется этим значением.
Запустите пользовательский режим и проверьте изменения. Запишите что-то в поле "Идентификатор", нажмите "Tab" и поле "Полный идентификатор" заполнится автоматически тем же значением. Таким образом пользователю останется только дописать название контрагента до конца!
На этом статья урока подходит к концу. Попробуйте выполнить все действия, которые описаны в этом уроке. Если что-то не получается, то вы всегда сможете написать вопрос о том, что вам непонятно или вернуться к предыдущим урокам и посмотреть их - ссылки внизу!
Ссылка для вступления телеграм-канал - t.me.Apiscourses
Подписаться в группу ВКонтакте
Прошлые уроки:
На этом все. Жду Вас на следующем занятии.
P.S. Подписывайтесь на мой канал :-)
программирование программирование 1с 1с предприятие обучение онлайн обучение 1с
ВНИМАНИЕ! Ваша конфигурация должна содержать справочник "Пользователи"!
Недавно нужно было предоставить простое решение, которое позволяло бы автоматически устанавливать значения определенных реквизитов при создании пользователями новых документов и справочников.
В результате появился механизм со следующими функциями:
- Заполнение реквизитов в документах и справочниках для всех пользователей базы. Табличные части не заполняются.
- Заполнение реквизитов в документах и справочниках для определенного пользователя базы. Табличные части не заполняются.
- Возможность быстро включить/отключить правило целиком.
- Возможность быстро включить/отключить правило заполнения определенного реквизита.
- Просмотр списка существующих правил для заполнения.
Заполнение реквизитов происходит по подписке на событие «ОбработкаЗаполнения».
Текущий пользователь узнается из параметров сеанса «ПараметрыСеанса.ТекущийПользователь».
В вашей конфигурации обязательно должен присутствовать справочник «Пользователи».
Текущий механизм проверялся только на управляемых формах.
Механизм устроен так, что первоначально ОбработкаЗаполнения заполняет те реквизиты, которые указаны для определенного объекта конфигурации без привязки к пользователю, а на следующем этапе происходит заполнение реквизитов для текущего пользователя. В том случае, если новый документ или справочник создается на основании, то реквизиты из документа источника заменяться не будут.
Установка:
Для установки данного механизма вам необходимо объединить вашу конфигурацию с конфигурацией из этой публикации.
При объединении необходимо снять галочки со свойств конфигурации и со справочника «Пользователи».
Надеюсь, что данный механизм будет кому-нибудь полезен. С нетерпением жду ваших комментариев!
Владелец элемента подчиненного справочника. Как сделать что бы автоматически при открытии из основного справочника в элемента подчиненного устанавливался владелец? НЕ УФ.
(1) aleks-lit, у реквизита формы есть свойство "Связь по владельцу". Можно же глянуть, как это устроено в стандартных конфигурациях, в том же справочнике "Контрагенты", например.
(4) starjevschik, пробовал. вроде все так. но не работает. может че пропустил. там связь по владельцу не заполнена.
(5) aleks-lit,
У Вас реквизиты в шапке или в табличной части? Поподробнее обрисуйте ситуацию. Скриншоты покажите. Код покажите.
(6) Martinian, нет там кода. и не собирался. реквизиты не табличной части. бухгалтерия предприятия 8,2 из справочника ДоговорыКонтрагентов. в нем собираюсь сделать таблицу, чтобы можно было ввести несколько показателей . форма элемента состоит из нескольких полей ввода соответственно наименование код и владелец. вот владелец и нужно чтобы заполнялся автоматически при создании из справочника ДоговорыКонтрангента
(7) aleks-lit,
Сами поняли, что написали? У Вас в голове ситуация/проблема. у меня в голове ее нет. Если хотите реально получить помощь, научитесь досконально и понятно для остальных обрисовывать проблему.
1.есть стандартный справочник ДоговорыКонтрагентов
2.в нем добавил табличное поле типзначения справочниксписок.ц_ПоказателиПоДоговору при добавлении в него открывается форма элемента справочника ц_ПоказателиПоДоговору
3.добавил подчиненный справочник ц_ПоказателиПоДоговору(владелец ДоговорыКонтрагентов)
в нем несколько реквизитов.
4.нужно чтобы при открытии из договорыКонтрагента в поле владелец в форме элемента справочника ц_ПоказателиПоДоговору проставлялся договор к которому относятся показатели.
PS я на слух вообще не воспринимаю когда мне пытаются объяснить проблему)))
нужно глазками посмотреть
к сожалению скринов не могу выложить -- ПРОКСИ глушит.
Открывается существующий элемент подчиненного справочника, или при нажатии на кнопку создается новый элемент подчиненного справочника
пока никакого кода нет. есть справочник(договорыконтагентов, тоже кстати подчиненный спр-ку контрагенты) из поля ввода которого открывается подчиненный справочник. так вот, как сделать что бы при открытии устанавливался владелец элемента подчиненного спр-ка.
Часто бывает необходимым, чтобы при создании документа, элемента справочника автоматически заполнялись заданным значением определенные его реквизиты. Ниже предлагается вариант реализации механизма автозаполнения реквизитов документов по заданным условиям.
Часто бывает необходимым, чтобы при создании документа, элемента справочника автоматически заполнялись заданным значением определенные его реквизиты. Можно, конечно, прописать заполнение реквизитов в коде программы, но заменяемое значение со временем может понадобиться изменить либо вообще задать его в зависимости от каких то условий, и при этом постоянно дорабатывать программу считаю не очень правильным.
Ниже предлагается вариант реализации механизма автозаполнения реквизитов документов по заданным условиям.
1. Создаем подписку на событие "ПередЗаписьюДокумента_АвтозаполнениеРеквизитов". Источник - "ДокументОбъект", событие - "Перед записью", обработчик "ОбщегоНазначения.ПередЗаписьюДокумента_АвтозаполнениеРеквизитов"
2. Текст процедуры общего модуля "ПередЗаписьюДокумента_АвтозаполнениеРеквизитов" и вспомогательных процедур:
3. Создаем справочник "Параметры автозаполнения документов"
Типы значений реквизитов:
Значение - ЛюбаяСсылка, Булево, Строка, Дата, Число
Значение - ЛюбаяСсылка, Булево, Строка, Дата, Число
Форма списка справочника:
Форма элемента справочника:
Модуль формы элемента справочника:
Как это работает
При срабатывании события "ПередЗаписью" документа выполняется проверка, есть ли элементы справочника с подходящим типом документа и видом операции, если есть, выполняется проверка дополнительных условий, и затем указанные в справочнике реквизиты шапки либо табличной части документа заполняются заданным в справочнике значением.
Замечания
1. Для табличной части реквизит заполняется одновременно для всех строк
2. Предполагается, что синонимы реквизитов объектов метаданных - уникальны в пределах этого объекта
Специальные предложения
(1) Поручик,
спасибо, подумаю :)
возможно, объединю с другими механизмами, пока не опубликованными на сайте
(1) Поручик, Кто это купит?
1. Ошибки проектирования:
Ошибка №1. Поиск по синониму. Если делать, так делать по полному имени Метаданные().ПолноеИмя();
Ошибка №2. Работа при записи, а не перед записью.
Ошибка (сильно субъективная) №3. Использование справочника. По моему гораздо лучше подойдет объект регистр сведений. Тем более там контроль уникальности по измерениям и периодичность.
2. Способы применения? Почему нельзя использовать Перед записью в объекте или подписке на событие? Что мешает работать в конфигураторе?
3. Безопасность. Где гарантия, что сторонняя установка не понаставит того, чего не надо?
(3) awk,
я не считаю это ошибками
1. поиск по синониму делал сознательно, в конце статьи указал, что синонимы в пределах объекта метаданных должны быть уникальны
2. чем вам не нравится событие "ПриЗаписи" ?
3. а мне справочник больше нравится. интуитивнее, что ли. контроль уникальности реализован программно
4. насчет конфигуратора не совсем понял вашу мысль. у нас настройки автозамены выполняют сами бухгалтера, кому как нужно
5. не понаставит. если не поставить галочку "принудительно", то заполняются только незаполненные значения
(4) vdscom,
1. Считаешь ты поиск по синониму ошибкой или нет. Пишешь или нет, что он должен быть уникальным. Это остается ошибкой. То есть действием нарушающим правило. А правило гласит: "Идентификатор должен быть уникальным". Второе правило гласит: "Если что-то может пойти не так и ты об этом знаешь, то оно обязательно пойдет не так".
2. Тем что При записи выполняется после записи объекта в БД, но до окончания транзакции. Это серьезная ошибка.
3. А я и написал, что субъективно. То есть спорно и не факт, что правильно.
4. Что-то неправильное в этом. Если одному надо одно, другому - другое, то вроде реализовано это пользовательскими настройками, зачем огород городить?
5. А если оно должно оставаться пустым?
(5) awk,
1. вся жизнь у нас построена на допущениях. в контексте поставленной передо мной задачи поиск по синонимам меня вполне устраивает. считаете вы это ошибкой или нет. появится необходимость - переделаю, а пока - есть такое выражение - "Лучшее враг хорошего".
2. насчет "ПриЗаписи" - почти согласен
3. тут мы поняли друг друга
4,5. пользовательскими настройками реализовано далеко не все, а только заполнение некоторых стандартных параметров, типа ОсновнаяОрганизация или Ответственный. предложенный механизм - универсальный, заполняй любой параметр любым значением, в зависимости от заданных условий. "а если оно должно оставаться пустым" - ну так не создавайте для этого реквизита правило или наоборот, создайте правило, при определенных условиях записывающее в этот реквизит пустое значение. а если совсем уж везде враги народа мерещатся - настройте права доступа к этому справочнику
1. Зачем делать допущение, что два плюс два равно пять? Всем известно, что два плюс два равно четыре. Так и тут. Зачем делать допущение что синоним неизменен и уникален? Есть имя - оно хоть и изменяемо, но уникально в пределах типа. А полное имя уникально в пределах конфигурации.
2. Что означает почти? Что событие при записи возникает до помещения в базу данных? Или что оно происходит вне транзакции? Или что на ИТС нет рекомендаций? :D
3.
45. Ну хорошо. Допустим. Но посмотреть реализацию на всякий случай можно было? Там реализовано автозаполнение форм при открытии. Почему? Да потому, что пользователь перед записью видит что делает и может повлиять на записываемый реквизит. А если при записи это делать, то может получится следующее:
* Открываем выписку по кредиту
* Смотрим и видим, что в ней сумма нашего долга равна нулю
* Закрываем с записью
И о чудо мы должны 100 тысяч рублей.
А как должно бы было быть:
* Открываем выписку по кредиту
* Смотрим и видим, что в ней сумма нашего долга равна нулю
* Закрываем с записью
(7) awk,
1. еще раз повторюсь, я сознательно сделал это допущение. в контексте моей задачи меня это вполне устраивает. абсолютно и полностью.
2. посмотрел в конфигураторе рабочих баз - в подписке на событие задан обработчик "ПередЗаписью". получается, что в моей статье опечатка и мы спорили ни о чем :)
4,5. опять же, я делаю допущение, что пользователи, когда настраивают параметры автозамены, понимают, что и с какой целью они делают. то есть, в этом вопросе я пользователям доверяю. всесторонней защиты от дурака не было цели создавать. заполнение документа при открытии не устраивает по той простой причине, что для этого нужно дорабатывать каждый документ, пусть и всего одной строчкой кода.
надеюсь, мы друг друга услышали
Он то же доверял.
единственное неудобство, что надо втыкать код в сами модули, но подписки приоткрытии и присоздании пока к сожалению не придумали. на счет продавать вряд ли получится - моя бесплатна :)
Бесплатное автозаполнение реквизитов
Расширение полностью интегрируется в Вашу 1С ничего не меняя в типовой конфигурации, и никак не влияя на обновления . Оно только дополняет форму справочника контрагенты. Также вы можете использовать расширение как временную замену стандартной функции заполнения.
Если вы включили подписку ИТС достаточно просто отключить расширение, либо просто не пользоваться альтернативными кнопками.
Отличительной особенностью нашего расширения является то, что все новые кнопки и функции добавляются программно, то есть даже если через какое-то время в одном из обновлений разработчики внесут изменения в форму и алгоритмы справочника, то с очень большой вероятностью все продолжит работать как и раньше.
Принципы работы
Принцип автозаполнения аналогичен типовому. При вводе нового контрагента нужно указать ИНН и нажать кнопку заполнить (при подключении она появляется дополнительная кнопка рядом с основной) . В уже существующих контрагентах кнопка заполнения появится рядом с полем ИНН.
Подключение и настройка
Краткая инструкция по получению ключа
После этого достаточно один раз указать ключ в форме настроек (откроется автоматически при отсутствии ключа) и дальше можно неограниченно пользоваться сервисом.
Обратите внимание, что данный сервис является бесплатным, поэтому количество данных в нем значительно меньше, чем в стандартной базе ЕГРП. Но все ключевые, данные как правило есть. Наиболее часто, в базе сервиса присутствуют неполные адреса индивидуальных предпринимателей.
Ознакомится с возможностями и ограничениями данного продукта вы можете на странице расширения.
Видео инструкцию к данному материалу можно посмотреть в моем инстаграме - в нем вы найдете много обучающих роликов.
Напоминаю, что Вы всегда можете обратиться ко мне по любым вопросам связанными с доработкой и настройкой 1С
Подписывайтесь на канал и наши группы в социальных сетях, чтобы не пропустить новые публикации.
Читайте также: