![]() |
![]() |
![]() |
|
Какая максимальная длина строки в ТЗ? | ☑ | ||
---|---|---|---|---|
0
lisss
15.02.06
✎
17:05
|
Собственно, сабж....
ТЗ - таблица значений. |
|||
1
Simod
15.02.06
✎
17:06
|
(0) А что собрался помещать?
|
|||
2
Парижская фанера
15.02.06
✎
17:07
|
А самому попробывать?.. Она еще вроде разная, в зависимости от тоо - привел ты ее к типу "Строка" или просто колонка.
|
|||
3
lisss
15.02.06
✎
17:08
|
(1)полное наименование номенклатуры.... Пишет: "Получаемая строка превысит допустимые размеры"....
|
|||
4
АЛьФ
модератор
15.02.06
✎
17:10
|
2(3) 1С это пишет не когда ты пытаешься строку в ТЗ записать, а когда ты эту строку выводишь куда-то (например, в окно сообщений).
|
|||
5
lisss
15.02.06
✎
17:11
|
(4)фича в том, что если не выводить, то в ТЗ тоже не записывает....
|
|||
6
Simod
15.02.06
✎
17:12
|
(3) Строка? Длина какая?
|
|||
7
lisss
15.02.06
✎
17:13
|
В общем, сделал в справочнике строковый реквизит, длину задал 900, туда записал несколько значений, но всего по 10 символов.... при попытке вывести или в ТЗ записать получается эта байда.
|
|||
8
АЛьФ
модератор
15.02.06
✎
17:13
|
2(5) Значит что-то не так делаешь.
|
|||
9
lisss
15.02.06
✎
17:16
|
хм... а если в отладчике глянуть, то получается ПустоеЗначение(Спр.Комент)=1... это капец базе приходит, да?
|
|||
10
Simod
15.02.06
✎
17:18
|
(9) А может ты туда ничего не записал?
|
|||
11
lisss
15.02.06
✎
17:20
|
(10) и поэтому "Получаемая строка превысит допустимые размеры"?
|
|||
12
Heckfy
15.02.06
✎
17:20
|
Код в студию
|
|||
13
lisss
15.02.06
✎
17:20
|
(12)код чего? заполнения? вывода?
|
|||
14
Heckfy
15.02.06
✎
17:21
|
Давай и то и то
|
|||
15
Ветеран
15.02.06
✎
17:21
|
(9) Мдя ...
|
|||
16
АЛьФ
модератор
15.02.06
✎
17:23
|
2(11) Если ты задал строковый реквизит с длиной 900, то там будет 900 пробелов.
Скорее всего у тебя присвоение идет по типу: Спр.Рек = ""; Спр.Рек = Спр.Рек + "что-то"; (где "Рек" - это строковый реквизит длиной 900) Так вот это неправильно. У тебя там всегда будет 900 пробелов вместо строки. Надо делать так: Спр.Рек = СокрЛП(Спр.Рек) + "что-то"; |
|||
17
lisss
15.02.06
✎
17:25
|
Процедура Сформировать()
Спр = СоздатьОбъект("Справочник.Запчасти"); Спр.ВыбратьЭлементы(); НМ = 0; Пока Спр.ПолучитьЭлемент()=1 Цикл НМ = НМ+1; Спр.Комментарий1 ="ПоДшИпНиК"+Строка(НМ) ; Спр.Записать(); если НМ=500 тогда прервать конецесли; КонецЦикла; КонецПроцедуры Процедура Вывести() Спр = СоздатьОбъект("Справочник.Номенклатура"); Спр.ВыбратьЭлементы(); Пока Спр.ПолучитьЭлемент()=1 Цикл Если ПустоеЗначение(Спр.Комментарий1)=0 Тогда Сообщить(Спр.Комментарий1); КонецЕсли; КонецЦикла; КонецПроцедуры Только не надо говорит, что надо "Для" в первом примере.... |
|||
18
lisss
15.02.06
✎
17:26
|
+(17)во втором примере "Справочник.Запчасти"...
|
|||
19
lisss
15.02.06
✎
17:26
|
(16)я знаю.... так и делаю...
|
|||
20
Иде я
15.02.06
✎
17:27
|
Я наверное а танке...а где здесь таблица значений?
|
|||
21
lisss
15.02.06
✎
17:30
|
(20)вместо "Сообщить(Спр.Комментарий1);" напиши "ТЗ.НоваяСтрока(); ТЗ.Ком = Спр.Комментарий1;"
|
|||
22
lisss
15.02.06
✎
17:31
|
я извиняюсь за неровный почерк, просто пишу с ноута, причем не со своего...
|
|||
23
Иде я
15.02.06
✎
17:32
|
А как в ТЗ столбец определили ?
|
|||
24
lisss
15.02.06
✎
17:34
|
пробовал вобще не определять... пробовал строкой....
|
|||
25
lisss
15.02.06
✎
17:34
|
+(24)длину правда не указывал...
|
|||
26
lisss
15.02.06
✎
17:38
|
+(25)а все-равно не записывает, даже если длину указать....
|
|||
27
Ветеран
15.02.06
✎
17:40
|
Ты (4) читал? Внимательно?
|
|||
28
АЛьФ
модератор
15.02.06
✎
17:44
|
Почему ты заполняешь справочник "Запчасти", а выводишь из справочника "Номенклатура"?
|
|||
29
Dupon
15.02.06
✎
17:46
|
Зачем такую длину задавать? Поставь для строкового неогр.
Попробуй вывести без условия Если ПустоеЗначение()... посмотреть что получиться! |
|||
30
lisss
15.02.06
✎
17:50
|
(27)да, так и есть, но если записывать в ТЗ, то ТЗ не заполняется.
(28)я поправился в (18) и извинился в (22) (29)не надо неограниченного, нужна длина определенная. |
|||
31
lisss
15.02.06
✎
17:52
|
ладно, извините за беспокойство... если разберусь - отпишу сюда... всем спасибо...
|
|||
32
АЛьФ
модератор
15.02.06
✎
17:54
|
2(30) Ты бы показал реальный код, на котором у тебя это происходит, а не придумывал бы на ходу примеры.
|
|||
33
lisss
15.02.06
✎
18:06
|
(32)
Процедура Сформировать() Спр = СоздатьОбъект("Справочник.Запчасти"); Спр.ВыбратьЭлементы(); НМ = 0; Пока Спр.ПолучитьЭлемент()=1 Цикл Если Спр.Заказ = 1 Тогда НМ = НМ+1; Спр.Комментарий1 ="ПоДшИпНиК"+Строка(НМ) ; Спр.Записать(); КонецЕсли; КонецЦикла; КонецПроцедуры Процедура Вывести() ТЗ = СоздатьОбъект("ТаблицаЗначений"); ТЗ.НовыйСтолбец("Ком"); Спр = СоздатьОбъект("Справочник.Запчасти"); Спр.ВыбратьЭлементы(); Пока Спр.ПолучитьЭлемент()=1 Цикл Если ПустоеЗначение(Спр.Комментарий1)=0 Тогда ТЗ.НоваяСтрока(); ТЗ.Ком = Спр.Комментарий1; КонецЕсли; КонецЦикла; КонецПроцедуры вот так было изначально.... в результате: в ТЗ есть строки но колонка Ком остается пустой... Реквизит Комментарий1 имеет тип "Строка", длина 900.... |
|||
34
Heckfy
15.02.06
✎
18:18
|
(33) попробуй так:
Процедура Вывести() Сч=0; ТЗ = СоздатьОбъект("ТаблицаЗначений"); ТЗ.НоваяКолонка("Ком",,,,,,,); Спр = СоздатьОбъект("Справочник.Запчасти"); Спр.ВыбратьЭлементы(); Пока Спр.ПолучитьЭлемент()=1 Цикл Если ПустоеЗначение(Спр.Комментарий1)=0 Тогда Сч=Сч+1; ТЗ.НоваяСтрока(Сч); ТЗ.УстановитьЗначение(Сч,"Ком",Спр.Комментарий1); КонецЕсли; КонецЦикла; КонецПроцедуры |
|||
35
Dupon
15.02.06
✎
18:34
|
Вопрос: Как у тебя получился реквизит строка с длиною 900?
У меня в Конфигураторе либо 99 либо неогр. |
|||
36
Dupon
15.02.06
✎
18:41
|
У меня все выводится.
Процедура Сформировать() Спр = СоздатьОбъект("Справочник.Номенклатура"); Спр.ВыбратьЭлементы(); НМ = 0; Пока Спр.ПолучитьЭлемент()=1 Цикл //Если Спр.Заказ = 1 Тогда НМ = НМ+1; Спр.Коментарий1 ="ПоДшИпНиК"+Строка(НМ) ; Спр.Записать(); //КонецЕсли; КонецЦикла; КонецПроцедуры Процедура Вывести() //ТЗ = СоздатьОбъект("ТаблицаЗначений"); ТЗ.НоваяКолонка("Ком"); Спр = СоздатьОбъект("Справочник.Номенклатура"); Спр.ВыбратьЭлементы(); Пока Спр.ПолучитьЭлемент()=1 Цикл Если ПустоеЗначение(Спр.Коментарий1)=0 Тогда ТЗ.НоваяСтрока(); ТЗ.Ком = Спр.Коментарий1; Сообщить(Спр.Коментарий1); КонецЕсли; КонецЦикла; КонецПроцедуры |
|||
37
Dupon
15.02.06
✎
18:45
|
Все ясно! У тебя нет в справочнике Запчасти никакого реквизита Комментарий1 с типом строка, т.к. в реквизите длина строки может быть только 99 или неограниченная. Если же в форму элемента ввести поле для ввода с типом строка, то для него можно установить длину в 999 символов, но тогда ты не сможешь обратиться к нему как к реквизиту справочника!
|
|||
38
lisss
16.02.06
✎
09:09
|
Под пытками было вырвано признание у чела, что поле в таблице добавлялось с помощью Microsoft Access. Проблема была решена восстановлением из резервной копии и добавлением нормальными штатными средствами 1С.
(37)прислать скрин где у меня реквизит с типом строка и длиной 900? |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |