Журнал документов + ТЗ

Тема в разделе "1C и всё что с ней связано", создана пользователем perfomance, 3 сен 2009.

Статус темы:
Закрыта.
  1. perfomance

    perfomance Гость

    Всем Хай. В академических целях интересует: Возможно ли в Фоме Журнала документов оганизовать просмотр табличной части текущего документа в расположенной в форме журнала таблице значений. Т.е. при перемещении курсора по списку документов в журнале его табличная часть отображалась бы в подрисованной таблице значений на этом же журнале документов. По аналогии как в журнале операций - журнал разделен на две части - сверху сами записи операций, а при установлении курсора на запись - снизу отображается ее содержимое. У кого какие есть предложения? Касательно платформы 7.7
     
  2. Hryv

    Hryv Гость

    В форме журнала
    Процедура ПриВыбореСтроки()
    ТЗ.Очистить();
    ТекущийДокумент.ВыгрузитьТабличнуюЧасть(ТЗ);
    КонецПроцедуры
     
  3. perfomance

    perfomance Гость

    По описанию процедура ПриВыбореСтроки() не катит . Вот что гласит описание(точнее замечание):"Замечание: Режим обработки выбора строки (двойной щелчок мыши или кла­виша Enter) предопределенной процедурой ПриВыбореСтроки включается в форме списка справочника, журнала, счетов, журнала операций, журна­ла проводок при помощи метода Форма.ОбработкаВыбораСтроки(1).
    А задача заключается в том чтобы ТЗ отображала данные при перемещении курсора по форме журнала
     
  4. Hryv

    Hryv Гость

    Действительно...

    Попробуй добавить в таблицу журнала текстовое поле и ему в "формулу" пропиши вызов процедуры
    а само поле сделай невидимым
     
  5. vbs

    vbs Well-Known Member

    Регистрация:
    18 фев 2007
    Сообщения:
    1.708
    Симпатии:
    3
    Классная идея. Только не процедуру повесить на это поле, а функцию.
    Попробовал на Бух 4.5, мне понравилось, взял на вооружение
     
  6. perfomance

    perfomance Гость

    Сорри за вопрос, но именно какое поле? Т.е. создать какой нито общий "текстовый" реквизит для документов или же "текстовый" реквизит конкретного документа, который будет добавляться в форму журнала?
     
  7. vitfil

    vitfil IT-интегратор

    Регистрация:
    2 апр 2004
    Сообщения:
    2.070
    Симпатии:
    0
    Текстовое поле на форме журнала. Никаких реквизитов в документы добавлять не следует.

    Кстати, я бы посоветовал использовать не ТЗ, а ТП+ПоставщикДанных из 1С++
     
  8. Hryv

    Hryv Гость

    perfomance, текстовое поле, которое есть на панели элементов диалога с синей буквой Т на иконке


    а зачем в данном случае функция?
    само текстовое поле не будет видно и в него ничего возвращать не надо

    или процедура вообще не будет отрабатывать? :mellow:
     
  9. perfomance

    perfomance Гость

    Понятно....

    Млин. Ну если попробовать вписать в формулу такого "текстового поля" и в модуле обозвать ее как Процедура, то уже в самой системе выходит ошибка: "Процедура вызывается как функция (ИмяФункции)" в табло.
    Функция по определению может вычислять и возвращать определенные значения. Просто в модуле самой Функции которая поместится в текстовое поле надо вписать вызов процедуры , которая именно будет выполнять какие либо операторы (так сказать возбуждаться ) из - за выполняемой каждый раз функции.
     
  10. Hryv

    Hryv Гость

    тогда понятно почему нельзя процедуру
    я просто на практике не проверял

    perfomance, заработало как ты хотел или нет?
     
  11. perfomance

    perfomance Гость

    Заработало. При следовании курсора по списку документов их табличная часть успешно выгружается в ТЗ , которая подрисована внизу. Использовал метод "ВыгрузитьТабличнуюЧасть (ТЗ, "Реквизиты")". Но вот пока фича в том что ТЗ не дает делать скроллинг. Т.е допустим табличную часть документа згрузили в ТЗ и грубо говоря в табличной части строк 20, а сама ТЗ "Маленького роста". И если у ТЗ захочешь протащить линейкой - то она просто не дает. Как колом. Может это особенность метода "ВыгрузитьТабличнуюЧасть"? наверное при данном методе не создаются строки в ТЗ как таковые. Точно - просто линейка не понимает что ТЗ строки то отображает, а на самом деле их нет.
     
  12. Hryv

    Hryv Гость

    А если после ВыгрузитьТабличнуюЧасть дописать Форма.Обновить()
     
  13. perfomance

    perfomance Гость

    Не а - одна фигня. Скроллинг ТЗ не дает. Во грабли то . Пробовал методом "ВыгрузитьТабличнуюЧасть" и выбрать строки из текущего документа методом ВыбратьСтроки() с последующим занесением в ТЗ.
     
  14. vbs

    vbs Well-Known Member

    Регистрация:
    18 фев 2007
    Сообщения:
    1.708
    Симпатии:
    3
    Похоже, это излишество

    А метод, предложенный Hryv, сгодится еще и для создания связанных таблиц значений !
     
  15. Hryv

    Hryv Гость

    Не скролит, потому что при попытке промотать ТЗ вниз сразу идет вызов функции забитой в текстовое поле
    Кстати, вправо/влево скролит без проблем

    Пока не придумал как решить

    А это как?
    В смысле я не понял темин "связанных таблиц значений"
    Если можно, то с примерчиком
     
  16. vitfil

    vitfil IT-интегратор

    Регистрация:
    2 апр 2004
    Сообщения:
    2.070
    Симпатии:
    0
    Перем ТекДок;
    Функция ...
    Если ТекущийДокумент() <> ТекДок Тогда
    ТекущийДокумент().ВыгрузитьтабличнуюЧасть;
    ТекДок = ТекущийДокумент();
    КонецЕсли;
     
  17. vbs

    vbs Well-Known Member

    Регистрация:
    18 фев 2007
    Сообщения:
    1.708
    Симпатии:
    3
    По синтаксису правильно так :
    Function ВыборСтроки(Док)
    Если Док <> ТекДок Тогда
    ТЗ.Очистить();
    Док.ВыгрузитьтабличнуюЧасть(ТЗ);
    ТекДок = Док;
    Return 1
    КонецЕсли;
    Return 0
    endFunction
    //******************************************************************************
    Но не помогает )))
     
  18. Hryv

    Hryv Гость

    vitfil, vbs, я проверил это еще до предыдущего моего поста :)


    А вот и решение: текстовое поле вешаем не в таблицу журнала, а просто на форму
    ИСПЫТАНО!
    :mellow:


    Модуль журнала
    Код (Text):
    Перем ТД;

    //*---*---*---*---*---*---*---*---*---*---*---*---*---*---*
    Функция ВыгрТЧ()                                  
    Если ТД<>ТекущийДокумент Тогда
    ТЗ.Очистить();
    ТекущийДокумент.ВыгрузитьТабличнуюЧасть(ТЗ);
    ТД=ТекущийДокумент;
    КонецЕсли;
    Возврат 0;
    КонецФункции //ВыгрТЧ()
     
  19. vitfil

    vitfil IT-интегратор

    Регистрация:
    2 апр 2004
    Сообщения:
    2.070
    Симпатии:
    0
    Hryv
    а я сразу и не заметил, что вы табличное поле вешали в таблицу журнала. ясен пень, что не работало бы!
     
  20. Hryv

    Hryv Гость

    лично мне не ясен
    логики не вижу
     
Загрузка...
Статус темы:
Закрыта.

Поделиться этой страницей