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

Помогите создать отчет

Автор Люсёк, 20 окт 2010, 18:17

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

progmikon

Вы можете запостить код полностью

Люсёк

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

      
   ТаблицаНачисления = Начисления.Выгрузить();
   
      
    Для каждого СтрокаТЧ Из ТаблицаНачисления Цикл
       Если СтрокаТЧ.ВидРасчета.Наименование = "Оплата за выезды" ИЛИ СтрокаТЧ.ВидРасчета.Наименование = "Оплата за репетиции"
          ИЛИ СтрокаТЧ.ВидРасчета.Наименование = "Оплата за спектакли" Тогда
           Отбор = Новый Структура();
           Отбор.Вставить("Показатель", СтрокаТЧ.ВидРасчета.Наименование);
           Отбор.Вставить("Сотрудник", СтрокаТЧ.Сотрудник);
         МассивСтрок = ТЗ.НайтиСтроки(Отбор);
         
         НайденнаяСтрока = МассивСтрок[0];
             Если НайденнаяСтрока.Значение<>СтрокаТЧ.Показатель2 Тогда
                  СтрокаТЧ.Показатель2 = НайденнаяСтрока.Значение;
         КонецЕсли;    
      КонецЕсли;
    КонецЦикла; 

progmikon

  |   ЗначенияПоказателейСхемМотивации.Показатель Какой тип имеет? Думаю не строка, а ищите вы строку
СтрокаТЧ.ВидРасчета.Наименование.


Люсёк

  |   ЗначенияПоказателейСхемМотивации.Показатель Тип то строка. Только значение его отличается от СтрокаТЧ.ВидРасчета.Наименование. Я так понимаю, поэтому и МассивСтрок пустой получается. Можно это как-нибудь поправить?


progmikon

Например, введя соответствие. Его можно ввести и в запросе

ВЫБОР КОГДА ЗначенияПоказателейСхемМотивации.Показатель = ""Строка01"" ТОГДА ""Строка02""
...
КОНЕЦ КАК ВидРасчета

Люсёк

вы имеете в виду так:

ВЫБРАТЬ
   |   ЗначенияПоказателейСхемМотивации.ПериодДействия,
   |   ЗначенияПоказателейСхемМотивации.Сотрудник,
   |   ЗначенияПоказателейСхемМотивации.Показатель,
   |   ВЫБОР
   |      КОГДА ЗначенияПоказателейСхемМотивации.Значение = ""Количество выездов""
   |         ТОГДА ""Оплата за выезды""
   |      КОГДА ЗначенияПоказателейСхемМотивации.Значение = ""Количество репетиций""
   |         ТОГДА ""Оплата за репетиции""
   |      КОГДА ЗначенияПоказателейСхемМотивации.Значение = ""Количество спектаклей""
   |         ТОГДА ""Оплата за спектакли""
   |   КОНЕЦ КАК ВидРасчета
   |ИЗ
   |   РегистрСведений.ЗначенияПоказателейСхемМотивации КАК ЗначенияПоказателейСхемМотивации
   |ГДЕ
   |   ЗначенияПоказателейСхемМотивации.Организация.Ссылка = &Ссылка
   |   И ЗначенияПоказателейСхемМотивации.ПериодДействия = &ПериодДействия

Только мне ошибку так выдает((

progmikon


Люсёк

ту ошибку я уже исправила, только мне теперь вообще ничего не выводит((

ВЫБРАТЬ
   ЗначенияПоказателейСхемМотивации.ПериодДействия,
   ЗначенияПоказателейСхемМотивации.Сотрудник,
   ВЫБОР
      КОГДА ЗначенияПоказателейСхемМотивации.Показатель = "Количество выездов"
         ТОГДА "Оплата за выезды"
      КОГДА ЗначенияПоказателейСхемМотивации.Показатель = "Количество репетиций"
         ТОГДА "Оплата за репетиции"
      КОГДА ЗначенияПоказателейСхемМотивации.Показатель = "Количество спектаклей"
         ТОГДА "Оплата за спектакли"
   КОНЕЦ КАК ВидРасчета,
   ЗначенияПоказателейСхемМотивации.Значение
ИЗ
   РегистрСведений.ЗначенияПоказателейСхемМотивации КАК ЗначенияПоказателейСхемМотивации
ГДЕ
   ЗначенияПоказателейСхемМотивации.Организация = &Организация
   И ЗначенияПоказателейСхемМотивации.ПериодДействия = &ПериодДействия

Люсёк

я имею ввиду, что ЗначенияПоказателейСхемМотивации.Показатель не выводит((

progmikon

Так добавьте это поле в запрос еще одной строкой.
У вас же его нет в запросе, поэтому он и не выводится.

Теги:

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

Рейтинг@Mail.ru

Поиск