1с историявыборапривводе установить программно
У реквизитов документов есть замечательное свойство «История выбора при вводе». Все бы хорошо, но как обычно дьявол кроется в деталях. Для примера возьмем реквизит «Контрагент» документа «ГТДПоИмпорт» (ГТД по импорту), в который обычно заносится не просто элемент из справочника «Контрагенты», а нужна именно таможня. Таким образом, вся наша предыдущая история выбора никуда не годится, так как она не учитывает специфику данного контекста.
Чтобы реализовать свою логику придется немного попрограммировать. Для начала создадим функцию, которая вернет нам список нужных контрагентов:
Данный вариант запроса можно рассматривать только как базовый потому, что чаще всего на практике есть много нюансов, которые можно и даже нужно использовать. Например, ни к чему сканировать все документы в базе, достаточно запросить документы за последний квартал. Тогда наша функция примет следующий вид:
или такой вариант
Нюансов может быть сколько угодно. Например, если в базе используется несколько организаций, то возможно следует добавить отбор по организациям. Или к примеру, если каждый оператор работает со своим отделением таможни, то в запросах следует учитывать текущего оператора.
После того как разобрались с функцией формирования списка, ее следует вызвать. Добавим процедуру вызова в реквизит формы «Контрагент»:
Трудно представить, что документы формируются каждую секунду, хотя такой сценарий и не исключен. Так вот если документов не так много, то упростим жизнь серверу:
Или если хочется совсем уж все и вся автоматизировать, тогда такой вариант:
После всех манипуляций получаем:
Документ «ГТД по импорту» рассмотрен только для демонстрации методики, данное решение может применяться в любом другом документе.
В качестве эпилога
У реквизитов есть еще одно интересное свойство «Создание при вводе». Все бы ничего, но для чего разработчики добавили его к реквизитам отчетов? Не смог придумать сценарий его использования, ведь если создать новый элемент, то какой должен получиться отчет? Если есть у кого какие мысли по этому поводу, бенвенуто в обсуждения…
Мы следим за опытом применения нового интерфейса Такси и стараемся оперативно учитывать замечания, высказываемые партнёрами и пользователями. Поэтому ряд изменений мы решили внести уже в самой ближайшей версии платформы, поскольку считаем их достаточно важными.
"Компактные" формы
Самое главное изменение - это возможность использовать сложные, насыщенные формы, которые существуют в прикладных решениях 8.2, без переработок. Сейчас проблема заключается в том, что при включении интерфейса Такси такие формы выглядят плохо. В первую очередь из-за того, что в новом интерфейсе увеличились шрифты и отступы. Например, у формы, приведённой ниже, оказывается полностью скрыта табличная часть:
Поэтому у управляемой формы мы реализовали новое свойство Вариант масштаба. Если в конфигураторе установить это свойство в значение Компактный, форма автоматически будет выглядеть так:
На "техническом языке" это означает, что:
- В качестве базового шрифта используется системный шрифт "Шрифт диалогов и меню";
- Элементы формы имеют размеры, максимально соответствующие размерам элементов в интерфейсе версии 8.2;
- Расстояния между элементами формы максимально соответствуют расстояниям в интерфейсе версии 8.2;
- А табличный документ, диаграмма, диаграмма Ганта, дендрограмма, графическая схема и географическая схема отображаются без увеличения масштаба.
Такой вариант работы формы не является основным. "Компактные" формы диссонируют с остальным интерфейсом, и это лишь вспомогательное решение на переходный период. Однако оно позволяет с минимальными затратами перевести всё прикладное решение на новую платформу. А затем уже постепенно дорабатывать сложные формы для комфортной работы в новом интерфейсе.
"Компактностью" форм можно управлять не только для каждой формы отдельно, но и для всего прикладного решения в целом. Для этого у объекта НастройкиКлиентскогоПриложения мы реализовали аналогичное свойство, которое можно установить в значение Компактный. Тогда все формы будут "компактными" кроме тех, для которых в явном виде указано, что они должны отображаться в обычном масштабе.
Отключение истории выбора
Другое изменение, которое оказалось востребованным и важным, это возможность отключения истории выбора в поле ввода. Есть целый ряд задач, когда пользователю совершенно не нужно (и даже вредно) видеть значения, которые он выбирал в поле ввода до этого. Например, когда необходимо выбирать и закрывать заказы покупателей. Естественно, в этом случае он должен видеть только те заказы, которые он не обрабатывал ранее. И показ истории выбора, в которой находятся уже обработанные и закрытые заказы, будет только мешать, и сбивать его с толка.
Поэтому у многих прикладных объектов, а также у реквизитов, измерений, ресурсов и др. объектов конфигурации мы реализовали новое свойство ИсторияВыбораПриВводе, которое позволяет гибко управлять отображением истории выбора в различных ситуациях.
Программная настройка панелей
Следующее важное изменение - это возможность программного изменения состава и расположения панелей в основном окне клиентского приложения. Другими словами теперь можно программно настраивать рабочее пространство пользователя в зависимости от каких-либо факторов.
Например, в зависимости от его роли. Или в зависимости от разрешения экрана, на котором запускается 1С:Предприятие. Основной объект, с помощью которого выполняется настройка, это НастройкиИнтерфейсаКлиентскогоПриложения. Он позволяет работать как с настройками, заданными в конфигураторе, разработчиком, так и с настройками, которые пользователь установил для себя в режиме 1С:Предприятие. В первом случае его нужно создать конструктором, а во втором случае его нужно прочитать из хранилища системных настроек.
Ниже приведён пример процедуры ПриНачалеРаботыСистемы и процедуры общего модуля, которые позволяют установить определенное расположение панелей в зависимости от размеров экрана, на котором запускается 1С:Предприятие.
Подменю "Создать" в журналах
Ещё одним изменением, может быть не таким значительным, но, несомненно, полезным, является автоматическое формирование подменю "Создать" в журналах документов.
Раньше, если журнал содержал несколько разных документов, при нажатии кнопки Создать в отдельном окне открывался список доступных документов. Из этого списка нужно было выбрать требуемый документ.
Теперь в журналах, содержащих несколько документов, платформа автоматически создаёт не кнопку, а подменю, в котором содержатся доступные документы. Это упрощает создание новых документов и не отвлекает пользователя от основного контекста работы:
Изменение палитры
Мы немного изменили цвета панели разделов и панели команд текущего раздела. На некоторых мониторах старые цвета выглядели плохо. Теперь они стали более "спокойными". Кроме этого панель команд, отображаемая вертикально, теперь не имеет заголовка "Меню функций", как раньше.
Управление масштабом табличных документов
При проектировании размеров элементов интерфейса Такси мы исходили из определённого размера шрифта, который стандартно используется в системе. Однако некоторые прикладные решения используют увеличенный шрифт, например, при отображении отчётов. В результате такие отчёты в новом интерфейсе выглядят "слишком большими".
Поэтому мы добавили новое свойство РежимМасштабированияПросмотра для поля формы, отображающего табличный документ. С помощью этого свойства можно принудительно уменьшить масштаб, в котором отображается табличный документ, если в этом документе используется нестандартный размер шрифта.
Передача дополнительных параметров в открываемые формы
Ещё одно полезное изменение связано с тем, что в интерфейсе Такси можно создавать новые элементы данных прямо из поля ввода. В его выпадающем списке есть кнопка создания нового элемента.
Раньше подобная функциональность реализовывалась в прикладных решениях с помощью встроенного языка. При этом новой форме автоматически передавались параметры, связанные с отбором. А кроме этого могли передаваться и другие параметры, уточняющие характеристики создаваемого элемента данных.
Теперь, в новом интерфейсе, открытие формы нового элемента может происходить автоматически. Поэтому к формам прикладных объектов мы добавили новый стандартный параметр ДополнительныеПараметры. В него из поля ввода автоматически передаются параметры выбора и связи параметров выбора, описанные как дополнительные (не связанные с отбором). Эти значения теперь тоже можно анализировать при создании нового элемента и открытии его формы.
Кроме этого ДополнительныеПараметры платформа передаёт из поля ввода не только в форму нового элемента, но и в форму выбора. Таким образом, если пользователь из поля ввода открывает форму выбора и уже из неё создаёт новый элемент, то платформа автоматически передаст ДополнительныеПараметры по всей этой цепочке в форму нового элемента.
Наверное, большинство внедренцев (такси интерфейс) уже наслышаны, что кнопка выбора «переехала» в выпадающий список и для открытия формы выбора объекта из поля ввода необходимо выполнить два клика. И программистам, которые только осваиваются с новым интерфейсом не сразу понятно как вернуть старое поведение. Эта статья должна вам помочь разобраться в этой проблеме.
В платформе «1С:Предприятие 8» в режиме совместимости интерфейса «Такси» было изменено поведение поля ввода при выборе значения. Некоторых пользователей это начало раздражать и так же проявились некоторые ошибки, например, когда выбрать значение можно было только с помощью обработки события выбора. При переходе на новый интерфейс логика перестала работать как задумывалось или начала функционировать не так как ожидалось.
Давайте разберемся с изменениями в юзабилити и рассмотрим какие настройки влияют на элемент формы поле ввода. По умолчанию, в «Такси», отображение будет примерно таким:
- надпись «Бухгалтерия» — это история выбора;
- « Показать все » — кнопка выбора, она переехала из поля ввода в это окно;
- « + »— создание нового элемента.
(А) Отключение истории выбора
История выбора отключается в свойствах поля ввода:
ИсторияВыбораПриВводе : Не использовать , после отключения пропала ссылка на элемент «Бухгалтерия».
(Б) Отключение кнопки создать
Кнопка создать отключается в свойствах поля ввода:
КнопкаСоздания : Нет , после отключения пропала кнопка « + ».
Комбинация (А+Б)
Отключены история выбора и кнопка создания
(В) Кнопка выбора в поле ввода
Кнопка выбора добавляется в свойствах поля ввода:
ОтображениеКнопкиВыбора: В поле ввода , после добавления пропала кнопка « Показать все » .
Комбинация (А+Б+В)
Отключены история выбора, кнопка создания и добавлена кнопка выбора в поле ввода
(Г) Отключение быстрый выбор
Отключение этого свойства не приведет к изменению поведения поля ввода, если объект с которым связано поле ввода не использует «Быстрый выбор». Детально об этом можно посмотреть в видео в конце статьи.
(Д) Отключение кнопки выпадающего списка
Кнопка выпадающего списка отключается в свойствах поля ввода:
КнопкаВыпадающегоСписка : Нет
Комбинация (А+Б+В+Г+Д)
Отключены история выбора, кнопка создания, выпадающего списка и добавлена кнопка выбора в поле ввода
(Е) Отключение редактирования текста
Редактирование текста отключается в свойствах поля ввода:
РедактированиеТекста : Ложь , отображение не будет отличаться от «по умолчанию», но нельзя будет ввести текст в поле ввода.
Комбинация (А+Б+В+Г+Д+Е)
Отключены история выбора, кнопка создания, выпадающего списка, редактирование текста и добавлена кнопка выбора в поле ввода
С помощью, комбинации всех описанных настроек можно вернутся к предыдущему отображению или юзабилити поля ввода в режиме совместимости интерфейса «Такси».
В видео, что ниже более детально описан флаг Быстрый выбор и ошибку юзабилити платформы Введите строку для поиска .
Как заполнить табличную часть формы программно? 8
Нужно по кнопке Заполнить - сформировать данные для заполнения табличных частей и заполнить их. Форма имеет вид: Рядом с кнопкой Записать и закрыть добавлена кнопка Заполнить документ , код ее команды: // Код заполнения ТЧ НаСервере П 17 правил для составления оптимального ЗАПРОСа к данным базы 1С 44
Для формирования и выполнения запросов к таблицам базы данных в платформе 1С используется специальный объект языка программирования Запрос . Создается этот объект вызовом конструкции Новый Запрос . Запрос удобно использовать, когда требуется получ 1C и Google Maps 21
была поставлена задача отображения на географической карте медицинских учреждений. После обзора предлагаемых решений был выбран сервис google. Но так же подобного рода подход будет работать и с картами сервиса yandex. Во время решения задачи было реш 1C: Enterprise Development Tools 50
И вот случилось долгожданное: Вышел 1C: Enterprise Development Tools - это среда для разработки конфигурации в IDE Eclipse. С сайта 1С: « 1C:Enterprise Development Tools » – это инструмент нового поколения для разработчиков бизнес-приложений систем 1С Предприятие что это? 12
Что такое 1С? 1С — это фирма , у которой одно из направлений деятельности — разработка программного обеспечения для автоматизации бизнес-процессов предприятий. « 1С:Предприятие » - конкретный продукт, который выпускает компания 1С . Что такое Посмотреть все результаты поиска похожих
Еще в этой же категории
Как обновить динамический список или реквизит на форме клиента? 22
Если вы, открыв форму справочника или документа, выполнили некоторое действие, код который должен изменить состояние данных в динамических списках или значение реквизита. Данные изменены, но в открытой форме осталось все как было, можно конечно закр Динамический список ~ Как на управляемой форме разместить список регистра сведений с отбором? 18
Решение рассмотрено для элемента справочника (Контрагент и регистр КонтактнаяИнформация) 1. Создание реквизита: Добавляем новый реквизит формы (. не путать с реквизитом справочника . ) с типом " ДинамическийСписок" В поле " Основная табли Как установить параметр динамического списка? 16
Когда используете для вывода данных динамический список и произвольный запрос, то бывают ситуации когда надо указать параметр используемый в этом запросе. Ниже пример вывода данных регистра сведений в карточке клиента Для вывода используется исп Форма ~ Программное создание таблицы значений с условным оформлением 12
Как создать на форме таблицу и сделать для нее подсветку содержимого колонки в строке по условию? Итак для начала нам надо добавить реквизиты в форму. Для этого у нас есть метод: ИзменитьРеквизиты(). Перед тем как его использовать мы сформируем ма Поле выбора ~ Заполнение списка значений в элементе поле выбора на форме 10
//Заполнение списка перебором данных // Элемент формы МетаданныеВыбор имеет тип - Произвольный, Использование - Режим выбора из Списка, кнопка списка Для Каждого Метаданное из Метаданные.РегламентныеЗадания Цикл ЭлементыФормы.МетаданныеВыбор.Спи Посмотреть все в категории Работа с Формой (Диалог) и её элементами
Для установки отбора используется свойство "Отбор" у менеджеров списков объектов, например, для открытия списка договоров определенного контрагента можно написать следующий код:
В данном случае мы применили вид сравнения "Равно", но не указывали его т.к. оно стоит по умолчанию. Используя разные значения вида сравнения мы значительно расширяем возможности.
Например, у нас в базе контрагент является и продавцом и покупателем, при этом договоры находятся в соответствующей группе внутри справочника. Поэтому мы сделаем отбор не только на самого контрагента, но и на группу "Группа Покупатели" в которой находится договор:
Похожие FAQ
17 правил для составления оптимального ЗАПРОСа к данным базы 1С 44
Для формирования и выполнения запросов к таблицам базы данных в платформе 1С используется специальный объект языка программирования Запрос . Создается этот объект вызовом конструкции Новый Запрос . Запрос удобно использовать, когда требуется получ 1C медленно работает по сети с базой на SQL Server 20
Данное обстоятельство может быть обусловлено многими причинами. Одна из них - неоптимальная настройка MS SQL . Перечислим неоптимальности в настройке: 1) Неправильно указанный сетевой протокол, используемый для взаимодействия 1С с SQL Server. П 1C: Enterprise Development Tools 50
И вот случилось долгожданное: Вышел 1C: Enterprise Development Tools - это среда для разработки конфигурации в IDE Eclipse. С сайта 1С: « 1C:Enterprise Development Tools » – это инструмент нового поколения для разработчиков бизнес-приложений систем 1С Предприятие что это? 12
Что такое 1С? 1С — это фирма , у которой одно из направлений деятельности — разработка программного обеспечения для автоматизации бизнес-процессов предприятий. « 1С:Предприятие » - конкретный продукт, который выпускает компания 1С . Что такое Cклонения по падежам 6
НаКлиенте Процедура Команда1(Команда) ФИО = " Иванов Иван Иванович" ; Падеж = 2; Пол = 1; Результат = СклонениеФИО(ФИО, Падеж, пол); Сообщить(Результат); КонецПроцедуры НаСервере Функция СклонениеФИО(ФИО, Падеж, пол) Результат = " " ; Посмотреть все результаты поиска похожих
Еще в этой же категории
Как обновить динамический список или реквизит на форме клиента? 22
Если вы, открыв форму справочника или документа, выполнили некоторое действие, код который должен изменить состояние данных в динамических списках или значение реквизита. Данные изменены, но в открытой форме осталось все как было, можно конечно закр Динамический список ~ Как на управляемой форме разместить список регистра сведений с отбором? 18
Решение рассмотрено для элемента справочника (Контрагент и регистр КонтактнаяИнформация) 1. Создание реквизита: Добавляем новый реквизит формы (. не путать с реквизитом справочника . ) с типом " ДинамическийСписок" В поле " Основная табли Как установить параметр динамического списка? 16
Когда используете для вывода данных динамический список и произвольный запрос, то бывают ситуации когда надо указать параметр используемый в этом запросе. Ниже пример вывода данных регистра сведений в карточке клиента Для вывода используется исп Форма ~ Программное создание таблицы значений с условным оформлением 12
Как создать на форме таблицу и сделать для нее подсветку содержимого колонки в строке по условию? Итак для начала нам надо добавить реквизиты в форму. Для этого у нас есть метод: ИзменитьРеквизиты(). Перед тем как его использовать мы сформируем ма Поле выбора ~ Заполнение списка значений в элементе поле выбора на форме 10
//Заполнение списка перебором данных // Элемент формы МетаданныеВыбор имеет тип - Произвольный, Использование - Режим выбора из Списка, кнопка списка Для Каждого Метаданное из Метаданные.РегламентныеЗадания Цикл ЭлементыФормы.МетаданныеВыбор.Спи Посмотреть все в категории Работа с Формой (Диалог) и её элементами
Читайте также: