Имя: Пароль:
1C
1C 7.7
v7: Подскажите как реализовать сохранение ошибки в документе? ☑
0 Ночной Эльф
 
29.01.13
✎
09:05
Всем доброго времени суток.

Имеется 1с 7.7 комплексная. Необходимо сделать так чтобы пользователь мог вводить комментарий ошибки в документ сколько угодно раз и какой угодно должен быть длины комментарий. затем где то все эти комментарии должны сохраняться и в отдельном отчете выводиться этот документ должен выводиться в отчете столько раз сколько раз был введен комментарий ошибки причем каждая новая строка должна отличаться только комментарием который был введен скажем 1 раз 2 раз и 3 раз т.е. этот комментарий должен где то храниться чтобы его в дальнейшем выводить.

Пробовал сделать 2 реквизита типо строка неограниченной длины в одном пишется комментарий, а другой скрытый при записи документа в него добавляется комментарий из 1 реквизита с разделителем, но че то с длиной не то больше 500 символов не записывается если даже поставить галочку многострочный реквизит.
Периодический реквизит тоже не подойдет потому что нужно все комментарии на сегодня а не один какой то.

Как можно это реализовать всем заранее спасибо?
1 andreymongol82
 
29.01.13
✎
09:09
А почему все таки не делать периодическим реквизит и выбирать не последнее к примеру, а последовательно прочитать до текущей даты к примеру через объект "периодический"?
Ну или как вариант справочник с реквизитами типа "Дата", "Документ", "Комментарий"?
2 ЧеловекДуши
 
29.01.13
✎
09:09
Заведи скрытый "Под документ описании ошибки", где в табличной части будешь писать все время новое :)
...
Так же заведи некий справочник "Описание ошибки" и используй его для бесконечной записи комментов.

Но я бы все же делал через документ, так быстрее будет работать, со временем :)
3 ЧеловекДуши
 
29.01.13
✎
09:09
(1)А вы в курсе, куда пишутся периодические реквизиты?
4 Фокусник
 
29.01.13
✎
09:10
(0) >но че то с длиной не то больше 500 символов не записывается если даже поставить галочку многострочный реквизит.

Как проверял, наверное через Сообщить()? :)
5 Ёпрст
 
гуру
29.01.13
✎
09:10
Забить и перестать заниматься х-й, самое верное решение.
6 andreymongol82
 
29.01.13
✎
09:11
(3) В курсе. Поэтому как варинат посоветовал справочник
7 Mikeware
 
29.01.13
✎
09:15
У меня это называлось "свойства документов"
8 Ночной Эльф
 
29.01.13
✎
09:24
Ну проверял через сообщить длину строки

Сообщить(СтрДлина(СкрытыйОшибкаПроверки));

и длина больше 500 не поднималась
9 Ночной Эльф
 
29.01.13
✎
09:29
А вон в чем проблема была с многострочным реквизитом
ФИШКА в том что если поставить галочку что многострочный реквизит неограниченной длины имеет кнопку выбора, то его длина автоматически становится не более 255 даже если стоит галочка многострочный )))
10 andreymongol82
 
29.01.13
✎
09:30
(7) А я обозвал "версии"))).
11 Ночной Эльф
 
29.01.13
✎
09:33
(3) Мне тоже хотелось знать куда они пишутся? ТАк для общего развития
12 1Сергей
 
29.01.13
✎
09:37
(11) в 1SCONST
13 Ёпрст
 
гуру
29.01.13
✎
09:38
(8) :)))))))))))))))))))))))))))))))))))))))))))))))))))

Если че, там > 500 символов, просто сообщить не может отобразить их.
14 dangerouscoder
 
29.01.13
✎
09:45
Делал историю заявки через справочник. Раз в полгода он очищался.
15 Aleksey
 
29.01.13
✎
09:53
писать во внешнюю БД не рассматриваешь?
16 varelchik
 
29.01.13
✎
09:58
(15)+100
А я бы посоветовал здесь же.
Создать отдельную таблицу или несколько.
Я вообще-то так делаю.
17 Ночной Эльф
 
29.01.13
✎
10:01
Вобщем делаю как говорил и раньше просто не ограниченную строку использую. Но тут возник другой вопрос

КАК разделить строку на несколько строк причем не зная количество этих строк? но зная разделитель и затем вывести эту строку?

понятно что надо использовать список значение, но че то не могу найти функцию в 1с которая бы разбивала строки
18 oslokot
 
29.01.13
✎
10:07
(17) просто. через цикл, работая со строками.

то есть сделать нормально, через справочник как правильно тебе советуют, не хочешь?
19 Ночной Эльф
 
29.01.13
✎
10:10
(18) не хочу нагромаждать конфигурацию лишними справочниками, а то еще вдруг от этого откажутся со временем. Да и работать с ним тяжелее ))
20 oslokot
 
29.01.13
✎
10:11
(19) )))))
21 andreymongol82
 
29.01.13
✎
10:11
(19) А так ты типа не загромоздишь код?)))
22 Ночной Эльф
 
29.01.13
✎
10:12
Убедили и правда через справочник проще будет )))
23 Ночной Эльф
 
29.01.13
✎
10:14
Только вот такой вопрос если я сделаю реквизит строка в справочнике неограниченной длины это действительно будет неограниченной длины или будет отсекаться на 256 симвалах?
24 Ёпрст
 
гуру
29.01.13
✎
10:17
(23) ёпт, она где угодно будет строка неогр. длины - хоть в справочнике, хоть в документе. Эти реквизиты хранятся в отдельной табличке.
То, что ты их вывести не можешь - говорит всего лишь о твоей низкой квалификации, а не об "усечении" до 256
25 Mikeware
 
29.01.13
✎
10:18
(10) "версии" (истории изменения) - это несколько иное
26 Mikeware
 
29.01.13
✎
10:19
(17) тебе продать СП?
27 Ёпрст
 
гуру
29.01.13
✎
10:23
Если не умеешь выводить что-то через Сообщить, выводи через текст, хотя бы:

т=СоздатьОбъект("Текст");
т.ДобавитьСтроку(Объект.РеквизитСТекстом);
т.Показать();
28 andreymongol82
 
29.01.13
✎
10:33
(23) Неограниченой
29 varelchik
 
29.01.13
✎
10:37
(19) Я тебе кажу.
Внутри создай левую таблицу (не родную) и делай сней шо хош.
Хоть бинарники храни.
У меня есть свой класс Хранилище типа того что у снеговика.
Мало ли потом решиш что ненуно, а вот ывкосить с базы будет ужо сложнее.
30 andreymongol82
 
29.01.13
✎
10:49
(25) Ну так там и хранилось что-то вроде истории изменения некоторых реквизитов некоторыми пользователями некоторых документов. Так как были личности.