7.7 Запись переодического реквезита спр

Тема в разделе "Конфигурирование на платформе "1С:Предприятие 7.7"", создана пользователем koolith, 21 фев 2008.

  1. TopicStarter Overlay
    koolith
    Offline

    koolith

    Регистрация:
    21 фев 2008
    Сообщения:
    5
    Симпатии:
    0
    Баллы:
    1
    Подскажите , пожалуста , как произвести запись периодического реквезита справочника ?

    получаю его путем - Реквизит= Спр.Реквезит.Получить(ТекущаяДата());
    присваиваю новое значение - Реквизит=НовоеЗначение;

    Как произвести запись ?
  2. Stado_adama
    Offline

    Stado_adama Модераторы Модератор

    Регистрация:
    27 ноя 2007
    Сообщения:
    1.086
    Симпатии:
    0
    Баллы:
    26
    Установить(<?>,);
    Синтаксис:
    Установить(<Дата>,<Значение>)
    Назначение:
    Установить значение периодического реквизита справочника на заданную дату.
    Параметры:
    <Дата> - выражение со значением требуемой даты;
    <Значение> - выражение, содержащее устанавливаемое значение периодического реквизита справочника.
    Замечание:
    Метод можно использовать только для периодических реквизитов справочника и если для справочника еще не применялся метод ИспользоватьДату. Метод можно использовать только для объектов-справочников, созданных функцией СоздатьОбъект.
  3. TopicStarter Overlay
    koolith
    Offline

    koolith

    Регистрация:
    21 фев 2008
    Сообщения:
    5
    Симпатии:
    0
    Баллы:
    1
    Применяю:
    Код:
        ДатаЗакр=Кли.ДатаЗак.Получить(ТекущаяДата());
    Новая=ДатаЗакр+14;
    Кли.ДатаЗак.Установить(ТекущаяДата(),Новая); 
    
    
    Пишет:

  4. Stado_adama
    Offline

    Stado_adama Модераторы Модератор

    Регистрация:
    27 ноя 2007
    Сообщения:
    1.086
    Симпатии:
    0
    Баллы:
    26
    А ""кли" ет у тебя че такое?
  5. TopicStarter Overlay
    koolith
    Offline

    koolith

    Регистрация:
    21 фев 2008
    Сообщения:
    5
    Симпатии:
    0
    Баллы:
    1
    Элемент справочника
  6. Stado_adama
    Offline

    Stado_adama Модераторы Модератор

    Регистрация:
    27 ноя 2007
    Сообщения:
    1.086
    Симпатии:
    0
    Баллы:
    26
    кли = создатьобъект("справочник.XXX");... так? дай кусок кода побольше
  7. TopicStarter Overlay
    koolith
    Offline

    koolith

    Регистрация:
    21 фев 2008
    Сообщения:
    5
    Симпатии:
    0
    Баллы:
    1
    Код:
    Спр = СоздатьОбъект("Справочник.Клиенты"); 
    Док = СоздатьОбъект("Документ.Посещения");  
    ТЗ = СоздатьОбъект("ТаблицаЗначений");
    ТЗ.НоваяКолонка("Клиент");
    ТЗ.НоваяСтрока();           
    ТЗ.Клиент="Эталон";
    
    Док.ВыбратьДокументы(ВыбНачПериода,ВыбКонПериода);
    Пока Док.ПолучитьДокумент() > 0 Цикл
    
    Док.ВыбратьСтроки();
    Пока Док.ПолучитьСтроку() > 0 Цикл
    Если Док.ФИО.Пол=ВыбПол Тогда        
    Клиент=Док.ФИО.Наименование;
    Кли=Док.ФИО;
    Совпадение=0;
    ТЗ.ВыбратьСтроки();
    Пока ТЗ.ПолучитьСтроку() = 1 Цикл
    Если (Клиент=ТЗ.Клиент) ИЛИ (ПустоеЗначение(Кли.ДатаЗак.Получить(ТекущаяДата()))=1) Тогда              
    Совпадение=1; 
    КонецЕсли; 
    КонецЦикла; 
    Если Совпадение=0 Тогда  
    ТЗ.НоваяСтрока(); 
    ТЗ.Клиент=Клиент;
    Таб.ВывестиСекцию("ФИО"); 
    ДатаЗакр=Кли.ДатаЗак.Получить(ТекущаяДата());
    Новая=ДатаЗакр+14;
    Кли.ДатаЗак.Установить('21.02.08',Новая);
    //Кли.ДатаЗак=Новая; 
    //    Кли.ДатаЗак.Записать(ТекущаяДата()); 
    //  Спр.Записать(ТекущаяДата());
    КонецЕсли;
    КонецЕсли;
    КонецЦикла; 
    
    КонецЦикла; 
    ТЗ.Очистить();
    Таб.Показать();  
    
    КонецПроцедуры
    
    
    Кли берется из документа, в котором тип значения выставлен Спр.Клиенты

    Используйте тэг
    Код:
    [/color]
  8. Stado_adama
    Offline

    Stado_adama Модераторы Модератор

    Регистрация:
    27 ноя 2007
    Сообщения:
    1.086
    Симпатии:
    0
    Баллы:
    26
    Код:
    Кли=Док.ФИО;
    
    
    ет че за ######?
    читаем еще раз, но на этот раз КАЖДОЕ слово и внимательно:
    Установить(<?>,);
    Синтаксис:
    Установить(<Дата>,<Значение>)
    Назначение:
    Установить значение периодического реквизита справочника на заданную дату.
    Параметры:
    <Дата> - выражение со значением требуемой даты;
    <Значение> - выражение, содержащее устанавливаемое значение периодического реквизита справочника.
    Замечание:
    Метод можно использовать только для периодических реквизитов справочника и если для справочника еще не применялся метод ИспользоватьДату. Метод можно использовать только для объектов-справочников, созданных функцией СоздатьОбъект.
  9. TopicStarter Overlay
    koolith
    Offline

    koolith

    Регистрация:
    21 фев 2008
    Сообщения:
    5
    Симпатии:
    0
    Баллы:
    1
    переделал под объект справочника - таже история..
    Код:
    Спр.ВыбратьЭлементы(); 
    Пока Спр.ПолучитьЭлемент()>0 Цикл 
    Если Спр.ТекущийЭлемент().Наименование=Клиент Тогда 
    КлиСпр=Спр.ТекущийЭлемент(); 
    КонецЕсли; 
    КонецЦикла;    
    
    ДатаЗакр=КлиСпр.ДатаЗак.Получить(ТекущаяДата());
    Новая=ДатаЗакр+14;
    КлиСпр.ДатаЗак.Установить('22.02.08',Новая);
    
    
    причем это преобразование сути не меняет, до этого я работал в контексте документа , где его реквезит является переменной типа справочник
  10. Stado_adama
    Offline

    Stado_adama Модераторы Модератор

    Регистрация:
    27 ноя 2007
    Сообщения:
    1.086
    Симпатии:
    0
    Баллы:
    26
    эх как грустно-то... дубль 3!!!
    Метод можно использовать только для объектов-справочников, созданных функцией СоздатьОбъект.
    теперь внимательно смотрим в твой код и ищем там функцию СоздатьОбъект... вот как только найдешь - так и заработает! :)
  11. WaRDeR
    Offline

    WaRDeR Модераторы Команда форума Модератор

    Регистрация:
    23 ноя 2006
    Сообщения:
    3.263
    Симпатии:
    14
    Баллы:
    29
    Код:
    Кли = СоздатьОбъект("Справочник.Клиенты");
    Кли.НайтиЭлемент(Спр);
    ...
    
    
  12. Savant
    Offline

    Savant Опытный в 1С

    Регистрация:
    19 ноя 2007
    Сообщения:
    252
    Симпатии:
    4
    Баллы:
    29
    Попробуй вставить одну строку в код. вообщем сделай примерно так:
    Код:
        
    ДатаЗакр=Кли.ДатаЗак.Получить(ТекущаяДата());    
    Новая=ДатаЗакр+14; 
    Кли.Записать(); 
    Кли.ДатаЗак.Установить(ТекущаяДата(),Новая); 
    
    
    
    
    Иногда необхдимо записывать элементы перед установкой периодических атрибутов.
    Хотя я не уверен, что это поможет решить данную проблему.

Поделиться этой страницей