Структура подчинённости

Немного переписанная типовая обработка "Структура подчинённости". Отличается от типовой тем, что видит все подчинённые документы, а не только упомянутые в критерии отбора.

Легко интегрируется в любую из типовых конф 1С — как внешняя печатная форма и взамен типовой (в типовой добавляется только 1 строка перед открытием).

Полностью инкапсулирована.

26 Comments

  1. Ёпрст

    А почему бы не сдублировать их в коде обработки ?

    Reply
  2. e.kogan

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

    Reply
  3. gutentag

    У меня, почему-то, бухгалтерия(типовая), редакция (1.6.12.4) обработка выдает ошибку при открытии:

    {ВнешняяОбработка.СтруктураПодчиненностиДополненная(371,40)}: Переменная не определена (ДополнительныйРАТ)

    СтрокаДерева.ДокументПредставление = <<?>>ДополнительныйРАТ.ПредставлениеДокумента(рДокумент);

    Reply
  4. e.kogan

    Упс (((( И правда, это забыли убрать. Постараюсь сейчас выложить нормальный.

    Reply
  5. artbear

    А никто не видел/делал структуру подчиненности в виде универсального отчета/обработки — не привязанного к типовым конфам 1С ?

    Reply
  6. e.kogan

    А она должна работать, во всяком случае, на нашей маленькой самописной работает…

    Reply
  7. artbear

    О, спасибо. Проверю на своих конфах.

    Reply
  8. artbear

    (6) На своей с некоторыми добавками от типовых

    {ВнешняяОбработка.СтруктураПодчиненностиДополненная(429,11)}: Процедура или функция с указанным именем уже определена (СообщитьОбОшибке)

    Процедура <<?>>СообщитьОбОшибке(Знач ТекстСообщения, Отказ = Ложь, Заголовок = «», Знач Статус = Неопределено, ВызыватьИсключение = Истина) Экспорт

    {ВнешняяОбработка.СтруктураПодчиненностиДополненная(469,9)}: Процедура или функция с указанным именем уже определена (СформироватьТекстСообщения)

    Функция <<?>>СформироватьТекстСообщения(Знач ТекстСообщения) Экспорт

    ЗЫ вроде в типовых также есть эти функции?

    Reply
  9. artbear

    А в остальном работает. Плюсую.

    Спасибо.

    У самого руки никак не доходили 🙁

    Reply
  10. artbear

    ОФФ

    (7-9 +) прикольно посмотреть на время моих сообщений 🙂

    7 — 15:02:37

    8 — 15:02:05 (назад в прошлое)

    9 — 15:02:33 — опять в будущее 🙂

    ЗЫ да и время явно отличается от текущего. У меня счас 17.50 — 02 никак не монтируется 🙁

    Reply
  11. e.kogan

    Ну так добавьте к встроенной с отчёт СфоримрвоатьТекстСообщения букву р впереди и позаменяйте 🙂

    Reply
  12. artbear

    (11) Ну это понятно 🙂

    Я тебе написал, чтобы твоя обработка еще чуток поуниверсальнее стала 🙂

    Reply
  13. e.kogan

    Некогда, чесслово.

    Reply
  14. skiza

    А как ее вызывать вместо типовой?

    Reply
  15. e.kogan

    (14) Написано же — как внешняя печатная форма.

    Reply
  16. skiza

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

    Reply
  17. e.kogan

    (16) Если вам нужно именно встроить её в типовую конфигурацию из-за наличия в ней нетиповых документов, то:

    Модуль РаботаСДокументами
    Процедура ПоказатьСтруктуруПодчиненностиДокумента(ДокументСсылка) Экспорт
    // Добавлено
    рПриоритетная=ВосстановитьЗначение(«ДополненнаяСтруктураПодчиненностиПриоритетнееТиповой»);
    Если ТипЗнч(рПриоритетная)=Тип(«Булево») и рПриоритетная Тогда
    рОбработка=Обработки.СтруктураПодчиненностиДополненная.Создать();
    рОбработка.СсылкаНаОбъект=ДокументСсылка;
    рФорма=рОбработка.ПолучитьФорму(«ФормаСтруктурыПодчиненности»);
    рФорма.Открыть();
    Возврат;
    КонецЕсли;
    // Добавлено
    
    ФормаСтруктурыПодчиненности = ПолучитьОбщуюФорму(«ФормаСтруктурыПодчиненности»);
    Если ФормаСтруктурыПодчиненности.Открыта() Тогда
    ФормаСтруктурыПодчиненности.Закрыть();
    КонецЕсли;
    ФормаСтруктурыПодчиненности.ДокументСсылка = ДокументСсылка;
    ФормаСтруктурыПодчиненности.Открыть();
    
    КонецПроцедуры
    

    Показать

    Reply
  18. dindzilin

    Пригадилась, а то юзеры весь мозг вынесли…

    Reply
  19. raym0n

    Очень помогла на этапе моего становления 1с-программером.

    Спасибо большое!

    Reply
  20. pvlunegov

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

    Reply
  21. e.kogan

    (20) pvlunegov, пожалуйста 🙂

    Reply
  22. Светлый ум

    Крутая штука +1

    — это не просто печатная форма с со списком документов.

    — это обработка которую можно добавить в дерево объектов и в документах поставить рядом с типовой,

    получая при этом полноценный список подчиненных типовых и нетиповых документов (с сылками)

    спасибо

    Reply
  23. atlants_buh

    Пробую загрузить обработку, выходит ошибка:

    Внешняя обработка не может быть прочитана текущей версией программы.

    Для какой версии эта обработка?

    Reply
  24. e.kogan

    (23) atlants_buh, да чуть ли не под 8.1 ещё. В конфигураторе открыть пробовали перед тем?

    Reply
  25. kvaleksandr

    (24) Огромное спасибо за обработку.

    Заменять стандартную не стал, добавил дополнительно, т.к. надо всего для 4 документов такое отображение сделать. Галочка «Использовать заместо типовой» не работает.

    Платформа 8.3 Конфигурация УПП 1.3.87.2 — полет нормальный.

    Может кому пригодится как я ее вызывал

    Сам вызов

    ЯОбщийМодуль.ВызовПодключеннойВнешнейОбработки(«Структура подчиненности дополненная»,ЭтотОбъект.Ссылка);  

    В общем модуле

    Процедура ВызовПодключеннойВнешнейОбработки(ИмяОбработки, СсылкаНаОбъект) Экспорт
    ТекОбработка = Справочники.ВнешниеОбработки.НайтиПоНаименованию(ИмяОбработки);
    
    ДвоичныеДанные = ТекОбработка.ХранилищеВнешнейОбработки.Получить();
    ИмяФайла = ПолучитьИмяВременногоФайла(«erf»);
    ДвоичныеДанные.Записать(ИмяФайла);
    Обработка = ВнешниеОбработки.Создать(ИмяФайла);
    ФормаОбработки = Обработка.ПолучитьФорму();
    ФормаОбработки.СсылкаНаОбъект = СсылкаНаОбъект;
    ФормаОбработки.Открыть();
    КонецПроцедуры

    Показать

    Reply
  26. e.kogan

    (25) Чтобы использование вместо типовой работало, обработка должна быть вставлена в конфигураторе и в типовой должен стоять перехватчик.

    Рада, что пригодилось 🙂

    Reply

Leave a Comment

Ваш адрес email не будет опубликован. Обязательные поля помечены *