Форум 1С
Программистам, бухгалтерам, администраторам, пользователям
Задай вопрос - получи решение проблемы
12 дек 2024, 09:32

Удаление истории

Автор Dima09, 01 фев 2012, 08:31

0 Пользователей и 1 гость просматривают эту тему.

Dima09

Доброе время суток, подскажите пожалуйста как написать обработку, что бы история в справочнике на 31.01.2012 удалялась. Зарание благодарен 

СветланаCC

То есть почистить периодические реквизиты справочника за 31.01.12?? или все предыдущие почистить, а на 31.01.12 оставить?
Тазовод)

Dima09

нужно все предыдущие оставить, а на 31.01.12 очистить.
мои наработки, но не работает почему то :
Процедура Выполнить() 
   
    СпрН = СоздатьОбъект("Справочник.Нас_Население");
   СпрН.ВыбратьЭлементы();
   Пока СпрН.ПолучитьЭлемент() > 0 Цикл
      Если спрН.ЭтоГруппа() = 0 тогда
          Потребитель = СпрН.ТекущийЭлемент();
      Если Потребитель.Дом.ТипДома =  Перечисление.ТипДома.Многоэтажный Тогда
         МногНорм = СпрН.ИндМногоквартирная.Получить('31.12.2011');
         МногНорм.Удалить();
      КонецЕсли;
        КонецЕсли;
   КонецЦикла;    
КонецПроцедуры

пишет ошибку:
"ЗимНорм = СпрН.ИндЗимняяНорма.Получить('31.12.2011').удалить();
Значение не представляет агрегатный объект (удалить)"

СветланаCC

Удалить()
Синтаксис:
Удалить()
Назначение:
Удалить периодическое значение на заданную дату.
Возвращает: 1 - если вызов метода закончился успешно, 0 - иначе.
Замечание:
До вызова данного метода периодическое значение следует выбрать при помощи методов ПолучитьЗначение или НайтиЗначение.
Тазовод)

Dima09

т.е. будет выглядеть так МногНорм = СпрН.ИндМногоквартирная.ПолучитьЗначение('31.12.2011');

СветланаCC

Цитата: Dima09 от 01 фев 2012, 09:47
т.е. будет выглядеть так МногНорм = СпрН.ИндМногоквартирная.ПолучитьЗначение('31.12.2011');
попробуйте так, а в отладчике гляньте...
Тазовод)

Dima09

если вот такой код :
Процедура Выполнить() 
   
    СпрН = СоздатьОбъект("Справочник.Нас_Население");
   СпрН.ВыбратьЭлементы();
   Пока СпрН.ПолучитьЭлемент() > 0 Цикл
      Если спрН.ЭтоГруппа() = 0 тогда
          Потребитель = СпрН.ТекущийЭлемент();
        
      Если Потребитель.Дом.ТипДома =  Перечисление.ТипДома.Многоэтажный Тогда
         ЗимНорм = СпрН.ИндЗимняяНорма.Получить('31.12.2011');
          ЗимНорм.Удалить();
      КонецЕсли;
        КонецЕсли;
   КонецЦикла;    
КонецПроцедуры

Ошибка
ЗимНорм.Удалить();
Значение не представляет агрегатный объект (Удалить)


Dima09

а если СпрН.ИндЗимняяНорма.ПолучитьЗначение('31.12.2011').Удалить();
то ошибка
Поле агрегатного объекта не обнаружено (ПолучитьЗначение)

sergejK74

Пишу по памяти
Периодический = СоздатьОбъект("Периодический");

СпрН = СоздатьОбъект("Справочник.Нас_Население");
СпрН.ВыбратьЭлементы();
Пока СпрН.ПолучитьЭлемент() > 0 Цикл
Если спрН.ЭтоГруппа() = 0 тогда
Потребитель = СпрН.ТекущийЭлемент();
Если Потребитель.Дом.ТипДома =  Перечисление.ТипДома.Многоэтажный Тогда
Периодический.ИспользоватьОбъект("ИндЗимняяНорма",СпрН.ТекущийЭлемент());
Периодический.ВыбратьЗначения();
Пока Периодический.ПолучитьЗначение()=1 Цикл
Если Периодический.ДатаЗнач = '31.12.2011' Тогда
Периодический.Удалить();
Продолжить;
КонецЕсли;
КонецЦикла;
КонецЕсли;
КонецЕсли;
КонецЦикла; 
Кнопочка Спасибо - слева!

Dima09

Спасибо!!!!!! Вопрос решен

Теги:

Похожие темы (5)

Рейтинг@Mail.ru

Поиск