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

  • Автор темы perfomance
  • Дата начала
Статус
Закрыто для дальнейших ответов.
P

perfomance

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

Hryv

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

perfomance

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

Hryv

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

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

vbs

Well-known member
18.02.2007
1 708
1
#5
Попробуй добавить в таблицу журнала текстовое поле и ему в "формулу" пропиши вызов процедуры
а само поле сделай невидимым
Классная идея. Только не процедуру повесить на это поле, а функцию.
Попробовал на Бух 4.5, мне понравилось, взял на вооружение
 
P

perfomance

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

vitfil

IT-интегратор
02.04.2004
2 062
0
#7
Текстовое поле на форме журнала. Никаких реквизитов в документы добавлять не следует.

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

Hryv

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


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

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

perfomance

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

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

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

perfomance

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

perfomance

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

vbs

Well-known member
18.02.2007
1 708
1
#14
Не а - одна фигня. Скроллинг ТЗ не дает. Во грабли то . Пробовал методом "ВыгрузитьТабличнуюЧасть" и выбрать строки из текущего документа методом ВыбратьСтроки() с последующим занесением в ТЗ.
Похоже, это излишество

А метод, предложенный Hryv, сгодится еще и для создания связанных таблиц значений !
 
H
#15
Не скролит, потому что при попытке промотать ТЗ вниз сразу идет вызов функции забитой в текстовое поле
Кстати, вправо/влево скролит без проблем

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

А метод, предложенный Hryv, сгодится еще и для создания связанных таблиц значений !
А это как?
В смысле я не понял темин "связанных таблиц значений"
Если можно, то с примерчиком
 

vitfil

IT-интегратор
02.04.2004
2 062
0
#16
Не скролит, потому что при попытке промотать ТЗ вниз сразу идет вызов функции забитой в текстовое поле
Кстати, вправо/влево скролит без проблем

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

vbs

Well-known member
18.02.2007
1 708
1
#17
По синтаксису правильно так :
Function ВыборСтроки(Док)
Если Док <> ТекДок Тогда
ТЗ.Очистить();
Док.ВыгрузитьтабличнуюЧасть(ТЗ);
ТекДок = Док;
Return 1
КонецЕсли;
Return 0
endFunction
//******************************************************************************
Но не помогает )))
 
H
#18
vitfil, vbs, я проверил это еще до предыдущего моего поста :)


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


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

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

vitfil

IT-интегратор
02.04.2004
2 062
0
#19
Hryv
а я сразу и не заметил, что вы табличное поле вешали в таблицу журнала. ясен пень, что не работало бы!
 
Статус
Закрыто для дальнейших ответов.