|
v7: не работает функция ТекущийДокумент() 🠗 (aka AMIGO 14.08.2017 15:22) | ☑ | ||
---|---|---|---|---|
0
jeka_molodec
14.08.17
✎
14:18
|
написанная с 0 конфигурация. Из модуля документа, нужно получить его номер.
номерДок = ТекущийДокумент(); все. у меня эта же база стоит и номер выводится у клиента, на той же самой базе, выдает пустое место. Что за чушь? документ уже есть. он записан. почему не работает фунция там или работает у меня? может как то еще этот поганный номер можно получить. Смотрю в книгу вижу фигу. Ничего не понимаю, ничего не гуглится. |
|||
1
2S
14.08.17
✎
14:21
|
(0) отладчиком пользоваться умеете?
|
|||
2
2S
14.08.17
✎
14:23
|
номерДок = ТекущийДокумент();
вообще ересь какая-то. Док = СоздатьОбъект("Документ.ххх"); бла бла бла ТекДок = Док.ТекущийДокумент(); номерДок = ТекДок.НомерДок; |
|||
3
HawkEye
14.08.17
✎
14:26
|
(0) ТекущийДокумент() - работает ровно так как и должна...
не работает мозг человека создавшего эту тему... |
|||
4
jeka_molodec
14.08.17
✎
14:30
|
я не гигант мысли как hawkeye или как его там. Поэтому наверное оскорблять людей на пустом месте мне не по чину.
Я вот чего понять не могу. Почему на одной базе но разных компьютерах эта функция даем мне разный результат. Ладно бы документ был не создан, он есть. У него уже есть номер. И не показывает. Что это за ерунда? |
|||
5
aka AMIGO
14.08.17
✎
14:38
|
Если функция ТекущийДокумент() применена в модуле документа или журнала - она возвращает текущий документ
Если применено Док=СоздатьОбъект("Документ.ТвойДок") или Док=СоздатьОбъект("Документ") То нужно записывать Док.ТекущийДокумент() |
|||
6
Масянька
14.08.17
✎
14:39
|
(4) Из СП:
ТекущийДокумент() CurrentDocument() Синтаксис: ТекущийДокумент() Назначение: Возвращает значение позиционированного текущего документа. |
|||
7
DDwe
14.08.17
✎
14:40
|
(4) Значит база не одна или получаешь по разному. Думать нужно и как сказали отладчик пустить.
|
|||
8
aka AMIGO
14.08.17
✎
14:41
|
(4) Читай (6): Возвращает значение позиционированного текущего документа.
Значение документа, а не НомерДокумента |
|||
9
Масянька
14.08.17
✎
14:41
|
(7) Интересно глянуть, как все-таки ТекущийДокумент() возвращает номер...
|
|||
10
aka AMIGO
14.08.17
✎
14:43
|
(9) Так в чем-же дело - напиши темп-отчетик, и запусти отладчик :)
|
|||
11
1dvd
14.08.17
✎
14:43
|
У автора ошибка в личной карточке. Там написано, что он программист
|
|||
12
aka AMIGO
14.08.17
✎
14:44
|
(11) да ладно тебе :)
|
|||
13
jeka_molodec
14.08.17
✎
14:44
|
да в том то и дело. одна база, одно место. это настройки системы какие? вот что я понять не могу. Получается все ломается где то на преобразовании. Функция дает документ, при преобразовании дает текстовое поле с номером. во втором случае не дает. я получаю строго док.номерДок все работает.
если же просто сделать как я показал, в одном случае работает в другом нет |
|||
14
Масянька
14.08.17
✎
14:47
|
(13) "при преобразовании дает текстовое поле с номером. во втором случае не дает. " - покажи.
|
|||
15
aka AMIGO
14.08.17
✎
14:48
|
Это не настройки базы, а так написан твой код
Невесть как применен - вот невесть что и возвращает |
|||
16
1dvd
14.08.17
✎
14:48
|
(13)
номерДок = "" + ТекущийДокумент(); |
|||
17
oslokot
14.08.17
✎
14:49
|
(9) Пожалуйста.
//******************************************* Процедура Сформировать() НомерДок = ТекущийДокумент(); КонецПроцедуры //****************************************************************************** Функция ТекущийДокумент() Возврат 1; КонецФункции // ТекущийДокумент() |
|||
18
jeka_molodec
14.08.17
✎
14:49
|
просто мне нужно это печатать
номерДок = ТекущийДОкумент(); печатаю у себя норм в другом случае дает пробел вроде. Понятно что нужно конкретное поле выводить. Но у меня сработало, я применил. Вопрос, почему не срабатывает там. Какие такие отличия? |
|||
19
Масянька
14.08.17
✎
14:51
|
(17) И при чем тут номер док-та?
|
|||
20
2S
14.08.17
✎
14:51
|
(17) +1
|
|||
21
jeka_molodec
14.08.17
✎
14:55
|
в конце мне нужен он, тупо текстовое поле. Я беру, каюсь не аккуратно сразу пихаю на печать результат от ТекущийДокумент() и получаю 2 результата на одном месте кода. И малость не понимаю почему.
|
|||
22
aka AMIGO
14.08.17
✎
14:56
|
Тогда ТекущийДокумент().НомерДок
|
|||
23
jeka_molodec
14.08.17
✎
14:59
|
да текущийДок().номердок работает. я это понимаю. И так нужно было сделать сразу.
Я не понимаю почему в одном случае работает непосредственное преобразование в текстовое поле а в другом нет. Где это регламентируется? |
|||
24
jeka_molodec
14.08.17
✎
15:00
|
как то хочется получать один результат на 2*2, а не по огороду. Может это как то от системы зависит. У клиента хп у меня 7ка. Преобразование в текст. Вот в чем суть вопроса.
|
|||
25
aka AMIGO
14.08.17
✎
15:01
|
Функция пишется под конкретную идею. Неправильно применённая - работает неправильно.
Идея расписана в СП |
|||
26
2S
14.08.17
✎
15:02
|
(24) напишите правильный код и не ипите мозг
|
|||
27
jeka_molodec
14.08.17
✎
15:04
|
да написал. просто интересно чем руководствуется 1ска когда дает 2 результата на 1 вход
Это что то глобальное. Что, мне одному интересно? |
|||
28
1dvd
14.08.17
✎
15:05
|
(27) в одном случае 1с преобразует ссылку к строке (представление), в другом она не понимает к какому типу нужно преобразовать
|
|||
29
Злопчинский
14.08.17
✎
15:06
|
"дает текстовое поле с номером."
- в этом текстовом поле кроме номера еще может что-то быть. из фразы автора непонятно - в тестовом поле ТОЛЬКО номер документа или текстовое поле "С НОМЕРОМ" документа - это разные вещи... ибо если нужно вывести визуальное представление ТекущегоДокумента - то текстовое представление зависит от того какой нумератор назначен на документ или какую функцию написал программист |
|||
30
Злопчинский
14.08.17
✎
15:07
|
(21) "в конце мне нужен он, тупо текстовое поле. Я беру, каюсь не аккуратно сразу пихаю на печать результат от ТекущийДокумент() и получаю 2 результата на одном месте кода. И малость не понимаю почему."
- потому что ты не понимаешь что пишешь... |
|||
31
jeka_molodec
14.08.17
✎
15:08
|
запрашиваю номерДок = СокрЛП(Текущийдокумент());
выдает просто например 456788 номер документа. Ладно, если не интересно, мозг парить не буду. Все работает, но может у кого есть идеи. |
|||
32
Злопчинский
14.08.17
✎
15:09
|
(23) визуальное представление - ТО ЕСТЬ ТЕКСТОВОЕ представление ТекущийДокумент() - зависит от нумератора, назначенного на документ в конфигураторе (и возможно от того задан ли Синоним в конфигураторе)
|
|||
33
Злопчинский
14.08.17
✎
15:10
|
(31) выполни код
Сообщить(ТекущийДокумент()); Сообщить(ТекущийДокумент().НомерДок); Сообщить(СокрЛП(ТекущийДокумент())); |
|||
34
Базис
naïve
14.08.17
✎
15:12
|
Документ записан, или "ваша с1 не работает"?
|
|||
35
mishaPH
модератор
14.08.17
✎
15:13
|
чет я первый раз такое за все время работы с клюшками встречаю.
ТекущийДокумент() никогда номер дока не возвращает. он может вернуть представление дока тестом типа Поступление 00000 от 00.00.000. и что значит печатаешь. откуда? из формы дока или какой внешней обработки? |
|||
36
jeka_molodec
14.08.17
✎
15:14
|
документ, модуль документа
|
|||
37
jeka_molodec
14.08.17
✎
15:15
|
базы отличаются на 2 дня. место одно.
|
|||
38
mishaPH
модератор
14.08.17
✎
15:15
|
(36) (33) исполни
|
|||
39
jeka_molodec
14.08.17
✎
15:18
|
щас выполнить не смогу, клиент отключился(на проблемном компе
На моем компе данный код печатает 3 строки Оплата договора 1084169 1084169 Оплата договора 1084169 |
|||
40
jeka_molodec
14.08.17
✎
15:18
|
это про (31) выполни код
Сообщить(ТекущийДокумент()); Сообщить(ТекущийДокумент().НомерДок); Сообщить(СокрЛП(ТекущийДокумент())); |
|||
41
mishaPH
модератор
14.08.17
✎
15:19
|
(39) а на том
|
|||
42
aka AMIGO
14.08.17
✎
15:19
|
(39) что и требовалось..
|
|||
43
jeka_molodec
14.08.17
✎
15:20
|
попробую позже. у них там аврал, и так обругали. Просил то 2 минуты а просидел пол часа. Думал могет у кого идеи и так есть.
|
|||
44
HawkEye
14.08.17
✎
15:20
|
(4) почему на пустом... разве не ты создал тему: "не работает функция ТекущийДокумент()" ??
|
|||
45
aka AMIGO
14.08.17
✎
15:21
|
(43) тебе-ж в 40 постах сказали идею: измени код на правильный
|
|||
46
jeka_molodec
14.08.17
✎
15:23
|
согласен создал. но сразу то се. я думал всем будет интересно. А тут, сразу негатив.Да изменил я. Работает. на экране выводилось, на чеке номер печатает. Я хочу понять почему одно преобразование дает на 2х компах разный результат, чем это обусловлено. Если не интересно, сам потуплю. Просто идей нет.
|
|||
47
Ёпрст
14.08.17
✎
15:24
|
(18) зависит от периодичности номера. Если в пределах года - будет одно, если по всем данного вида, будет другое системное представление.
|
|||
48
HawkEye
14.08.17
✎
15:25
|
(46) ТекущийДокумент() - работает ровно так как и должна...
для ответа на твой вопрос, у тебя есть отладчик ну или минимум целый код, а не вырванные из контекста куски, этого вполне достаточно для нахождения ответа. |
|||
49
DDwe
14.08.17
✎
15:35
|
(48) Для этого думать нужно.
|
|||
50
HawkEye
14.08.17
✎
15:39
|
(49) ну это вообще никогда лишним не бывает......
|
|||
51
Злопчинский
14.08.17
✎
16:13
|
(50) в условиях толерантности и гейства - мозги становятся как у блондинок...
|
|||
52
HawkEye
14.08.17
✎
16:22
|
(51) у нас за МКАД-ом - с этим поспокойнее )))
|
|||
53
jeka_molodec
21.08.17
✎
12:42
|
В общем, 1с перестала выдавать вообще все. Скопировал каталог и залил обратно. И функция заработала. Просто у 1с прохудились мозги. Все копии которые с нее делались - работали. Интересно, сдохла так что работала но не правильно работала конкретная функция.
Скопировал, загрузил файлы обратно(даже без тестирования-исправления) переиндексация - и все поперло. Жаль, поторопился, ошибка уже ушла, теперь уже не понять где что не адекватно работало. |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |