Имя: Пароль:
1C
1C 7.7
v7: Значение переменной в строку
,
0 Mafiozaa
 
26.10.20
07:32
Привет, есть нужда глобальную переменную перевести в строку
Делаю как всегда вот так Строка(Переменная) = выдает ошибку
Но если значение переменной вгоняю руками то есть Параметр = "Значение переменной"  все получается
думал пробелы, СокрЛП не помощник
1 Chameleon1980
 
26.10.20
07:42
а что отладчик говорит про переменную?
2 Mafiozaa
 
26.10.20
07:46
(1) Ничего,он ее переводит, просто затем она не может уйти, я пытаюсь отправить код маркировки записанный в переменную
Объект.GTIN = GTIN;
Объект.SerialNumber = SerialNumber;
Так ругается на GTIN (неверный)
Объект.GTIN = Строка(GTIN);
Объект.SerialNumber = Строка(SerialNumber);
Так ругается на тот же гтин, но если пишу так
Объект.GTIN = "sdfgklsd";
Объект.SerialNumber = "dsfgsdlg";
То все проходит как нужно
3 unbred
 
26.10.20
07:48
ну посмотри в отладчике, что там у тебя лежит в Строка(GTIN) . может там НЕОПРЕДЕЛЕНО
4 unbred
 
26.10.20
07:50
и что значит "неверный"?
он же не говорит, что объект не найден?
может там число должно быть, а ты его в строку загоняешь.
5 unbred
 
26.10.20
07:51
или проверка на контрольную сумму  стоит.
6 Mafiozaa
 
26.10.20
07:52
(4) Возможно, попробую в число перевести, затестю отпишу
7 Chameleon1980
 
26.10.20
07:55
(2) ещё раз. что отладчик говорит о том что у тебя в переменной?
8 Bigbro
 
26.10.20
07:56
может код длиннее чем строка в объекте?
9 Kigo_Kigo
 
26.10.20
08:14
(0) Все бьешься, сча торг точка откроется тоже буду пробовать, яж говорю передай в обработку полный код и обрабатывай

  Объект.FNOperation();
Если ПустоеЗначение(СокрЛП(СписокТоваров.Маркировка)) = 0 Тогда
            КМ = СокрЛП(СписокТоваров.Маркировка);
            GTIN = Сред(КМ, 3, 14);                            
            SerialNumber = Сред(КМ, 19, 13);
            
            Объект.Пароль = Пароль;  
            Объект.MarkingType         = 1748//  Это "444D"    


            Объект.GTIN             = GTIN;
            Объект.SerialNumber     = SerialNumber;
          
            Объект.FNSendItemCodeData()// отправка тега маркировки


        КонецЕсли;
10 Mafiozaa
 
26.10.20
08:29
(9) Так не на что не ругается, но и код не выбывает
11 Kigo_Kigo
 
26.10.20
08:49
(10) Я еще проверял, но в  теме Не уходит код маркировки в офд
нужен вот такой порядок
Объект.FNOperation();
Если ПустоеЗначение(СокрЛП(СписокТоваров.Маркировка)) = 0 Тогда
12 Kigo_Kigo
 
26.10.20
08:49
У меня точка в 11.00 по МСК откроется, буду пробовать
13 Bigbro
 
26.10.20
08:51
прошел час. значение переменной так и не показали..
14 Mafiozaa
 
26.10.20
09:01
(13) Да точка работает, не всегда получается сразу все опробывать, щас окошко будет сразу же все варианты проверю
15 Mafiozaa
 
26.10.20
09:11
(11) Я поменял Объект.Sale на FNOperation и все пошло
16 Mafiozaa
 
26.10.20
09:13
(13) Число(GTIN) = 02900002369885 - корректно
     Строка(SerialNumber) = r3OQPUGcOPFC/ (Ругает)
17 Mafiozaa
 
26.10.20
09:15
(16) По руководству надо передавать все строкой, но строка(Gtin) не делает то что нужно
18 Mafiozaa
 
26.10.20
09:16
(3) А как может лежать в Строка(Gtin) не определенно? если я не явную переменную загоняю в строку?
19 Mafiozaa
 
26.10.20
09:42
Строка(GTIN)  = "02900002369885"
Строка(SerialNumber) = "r3OQPUGcOPFC/" (13) (12) (7) (3)
Отладчик сказал
20 Bigbro
 
26.10.20
09:49
ну и ?
длина строки реквизита GTIN у объекта?
21 Fedor-1971
 
26.10.20
09:58
(20) Тупо обрежет до нужного размера

(19) ты проверяй не Строка(SerialNumber), а сам SerialNumber, может там нечто, что в строку не преобразовывается? Например, какой нить СОМ объект
22 Злопчинский
 
26.10.20
10:02
(21) скорее всего. ни разу не встречал чтобы объект родной базы нельзя было в строку преобразовать...
23 Злопчинский
 
26.10.20
10:03
ТипЗначенияСтр(GTIN) - ?
ТипЗначенияСтр(SerialNumber) - ?
24 Kigo_Kigo
 
26.10.20
10:16
(19) Пробуй не в строку преобразовать и тупо
СокрЛП(GTIN)
СокрЛП(SerialNumber)
25 HawkEye
 
26.10.20
11:17
(0) может имеет смысл показать весь код? )))
26 Mikeware
 
26.10.20
11:26
Ошибка там же, где и всегда....
27 Kigo_Kigo
 
26.10.20
16:03
Ну что срослось?
28 Сияющий Асинхраль
 
26.10.20
16:49
Попробуй так:
Объект.GTIN = "" + GTIN;
29 Злопчинский
 
27.10.20
01:50
(27) застрелился, наверное...
30 Mafiozaa
 
27.10.20
01:57
(21) Какой может быть com объект, когда там хранится обычный текст,даже не объект какой то, просто текст
32 Провинциальный 1сник
 
27.10.20
02:58
(30) Что по поводу (23) скажете?
33 Mafiozaa
 
27.10.20
03:03
(32)
Строка
Строка
34 Mafiozaa
 
27.10.20
03:03
(32)
Сообщить(ТипЗначенияСтр(GTIN));
Сообщить(ТипЗначенияСтр(SerialNumber));
35 Mafiozaa
 
27.10.20
03:04
(32) Щас точка откроется,буду пробывать на боевой кассе провести
36 Bigbro
 
27.10.20
04:14
и какой длины строка?
37 Bigbro
 
27.10.20
04:22
смотрите посимвольно что там.
38 Mafiozaa
 
27.10.20
04:26
(36) Ну если у переменной не установлена размерность, то она по умолчанию неограниченная же?
39 Bigbro
 
27.10.20
04:28
а еще строки бывают многострочные. но это тоже ошибку не вызывает обычно.
может какие то спецсимволы.
40 Mafiozaa
 
27.10.20
04:30
(39) Я запускаю внешнюю форму, может быть такое? переменная не корректно передается туда?
41 Mafiozaa
 
27.10.20
04:31
+ (40) Но при этом она глобальная экспорт
42 Mafiozaa
 
27.10.20
04:32
(28) Мимо
43 Mafiozaa
 
27.10.20
04:38
(39) Переменная не передается во внешнюю форму, буду смотреть
44 Mafiozaa
 
27.10.20
05:14
Всем спасибо, решилось
45 Провинциальный 1сник
 
27.10.20
06:22
(44) Здесь так не принято. Тут спасибом не отделаешься, говори где накосячил!)
46 Mafiozaa
 
27.10.20
07:06
(45) Глупая ошибка, обработка внешнего события, а я чтоб продавца не гонят пикать, ручками код вносил, то есть он и не принимал значение, а как она пикнула, сразу все передалось и корректно отработало
47 Kigo_Kigo
 
27.10.20
11:14
Все заработало тоже, КТ уходит в ОФД отображается