Перенос из 1С многострочного поля

Здравствуйте.

В 1С 7.7 я написала обработку переноса документа Договора в Terrasoft CRM 3.2.
Все отлично переносится, но есть одна проблема.

В договоре есть два поля, созданные администратором 1С: Договорные условия и Предмет договора. Оба они имеют тип Строка, флаги - Неограниченная длина и Многострочное поле.

В 1С информация в самом договоре выглядит так:

В поле Договорные условия такой текст:

1- 03.08.11- 10,40
2- 15.08.11- 20,40
3- 12.09.11- 30,20

В поле Предмет договора такой текст:
10,40 до 15.08.11
30,00 до 15.09.11
40,00 до 25.09.11
50,00 до 15.10.11

Оба текста бухгалтером вносятся с использованием Enter для перехода на новую строку

Эти два поля мне нужно одной строкой с использованием переноса строк перенести в Terrasoft в поле Memo таблицы Contracts.

Текст программы такой:

if (EmptyValue(sqOfferingContact) = 1) then
sqOfferingContact = TS.Services.GetNewItemByUSI("sq_Contact"); //Создание экземпляра запроса
endif;

if (EmptyValue(refOffering) = 1) then
refOffering = CreateObject("Document.Договор"); //1С Документ Договор
endif;

Memo = dsOffering.DataFields.ItemsByName("Memo");
Memo.Value = ("Договорные условия:"+(refOffering.ДоговорныеУсловия))+". "+РазделительСтроки+ "Предмет договора; "+(refOffering.ПредметДоговора)));

Вот как выглядит текст в Terrasoft в поле Memo документа Contracts после этого.

1- 03.08.11- 10,402- 15.08.11- 20,403- 12.09.11- 30,20 Предмет дог

Причем если попробовать пролистать строку курсором, то после подстроки "1- 03.08.11- 10,40" он не двигается дальше, а переходит на новую строку. Весь текст просмотреть невозможно.

Как перенести его средствами языка 1С без потери форматирования, т.е. в таком же виде как он записан в документе Договор 1С, т.е. выглядел в поле Memo вот так:

Договорные условия: 1- 03.08.11- 10,40
2- 15.08.11- 20,40
3- 12.09.11- 30,20.
Предмет договора: 10,40 до 15.08.11
30,00 до 15.09.11
40,00 до 25.09.11
50,00 до 15.10.11

Заранее спасибо за помощь.

Нравится

3 комментария

Здравствуйте, Наталья!

Для того, чтобы добавить разделитель строки в Terrasoft, используйте \r\n.

В результате программный код примет следующий вид:

Memo.Value = ("Договорные условия:"+(refOffering.ДоговорныеУсловия))+". "+"\r\n" + "Предмет договора; "+(refOffering.ПредметДоговора)));

Здравствуйте, Анна.

Строка

Memo.Value = ("Договорные условия:"+(refOffering.ДоговорныеУсловия))+". "+"\r\n" + "Предмет договора; "+(refOffering.ПредметДоговора)));

переносится в Terrasoft буквально как строка:

Договорные условия: 1- 03.08.11- 10,40 2- 15.08.11- 20,40 3- 12.09.11- 30,20.\r\nПредмет договора:

Если \r\n записать без кавычек, то 1С ругается. Потому, что такой функции в 1С нет.

Наталья, уточните, пожалуйста, код применяется в скрипте интеграции?

Еще один вариант переноса именно для 1С:

Симв(13)+Симв(10)

По сути, это аналог вышеописанной конструкции, только в формате для базы данных.

В случае, если это не поможет, необходимо будет делать замену переноса строки в 1С на стандартный для Вашей СУБД.

Показать все комментарии