Имя: Пароль:
1C
1С v8
Не присваивается значение переменной... ???
,
0 MWWRuza
 
гуру
01.03.20
15:03
Добрый день!
Я больше "семерошник", и как-то мне в мозги не укладывается, казалось бы элементарщина...

Делаю: СчСтрМ = 0;

Дальше, некий текст, не важно... В отладчике, на шаге, следующем за этой строкой, получаю, что "Переменная не определена" - "{(1,1)}: Переменная не определена (СчСтрМ)"... Почему, что за бред???
Я же ей явно 0 в предыдущей строке присваиваю! Как это она не определена? Я что-то упустил? Ведь это же элементарно, и должно везде работать...
Вот скриншот из отладки:
https://content.foto.my.mail.ru/mail/m_w_w/_mypagephoto/h-291.jpg
Обработка внешняя, отладка подключена, отладчик туда попадает. Но, код почему-то не работает...
1 RomanYS
 
01.03.20
15:07
1. Возможно отладка идёт другой(сохраненной) версии
2. Проверить, что символы "С" не латинские
2 Мимохожий Однако
 
01.03.20
15:19
Так ты еще в цикл не шагнул...А эта переменная начинает жить в цикле и не до того как.
3 Мимохожий Однако
 
01.03.20
15:21
(0) Зачем присваивать значение переменной цикла (счётчику)?
4 MWWRuza
 
гуру
01.03.20
15:22
(1)2. Проверить, что символы "С" не латинские

А какая разница? Я же в отладчике не руками имя переменной пишу, а копирую в табло. Даже, если она там и латинскя, то она везде такая...

А вот это: 1. Возможно отладка идёт другой(сохраненной) версии
Может быть... Обработка внешняя, лежит в папке с базой, при подключении копируется в папку "Temp" профиля пользователя... Открываю для правки и отладки, ее именно оттуда... Может здесь какая-то путаница, но отладчик то туда попадает...
5 MWWRuza
 
гуру
01.03.20
15:23
(3) Да, не обязательно...
Но, сам факт...
6 vi0
 
01.03.20
15:31
(4) попробуй выполнить без такой длинной схемы с копированиями
просто кусок кода проверь в отдельной обработке
7 vi0
 
01.03.20
15:32
(4) > А какая разница? Я же в отладчике не руками имя переменной пишу, а копирую в табло
а какую из двух переменных ты копируешь в табло? из тех что на скрине
8 MWWRuza
 
гуру
01.03.20
15:33
(7) Первую, где 0 ей присваиваю...
9 MWWRuza
 
гуру
01.03.20
15:37
Не знаю, дальше тоже не работает:
https://content.foto.my.mail.ru/mail/m_w_w/_mypagephoto/h-292.jpg
Если из массива получаю значение по индексу 0, вручную - возвращается строка значение элемента массива, структура...
Через счетчик с этой "злополучной" переменной - ни в какую...
10 RomanYS
 
01.03.20
15:40
(9) блин, ну перебей имя переменной, добавь отладочное сообщение (чтобы убедиться, что отлаживается именно эта версия)
11 MWWRuza
 
гуру
01.03.20
15:41
(10) Сейчас попробую...
12 acht
 
01.03.20
15:46
(4)> латинскя
Вот именно так оно все и происходит.
13 hhhh
 
01.03.20
16:10
(9) почему СчСтрМ -1 ? Что за хрень? Это явно не по индексу 0.
14 MWWRuza
 
гуру
01.03.20
16:19
(13) Это уже "пляски с бубном", когда уже не знаешь, на что грешить...

Действительно, какие-то разные ветки алгоритма... Типа, не верь "глазам своим"...
Обработка обслуживания ККТ, внешняя. Лежит в каталоге ИБ. УТ 10.3. Подключаю ее штатным образом, через механизм конфигурации.
Она копируется в папку Temp локального профиля текущего пользователя...
Какую отлаживать нужно - исходную, или которая в темпе?
Я пробовал, которая в темпе... Или, после каждого, самого незначительного изменения, надо ее заново подключать через весь путь подключения ТО?
15 MWWRuza
 
гуру
01.03.20
16:36
Более того, если я что-то меняю в обработке, то отладчик начинает "прыгать" совсем не по тем строкам, я вижу текст нового(измененного) модуля, а шагает он как-бы по старому, явно не по тем строкам...
Как правильно конфигурировать/отлаживать такие обработки?
16 Franchiser
 
гуру
01.03.20
16:38
(15) нужно переоткрыть обработку в режиме предприятие
17 MWWRuza
 
гуру
01.03.20
17:33
(16) Ну, может быть... Но, мне только помогало переподключение обработки...

В общем, добился чего хотел... В новом релизе УТ 10.3.59.3, опять "накосячили"... "Тапочки", ОбувныеТовары, попадали в чек и соответственно в ОФД с ПР "ПодакцизныйТовар" :-(

Да и как по другому, когда:
В общем модуле "ПодключаемоеОборудованиеУниверсальныйДрайверКлиент", в функции "ПараметрыОперацииФискализацииЧекаЧекККМ":

" | ЕСТЬNULL(ТабличнаяЧасть.Номенклатура.ТабачнаяПродукция
| ИЛИ ТабличнаяЧасть.Номенклатура.АлкогольнаяПродукция
| ИЛИ ТабличнаяЧасть.Номенклатура.ОбувнаяПродукция, ЛОЖЬ) КАК ПодакцизныйТовар,
"
Ну, конечно, в таблице есть товар с признаком "ОбувнаяПродукция"...
Вот, этот запрос и возвращает ПодакцизныйТовар = Истина...

Конфа у клиента "базовая", соответственно и не поправишь... Хорошо обработка ТО у меня, под мою ККТ, внешняя, вот и заморочился исправить в ней эту ошибку.
Сделал так:
    Для СчСтрМ     = 0 По ПараметрыЧека.ПозицииЧека.Количество() - 1 Цикл
        ТекСтр            = ПараметрыЧека.ПозицииЧека.Получить(СчСтрМ);
        Если ТекСтр.ДанныеКодаТоварнойНоменклатуры.ТипМаркировки = Перечисления.ТипыМаркировкиККТ.ОбувныеТовары Тогда
            ТекСтр.Вставить("ПризнакПредметаРасчета", Перечисления.ПризнакиПредметаРасчета.Товар);
        КонецЕсли;    
    Конеццикла;    
    ПараметрыЧека.Вставить("ПараметрыЧека", ПараметрыЧека);
Все сейчас нормально работает, вот СкринШот из тестового ОФД:
https://content.foto.my.mail.ru/mail/m_w_w/_mypagephoto/h-293.jpg
Начало моих "мытарств" тут: https://forum.infostart.ru/forum24/topic236570/
А из-за того, что все-таки клюшечник, и опыта в восьмерке нехватает, и возник сабжевый вопрос!
Всем спасибо!
18 MWWRuza
 
гуру
01.03.20
22:36
+(17) что все-таки клюшечник, и опыта в восьмерке нехватает
Для меня это вообще дико - как это: Я говорю, что А = Б, а отладчик говорит, а вот фигушки!!!! "А" не равна ни чему... :-)

Вроде, есть какая-то функция, во всех типовых, которая реально показывает текст исполняемого в данный момент модуля, а не тот, что открывается... Научите, плиз??? Или я ошибаюсь?
19 Franchiser
 
гуру
01.03.20
23:41
В 8ке 3 конфигурации в БД, а в семёрке одна. Что ты хочешь?
20 Franchiser
 
гуру
01.03.20
23:48
И вообще не понял как ты открывал эту внешнюю обработку ТО для отладки. Там не все так просто.
21 catena
 
02.03.20
06:05
(14)После каждого перезапуска в темпе создается другая копия, нужно переоткрывать, естественно

(18)Замер производительности, чтоли?
22 DrZombi
 
гуру
02.03.20
07:32
(0) просто, перезайди в конфигуратор :)
23 MWWRuza
 
гуру
02.03.20
09:03
Ясно, всем спасибо!
24 MWWRuza
 
гуру
02.03.20
09:12
(21)После каждого перезапуска в темпе создается другая копия, нужно переоткрывать, естественно

Хм... А откуда копируется? С исходника, который, в моем случае в папке БД лежит?
Когда чего-то правлю, надо править исходник, а в темп он ее сам скопирует, при запуске?
Т.Е., нужно перезапускать саму программу, а не только обработку, тогда создастся новая копия в темпе?
А отлаживать я какую копию должен, ту которая в темпе, или тоже исходную?
Вроде исходную пробовал, он(отладчик) туда не попадает, а в копию в темпе - пожалуйста...
Как-то запутано все...
25 MWWRuza
 
гуру
02.03.20
09:16
В общем, вроде понял свою ошибку - правил обработку в темпе, а она заменялась при каждом перезапуске на исходную, вот и не мог понять, что происходит. Буду знать теперь, на ошибках учатся :-)
26 catena
 
02.03.20
10:39
(24)Это же внешняя обработка, правильно я поняла? Механизм внешних обработок не встроенный, там все кодом написано. Берет из хранилища обработку, сохраняет ее в темпе и запускает. Новый запуск - новый темп.
27 vi0
 
02.03.20
12:40
(25) но не забывай, что платформа 8 еще сырая
всё может быть
28 MWWRuza
 
гуру
03.03.20
12:57
(27) Это я уже понял :-))))
29 vi0
 
03.03.20
13:45
(28) лучше упор делать на семерку
рабочая и перспективная