![]() |
![]() |
![]() |
|
Вывод справочника на печать | ☑ | ||
---|---|---|---|---|
0
Merinid
05.11.06
✎
13:36
|
Подскажите плиз новичку как лучше реализовать выборку из справочника с последующим выводом в печатную форму.
Заранее спасибо. |
|||
1
Конь в пальто
05.11.06
✎
13:37
|
мдя... смотря что те нужно
|
|||
2
Ирен
05.11.06
✎
13:39
|
Запрос, перебор элементов. Какие слова более знакомые? :)
|
|||
3
mikecool
05.11.06
✎
13:40
|
TranRef.ert с диска ИТС... и не париться...
|
|||
4
Конь в пальто
05.11.06
✎
13:40
|
(3) разве он печататет?.. )
|
|||
5
mikecool
05.11.06
✎
13:41
|
(4) сорри... :-) RefPrint.ert
|
|||
6
Perebatoff
05.11.06
✎
13:53
|
Я бы сделал перебором.
|
|||
7
Скользящий
05.11.06
✎
13:53
|
На проклабе таких обработок штук 50
|
|||
8
Merinid
05.11.06
✎
13:57
|
Собственно дребыется выбрать все содержимое справочника и вывести в печатную форму.
p.s. на проклабе это по какой линке? :) |
|||
9
Merinid
05.11.06
✎
13:58
|
требуется... черт жаль нет редактирования мессаг
|
|||
10
Ирен
05.11.06
✎
13:59
|
(8) Мдя.. а не судьба в любой конфе посмотреть как это делается? Тебе надо просто сделать или научиться?
|
|||
11
Merinid
05.11.06
✎
14:02
|
научиться. ну и сделать тоже...
|
|||
12
Ирен
05.11.06
✎
14:04
|
(11) мыло посмотри. глава про отчеты.
|
|||
13
Merinid
05.11.06
✎
14:07
|
2 Ирен огромное спасибо почитаю :)
|
|||
14
VasilyKushnir
06.11.06
✎
10:13
|
http://infostart.ru/projects/index.php?id=210&desc=1&ref=440 - Универсальная печать справочников (УПС), версия 1.31
http://infostart.ru/projects/index.php?id=67&ref=440 - 1C: Новейший отчет 7.7. Универсальный конструктор отчетов по регистру и бухгалтерским счетам, печать справочников, реестры документов, диаграммы 1С. Вторая вэщь вообще полный улет, НО платная. |
|||
15
jarett
06.11.06
✎
10:15
|
Перем Таб;
Перем ИмяОтб, ЗначОтб; //******************************************* Процедура ПечатьРеквизита(Спр,Сч,ФлагРасш,Отступ="",Секц="Реквизит",Уровень=0) //Исключаем зацикливание Если Уровень>5 тогда Возврат; КонецЕсли; Атриб=Метаданные.Справочник(Спр.Вид()).Реквизит(Сч); АтрибЗн=Спр.ПолучитьАтрибут(Атриб); Таб.ВывестиСекцию(Секц); Если ФлагРасш=1 тогда Если (ПустоеЗначение(АтрибЗн)=0)и (Атриб.Тип="Справочник") тогда Спр1= СоздатьОбъект("Справочник."+АтрибЗн.Вид()); Спр1.ИспользоватьДату(РабочаяДата()); Спр1.НайтиЭлемент(АтрибЗн); Для Сч1=1 по Метаданные.Справочник(Спр1.Вид()).Реквизит() Цикл ПечатьРеквизита(Спр1,Сч1,1,Отступ+" ",Секц,Уровень+1); КонецЦикла; КонецЕсли; КонецЕсли; КонецПроцедуры Процедура Сформировать() СписРекв= СоздатьОбъект("СписокЗначений"); Если ВыбРеквизиты.РазмерСписка()>0 тогда Для сч=1 по ВыбРеквизиты.РазмерСписка() цикл Если ВыбРеквизиты.Пометка(сч)=1 тогда СписРекв.ДобавитьЗначение(ВыбРеквизиты.ПолучитьЗначение(сч)); КонецЕсли; КонецЦикла; КонецЕсли; СписРасш= СоздатьОбъект("СписокЗначений"); Если РасшРеквизиты.РазмерСписка()>0 тогда Для сч=1 по РасшРеквизиты.РазмерСписка() цикл Если РасшРеквизиты.Пометка(сч)=1 тогда СписРасш.ДобавитьЗначение(РасшРеквизиты.ПолучитьЗначение(сч)); КонецЕсли; КонецЦикла; КонецЕсли; СписПодч= СоздатьОбъект("СписокЗначений"); Если ВыбПодчиненные.РазмерСписка()>0 тогда Для сч=1 по ВыбПодчиненные.РазмерСписка() цикл Если ВыбПодчиненные.Пометка(сч)=1 тогда СписПодч.ДобавитьЗначение(ВыбПодчиненные.ПолучитьЗначение(сч)); КонецЕсли; КонецЦикла; КонецЕсли; Таб = создатьобъект("Таблица"); Спр= СоздатьОбъект("Справочник."+ВыбСправочник.ПолучитьЗначение(ВыбСправочник.ТекущаяСтрока())); Спр.ИспользоватьДату(РабочаяДата()); Если ВыбГруппа.Выбран()=1 тогда Если ВыбГруппа.ЭтоГруппа()=1 тогда Спр.ИспользоватьРодителя(ВыбГруппа); иначе Спр.ИспользоватьРодителя(ВыбГруппа.Родитель); КонецЕсли; КонецЕсли; Если ПустоеЗначение(ЗначОтб)=0 тогда Спр.ВыбратьЭлементыПоРеквизиту(ИмяОтб, ЗначОтб,0); иначе Спр.ВыбратьЭлементы(); КонецЕсли; Таб.ВывестиСекцию("Шапка"); НомерПП = 1; Пока Спр.ПолучитьЭлемент()=1 цикл Если ВыбГруппа.Выбран()=1 тогда Если (ВыбГруппа.ЭтоГруппа()=0)и (ВыбГруппа<>Спр.ТекущийЭлемент()) тогда Продолжить; КонецЕсли; КонецЕсли; Если Спр.ЭтоГруппа()=1 тогда Таб.ВывестиСекцию("Группа"); Продолжить; КонецЕсли; Таб.ВывестиСекцию("Строка"); НомерПП = НомерПП + 1; Состояние("Выведено элементов "+НомерПП); Для Сч=1 по Метаданные.Справочник(Спр.Вид()).Реквизит() Цикл Атриб=Метаданные.Справочник(Спр.Вид()).Реквизит(Сч).Идентификатор; Если СписРекв.Принадлежит(Атриб)=1 тогда ПечатьРеквизита(Спр,Сч,СписРасш.Принадлежит(Атриб)); КонецЕсли; КонецЦикла; //Подчиненные Если СписПодч.РазмерСписка()>0 тогда Для счП=1 по СписПодч.РазмерСписка() цикл СпрП= СоздатьОбъект("Справочник."+СписПодч.ПолучитьЗначение(счП)); СпрП.ИспользоватьДату(РабочаяДата()); СпрП.ИспользоватьВладельца(Спр.ТекущийЭлемент()); Если СпрП.ВыбратьЭлементы()=1 тогда Таб.ВывестиСекцию("ИмяПодч"); Пока СпрП.ПолучитьЭлемент()=1 цикл Если (ПустаяСтрока(СпрП.Наименование)=0)или (ПустоеЗначение(СпрП.Код)=0) тогда Таб.ВывестиСекцию("СтрокаПодч"); Иначе Таб.ВывестиСекцию("СтрокаМалПодч"); КонецЕсли; Для Сч=1 по Метаданные.Справочник(СпрП.Вид()).Реквизит() Цикл ПечатьРеквизита(СпрП,Сч,0," ","РеквПодч"); КонецЦикла; КонецЦикла; КонецЕсли; КонецЦикла; КонецЕсли; КонецЦикла; Таб.Опции(0,0,0,0); Таб.Опции(0,0,Таб.ВысотаСекции("Шапка"),0); Таб.ПовторятьПриПечатиСтроки(Таб.ВысотаСекции("Шапка"),Таб.ВысотаСекции("Шапка")); Таб.ТолькоПросмотр(1); Таб.Показать(Спр.Вид()); КонецПроцедуры Процедура УстановкаВида() НазначитьВид(ВыбГруппа,ВыбСправочник.ПолучитьЗначение(ВыбСправочник.ТекущаяСтрока())); ВыбРеквизиты.УдалитьВсе(); РасшРеквизиты.УдалитьВсе(); Спр= СоздатьОбъект("Справочник."+ВыбСправочник.ПолучитьЗначение(ВыбСправочник.ТекущаяСтрока())); Для Сч=1 по Метаданные.Справочник(Спр.Вид()).Реквизит() Цикл ВыбРеквизиты.ДобавитьЗначение(Метаданные.Справочник(Спр.Вид()).Реквизит(Сч).Идентификатор); Если Метаданные.Справочник(Спр.Вид()).Реквизит(Сч).Тип= "Справочник" тогда ВидРекв= Метаданные.Справочник(Спр.Вид()).Реквизит(Сч).Вид; Если ПустаяСтрока(ВидРекв)=0 тогда Если Метаданные.Справочник(ВидРекв).Реквизит()=0 тогда Продолжить; КонецЕсли; КонецЕсли; РасшРеквизиты.ДобавитьЗначение(Метаданные.Справочник(Спр.Вид()).Реквизит(Сч).Идентификатор); КонецЕсли; КонецЦикла; ВыбПодчиненные.УдалитьВсе(); Для Сч=1 по Метаданные.Справочник() цикл Если СокрЛП(Метаданные.Справочник(Сч).Владелец)= Спр.Вид() тогда ВыбПодчиненные.ДобавитьЗначение(Метаданные.Справочник(Сч).Идентификатор); КонецЕсли; КонецЦикла; КонецПроцедуры Процедура ПриВыбореЗакладки(Номер,Значение) Форма.ИспользоватьСлой(Значение,2); КонецПроцедуры Процедура ПриОткрытии() Если ПустоеЗначение(Форма.Параметр)=0 тогда ВыбСправочник.ТекущаяСтрока(ВыбСправочник.НайтиЗначение(Форма.Параметр.Вид())); УстановкаВида(); Если ПустоеЗначение(Форма.Параметр.ТекущийЭлемент())=0 тогда ВыбГруппа= Форма.Параметр.ТекущийЭлемент().Родитель; КонецЕсли; Форма.Параметр.ПолучитьОтбор(ИмяОтб, ЗначОтб); КонецЕсли; КонецПроцедуры Для Сч=1 по Метаданные.Справочник() цикл ВыбСправочник.ДобавитьЗначение(Метаданные.Справочник(Сч).Идентификатор); КонецЦикла; ВыбСправочник.ТекущаяСтрока(1); Форма.ВыбГруппа.НеИзменятьВид(1); УстановкаВида(); Форма.ИспользоватьЗакладки(1); Форма.Закладки.ДобавитьЗначение("Основной,Кнопки","Основной"); Форма.Закладки.ДобавитьЗначение("Реквизиты,Кнопки","Реквизиты"); ПриВыбореЗакладки(1,Форма.Закладки.ПолучитьЗначение(1)); у меня так. |
|||
16
Merinid
06.11.06
✎
17:49
|
2 jarett
Благодарю :) Выглядит внушительно. Попробую разобраться с этим куском кода |
|||
17
Merinid
06.11.06
✎
17:50
|
2 VasilyKushnir спасибо тоже скачал буду разбираться. Второе так понимаю нахаляву только демка...
|
|||
18
Злопчинский
06.11.06
✎
17:53
|
Пипец какой-то... Люди, вы что, никогда диска ИТС не видели? Универсальные обработки не юзали? (а уже универсальные - можно развивать в сторону большей функциональности)...
Омистенеть... |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |