Условное Оформление ТЧ документа - по реквизиту другого документа #657457


#0 by hardsign
В табличной части документа есть поле типа "ДокументСсылка.РасходныйОрдер". Мне надо проверять - если соответствующий расходный ордер проведен, менять цвет текста строки. Для условного оформления доступны только условия полей, присутствующих в документе. Поле "проведен" из Расходного ордера нет в табличной части - соответственно УО недоступно. Пробовал добавить поле с типом булево в ТЧ, создать ссылку на расходныйордер.проведен. В ТЧ поле норм заполняется, но УО не отрабатывает - значение (к примеру ИСТИНА для проведенного документа) - недоступно в объектной модели, точнее в объекте незаполненное значение - ЛОЖЬ. Как побороть? Присваивать значение реквизитаТЧ=расходныйордер.проведен в приоткрытии не вариант.
#1 by hardsign
Да, забыл написать - УФ, 8.2
#2 by Defender aka LINN
"Присваивать значение реквизитаТЧ=расходныйордер.проведен в приоткрытии не вариант." - религиозные мотивы?
#3 by hardsign
пишется история изменения всех реквизитов, будет много мусора - необходимо будет его отсеивать. Да и вообще некрасиво - если вариантов других нет конечно так и сделаю, но хотелось бы изящнее.
#4 by Defender aka LINN
Какая история изменения, какой мусор? Или ты еще не в курсе, что в ТЧ можно добавить реквизит ФОРМЫ?
#5 by hardsign
Я добавил реквизит формы. Он не считывается УО, УО видит только данные Объекта.
#6 by hardsign
Может понятнее так. Добавил реквизит формы ПроведенОрдер (булево). Заполняю его значением из ВыдачаТаблица.ПриходныйОрдер.Проведен. При открытии формы - в ПроведенОрдер заполняются верные значения. Но УО не отрабатывает.
#7 by Defender aka LINN
Руками добавь оформление
#8 by hardsign
Через перебор строк ТЧ? - Оно слишком медленно работает:) И глючит при копировании строк.
#9 by Defender aka LINN
Вот как связано условное оформление и отбор строк? Можешь рассказать логическую цепочку, а то я столько веществ не переживу, чтобы самому связать. Возьми, ля, мышь, ля, в руку, ля, и натыкай в конфигураторе.
#10 by Defender aka LINN
*перебор строк
#11 by hardsign
Натыкал в конфигураторе. Не работает. Задаю услвоие по любому другому полю, которое есть в ТЧ (в Объекте) - работает. Если делаю ссылку из поля ТЧ на реквизит другого документа - не видит УО значение этого реквизита, и не отрабатывает.
#12 by hardsign
Да, еще, при оформлении руками: реквизиты формы (т.е. реквизиты, которые добавлены ТОЛЬКО в форме и не добавлены у Объекта) - НЕДОСТУПНЫ к выбору в условиях отбора условного оформления.
#13 by hardsign
Точнее поля формы недоступны. Реквизиты формы доступны - но значение из этого поля УО не видит, и не отрабатывает. К этому и был мой вопрос - как передать в УО значение из реквизита выбранного документа?
#14 by Defender aka LINN
Зачем ви т'гавите? Только что проверил - все работает как часы.
#15 by hardsign
Перепроверил еще раз - не работает. У Вас сработало УО по условию - проверка значения реквизита документа, выбранного в ТЧ?
#16 by hardsign
8.2.17.153.
#17 by Defender aka LINN
Перечитай мои посты еще раз
#18 by hardsign
Перечитал. Перепроверил. не работает. Что делаю: 1. Есть документ "Заявка". 2. В документе ТЧ - "ВыдачаТаблица". 3. В ТЧ есть поле типа "ДокументСсылка.РасходныйОрдер". 4. У Расходного ордера есть поле - "Проведен", тип Булево. Добавляю реквизит формы, поле в ТЧ, имя "ПроведенОрдер". Тип Булево. Указываю ПутьКДанным - ВыдачаТаблица.РасходныйОрдер.Проведен. После этого заполняю УО формы: 2) условие - Объект.ВыдачаТаблица.ПроведенОрдер Равно Истина 3) оформляемые поля - указываю все колонки таблицы Оформление не происходит. Через отладчик отлавливал - после открытия формы значение Объект.ВыдачаТаблица.ПроведенОрдер - пустое. Соответственно, либо надо его заполнять присваиванием значений (в цикле присвоить Объект.ВыдачаТаблица.ПроведенОрдер значению из документа), либо проверять в условии не значение Объект.ВыдачаТаблица.ПроведенОрдер, а что то другое (типа Элементы.ВыдачаТаблица.ПроведенОрдер - но это тоже не проходит).
#19 by Defender aka LINN
"Указываю ПутьКДанным" - дальше не читал
#20 by hardsign
Ок, а какие варианты? Указывать значение поля Булево, и перебирать в цикле в процедуре ПриОткрытии все строки документа, присваивая полю значение из ВыдачаТаблица.РасходныйОрдер.Проведен?
#21 by Defender aka LINN
За такое в ПриОткрытии я тебе лично явлюсь в кошмарном сне и горло перегрызу. В ПриЧтенииНаСервере / ПриСозданииНаСервере
#22 by hardsign
В ПриСозданииНаСервере - долго. Если предположить 200-300 строк в ТЧ.
#23 by Defender aka LINN
1. Скерали долго? 2. Вам шашечки, или ехать?
#24 by hardsign
И, возвращаясь к записываемой истории изменений реквизитов, все эти присваивания будут записаны в регистр! + пользователь открыв докмент, ничего не поменяв в нем - нажимая "отмена" получит сообщение о изменении документа и предложении сохранить:)
#25 by Defender aka LINN
Иди протрезвей, а?
#26 by hardsign
Но ведь это криво! Зачем записывать в документ дополнительно значения поля из расходногоОрдера, если ссылка на проверяемый объект уже присутствует в ТЧ! Таким образом - дублируются данные в базе. Плюс без открытия документа они еще и будут не совпадать!
#27 by Defender aka LINN
Еще раз: иди протрезвей
#28 by hardsign
А грубить то зачем? Если не можете помочь советом - троллите в другом месте.
#29 by Defender aka LINN
Та потому что ты явно упорот чем-то. Уже, вон, что-то в базу писать собрался...
#30 by DexterMorgan
Ну как бы реквизит формы к данным базы отношения не имеет, ну максимум если ты поставишь сохраняемое значение для пользователя он запишется в хранилище настроек
#31 by drcrasher
к всё тоже самое натыкать в режиме предприятия.
#32 by hardsign
Сделал с присваиванием значения полю при создании на сервере, через цикл и элементы.поле=документ.поле. Работает. Считаю это кривым бредом - заполнять по сути колонку виртуальной таблицы, когда в реальной таблице на сервере уже есть необходимые значения - просто к ним невозможно обратиться из необходимой функции.
#33 by Defender aka LINN
"когда в реальной таблице на сервере уже есть необходимые значения": ничего, что необходимые значения - в несколько более иначе другой таблице? В табличной части у тебя только ссылка - ГУИД документа, т.е. число. Никаких пометок удаления, флагов и прочих реквизитов у числа не бывает.
#34 by Defender aka LINN
З.Ы. Теперь осталось только научить тебя реквизиты запросом вытягивать
#35 by hardsign
Так я про это и говорю - можно было бы сделать обычный join и потянуть из таблицы приходных ордеров нужные данные. Это можно сделать отчетом, обработкой и т.д. Но из условного оформления это недоступно, и надо придумывать костыль!
Тэги: 1С 8
Ответить:
Комментарии доступны только авторизированным пользователям

В этой группе 1С