|
Правила обмена | ☑ | ||
---|---|---|---|---|
0
an_str
21.08.13
✎
15:38
|
Имеем следующие правила:
<ПослеЗагрузки> Объект.Номер = ДобавитьКПрефиксу(Объект.Номер, Объект.Организация.Префикс, 9, "Слева"); </ПослеЗагрузки> <СинхронизироватьПоИдентификатору>true</СинхронизироватьПоИдентификатору> <Источник>ДокументСсылка.СчетНаОплатуПокупателю</Источник> <Приемник>ДокументСсылка.ИсходящиеСчета</Приемник> <Свойства> <Свойство Поиск="true"> <Код>1</Код> <Наименование>Номер --> Номер</Наименование> <Порядок>50</Порядок> <Источник Имя="Номер" Вид="Свойство" Тип="Строка"/> <Приемник Имя="Номер" Вид="Свойство" Тип="Строка"/> <ПриводитьКДлине>9</ПриводитьКДлине> </Свойство> ...... Когда номер в источнике, к примеру, 00000000065 то выгружается в базу приемник хорошо и номер становится С00000065. А вот когда в источнике 0000000065/1, то к нам загружается тоже с номером С00000065. Как это поправить? чтобы загружалось С000065/1...Спасибо за любые подсказки... |
|||
1
Euguln
21.08.13
✎
15:51
|
цифра 9 не наводит на мысль, что ....?
|
|||
2
EugeniaK
21.08.13
✎
15:53
|
(0) Смотри, что делает ДобавитьКПрефиксу()
|
|||
3
an_str
21.08.13
✎
15:54
|
понятно,что он из 11 значного номера приводит к 9-значному. И в базу куда я гружу у документа длина номера 9. Я первый раз с обменом столкнулась, где нужно поправить, чтобы вместе со слешом перегружалось?
|
|||
4
an_str
21.08.13
✎
15:56
|
(2)Функция ДобавитьКПрефиксу(Знач Стр, Добавок = "", Длина = "", Режим = "Слева") Экспорт
Стр = СокрЛП(Формат(Стр,"ЧГ=0")); Если ПустаяСтрока(Длина) Тогда Длина = СтрДлина(Стр); КонецЕсли; ЧисловаяЧасть = ""; Префикс = ПолучитьПрефиксЧислоНомера(Стр, ЧисловаяЧасть); Если Режим = "Слева" Тогда Результат = СокрЛП(Добавок) + Префикс; Иначе Результат = Префикс + СокрЛП(Добавок); КонецЕсли; Пока Длина - СтрДлина(Результат) - СтрДлина(Формат(ЧисловаяЧасть, "ЧГ=0")) > 0 Цикл Результат = Результат + "0"; КонецЦикла; Результат = Результат + Формат(ЧисловаяЧасть, "ЧГ=0"); Возврат Результат; КонецФункции // ДобавитьКПрефиксу() к ней на вход уже поступает номер без слеша, т.е. в моем примере 000000065 |
|||
5
hhhh
21.08.13
✎
15:56
|
(3) пару нулей убирайте
|
|||
6
Euguln
21.08.13
✎
15:56
|
(3) Перед выгрузкой обрезать левые нули до нужной длины
|
|||
7
Euguln
21.08.13
✎
15:57
|
(6) + или перед загрузкой
|
|||
8
an_str
21.08.13
✎
16:01
|
(7) Т.е. должен быть некий кусок кода перед выше указанным, что-то вроде:
<ПередЗагрузкой> .... </ПередЗагрузкой> ? не могли бы вы привести пример |
|||
9
Tateossian
21.08.13
✎
16:01
|
(4) Вот там ПолучитьПрефиксЧислоНомера поменяй на выходе количество нулей.
|
|||
10
Euguln
21.08.13
✎
16:03
|
(9) не поможет, в объекте номер уже длиной 9
(8) пример чего? кода для удаления нулей или пример правила? |
|||
11
an_str
21.08.13
✎
16:05
|
(9) не поможет, на вход уже без слеша подается
|
|||
12
an_str
21.08.13
✎
16:08
|
(10) фух, было бы замечательно и кода и правила...первый раз как-то уж очень тяжело обмен дается((( ...Не совсем пойму как обратиться в "ПередЗагрузкой" к старому номеру
|
|||
13
Tateossian
21.08.13
✎
16:12
|
(12) В Алгоритмах напиши свою функцию парсинга номера; она должна действовать во всех обработчиках, вот и вызывай ее ПослеЗагрузки (10) Да, ты прав, я невнимателен.
|
|||
14
Euguln
21.08.13
✎
16:13
|
(10) Ты хоть через КД работаешь?
|
|||
15
an_str
21.08.13
✎
16:22
|
(14) честно говоря, знаю, то надо через КД...но ее ни разу в жизни не открывала, а надо срочно...сейчас напрямую в макете смотрю. знаю, что неправильно...грызть мне еще 1с и грызть
|
|||
16
Euguln
21.08.13
✎
16:26
|
(15) Дольше проковыряешься в макете, грузи в КД
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |