Форум 1С
Программистам, бухгалтерам, администраторам, пользователям
Задай вопрос - получи решение проблемы
26 мая 2024, 21:02

Ошибка выражения

Автор Mandarin, 20 окт 2010, 09:11

0 Пользователей и 1 гость просматривают эту тему.

Mandarin

здравствуйте

Помогите чайнику ...

   
В данном коде если я делаю соединение строк  НаимЗатраты =СокрЛП(ДопИнформация) + " " + НаимЗатраты; то переменная "НаимЗатраты.ЕдиницаИзмерения" уходит в ошибку  "Ошибка выражения " что влияет на это???????????

после соединения строк НаимЗатраты = ""+НаимЗатраты + ", "+НаимЗатраты.ЕдиницаИзмерения; вылетаю из процедуры .....ну это понятно почему

сам код:      

ДопИнформация = глПолучитьИнформациюДляКолонки(НаимЗатраты, "ВыводитьДляМПЗвОтчетах");
         
      Если ПустоеЗначение(ДопИнформация) = 0 Тогда
         НаимЗатраты =СокрЛП(ДопИнформация) + " " + НаимЗатраты; // послед данного соединения строк переменная НаимЗатраты.ЕдиницаИзмерения уходит в ошибку "Ошибка выражения " почему ???
      КонецЕсли;
      
      НаимЗатраты = ""+НаимЗатраты + ", "+НаимЗатраты.ЕдиницаИзмерения;//после данного соединения строк  процедура в которой выполняется  происходит критическая ошибка и я вылетаю из процедуры ну это понятно почему




если я делаю так то все работает нормально ....

Код:
      ДопИнформация = глПолучитьИнформациюДляКолонки(НаимЗатраты, "ВыводитьДляМПЗвОтчетах");
      
                          НаимЗатраты = ""+НаимЗатраты + ", "+НаимЗатраты.ЕдиницаИзмерения;
   
      Если ПустоеЗначение(ДопИнформация) = 0 Тогда
         НаимЗатраты =СокрЛП(ДопИнформация) + " " + НаимЗатраты;
      КонецЕсли;
      

Почему  происходит "Ошибка выражения "   

Mandarin

Доп. свед.

1С:Предприятие 7.7 для SQL (7.70.027)
Конфигурация: Производство+Услуги+Бухгалтерия, редакция 2.8 (7.70288)

Makifka

в первом варианте вы Ссылке НаимЗатраты присваиваете значение строки, естественно у неё теперь нет реквизита ЕдиницаИзмерения
во втором случае вы сначала выводите по ссылке ЕдиницуИзмерения, а потом этой ссылке присваиваете строковое значение

попробуйте

ДопИнформация = глПолучитьИнформациюДляКолонки(НаимЗатраты, "ВыводитьДляМПЗвОтчетах");
       
Если ПустоеЗначение(ДопИнформация) = 0 Тогда
        НаимЗатратыНовый =СокрЛП(ДопИнформация) + " " + НаимЗатраты;
КонецЕсли;
     
НаимЗатраты = ""+НаимЗатратыНовый + ", "+НаимЗатраты.ЕдиницаИзмерения;

Mandarin

Работает .....спасибо большое........Извеняюсь за возможно глуппый вопрос  мне интерестно  а если оставить как в вотором варианте так правильно будет ...... В 1С ни когда не писал еще не все понял ...с чем его есть....разбираюсь

prog1c7.7

будет.
но еще раз перечитай, вникнись и вьедь в ответ Makifka 

Makifka

во втором тоже правильно, результат одинаковый, сначала выводится ДопИнформация, потом НаимЗатрат, потом ЕдиницаИзмерения

Mandarin

Начинаю понимать....Спасибо

Mandarin

А вот смотрите в варианте в котором вы мне предложили если в переменная ДопИнформация равна пустому значению  то у меня условие не выполнится НаимЗатратыНовый будет равен пустому значению ......


ДопИнформация = глПолучитьИнформациюДляКолонки(НаимЗатраты, "ВыводитьДляМПЗвОтчетах");
         
Если ПустоеЗначение(ДопИнформация) = 0 Тогда
         НаимЗатратыНовый =СокрЛП(ДопИнформация) + " " + НаимЗатраты;

КонецЕсли;
     
НаимЗатраты = ""+НаимЗатратыНовый + ", "+НаимЗатраты.ЕдиницаИзмерения;

надо так

   ДопИнформация = глПолучитьИнформациюДляКолонки(НаимЗатраты, "ВыводитьДляМПЗвОтчетах");
         
      
         
         Если ПустоеЗначение(ДопИнформация) = 0 Тогда
          НаимЗатратыНовый=СокрЛП(ДопИнформация) + " " + НаимЗатраты;
            Иначе
                НаимЗатратыНовый=НаимЗатраты;
         КонецЕсли;
         
             НаимЗатраты = ""+НаимЗатратыНовый + ", "+НаимЗатраты.ЕдиницаИзмерения;
         
или второй вариант

Makifka

Да, правильно) или перед условием определить НаимЗатратыНовый = ""

Makifka

да, вот как вы написали так правильно

Теги:

Похожие темы (5)

Рейтинг@Mail.ru

Поиск