1С 7.7 Универсальный показ и разные прибамбасы для отладки (все в одной форме)

10.01.11

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

(добавлено: складывание ТаблицЗначений из колонки, добавление как реквизита ТабличнойЧасти документа в новую колонку, вызов команды на последовательность действий (из дополнительной неуниверсальной части) (как результат: теперь можно отработать такую составную команду
"НаборДействий_ДобавитьРеквизит(ТЧ),СложитьТ,Свернуть(Клиент@Приход#Расход),Печать")

Универсальная обработка
1)Обработчик ТаблицыЗначений (Т) (списказначений)
1.1)Если ей передать таблицузначений (Т) (списокзначений) - покажет его на своей форме и дальше с ней
можно извращаться
     (добавлять колонки с реквизитами значений из другой
    колонки (в том числе ВнутреннийИдентификатор, КоличествоСтрок табличной части
        Помеченность на удаление, саму табличную часть как ТаблицаЗначений)),
    показывать реквизит (.../шапку, табличную часть) значения из ячейки, сортировать,
    свертывать, сохранять в значение внутр в файл, ....,
    скидывать в dbf (с ограничениями по колонкам),
    разворачивать в плоскую таблицу значения из списков из колонки Т (создает таблицу
        с копиями строк для каждого значения из списка),
    получать таблицузначений как сумму строк таблицзначений из колонки (т.о.
        можно получить суммарную табличную часть списка документов)
    поиск дублей строк по любому набору колонок,
    некоторые математические действия со значениями колонок, подсчитывает итог
        текущей колонки, выдает Т на печать,...)
1.2)Можно загружать Т из файла внутр
1.3)Можно загружать табличную часть любого документа
2)Может использоваться для открытия формы документа/элементасправочник (через команду вызова)
    (делает интелектуально (открывает на просмотр, если заблокирован),
     открывает форму списка, если нет формы элемента и т.п.),
    показа движений регистров документа ...
3)Может  быть использован отдельный обработчик не универсальный для пристыковки не
    универсальных расчетов значений по содержимому ячеек колонки
        (приложен пример ПоказатьТ_Доб_НеУниверсальность.ert)

(удобно использовать, в том числе, из UCoice.ert )

В ПоказатьТ_Доб_НеУниверсальность.ert класть обработчики не универсальные, чтобы ПоказатьТ.ert открывалась во всех базах

В ПоказатьТ_Доб_НеУниверсальность.ert можно класть строки выполнения последовательности действий (см. в модуле ПоказатьТ_Доб_НеУниверсальность)
(например, "НаборДействий_ДобавитьРеквизит(ТЧ),СложитьТ,Свернуть(Клиент@Приход#Расход),Печать" -
выполнится указанный набор действий (т.е. получим печатную таблицу суммы табличный частей
документов из текущей колонки, свернутую по "Клиент","Приход,Расход"
    (т.е. считаем, что Клиент,Приход,Расход - есть колонки в ТабличныхЧастях
    документов из текущей колонки) )
(сама обработки такой строки происходит в ПоказатьТ.ert)

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

Наименование Файл Версия Размер
1C_77_УниверсальныйПоказ
.rar 48,73Kb
237
.rar 48,73Kb 237 Скачать

Универсальная обработка
1)Обработчик ТаблицыЗначений (Т) (списказначений)
1.1)Если ей передать таблицузначений (Т) (списокзначений) - покажет его на своей форме и дальше с ней
можно извращаться
     (добавлять колонки с реквизитами значений из другой
    колонки (в том числе ВнутреннийИдентификатор, КоличествоСтрок табличной части
        Помеченность на удаление, саму табличную часть как ТаблицаЗначений)),
    показывать реквизит (.../шапку, табличную часть) значения из ячейки, сортировать,
    свертывать, сохранять в значение внутр в файл, ....,
    скидывать в dbf (с ограничениями по колонкам),
    разворачивать в плоскую таблицу значения из списков из колонки Т (создает таблицу
        с копиями строк для каждого значения из списка),
    получать таблицузначений как сумму строк таблицзначений из колонки (т.о.
        можно получить суммарную табличную часть списка документов)
    поиск дублей строк по любому набору колонок,
    некоторые математические действия со значениями колонок, подсчитывает итог
        текущей колонки, выдает Т на печать,...)
1.2)Можно загружать Т из файла внутр
1.3)Можно загружать табличную часть любого документа
2)Может использоваться для открытия формы документа/элементасправочник (через команду вызова)
    (делает интелектуально (открывает на просмотр, если заблокирован),
     открывает форму списка, если нет формы элемента и т.п.),
    показа движений регистров документа ...
3)Может  быть использован отдельный обработчик не универсальный для пристыковки не
    универсальных расчетов значений по содержимому ячеек колонки
        (приложен пример ПоказатьТ_Доб_НеУниверсальность.ert)

(удобно использовать, в том числе, из UCoice.ert )

В ПоказатьТ_Доб_НеУниверсальность.ert класть обработчики не универсальные, чтобы ПоказатьТ.ert открывалась во всех базах

В ПоказатьТ_Доб_НеУниверсальность.ert можно класть строки выполнения последовательности действий (см. в модуле ПоказатьТ_Доб_НеУниверсальность)
(например, "НаборДействий_ДобавитьРеквизит(ТЧ),СложитьТ,Свернуть(Клиент@Приход#Расход),Печать" -
выполнится указанный набор действий (т.е. получим печатную таблицу суммы табличный частей
документов из текущей колонки, свернутую по "Клиент","Приход,Расход"
    (т.е. считаем, что Клиент,Приход,Расход - есть колонки в ТабличныхЧастях
    документов из текущей колонки) )
(сама обработки такой строки происходит в ПоказатьТ.ert)

Вставляем в использующий модуль или в глобальный модуль:

"

/_________________________________________________________________________

Функция ПоказатьТ(Т="",ПоказатьЭлемент="",Эл="",Кол="",Стр="",НеСтандартно="",
        ПоказатьРеквизиты=0,Модально=0) Экспорт                                                
    КонтФормы=СоздатьОбъект("СписокЗначений");
    КонтФормы.ДобавитьЗначение(Т,"Т");
    КонтФормы.ДобавитьЗначение(ПоказатьЭлемент,"ПоказатьЭлемент");
    КонтФормы.ДобавитьЗначение(Эл,"Эл");
    КонтФормы.ДобавитьЗначение(Кол,"Кол");
    КонтФормы.ДобавитьЗначение(Стр,"Стр");
    КонтФормы.ДобавитьЗначение(НеСтандартно,"НеСтандартно");
    КонтФормы.ДобавитьЗначение(ПоказатьРеквизиты,"ПоказатьРеквизиты");
    ИФ=КаталогИБ()+"ExtForms\ПоказатьТ.ert";
    Если ФС.СуществуетФайл(ИФ)=1 Тогда
        Если Модально=1 Тогда
            ОткрытьФормуМодально("Отчет#",КонтФормы,ИФ);
            Возврат КонтФормы;
        Иначе
            ОткрытьФорму("Отчет#",КонтФормы,ИФ);
        КонецЕсли;
    Иначе
        СообщитьБезОграничения("Файл """+ИФ+""" не найден","!");
    КонецЕсли;           
КонецФункции   
//_________________________________________________________________________
Функция ПоказатьЭлемент(Эл="",ТИлиСпис="",Кол="",Стр="",НеСтандартно="",
            ПоказатьРеквизиты=0,Модально=0) Экспорт
    Воз=ПоказатьТ(ТИлиСпис,1,Эл,Кол,Стр,НеСтандартно,ПоказатьРеквизиты,Модально);
    Возврат Воз;
КонецФункции

"

Я сам на форму вывожу для каждой таблицы, списка, реквизита типа документ/справочник кнопку "О" (типа "открыть"), в которую вставляю ПоказатьЭлемент(Эл)/ПоказатьТ(Т) - открывается форма элемента/документа или Т, в место процедуры обработки клика на ТаблицеЗначений вставляю вызов ПоказатьЭлемент(,Т) - открывается форма реквизита из ячейки

Не полный перечень возможных вызовов:

//Показывает: СписокЗначений (в виде таблицы значений), ТаблицаЗначений,
//ЭлементСправочника,Документ,Текст
//(предусмотрен показ ТабличнойЧасти документа (в виде таблицы значений))
//реквизты шапки документа, элемента справочника


//таблицу значений можно свернуть (результат в отдельной такой же обработке),
//отсортировать по набору колонок
//любую ячейку таблицы значений можно рекурсивно посмотреть

//из формы обработки можно загрузить ТабличнуюЧасть любого документа
//(по кнопке)

//ТаблицуЗначений можно вывести в ПечатнуюФорму

//можно сохранить Т в файл (внутр), загрузить Т из файла (внутр)
//можно ДобавитьКолонкуИзФайлаВнутр
//можно ВычестьИзКолонкиКолонку
//проверить, что значения любой 1 колонки не разбросаны (= лежат рядом)
//поиск повторяющихся по выбранным колонкам строк

//выбрать показываемые колонки
//посмотреть частично выбранную информацию по структуре метаданных
    //пока далеко не все можно посмотреть

//ПРИМЕРЫ ВЫЗОВОВ
//1) ПоказатьТ(Т) - покажет Т (ТаблицуЗначений,СписокЗначений,
//    ТабличнуюЧастьДокумента,Текст (через текстовый документ))
//2) ПоказатьЭлемент(Эл) - покажет Эл (ТаблицуЗначений,СписокЗначений,
//    Документ,ЭлементСправочника,Строку,Число)
//3) ПоказатьЭлемент(,Т) - покажет элемент из текущей строки и текущей
//    колонки (см. ПоказатьЭлемент(Эл) (текущее есть только у Т формы)
//4) ПоказатьЭлемент(,Спис) - покажет элемент из текущей строки
//    (текущее есть только у Спис формы)
//5) ПоказатьЭлемент(,ТИлиСпис,Кол,Стр) - для Т покажет из колонки Кол
//    (если не пуста, иначе из текущей) из строки Стр (если не пуста, иначе
//    из текущей); для Спис из строки Стр (если не пуста, иначе из текущей)
//6) ПоказатьЭлемент(Эл,,,,,1) - показывает все реквизиты элемента или
//    шапки документа
//7) ПоказатьТ(ИФ,1) - покажат файл ИФ (если расширение doc,rtf,xls и др
//    (жестко задано в коде), то запустить соответствующее приложение)
//8) ПоказатьЭлемент(ЭлДок,,,,,1)
//    Показать Реквизиты Шапки документы + другую информацию (время и т.д.)
//    (причем если ЭлДок - форма, то покажет значения реквизитов именно из
//    формы)
//    Показать Реквизиты Элемента справочника

//9)     НеСтандартно=СоздатьОбъект("СписокЗначений");
//    НеСтандартно.ДобавитьЗначение(1,"Закрыть");
//    НеСтандартно.ДобавитьЗначение("Вернуть","Команда");
//    щВоз=ПоказатьЭлемент(Об,,,,НеСтандартно,1,1);
//    ТФормыОбработки=щВоз.Получить("ТФормыОбработки");
//    Получить ТРеквизитыШапкиДокумента

//10)ПоказатьТ(СтрКаталог,,,,,"Каталог")
//    откроет каталог (можно     СтрКаталог задавать относительно ИБ (глДобСтрОтносительноИБ="..\")

//    Параметр НеСтандартно используется для передачи спец команд и спец
//режимов

См. также

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

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

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

10 стартмани

29.04.2015    21638    54    Gvozdod    8    

15

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

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

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

1 стартмани

23.04.2014    166047    1868    Alexoniq    1596    

496

Tray Informer

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

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

1 стартмани

04.09.2013    32936    61    O-Planet    78    

49

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

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

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

1 стартмани

13.08.2013    21257    Reptile    5    

35

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

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

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

1 стартмани

21.02.2013    18064    36    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    36129    51    venger    7    

23

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

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

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

10 стартмани

25.11.2012    35014    248    adhocprog    51    

70
Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
1. vcv 89 20.12.10 15:53 Сейчас в теме
Ни хочу ничего сказать про внутренности, не смотрел даже. Но нельзя ли чуть-чуть побольше уважения у общественности?
Фразы типа "открытия формы документа/элементасправочник", которые обработка "делает интелектуально" и расстановка элементов формы "по фэн-шую" не вызывают желания эту обработку смотреть.
kompas-dm; +1
2. virs 21.12.10 13:10 Сейчас в теме
Ежели, кому суть понятна только в академическом толковании то .....
wokituk; +1
3. po.l.i 31.01.11 16:00 Сейчас в теме
интересная штука для отладки!!

но только не всё включено :(

глщСпис<<?>>.Выгрузить(СписСводные);
{T:\TEST\EXTFORMS\ПОКАЗАТЬТ_ДОБ_НЕУНИВЕРСАЛЬНОСТЬ.ERT(12)}: Переменная не определена (глщСпис)
ГлобальныйНомер=глПолучитьСводная_ГлобальныйНомер<<?>>(Док.ТекущийДокумент(),Док.НомерСводной,0,1,,
{T:\TEST\EXTFORMS\ПОКАЗАТЬТ_ДОБ_НЕУНИВЕРСАЛЬНОСТЬ.ERT(30)}: Функция не обнаружена (глПолучитьСводная_ГлобальныйНомер)
СообщитьБезОграничения<<?>>("Для "+ПредставлениеДокумента(ПарамТЭ)+" нет сводных");
{T:\TEST\EXTFORMS\ПОКАЗАТЬТ_ДОБ_НЕУНИВЕРСАЛЬНОСТЬ.ERT(43)}: Процедура не обнаружена (СообщитьБезОграничения)
Если СписСводные.ВыбратьЗначение(Сводная,""+ПредставлениеЭлемента<<?>>(ПарамТЭ),,30,1)<>1 Тогда
{T:\TEST\EXTFORMS\ПОКАЗАТЬТ_ДОБ_НЕУНИВЕРСАЛЬНОСТЬ.ERT(48)}: Функция не обнаружена (ПредставлениеЭлемента)
Если СписСводные.ВыбратьЗначение(Сводная,""+ПредставлениеЭлемента(ПарамТЭ)<<?>>,,30,1)<>1 Тогда
{T:\TEST\EXTFORMS\ПОКАЗАТЬТ_ДОБ_НЕУНИВЕРСАЛЬНОСТЬ.ERT(48)}: Выражение должно иметь логический тип
Если ПолучитьВид<<?>>(Т_Значение)<>"РасходнаяНакладная" Тогда
{T:\TEST\EXTFORMS\ПОКАЗАТЬТ_ДОБ_НЕУНИВЕРСАЛЬНОСТЬ.ERT(71)}: Функция не обнаружена (ПолучитьВид)
Если глСпрВидыСвязки<<?>>.Выбрать("","")<>1 Тогда
{T:\TEST\EXTFORMS\ПОКАЗАТЬТ_ДОБ_НЕУНИВЕРСАЛЬНОСТЬ.ERT(85)}: Переменная не определена (глСпрВидыСвязки)
ВидСвязки=глСпрВидыСвязки<<?>>.ТекущийЭлемент();
{T:\TEST\EXTFORMS\ПОКАЗАТЬТ_ДОБ_НЕУНИВЕРСАЛЬНОСТЬ.ERT(90)}: Переменная не определена (глСпрВидыСвязки)
Связка=глНайтиСвязка<<?>>(Т_Значение,ВидСвязки,"",0);
{T:\TEST\EXTFORMS\ПОКАЗАТЬТ_ДОБ_НЕУНИВЕРСАЛЬНОСТЬ.ERT(113)}: Функция не обнаружена (глНайтиСвязка)
СообщитьБезОграничения<<?>>("Не предусмотренное значение """+значение+""" в """+
{T:\TEST\EXTFORMS\ПОКАЗАТЬТ_ДОБ_НЕУНИВЕРСАЛЬНОСТЬ.ERT(138)}: Процедура не обнаружена (СообщитьБезОграничения)
СообщитьБезОграничения<<?>>("Не предусмотренная команда """+Команда+""" в """+
{T:\TEST\EXTFORMS\ПОКАЗАТЬТ_ДОБ_НЕУНИВЕРСАЛЬНОСТЬ.ERT(164)}: Процедура не обнаружена (СообщитьБезОграничения)


а было бы ещё интересней ;)
+
Оставьте свое сообщение