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

Автор Тема: помогите добавить в отчет информацию из справочника  (Прочитано 6165 раз)

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

Оффлайн Infa

  • *
  • Сообщений: 9
  • РЕПУТАЦИЯ: 0
  • Регистрация: 2012-08-31
  • Сайт: 
  • Профессия: Ученик 1С
Есть справочник Статьирасходов.
Есть форма отчета ОстатокДенежных средств по смете
В форме элемента, которая заполняет справочник есть Поле ввода куда пользователь вносит сумму.
Нужно чтобы в отчете выводилась данная сумма. Имеется код с помощью которого формируется отчет, в отчете сидят все данные кроме суммы. Сумма в форму была добавлена позже. Помогите пожалуйста добавить в отчет эту сумму.


Процедура ПриОткрытии()
   Год = Год(ТекущаяДата());
   Организация = глЗначениеПеременной("ОсновнаяОрганизация");
   НачПериода = НачалоГода(ТекущаяДата());
   КонПериода = ТекущаяДата();
   //   ИндивидуальнаяНастройка = Истина;
   //КонецЕсли;
КонецПроцедуры

Процедура ДействияФормыПечать(Кнопка)
   ТабДок = ЭлементыФормы.
ТабличногоДокумента;
   ТабДок.ОриентацияСтраницы = ОриентацияСтраницы.Ландшафт;
   ТабДок.Напечатать(Ложь);
КонецПроцедуры

Процедура ДействияФормыОтчетСформировать(Кнопка)
   //{{КОНСТРУКТОР_ВЫХОДНЫХ_ФОРМ_ПРОЦЕДУРА_ВЫЗОВА(Отчет)
   // Данный фрагмент построен конструктором.
   // При повторном использовании конструктора, внесенные вручную изменения будут утеряны!!!

   ТабДок = ЭлементыФормы.ПолеТабличногоДокумента;
   Отчет(ТабДок, Перечисления.ИспользованиеЭКР.Да, Год(НачПериода), КонецДня(КонПериода), НачалоДня(НачПериода), ПодразделениеОрганизации, Смета);
    ТабДок.ОриентацияСтраницы = ОриентацияСтраницы.Ландшафт;
    ТабДок.ПовторятьПриПечатиСтроки = ТабДок.Область(1,,8,);
   ТабДок.НижнийКолонтитул.Выводить = Истина;
   ТабДок.НижнийКолонтитул.ТекстСправа = "[&НомерСтраницы]";
   
   //}}КОНСТРУКТОР_ВЫХОДНЫХ_ФОРМ_ПРОЦЕДУРА_ВЫЗОВА
КонецПроцедуры

Процедура Отчет(ТабДок, Да, Год, КонПериода, НачПериода, Организация, Смета) Экспорт
   //{{КОНСТРУКТОР_ВЫХОДНЫХ_ФОРМ(Отчет)
   // Данный фрагмент построен конструктором.
   // При повторном использовании конструктора, внесенные вручную изменения будут утеряны!!!

   Макет = ЭтотОбъект.ПолучитьМакет("Отчет");
   
   Если ИндивидуальнаяНастройка Тогда
      РС = РегистрыСведений.ИндивидуальнаяНастройкаПодразделений.СоздатьНаборЗаписей();
      РС.Отбор.Пользователь.Установить(ПараметрыСеанса.ТекущийПользователь);
      РС.Прочитать();
      ПодразделениеОрганизацииОтбор = Новый СписокЗначений;
      Для Каждого ТекСтрока Из РС Цикл
         ПодразделениеОрганизацииОтбор.Добавить(ТекСтрока.ПодразделениеОрганизации);
      КонецЦикла;
   Иначе
      ПодразделениеОрганизацииОтбор = ПодразделениеОрганизации;
   КонецЕсли;
   
   Условие = ?(ЗначениеЗаполнено(ПодразделениеОрганизацииОтбор),"ПодразделениеОрганизации В Иерархии(&ПодразделениеОрганизации) ",?(ЗначениеЗаполнено(Смета),"Смета В Иерархии(&Смета) ","Истина"));
   УсловиеОстатки = ?(ЗначениеЗаполнено(ПодразделениеОрганизацииОтбор),"ПодразделениеОрганизации В Иерархии(&ПодразделениеОрганизации) ",?(ЗначениеЗаполнено(Смета),"Смета В Иерархии(&Смета) ","Истина"));
   УсловиеДвиженияПоСмете = ?(ЗначениеЗаполнено(ПодразделениеОрганизацииОтбор),"ДвиженияПоСметам.ПодразделениеОрганизации В Иерархии(&ПодразделениеОрганизации) ",?(ЗначениеЗаполнено(Смета),"ДвиженияПоСметам.Смета В Иерархии(&Смета) ","Истина"));
   УсловиеПоСмете = ?(ЗначениеЗаполнено(Смета),"Смета В Иерархии(&Смета)","Истина");
   УсловиеСуммыПоСтатьям = ?(ЗначениеЗаполнено(ПодразделениеОрганизацииОтбор),"СуммыПоСтатьям.ПодразделениеОрганизации В Иерархии(&ПодразделениеОрганизации) ",?(ЗначениеЗаполнено(Смета),"СуммыПоСтатьям.Смета В Иерархии(&Смета) ","Истина"));

   
   Запрос = Новый Запрос;
   Запрос.Текст =
   "ВЫБРАТЬ
    |    вложенныйзапрос.суммамакс КАК Суммамакс,
   |   вложенныйзапрос.Статья КАК XərclərinAdı,
   |   СУММА(вложенныйзапрос.ГодоваяСмета) КАК İllikSmetaXərci,
   |   СУММА(вложенныйзапрос.СуммаОстаток) КАК DövrƏvvəlinəQalıq,
   |   СУММА(вложенныйзапрос.СуммаПрихода) КАК AçılanKredit,
   |   СУММА(вложенныйзапрос.СуммаРасхода) КАК FaktikiXərc,
   |   СУММА(вложенныйзапрос.СуммаПрихода + вложенныйзапрос.СуммаОстаток - вложенныйзапрос.СуммаРасхода) КАК FaktikiBankQalığı,
   |   СУММА(вложенныйзапрос.ГодоваяСмета - вложенныйзапрос.СуммаПрихода - вложенныйзапрос.СуммаОстаток) КАК AçılmamışKredit
   |ИЗ
   |   (ВЫБРАТЬ
   |       Суммамакс.Суммамакс КАК Суммамакс,   
   |      Статьи.Статья КАК Статья,
   |      СУММА(0) КАК СуммаПрихода,
   |      СУММА(0) КАК СуммаРасхода,
   |      СУММА(ЕСТЬNULL(СуммыПоСтатьям.ГодоваяСмета, 0)) КАК ГодоваяСмета,
   |      СУММА(0) КАК СуммаОстаток
   |   ИЗ
   |      (ВЫБРАТЬ
   |         СтатьиРасходов.Ссылка КАК Статья
   |      ИЗ
   |         Справочник.СтатьиРасходов КАК СтатьиРасходов
   |      ГДЕ
   |         СтатьиРасходов.ПометкаУдаления = ЛОЖЬ) КАК Статьи
   |         
   
   
   
   |         ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрСведений.СуммыПоСтатьям КАК СуммыПоСтатьям
   |         ПО Статьи.Статья = СуммыПоСтатьям.СтатьяРасхода
   |   ГДЕ
   |      СуммыПоСтатьям.Год = &Год
   |      И &УсловиеСуммыПоСтатьям
   |   
   
               
   |   СГРУППИРОВАТЬ ПО
   |      Статьи.Статья
   |   
   |   
   |   ОБЪЕДИНИТЬ ВСЕ
   |   
   |   ВЫБРАТЬ
   |      ДвиженияПоСметам.СтатьяРасхода,
   |      ДвиженияПоСметам.Сумма,
   |      0,
   |      0,
   |      0
   |   ИЗ
   |      РегистрНакопления.ДвиженияПоСметам КАК ДвиженияПоСметам
   |   ГДЕ
   |      &УсловиеДвиженияПоСмете
   |      И ДвиженияПоСметам.Период МЕЖДУ &НачПериода И &КонПериода
   |      И ДвиженияПоСметам.Регистратор ССЫЛКА Документ.Сифариш
   |   
   |   ОБЪЕДИНИТЬ ВСЕ
   |   
   |   ВЫБРАТЬ
   |      ХозрасчетныйОбороты.Субконто2,
   |      0,
   |      -ЕСТЬNULL(ХозрасчетныйОбороты.СуммаОборот, 0),
   |      0,
   |      0
   |   ИЗ
   |      РегистрБухгалтерии.Хозрасчетный.Обороты(
   |            &НачПериода,
   |            &КонПериода,
   |            ,
   |            Счет В ИЕРАРХИИ (ЗНАЧЕНИЕ(ПланСчетов.Хозрасчетный.РасчетныеСчета))
   |               ИЛИ Счет В ИЕРАРХИИ (ЗНАЧЕНИЕ(ПланСчетов.Хозрасчетный.РасходыПоКапиталоВложениям)),
   |            ,
   |            ПодразделениеОрганизации В ИЕРАРХИИ (&ПодразделениеОрганизации),
   |            (НЕ КорСчет В ИЕРАРХИИ (ЗНАЧЕНИЕ(ПланСчетов.Хозрасчетный.Казначейство_)))
   |               И (НЕ КорСчет В ИЕРАРХИИ (ЗНАЧЕНИЕ(ПланСчетов.Хозрасчетный.КазначействоВнебюджетный))),
   |            ) КАК ХозрасчетныйОбороты
   |   
   |   ОБЪЕДИНИТЬ ВСЕ
   |   
   |   ВЫБРАТЬ
   |      ХозрасчетныйОстатки.Субконто2,
   |      0,
   |      0,
   |      0,
   |      ХозрасчетныйОстатки.СуммаОстаток
   |   ИЗ
   |      РегистрБухгалтерии.Хозрасчетный.Остатки(
   |            &НачПериода,
   |            Счет В ИЕРАРХИИ (ЗНАЧЕНИЕ(ПланСчетов.Хозрасчетный.РасчетныеСчета))
   |               ИЛИ Счет В ИЕРАРХИИ (ЗНАЧЕНИЕ(ПланСчетов.Хозрасчетный.РасходыПоКапиталоВложениям)),
   |            ,
   |            ПодразделениеОрганизации В ИЕРАРХИИ (&ПодразделениеОрганизации)) КАК ХозрасчетныйОстатки) КАК вложенныйзапрос
   |ГДЕ
   |   (НЕ вложенныйзапрос.СуммаПрихода + вложенныйзапрос.СуммаРасхода + вложенныйзапрос.ГодоваяСмета + вложенныйзапрос.СуммаОстаток = 0)
   |
   |СГРУППИРОВАТЬ ПО
   |   вложенныйзапрос.Статья
   |
   |УПОРЯДОЧИТЬ ПО
   |   вложенныйзапрос.Статья.Код
   |ИТОГИ ПО
   |   ОБЩИЕ";                             
   
   Запрос.Текст = СтрЗаменить(Запрос.Текст,"&УсловиеПоСмете",УсловиеПоСмете);
   Запрос.Текст = СтрЗаменить(Запрос.Текст,"&УсловиеДвиженияПоСмете",УсловиеДвиженияПоСмете);
   Запрос.Текст = СтрЗаменить(Запрос.Текст,"&УсловиеОстатки",УсловиеОстатки);
   Запрос.Текст = СтрЗаменить(Запрос.Текст,"&УсловиеСуммыПоСтатьям",УсловиеСуммыПоСтатьям);
   Запрос.Текст = СтрЗаменить(Запрос.Текст,"&Условие",Условие);
   Запрос.УстановитьПараметр("Год", Год);
   Запрос.УстановитьПараметр("Да", Да);
   Запрос.УстановитьПараметр("КонПериода", КонецДня(КонПериода));
   Запрос.УстановитьПараметр("НачПериода", НачалоДня(НачПериода));
   Запрос.УстановитьПараметр("НачГода", НачПериода);//НачалоГода(НачПериода));
   Запрос.УстановитьПараметр("ПодразделениеОрганизации", ПодразделениеОрганизацииОтбор);
   Запрос.УстановитьПараметр("Смета", Смета);
   

   Результат = Запрос.Выполнить();

   ОбластьШапка = Макет.ПолучитьОбласть("Шапка");
   ОбластьСтрока = Макет.ПолучитьОбласть("ОблСтрока");
   ОбластьИтог = Макет.ПолучитьОбласть("ОблИтог");

   ТабДок.Очистить();
   ОбластьШапка.Параметры.ПодразделениеОрганизации = ?(ИндивидуальнаяНастройка Или Не (ЗначениеЗаполнено(ПодразделениеОрганизации) И ЗначениеЗаполнено(Смета)),"Təşkilatlar ",Смета.Наименование);
   ОбластьШапка.Параметры.Период = Строка(Формат(НачПериода,"ДФ=dd.MM.yyyy")) + " - " + Строка(Формат(КонПериода,"ДФ=dd.MM.yyyy"));
   ОбластьШапка.Параметры.Смета = Смета;
   ТабДок.Вывести(ОбластьШапка);
   ТабДок.НачатьАвтогруппировкуСтрок();

   ВыборкаДетали = Результат.Выбрать();

   ПерваяСтрока = Истина;
   Пока ВыборкаДетали.Следующий() Цикл
      Если ПерваяСтрока = Истина Тогда
         ОбластьИтог.Параметры.Заполнить(ВыборкаДетали);
         ПерваяСтрока = Ложь;
         Продолжить;
      КонецЕсли;
      ОбластьСтрока.Параметры.Заполнить(ВыборкаДетали);
      ОбластьСтрока.Параметры.НаименованиеПолное = Справочники.СтатьиРасходов.НайтиПоКоду(ВыборкаДетали.XərclərinAdı).НаименованиеПолное;
      ТабДок.Вывести(ОбластьСтрока, ВыборкаДетали.Уровень());
   КонецЦикла;
   ТабДок.Вывести(ОбластьИтог);
         
   ТабДок.ЗакончитьАвтогруппировкуСтрок();
   
   //}}КОНСТРУКТОР_ВЫХОДНЫХ_ФОРМ
КонецПроцедуры

Процедура ПодразделениеОрганизацииПриИзменении(Элемент)
   Смета = ПодразделениеОрганизации.Смета;
КонецПроцедуры

Процедура ВыбратьПериодНажатие(Элемент)
   НастройкаПериода = Новый НастройкаПериода;
   НастройкаПериода.УстановитьПериод(НачПериода,КонПериода,);
   НастройкаПериода.ВариантНастройки = ВариантНастройкиПериода.Период;
   Если НастройкаПериода.Редактировать() Тогда
      НачПериода = НастройкаПериода.ПолучитьДатуНачала();
      КонПериода = НастройкаПериода.ПолучитьДатуОкончания();
   КонецЕсли;
КонецПроцедуры




   


Оффлайн Yura063

  • *****
  • Сообщений: 1045
  • РЕПУТАЦИЯ: 136
  • КПД: 13%
  • Регистрация: 2010-11-15
  • Сайт: yuis.ru
  • Профессия: Программист 1С
Судя по коду у тебя 8! напиши в тему для 8!
Помогли, отблагодари!

Оффлайн Yura063

  • *****
  • Сообщений: 1045
  • РЕПУТАЦИЯ: 136
  • КПД: 13%
  • Регистрация: 2010-11-15
  • Сайт: yuis.ru
  • Профессия: Программист 1С
Попробуй создать параметр СуммаЧегота в макете!
Идобавь строку:
ОбластьСтрока.Параметры.СуммаЧегота = Справочники.СтатьиРасходов.НайтиПоКоду(ВыборкаДетали.XərclərinAdı).СуммаКотораяВамНужна;
это строка должна стоять перед выводом облости строки (Ведь вам нужно в строки добавлять Сумму?)
Помогли, отблагодари!

Оффлайн Infa

  • *
  • Сообщений: 9
  • РЕПУТАЦИЯ: 0
  • Регистрация: 2012-08-31
  • Сайт: 
  • Профессия: Ученик 1С
Попробуй создать параметр СуммаЧегота в макете!
Идобавь строку:
ОбластьСтрока.Параметры.СуммаЧегота = Справочники.СтатьиРасходов.НайтиПоКоду(ВыборкаДетали.XərclərinAdı).СуммаКотораяВамНужна;
это строка должна стоять перед выводом облости строки (Ведь вам нужно в строки добавлять Сумму?)

Спасибо за ответ. Я не понила Ваши разьяснения. В каком макете и как добавлять. И где код прописать ? В Модуле?

Оффлайн Infa

  • *
  • Сообщений: 9
  • РЕПУТАЦИЯ: 0
  • Регистрация: 2012-08-31
  • Сайт: 
  • Профессия: Ученик 1С
Спасибо за ответ. Я не понила Ваши разьяснения. В каком макете и как добавлять. И где код прописать ? В Модуле?

ОбластьСтрока.Параметры.Суммамакс = Справочники.СтатьиРасходов.НайтиПоКоду(ВыборкаДетали.XərclərinAdı).Суммамакс

Суммамакс это столбец в макете. В справочнике Суммамакс это реквизит.

Оффлайн Yura063

  • *****
  • Сообщений: 1045
  • РЕПУТАЦИЯ: 136
  • КПД: 13%
  • Регистрация: 2010-11-15
  • Сайт: yuis.ru
  • Профессия: Программист 1С
Так! Когда вы смотрите на макет через конфигуратот то у вас есть определенные параметры, которые заполняют вам таблицу! в макете есть столбец (У вас Суммамакс) чуть ниже прописывают параметр который выдает вам необходимые значения в соответствии с выборкой которое делает программный код, которые вы выставили выше! в вашем коде есть строка которое выводит строки в цикле ("ТабДок.Вывести(ОбластьСтрока, ВыборкаДетали.Уровень());"), короче я не знаю как у вас называется параметр в макете, поэтому напишу так:
Пока ВыборкаДетали.Следующий() Цикл
      Если ПерваяСтрока = Истина Тогда
         ОбластьИтог.Параметры.Заполнить(ВыборкаДетали);
         ПерваяСтрока = Ложь;
         Продолжить;
      КонецЕсли;
      ОбластьСтрока.Параметры.Заполнить(ВыборкаДетали);
      ОбластьСтрока.Параметры.НаименованиеПолное = Справочники.СтатьиРасходов.НайтиПоКоду(ВыборкаДетали.XərclərinAdı).НаименованиеПолное;
      [u][b]ОбластьСтрока.Параметры.СуммаМакс = Справочники.СтатьиРасходов.НайтиПоКоду(ВыборкаДетали.XərclərinAdı).СуммаМакс;[/b][/u] \\ то что добавил
      ТабДок.Вывести(ОбластьСтрока, ВыборкаДетали.Уровень());
   КонецЦикла;
Помогли, отблагодари!

Оффлайн Infa

  • *
  • Сообщений: 9
  • РЕПУТАЦИЯ: 0
  • Регистрация: 2012-08-31
  • Сайт: 
  • Профессия: Ученик 1С
Так! Когда вы смотрите на макет через конфигуратот то у вас есть определенные параметры, которые заполняют вам таблицу! в макете есть столбец (У вас Суммамакс) чуть ниже прописывают параметр который выдает вам необходимые значения в соответствии с выборкой которое делает программный код, которые вы выставили выше! в вашем коде есть строка которое выводит строки в цикле ("ТабДок.Вывести(ОбластьСтрока, ВыборкаДетали.Уровень());"), короче я не знаю как у вас называется параметр в макете, поэтому напишу так:
Пока ВыборкаДетали.Следующий() Цикл
      Если ПерваяСтрока = Истина Тогда
         ОбластьИтог.Параметры.Заполнить(ВыборкаДетали);
         ПерваяСтрока = Ложь;
         Продолжить;
      КонецЕсли;
      ОбластьСтрока.Параметры.Заполнить(ВыборкаДетали);
      ОбластьСтрока.Параметры.НаименованиеПолное = Справочники.СтатьиРасходов.НайтиПоКоду(ВыборкаДетали.XərclərinAdı).НаименованиеПолное;
      [u][b]ОбластьСтрока.Параметры.СуммаМакс = Справочники.СтатьиРасходов.НайтиПоКоду(ВыборкаДетали.XərclərinAdı).СуммаМакс;[/b][/u] \\ то что добавил
      ТабДок.Вывести(ОбластьСтрока, ВыборкаДетали.Уровень());
   КонецЦикла;



Спасибо ВАМ огромное. Работает. Скажите а можно ли в данном отчете некоторые названия статей выводить Жирным шрифтом? Большое спасибо!

Оффлайн Yura063

  • *****
  • Сообщений: 1045
  • РЕПУТАЦИЯ: 136
  • КПД: 13%
  • Регистрация: 2010-11-15
  • Сайт: yuis.ru
  • Профессия: Программист 1С
Можно! Нужно писать условия по стотьям, добавлять корректировку в макет! если в двух словах то будет выглядеть так:
 Если (условия сравнения статьи) тогда
        ТабДок.Вывести(ОбластьСтрока1, ВыборкаДетали.Уровень());
 иначе
        ТабДок.Вывести(ОбластьСтрока, ВыборкаДетали.Уровень());
КонецЕсли;

Определенные статьи вы можете поместить в список значений и проверять из списка чем прописывать условия для каждой статьи!
Помогли, отблагодари!

Оффлайн Infa

  • *
  • Сообщений: 9
  • РЕПУТАЦИЯ: 0
  • Регистрация: 2012-08-31
  • Сайт: 
  • Профессия: Ученик 1С
Cпасибо еще раз! Но я не понила. Грубо говоря мне нужно чтобы пользователь при заполнении справочника Статьи расходов некоторые статьи мог заполнять жирным шрифтом.Заранее спс

Оффлайн Yura063

  • *****
  • Сообщений: 1045
  • РЕПУТАЦИЯ: 136
  • КПД: 13%
  • Регистрация: 2010-11-15
  • Сайт: yuis.ru
  • Профессия: Программист 1С
Тогда для такой доработки лучше вызвать специалиста! так как придется изменять немного форму документа, запрос и прописывать условие для вывода жирных строк! Незачто! ))
 
Помогли, отблагодари!


Теги:
 


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

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

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


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

* Реклама

* Поиск

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

* Реклама

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

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

Геннадий ОбьГЭС Геннадий ОбьГЭС
166 Сообщений
ilyay ilyay
75 Сообщений
oleg-x
55 Сообщений
alex0402
46 Сообщений
andron81_81
42 Сообщений
AIFrame
36 Сообщений
MuI_I_Ika MuI_I_Ika
31 Сообщений
Golickoff Golickoff
28 Сообщений
BuhRust
28 Сообщений
Dima Dddd Dima Dddd
26 Сообщений

* Кто онлайн

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

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

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

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

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

Поиск

 
SimplePortal 2.3.5 © 2008-2012, SimplePortal