|
Метод ЗначениеВСтрокуВнутр | ☑ | ||
---|---|---|---|---|
0
vse_serjezno
21.07.15
✎
13:19
|
Здравствуйте.
Использую метод ЗначениеВСтрокуВнутр, передаю в него ТЗ. Беда в том, что при передаче таблицы с количеством строк до 7 все в порядке, если пытаюсь сформировать 7 строк и более, то, судя по отладчику, строка обрывается. Т.е. не хватает длины возвращаемой строки, чтобы отразить все данные. Можно как-то решить этот вопрос, ведь не может же быть так, чтобы метод работал только на маленьком количестве данных?.. |
|||
1
Альбатрос
21.07.15
✎
13:22
|
(0) Передаю до 10 тысяч строк - все норм.
|
|||
2
vse_serjezno
21.07.15
✎
13:22
|
В СП ничего не сказано о длине возвращаемой строки.
|
|||
3
Redkiy
21.07.15
✎
13:24
|
Метод используется для сохранения функциональной совместимости с 1С:Предприятием 7.7. Использовать для других целей не рекомендуется.
Используй ХранилищеЗначения. |
|||
4
H A D G E H O G s
21.07.15
✎
13:24
|
(0) Отладчик не показывает всех данных, чтобы не зависнуть.
|
|||
5
vse_serjezno
21.07.15
✎
13:24
|
(1) Поподробнее, пожалуйста.
У меня на 5-ти строках: {"#",acf6192e-81ca-46ef-93a6-5a6968b78663, {8, {3, {0,"Контрагент", {"Pattern"},"",0}, {1,"НомерДоговора", {"Pattern"},"",0}, {2,"ДатаДоговора", {"Pattern"},"",0} }, {2,3,0,0,1,1,2,2, {1,5, {2,0,3, {"#",d8f3ef11-7b5b-4839-9a1e-00a5760323f0,27:b16c00155d62150111e217762454c6a7}, {"S","6944"}, {"D",20150714000000},0}, {2,1,3, {"#",d8f3ef11-7b5b-4839-9a1e-00a5760323f0,27:b16c00155d62150111e217762454c6a7}, {"S","6765"}, {"D",20150713000000},0}, {2,2,3, {"#",d8f3ef11-7b5b-4839-9a1e-00a5760323f0,27:b16c00155d62150111e217762454c6a7}, {"S","6766"}, {"D",20150713000000},0}, {2,3,3, {"#",d8f3ef11-7b5b-4839-9a1e-00a5760323f0,27:b16c00155d62150111e217762454c6a7}, {"S","6714"}, {"D",20150713000000},0}, {2,4,3, {"#",d8f3ef11-7b5b-4839-9a1e-00a5760323f0,27:b16c00155d62150111e217762454c6a7}, {"S","6794"}, {"D",20150713000000},0} },2,4} } } На 7-ми строках: {"#",acf6192e-81ca-46ef-93a6-5a6968b78663, {8, {3, {0,"Контрагент", {"Pattern"},"",0}, {1,"НомерДоговора", {"Pattern"},"",0}, {2,"ДатаДоговора", {"Pattern"},"",0} }, {2,3,0,0,1,1,2,2, {1,7, {2,0,3, {"#",d8f3ef11-7b5b-4839-9a1e-00a5760323f0,27:b16c00155d62150111e217762454c6a7}, {"S","6944"}, {"D",20150714000000},0}, {2,1,3, {"#",d8f3ef11-7b5b-4839-9a1e-00a5760323f0,27:b16c00155d62150111e217762454c6a7}, {"S","6765"}, {"D",20150713000000},0}, {2,2,3, {"#",d8f3ef11-7b5b-4839-9a1e-00a5760323f0,27:b16c00155d62150111e217762454c6a7}, {"S","6766"}, {"D",20150713000000},0}, {2,3,3, {"#",d8f3ef11-7b5b-4839-9a1e-00a5760323f0,27:b16c00155d62150111e217762454c6a7}, {"S","6714"}, {"D",20150713000000},0}, {2,4,3, {"#",d8f3ef11-7b5b-4839-9a1e-00a5760323f0,27:b16c00155d62150111e217762454c6a7}, {"S","6794"}, {"D",20150713000000},0}, {2,5,3, {"#",d8f3ef11-7b5b-4839-9a1e-00a5760323f0,27:b16c00155d62150111e217762454c6a7}, {"S","6878"}, {"D",20150713000000},0}, {2,6,3, {"#",d8f3ef11-7b5b-4839-9a1e-00a5760323f Видите? Текст обрывается. |
|||
6
ДенисЧ
21.07.15
✎
13:24
|
ограничение на 64КБ.
|
|||
7
vse_serjezno
21.07.15
✎
13:27
|
(6) ограничение где? это можно как-то настроить?
(3) использую для передачи параметра при печати шаблона Word |
|||
8
ДенисЧ
21.07.15
✎
13:28
|
(7) Можно.
Достаточно устроиться на работу в 1с и написать 64бит клиента без ограничений. |
|||
9
vse_serjezno
21.07.15
✎
13:31
|
(1) вы в каких случаях этот метод используете?
|
|||
10
PLUT
21.07.15
✎
13:32
|
(7) попробуй сериализацию
http://wiki.mista.ru/doku.php?id=1c:v8:howto:serializacija_tablicyznachenij_v_xml |
|||
11
vse_serjezno
21.07.15
✎
13:34
|
(10) Спасибо.
Сперва с ХранилищемЗначения попробую, если не получится, то про сериализацию подумаю. |
|||
12
dk
21.07.15
✎
13:35
|
просто отладчик не показывает всю строку - посмотри на длину строки с 7, 8 и 9 строками
|
|||
13
Альбатрос
21.07.15
✎
13:43
|
(9)
ЗапросУТ= БазаУТ.NewObject("Запрос"); ЗапросУТ.Текст = "ВЫБРАТЬ | ТоварыВНТТОстатки.КоличествоОстаток КАК Остаток, | ТоварыВНТТОстатки.Номенклатура.АлкИдентификатор КАК ИдентификаторНоменклатуры, | ТоварыВНТТОстатки.Склад.Подразделение.алкИдентификатор КАК Идентификатор |ИЗ | РегистрНакопления.ТоварыВНТТ.Остатки(&КонДата, Склад.Подразделение.Организация = &Организация) КАК ТоварыВНТТОстатки |"; ОрганизацияУТ = БазаУТ.Справочники.Организации.НайтиПоРеквизиту("алкИдентификатор", Лицензиат.Идентификатор); ЗапросУТ.УстановитьПараметр("КонДата" ,КонецДня(КонПериода)); ЗапросУТ.УстановитьПараметр("Организация", ОрганизацияУТ); ДанныеУТ = Новый ТаблицаЗначений; Состояние("Выборка данных из базы К100..."); Результат = ЗапросУТ.выполнить(); ДанныеУТ = ЗначениеИзСтрокиВнутр(БазаУТ.ЗначениеВСтрокувНУТР(Результат.Выгрузить())); Результат = ""; |
|||
14
Serginio1
21.07.15
✎
13:52
|
(13) А не проще?
ЗаписатьXML=Новый ЗаписьXML; ЗаписатьXML.УстановитьСтроку(); СериализаторXDTO.ЗаписатьXML(ЗаписатьXML,Результат.Выгрузить()); стр=ЗаписатьXML.Закрыть(); |
|||
15
Альбатрос
21.07.15
✎
13:57
|
(14) Проще ))))
|
|||
16
Serginio1
21.07.15
✎
14:20
|
(15) Ну сделай Функцию
Функция СериализоватьОбъект(Объект) ЗаписатьXML=Новый ЗаписьXML; ЗаписатьXML.УстановитьСтроку(); СериализаторXDTO.ЗаписатьXML(ЗаписатьXML,Объект); возврат ЗаписатьXML.Закрыть(); КонецФункции Можно для интереса сравнить размер строк (в том числе и со сжатием в Хранилище значения) Стр=XmlСтрока(Новый ХранилищеЗначения(Стр,Сжатие)); СтрОриг=XMLЗначение(Тип("ХранилищеЗначения"), Стр).Получить(); и выбрать какой вариант лучше |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |