1с получить все реквизиты объекта

Обновлено: 03.07.2024

(21) новичок185, если не хотите возиться с КД, то предлогаю использовать возможности сериализатора платформы:

ЗаписьXML = Новый ЗаписьXML;
ЗаписьXML.ОткрытьФайл("Путь к файлу обмена");
ЗаписатьXML(ЗаписьXML, ВыгружаемыйОбъект);
ЗаписьXML.Закрыть();

(24) AllexSoft, и все? 4-мя строчками кода? а загрузить как?

(26) новичок185, ну да) с загрузкой тут несколько вариантов, можно чтением xml, в цикле читать объекты, а можно средствами сериализатора платформы:

ЧтениеXML = Новый ЧтениеXML;
ЧтениеXML.ОткрытьФайл("путь к файлу");
ЧтениеXML.Прочитать();
ЗагружаемыйОбъект = ПрочитатьXML(ЧтениеXML);
ЗагружаемыйОбъект.Записать();
ЧтениеXML.Закрыть();

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

(24) AllexSoft, где можно почитать о сериалиазации доков 1С? ессно всех табл.частей, я так понимаю надо в запросе использовать "Метаданные. ",
цель выгрузки - из полученного txt, загрузить док (должна получиться точная копия кроме номера и даты) в идентичную конфу.

Реквизит из Метаданные.Документы.ЧтоТоТам.Реквизиты Цикл

(5) Скиминок, да как-то так, тока если не трудно, можно пример запроса?

Тут не нужен запрос

Для а=1 По Метаданные.ОбщийРеквизитДокумента() Цикл
Реквизит = Метаданные.ОбщийРеквизитДокумента(а).Имя;
Кудатопишем
КонецЦикла

Для а=1 По Метаданные.Документ(Док.Вид()).РеквизитШапки() Цикл
Реквизит = Метаданные.Документ(Док.Вид()).РеквизитШапки(а).Имя;
Куда то пишем
КонецЦикла

Для а=1 По Метаданные.Документ(Док.Вид()).РеквизитТабличнойЧасти() Цикл
Реквизит = Метаданные.Документ(Док.Вид()).РеквизитТабличнойЧасти(а).Имя;
Куда то пишем

Да. Хороший тон =) Но список реквизитов (может быть я ошибаюсь и меня кто то поправит) запросом получить низзя (10)Не ну можно же динамически запрос собирать(я к тому что это не невозможно), вот только не надо, ибо есть метаданные.

(10) Скиминок,
Запрос = Новый Запрос("ВЫБРАТЬ * ИЗ Документ.АвансовыйОтчет ГДЕ Ссылка = &Ссылка")
Результат = Запрос.Выполнить();

Список реквизитов (ну, и стандарные реквизиты, и ТЧ) - будут в коллекции Результат.Колонки.

Если данные не нужны, как выше уже говорили, сорри, то лучше через метаданные

Ааа, пардон =) Давно не 1С-л. Спасибо за пример запроса - не знал Если док с табличными частями, то цикла три - по реквизитам шапки - по табличным частям и по реквизитам каждой табличной части. Если без ТЧ - то достаточно одного да, с сериализацией все ясно, тем не менее вернусь к исх.вопросу: помогите плиз составить запрос по метаданным документа произвольного вида. На выходе надо получить "связки" реквизит - идентификатор (код/наименование) значения реквизита. Нужны все реквизиты дока, реквизиты всех ТЧ, все доп.реквизиты (если есть)

(31) новичок185, вот кусок кода который получает копию табличной части любого документа по метаданным

С реквизитами шапки документа, аналогично. из функции нужно выкинуть .ТабличныеЧасти[ТЧ]

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

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

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

Распечатать

Похожие 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
спрНомен = Метаданные.Справочники.Номенклатура; Сообщить(" Имя справочника " " " + спрНомен.Имя + " " " " ); Сообщить(" Комментарий " + спрНомен.Комментарий); Сообщить(" ВидИерархии " + спрНомен.ВидИерархии); Сообщить(" КоличествоУровней " + Посмотреть все в категории Метаданные

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