1с как получить список реквизитов справочника
Загрузка. Пожалуйста,
подождите.
Репутация: 8
Всего: 9
Доброго времени суток!
Подскажите пожалуйста как программно получить список реквизитов напримен (выбранного справочника или документа).
буду признателен всем за помощь!
Репутация: нет
Всего: нет
Репутация: 8
Всего: 9
Репутация: нет
Всего: 1
Репутация: 8
Всего: 9
Репутация: 15
Всего: 24
Цитата(SaschaL @ 10.8.2007, 14:22 ) |
Подскажите пожалуйста как программно получить список реквизитов напримен (выбранного справочника или документа). |
В общем случае прочитай раздел "Метаданные" в описании встроенного языка. Если после прочтения вопросы останутся, то задавай тут.
На всякий случай оставлю маленький примерчик:
Код |
Процедура Сформировать() |
Для Рекв = 1 по Метаданные.Справочник("Номенклатура").Реквизит() Цикл
РеквизитСправочника = Метаданные.Справочник("Номенклатура").Реквизит(Рекв);
Сообщить(РеквизитСправочника);
КонецЦикла
Запрещается!
Пробуйте искать сами или обращайтесь в приват к участникам форума.
Темы с подобными вещами будут немедленно удаляться, а нарушители - получать предупреждения.
Также запрещается обсуждение проблем работы этих программ (что куда вписать, куда что скопировать и т.п. )
2. Давать ссылки на взломанные продукты
- Пожалуйста, пользуйтесь поиском перед тем, как задать вопрос - возможно ответ уже есть на форуме.
- Название темы должно отражать её суть
- Действия модераторов можно обсудить здесь
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | 1C: Предприятие, SAP, ERP и учётные системы | Следующая тема » |
[ Время генерации скрипта: 0.1304 ] [ Использовано запросов: 20 ] [ GZIP включён ]
(19) kotloff, ок, поставлю вопрос шире: какие еще "сущности" (кроме реквизитов) надо выгружать чтобы на стороне БД-приемника получить точную копию выгруженного дока (ессно без номера и даты)
(21) новичок185, ну это мы приходим опять к выгрузке по правилам обмена. потому что вдруг у вас в БД-приемнике нет какого-то элемента справочника, или перечисления, которые используются в документе в БД-источнике. короче, не изобретайте велосипед, используйте "Конвертацию данных"
(23) новичок185, тогда реквизиты документа, табличные части и их реквизиты. еще могут быть дополнительные реквизиты документа, если созданы.
(25) kotloff, а как в запросе получить эти доп.реквизиты? их идекнтификаторы и есть ли они вообще мы не знаем.
в конфигураторе на вкладке "Данные" для документа есть кнопка "характеристики", по ней открывается окно "Дополнительные характеристики объекта метаданных" это что? Это и есть доп.реквизиты о которых говорится в (25)?
(21) новичок185, если не хотите возиться с КД, то предлогаю использовать возможности сериализатора платформы:
ЗаписьXML = Новый ЗаписьXML;
ЗаписьXML.ОткрытьФайл("Путь к файлу обмена");
ЗаписатьXML(ЗаписьXML, ВыгружаемыйОбъект);
ЗаписьXML.Закрыть();
(26) новичок185, ну да) с загрузкой тут несколько вариантов, можно чтением xml, в цикле читать объекты, а можно средствами сериализатора платформы:
ЧтениеXML = Новый ЧтениеXML;
ЧтениеXML.ОткрытьФайл("путь к файлу");
ЧтениеXML.Прочитать();
ЗагружаемыйОбъект = ПрочитатьXML(ЧтениеXML);
ЗагружаемыйОбъект.Записать();
ЧтениеXML.Закрыть();
Но в таком случае чтения нужно чтобы объекты в базе приемнике и источники совпадали. если не совпадают то циклом, там руками делай что хошь
ессно всех табл.частей, я так понимаю надо в запросе использовать "Метаданные. ",
цель выгрузки - из полученного txt, загрузить док (должна получиться точная копия кроме номера и даты) в идентичную конфу.
Добрый день, есть вопрос
Как сделать чтобы реквизит табличной части документа получал данные из реквизита справочника.
Т.е. при изменении "ФИО" в табличной части документа подставлялись значения (ДатаРождения, Должность)из справочника (Сотрудники)
Есть справочник Сотрудники, реквизиты "Должность", "Дата рождения"
Есть документ в нем табличная часть "Налоги" и его реквизиты "ФИО" "Должность" "ДатаРождения"
если просто ссылаться через форму на значения справочника то в документе выводится визуально и ДатаРождения, и Должность, но на печати эти поля пустые и при установке условий они ни как не считываются, а как будто пустые
Прошу в поиск не посылать, т.к. пробывал уже много вариантов в т.ч. программно через функции
Получение значения реквизита элемента справочника, входящего в массив
Здравствуйте. Делаю обработку в собственной конфигурации. Для реализации обработки необходимо.
Получение реквизита из справочника в табличную часть документа
Доброе время суток!Скорее всего мой вопрос очень глупый , но прошу помочь. имеем справочник.
Получение реквизита из справочника в табличную часть документа
Здравствуйте, полный нуб в 1с. Прошу больно не пинать. Вопрос самый простой и глупый. Есть документ.
Mujinin, пропишите заполнение этих полей при изменении ФИО. Какая форма? Если управляемая, то значения получать придется на клиенте. Иначе - можно все в одной процедуре.
Пример для управляемой:
о мой спаситель. почему мне раньше этого никто не мог подсказать. я начал пол года назад и все время обходил это автозаполнение.
делал все тоже самое только "ФИО" в
Не подскажите, а как сделать все тоже самое, но только у меня это не строки в ТЧ а реквизиты дока.
Anmut, я бы лучше изменял реквизиты объекта на сервере. Думаю так будет правильнее
нет не правильнее и ведет к снижению производительности. Вы туда сю форму спакуете и отправите, добавите и потом все это полетит назад по сети.
Лучше серверный вызов делать в один раз, получать маленькие данные и заполнить на клиенте. Т.к. объет на форме уже заблокирован вами.
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С . Что такое Cодержимое указанного ниже веб-сайта в этом приложении блокируется. Aboutsecurity_1cv8c.exe 1
Проблема: После обновления на 1С:Бухгалтерию предприятия 3-й версии, при нажатии на закладку командного интерфейса 1С:предприятие, выскакивает ошибка: Aboutsecurity_1cv8c.exe или Aboutsecurity_1cv8.exe «Содержимое указанного ниже веб-узла в э Посмотреть все результаты поиска похожих
Еще в этой же категории
Как программно получить Картинку из базы и сохранить ее преобразовав в другой формат? 4
//Получим и сохраним Общую картинку из библиотеку картинок конфигурации ИмяКартинки = Метаданные.ОбщиеКартинки.OutlookExpress; ВыбраннаяКартинка = БиблиотекаКартинок ; // Сохраним полученную картинку в c: temp ВыбраннаяКартинка.Записать(" c: te Получить список Документов конфигурации 0
//ЭлементыФормы.ОбъектПоиска - Поле Выбора на форме СписокВыбора = ЭлементыФормы.ОбъектПоиска.СписокВыбора; Для Каждого Документ Из Метаданные.Документы Цикл //Проверим, есть ли права на просмотр? Да- добавляем, Нет - пропускаем Если ПравоДосту Перебор Основных Реквизитов формы 0
//Перебор Основных Реквизитов формы Для Каждого Рек из ЭтаФорма.Метаданные().Реквизиты Цикл Сообщить(рек.Имя+" - " +рек.Синоним+" - " +Строка(рек.Тип)); КонецЦикла; // или так Для Каждого Рек из Метаданные().Реквизиты Цикл Сообщить(рек.Имя+" Функция устанавливает новое значение реквизита документа или справочника. 0
//функция устанавливает новое значение реквизита документа или справочника и задает вопрос, если новое значение не соответствует предыдущему Функция гЗначение(Ко,Атрибут,Значение) Экспорт Знач1=Ко.ПолучитьАтрибут(Атрибут); Знач2=Значение; //про Функция возвращает ссылку на заданный реквизит объекта метаданных Документ 0
// Документ - ссылка на документ, Реквизит - название реквизита, например " Контрагент" Функция гРеквизитДокумента(Документ,Реквизит) Экспорт Если Метаданные.Документ(Документ).РеквизитШапки(Реквизит).Выбран()=1 Тогда Возврат Метаданные.Докумен Посмотреть все в категории Метаданные
У любого справочника 1С (кроме подчиненных) можно создавать предопределенный элемент или предопределенную группу этого справочника (если справочник иерархический). Предопределенные элементы справочника это элементы созданные разработчиком в конфигураторе, с которыми пользователь может работать. Пользователю уже не нужно самостоятельно создавать этот элемент справочника, он уже будет создан в базе по умолчанию при установке. Также разработчикам очень удобство работать с предопределенными элементами в том, что разработчик к ним может обращаться напрямую, используя менеджер справочника. В этой статье мы научимся работать с предопределенными элементами.
При разработке справочников, рекомендую, первым делом подумать будут ли предопределенные элементы у этих справочников, и создать их заранее, до того как этот справочник будет внедрен в опытную эксплуатацию.
К примеру, мы в нашей конфигурации для целей учета создали справочник Валюты, поскольку мы живем в Российской федерации, то валюта Рубль всегда будет в нашей конфигурации, которая используется на территории РФ. Поэтому наиболее логичнее её сделать в виде предопределенного элемента. Поэтому создадим для справочника Валюты предопределенный элемент Рубль. Для того, чтобы добавить предопределенный элемент необходимо выделить нужный справочник, вызвать контекстное меню и выбрать в этом меню команду «Открыть предопределенные данные».
Откроется список предопределенных элементов (и групп, если справочник иерархический), в котором можно добавлять новые элементы. Причем заметьте, при добавлении мы можем указать только наименование элемента и его код, если у справочника есть реквизиты, то мы эти реквизиты мы сможем заполнить только в пользовательском режиме.
Обращаю внимание на имя предопределенного элемента. Имя должно быть уникально в пределах этого справочника, и к нему применяются правила установки имен для объектов метаданных (отсутствие пробелов, спецсимволов кроме подчеркивания и т.д.). Пользователь не видит имени предопределенного элемента, он работает только с наименованием. С именем может работать разработчик, получая ссылку на конкретный предопределенный элемент, используя менеджер справочника.
Если справочник иерархический, то можно также создать и предопределенные группы, для этого в командной панели формы списка предопределенных элементов имеется команда «Добавить группу».
Если мы зайдем в форму списка справочника Страны в пользовательском режиме «1С: Предприятия», то обнаружим, что уже имеются группы и элементы с точкой внизу. Так платформа помечает предопределенные элементы и группы.
Замечу, что все реквизиты у предопределенных элементов присутствуют также как и у обычных, и в них можно записывать какие-либо значения.
Получить предопределенный элемент справочника 1С
Используя менеджер справочника, можно обратиться к предопределенному элементу. Делается это следующим образом.
Обращаю Ваше внимание, что получить ссылку на предопределенный элемент можно только в серверном контексте. Чтобы получить ссылку на предопределенный элемент в клиентском контексте управляемой формы необходимо использовать метод ПредопределенноеЗначение, где в кавычках нужно указать путь к этому элементу.
Имейте в виду, что и при помощи метода ПредопределенноеЗначение и при помощи прямого обращения посредством менеджера объекта мы получим ссылку на элемент, с которой можем работать как с обычной ссылкой на элемент справочника: присваивать её какому-нибудь реквизиту, получать объект из этой ссылки и т.д.
Создать предопределенный элемент справочника 1С
Мы уже научились создавать предопределенные элементы справочника в конфигураторе, но можно ли создать предопределенный элемент программно? И да, и нет.
Мы можем из простого элемента сделать предопределенный, и наоборот предопределенный элемент сделать простым.
Для этих целей у справочников имеется стандартный реквизит ИмяПредопределенныхДанных.
Если мы получим ссылку на предопределенный элемент, то этот реквизит заполнен.
Если же мы возьмем какой-то не предопределенный элемент, то этот реквизит будет пустой.
Если мы этому реквизиту присвоим какое-нибудь имя (помня об уникальности имен предопределенных элементов в контексте конкретного справочника), то мы программно «создадим» предопределенный элемент, но только в том случае если это имя уже существует в списке предопределенных элементов справочника, которые были заданы в конфигураторе 1С!
Например, тот же элемент «Тунис» справочника «Страны» у нас простой.
В какой-нибудь обработке напишем код, в котором попробуем сделать из этого элемента предопределенный элемент.
Если мы попытаемся его сейчас выполнить, то у нас возникнет ошибка «Предопределенный элемент не существует».
Такая ошибка возникла потому, что мы пытаемся указать имя предопределенного элемента, которого нет.
Если же мы у предопределенного элемента реквизиту ИмяПредопределенныхДанных присвоим пустую строку, то такой элемент станет простым, если же этому реквизиту обратно присвоим имя предопределенного элемента, то простой элемент станет предопределенным.
Сделаем на обработке две команды. Первая будет снимать предопределенность у элемента справочника с именем «Китай», а вторая устанавливать.
Теперь обратно установим.
Заметьте, что имя предопределенного элемента может быть только из списка имен предопределенных элементов справочника.
У нас до снятия элемент «Китай» был предопределенным.
А после снятия это стал простой элемент.
Удалить предопределенный элемент справочника 1С
Начиная с платформы 1С 8.3 предопределенные элементы можно удалять в пользовательском режиме.
Если сейчас этот элемент удалить через стандартную обработку «Удаление помеченных объектов», то он исчезнет из базы.
Для того, чтобы пользователь мог удалить (поставить пометку на удаление) предопределенный элемент, хотя бы у одной роли, которая есть в профиле пользователя должно быть установлено соответствующее право.
Что делать, если мы ошиблись и хотим опять «вернуть» предопределенный элемент? Есть несколько способов. Но самый простой это создать новый элемент справочника в пользовательском режиме и присвоить ему имя удаленного предопределенного элемента, как мы это уже делали.
Остальные статьи по теме конфигурирования:
Более подробно и основательно работа со справочниками, документами и другими объектами метаданных дается в моей книге:
Изучайте программирование в 1С в месте с моей книги «Программировать в 1С за 11 шагов»
- Книга написана понятным и простым языком — для новичка.
- Книга посылается на электронную почту в формате PDF. Можно открыть на любом устройстве!
- Научитесь понимать архитектуру 1С;
- Станете писать код на языке 1С;
- Освоите основные приемы программирования;
- Закрепите полученные знания при помощи задачника;
О том как разрабатывать под управляемым приложением 1С, читайте в книге Книга «Основы разработки в 1С: Такси»
Отличное пособие по разработке в управляемом приложении 1С, как для начинающих разработчиков, так и для опытных программистов.
- Очень доступный и понятный язык изложения
- Книга посылается на электронную почту в формате PDF. Можно открыть на любом устройстве!
- Поймете идеологию управляемого приложения 1С
- Узнаете, как разрабатывать управляемое приложение;
- Научитесь разрабатывать управляемые формы 1С;
- Сможете работать с основными и нужными элементами управляемых форм
- Программирование под управляемым приложением станет понятным
Промо-код на скидку в 15% — 48PVXHeYu
Вступайте в мои группы:
2 thoughts on “ Предопределенные элементы справочников 1С 8.3 ”
У любого справочника 1С можно создавать предопределенный элемент или предопределенную группу — если у справочника есть владелец, то создать предопределенный элемент нельзя.
Читайте также: