|
Ошибка на Запрос.УстановитьПараметр String or binary data would be truncated | ☑ | ||
---|---|---|---|---|
0
PVS_Mtl
03.07.15
✎
09:40
|
Добрый день! Очень нужна помощь.
При выполнении процедуры процедура РазложитьСтрокиТаблицыНаПодстроки(ТЗ=Неопределено, мвт = Неопределено, ИмяВТ = "ТаблицаСоСтрокой", ИмяКолонки = "СтрокаСРазделителями", ТЗРез = Неопределено, ИмяВТРез = "ТаблицаСоСтрокойИСтроками", ИмяКолонкиРез = "Элемент", Разделитель=",") Экспорт ЕстьМВТ = Не (мвт = Неопределено); Если ТЗ<>Неопределено Тогда Если Не ЕстьМВТ Тогда мвт = новый менеджерВременныхТаблиц(); конецЕсли; мс_временныеТаблицы.ПреобразоватьТЗвВТ(ТЗ,МВТ,ИмяВТ); конецЕсли; запрос = новый Запрос(); ЗАПРОС.МенеджерВременныхТаблиц = мвт; запрос.Текст = "ВЫБРАТЬ 0 КАК Номер |ПОМЕСТИТЬ Цифры |ОБЪЕДИНИТЬ |ВЫБРАТЬ 1 |ОБЪЕДИНИТЬ |ВЫБРАТЬ 2 |ОБЪЕДИНИТЬ |ВЫБРАТЬ 3 |ОБЪЕДИНИТЬ |ВЫБРАТЬ 4 |ОБЪЕДИНИТЬ |ВЫБРАТЬ 5 |ОБЪЕДИНИТЬ |ВЫБРАТЬ 6 |ОБЪЕДИНИТЬ |ВЫБРАТЬ 7 |ОБЪЕДИНИТЬ |ВЫБРАТЬ 8 |ОБЪЕДИНИТЬ |ВЫБРАТЬ 9 |; | |//////////////////////////////////////////////////////////////////////////////// |ВЫБРАТЬ | Н1.Номер * 100 + Н2.Номер * 10 + Н3.Номер КАК Номер |ПОМЕСТИТЬ Номера |ИЗ | Цифры КАК Н1 | ЛЕВОЕ СОЕДИНЕНИЕ Цифры КАК Н2 | ПО (ИСТИНА) | ЛЕВОЕ СОЕДИНЕНИЕ Цифры КАК Н3 | ПО (ИСТИНА) |; | |//////////////////////////////////////////////////////////////////////////////// |ВЫБРАТЬ | "+ИмяВт+"."+ИмяКолонки+" + &Разделитель КАК Текст, | "+ИмяВт+"."+ИмяКолонки+" КАК ПервоначальныйТекст |ПОМЕСТИТЬ Строка |ИЗ "+ИмяВт+"; | |//////////////////////////////////////////////////////////////////////////////// |ВЫБРАТЬ | ВЗ.ПервоначальныйТекст, | ПОДСТРОКА(ВЗ.Текст, ВЗ.Н + 1, ВЗ.К - ВЗ.Н - 1) КАК Элемент |ПОМЕСТИТЬ РазделенныеСтроки |ИЗ | (ВЫБРАТЬ | Номера.Номер КАК Н, | МИНИМУМ(Н.Номер) КАК К, | МАКСИМУМ(Н.Номер) КАК Макс, | Строка.Текст КАК Текст, | Строка.ПервоначальныйТекст КАК ПервоначальныйТекст | ИЗ | Номера КАК Номера | ВНУТРЕННЕЕ СОЕДИНЕНИЕ Строка КАК Строка | ПО (ПОДСТРОКА(Строка.Текст, Номера.Номер, 1) ПОДОБНО ""["" + &Разделитель + ""]"" | ИЛИ Номера.Номер = 0) | ВНУТРЕННЕЕ СОЕДИНЕНИЕ Номера КАК Н | ПО (ПОДСТРОКА(Строка.Текст, Н.Номер, 1) ПОДОБНО ""["" + &Разделитель + ""]"") | И (Н.Номер > Номера.Номер) | | СГРУППИРОВАТЬ ПО | Номера.Номер, | Строка.Текст, | Строка.ПервоначальныйТекст) КАК ВЗ |; |УНИЧТОЖИТЬ Строка; |УНИЧТОЖИТЬ Цифры; |УНИЧТОЖИТЬ Номера; |ВЫБРАТЬ "+ИмяВт+".*, | РазделенныеСтроки.Элемент как "+ИмяКолонкиРез+" "+ ?(ТЗРез = Неопределено, "ПОМЕСТИТЬ "+ИмяВТРез, "")+" |ИЗ "+ИмяВт+" | ВНУТРЕННЕЕ СОЕДИНЕНИЕ РазделенныеСтроки | ПО "+ИмяВт+"."+ИмяКолонки+"=РазделенныеСтроки.ПервоначальныйТекст |; |УНИЧТОЖИТЬ РазделенныеСтроки;"; Запрос.УстановитьПараметр("Разделитель",Разделитель); /////здесь ошибка!!!! Если ТЗРез=Неопределено Тогда Запрос.Выполнить(); Иначе ТЗРез = Запрос.Выполнить().Выгрузить(); конецЕсли; Если Не ЕстьМВТ Тогда мвт.Закрыть(); конецЕсли; конецПроцедуры на строке Запрос.УстановитьПараметр("Разделитель",Разделитель); возникает ошибка усечения данных String or binary data would be truncated и 1С вылетает, даже не доходя до выполнения запроса. СУБД SQL Server 2005, 8.2.19.90, УПП, клиент-сервер, толстый клиент. На локальной файловой копии все работает нормально (что и неудивительно). Очень срочно нужна помощь! Подскажите, что нужно исправить. На форуме искала, похоже нужно ограничить длину к-либо выводимых полей или самого параметра? Параметр Разделитель с типом Строка, равен ",". |
|||
1
PVS_Mtl
03.07.15
✎
09:53
|
Вверх
|
|||
2
PVS_Mtl
03.07.15
✎
10:18
|
up
|
|||
3
Альбатрос
03.07.15
✎
10:24
|
Ну хз...
Попробовать без УстановитьПараметр()? Заменить в тексте &Разделитель на ","? |
|||
4
Господин ПЖ
03.07.15
✎
10:30
|
>СУБД SQL Server 2005
все апдейты и сервис-пуки стоят? |
|||
5
PVS_Mtl
03.07.15
✎
10:46
|
(4) 9.00.3042.00 x64 servise pack 1.
Если возможно, хотелось бы решить проблему, не трогая SQL Server |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |