Реклама на этом месте
Форум 1С
Форум 1С
Программистам. Бухгалтерам. Администраторам. Пользователям
Задай вопрос - получи решение проблемы. Без троллинга и флуда.
17 Дек 2017, 15:05
МультиВход
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Не получили письмо с кодом активации?
 
collapse

Автор Тема: Сохранение показателей отчета в списке документа  (Прочитано 3900 раз)

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

Оффлайн demous

  • *
  • Сообщений: 8
  • РЕПУТАЦИЯ: 2
  • КПД: 25%
  • Регистрация: 2012-03-26
  • Сайт: 
  • Профессия: Программист 8.1
УПП 8.2
задача :был создан отчет с помощью СКД, отчет относящийся к "ЗАявкамНаРасход", теперь задача стала таким образом, что этот отчет будет сохраняться два раза в неделю, с актуальными на этот период данными, что бы в дальнейшем можно было открыть список с этими отчетами, и открыть нужный отчет ( как обычный документ ) с уже сформированными данными на тот период, когда отчет был сохранен.
в модуль формы отчета прописал


Процедура Сохранить ()
   мСохраненныйДок =
Документы.Д_ПланируемыеПлатежи.СоздатьДокумент();
мСохраненныйДок.Дата = ТекущаяДата();
мСохраненныйДок.Организация = Организация;

ХранилищеДанных = Новый ХранилищеЗначения(СписокСохранения);
мСохраненныйДок.ДанныеОтчета = ХранилищеДанных;
мСохраненныйДок.Записать() ;
Модифицированность = Ложь;
КонецПроцедуры


Процедура ПередОткрытием ()
   мСохраненныйДок = ВладелецФормы.ДокументОбъект;
   мДатаНачалаПериодаОтчета = мСохраненныйДок.ДатаНачала;
   мДатаКонцаПериодаОтчета = мСохраненныйДок.ДатаОкончания;
КонецПроцедуры

Процедура ПриОткрытии ()
   Организация = мСохраненныйДок.Организация;
//
СписокСохранения = мСохраненныйДок.ДанныеОтчета.Получить();
КонецПроцедуры

Процедура ВосстановитьСохраненныеДанные ()
   //восстанавливаем версию формы
   Если СписокСохранения.Свойство("ВерсияФормы", ВерсияФормы) Тогда
      Если ВерсияФормы <> мВерсияФормы Тогда
          мВерсияФормы  = ВерсияФормы;
      КонецЕсли;
   КонецЕсли;
   // восстановим сохраненные данные редактируемых ячеек
   СписокСохранения.Свойство( "ПоказателиОтчета", ПоказателиОтчета );
   Для Каждого ПоказателиСтраницы Из ПоказателиОтчета Цикл
      ИмяТекТабличноеПоле = ПоказателиСтраницы.Ключ;
      ТекТабличноеПоле = ЭлементыФормы[ИмяТекТабличноеПоле] ;
      ПоказателиТаблПоле = ПоказателиСтраницы.Значение;
      Для Каждого Показатель Из ПоказателиТаблПоле Цикл
         ИмяПоказателя = Показатель.Ключ;
         ЗначениеПоказателя = Показатель.Значение;
         // установим значение в таблице
         ТекТабличноеПоле.Области[ИмяПоказателя].Значение =ЗначениеПоказателя;
      КонецЦикла;
   КонецЦикла;
КонецПроцедуры

создал документ
в его модуль

Процедура ПриКопировании(ОбъектКопирования)

   // Храним информацию о выбранной форме объекта копирования.
   // Она нужна для дальнейшего принятия решения - новый документ создаем
   // с сохранением или с очисткой данных объекта копирования.
   мСкопированаФорма = ОбъектКопирования.ВыбраннаяФорма;
   
КонецПроцедуры // ПриКопировании()

Процедура ПередЗаписью(Отказ, РежимЗаписи, РежимПроведения)
   
   Период = СокрЛП(Формат(ДатаОкончания, "ДФ=yyyyMMdd") + Формат('39991231' - ДатаНачала, "ДФ=yyyyMMdd"));
   
КонецПроцедуры

в модуль формы документа

Процедура ПередОткрытием(Отказ, СтандартнаяОбработка)

   // вместо формы документа открываем форму связанного с ним отчета
   Отказ = Истина;

   Если Не(ЭтоНовый()) ИЛИ (мСкопированаФорма <> Неопределено) Тогда
      
      ПравоДоступаКОтчету = РегламентированнаяОтчетность.ПравоДоступаКРегламентированномуОтчету(ИсточникОтчета);
      Если ПравоДоступаКОтчету = Ложь Тогда
         Предупреждение("Недостаточно прав!");
         Возврат;
      ИначеЕсли ПравоДоступаКОтчету = Неопределено Тогда
         Предупреждение("Не удалось открыть сохраненные данные! Отчет не найден!");
         Возврат;
      КонецЕсли;
      //
      ОбъектОтчет = РегламентированнаяОтчетность.РеглОтчеты(ИсточникОтчета);
      Если ОбъектОтчет = Неопределено Тогда
         Сообщить("Не удалось открыть сохраненные данные! Отчет не найден!", СтатусСообщения.Важное);
         Возврат;
      КонецЕсли;
      
      ВыбФормаОтчета = ОбъектОтчет.ПолучитьФорму( ,ЭтаФорма);
      
      // обход ошибки, присутствующей в 8.2.9
      Если ВыбФормаОтчета.ОбработкаОбъект <> ОбъектОтчет Тогда
         ВыбФормаОтчета.ОбработкаОбъект = ОбъектОтчет;
      КонецЕсли;
      
      ВыбФормаОтчета.РежимВыбора = Ложь;
      ВыбФормаОтчета.ЗакрыватьПриЗакрытииВладельца = Ложь;
      ВыбФормаОтчета.Открыть();
      
   ИначеЕсли ЭтоНовый() Тогда
      //Справочники.РегламентированныеОтчеты.ПолучитьФормуСписка();
      //Отчеты.Д_ОтчетПоЗаявкам.Открыть();
      Справочники.РегламентированныеОтчеты.ПолучитьФормуСписка().Открыть();

   КонецЕсли;
КонецПроцедуры // ПередОткрытием()

суть такова, при сохранении отчета, он проваливается в ХранилищеЗначений, от туда попадает в документ ПланированиеПлатежей(самописный)
в форме списка документа, мы видим сохраненные отчеты, а проблема становиться тогда, когда хочу открыть этот сохраненный отчет
выдает вот эту ошибку
{Документ.Д_ПланируемыеПлатежи.Форма.ФормаДокумента1.Форма(11)}: Ошибка при вызове метода контекста (ЭтоНовый)
   Если Не(ЭтоНовый()) ИЛИ (мСкопированаФорма <> Неопределено) Тогда
по причине:
Документ не выбран

Получил помощь - скажи СПАСИБО.


Оффлайн demous

  • *
  • Сообщений: 8
  • РЕПУТАЦИЯ: 2
  • КПД: 25%
  • Регистрация: 2012-03-26
  • Сайт: 
  • Профессия: Программист 8.1
Процедура ВосстановитьСохраненныеДанные ()
   //восстанавливаем версию формы
   Если СписокСохранения.Свойство("ВерсияФормы", ВерсияФормы) Тогда
      Если ВерсияФормы <> мВерсияФормы Тогда
          мВерсияФормы  = ВерсияФормы;
      КонецЕсли;
   КонецЕсли;
   // восстановим сохраненные данные редактируемых ячеек
   СписокСохранения.Свойство( "ПоказателиОтчета", ПоказателиОтчета );
   Для Каждого ПоказателиСтраницы Из ПоказателиОтчета Цикл
      ИмяТекТабличноеПоле = ПоказателиСтраницы.Ключ;
      ТекТабличноеПоле = ЭлементыФормы[ИмяТекТабличноеПоле] ;
      ПоказателиТаблПоле = ПоказателиСтраницы.Значение;
      Для Каждого Показатель Из ПоказателиТаблПоле Цикл
         ИмяПоказателя = Показатель.Ключ;
         ЗначениеПоказателя = Показатель.Значение;
         // установим значение в таблице
         ТекТабличноеПоле.Области[ИмяПоказателя].Значение =ЗначениеПоказателя;
      КонецЦикла;
   КонецЦикла;
КонецПроцедуры

создал документ
в его модуль

Процедура ПриКопировании(ОбъектКопирования)

   // Храним информацию о выбранной форме объекта копирования.
   // Она нужна для дальнейшего принятия решения - новый документ создаем
   // с сохранением или с очисткой данных объекта копирования.
   мСкопированаФорма = ОбъектКопирования.ВыбраннаяФорма;
   
КонецПроцедуры // ПриКопировании()

Процедура ПередЗаписью(Отказ, РежимЗаписи, РежимПроведения)
   
   Период = СокрЛП(Формат(ДатаОкончания, "ДФ=yyyyMMdd") + Формат('39991231' - ДатаНачала, "ДФ=yyyyMMdd"));
   
КонецПроцедуры

в модуль формы документа

Процедура ПередОткрытием(Отказ, СтандартнаяОбработка)

   // вместо формы документа открываем форму связанного с ним отчета
   Отказ = Истина;

   Если Не(ЭтоНовый()) ИЛИ (мСкопированаФорма <> Неопределено) Тогда
      
      ПравоДоступаКОтчету = РегламентированнаяОтчетность.ПравоДоступаКРегламентированномуОтчету(ИсточникОтчета);
      Если ПравоДоступаКОтчету = Ложь Тогда
         Предупреждение("Недостаточно прав!");
         Возврат;
      ИначеЕсли ПравоДоступаКОтчету = Неопределено Тогда
         Предупреждение("Не удалось открыть сохраненные данные! Отчет не найден!");
         Возврат;
      КонецЕсли;
      //
      ОбъектОтчет = РегламентированнаяОтчетность.РеглОтчеты(ИсточникОтчета);
      Если ОбъектОтчет = Неопределено Тогда
         Сообщить("Не удалось открыть сохраненные данные! Отчет не найден!", СтатусСообщения.Важное);
         Возврат;
      КонецЕсли;
      
      ВыбФормаОтчета = ОбъектОтчет.ПолучитьФорму( ,ЭтаФорма);
      
      // обход ошибки, присутствующей в 8.2.9
      Если ВыбФормаОтчета.ОбработкаОбъект <> ОбъектОтчет Тогда
         ВыбФормаОтчета.ОбработкаОбъект = ОбъектОтчет;
      КонецЕсли;
      
      ВыбФормаОтчета.РежимВыбора = Ложь;
      ВыбФормаОтчета.ЗакрыватьПриЗакрытииВладельца = Ложь;
      ВыбФормаОтчета.Открыть();
      
   ИначеЕсли ЭтоНовый() Тогда
      //Справочники.РегламентированныеОтчеты.ПолучитьФормуСписка();
      //Отчеты.Д_ОтчетПоЗаявкам.Открыть();
      Справочники.РегламентированныеОтчеты.ПолучитьФормуСписка().Открыть();

   КонецЕсли;
КонецПроцедуры // ПередОткрытием()

суть такова, при сохранении отчета, он проваливается в ХранилищеЗначений, от туда попадает в документ ПланированиеПлатежей(самописный)
в форме списка документа, мы видим сохраненные отчеты, а проблема становиться тогда, когда хочу открыть этот сохраненный отчет
выдает вот эту ошибку
{Документ.Д_ПланируемыеПлатежи.Форма.ФормаДокумента1.Форма(11)}: Ошибка при вызове метода контекста (ЭтоНовый)
   Если Не(ЭтоНовый()) ИЛИ (мСкопированаФорма <> Неопределено) Тогда
по причине:
Документ не выбран
Получил помощь - скажи СПАСИБО.

Оффлайн demous

  • *
  • Сообщений: 8
  • РЕПУТАЦИЯ: 2
  • КПД: 25%
  • Регистрация: 2012-03-26
  • Сайт: 
  • Профессия: Программист 8.1
      ТекТабличноеПоле = ЭлементыФормы[ИмяТекТабличноеПоле] ;
      ПоказателиТаблПоле = ПоказателиСтраницы.Значение;
      Для Каждого Показатель Из ПоказателиТаблПоле Цикл
         ИмяПоказателя = Показатель.Ключ;
         ЗначениеПоказателя = Показатель.Значение;
         // установим значение в таблице
         ТекТабличноеПоле.Области[ИмяПоказателя].Значение =ЗначениеПоказателя;
      КонецЦикла;
   КонецЦикла;
КонецПроцедуры

создал документ
в его модуль

Процедура ПриКопировании(ОбъектКопирования)

   // Храним информацию о выбранной форме объекта копирования.
   // Она нужна для дальнейшего принятия решения - новый документ создаем
   // с сохранением или с очисткой данных объекта копирования.
   мСкопированаФорма = ОбъектКопирования.ВыбраннаяФорма;
   
КонецПроцедуры // ПриКопировании()

Процедура ПередЗаписью(Отказ, РежимЗаписи, РежимПроведения)
   
   Период = СокрЛП(Формат(ДатаОкончания, "ДФ=yyyyMMdd") + Формат('39991231' - ДатаНачала, "ДФ=yyyyMMdd"));
   
КонецПроцедуры

в модуль формы документа

Процедура ПередОткрытием(Отказ, СтандартнаяОбработка)

   // вместо формы документа открываем форму связанного с ним отчета
   Отказ = Истина;

   Если Не(ЭтоНовый()) ИЛИ (мСкопированаФорма <> Неопределено) Тогда
      
      ПравоДоступаКОтчету = РегламентированнаяОтчетность.ПравоДоступаКРегламентированномуОтчету(ИсточникОтчета);
      Если ПравоДоступаКОтчету = Ложь Тогда
         Предупреждение("Недостаточно прав!");
         Возврат;
      ИначеЕсли ПравоДоступаКОтчету = Неопределено Тогда
         Предупреждение("Не удалось открыть сохраненные данные! Отчет не найден!");
         Возврат;
      КонецЕсли;
      //
      ОбъектОтчет = РегламентированнаяОтчетность.РеглОтчеты(ИсточникОтчета);
      Если ОбъектОтчет = Неопределено Тогда
         Сообщить("Не удалось открыть сохраненные данные! Отчет не найден!", СтатусСообщения.Важное);
         Возврат;
      КонецЕсли;
      
      ВыбФормаОтчета = ОбъектОтчет.ПолучитьФорму( ,ЭтаФорма);
      
      // обход ошибки, присутствующей в 8.2.9
      Если ВыбФормаОтчета.ОбработкаОбъект <> ОбъектОтчет Тогда
         ВыбФормаОтчета.ОбработкаОбъект = ОбъектОтчет;
      КонецЕсли;
      
      ВыбФормаОтчета.РежимВыбора = Ложь;
      ВыбФормаОтчета.ЗакрыватьПриЗакрытииВладельца = Ложь;
      ВыбФормаОтчета.Открыть();
      
   ИначеЕсли ЭтоНовый() Тогда
      //Справочники.РегламентированныеОтчеты.ПолучитьФормуСписка();
      //Отчеты.Д_ОтчетПоЗаявкам.Открыть();
      Справочники.РегламентированныеОтчеты.ПолучитьФормуСписка().Открыть();

   КонецЕсли;
КонецПроцедуры // ПередОткрытием()

суть такова, при сохранении отчета, он проваливается в ХранилищеЗначений, от туда попадает в документ ПланированиеПлатежей(самописный)
в форме списка документа, мы видим сохраненные отчеты, а проблема становиться тогда, когда хочу открыть этот сохраненный отчет
выдает вот эту ошибку
{Документ.Д_ПланируемыеПлатежи.Форма.ФормаДокумента1.Форма(11)}: Ошибка при вызове метода контекста (ЭтоНовый)
   Если Не(ЭтоНовый()) ИЛИ (мСкопированаФорма <> Неопределено) Тогда
по причине:
Документ не выбран
Получил помощь - скажи СПАСИБО.

Оффлайн demous

  • *
  • Сообщений: 8
  • РЕПУТАЦИЯ: 2
  • КПД: 25%
  • Регистрация: 2012-03-26
  • Сайт: 
  • Профессия: Программист 8.1
      ПоказателиТаблПоле = ПоказателиСтраницы.Значение;
      Для Каждого Показатель Из ПоказателиТаблПоле Цикл
         ИмяПоказателя = Показатель.Ключ;
         ЗначениеПоказателя = Показатель.Значение;
         // установим значение в таблице
         ТекТабличноеПоле.Области[ИмяПоказателя].Значение =ЗначениеПоказателя;
      КонецЦикла;
   КонецЦикла;
КонецПроцедуры

создал документ
в его модуль

Процедура ПриКопировании(ОбъектКопирования)

   // Храним информацию о выбранной форме объекта копирования.
   // Она нужна для дальнейшего принятия решения - новый документ создаем
   // с сохранением или с очисткой данных объекта копирования.
   мСкопированаФорма = ОбъектКопирования.ВыбраннаяФорма;
   
КонецПроцедуры // ПриКопировании()

Процедура ПередЗаписью(Отказ, РежимЗаписи, РежимПроведения)
   
   Период = СокрЛП(Формат(ДатаОкончания, "ДФ=yyyyMMdd") + Формат('39991231' - ДатаНачала, "ДФ=yyyyMMdd"));
   
КонецПроцедуры

в модуль формы документа

Процедура ПередОткрытием(Отказ, СтандартнаяОбработка)

   // вместо формы документа открываем форму связанного с ним отчета
   Отказ = Истина;

   Если Не(ЭтоНовый()) ИЛИ (мСкопированаФорма <> Неопределено) Тогда
      
      ПравоДоступаКОтчету = РегламентированнаяОтчетность.ПравоДоступаКРегламентированномуОтчету(ИсточникОтчета);
      Если ПравоДоступаКОтчету = Ложь Тогда
         Предупреждение("Недостаточно прав!");
         Возврат;
      ИначеЕсли ПравоДоступаКОтчету = Неопределено Тогда
         Предупреждение("Не удалось открыть сохраненные данные! Отчет не найден!");
         Возврат;
      КонецЕсли;
      //
      ОбъектОтчет = РегламентированнаяОтчетность.РеглОтчеты(ИсточникОтчета);
      Если ОбъектОтчет = Неопределено Тогда
         Сообщить("Не удалось открыть сохраненные данные! Отчет не найден!", СтатусСообщения.Важное);
         Возврат;
      КонецЕсли;
      
      ВыбФормаОтчета = ОбъектОтчет.ПолучитьФорму( ,ЭтаФорма);
      
      // обход ошибки, присутствующей в 8.2.9
      Если ВыбФормаОтчета.ОбработкаОбъект <> ОбъектОтчет Тогда
         ВыбФормаОтчета.ОбработкаОбъект = ОбъектОтчет;
      КонецЕсли;
      
      ВыбФормаОтчета.РежимВыбора = Ложь;
      ВыбФормаОтчета.ЗакрыватьПриЗакрытииВладельца = Ложь;
      ВыбФормаОтчета.Открыть();
      
   ИначеЕсли ЭтоНовый() Тогда
      //Справочники.РегламентированныеОтчеты.ПолучитьФормуСписка();
      //Отчеты.Д_ОтчетПоЗаявкам.Открыть();
      Справочники.РегламентированныеОтчеты.ПолучитьФормуСписка().Открыть();

   КонецЕсли;
КонецПроцедуры // ПередОткрытием()

суть такова, при сохранении отчета, он проваливается в ХранилищеЗначений, от туда попадает в документ ПланированиеПлатежей(самописный)
в форме списка документа, мы видим сохраненные отчеты, а проблема становиться тогда, когда хочу открыть этот сохраненный отчет
выдает вот эту ошибку
{Документ.Д_ПланируемыеПлатежи.Форма.ФормаДокумента1.Форма(11)}: Ошибка при вызове метода контекста (ЭтоНовый)
   Если Не(ЭтоНовый()) ИЛИ (мСкопированаФорма <> Неопределено) Тогда
по причине:
Документ не выбран
Получил помощь - скажи СПАСИБО.

Оффлайн demous

  • *
  • Сообщений: 8
  • РЕПУТАЦИЯ: 2
  • КПД: 25%
  • Регистрация: 2012-03-26
  • Сайт: 
  • Профессия: Программист 8.1
http://www.forum.mista.ru/topic.php?id=606664 вот ссылка на тему... не хочет пропускать он полностью мои сообщения
Получил помощь - скажи СПАСИБО.


Теги:
 

Не открывает форму сохраненного документа, открывает форму нового.

Автор EHOTРаздел Конфигурирование, программирование в "1С - Предприятие 8"

Ответов: 1
Просмотров: 4483
Последний ответ 13 Апр 2012, 23:26
от Vit1501
Автоматическое заполнение табличной части документа из табличной части другого

Автор WillРаздел Конфигурирование, программирование в "1С - Предприятие 8"

Ответов: 6
Просмотров: 15964
Последний ответ 16 Авг 2012, 12:07
от Will
Заполнение поля табличной части документа из табличной части справочника.

Автор Kurt_WagnerРаздел Конфигурирование, программирование в "1С - Предприятие 8"

Ответов: 3
Просмотров: 4209
Последний ответ 06 Апр 2015, 20:08
от Kurt_Wagner
Заполнение табличной части документа реквизитами табличной части справочника

Автор kaf_infoРаздел Конфигурирование, программирование в "1С - Предприятие 8"

Ответов: 1
Просмотров: 642
Последний ответ 10 Май 2017, 20:44
от ilnur75
Добавление сведений в графу "основание" документа "ТОРГ-12"

Автор Ярослав1984Раздел Конфигурирование, программирование в "1С - Предприятие 8"

Ответов: 4
Просмотров: 7758
Последний ответ 20 Авг 2013, 18:45
от Ярослав1984

* Живое общение

Не устроил ответ?

Зарегистрируйся и задай свой вопрос. Живое общение приносит результат намного быстрее.


Зарегистрироваться

* Реклама

* Поиск

* Последние задачи на разработку (фриланс)

* Реклама

* Последние вакансии

* Топ 10 авторов за месяц

Геннадий ОбьГЭС Геннадий ОбьГЭС
145 Сообщений
ilyay ilyay
63 Сообщений
AIFrame
58 Сообщений
alex0402
50 Сообщений
andron81_81
44 Сообщений
oleg-x
42 Сообщений
BuhRust
32 Сообщений
MuI_I_Ika MuI_I_Ika
31 Сообщений
Golickoff Golickoff
28 Сообщений
Dima Dddd Dima Dddd
24 Сообщений

* Кто онлайн

  • Точка Гостей: 277
  • Точка Скрытых: 0
  • Точка Пользователей: 4
  • Точка Сейчас на форуме:

* Облако тэгов

* Форум 1С с мобильного

* Инструменты

* Дополнительно

Поиск

 
SimplePortal 2.3.5 © 2008-2012, SimplePortal