Имя: Пароль:
1C
1C 7.7
v7: Как установить 2 значения периодического реквизита за 1 раз?
0 NoobiC
 
10.09.14
10:36
Привет. Не могу понять, в справочнике есть периодический реквизит1, его надо поставить в 1 на текущую дату, и в 0 на дату, через месяц. Руками получается сделать, т.е. значение видно и на будущую дату, а вот программно - нифига. Только последнее значение записывает... помогите, плиз.
Вот фрагмент кода процедуры "ПриЗаписи": В свойствах реквизита стоит"ручное изменение"
        ИспользоватьДату(ТекущаяДата());
        Реквизит1 = 1;
        ИспользоватьДату(ДобавитьМесяц(ТекущаяДата(), 1), 1);
        Реквизит1 = 0;
        Записать();
1 Chum
 
10.09.14
10:38
ИспользоватьДату(<?>,);
Синтаксис:
ИспользоватьДату(<Дата>,<УстСразу>)
Назначение:
Установить дату выборки периодических реквизитов справочника.
Возвращает:
Текущее значение используемой даты (на момент до исполнения метода).
Параметры:
<Дата> - значение типа дата.
<УстСразу> - необязательный параметр. Число: если 1, то дата, переданная в качестве параметра, будет установлена уже в текущей выборке; если 0 - то дата, переданная в качестве параметра, будет установлена при следующем открытии выборки. Значение по  умолчанию - 0. .
2 Chum
 
10.09.14
10:39
<УстСразу>

И еще момент: периодический реквизит можно установить если сам элемент уже записан.

Второй вариант: использовать объект Периодический
3 Svetka
 
10.09.14
10:39
Метод ИспользоватьДату() можно 1 раз применить
4 NoobiC
 
10.09.14
10:42
(2) в форме записываемого элемента же нельзя? Или записать, а потом в модуле формы создавать Объект?:)
(3) ну вот так примерно и понял:(
5 Ёпрст
 
10.09.14
10:49
(4) не используй ИспользоватьДату. Тогда получится.
Или через объект Периодический
6 Svetka
 
10.09.14
10:58
http://www.mista.ru/tutor_1c/sprav.htm#periodic
про объект Периодический
7 Boroda
 
10.09.14
11:04
Можешь еще для примера глянуть процедуру "ЗаписатьЗначения" из Обработка.ЗаписьПериодическихРеквизитов (ТиС)
8 NoobiC
 
10.09.14
11:18
Спасибо всем большое. Получилось так: (фрагмент кода)
        Записать();
        Спр = СоздатьОбъект("Справочник.Справ1");
        Спр.НайтиЭлемент(ТекущийЭлемент());
        Пер = СоздатьОбъект("Периодический");
        Пер.ИспользоватьОбъект("Реквизит1", Спр.ТекущийЭлемент());
        Спр.Реквизит1.Установить(ТекущаяДата(), 1);
        Спр.Реквизит1.Установить(ДобавитьМесяц(ТекущаяДата(), 1), 0);
9 Boroda
 
10.09.14
11:20
Мог бы и проще сделать:
// это убрать Спр = СоздатьОбъект("Справочник.Справ1");
Пер.ИспользоватьОбъект("Реквизит1", ТекущийЭлемент());
10 Ёпрст
 
10.09.14
11:23
(9) всё еще проще
        Записать();
    //    Спр = СоздатьОбъект("Справочник.Справ1");
    //    Спр.НайтиЭлемент(ТекущийЭлемент());
    //    Пер = СоздатьОбъект("Периодический");
    //    Пер.ИспользоватьОбъект("Реквизит1", Спр.ТекущийЭлемент());
        Спр.Реквизит1.Установить(ТекущаяДата(), 1);
        Спр.Реквизит1.Установить(ДобавитьМесяц(ТекущаяДата(), 1), 0);
11 Boroda
 
10.09.14
11:29
(10) Да, просмотрел! :)
ТС же дальше и не использует созданный им же периодичский объект.
12 NoobiC
 
10.09.14
11:58
Спасибо :).