[NotaBene] Универсальный отчет по таблице значений

17.05.22

Разработка - Инструментарий разработчика

1C v.7.7 Готовое решение. Не требует настройки. Не требует допрограммирования. Данная обработка решает часто встречающуюся задачу вывода в "красивом" виде таблицы значений (полученной, например, из запроса). Поддерживается произвольное группирование данных, отключение/включение группировок, в т.ч и создание "шахматок" (типа "продажи понедельно"). Обработка может использоваться как и в отладочных целях (для нормального просмотра ТЗ), так и в составе вполне рабочих отчетов. По крайней мере, я неоднократно клиентам данную обработку ставил вместо того, чтобы каждый раз писать замороченные выводы данных. И клиенты довольны, и мне - проще...

Скачать файлы

Наименование Файл Версия Размер
[NotaBene] Универсальный отчет по ТЗ
.ert 297,50Kb
2906
.ert 2019-11-30-2018 297,50Kb 2906 Скачать
[NotaBene] Универсальный отчет по таблице значений: пример запуска, можно использовать как самостоятельный отчет "Остатки по любому регистру на любую дату"
.ert 8,50Kb
4
.ert 8,50Kb 4 Скачать

Подробный пример использования данной обработки в составе отчета по оплатам приведен здесь: //infostart.ru/projects/522/?&desc=1&ref=174
Обработка, которая приведена здесь, по сравнению с упомянутой выше ссылкой, расширена: стало лень каждый раз обозначать требуемую раскладку колонок для вывода РАЗНЫХ отчетов - вот и прикрутил сохранение/восстановление раскладки колонок для вывода отчетов. Причем, обработка сама распознает, какой набор/раскладка колонок подходит для полученного на вывода отчета.

От других навороченных обработок аналогичного типа отличается, на мой взгляд, идеальной сбалансированностью функционала и простоты использования.

Мое мнение - удобнейший инструментарий! В копилку программистаааааа!!

Оригинал обработки расположен здесь: http://1c.proclub.ru/modules/mydownloads/personal.php?cid=5&lid=3454 Разрешение от автора на выкладывание доработанной обработки - получено.

Пример использования данной обработки.

//здесь работает внешний отчет, формирующий какие-либо данные
//...
//если ошибка в запросе, то выход из процедуры

Если Запрос.Выполнить(ТекстЗапроса) = 0
Тогда Возврат;
КонецЕсли;

ТЗ = СоздатьОбъект("ТаблицаЗначений");
Запрос.Выгрузить(ТЗ,1,0);

Если ФлагГруппа = 0 Тогда ТЗ.УдалитьКолонку("ГруппаТовара"); КонецЕсли;
ТЗ.УдалитьКолонку("Количество"); //удаляем ненужные колонки
ТЗ.УдалитьКолонку("ПродСт");
ТЗ.УдалитьКолонку("ТекДок");

 

//здесь имеем ПЛОСКУЮ ТЗ с нужными для вывода данными
//ТЗ должна содержать нужные числовые данные и, по возможности, не содержать лишних колонок
//...

//сформируем параметры для передачи в обработку
/
//Параметр "ТаблицаЗначений"
//собственно, сама таблица значений для вывода, подготовленная ранее, плоская.

//Параметр "СписокПоказателей"
//положим в список значений "счетные" колонки ТЗ (числовые)
//(суммы, количества, себестоимости и прочее всякое что можно складывать...)
//все остальные неуказанные колонки будут считаться "измерениями" (группировками)
//формат элемента списка значений:
// значение элемента = идентификатор колонки ТЗ,
// представление элемента = заголовок колонки в отчете
//
 СЗПоказателей = СоздатьОбъект("СписокЗначений");
 СЗПоказателей.ДобавитьЗначение("СуммаПродСт","Сумма");         //"СуммаПродСТ" - идентификатор колонки ТЗ, "Сумма" - будет выводиться заголовком колонки
 СЗПоказателей.ДобавитьЗначение("СуммаКоличество","Кол-во");    //"СуммаКоличество" - идентификатор колонки ТЗ, "Кол-во" - будет выводиться заголовком колонки

//Параметр "СписокВыводаГруппировок", может отсутствовать
//положим в список значений формат вывода группировок (этот параметр может быть опущен/не задан)
//0 -группировку по измерению не выводить (свертывать, с последующей расшифровкой)
//1 -группировать измерение по строкам (группировок может быть несколько)
//2 -группировать измерение по столбцам (группировку по столбцам можно не более одной!)
//
//формат элемента списка значений:
// значение элемента = число (0,1,2)
// представление элемента = идентификатор колонки ТЗ
//
    СЗгруппировок = СоздатьОбъект("СписокЗначений");
        СЗгруппировок.ДобавитьЗначение(2,"ТипЯчейки");
        СЗгруппировок.ДобавитьЗначение(0,"АдресЯчейки");
 
//Параметр "Заголовок", может отсутствовать        
//текст, выводится как заголовок отчета

 Группировки (измерения) - все остальные колонки ТЗ, не упомянутые в списке показателей отчета.
 Итоговый отчет выводится (если не задан вывод по столбцам, т.е. шахматкой) в виде нескольких колонок, 
 где первая колонка - это колонка с выводом занчений группировок/измерений, остальные колонки - значения показателей отчета.
 
 Часто бывает необходимо вывести в строке группировки не только значение группировки (например, "Номенклатура"), но и дополнительное значение группировки, например "Артикул" номенклатуры.
 Можно сделать двумя способами: 
 1. в таблице значений в колонке "Номенклатура" для группировки отчета сформировать текстовое представление, 
 содержащее все необходимые данные по номенклатуре, например: "арт.256987 # Кофварка для хорошего настроения"
 2. добавить вывод дополнительного значения отдельной колонкой, например, предполагается вывод отчета с группировками "Номенклатура" и "Контрагент".
 Если, например, для группировки/измерения "Номенклатура" надо вывести "Артикул", а для группировки/измерения "Контрагент" надо вывести "ИНН", 
 то ТЗ должна иметь колонки с дополнительными значениями для вывода, например: "Номенклатура,Контрагент,ИНН,Артикул,СуммаПродаж" и
 организовать передачу параметров следующим образом:
 
    СписокДопКолонок = СоздатьОбъект("СписокЗначений");
        СписокДопКолонок.ДобавитьЗначение("Артикул", "Номенклатура");
        СписокДопКолонок.ДобавитьЗначение("ИНН", "Контрагент");

Тогда при формировании отчета для группировки "Номенклатура" в доп.колонке будет выведено значение Артикула, 
а для группировки "Контрагент" будет выведено значение ИНН.
Внимание: если в таблице для формирования отчета есть колонки "Артикул" и "ИНН", но эти колонки не упомянуты в списке дополнительных колонок,
то такие колонки рассматриваются как отдельные группировки - по ним также можно гурппировать отчет (например, для вывода товаров 
с совпадающими артикулами можно задать вывод в порядке группировок "Артикул,Номенклатура". если вывод Артикула и ИНН - не нужен 
при формированиии отчета, но такие колонки есть в таблице - перед выводом отчета надо отключить их вывод или передать в параметрах
отключение вывода (см. СЗгруппировок).

Иногда, для удобства манипулирования с готовым отчетом, подсчетом значений - в таблицу для отчета (на этапе ее формирования) 
можно добавить числовую колонку "Счетчик" и по каждой строке заполнить ее значением 1.
        
//...
//вызовем универсальный отчет по ТЗ
//в списке значений передадим параметры
// - саму таблицу значений для вывода, параметр "ТаблицаЗначений"
// - список "счетных" колонок, параметр "СписокПоказателей"
// - список группировок, параметр "СписокВыводаГруппировок" (может отсутствовать)
// - список дополнительных колонок, параметр "СписокДополнительныхКолонок" (может отсутствовать)
// - заголовок для отчета, параметр "Заголовок" (может отсутствовать)

КонтекстВызова = СоздатьОбъект("СписокЗначений");
    КонтекстВызова.ДобавитьЗначение(ТЗ,"ТаблицаЗначений");
    КонтекстВызова.ДобавитьЗначение(СЗПоказателей,"СписокПоказателей");
    КонтекстВызова.ДобавитьЗначение(СЗПоказателей,"СписокВыводаГруппировок"); //параметр может отсутствовать
    КонтекстВызова.ДобавитьЗначение(СписокДопКолонок,"СписокДополнительныхКолонок"); //параметр может отсутствовать
    КонтекстВызова.ДобавитьЗначение(МойЗаголовокОтчета,"Заголовок"); //параметр может отсутствовать

//...
ПутьОбработки = ""; ИмяОбработки = "";
РасположениеФайла(ПутьОбработки, ИмяОбработки);
ОткрытьФорму("Отчет", КонтекстВызова, ПутьОбработки+"ОтчетПоТЗ.ert");

КонецПроцедуры //Сформировать()

Обновление 12.10.22
Модифицировано: возможность вывода дополнительных колонок-значений для строк группировок

Обновление 30.11.19
Модифицировано: выполняется автонастройка ширины колонок таблицы расшифровки числовых показателей

Обновление 29.11.19
Добавлена возможность манипулировать настройками вывода группировок программно при вызове отчета.

ВНИМАНИЕ: СПЕЦИАЛЬНО ДЛЯ ТЕХ, КТО НЕ УМЕЕТ ЧИТАТЬ, ПИШУ БОЛЬШИМИ ЖИРНЫМИ КРАСНЫМИ БУКВАМИ: ОБРАБОТКУ СЛЕДУЕТ ВЫЗЫВАТЬ КАК ОПИСАНО ВЫШЕ, ИСПОЛЬЗУЯ ПРОГРАММНЫЙ ОПЕРАТОР  ОткрытьФорму("Отчет",....) - НИКАКИМИ ДРУГИМИ СПОСОБаМИ ДАННУЮ ОБРАБОТКУ ОТКРЫВАТЬ НЕ СЛЕДУЕТ!

Обработка универсальная таблица значений печать инструмент инструментарий группировка шахматка

См. также

Консоль запросов

Инструментарий разработчика Платформа 1С v7.7 Конфигурации 1cv7 Абонемент ($m)

Консоль запросов к базе SQL, не требующая внешних компонент

10 стартмани

29.04.2015    21562    54    Gvozdod    8    

14

StartManager 1.4 - Развитие альтернативного стартера

Инструментарий разработчика Платформа 1С v7.7 Платформа 1С v8.3 Абонемент ($m)

Очередная редакция альтернативного стартера, являющегося продолжением StartManager 1.3. Спасибо всем, кто присылал свои замечания и пожелания, и тем, кто перечислял финансы на поддержку проекта. С учетом накопленного опыта, стартер был достаточно сильно переработан в плане архитектуры. В основном сделан упор на масштабируемость, для способности программы быстро адаптироваться к расширению предъявляемых требований (т.к. довольно часто просят добавить ту или иную хотелку). Было пересмотрено внешнее оформление, переработан существующий и добавлен новый функционал. В общем можно сказать, что стартер эволюционировал, по сравнению с предыдущей редакцией. Однако пока не всё реализовано, что планировалось, поэтому еще есть куда развиваться в плане функциональности.

1 стартмани

23.04.2014    165729    1864    Alexoniq    1596    

496

Tray Informer

Инструментарий разработчика Платформа 1С v7.7 Платформа 1С v8.3 Россия Абонемент ($m)

Согласитесь, что окно стандартное сообщений в 1С иногда приносит больше неудобств, чем пользы. И тем более разные "Предупредить"... Что с этим окном только не делают! Его отцепают от формы, делают маленьким, умудряются спрятать за границы экрана. А потом звонят программистам с претензией, что документ почему-то не проводится, отя ничего и не пишет. У вас такого не было? А вот у нас было и не раз )))

1 стартмани

04.09.2013    32883    61    O-Planet    78    

49

Изменение структуры баз 1С 7.7 без долгой реструктуризации. Часть 1. Справочники

Инструментарий разработчика Платформа 1С v7.7 Конфигурации 1cv7 Абонемент ($m)

На днях встретил вопрос на форуме про возможность внесения изменений в конфигурацию без долгого сохранения в рабочей базе большого объема. Вот решил поделиться опытом, как это делал я. База у нас была объемом порядка 120 Гб. К базе обращался сайт в режиме 24/7, поэтому важно было быстро сохранять изменения и желательно без последующего монопольного запуска для восстановления индексов и процедур и без отключения пользователей от базы. Это первая часть статьи и посвящена она справочникам. С одной стороны - это самый простой объект, с другой стороны, именно про справочник спрашивалось на форуме. Если статья будет востребована, то я напишу аналогичные про документы, регистры и может еще что.

1 стартмани

13.08.2013    21200    Reptile    5    

35

v7.7 1CDialogControls: Инструмент в помощь разработчику на 7.7.

Инструментарий разработчика Платформа 1С v7.7 Конфигурации 1cv7 Абонемент ($m)

Давным давно, когда я еще плотно писал на 7.7 работа с формами была мучительной и неудобной. Приходилось каждый элемент выкладывать, выравнивать на форме ручками, прописывать код в модуле. Иногда при разработке очередной формы приходила в голову мысль: "а где-то я уже похожее делал..." и начинался мучительный поиск подходящего кода в своих запасах........

1 стартмани

21.02.2013    18031    35    MarSeN    14    

16

[Разработчику] Любая таблица значений в OLAP

Инструментарий разработчика Платформа 1С v7.7 Конфигурации 1cv7 Абонемент ($m)

Анализируем различные данные в 1С, используя OLAP-технологии со всеми прелестями. Т.е. наглядное отображение данных, быстрые расчеты, горизонтальные и вертикальные группировки любой вложенности, удобная фильтрация, Drag'n'Drop и ещё много приятных вещей от MS. Обработка на входе принимает практически любую таблицу значений (ТЗ в которой колонкам указаны типы значений, строка, число и т.п.), на выходе имеем на форме 1С сводную таблицу и график по этой ТЗ, с которой работаем, как и в Excel со сводной таблицей и диаграммой. Взял за основу разработку «OLAP Анализ счёта» ( http://infostart.ru/public/14964/ ) от JohnyDeath и переделал под любую ТЗ. Опционально используется «Прогресс бар для 1С 77» (http://infostart.ru/public/14061/ ) от Gmix.

1 стартмани

21.12.2012    36105    51    venger    7    

23

Библиотека кода 1С 7.7 (накопленная за 8 лет)

Инструментарий разработчика Платформа 1С v7.7 Конфигурации 1cv7 Абонемент ($m)

Весь код на 1С 7.7, собранный для повторного использования за 8 лет работы.

10 стартмани

25.11.2012    34960    248    adhocprog    51    

70
Комментарии
В избранное Подписаться на ответы Сортировка: Древо развёрнутое
Свернуть все
1. CheBurator 3119 08.05.07 04:07 Сейчас в теме
Все - бяки!
100 раз качнули - хоть один бы коммент оставил...
dreadlord; Fox86; +2 Ответить
2. DobroProd 14.05.07 12:47 Сейчас в теме
в комплексной при открытии
Для сч = 1 По ТЗПолнаяОригинал.КоличествоКолонок() Цикл
{C:\DOCUMENTS AND SETTINGS\ALEX.DOBRO_PROD\РАБОЧИЙ СТОЛ\BVK_OTCHETPOTZ.ERT(325)}: Значение не представляет агрегатный объект (КоличествоКолонок)
3. CheBurator 3119 14.05.07 13:25 Сейчас в теме
4. CheBurator 3119 14.05.07 23:35 Сейчас в теме
проблема, скорее всего - в ненадлежащей передаче параметров при вызове обработки - копать в эту сторону.
на досуге придется вставить проверку на прием параметров...
5. soba 11.07.07 17:16 Сейчас в теме
Очень понравилась :) куча отчетов было таких, что вывод только из таблиц, а тут группировки по ним готовенькие. спасибо :)
6. CheBurator 3119 11.07.07 17:37 Сейчас в теме
Всегда пожалуйста.
Приходите еще.
Заказывайте и спрашивайте про прочие нужные вам "полезности"
dreadlord; +1 Ответить
7. Just 2 31.08.07 06:27 Сейчас в теме
8. Fox86 21.09.07 12:32 Сейчас в теме
Спасибо что выложил эту прогу. но боюсь это не совсем то, что мне надо
9. Шёпот теней 1779 04.10.07 09:10 Сейчас в теме
Господин, Che Burashka... Вы и так впереди планеты всей... и вызываете уважение... УРА!
dreadlord; +1 Ответить
10. Fixator 10 04.10.07 11:14 Сейчас в теме
Хоть и не модератор FIDO, но плюс Вам поставлю...
11. CheBurator 3119 04.10.07 13:38 Сейчас в теме
Спасибо. Начинаю офигевать от собственной офигенности... Качают много всяких моих разработок, но вопросов задают мало... или написал так что все понятно/большинстов устраивает или посмотрели и бросили.. даже ругать не стали... ВАШИ МНЕНИЯ ПО ЭТОМУ ПОВОДУ?
dreadlord; +1 Ответить
12. astonvilla 234 04.10.07 14:46 Сейчас в теме
Я скачал, нет времени посмотреть. Гляну, обязательно отпишусь и оценю :))
13. CheBurator 3119 06.02.08 02:15 Сейчас в теме
вот здесь есть достойное продолжение для классоманов http://infostart.ru/projects/1658/
14. oskar 17.06.08 08:54 Сейчас в теме
15. CheBurator 3119 17.06.08 10:49 Сейчас в теме
(14) А то! То что лежит у мну в профайле - испытано и одобрено лично мною и используется в моей повседневной работе, так что крупных косяков - нет...
16. бубух 29.07.08 16:51 Сейчас в теме
гранаты ваши не моёй системы. моя ругается и ничго делать не хочет. жаль.
17. CheBurator 3119 29.07.08 17:09 Сейчас в теме
(16) не надо ля-ля.. все работает!
как конкретно ругается?
покажите код, который готовит и передает параметры на вход этой обработки...?
18. бубух 30.07.08 12:46 Сейчас в теме
(17) выдает:
ТЗраб.Сортировать("ИмяГруппировки");
{D:\BASES\БАЗЫ ГЛАВБУХА\КОПИЯ БД БУХ ТЕКУЩАЯ\EXTFORMS\УНИВЕРСАЛЬНЫЙ ОТЧЕТ ПО ТАБЛИЦЕ ЗНАЧЕНИЙ.ERT(994)}: Неверный идентификатор колонки!
Если ТЗНастроекКолонокТекущая.КоличествоСтрок() = 0 Тогда
{D:\BASES\БАЗЫ ГЛАВБУХА\КОПИЯ БД БУХ ТЕКУЩАЯ\EXTFORMS\УНИВЕРСАЛЬНЫЙ ОТЧЕТ ПО ТАБЛИЦЕ ЗНАЧЕНИЙ.ERT(1035)}: Значение не представляет агрегатный объект (КоличествоСтрок)
ТЗПолная.НоваяКолонка(ИмяВертГруппировки,ТипВертГруппировки);
{D:\BASES\БАЗЫ ГЛАВБУХА\КОПИЯ БД БУХ ТЕКУЩАЯ\EXTFORMS\УНИВЕРСАЛЬНЫЙ ОТЧЕТ ПО ТАБЛИЦЕ ЗНАЧЕНИЙ.ERT(753)}: Значение не представляет агрегатный объект (НоваяКолонка)
По поводу кода ничё сказать не могу - я просто булгахтер любопытный.
19. CheBurator 3119 19.08.08 00:21 Сейчас в теме
отвечено в личку:
- обработка самостоятельно ручками не вызывается! вызывается программным способом с передачей параметров!
20. Avrora 24.10.08 18:24 Сейчас в теме
такое выдает

ТЗИдВерт.УстановитьЗначение(ТЗИдВерт.НомерСтроки, ИмяПоказателя, ТЗВремКопия.ПолучитьЗначение(ТЗВремКопия.НомерСтроки, ИмяПоказателя));
{D:\...\BVK_OTCHETPOTZ.ERT(701)}: Неверный идентификатор колонки!
21. CheBurator 3119 24.10.08 23:36 Сейчас в теме
(20)
1.Отчет вызывается ТОЛЬКО ПРОГРАММНО!
2. Проверьте чтобы при передаче параметров было
СЗПоказателей.ДобавитьЗначение("ЗдесьИмяКолонкиТЗ","ЗдесьКакэТоНазыватВотчете");
22. KneZ 28.02.09 06:44 Сейчас в теме
Спасибо все работает супер! Поначалу правда не запускалось. Достаточно было понять, что в ТЗ должны быть не только группировки, но и их значения
23. rmv 20.05.09 15:02 Сейчас в теме
Великий СЕНКС. Весьма облегчило жисть
24. levran 201 21.05.09 16:33 Сейчас в теме
25. KpeaTuFF 06.06.09 22:56 Сейчас в теме
Помогла не только разработка, но и автор! Спасибо!
26. bearcat 70 20.07.09 01:44 Сейчас в теме
Поместила файл в подкаталог ExtForms в каталоге информационной базы.
Через меню "Сервис" выбрала пункт "Дополнительные возможности".
Добавила этот файл.
Попыталась открыть отчет, пишет - НЕВЕРНЫЕ ПАРАМЕТРЫ ВЫЗОВА, но при этом при нажатии на "ОК" отчет открылся.
при попытке сформировать выдает :
ТЗПолная.НоваяКолонка(ИмяВертГруппировки,ТипВертГруппировки);
{D:\1С - ОПТИМА\БАЗЫ ДАННЫХ (ЛОКАЛЬНЫЕ)\СТ\EXTFORMS\BVK_OTCHETPOTZ.ERT(753)}: Значение не представляет агрегатный объект (НоваяКолонка)
что делать? я не программист, я бухгалтер, который старается облегчить себе жизнь путем использования обработок.
Если сможете подсказать, буду благодарна.
29. comrad 13.08.09 10:04 Сейчас в теме
CheBurator вышлите мне пожалуйста инструкцию как для (26)
30. CheBurator 3119 13.08.09 12:30 Сейчас в теме
(29) в описании обработки где-нибудь сказано что обработку следует открывать через файл-открыть? сказано открывать каким либо другим способом кроме как вызовом оператора ОткрытьФорму("Отчет", КонтекстВызова, ПутьОбработки+"БВК_ОтчетПоТЗ.ert"); ....????????
- что именно непонятно?
31. comrad 13.08.09 15:05 Сейчас в теме
(30) разобралься спасибо.
я пока что нуб так что извиняйте.
27. truba 07.08.09 18:11 Сейчас в теме
bearcat, не делайте так.
не надо все в рот тянуть, прям как дети малые
28. CheBurator 3119 07.08.09 18:17 Сейчас в теме
(27) спокойно! инструкции были даны в личку...
32. Dahlia 12.11.09 16:45 Сейчас в теме
:cry: Наверно, я чего-то не понимаю, но у меня неправильно работает
Во вложенном файле исходная ТЗ и картинка, чего получается. Самое яркое что в глаза бросается - столбцы по первой номенклатуре - итоги по торговым
Прикрепленные файлы:
ИсходнаяТаблица.rar
33. CheBurator 3119 12.11.09 16:58 Сейчас в теме
34. Dahlia 13.11.09 11:55 Сейчас в теме
(33) Отправил архив на мыло
35. waol 313 09.12.09 12:45 Сейчас в теме
глФРМ неплохо бы вставить в модуль :)
36. CheBurator 3119 09.12.09 14:16 Сейчас в теме
(35) Разрешаю, вставляйте!
37. waol 313 09.12.09 15:35 Сейчас в теме
не имею такой возможности; да мне то собственно...
38. DrZombi 286 06.07.10 11:58 Сейчас в теме
Бывают клиенты "Кнопочники", такие нелюбят много кнопок, а нооборот мечтают об одной кнопке :)
39. CheBurator 3119 06.07.10 12:15 Сейчас в теме
(38) вставь "заглушку" - для такого-то набора колонок применить такую-ту раскладку ;-) - т.е. пррограммно прописать то что делается по кнопке восстановить... а еще лепотее - через глРасшифровку закинуть нужный набор параметров
40. unichkin 1559 17.03.11 17:27 Сейчас в теме
А глФРМ - это из типовой конфы? У меня база 10 раз переписана, ругается.
глФРМ<<?>>(ЗначениеПоказателя)
Функция не обнаружена (глФРМ)
Может скинете на почту модуль функции?
42. unichkin 1559 17.03.11 18:03 Сейчас в теме
(40) уже разобрался) Крутая штука, очень помогло)
41. unichkin 1559 17.03.11 17:28 Сейчас в теме
Кстати, было бы еще неплохо иметь возможность убирать группировку из вывода таблицы.
43. CheBurator 3119 18.03.11 21:24 Сейчас в теме
(41) ну.. это простая глПечатьТЗ() - есть такая широко распространенная...
44. unichkin 1559 18.03.11 23:03 Сейчас в теме
(43) и это победил, просто кинул на форму кнопку, удаляющую текущую группировку, и сделал сохранение перед этим. Теперь не пойму, почему не работает фиксация строк, и не выводятся заголовки)))
45. konfed 27.06.11 20:25 Сейчас в теме
Классно работает, но до тех пор пока не нужно выводить посортированное, т.к. обработка производит свою сортировку при выводе.
напр.: группировка 1 = контрагент, группировка 2 = товар, ресурсы - количество и сумма . нужно вывести все посортированное по количеству в
порядке убывания. ТЗ, которая передается Вашей обработке уже так и посортирована, но внутри Вашей обработке сортировка ломается. однозначный плюс автору и
CheBurator за то, что представил (доработки CheBurator не проверял). буду пробовать исправить что-то с сортировкой
46. CheBurator 3119 27.06.11 21:09 Сейчас в теме
(45) Обработка - универсальная, хотите специфики - перетачивайте самостоятельно ;-)
В общем случае сортировка по измерению (товар, клиент) - всегда имеет смысл, сортировка по количеству в общем случае - смысла лишена: отсортируйте литры с килограммами и сантиметрами...
47. konfed 28.06.11 10:00 Сейчас в теме
почему же лишена смысла - если все товары имеют одну единицу измерения - то сортировка в числовом измерении дасть больше аналитической информации, чем сортировка по товару, контрагенту.
48. CheBurator 3119 28.06.11 10:06 Сейчас в теме
(47) потому что не надо "подгонять данные". Я выше написал: реализован общий случай, в общем случае - товары не имеют одну единицу измерения. А вот "если.. имеют...", "если... весь товар - одна номенклатура но разных серий с разными сроками изготовления" и т.д. - это частные случаи. никто не запрещает подогнать универсальную обработку для общих случаев под свое частное решение...
49. Гость 06.12.11 16:20
Если Запрос.Выполнить(ТекстЗапроса) = 0
Тогда Возврат;
КонецЕсли;

ТЗ = СоздатьОбъект("ТаблицаЗначений");
Запрос.Выгрузить(ТЗ,1,0);

Если ФлагГруппа = 0
Тогда ТЗ.УдалитьКолонку("ГруппаТовара");
КонецЕсли;
ТЗ.УдалитьКолонку("Количество");
ТЗ.УдалитьКолонку("ПродСт");
ТЗ.УдалитьКолонку("ТекДок");

//здесь имеем ТЗ с нужными для вывода данными 
//...
//положим в список значений "счетные" колонки ТЗ
//(суммы, количества, себестоимости и прочее всякое что можно складывать...)
СЗПоказателей = СоздатьОбъект("СписокЗначений");
СЗПоказателей.ДобавитьЗначение("СуммаПродСт","Сумма");
СЗПоказателей.ДобавитьЗначение("СуммаКоличество","Кол-во");
//...
//вызовем универсальный отчет по ТЗ
//в списке значений передадим 2 параметра
// - список "счетных" колонок
// - саму таблицу значений для вывода
КонтекстВызова = СоздатьОбъект("СписокЗначений");
КонтекстВызова.ДобавитьЗначение(ТЗ,"ТаблицаЗначений");
КонтекстВызова.ДобавитьЗначение(СЗПоказателей,"СписокПоказателей");
//...
ПутьОбработки = ""; 
ИмяОбработки = "";
РасположениеФайла(ПутьОбработки, ИмяОбработки);
ОткрытьФорму("Отчет", КонтекстВызова, ПутьОбработки+"БВК_ОтчетПоТЗ.ert");

КонецПроцедуры //Сформировать()
Показать
50. ARTEM123456 05.03.12 08:24 Сейчас в теме
51. mihenius 83 28.04.12 15:39 Сейчас в теме
Не нашел как добавить обычных колонок для доп. информации.
Видимо нужно доработать, чтобы был список колонок кот. следует исключить из группировки.
53. CheBurator 3119 29.04.12 00:22 Сейчас в теме
(51) этот отчет - в первую очередь группировочный. поэтому вывод дополнительной информаци для уровня группировки - не предусмотрен. Выйти из положения нможно так: если надо вывести в группировке, например номенклатуру с дополнительнйо инфорацией (акртику) - то в ТЗ ДЛЯ ВЫВОДА вместо колонки "номенклатьура", формируем колонку "артикул+номенклатура"
52. mihenius 83 28.04.12 16:25 Сейчас в теме
Не нашел как зафиксировать порядок сортировки строк/колонок.
Так же необходимо немного доработать )
54. CheBurator 3119 29.04.12 00:24 Сейчас в теме
(52) внизу под таблицей группирвоко - есть кнопка "сохранить" и "восстановить". Первая кнопка запоминает под именем (вводится пользователем) текущую настройку вывода колонок/группирвоок, "восстановить2 - позволяет восстановить ее.
55. mihenius 83 02.05.12 07:11 Сейчас в теме
(53,54) Уже переделал под себя )

Пришел к клиентам, а там твоя обработка используется.
56. Скользящий 04.12.12 14:01 Сейчас в теме
Очень хорошая обработка, спасибо, очень помогла. Возникла правда, проблема. Отчет чисто группировочный, а иногда надо выводить дополнительную строку с информацией "в т.ч." Привожу пример.
В ТЗ есть колонки Контрагент, Товар, РасходнаяНакладная, Количество, ГруппаКонтрагентов, Группа Товаров. Счетная колонка "Количество"

Этим отчетом удается вывести ГруппаКонтрагентов в столбцах, Группа Товар и Товар в строках, выглядит так
http://gyazo.com/7338e1dfc1ed8c30de7e64212fb6f799
Или можно вывести вот так
http://gyazo.com/12f731587eb4c5fdf114c2decae889bc т.е. без вывода товаров.

А хотелось бы выводить например только группу товаров, и "в т.ч." товар. Вот так
http://gyazo.com/5b3b77d726cd758afd062b4707e86494
Иными словами, чтобы итоги по группе считал, но выводил под названием группы и количеством только определенные товары с количеством по конкретным товарам. Как можно извратиться в рамках существующего отчета? Или только допиливать отчет?
57. Скользящий 04.12.12 14:58 Сейчас в теме
Впрочем, вышел из положения, тупил. Просто добавил колонку еще одну группировочную. ) Проблема решена.
58. CheBurator 3119 18.12.13 13:09 Сейчас в теме
59. CheBurator 3119 29.11.19 15:55 Сейчас в теме
Обновил обработку.
Добавлена возможность манипулировать настроками вывода группировок программно при вызове отчета.
В плане (когда-то.. если руки дойдут...):
1.переписать на йоксель и ИТЗ для увеличения производительности.
2. сделать возможность запуска обработки интерактивно - с загрузкой сторонних данных для вывода из экселя, csv, dbf + вывод данных из базы, получаемых через универсальный подбор обьектов.
60. CheBurator 3119 30.11.19 20:27 Сейчас в теме
Обновил обработку.
Модифицировано: выполняется автонастройка ширины колонок таблицы расшифровки числовых показателей
61. CheBurator 3119 11.03.20 21:23 Сейчас в теме
Скоро очередное обновление будет:
1. возможность вывода вычисляемых колонок (например, когда в колонке должно содержаться содержится некое процентное значение и при использовании группировок проценты не должны складываться из нижележащих, а должны вычисляться..)
2. возможность вывода дополнительных колонок для группировок (например, в отчет можно вывести допколонку, в которой для группировки номенклатура" выводить код/артикул/инойреквизит, а для группировки контрагент - свой реквизит из карточки контрагента).
.
пп.1,2 настраиваются/задаются программно в списке параметров для формирования отчета...
65. vowg 85 10.10.22 09:51 Сейчас в теме
(61) Интересует пункт 2, как можно реализовать программно, хотя бы где искать?
Нужно вывести артикул номенклатуры в одной строке с номенклатурой, а выводится только как группировка.
66. vowg 85 10.10.22 10:14 Сейчас в теме
(61) Нашел сам, но хотелось бы информацию в описании.
67. CheBurator 3119 10.10.22 12:56 Сейчас в теме
(66) поделись как сделал. может что полезное, то я выложу.
Я не помню - есть ди в 'nqj версии что лежит на портале возможность выводит дополнительную колонку рядом с группировкой. Себе такую делал, но вот выкладывал ли - не помню. Можно сделать вывод любых колонок на уровне группировки, но усложнять особо не хочется. отчет "универсальный". для быстрого получения/оценки. Я обычно делаю если надо что-то вывести дополнительно к группировке - делаю отдельную колонку и туда"склеиваю" все что надо типа
"200356 # 4689675765234 # наименование"
68. vowg 85 11.10.22 15:10 Сейчас в теме
(67)
перед выгрузкой добавляем в параметры СЗ "СписокДополнительныхКолонок"

	СписокДопКолонок = СоздатьОбъект("СписокЗначений");
	СписокДопКолонок.ДобавитьЗначение("Артикул", "Номенклатура");
	КонтекстВызова.ДобавитьЗначение(СписокДопКолонок,"СписокДополнительныхКолонок");
69. CheBurator 3119 11.10.22 22:50 Сейчас в теме
(68)
СписокДопКолонок.ДобавитьЗначение("Артикул", "Номенклатура");

К колонке-измерению "Номенклатура" добавляешь вывод допколонки "Артикул" как Номенклатура.Артикул?
ана других группировках, которые не номенклатура" - добавляешь пустую секцию? Давай больше кода или всю обработку подправленную скинь в личку ссылку на скачку, посмотрю что-да как. может скрещу со своими доработками и выложу
70. vowg 85 12.10.22 12:31 Сейчас в теме
(69) Перед выгрузкой формирую в ТЗ колонки "Артикул" и "Номенклатура", и перед вызовом добавляю код в (68). Это все. При выводе первой колонкой идет "Номенклатура", а за ней "Артикул".
Больше ничего не добавлял. Твою обработку не менял.
71. CheBurator 3119 12.10.22 13:07 Сейчас в теме
(70) Ага, спсб, посмотрел в код обработки ;-).
Да, там уже есть мои добавки.
Достаточно как ты сделал.
Если, например, для группировки/измерения "Номенклатура" надо вывести "Артикул", а для группировки/измерения "Контрагент" надо вывести "ИНН", то ТЗ должна иметь колонки "Номенклатура,Контрагент,ИНН,Артикул".
А передача параметров:
СписокДопКолонок = СоздатьОбъект("СписокЗначений");
СписокДопКолонок.ДобавитьЗначение("Артикул", "Номенклатура");
СписокДопКолонок.ДобавитьЗначение("ИНН", "Контрагент");
КонтекстВызова.ДобавитьЗначение(СписокДопКолонок,"СписокДополнительныхКолонок");
62. CheBurator 3119 07.07.20 20:45 Сейчас в теме
Обновил. Исправлена мелкая недоработка.
63. CheBurator 3119 17.07.20 20:51 Сейчас в теме
Обновил. Доработаны мелочи для удобства/юзабельности.
64. byshchenko 5 24.01.21 01:03 Сейчас в теме
Спасибо огромное автору. Отчет формируется с помощью этого.
Очень полезная вещь для отчетов.
72. CheBurator 3119 12.10.22 14:31 Сейчас в теме
Обновил. Отредактировано описание обработки (также описание в само обработке) - добавлены инструкции по выводу дополнительных колонок.
Оставьте свое сообщение