Как сохранить табличную часть в регистре? #654885


#0 by Мисти
2 маленьких таблички в обработке. При печати данные (там еще 40 реквизитов) сохраняются в регистр, при повторном открытии - данные обработки заполняются из регистра. Как таблички сохранить? В 7 я писала что-то вроде встрокувнутрь, а в 8?
#1 by Wobland
так же
#2 by Мисти
Почему?
#3 by Мисти
НаборЗаписей[0].ДоговораПоставщика - это {"#",595cddf9-e61d-47fe-ad92-3cb955fb5c92} (отладчик говорит) ЗначениеИзСтрокиВнутр(НаборЗаписей[0].ДоговораПоставщика) - а это - неопределено говорит.
#4 by Мисти
А сохраняла так - МенеджерЗаписи.ДоговораПоставщика  =   ЗначениеВСтрокуВнутр(ДоговораПоставщика) - ДоговораПоставщика Табличка их договоров.
#5 by Живой Ископаемый
так делают только .удаки. зачем что-то сохранять из обработки? просто кинь табличное поле у которого установи источник данных - твой регистр. Только нужно будет озаботится регистратором, но это легко.
#6 by Живой Ископаемый
и не начинайте "я в 7 делала" - это зразу два, это сразу значит что вы точно делаете не так. и нужно по-другому.
#7 by shuhard
ты угадал с оценкой =)
#8 by Мисти
Возможно! Но у меня другой фокус. Регистр содержит 40 реквизитов, в 2 из них должны сохранится табличные части.
#9 by Живой Ископаемый
и что?
#10 by Лефмихалыч
откуда такие еретические мысли - хранить табличные части обработки в базе?
#11 by Мисти
Ну, в этом смысле - нужно будет 3 регистра, нет? А почему нет? Были найдены 5 договоров, из них 2 - нужны для печати (в некотором пункте большого документа), а некоторые - нет. Нужные сохраняем для повторной печати.
#12 by Живой Ископаемый
Не, ну чисто гипотетически это может быть например фильтр отбора в скд, но все это прекрасно хмлсериализуется
#13 by kotletka
договоры это не табличная часть, так и скажи нужно хранить данные в регистре, а то табличную часть, табличную часть
#14 by Живой Ископаемый
господи, да почемуже?
#15 by kotletka
в регистре измерение типа справочниксс...договоры контрагентов и записываешь в него свои договры
#16 by Живой Ископаемый
ничего не понятно. У нас сомнения что в следущий раз мы найдем эти два договора?
#17 by kotletka
да потому что это мисти,она в 1с не "взубногой", любой вопрос решает на мисте, путём взятия на слабо доверчивых 1сников
#18 by Мисти
А что это? В обработке выглядит, как 2 табличные части. Найти-то найдем! Но их 5 нужно визуально выбрать 2 (например). В этот момент можно ошибиться при повторе.
#19 by Мисти
Так их сразу 2! Почему нельзя - вСтрокуВнутрь? в 7 было красиво - сколько хочешь табличных частей в документе!
#20 by Живой Ископаемый
2и в8 скалько хочешь табличных частей и без значениевстрокувнутр и поэтому и говорим , что если будете с подходом "как в 7" будет непоавильно
#21 by Мисти
ну и куда мне их деть в обработке, чтоб при открытии ее из того же начального документа я увидела все те реквизиты, что распечатались?
#22 by Мисти
И, главное, если это возможно технически - может, вы мне лучше подскажете - как? И почему не работает?
#23 by Steel_Wheel
Потому что встрокувнутр не гарантирует сохранность объекта, при изменении метаданных извлекаемого объекта может и не сработать
#24 by hhhh
ну стандартное же есть на любой форме обработки и отчета. СохранитьЗначения и ВосстановитьЗначения. И в свойствах формы просто указываете какие поля сохранять.
#25 by Мисти
Не пойдет! Оно сохраняет последнее значение, а мне нужна зависимость от объекта, из которого вся эта хрень вызывается. Фик с ней! Пока-то ничего не поменялось! Я готова сохранить даже просто названия договоров! Ну не рисовать же строку из табличной части вручную? А потом обратно?
#26 by Steel_Wheel
Кстати, список настроек фиксирован? Если да, то я бы все-таки сделал собственный регистр с измерением документ и набором характеристик в ресурсах. Или через справочник. Возможно, потребуется написать на несколько строк больше, но такое решение более стабильно и лучше поддерживается
#27 by hhhh
она сохраняетс не последнее значение, а по имени настройки, чтоб вы знали. И это вам подходит идеально.
#28 by Мисти
Откуда я знаю имя настройки? У меня их, может, штук 200! Где я их искать буду? И почему не в регистр-то?? Именно так я и сделала! Только 2 табличные части там не сохраняются, и еще одна мелкая заминка.
#29 by Мисти
Еще одна проблема: При пером запоонении формы формируется список адресов, из них выбирается нужный и сохраняется в регистре. При открытии он должен попасть в тот же реквизит! Адреса - определен как "неопределенный" со списком выбора.
#30 by Мисти
ЭлементыФормы.Адреса.СписокВыбора.ВыбратьЭлемент(АдресПредметаЛизинга); как его туда засунуть-то?? Чтоб уже не выбирать из списка выбора, а уже выбран?
#31 by Мисти
При этом фокусе формируется нужный список выбора, только мне нужно, чтоб он уже был выбран!!
#32 by Мисти
ЭлементыФормы.Адреса.СписокВыбора.ВыбратьЭлемент(СписокАдр.НайтиПоЗначению(АдресПредметаЛизинга)); О! А вот так - она мне аж интерактивно предлагает выбрать адрес! Ну уж это - слишком!
#33 by Мисти
ау?
#34 by Живой Ископаемый
У психологов должна быть специалиазация- лечение 1сников от клюшечных привычек
#35 by Мисти
ЭлементыФормы.Адреса.Значение = АдресПредметаЛизинга; Что-то из этого сработало.
#36 by Мисти
Понятно, что дело не в психологии, а в том, что 8-рочных приемов я не знаю, но в данном случае, мне кажется, что выбран оптимальный вариант. Только не работает!
#37 by Steel_Wheel
1) Есть такое понятие Document-View model. Если интересно -- нужно гуглить. Смысл в том, что DOcument -- это данные (объект), View -- это их вид (форма). ЭлементыФормы -- это обращение к View с просьбой поменять model. Гораздо лучше обращаться сразу к Model, тем более, что View сразу актуализирует данные. Форма -- это не сами данные, а то, как их видит пользователь. 2) >>Адреса - определен как "неопределенный" со списком выбора. Для неопределенного типа нужно сначала принудительно тип установить. В вашем случае луше использовать составной тип, и просто написать ДокументОбъект.Адреса = СписокАдр.Найти(...) система сама определит тип и осуществит присвоение 3) Да, восьмерка требует более глубоких знаний в области программирования, чем 7-ка. Но мне, когда я работал с 1с, она нравилась намного больше, т.к. если знаешь, то сделать можно почти что угодно. И интерфейс намного дружественнее, к пользователю, чем в 7-ке. В принципе, интерфейс -- это слабая сторона 7-ки.
#38 by Мисти
Прекрасный ответ, но не по делу! С адресами я разобралась, а с табличными частями - нет ответа!
#39 by mzelensky
не совсем понимаю проблему!? Есть обработка. НА ней есть какой-то общий реквизит + 2 ТЧ. Нужно сохранить куда-то. Делаешь РС - сохраняй туда не всю ТЧ целиком, а построчно. Получается У тебя в измерениях будет общий реквизит + строкаТЧ1, потом общий реквизит и строкаТЧ2 и так далее... А потом обратно так же считываешь... Или я что-то не догоняю?!
#40 by Мисти
Ну уж нет, это дикость какая-то! У меня 40 реквизитов, часть из которых - строка неопределенной длины, зачем мне это дублировать??, тем более, что ТЧ - 2, а может завтра их 3 будет! Если "без проблем", то я могу сама свернуть тч в строку и потом развернуть, но существует же метод! Он обычно работает, почему у меня - вдруг нет?
#41 by Мисти
Туда сохранилось - нечто похожее, обратно - неопределено.
#42 by Мисти
А вот как работало в 7:
#43 by kosts
Сохранять в строку ссылочные типы и хранить в базе строку - это совсем плохо. То что 40 реквизитов это ничего страшного, 1С может и больше сохранить. А вообще переделай обработку в справочник и создай там табличные части. Опиши задачу полно. Может подскажут чего еще.
#44 by Мисти
Я могу сохранять номера документов. Так лучше?
#45 by kosts
Каждый решает сам, что, в конце концов, ему лучше. Мы только подсказываем направление.
#46 by КонецЕсли
Рассмотри вариант ещё в справочнике хранить. Там можно табличные части сделать.
Тэги: 1С 8
Ответить:
Комментарии доступны только авторизированным пользователям

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