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

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

perfomance

Всем Хай. В академических целях интересует: Возможно ли в Фоме Журнала документов оганизовать просмотр табличной части текущего документа в расположенной в форме журнала таблице значений. Т.е. при перемещении курсора по списку документов в журнале его табличная часть отображалась бы в подрисованной таблице значений на этом же журнале документов. По аналогии как в журнале операций - журнал разделен на две части - сверху сами записи операций, а при установлении курсора на запись - снизу отображается ее содержимое. У кого какие есть предложения? Касательно платформы 7.7
 
В форме журнала
Процедура ПриВыбореСтроки()
ТЗ.Очистить();
ТекущийДокумент.ВыгрузитьТабличнуюЧасть(ТЗ);
КонецПроцедуры
 
По описанию процедура ПриВыбореСтроки() не катит . Вот что гласит описание(точнее замечание):"Замечание: Режим обработки выбора строки (двойной щелчок мыши или кла­виша Enter) предопределенной процедурой ПриВыбореСтроки включается в форме списка справочника, журнала, счетов, журнала операций, журна­ла проводок при помощи метода Форма.ОбработкаВыбораСтроки(1).
А задача заключается в том чтобы ТЗ отображала данные при перемещении курсора по форме журнала
 
Действительно...

Попробуй добавить в таблицу журнала текстовое поле и ему в "формулу" пропиши вызов процедуры
а само поле сделай невидимым
 
Попробуй добавить в таблицу журнала текстовое поле и ему в "формулу" пропиши вызов процедуры
а само поле сделай невидимым
Классная идея. Только не процедуру повесить на это поле, а функцию.
Попробовал на Бух 4.5, мне понравилось, взял на вооружение
 
Попробуй добавить в таблицу журнала текстовое поле и ему в "формулу" пропиши вызов процедуры
а само поле сделай невидимым

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

Кстати, я бы посоветовал использовать не ТЗ, а ТП+ПоставщикДанных из 1С++
 
perfomance, текстовое поле, которое есть на панели элементов диалога с синей буквой Т на иконке


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

или процедура вообще не будет отрабатывать? :mellow:
 
perfomance, текстовое поле, которое есть на панели элементов диалога с синей буквой Т на иконке

Понятно....

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

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

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

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

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

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

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

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

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

А это как?
В смысле я не понял темин "связанных таблиц значений"
Если можно, то с примерчиком
 
Не скролит, потому что при попытке промотать ТЗ вниз сразу идет вызов функции забитой в текстовое поле
Кстати, вправо/влево скролит без проблем

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


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


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

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

Обучение наступательной кибербезопасности в игровой форме. Начать игру!