Имя: Пароль:
1C
1C 7.7
v7: Нет валюты после подбора
0 Масянька
 
05.12.18
08:28
Доброе утро!
Имеем: ТиС 932 (платформа 27).
Практически стандартный док-т "Чек ККМ".
На форме док-та есть текстовое поле. У него формула - Валюта.ПолнНаименование.
После подбора вылазит сообщение "Значение не представляет агрегатный объект (ПолнНаименование)".
Если делать через добавление строки в ТЧ - норм.
После подбора валюта есть:
Процедура ОбработкаПодбора(ВыбЗнач, КонтФормыПодбора)
Сообщить("3 - " + Валюта);    
    // нет ставок налогов, есть скидка
    глОбработкаПодбора(Контекст, ВыбЗнач, УчитыватьНДС, 0, 1);
    
    ВыбратьСтроки();
    Пока ПолучитьСтроку() = 1 Цикл
        ШтрихКод = Единица.ШтрихКод; // прописываем штрих - код
    КонецЦикла;
Сообщить("4 - " + Валюта);    
    
КонецПроцедуры // ОбработкаПодбора()

Где (и главное почему!) теряется валюта?
Спасибо.
1 dk
 
05.12.18
08:51
может переменная где-то объявлена Валюта
в документе или прямо в глобальнике
2 dk
 
05.12.18
08:51
ну и отладчик - наш друг и товарищ
3 Масянька
 
05.12.18
08:54
(1) После подбора (см. Обработка...) - валюта есть (выводит).
Поиск по док-ту - нет.
4 Convert
 
05.12.18
08:55
(0) а в Сообщить("4 - " + Валюта);
что выводит?
5 Convert
 
05.12.18
08:58
(0) Валюта это же реквизит шапки документа. Смотри в глОбработкаПодбора. Может там конт.Валюта= чему-нибудь непотребному
6 Масянька
 
05.12.18
09:01
(4)
4 - руб.
Значение не представляет агрегатный объект (ПолнНаименование)
(5) Эта глОбработка используется во всех док-ах (где есть подбор) - везде норм. Ну, и после глОбработка - есть же валюта...
Я не могу понять - где теряется?
7 Convert
 
05.12.18
09:06
(6) А ты уверена, что именно эта формула ошибку дает? Поменяй ее на ТекстВалюты(Валюта) и заведи функцию
Функцуия ТекстВалюты(Вал)
    
    Возврат ?(ПустоеЗначение(вал)=0,Вал.ПолнНаименование,"нет валюты");
    
КонецФункции
8 Масянька
 
05.12.18
09:07
(7) В надписи (на форме): сделала идентификатор, формулу убрала. В ОбновитьНадписи() добавила: Форма.ТекстВалюты.Заголовок(Валюта.ПолнНаименование);
Ошибки нет.
В чем разница?
9 dk
 
05.12.18
09:08
так что там с отладчиком?
10 dk
 
05.12.18
09:10
"Просто не учи физику в школе, и вся твоя жизнь будет наполнена чудесами и волшебством"
------
у прогеров есть отладчик, без него тоже сплошные чудеса и мистика
11 Масянька
 
05.12.18
09:11
12 Масянька
 
05.12.18
09:13
Получается, что напрямую (текстовое поле) с реквизитом не работает. Бред же...
13 Convert
 
05.12.18
09:14
(12) Работает. Просто у тебя в какой-то момент валюта становится пустой, а потом опять присваивается ей рубль. Формула срабатывает в тот момент, когда валюта не заполнена. А ты когда завела реквизит и обновила надписи, то валюта уже заполнена
14 Масянька
 
05.12.18
09:16
(13) Сама знаю, что работает.
Где валюта?!
15 Convert
 
05.12.18
09:17
(12) Поэтому делай функцию как в (7) и ее пихай в формулу. Либо ищи, где валюта становится пустой
16 Карст
 
05.12.18
09:17
есть нюансы когда реквизит внедрен в конфигурацию например чем нибудь не совсем штатным , Gcomp ом например, и внедрен не совсем прямо
17 dk
 
05.12.18
09:18
есть еще одна мистическая магия в отладчике - называется замер производительности
но автору нужна магия, а не решение
18 Масянька
 
05.12.18
09:18
(15) Это понятно... Но интересно же...
19 dedmoroz777
 
05.12.18
09:19
Ищи в модуле "Перем Валюта;"
20 Масянька
 
05.12.18
09:19
(16) Нет. Gcomp - однозначно отпадает.
Не совсем прямо - вопрос... Не помню - дописывала этот реквизит или он стандарт.
21 Масянька
 
05.12.18
09:20
(19) Нет такого. Ни в переменных, ни в процедурах/функциях.
22 Масянька
 
05.12.18
09:21
+ (21) Есть ВалютаЦены в ПриИзмененииНоменклатуры.
23 Карст
 
05.12.18
09:21
через шаблон например тоже могли
24 Convert
 
05.12.18
09:22
(21) Не знаю как в новых, раньше стандартный реквизит шапки документа был, поэтому никаких перем Валюта быть и не должно
25 Карст
 
05.12.18
09:23
ну ващет ранее был глобальный реквизит так сказать общий
26 dedmoroz777
 
05.12.18
09:23
(24) Не должно. Но такое поведение - это однозначно смена переменной. Может глОбработкаПодбора меняет.
27 Масянька
 
05.12.18
09:24
(25) В глобальнике нет.
28 Масянька
 
05.12.18
09:25
(26) Такого же мнения. Но после подбора есть же (выводит).
29 Карст
 
05.12.18
09:25
общего реквизита нету ?

http://dml.compkaluga.ru/forum/index.php?showtopic=35958

посмотри как можно
30 Масянька
 
05.12.18
09:30
(29) Прикольно...
Нет. Общего нету.
31 Масянька
 
05.12.18
09:30
И если это поле убрать - ошибки нет.
32 Convert
 
05.12.18
09:32
(31) Если тебе так интересно где именно он очищается, то сделай уже как я сказал и поставь в этой функции точку останова, как только выловишь пустую валюту - пойдешь шагать отладчиком и увидишь в какой момент она становится пустой
33 Карст
 
05.12.18
09:33
в закладке дополнительно нигде ничо нету ? или в текстовых полях на форме ?
ЗЫ может поле на форме за пределами видимости
34 Масянька
 
05.12.18
09:42
(33) Нету. Говорю же - если это убрать (совсем) ошибки нет.
35 Масянька
 
05.12.18
09:55
(32) Функция глФРМ(ЧислЗнач, Валюта="", ВыводНулевого="0", РаздТриад=" ") Экспорт, которую вызывает Функция глСтрокаСкидки(Конт, РаздТриад = "'") Экспорт, которая сидит в формуле поля "Скидка" ТЧ.
В принципе - логично... Чеки в валюте у нас никогда нельзя было бить...
36 Масянька
 
05.12.18
10:04
Мужики! Спасибо!
37 Convert
 
05.12.18
10:13
(36) Да незачто)
Я не хочу быть самым богатым человеком на кладбище. Засыпать с чувством, что за день я сделал какую-нибудь потрясающую вещь — вот что меня интересует. Стив Джобс