|
Пропуск незаполненного значения | ☑ | ||
---|---|---|---|---|
0
noooobok
16.06.15
✎
16:41
|
Здравствуйте! 1с 8.2 упп
Есть докумет с макетом. В модуле объекта строка кода "ВсеДокументы = Строка(ВсеДокументы) + Строка(СтрокаДок.РасходнаяНакладная.Номер) + ", " + Строка(СтрокаДок.РасходнаяНакладная.ДокументРТУ.Номер) + ", " ;" дает такой результат: ТН по форме ТОРГ-12: 000295, , 000296, , 000297, , 000298, , 000299, ХЛБ00000026, 000300, ХЛБ00000027, 000301, ХЛБ00000028, 000302, , 000303, , 000304, ХЛБ00000029, 000305, ХЛБ00000030, 000306, ХЛБ00000031, 000307, , Суть в следующем: Есть документы РН(расх накладная) и РТУ(реализация товаров и услуг). РТУ в свою очередь является реквизитом РН. Что требуется вывести в итоге: если значение РТУ не заполнено, то в макете предоставляется номер РН, иначе выводится номер РТУ. По сути почти получилось :) Пробовал пофиксить так: Если ЗначениеЗаполнено(СтрокаДок.РасходнаяНакладная.ДокументРТУ.Номер) Тогда ВсеДокументы = Строка(ВсеДокументы)+ Строка(СтрокаДок.РасходнаяНакладная.ДокументРТУ.Номер) + ", "; Иначе ВсеДокументы = Строка(ВсеДокументы)+ Строка(СтрокаДок.РасходнаяНакладная.Номер) + ", "; КонецЕсли; но на выходе лишняя инфа появляется. Видимо не совсем корректно задал условие в КОГДА .... ИНАЧЕ. Подкиньте идею как допилить это, спасибо. |
|||
1
noooobok
16.06.15
✎
16:50
|
Доп. инфо: в результате на выходе
ТН по форме ТОРГ-12: 000295, , 000296, , 000297, , 000298, , 000299, ХЛБ00000026, 000300, ХЛБ00000027, 000301, ХЛБ00000028, 000302, , 000303, , 000304, ХЛБ00000029, 000305, ХЛБ00000030, 000306, ХЛБ00000031, 000307, , значения вида 000295 - это рн, ХЛБ00000026 - это рту |
|||
2
Stepankov Sergei
16.06.15
✎
16:58
|
А чем первый результат от второго отличается? те же пробелы... Их нужно убрать?
|
|||
3
Dmitriy_76
16.06.15
✎
17:02
|
сокрЛП() юзай
|
|||
4
bootini
16.06.15
✎
17:03
|
(0)СтрокаДок.РасходнаяНакладная пустая тоже
|
|||
5
noooobok
16.06.15
✎
17:03
|
Видимо криво объяснил.
из моего примера 000299, ХЛБ00000026. 000299 это номер РН. ХЛБ00000026 это номер РТУ. Если есть РТУ, то только он один должен выводиться. РН в данном случае не должен. В идеале должно быть так: ТН по форме ТОРГ-12: 000295,000296, 000297, 000298, ХЛБ00000026, ХЛБ00000027, ХЛБ00000028, 000302, 000303, ХЛБ00000029, ХЛБ00000030, ХЛБ00000031, 000307 |
|||
6
Dmitriy_76
16.06.15
✎
17:08
|
(5)
?(значениеЗаполнено(НомерРТУ),НомерРТУ,НомерРН) |
|||
7
bootini
16.06.15
✎
17:25
|
Если ЗначениеЗаполнено(СтрокаДок.РасходнаяНакладная.ДокументРТУ.Номер) Тогда
ВсеДокументы = Строка(ВсеДокументы)+ Строка(СтрокаДок.РасходнаяНакладная.ДокументРТУ.Номер) + ", "; ИначеЕсли ЗначениеЗаполнено(СтрокаДок.РасходнаяНакладная.Номер) Тогда ВсеДокументы = Строка(ВсеДокументы)+ Строка(СтрокаДок.РасходнаяНакладная.Номер) + ", "; иначе КонецЕсли; |
|||
8
noooobok
17.06.15
✎
08:04
|
(7)
результат такой: ТН по форме ТОРГ-12: 000295, , 000295, 000296, , 000296, 000297, , 000297, 000298, , 000298, 000299, ХЛБ00000026, ХЛБ00000026, 000300, ХЛБ00000027, ХЛБ00000027, 000301, ХЛБ00000028, ХЛБ00000028, 000302, , 000302, 000303, , 000303, 000304, ХЛБ00000029, ХЛБ00000029, 000305, ХЛБ00000030, ХЛБ00000030, 000306, ХЛБ00000031, ХЛБ00000031, 000307, , 000307, дублей еще больше |
|||
9
noooobok
17.06.15
✎
08:10
|
Пардон, (7) код рабочий. Косяк из-за моей невнимательности.
Спасибо, кто откликнулся! |
|||
10
Stepankov Sergei
17.06.15
✎
08:12
|
(6) и (7) соответствует условиям в (5)... Похоже в другом месте ошибка. Покажи больше кода.
|
|||
11
noooobok
17.06.15
✎
08:16
|
Пока в теме есть народ задам еще вопрос:
можно ли выкинуть из имени часть символов? например, ХЛБ00000029 будет выводиться как 000029. 4 левых символа убрать |
|||
12
Mankubus
17.06.15
✎
08:18
|
(11) Синтаксис:
Прав(<Строка>, <ЧислоСимволов>) Параметры: <Строка> (обязательный) Тип: Строка. Исходная строка. <ЧислоСимволов> (обязательный) Тип: Число. Количество выбираемых символов. Возвращаемое значение: Тип: Строка. Строка выбранных символов. Описание: Выбирает последние справа символы строки. Доступность: Тонкий клиент, веб-клиент, сервер, толстый клиент, внешнее соединение. Пример: // Пусть номер автомобиля в справочнике основных средств задается // в виде х999хх99, где последние две цифры - код региона. // Получим код региона из номера. КодРегиона = Прав(ОсновноеСредство.ГосНомер, 2); |
|||
13
Jokero
17.06.15
✎
08:21
|
Если номер содержит кучу пробелов, то ЗначениеЗаполнено(Номер) выдаст истину. isnt it
|
|||
14
GenAcid
17.06.15
✎
08:40
|
(13) No. It is not.
СП: Для значений типа Строка возвращается Истина, если в строке есть не пробельные символы. |
|||
15
noooobok
17.06.15
✎
08:50
|
(12) спасибо.
рабочий вариант выглядит так: //новый номер РТУ (без приставки ХЛБ) НомерРТУ = Прав(СтрокаДок.РасходнаяНакладная.ДокументРТУ.Номер, 6); Если ЗначениеЗаполнено(СтрокаДок.РасходнаяНакладная.ДокументРТУ.Номер) Тогда ВсеДокументы = Строка(ВсеДокументы)+ Строка(НомерРТУ) + ", "; ИначеЕсли ЗначениеЗаполнено(СтрокаДок.РасходнаяНакладная.Номер) Тогда ВсеДокументы = Строка(ВсеДокументы)+ Строка(СтрокаДок.РасходнаяНакладная.Номер) + ", "; КонецЕсли; wp guys |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |