Имя: Пароль:
1C
1С v8
Получить свойства документа
,
0 Альбатрос
 
30.11.11
09:19
Здрассьте! Уважаемые, подскажите, как работать программно со свойствами документа (и не только)? У меня в доках есть свойство Проект. Как получать его значение или устанавливать новое?
1 Maxus43
 
30.11.11
09:20
регистр сведений Свойства объектов
2 Maxus43
 
30.11.11
09:21
ЗначенияСвойствОбъектов т.е.
3 Альбатрос
 
30.11.11
10:15
Процедура ВыбратьРеализации();
   Запрос = Новый Запрос;
   Запрос.Текст =
   
   "ВЫБРАТЬ
   |    ЗначенияСвойствОбъектов.Объект.Ссылка Как Ссылка,
   |    ЗначенияСвойствОбъектов.Свойство.Наименование Как Наименование,
   |    ЗначенияСвойствОбъектов.Значение.Ссылка Как Значение
   |ИЗ
   |    РегистрСведений.ЗначенияСвойствОбъектов КАК ЗначенияСвойствОбъектов
   |   ГДЕ Ссылка = &ТекСсылка";
   
     ОбластьМакета = Макет.ПолучитьОбласть("Строка");
     Реализации = Документы.РеализацияТоваровУслуг.Выбрать(НачалоДня(ДатаНачала), КонецДня(ДатаКонца));
     Пока Реализации.Следующий() цикл
          ОбластьМакета.Параметры.ТекДок = Реализации.Ссылка;
          ОбластьМакета.Параметры.Сумма = Реализации.СуммаДокумента;
          ОбластьМакета.Параметры.Контра = Реализации.Контрагент;
          Запрос.УстановитьПараметр("ТекСсылка",Реализации.Ссылка);
        //  Запрос.УстановитьПараметр("ТекНаим","Проект");
          Рез = Запрос.Выполнить().Выбрать();
          Пока рез.Следующий() цикл
              ОбластьМакета.Параметры.Проект = Рез.Значение;
          КонецЦикла;
          ОбластьМакета.Параметры.Автор = Реализации.Ответственный;
          ТабДок.Вывести(ОбластьМакета);
     КонецЦикла;
КонецПроцедуры


Ошибка:
по причине:
{(7, 8)}: Поле не найдено "Ссылка"
ГДЕ <<?>>Ссылка = &ТекСсылка
4 Defender aka LINN
 
30.11.11
10:17
(3) Продолжайте наблюдения
5 Альбатрос
 
30.11.11
10:18
(4) Усиленно продолжаю. Но видимо слеп, не пойму, почему ругается
6 ddron7
 
30.11.11
10:21
мНаборЗаписейСвойств = РегистрыСведений.ЗначенияСвойствОбъектов.СоздатьНаборЗаписей();
мНаборЗаписейСвойств.Отбор.Объект.Установить(здесь пишешь св-во);
мНаборЗаписейСвойств.Прочитать();
Значение1 = мНаборЗаписейСвойств[0].Значение;
...................
7 salvator
 
30.11.11
10:25
(3) В конструкторе запросов забанили?
8 Maxus43
 
30.11.11
10:25
(6) у одного объекта несколько свойтв может быть, лучше менеджер записи юзать
9 Альбатрос
 
30.11.11
12:05
Мужики, пытаюсь сделать так:

        МРС = РегистрыСведений.ЗначенияСвойствОбъектов.СоздатьМенеджерЗаписи();
        МРС.Объект = Реализации.Ссылка;
        МРС.Период = КонецДня(ДатаКонца);
        МРС.Прочитать();
        Сообщить(МРС.Свойство);


Ессесно, не получается. Не тот метод?
10 Шапокляк
 
30.11.11
12:17
(9) А регистр периодический что ли? Или измерение Период присутствует?
(0) А если "ГДЕ Объект = &ТекСсылка" попробовать?
11 Альбатрос
 
30.11.11
12:27
(10) Я убрал период, все равно не выводит.
12 Поручик
 
30.11.11
12:28
(11) Получить значения запросом не предлагали?
13 Альбатрос
 
30.11.11
12:31
(12) Да, получил, спасибо (10). Но все же интересно, как без запроса их вытащить?
14 Альбатрос
 
08.12.11
12:00
Таки подниму тему. Задача: у документов есть свойство "Проект", мне нужно в зависимости от договора, заполнять это свойство определенными значениями.
Пробую так (подредактированный пример):

НаборЗаписей = РегистрыСведений.ЗначенияСвойствОбъектов.СоздатьНаборЗаписей();

НаборЗаписей.Отбор.Объект.Установить(ТекущийОбъект);
НаборЗаписей.Отбор.Свойство.Установить(ТекущееСвойство);

НоваяЗапись = НаборЗаписей.Добавить();
НоваяЗапись. Номенклатура = ТекущаяНоменклатура;
НоваяЗапись.Свойство = ТекущееСвойство;
НоваяЗапись.Значение = ТекущееЗначение;

НаборЗаписей.Записать();
   
Вопросы:
1. как в "НаборЗаписей.Отбор.Свойство.Установить(ТекущееСвойство);" мне задать свойство "Проект"?
2. как перебрать возможные значения свойства "Проект" и подставить нужное в "НоваяЗапись.Значение = ТекущееЗначение;"?

Будьте добры, подскажите.