Здравствуйте.
В 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
Заранее спасибо за помощь.
Нравится
Здравствуйте, Наталья!
Для того, чтобы добавить разделитель строки в 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С на стандартный для Вашей СУБД.