Вопрос по СписокЗначений #96846


#0 by Zero Cold
Есть документ. Там на форме я поставил СписокЗначений. Список значений с пометкой. Надо чтоб при повторном открытии восстанавливались галочки на строчках спискаЗначений, которые были проставлены при закрытии.Есть у кого нить пример кода? А то не соображу как сделать.
#1 by Diter
Делай1. Подчинённый документ2. Строка неограниченной длины и по разработанному тобой алгоритму (не используя штатные, там пометки не сохраняются) заполняй и читай эту строку
#2 by Zero Cold
up
#3 by КонецЦикла
Может, СохранитьЗначение и ВосстановитьЗначение?
#4 by upr
СохранитьЗначениеи ВостановитьЗначение
#5 by ulg
Дубль два за сегодня
#6 by КонецЦикла
+ Блин, невнимательно прочитал... если хранить нужно для каждого документа свое, то реквизит нужен (строка, спр-к) или доп. документ...
#7 by Diter
И чего? Для каждого документа будет сохранять свою комбинацию?
#8 by upr
вот кусок из обработки:
#9 by Vacony
в шапке дока делаешь реквизит ЛяЛя типа строки (неограниченной пока. потом можешь резать до 200 или 100 - смотря какой у тебя список )ПриОТкрытииТвойСписок.Заполнить(ЗначениеИзСтроки(ЛяЛя))
#10 by Zero Cold
В реквизитах документа я завел переменную Х типа Строка_Неограниченной_Длины.В процедуре ПриЗакрытии использую:СписокЗначений=ЗначениеИзСтрокиВнутр(ВосстановитьЗначение(X));Так вот на последнюю процедуру жалуется:"Попытка присвоить значение недоступной для записи переменной (Х)"Как быть?
#11 by Diter
Там пометки не сохраняются помоему. Только значения из списка.
#12 by Zero Cold
А... Уже ответили Щас попробую
#13 by КонецЦикла
2 Не используй напрямую, т.к. список этот на форме... делай как в , только Выгрузить
#14 by Zero Cold
Заполнить не работает. Говорит"Поле агрегатного объекта не обнаружено (Заполнить)"Тоже самое и при ВосстановитьЗначение
#15 by КонецЦикла
Попробуй так, мне стало интересно - пропробовал :)1. На форме список с пометками назовем его Список2. Реквизит строка Спис неогранич. длиныДопустим так напишем:Процедура ВводНового(Скопирован)*****заполнили список первоначально - тут свои алгоритмы используй*****Вроде работает, если не торможу - дочка не дает спать :(
#16 by Diter
Пометки ставил? Сохраняет их?
#17 by КонецЦикла
2 Да, сохраняет :( Только нужно учесть, что ПриЗаписи не сработает при простой отметке списка на форме... можно при закрытии записывать или сразу менять Спис
#18 by Diter
Нифига не понял, кроме одного - пометки метод ЗначениеВСтроку сохраняет. Буду знать :))
#19 by КонецЦикла
А где автор ветки? Млин, зря тренировался :(Чтобы не забывал сохранять документ:Процедура ПриЗакрытииКонецЕсли; или модифицировать насильно при отметке документ
#20 by Sheridan
Нихрена, в строке с разделителями пометки не сохраняет )))
#21 by Sheridan
Идея такая:Есть реквизит документа строка неограниченой длины. На форме список значений который заполняется по определенному алгоритму. При закрытии документа сохраняешь только те значения которые помечены.В цикле обходишь СЗ.Потом делаешь так:ЗаполнитьСписокОбъектов; Заполняется нужными значениями
#22 by Zero Cold
Народ, тута я - пока с бухами работал - отвлёкся, щаз папробую
#23 by КонецЦикла
2 Причем здесь срока с разделителями, юзай ЗначениеВСтроку :)Скопируй код, проверь... посмотри у кого проще и красивее
#24 by Zero Cold
Маленькое уточнение :/... СписокЗначений_с_галочками всегда с определённым количеством строк.
#25 by КонецЦикла
2 Попробуй (15,19) - это на случай разной длины, если одинаковая - храни строку или число типа 001001, в цикле списка Список.Пометка(ТекПоз,ТекПометка);
#26 by Diter
Опа.....КонецЦикла - ты видишь? Как так?
#27 by КонецЦикла
Да вы читать будете??? Написано у меня ЗначениеИзСтроки, а не ИзСтрокиСРазделителями
#28 by Zero Cold
Ты не поверишь но в моей конфе на твой кодСп.Выгрузить(Список);"говорит: Значение не представляет агрегатный объект (Выгрузить)Интересно как ты такое обошёл?
#29 by Diter
Ша, спокойно.... И чего ви так кричите? Никто не против.....
#30 by Sheridan
Сп = ЗначениеИзСтроки(Спис);ЗЫ КонецЦикла просто не проверял код. ЗначениеИзСтроки не создает агрегатный объект СписокЗначений.
#31 by Zero Cold
Эх... Малщит пока КонецЦикла...
#32 by КонецЦикла
2 Напиши так, я просто проверял на существующем доке:
#33 by 2S
КонецЦикла, письмо получил, время есть посмотреть?ЗЫ. я теряюсь :(
#34 by Zero Cold
хм... тоже не катит... Ругается опять наЗначение не представляет агрегатный объект (Выгрузить)
#35 by Sheridan
2: Я ж тебе говорю, что ЗначениеИзСтроки не создает список значений как объект !
#36 by Sheridan
Как варриант я когда для себя подобное реализовывал, этим не пользовался:Синтаксис:ЗначениеИзСтрокиВнутр(<СистСтрока>)Назначение:Преобразование значения объекта агрегатного типа из строкового системного представления во внутреннее.Возвращает: объект агрегатного типа данных.Параметры:<СистСтрока> - представление объекта агрегатного типа данных в системном строковом виде.Замечание:При использовании метода ЗначениеИзСтрокиВнутр для значения типа СписокЗначений, являющегося реквизитом формы, его следует передавать в качестве второго параметра. В данном случае метод следует использовать как процедуру. Пример: ЗначениеИзСтрокиВнутр(ВнутрСтрока,ИдентМойСпис);Подробнее см. в документации, глава ''Системные процедуры и функции''
#37 by КонецЦикла
2 Ладно... забыли... у меня все же работает... если длина всегда одинакова - см. - зачем зас-рать БД? Нет на вас АЛьФа :)2 Счас буду смотреть, уже проснулся :) Если получится напишу в ту ветку или вышлю на мыло
#38 by 2S
лучше в ту..
#39 by КонецЦикла
2 Попробуй так:
#40 by jurii
Если список значений на форме, то при восстановлении нуна использовать временный список значений и в него восстанавливать, а потом Выгрузить в список формы.
#41 by Sheridan
Что бы не засырать БД согласись,что мой вариант куда уцж экономнее твоего, т.к. сохраняет только помеченные значения в виде простой строки с разделителем )))
#42 by Zero Cold
Пусто
#43 by КонецЦикла
2 Ты уже не можешь скопировать? вот еще раз:*****чтобы не было пусто - заполнить тут нужно!заполнили список первоначально - тут свои алгоритмы используй******КонецЕсли;2 Чтобы не "засырать" - лучше хранить только сами отметки типа "001010"
#44 by Sheridan
2:Каюсь, так работает. Только не пойму, как хранить сами пометки в отрыве от системной информации???
#45 by jurii
Дублирую свою мысль В процедуре ПриЗакрытии использую:СохранитьЗначение(Х,ЗначениеВСтрокуВнутр(СписокЗначений));
#46 by Zero Cold
Всё атлыщна!! Работает!!Спасибо!!
#47 by КонецЦикла
Уу-ф, всем спасибо за интересный диспут!
Тэги:
Ответить:
Комментарии доступны только авторизированным пользователям

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