Вход | Регистрация
 
1С:Предприятие :: 1С:Предприятие 8 общая

Не присваивается значение переменной... ???

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

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

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

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

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

Действительно, какие-то разные ветки алгоритма... Типа, не верь "глазам своим"...
Обработка обслуживания ККТ, внешняя. Лежит в каталоге ИБ. УТ 10.3. Подключаю ее штатным образом, через механизм конфигурации.
Она копируется в папку Temp локального профиля текущего пользователя...
Какую отлаживать нужно - исходную, или которая в темпе?
Я пробовал, которая в темпе... Или, после каждого, самого незначительного изменения, надо ее заново подключать через весь путь подключения ТО?
   MWWRuza
 
15 - 01.03.20 - 16:36
Более того, если я что-то меняю в обработке, то отладчик начинает "прыгать" совсем не по тем строкам, я вижу текст нового(измененного) модуля, а шагает он как-бы по старому, явно не по тем строкам...
Как правильно конфигурировать/отлаживать такие обработки?
   Franchiser
 
16 - 01.03.20 - 16:38
(15) нужно переоткрыть обработку в режиме предприятие
   MWWRuza
 
17 - 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/
А из-за того, что все-таки клюшечник, и опыта в восьмерке нехватает, и возник сабжевый вопрос!
Всем спасибо!
   MWWRuza
 
18 - 01.03.20 - 22:36
+(17) что все-таки клюшечник, и опыта в восьмерке нехватает
Для меня это вообще дико - как это: Я говорю, что А = Б, а отладчик говорит, а вот фигушки!!!! "А" не равна ни чему... :-)

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

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

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


Список тем форума
Рекламное место пустует  Рекламное место пустует
Выдавать глобальные идеи — это удовольствие; искать сволочные маленькие ошибки — вот настоящая работа.
Фредерик Брукс-младший
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.