Ликбез: транспонируем таблицу значений 7.7.

28.01.10

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

Меняем "вдоль" на "поперек"

Скачать исходный код

Наименование Файл Версия Размер
Transpon.ert
.ert 44,50Kb
53
.ert 44,50Kb 53 Скачать

Нередко при проектировании формата отчета требуется выводить по строкам то, что вычислено по столбцам - или наоборот. Маленький отчетик (обработочка) в этом поможет.

//_____________________________________________________________________________
// //Обращаться к отчету надо так:
// ПараметрОтчета = СоздатьОбъект("СписокЗначений")
// ПараметрОтчета.Установить("ТабЗнач",ТранспонируемаяТаблица);
// ОткрытьФормуМодально("Отчет",ПараметрОтчета,ПутьКФайлуОтчета);
// РезТаблица = ПараметрОтчета.Получить.("Результат");

// // Было: Полусить результату, однако Smile А  - зануда Cool
// //Первая колонка результирующей ТЗ будет содержать имена колонок исходной ТЗ
//_____________________________________________________________________________

См. также

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

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

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

10 стартмани

29.04.2015    21641    54    Gvozdod    8    

15

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

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

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

1 стартмани

23.04.2014    166064    1868    Alexoniq    1596    

496

Tray Informer

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

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

1 стартмани

04.09.2013    32944    61    O-Planet    78    

49

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

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

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

1 стартмани

13.08.2013    21263    Reptile    5    

35

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

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

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

1 стартмани

21.02.2013    18065    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    36130    51    venger    7    

23

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

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

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

10 стартмани

25.11.2012    35018    248    adhocprog    51    

70
Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
1. script 128 28.01.10 12:17 Сейчас в теме
ПараметрОтчета.Полусить.("Результат");
Работать не будет, поточу что 1С китайский еще не понимает. :D
Арчибальд; +1
2. tango 540 28.01.10 12:21 Сейчас в теме
Арчи, блин... :D
полусите минуса позалуста
Арчибальд; +1
3. Арчибальд 2707 28.01.10 12:24 Сейчас в теме
4. vcv 89 28.01.10 15:15 Сейчас в теме
Выполнять ПолучитьЗначение/УстановитьЗначение Ширина*Высота раз как-то не слишком быстро.
Может быть быстрее будет транспонировать где-то так:
КоличествоСтрок = ТЗ.КоличествоСтрок();
КоличествоКолонок = ТЗ.КоличествоКолонок();
РезТЗ = СоздатьОбъект("ТаблицаЗначений");
РезТЗ.КоличествоСтрок(КоличествоКолонок);
РезТЗ.КоличествоКолонок(КоличествоСтрок);
СЗ = СоздатьОбъект("СписокЗначений");
Для Колонка=1 По КоличествоКолонок Цикл
    ТЗ.Выгрузить(СЗ,1,КоличествоСтрок,Строка(Колонка));
    РезТЗ.Заполнить(СЗ,Колонка,Колонка);
КонецЦикла;
Показать
Арчибальд; JohnyDeath; +2
5. Арчибальд 2707 29.01.10 08:30 Сейчас в теме
(4) От того, что в Выгрузить и Заполнить нет слова "Цикл", они циклами быть не перестают. Впрочем, Выгрузить можно резко ускорить через внутреннее представление ТЗ и СЗ - это будет просто выделение подстроки...
+
6. vcv 89 29.01.10 08:39 Сейчас в теме
(5) Быстродействие признаться не мерил, поэтому и написал "может быть". Но обычно цикл на языке 1С отрабатывает медленнее, чем цикл где-то в потрохах "Выгрузить" или "Заполнить". Ну и большое количество обращений через "точку" к функциям ПолучитьЗначение/УстановитьЗначение требует времени, особенно в отсутствие функционала turbobl.
Но это все лирика, пока нет конкретных замеров производительности, пусть кому надо, тот и меряет.
А может быть это вообще неважно. Я как то слабо представляю, зачем может потребоваться транспонировать таблицу с сотней (и более) строк.
+
7. Арчибальд 2707 29.01.10 09:02 Сейчас в теме
(6) На месте 1С я бы как раз выгрузку реализовывал ускоренно, через подстроку. А вот заполнение из-за многовариантности (заполнение тучи строк, тучи столбцов, из разнообразных источников), скорее всего, реализовано через те же циклы.
А насчет потребности в транспонировании - это реально бывает нужно для разнообразных отчетов с неизвестным количеством столбцов с "дырками". Метод ПрисоединитьСекцию не очень удобен.
+
8. Tatitutu 3855 29.01.10 10:22 Сейчас в теме
На заметку (в МS EXCEL) это реализовано:

можно скопировать таблицу, выбрать новую ячейку (куда поместить новую результирующую таблицу)
меню-правка-специальная вставка - ставим галочку "Транспортировать" и радуемся результату.
+
9. Арчибальд 2707 29.01.10 10:43 Сейчас в теме
(8) Про Ексель я помню, хотелось все штатно. Я реально эту штучку использую, когда нужно найти конкретный косяк в базе, и приходится делать одноразовый отчетик по какому-либо "кудрявому" запросу.
+
Оставьте свое сообщение