Вход | Регистрация

Форумы на Кубань.Ру


1С:Предприятие ::

Метки:

Достаю рекв-ы справочника через Метаданные. Как дёрнуть Периодические?

Ø
Я
   3JIou_TaTaPuH
24.11.04 - 16:41
Достаю рекв-ы справочника через Метаданные. Не могу дёрнуть Периодические Реквизиты так как работаю через
МетаСпр=Метаданные.Справочник(Идент);
КолвоРеквизитов = МетаСпр.Реквизит();
Для Ном=1 по КолвоРеквизитов Цикл
Значение=СпрТам.ПолучитьАтрибут(МетаСпр.Реквизит(Ном).Идентификатор);
Спр.УстановитьАтрибут(МетаСпр.Реквизит(Ном).Идентификатор,Значение);
...
...
КонецЦикла;
 
 
   mszsuz
1 - 24.11.04 - 16:43
сделай предварительно
СпрТам.ИспользоватьДату(НужнаяДата);
   Smitt
4 - 24.11.04 - 17:03
Если метаданные.Справочник(СпрТам.Вид()).Реквизит(Ном).периодический = 1 Тогда
ИД = метаданные.Справочник(СпрТам.Вид()).Реквизит(Ном).идентификатор;
  ПерВал = СоздатьОбъект("Периодический");
  ПерВал.ИспользоватьОбъект(ИД, СпрТам.ТекущийЭлемент());
  
  ПерВал.ВыбратьЗначения(НачДата,КонДата);
  
  Пока ПерВал.ПолучитьЗначение() = 1 Цикл
    значение = ПерВал.Значение;
    ДатаЗначения = ПерВал.ДатаЗнач;
   buch
5 - 24.11.04 - 17:04
думаю, что нижеприведенный пример тебе поможет. там, правда, я брал значение только на ту дату, которую передавал в параметре. в принципе тебе никто не помешает выбрать все значения используя
ВыбратьЗначения(<?>)
Синтаксис:
ВыбратьЗначения(<ДатаНачала>,<ДатаКонца>)
Назначение:
Открыть выборку периодических значений по датам.
Возвращает: 1 - если вызов метода закончился успешно, 0 - иначе.
Параметры:
<ДатаНачала> - дата начала периода выборки периодических значений (необязателен, если не задан - выборка начинается с самой ранней имеющейся даты);
<ДатаКонца> - дата конца периода выборки периодических значений (необязателен, если не задан - выборка заканчивается самой последней имеющейся датой).
// пример
Функция глКопироватьСправочник(Донор,Акцептор,ДатаПерРекв) Экспорт
  ТекВид=Донор.Вид();
  Акцептор.Наименование = Донор.Наименование  ;
  Акцептор.Записать();
  АкцепторП = СоздатьОбъект("Периодический");
  ДонорП = СоздатьОбъект("Периодический");
  //Добавляем значения реквизитов справочника
  Для к=1 по Метаданные.Справочник(Донор.Вид()).Реквизит() Цикл
    ТекИд = Метаданные.Справочник(Донор.Вид()).Реквизит(к).Идентификатор;
    ПризнПериод = Метаданные.Справочник(Донор.Вид()).Реквизит(к).Периодический;
    Если (ПризнПериод = 1) Тогда
      АкцепторП.ИспользоватьОбъект(ТекИд,Акцептор);
      ДонорП.ИспользоватьОбъект(ТекИд,Донор);
      АкцепторП.Значение = ДонорП.ЗначениеНаДату(ДатаПерРекв);
      АкцепторП.ДатаЗнач = ДатаПерРекв ;
      АкцепторП.Записать();
    иначе
      что =  Донор.ПолучитьАтрибут(ТекИд);
      Если Сокрлп(ТекИд)="IDD" Тогда
        Акцептор.УстановитьАтрибут(ТекИд,ПолучитьНовыйИДД());
      иначеЕсли Сокрлп(ТекИд)="Изменен" Тогда
        Акцептор.УстановитьАтрибут(ТекИд,Да);
      иначе
        Акцептор.УстановитьАтрибут(ТекИд,что);
      КонецЕсли;
    КонецЕсли;
  КонецЦикла;
  Акцептор.Записать();
  возврат 1;
КонецФункции



Список тем форума

Форум Территория 1С

Рекламное место пустует   Рекламное место пустует
Прочитай, хотя бы, Митичкина "Разработка в системе 1С:Предприятие 8". Волшебник
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.
Ветка сдана в архив. Добавление сообщений невозможно.
Но вы можете создать новую ветку и вам обязательно ответят!
Каждый час на Волшебном форуме бывает более 2000 человек.
Рекламное место пустует