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

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

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

    perfomance Гость

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

    Hryv Гость

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

    perfomance Гость

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

    Hryv Гость

    Репутация:
    0
    Действительно...

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

    vbs Well-Known Member

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

    perfomance Гость

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

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

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

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

    Hryv Гость

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


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

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

    perfomance Гость

    Репутация:
    0
    Понятно....

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

    Hryv Гость

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

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

    perfomance Гость

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

    Hryv Гость

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

    perfomance Гость

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

    vbs Well-Known Member

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

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

    Hryv Гость

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

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

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

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

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

    vbs Well-Known Member

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

    Hryv Гость

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


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


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

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

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

    Hryv Гость

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

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