Имя: Пароль:
1C
1С v8
Функция пребразования номера документа в поле таблицы запроса
,
0 Мимохожий Однако
 
08.08.13
09:07
Есть функция преобразования номера при печати документа.
Функция ВернутьНомер(НомерДок,ДатаДок)
    ММ = Формат(Месяц(ДатаДок),"ЧЦ=2; ЧВН=");
    ДД = Формат(День(ДатаДок),"ЧЦ=2; ЧВН=");
        Возврат ""+ММ+ДД+НН;
    НН = Прав(НомерДок,3);
КонецФункции
..
Можно ли сделать аналог этой функции для получения в поле таблицы в запросе?
Пока только получилось следующее:
...
МЕСЯЦ(СчетаФактурыДокументы.ДатаСчетаФактуры) + ДЕНЬ(СчетаФактурыДокументы.ДатаСчетаФактуры)
...
Добавить Прав(НомерДок,3) не получилось.
Может быть, я зря затеял это дело?
1 Мимохожий Однако
 
08.08.13
09:07
Опечатка:
Функция ВернутьНомер(НомерДок,ДатаДок)
     ММ = Формат(Месяц(ДатаДок),"ЧЦ=2; ЧВН=");
    ДД = Формат(День(ДатаДок),"ЧЦ=2; ЧВН=");
    НН = Прав(НомерДок,3);
Возврат ""+ММ+ДД+НН;
КонецФункции
2 Starhan
 
08.08.13
09:09
Добавить Прав(НомерДок,3)
попробуй
Вырзить(НомерДок как Строка(3))
3 George Wheels
 
08.08.13
09:12
ПОДСТРОКА
4 Ёпрст
 
08.08.13
09:12
(0) можно
5 Ёпрст
 
08.08.13
09:15
6 Serg_1960
 
08.08.13
09:16
Можно, но не нужно.
7 Мимохожий Однако
 
08.08.13
09:19
(3)Подстрока позволяет выполнить Сред(,,), т.к в параметрах есть начальная позиция и количество символов. Хотя..
Длина номера = 12 значит можно начальную позицию определить как 12 - 3 = 9. Надо попробовать.
(6)Конструктивно ).
8 George Wheels
 
08.08.13
09:20
(7) Если длина номера разная (странно), то сначала ВЫРАЗИТЬ.
9 Serg_1960
 
08.08.13
09:21
(6) + ежели кто не внимательный, то поясняю: автор желает получить результат "число + число + подстрока". В пятницу ветку :)

"Можно", если номер документа - числовой. "Не нужно", если номер документа - символьный.
10 программистище
 
08.08.13
09:24
ставлю на то, что у него не получится
11 Мимохожий Однако
 
08.08.13
09:24
(9)У тебя всегда есть возможность апнуть эту ветку в пятницу.
Поясню параметры ДатаДок, НомерДок уже строковые на входе.
12 Мимохожий Однако
 
08.08.13
09:25
(10)Не получится и ладно. Найдем другие варианты )
13 Serg_1960
 
08.08.13
09:25
(7) Можно и конструктивно.
Насколько я понял, ты хочешь убрать префикс из номера документа, оставив только числовую часть. Это задача несколько сложнее, чем просто Прав(х,3)
14 Serg_1960
 
08.08.13
09:33
(11) Да понял я, понял. Не тупой. Чего тут не понятного. Вероятно перенумерация бухгалтерских документов? И скорее всего - кассовые или счет-фактуры. Плавали - знаем :)

Типа, было "№ ХХ-12345 от 08.07.2013", нужно - "070812345". Так?
15 Мимохожий Однако
 
08.08.13
09:34
(13)Натолкнулся у клиентов на изменения в конфигурации. У счетов-фактур выданных сделали нумерацию в пределах дня. Теперь у них проблема со стандартной книгой продаж. Надо в нее воткнуть механизм, реализованный функцией преобразования номера при печати.
16 Мимохожий Однако
 
08.08.13
09:35
=(15) Т.е. число месяца, число дня, три цифры номера счет-фактуры
17 Serg_1960
 
08.08.13
09:47
ЧислоСтрокой = "0001020304050607080910111213141516171819202122232425262728293031";
...
|    ПОДСТРОКА(&ЧислоСтрокой, МЕСЯЦ(Дата) * 2 + 1, 2) +
|    ПОДСТРОКА(&ЧислоСтрокой, ДЕНЬ(Дата) * 2 + 1, 2) +
|    ПОДСТРОКА(Номер, 4, 3) КАК НомерСчетФактуры
...
18 Мимохожий Однако
 
08.08.13
10:01
(17)Спасибо.