Программно изменить дополнительные реквизиты (сведения) #761037


#0 by tabarigen
Здравствуйте друзья. Для документа поступления добавил 2 доп реквизита: ВремяРазбора(Тип Дата) и Проверено (Тип Булево). Как я могу получить доступ к этим реквизитам, через ссылку на документ? И возможно ли вообще через ссылку на документ изменить их? Или же обязательно нужно ПВХ ковырять, или где там они хранятся?
#1 by Живой Ископаемый
через ссылку ты даже НЕдополнительные не сможешь изменить, придется объект получать...
#2 by tabarigen
так я получил, на сервере &НаСервере
#3 by tabarigen
{Форма.Форма.Форма}: Поле объекта не обнаружено (Проверено)     ДокПоступления.Проверено = Истина;
#4 by pessok
а ДокументПоступления то заполнено?
#5 by IlyaSR
нет конечно, раз параметра нет и записать после ДокПоступления не забудь
#6 by tabarigen
Док Поступления заполнено на форме. В нем хранится ссылка на Документ.
#7 by pessok
а что нам говорит отладчик на строке ДокПоступления.Проверено = Истина; ?
#8 by tabarigen
Непонятно как добраться до Доп Реквизитов?
#9 by tabarigen
я ж показал что он говорит {Форма.Форма.Форма}: Поле объекта не обнаружено (Проверено)     ДокПоступления.Проверено = Истина;
#10 by pessok
*отладчик*
#11 by pessok
конфа какая, для начала? в управлении борделем 3.1 это табчасть объекта, например
#12 by tabarigen
тоже самое говорит. Shift+F9  Выдает поле объекта не обнаружено.
#13 by tabarigen
конфа УТ 11
#14 by pessok
так надо ж смотреть что у тебя в ДокументПоступления ну та в УТ 11 тоже в ТЧ объекта
#15 by tabarigen
Кстати для Ссылки на документ доступны свойства ДополнительныеРеквизиты и ДоаолнительныеСведения
#16 by tabarigen
Вы наверное вопрос не поняли. Я создал в ПВХ дополнительные сведения для Документа поступления. Теперь я хочу их программно изменить.
#17 by pessok
продолжайте наблюдения
#18 by pessok
я то как раз все прекрасно понял. но судя по ошибке в что-то там не то
#19 by АдинС
к доп реквизитам через точку не добраться.... через точку только к нормальным реквизитам...
#20 by tabarigen
Добраться не могу до Дополнительного Реквизита. Неудивительно, напрямую это навероне и не должно делаться.
#21 by tabarigen
ну вот и я о том же. Как же к ним обращаться?
#22 by singlych
они лежат в ТЧ ДополнительныеРеквизиты
#23 by АдинС
Через ТЧ ДополнительныеРквизиты
#24 by DexterMorgan
#25 by DexterMorgan
да, кстати, наименование доп реквизита нужно посмотреть в ПВХ, это не просто "Проверено", а что то вроде "Проверено (Поступление товаров и услуг)"
#26 by tabarigen
{Форма.Форма.Форма}: Ошибка при вызове метода контекста (Найти)     СТрокаТЧ = ДокПоступления.ДополнительныеРеквизиты.Найти(ДопРеквизитСсылка, "Проверено"); по причине: Неверное имя колонки эт точно. Сейчас посмотрю
#27 by DexterMorgan
ну ты даешь. это менять не надо, искать доп реквизит надо тут ДопРеквизитСсылка = ПланыВидовХарактеристик.ДополнительныеРеквизитыИСведения.НайтиПоНаименованию(НаименованиеДопРеквизита, Истина);
#28 by tabarigen
ссылку на реквизит получаю, дальше ошибка {Форма.Форма.Форма}: Ошибка при вызове метода контекста (Найти)     СТрокаТЧ = ДокПоступления.ДополнительныеРеквизиты.Найти(ДопРеквизитСсылка, "Проверено"); по причине: Неверное имя колонки код такой
#29 by tabarigen
расслабься я так и сделал)
#30 by DexterMorgan
Проверено действительно колонки в тч нет, есть колонка "свойство"
#31 by DexterMorgan
да я и не напрягался
#32 by DexterMorgan
я вижу как ты сделал
#33 by tabarigen
сделал свойство теперь такая ошибка {Форма.Форма.Форма}: Значение не является значением объектного типа (Значение)
#34 by DexterMorgan
Слушай я тебе написал код, который проверяем на неопределено строку. Но ты его решил не писать, ты же лучше знаешь как надо. Прочитай лучше , ты думаешь "если" там зря написано?
#35 by tabarigen
Зачем мне проверять есть ли реквизит "Проверено" если я знаю что он есть
#36 by DexterMorgan
Ну видишь, ты лучше знаешь как устроен этот механизм
#37 by tabarigen
))
#38 by tabarigen
Ну Морган ну не томи
#39 by DexterMorgan
Зачем тогда на форуме спрашивать?
#40 by DexterMorgan
его там нет. В табличную часть доп реквизиты добавляются при записи объекта
#41 by DexterMorgan
При чем только если они заполнены
#42 by tabarigen
упс.. нестыковочка. Так реквизиты я добавлял разве не к объекту? причем тут табличная часть? я ж не для каждой строки меняю, а для объекта Документ Поступления в целом.
#43 by DexterMorgan
А ты не троль?)
#44 by tabarigen
нет, честно
#45 by DexterMorgan
Ты создавал элемент плана видов характеристик, к документу это не имеет отношения. Чтобы заполнить доп реквизит в документе, нужно добавить его в табличную часть "ДополнительныеРеквизиты" документа.
#46 by DexterMorgan
Его там может не быть. А может быть. Поэтому нужно найти эту строку табличной части и проверить неопределено она или нет. И если ее нет, то добавить.
#47 by tabarigen
Спасибо что объяснили на пальцах. я и не знал что допреквизиты в отдельной тч хранятся. Переписал код как вы посоветовали, ошибок нет, но значение реквизита не меняется. Может я значение неправильно присваиваю. Так как в СтрокаТЧ я получаю ссылку парвильно
#48 by DexterMorgan
В форме меняешь?
#49 by DexterMorgan
Или из обработки?
#50 by tabarigen
из обработки
#51 by DexterMorgan
Кароче, если это форма обработки - значит должно меняться, нужно перечитать данные формы или переоткрыть документ. Если из формы документа, нужно по-другому делать: Доп реквизиты на форме генерятся автоматически причем наименование складывается из гуида ПВХ ДополнительныеРеквизитыИСведения и гуида спр НаборыДополнительныхРеквизитовИСведений надо найти на форме в отладке реквизит, он будет типа такого: и просто присвоить ему значение
#52 by DexterMorgan
Тогда не может не меняться =)
#53 by DexterMorgan
А ты точно доп реквизит создал или доп сведение?
#54 by tabarigen
буду провобовать. Вам спасибо. по результатам отпишусь
#55 by tabarigen
в общем ситуация такая, у меня были добавлены допсведения и не доп реквизиты, потому они и не менялись. Теперь бы еще осмыслить как быть если хочу изменить больше одного Доп реквизита.     ДопРеквизитВремяРазбора = ПланыВидовХарактеристик.ДополнительныеРеквизитыИСведения.НайтиПоНаименованию("Время Разбора (Поступление товаров и услуг)", Истина); Если сделаю так то думаю будет ошибка. Если ЕстьСтроки.Количество = 0 Тогда
#56 by tabarigen
Сделал так если кому интересно, не знаю насколько правильно с точки зрения производительности
Тэги: 1С 8
Ответить:
Комментарии доступны только авторизированным пользователям

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