1. Набираем команду codeby webinar. Набираем команду для организации и проведения вебинаров. Подробнее ...

    Скрыть объявление
  2. Требуются разработчики и тестеры для проекта codebyOS. Требования для участия в проекте: Знание принципов работы ОС на базе Linux; Знание Bash; Крайне желательное знание CPP, Python, Lua; Навыки системного администрирования. Подробнее ...

    Скрыть объявление
  3. Получи 30.000 рублей. Для получения денег необходимо принять участие в конкурсе авторов codeby. С условиями и призами можно ознакомиться на этой странице ...

    Внимание! Регистрация авторов на конкурс закрыта.

    Скрыть объявление

Получение Значения Итога В Скд

Тема в разделе "Базы данных и администрирование", создана пользователем Skellar, 12 окт 2011.

  1. Skellar

    Skellar Well-Known Member

    Репутация:
    0
    Регистрация:
    22 июл 2008
    Сообщения:
    87
    Симпатии:
    0
    Всем доброго времени суток. Такой вопрос возник - можно ли получить значения итогов (программно или еще как), которые СКД формирует автоматически.
     
  2. SeverBap

    SeverBap Well-Known Member

    Репутация:
    0
    Регистрация:
    18 сен 2007
    Сообщения:
    451
    Симпатии:
    0
    смотря что тебе нужно
     
  3. Allexei

    Allexei Well-Known Member

    Репутация:
    0
    Регистрация:
    2 май 2008
    Сообщения:
    322
    Симпатии:
    1
    Опиши задачу подробнее.
     
  4. Skellar

    Skellar Well-Known Member

    Репутация:
    0
    Регистрация:
    22 июл 2008
    Сообщения:
    87
    Симпатии:
    0
    К примеру, у меня есть отчет(скрин), который собран из нескольких схем компановки. Мне нужно добавить строку с итогом по всем таблицам, то есть сумму итогов всех схем - Итого Запасы + Итого Деб задолженность. Значение поля "Итого" скд формирует автоматически, так вот, можно ли получить значение этого поля? Идеальный вариант - получить его программно из самих таблиц и подставить в новую таблицу.
     

    Вложения:

  5. Darlock

    Darlock Well-Known Member

    Репутация:
    0
    Регистрация:
    4 янв 2008
    Сообщения:
    560
    Симпатии:
    1
    А компоновка и вывод нескольких схем в один элемент управления у вас программный? Или несколько схем реализовано в одной схеме?
     
  6. Skellar

    Skellar Well-Known Member

    Репутация:
    0
    Регистрация:
    22 июл 2008
    Сообщения:
    87
    Симпатии:
    0
    Да, программный, из модуля формы вывожу все схемы. (Сделал бы по-другому, но не знаю как в одной схеме реализовать несколько таблиц с разной структурой)
     
  7. Darlock

    Darlock Well-Known Member

    Репутация:
    0
    Регистрация:
    4 янв 2008
    Сообщения:
    560
    Симпатии:
    1
    Тогда в процессе вывода каждой таблицы в переменную вписывай общие итоги по текущей схеме
     
  8. Skellar

    Skellar Well-Known Member

    Репутация:
    0
    Регистрация:
    22 июл 2008
    Сообщения:
    87
    Симпатии:
    0
    Прошу прощения, а как это реализовать ?) Вывода у меня стандартный, вот такой:

    Код:
    КомпоновщикМакета = Новый КомпоновщикМакетаКомпоновкиДанных;
    
    Настройки = ДополнительнаяСхемаКомпоновки.НастройкиПоУмолчанию;
    
    КомпоновщикНАстроек.ЗагрузитьНастройки(Настройки);
    
    УстановитьНастройки();
    
    МакетКомпоновки = КомпоновщикМакета.Выполнить(ДополнительнаяСхемаКомпоновки,Настройки);
    
    ПроцессорКомпоновкиДанных = Новый ПроцессорКомпоновкиДанных;
    
    ПроцессорКомпоновкиДанных.Инициализировать(МакетКомпоновки);
    
    ДокументРезультат = ЭлементыФормы.Результат;
    
    ПроцессорВывода= Новый ПроцессорВыводаРезультатаКомпоновкиДанныхВТабличныйДокумент;
    
    ПроцессорВывода.УстановитьДокумент(ДокументРезультат);
    
    ПроцессорВывода.Вывести(ПроцессорКомпоновкиДанных);
     
  9. Allexei

    Allexei Well-Known Member

    Репутация:
    0
    Регистрация:
    2 май 2008
    Сообщения:
    322
    Симпатии:
    1
    Проще всего будет как сказал Darlock перед выводом сделать итоги по двум таблицам а потом вывести этот итог в 3-ю. Можно "извратится"добавить в каждую из этих таблиц колонку "Итого" (можно любое другое имя), для каждой строки внести одно и то же значение, сделать группировку по колонке Итого с суммированием Суммы на начало и Суммы на конец, потом сделать объединение по общему поле колонки итого с суммированием или вычитанием и вывести все это дело на печать :rolleyes:
     
  10. Skellar

    Skellar Well-Known Member

    Репутация:
    0
    Регистрация:
    22 июл 2008
    Сообщения:
    87
    Симпатии:
    0
    А где эти итоги делать? В запросе? Если под Итогом вы подразумеваете поле с суммой по всем строкам, то тут кроется корень проблемы, на моем скрине выше сумма итога на КОНЕЦ по последним 3м строкам равна 450 тысяч с чем-то, и это в разрезе субконто. А если получать значение итога в запросе без такого разреза, то из итоговой суммы пропадает строка где начальная и конечная сумма равны и результат = 445 тыщ. Поэтому вместо поисков как переделать запрос, я хотел взять годовое число из таблицы.
     
  11. Darlock

    Darlock Well-Known Member

    Репутация:
    0
    Регистрация:
    4 янв 2008
    Сообщения:
    560
    Симпатии:
    1
    Так и возьми его. Не надо править запрос. Скомпоновал, но перед выводом прочитай первую строку результата компоновки и получишь общие итоги по таблице в целом. А потом выводи на печать. Мне кажется или в коде не хватает "СкомпоноватьРезультат" с двумя параметрами? Во вложении мой отчет из нескольких схем. и различными манипуляциями с результатом
     

    Вложения:

  12. Skellar

    Skellar Well-Known Member

    Репутация:
    0
    Регистрация:
    22 июл 2008
    Сообщения:
    87
    Симпатии:
    0
    Вот, да, пока не знаю как "взять" значение. За отчет спасибо, сейчас посмотрю.
     
  13. Skellar

    Skellar Well-Known Member

    Репутация:
    0
    Регистрация:
    22 июл 2008
    Сообщения:
    87
    Симпатии:
    0
    Только начал смотреть ваш отчет, как я понимаю вы через расшифровку работаете с результатом и значениями?
     
  14. Darlock

    Darlock Well-Known Member

    Репутация:
    0
    Регистрация:
    4 янв 2008
    Сообщения:
    560
    Симпатии:
    1
    не совсем. в расшифровке - я в зависимости от типа открывают форму элемента/документа. Похожий принцип и у вас должен сработать. вы работаете с конкретным элементом результата компоновки. у вас есть индекс, есть набор, получите по индексу конкретное значение, конкретного набора и будет вам счастье.
     
  15. Skellar

    Skellar Well-Known Member

    Репутация:
    0
    Регистрация:
    22 июл 2008
    Сообщения:
    87
    Симпатии:
    0
    Сделал вот так:
    Код:
    ДанныеРасшифровки = Новый ДанныеРасшифровкиКомпоновкиДанных;
    ПроцессорКомпоновкиДанных = Новый ПроцессорКомпоновкиДанных;
    ...	
    МакетКомпоновки = КомпоновщикМакета.Выполнить(ДополнительнаяСхемаКомпоновки,Настройки,ДанныеРасшифровки);
    ПроцессорКомпоновкиДанных.Инициализировать(МакетКомпоновки,,ДанныеРасшифровки);
    ...
    
    СкомпоноватьРезультат(ЭлементыФормы.Результат, ДанныеРасшифровки); 
    
    ЭлементРасшифровкиДанных = ДанныеРасшифровки.Элементы[0];
    
    ЭлементРасшифровкиДанныхПоля = ЭлементРасшифровкиДанных.ПолучитьПоля()[0];
    И начал перебирать по индексам элементы данных расшифровки. Не получилось найти ни одно числовое значение, итоги тоже не понял как выразить, что я делаю не так?
     
  16. Skellar

    Skellar Well-Known Member

    Репутация:
    0
    Регистрация:
    22 июл 2008
    Сообщения:
    87
    Симпатии:
    0
    Сделал примерно такой вариант:

    Код:
    Обл = ДокументРезультат.НайтиТекст("Итого")	;
    
    Если Обл<>неопределено и ДополнительнаяСхемаКомпоновки<>"СхемаВнеоборотныеАктивы" Тогда
    
    CтрокаЧтения1 = Обл.Низ;
    СтрокаЧтения2 = Обл.Право;
    
    r = "R"+формат(CтрокаЧтения1,"ЧГ=");
    c = "C"+формат(СтрокаЧтения2+1,"ЧГ=");
    
    СуммаНаНачало = СуммаНаНачало + Число(ДокументРезультат.Область(r+c).Текст); 
    
    КонецЕсли;
    Но все равно интересно, как через расшифровку можно это реализовать.
     
  17. Darlock

    Darlock Well-Known Member

    Репутация:
    0
    Регистрация:
    4 янв 2008
    Сообщения:
    560
    Симпатии:
    1
    Расшифровка вызывается при "открытии" ячейки табличного документа. Смотрите внимательно в отладчике. Конкретнее - "МакетКомпоновки", если мне не изменяет память. В отладчике будет что-то типа дерева значений одного и того же типа (это группировки со значениями).
     
  18. Skellar

    Skellar Well-Known Member

    Репутация:
    0
    Регистрация:
    22 июл 2008
    Сообщения:
    87
    Симпатии:
    0
    Вот оно что, спасибо. Тогда вариант с расшифровкой не пройдет - нужно чтобы из всех итогов собиралась общая сумма сразу при открытии отчета. Просто я думал, что есть какой-нибудь простой способ получить итоги по таблице, их сложить и куда-нибудь впихнуть.
     
  19. Darlock

    Darlock Well-Known Member

    Репутация:
    0
    Регистрация:
    4 янв 2008
    Сообщения:
    560
    Симпатии:
    1
     
Загрузка...

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