1с ввести строку управляемые формы

Диалог ввода данных в 1С

reklama http

Ввод числа

Для ввода числа в 1С можно использовать одну из двух функций: ВвестиЧисло или ПоказатьВводЧисла. ВвестиЧисло синхронная функция, ПоказатьВводЧисла — асинхронная. ВвестиЧисло считается устаревшей, так как будет работать только если разрешено использование модальности.

Рассмотрим обе функции на примерах.

ВвестиЧисло

ПоказатьВводЧисла

vvod chisla

Ввод строки

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

Рассмотрим обе функции на примерах.

ВвестиСтроку

ПоказатьВводСтроки

vvod stroki

Ввод даты

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

Рассмотрим обе функции на примерах.

ВвестиДату

ПоказатьВводДаты

vvod dati

Ввод значения

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

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

Источник

Функции ВвестиЗначение, ВвестиСтроку, ВвестиДату, ВвестиЧисло в 1С 8

ВвестиДату(), ВвестиЧисло(), ВвестиСтроку(), ВвестиЗначение() — предопределенные функции 1С 8.3, облегчающие процесс разработки конфигурации.

Эти функции вызывают системную форму ввода ввода значений.

vvestidatu

ВвестиДату, ВвестиЧисло, ВвестиСтроку

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

Перем Число;
Если ВвестиЧисло(Число, «Введите число») Тогда
Сообщить(«Введенное значение: «+Число);
Иначе
Сообщить(«Значение не было введено»);
КонецЕсли;

ВвестиЗначение

ВвестиЗначение — более интересная функция, позволяет задать расширенный набор типов, в том числе ссылочных данных.

ВыбЗнач = Неопределено;
Массив = Новый Массив;
Массив.Добавить(Тип(«Число»));
Массив.Добавить(Тип(«Строка»));
Массив.Добавить(Тип(«Дата»));
КЧ = Новый КвалификаторыЧисла(12,2);
КС = Новый КвалификаторыСтроки(20);
КД = Новый КвалификаторыДаты(ЧастиДаты.Дата);
ОписаниеТипов = Новый ОписаниеТипов(Массив, КЧ, КС, КД);
Если ВвестиЗначение(ВыбЗнач, «Введите значение», ОписаниеТипов) Тогда
// обработка введенного значения
Сообщить(«Введенное значение: «+ВыбЗнач);
КонецЕсли;

К сожалению, мы физически не можем проконсультировать бесплатно всех желающих, но наша команда будет рада оказать услуги по внедрению и обслуживанию 1С. Более подробно о наших услугах можно узнать на странице Услуги 1С или просто позвоните по телефону +7 (499) 350 29 00. Мы работаем в Москве и области.

Источник

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

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

Строка в 1С

Строка это примитивный тип. Создать переменную типа строка достаточно просто. Нужно переменной присвоить какое-то значение в кавычках.

Метод Сообщить в 1С

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

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

Если мы код выше применим на какой-нибудь управляемой форме, то получим такое сообщение.

1 3

Как объединить строки в 1С

В платформе 1С 8.3 имеется возможность объединять строки. Эта операция называется конкатенация, и выполняется при помощи оператора +.

Можно объединить строки, просто сложив две строки в кавычках. Вот так

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

Объединять можно и несколько строк.

Перенос строки в 1С

Все строки, которые мы делали ранее, представляли собой одну длинную строку, что, согласитесь, бывает иногда не совсем удобно. Чтобы не испытывать неудобства, в платформе 1С можно переносить строки, тем самым получая многострочные строки. Для этих целей имеется символ переноса строки – «|» (вертикальная черта).

Наша строка с переносом должна иметь следующий вид.

В случае переноса, после окончания ряда строки не должно быть ни каких символов, а каждая новая строка должна начинаться с символа переноса строки «|».

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

2 3

Причём, обращу ваше внимание, что не достаточно просто написать символ «|» в строке, нужно этот символ, именно, перенести на новую строку в коде. Поэтому при написании такой строки:

Будет выводиться неверный результат:

3 3

Кавычки в строке в 1С

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

Будет выдавать следующий результат:

4 3

Пустая строка в 1С

А если нам нужно задать пустую строку? В этом случае достаточно просто написать две кавычки рядом, но так, чтобы между ними не было пробела.

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

5 3

Также, эта функция вернет Истина, если в строке одни пробелы.

6 3

В этом примере я воспользовался отладкой в коде.

Перевод примитивных типов в строку

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

В коде ниже, преобразуются число, булево значение Истина и дата (текущая дата) в строку, а потом все это выводится в сообщении.

У этого кода будет следующий результат:

7 3

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

8 3

Также можно операцией конкатенацией соединять переменную типа строка с примитивной переменной не строкового типа.

В обоих случаях код нормально отработается.

9 3

Конкатенацией мы можем соединить строку с другим примитивным типом, но не можем, к примеру, соединить дату и булево.

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

Строка 1С в клиентском и серверном контексте

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

И также, для строк имеется возможность сериализации: т.е. можно перенести переменную с типом строка с клиента на сервер и наоборот:

Поэтому, и такой код будет вполне рабочим:

И наоборот, код также будет работать:

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

Использование типа Строка в реквизитах объектов

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

10 3

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

11 3

Если мы укажем, что длина строки фиксированная, то длина строки реквизита объекта всегда будет приводиться к максимальной (заполняться пробелами).

Например, у реквизита ПолноеНаименование справочника Товары, я указал длину строки 10, и также отметил, что это фиксированная длина.

12 3

Если я запишу какое-то значение в поле формы, от оно автоматически заполнится пробелами до конца строки, и точно также с пробелами запишется в базу данных.

13 3

А если бы мы указали, что допустимая длинна – переменная.

14 3

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

15 3

Также у строки можно указать, что она имеет неограниченную длину

16 3

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

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

Реквизит управляемой формы 1С также может иметь тип Строка. Достаточно это указать в свойстве Тип реквизита.

17 2

Причем нам нужно нажать на кнопку «…» свойства, чтобы получить доступ к дополнительным свойствам строки.

18 2

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

19 2

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

Если мы перетащим реквизит в элементы формы, то будет создано поле ввода, в которое пользователь может вводить любую строковую информацию.

20 2

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

21 2

Другие статьи о примитивных типах:

Более подробно и основательно начальные вопросы программирования в 1С есть вы можете изучить в
Книга «Программировать в 1С за 11 шагов»

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

1C %D0%B2 %D0%B6%D0%B5%D0%BB%D1%82%D0%BE%D0%BC %D1%86%D0%B2%D0%B5%D1%82%D0%B5 3D

Книга написана понятным и простым языком — для новичка.

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

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

1C taxi blog

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

Эти книги, плюс книга по программированию оперативного учета имеются в едином комплекте: комплект книг по разработке в 1С.
Только для читателей моего блога,
промо-код на скидку в 300 рублей на весь комплект: blog


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

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

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

Источник

Ввод по строке для управляемых форм

Прочитал статью Переопределение ввода по строке в управляемой форме 1С. Ну, у меня получилось как-то проще. ну, для более простых вещей)

Тестировалось на 1С платформе 8.3.6

Осуществляется поиск по телефону и наименованию

Скачать файлы

Специальные предложения

f71a8c4e70c0ff03708038e2b0210df8

9c2808762ec294cd4c55532520b9c521

895fb1e0f7afc3c0ed0d73bf5ee9d9d0

egais promo

b34b292ed32e9501f98cc31df406353e

789363929b9f37ddc5641a069a5fe52e

5b19cd6c4494a88b2abefce64a1b7565

199e2be4fd21dd8f4209d8ec34616c76

Обновление 08.10.20 11:20

e3571ce322f7725dff53798654a9330c

См. также

Генерация кода управляемой формы (декомпиляция элементов) Промо

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

29.09.2014 117165 9511 ekaruk 139

Демосцена на 1С

Графическое демо «Плазма». Олдскульный эффект из 90-х. Воссоздан по исходнику на ассемблере x86. Посвящается Дню программиста 2021.

12.09.2021 1488 55 saver77 9

Исправление ошибки формирования КУДИР в части возврата от покупателя по безналу в отчете о розничных продажах. 1С:Бухгалтерия 8.3

29.07.2021 1095 8 PS_ 1

Исправление ошибки подбора сотрудника в ЗУП 3.1.8.121

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

23.07.2021 1660 9 LediStile 5

Цель использования: разгрузить процессор, когда два или более пользователей пытаются провести документ. 1С пытается заблокировать таблицы, но делает это без пауз, и загружает процессор на 100%. При этом пользователи практически «встают», и нормальная работа прекращается. Компонента (или патч) позволяет решить эту проблему и нормализовать работу пользователей. Особенно актуально при работе в режиме сервера терминалов.

13.12.2007 57468 7806 romix 79

Графическая нотация описания языка запросов 1С (черновик)

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

25.04.2021 1849 30 Anything 10

Работа с кодом и его выполнение в режиме 1С: Предприятие (обычные формы)

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

11.03.2021 3326 126 Nik_Name 8

Вызов демонов в 1С

Вызываем демонов прямо из 1С!

28.01.2021 9371 175 the1 38

Пример работы MiracleV8.dll в режиме Управляемого приложения (тонкий клиент) Промо

Пример конфигурации Управляемое приложение с использованием MiracleV8.dll

09.04.2012 22596 223 Abadonna 26

Универсальное сворачивание табличной части документа

14.12.2020 2689 48 Andrei_Ivanov 4

Простая конфигурация для заполнения школьного расписания

Решение задачи контрольной работы.

12.12.2020 3204 53 vova-1c 29

Расширение для тех, кто не знает как убрать префиксы и лидирующие нули в печатных формах всех документов УТ 11.4

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

09.09.2020 3733 152 VID1234 6

Получение ссылки из форматированной строки

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

05.06.2020 5129 0 VZhulanov 1

Как сохранить данные табличного поля в табличный документ / файл Excel программно

31.05.2020 7251 0 rpashkovsky 16

Заполнение контрагентов по ИНН. Назад в будущее

Что делать, если Ваш клиент не смог выйти из каменного века и вместо вменяемой часто модифицируемой под нужды современного мира конфигурации, у него неподъемный мамонт, который пережил несколько ледниковых эпох, такой неуклюжий, умирающий, но близкий к бизнесу и родной сердцу? Проблемы начинаются тогда, когда у этого мамонта отваливаются зубья, или его обладатель поглядывает на современные конфигурации и начинает желать новшеств в виде весоподъемности и скорости самолета. Да вообще и чтобы все, что должно работать, работало в конце концов, как, например, внезапно умерший сервис 1С:Контрагент! А у некоторых мамонтов, он, совершенно точно, провонял и усох. И вот как положить этот артефакт в микроволновку времени и вернуть к работоспособному состоянию.

12.05.2020 4216 0 G.Shatrov 6

Переопределение ввода по строке в управляемой форме 1С

Повествование о событиях: «Автоподбор», «ОкончаниеВводаТекста», «ПриПолученииДанныхВыбора»; о глобальном методе «ПолучитьДанныеВыбора»; и о том, как с их помощью полностью переопределить стандартный автоподбор (ввод по строке) для поля управляемой формы.

Источник

Переопределение ввода по строке в управляемой форме 1С

Предыстория

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

Механика

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

Все начинается с поля ввода формы, у которого есть события «Автоподбор» и «ПриОкончанииВводаТекста».

Событие «АвтоПодбор» возникает при остановке ввода текста или нажатии на кнопку «стрелка вниз».

Событие «ОкончаниеВводаТекста» вызывается, как нам сообщает справка, при формировании значения из текста ввода. Кстати, это событие интересно тем, что если значение не сформировано, система не даст нам выйти из режима редактирования элемента. Иными словами, если введенный в поле текст не соответствует какому либо значению из данных выбора, то редактирование не будет завершено.

Обращаясь к труду «Разработка управляемого интерфейса» госпожи Хрусталевой и прочих уважаемых авторов, находим упоминание о методе «ПолучитьДанныеВыбора». Если спросить об этом методе синтаксис помощник, он выдаст нам список методов менеджеров для всех видов объектов платформы. Но, что толку от методов менеджеров, которые выполняются на сервере, если серверные вызовы нам недоступны? На самом деле, этот вопрос здесь, только по той причине, что если бы я был более внимательным человеком, я сразу решил бы свою задачу, и никакой статьи не появилось бы. Достаточно просто пролистать до конца список ссылок, и в конце обнаружится глобальный метод «ПолучитьДанныеВыбора». С помощью этого метода мы на клиенте можем получить данные выбора для любого ссылочного объекта системы, что дает возможность переопределить стандартный алгоритм получения выбора данных. Например, для поля строчного типа, у которого вообще нет стандартных данных выбора, использовать алгоритм справочника «Контрагенты».

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

Задача

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

Реализовать в форме документа «РасходТовара» подбор покупателя по ФИО.

Решать сохранение нового покупателя и его ФИО не будем, так как к «вводу по строке» это не относится.

Решение:

Добавим в конфигурацию «Управляемое приложение» новый периодический регистр сведений «ФИОКонтрагентов». Периодичность «день», единственное и ведущее измерение «Контрагент» (Тип(«СправочникСсылка.Контрагенты»)), ресурсы «Фамилия», «Имя», «Отчество» (Тип(«Строка(50)»)).

На форме документа «РасходТовара» также добавим три новых реквизита «ПокупательФамилия», «ПокупательИмя», «ПокупательОтчество». Также, для удобства, добавим кнопку и команду «ОчиститьФИО».

В модуле формы реализуем метод «ПолучитьДанныеВыбораПоФИО» с директивой компиляции &НаКлиенте

В модуле менеджера справочника «Контрагенты» реализуем обработчик «ОбработкаПолученияДанныхВыбора»

В модуле менеджера регистра сведений «ФИОКонтрагентов» реализуем экспортную функцию

«ПолучитьДанныеВыбораФИО»

Теперь определим в форме документа обработчики «ФамилияАвтоПодбор», «ИмяАвтоПодбор», «ОтчествоАвтоПодбор».

Готово! Можем заходить и проверять, что у нас получилось.

Решенный вариант можно получить с помощью обновления (cfu) в приложении к статье. Для этого создайте из «Демонстрационной конфигурации «Управляемое приложение» (1.0.16.1)» файл поставки и обновите его приложенным файлом. Для тех, кто редко делает поставки вот нехитрая процедура:

Источник

Понравилась статья? Поделить с друзьями:
Добавить комментарий
  • Как сделать успешный бизнес на ритуальных услугах
  • Выездной кейтеринг в России
  • Риски бизнеса: без чего не обойтись на пути к успеху
  • 1с ввести значение управляемые формы
  • 1с в форме списка события