Умножение строковых...

  • Автор темы bremlin
  • Дата начала
B

bremlin

#1
Доброго времени суток. Возникла необходимость в одном документе выводить еще одну секцию, и чтоб она выводилась при условии:
Если (Формат(СальдоКонец,"Ч-15.2.,") > Формат(ИтогоСуммаПоСчету,"Ч-15.2.,"))*2
Но выдает ошибку "Операция умножения не определена для строковых величин".
Я если честно, думал что "Формат()" эту проблему решит, но не вышло. Помогите пажалста кто может.
 

KiR

НЕ шибка опытный програмер)
11.09.2007
1 581
0
#2
а формат и не должен эту проблему решать! я бы написал так:
Если Число(СальдоКонец) > Число(ИтогоСуммаПоСчету)*2
или еще проще
Если СальдоКонец > (ИтогоСуммаПоСчету*2)
хотя смотря какой тип имеют переменные СальдоКонец и ИтогоСуммаПоСчету
 
B

bremlin

#3
Тут конечно будет немного не в тему, но по тому же документу просто:rolleyes:
Есть скажем дата документа
[Формат(ДатаКвитанции,"ДДДДММММГГГГ")]
А как добавить автоматом в документ дату?:
10(число).Следующего месяца.год
Т.е. число должно быть константой.
 

KiR

НЕ шибка опытный програмер)
11.09.2007
1 581
0
#4
так.. один из нас чего-то не понимает
функция формат - определяет в каком виде будет отображатся значение переменной (в твоем случае ДатаКвитанции). если тебе нужно чтобы дата была всегда 10е, а месяц и год выбирался - одно дело, а если тебе сразу в доке нужно проставить текущую либо какую другую дату - другое дело. вообщем сформируй понятно свой вопрос и напиши платформу
 
B

bremlin

#5
7.7 Бух
Нужно чтоб при формировании таблицы, в одной ячейке высчитывалось 25 число текущего месяца, а в другой 10 число следующего месяца.
 

KiR

НЕ шибка опытный програмер)
11.09.2007
1 581
0
#6
А что значит - высчитывалось? Есть ли какая-то входящая дата? От чего считаться должно?
 
B

bremlin

#7
Есть ТекущаяДата. ТекущаяДата() #Д ММММГГГГ вот например. Выдает Ноябрь 2008г. Мне нужно чтоб в одной ячейке было 25 Ноября 2008г., а в другой 10 Декабря 2008г.

А в последующие месяцы, чтобы название месяца само собой менялись.
 

vbs

Well-known member
18.02.2007
1 708
1
#8
Вряд ли это оптимально, но работать будет 100% !
WorkDate = WorkingDate();
Для 25 числа текущего месяца
D = "25";
WDate = Date(D +"."+String(GetMonth(WorkDate))+"."+String(GetYear(WorkDate)));

Для 10 числа следующего месяца
D = "10";
WDate = Date(D +"."+String(GetMonth(WorkDate)+1)+"."+String(GetYear(WorkDate)));

Соответственно дата на печати -
DateToPrint = Format(WDate,"D DDMMMMYYYY");

Да, для декабря чуть изменить алгоритм - сам справишься, надеюсь
 
B

bremlin

#9
Вот очень большое спасибо Vbs! :( Жаль только нельзя проверить с другими месяцами, при смене месяца в винде ручкам, 1С вообще не выводит дату:) А если менять в биосе, то при заходе в винду дата снова меняется. Так что проверим на деле в будущем.

И еще один вопрос.
Можно ли как-нибудь сделать проверку на условие если в текущей строке нет определенного слова?
Например строки:
"АААА ББББ ХХХХ ВВВВ"
"ГГГГ ДДДД ЕЕЕЕ"
"тыртыр"
"бырбыр ХХХХ"

И вывести строку если в ней нет "ХХХХ"
Нужно просто добавить еще одно условие к существующему:
Если (Число(СальдоКонец) > (Число(ИтогоСуммаПоСчету))*2) Тогда
Таб.ВывестиСекцию("Уведомление")
КонецЕсли;
 

KiR

НЕ шибка опытный програмер)
11.09.2007
1 581
0
#10
Можно. только знаешь в чем тебе нужно эту строчку искать? там, в каком поле справочника или документа?
 

vbs

Well-known member
18.02.2007
1 708
1
#11
if Find(СтрокаДляПоиска,СтрокаПоиска) = 0 then - не подходит разве ?
 

KiR

НЕ шибка опытный програмер)
11.09.2007
1 581
0
#12
Ему видимо нужно так:
Если (Число(СальдоКонец) > (Число(ИтогоСуммаПоСчету))*2) И Найти(СтрокаДляПоиска,СтрокаПоиска) = 0 Тогда
Таб.ВывестиСекцию("Уведомление")
КонецЕсли;