1с найти стандартный реквизит

Обновлено: 08.07.2024

С вами образовательный канал по изучению платформы 1С.

Уже несколько уроков подряд мы изучаем один и тот же объект - Справочники.

Почему так долго и зачем так много?

Ответ прост - на этом объекте построен весь остальной функционал, который мы будем с вами выполнять.

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

Именно для этого Справочники изучаются несколько уроков подряд, так как изучив из подробно, будет проще работать со всеми остальными объектами! А все из-за того, что у большинства объектов все будет делаться именно так же!

Давайте сегодня закрепим свои знания по созданию реквизитов и размещения их на формах.

Создадим новый справочник "Контрагенты" (Рисунок 1).

Контрагенты - это такое понятие, которое включает в себя одновременно два понятия: Покупатели и Поставщики. Под этим одним словом подразумевают кого-то одного или сразу всех вместе.

Справочник "Контрагенты" - это поставщики и покупатели, а значит есть уже какая-то группировка - то есть разбитие справочника на две группы: поставщики и покупатели.

Таким образом, мы понимаем, что этот справочник должен быть иерархическим с видом: иерархия групп и элементов (Рисунок 2).

Справочник имеет два стандартных реквизита: Код и Наименование. Эти два реквизита не всегда отображают ту сущность, которая нам необходима. В этом случае реквизиты отключаются (это рассматривалось тут) или переименовываются! Я воспользуюсь вторым случаем, просто переименую реквизит "Наименование" в "Идентификатор (Имя)" (Рисунок 3).

Идентификатор (Имя) - это название поставщика или покупателя.

Перейдем на вкладку "Данные" и добавим новый реквизит "ПолныйИдентификатор" (Рисунок 4).

Напомню, что у реквизитов могут быть разные типы (их еще называют типы данных). Типы могут быть следующими:

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

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

Если поставим дата, то будет только два варианта: дата или дата и время.

Если поставим булево, то это поле будет в виде флажка (галочки) и будет принимать следующие значения: когда галочка стоит -это истина, когда галочка снята - это ложь.

Поэтому, в данной ситуации нас устраивает строка - этот тип стоит по умолчанию лишь потому, что он используется чаще всего! Именно поэтому выбираем тип - строка и указываем дину - 35.

Перейдем теперь в пользовательский режим и проверим наши изменения (Рисунок 5).

В обычном приложении у элемента формы 1С 8.3 было свойство "Значение", доступное как для чтения, так и для записи. Какой аналог в управляемом приложении?

Элементы формы 1С 8.3 могут содержать реквизиты двух видов: реквизиты объекта 1С и реквизиты формы.



Красным помечен реквизит объекта 1С Контрагент, а зеленым – реквизит формы в 1С.

Интерактивно выберем эти элементы в пользовательском режиме 1С и попробуем прочитать их «программно» кнопкой «Прочитать».



Если читать значения реквизитов в клиентской процедуре, то код для 1С Предприятия будет следующий:






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

2. Как получить значения из элементов формы 1С

Чтобы получить значения из элементов формы 1С, нам потребуется серверный вызов:



Именно на сервере у элемента формы 1С 8.3 становится доступно свойство ПутьКДанным, по которому его можно извлечь либо из Объекта, который имеет тип ДанныеФормыСтруктура:



…либо из Формы, которая имеет тип ФормаКлиентскогоПриложения:




Форма и ее элементы не видны на сервере без контекста. То есть код для 1С:Предприятия выдаст множество ошибок.

Также Форму нельзя передать как параметр в процедуру и функцию на сервер или в общий модуль.




Еще хочется разобрать момент, когда нам возможно увидеть состояние различающихся значений в элементе форме 1С и в объекте. Это возможно в событии элемента ОбработкаВыбора.
Например, при значении поля Контрагент - Ассоль, мы выбрали контрагента Бакалея:

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

Ниже приведены функции позволяющие проверить наличие заданных реквизитов в объектах конфигурации:

Разместил: EMigachev  Версии: | 8.x | 8.2 УП | 8.3 |  Дата: 06.07.2015   Прочитано: 56561

Распечатать

Похожие FAQ

17 правил для составления оптимального ЗАПРОСа к данным базы 1С  42
Для формирования и выполнения запросов к таблицам базы данных в платформе 1С используется специальный объект языка программирования Запрос . Создается этот объект вызовом конструкции Новый Запрос . Запрос удобно использовать, когда требуется получ 1С Предприятие что это?  11
Что такое 1С? 1С — это фирма , у которой одно из направлений деятельности — разработка программного обеспечения для автоматизации бизнес-процессов предприятий. « 1С:Предприятие » - конкретный продукт, который выпускает компания 1С . Что такое COM-подключение к базе 7.7 из 8.2 1С  6
Если код выполняется на стороне клиента, то необходимо наличие базы 7.7 на локальной машине. Пример (На форме объекта присутствует реквизит Таблица(ТаблицаЗначений)): НаКлиенте Процедура Загрузки() ПутьКБазе=" D:ВашаБаза1с77" ; Пользователь= Cклонения по падежам  6
НаКлиенте Процедура Команда1(Команда) ФИО = " Иванов Иван Иванович" ; Падеж = 2; Пол = 1; Результат = СклонениеФИО(ФИО, Падеж, пол); Сообщить(Результат); КонецПроцедуры НаСервере Функция СклонениеФИО(ФИО, Падеж, пол) Результат = " " ; Google maps, поиск оптимального маршрута  5
В данном посте хочу коснуться основных аспектов построения оптимального маршрута с использованием API Google maps. Исходные данные для построения маршрута: * Географические координаты объектов, которые хранятся в базе; * Координаты начальной и коне Посмотреть все результаты поиска похожих

Еще в этой же категории

Как программно получить Картинку из базы и сохранить ее преобразовав в другой формат?  4
//Получим и сохраним Общую картинку из библиотеку картинок конфигурации ИмяКартинки = Метаданные.ОбщиеКартинки.OutlookExpress; ВыбраннаяКартинка = БиблиотекаКартинок ; // Сохраним полученную картинку в c:temp ВыбраннаяКартинка.Записать(" c:te Получить список Справочников конфигурации  1
НаКлиенте Процедура ПоКнопкеЧтениеИзМетаданных(Команда) // Вставить содержимое обработчика. Перем СписокСправочников; СписокСправочников = Новый СписокЗначений; СписокСправочников = СправочникиИзМетаданных(); Для Сч = 0 По СписокСправочников Получить список Документов конфигурации  0
//ЭлементыФормы.ОбъектПоиска - Поле Выбора на форме СписокВыбора = ЭлементыФормы.ОбъектПоиска.СписокВыбора; Для Каждого Документ Из Метаданные.Документы Цикл //Проверим, есть ли права на просмотр? Да- добавляем, Нет - пропускаем Если ПравоДосту Перебор Основных Реквизитов формы  0
//Перебор Основных Реквизитов формы Для Каждого Рек из ЭтаФорма.Метаданные().Реквизиты Цикл Сообщить(рек.Имя+" - " +рек.Синоним+" - " +Строка(рек.Тип)); КонецЦикла; // или так Для Каждого Рек из Метаданные().Реквизиты Цикл Сообщить(рек.Имя+" Пример обращения к метаданным  0
спрНомен = Метаданные.Справочники.Номенклатура; Сообщить(" Имя справочника " " " + спрНомен.Имя + " " " " ); Сообщить(" Комментарий " + спрНомен.Комментарий); Сообщить(" ВидИерархии " + спрНомен.ВидИерархии); Сообщить(" КоличествоУровней " + Посмотреть все в категории Метаданные

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

Ниже приведены функции позволяющие проверить наличие заданных реквизитов в объектах конфигурации:

Разместил: EMigachev  Версии: | 8.x | 8.2 УП | 8.3 |  Дата: 06.07.2015   Прочитано: 56562

Распечатать

Похожие FAQ

17 правил для составления оптимального ЗАПРОСа к данным базы 1С  42
Для формирования и выполнения запросов к таблицам базы данных в платформе 1С используется специальный объект языка программирования Запрос . Создается этот объект вызовом конструкции Новый Запрос . Запрос удобно использовать, когда требуется получ 1С Предприятие что это?  11
Что такое 1С? 1С — это фирма , у которой одно из направлений деятельности — разработка программного обеспечения для автоматизации бизнес-процессов предприятий. « 1С:Предприятие » - конкретный продукт, который выпускает компания 1С . Что такое COM-подключение к базе 7.7 из 8.2 1С  6
Если код выполняется на стороне клиента, то необходимо наличие базы 7.7 на локальной машине. Пример (На форме объекта присутствует реквизит Таблица(ТаблицаЗначений)): НаКлиенте Процедура Загрузки() ПутьКБазе=" D:ВашаБаза1с77" ; Пользователь= Cклонения по падежам  6
НаКлиенте Процедура Команда1(Команда) ФИО = " Иванов Иван Иванович" ; Падеж = 2; Пол = 1; Результат = СклонениеФИО(ФИО, Падеж, пол); Сообщить(Результат); КонецПроцедуры НаСервере Функция СклонениеФИО(ФИО, Падеж, пол) Результат = " " ; Google maps, поиск оптимального маршрута  5
В данном посте хочу коснуться основных аспектов построения оптимального маршрута с использованием API Google maps. Исходные данные для построения маршрута: * Географические координаты объектов, которые хранятся в базе; * Координаты начальной и коне Посмотреть все результаты поиска похожих

Еще в этой же категории

Как программно получить Картинку из базы и сохранить ее преобразовав в другой формат?  4
//Получим и сохраним Общую картинку из библиотеку картинок конфигурации ИмяКартинки = Метаданные.ОбщиеКартинки.OutlookExpress; ВыбраннаяКартинка = БиблиотекаКартинок ; // Сохраним полученную картинку в c:temp ВыбраннаяКартинка.Записать(" c:te Получить список Справочников конфигурации  1
НаКлиенте Процедура ПоКнопкеЧтениеИзМетаданных(Команда) // Вставить содержимое обработчика. Перем СписокСправочников; СписокСправочников = Новый СписокЗначений; СписокСправочников = СправочникиИзМетаданных(); Для Сч = 0 По СписокСправочников Обход метаданных (полезные функции)  0
При написании небольших автоматизированных тестов часто надо обойти всю конфигурацию и проверить, например, для всех форм какое-нибудь свойство. Это все легко делается через свойство глобального контекста " Метаданные" , но чтоб дорбаться до обхода р Как по значению "Тип" получить строку например "Документ.Счет"  0
Сообщить(Метаданные.НайтиПоТипу(ТипДокумента).ПолноеИмя()); ДокументСсылка = Новый(ТипДокумента); ПолноеИмя = ДокументСсылка.Метаданные().ПолноеИмя(); Посмотреть все в категории Метаданные

Читайте также: