Вход | Регистрация

1С:Предприятие ::

Метки:

Не обрабатывается команда "иначе". Есть 100% рецепт? Срочно.

Я
   Asmodeus
 
16.04.04 - 15:13
Проблема из серии внутренних глюков 1С.
Например, я, в свое время (года 2-3 назад) на курсах обнаружил, что если в строке "Спр=СоздатьОбъект("Справочник.Такой-то");" написать слово "Справочник" с маленькой буквы (т.е. "справочник"), то объект не будет создан. Не знаю как сейчас - не проверял...
Я уже не раз сталкиваюсь со следующей проблемой: в цикле "если.. тогда.. иначе.. конецесли" в какой-то момент (возможно, в результате правок/переделок) 1С не воспринимает "иначе". Проверяет условие, если ложное, то дует сразу в "конецесли" (в отладчике видно), а "иначе" как будто вообще не при делах...
Ситуация получается, такая, что код правильный (ни один программер не скажет что тут именно не верно), а прога не работает так как надо.
Помогает иногда перебивка части кода (тупо, но бывает помогает). Иногда как-нибудь можно переделать условия (но нужны-то именно эти!).
Кто сталкивался с этим? Кто знает признак подобной ситуации? Кто знает надежное решение проблемы?
 
  Рекламное место пустует
   alxkorvin
 
1 - 16.04.04 - 15:16
Единственный известный мне случай когда условие может не выполняться, это если в конструкции Если есть условие, которое вызывает ошибку.

Какой релиз платформы.
Есть ли возможность поместить кусок исходного кода?
   mszsuz
 
2 - 16.04.04 - 15:18
Не верю!
Условие - в студию ...
   Asmodeus
 
3 - 16.04.04 - 15:19
Хм.. Звучит логично.
Как это можно проверить? И какого типа ошибка может быть?
Релиз последний (забыл написать)
Код вряд ли поможет (програ для переноса из компл. в бух. конфигурацию выписок)
Конкретно условие
"Если (СокрЛП(МойДокОснование)="") и (МойКодОперации="Прочее") Тогда"
Хм.. А если "МойДокОснование" не строка - это может вызвать ошибку?
   Asmodeus
 
4 - 16.04.04 - 15:21
Прога еще и не моя к тому же...
Взялся, млин, текст бывшего программера отладить (не работал).. лучше бы сам написал. Правда, описанная проблема и самого иногда бывала. :)
   mszsuz
 
5 - 16.04.04 - 15:21
Хотя ...
Если 1С не лицензионная и сломана патчером, то иногда срабатывают "бомбы", предусмотрительно заложенные разработчиками.
   alxkorvin
 
6 - 16.04.04 - 15:22
Пустые значения лучше проверять ПустоеЗначение(МойДокОснование) = 1
   mszsuz
 
7 - 16.04.04 - 15:23
((ПустоеЗначение(МойДокОснование)=1) И (ВРег(СокрЛП(МойКодОперации))="ПРОЧЕЕ"))
   Zamza
 
8 - 16.04.04 - 15:24
А это внешняя обработка?
   Asmodeus
 
9 - 16.04.04 - 15:30
Внешняя. Да еще и с подцеплением другой конфы через V77. Отладить весьма проблематично - только попробуешь вычислить не то значение (из подцепленной конфы) - виснет наглухо. И саму конфу параллельно не могу открыть - тоже виснет.
Идиотизм все-таки... Писать "МойДокОснование=ВыпРасхКомпл.ДокОснование.Фирма;"
Добавил в конец ".Наименование" (чтобы "МойДокОснование" был текстом) написал "Не представляет агрегатный объект"
Сейчас через "ПустоеЗначение" попробую... Если действительно "иначе" не обрабатывается из-за ошибки в условии - это уже половина решения задачи. Только как узнать об этой ошибке?
   Asmodeus
 
10 - 16.04.04 - 15:36
Перешел на "иначе"!
Теперь буду дальше ковыряться!
*про себя, с надеждой*: А вдруг, теперь все само заработает? ;)
alxkorvin - Большое спасибо!
Как, все-таки, можно узнать, что в условии ошибка?
И, кажется, у меня, на самом деле, была ситуация, когда тупо перебив код программа начала работать... Странно...
 
  Рекламное место пустует
   alxkorvin
 
11 - 16.04.04 - 15:37
Непонятно, почему Реквизит фирма присваевается переменной ДокОснование
   Zamza
 
12 - 16.04.04 - 15:39
Тогда всё просто - Вы сохраняете обработку, перезапускаете дебагер, а в предприятии обработку закрыть открыть забываете. А перед сохранением кусок с "иначе" отсутствовал, вот он в отладчике его и пропускает. Повнемательнее.
   Asmodeus
 
13 - 16.04.04 - 15:51
alxkorvin
  Я про это и выразился - "идиотизм" :)

Zamza
  Если бы все было так просто... ;)


Список тем форума
 
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.
Ветка сдана в архив. Добавление сообщений невозможно.
Но вы можете создать новую ветку и вам обязательно ответят!
Каждый час на Волшебном форуме бывает более 2000 человек.
Рекламное место пустует