Не могу найти ошибку :(

Тема в разделе "1C и всё что с ней связано", создана пользователем Irsis, 21 янв 2009.

  1. Irsis

    Irsis Гость

    Здравствуйте, всем!

    Мучаюсь с функцией - не хочет работать. Что-то она у меня даже текущий документ в журнале не находит, хотя документов полно :rolleyes:


    Функция ПроверитьСтатус()

    Если ПустоеЗначение(ТекущийДокумент) =0 Тогда
    Если СокрЛП(ТекДок.Статус)="PIETEIKTS" Тогда
    Возврат "BRUSH[" + ПолучитьЦвет(255,153,204) + "]";
    Иначе
    Если СокрЛП(ТекущийДокумент.Статус)="PASјT¬TS" Тогда
    Возврат "BRUSH[" + ПолучитьЦвет(255,255,153) + "]";
    Иначе
    Если СокрЛП(ТекущийДокумент.Статус)="IZPILD¬TS" Тогда
    Возврат "FONT[" + ПолучитьЦвет(128,128,128) + "]";
    Иначе
    Если СокрЛП(ТекущийДокумент.Статус)="DA±¦JI IZPILD¬TS" Тогда
    Возврат "FONT[" + ПолучитьЦвет(128,128,128) + "]"+ "BRUSH[" + ПолучитьЦвет(255,255,153) + "]";
    Иначе
    Если СокрЛП(ТекущийДокумент.Статус)="CENU PIEDЎVЎJUMS" Тогда
    Возврат "BRUSH[" + ПолучитьЦвет(255,153,204) + "]";
    КонецЕсли;
    КонецЕсли;
    КонецЕсли;
    КонецЕсли;
    КонецЕсли;
    КонецЕсли;
    Возврат "";

    КонецФункции



    HELP!!!!!
     
  2. puh14

    puh14 Well-Known Member
    1C Team

    Регистрация:
    11 июл 2008
    Сообщения:
    1.412
    Симпатии:
    0
    А что это у тебя везде текущийдокумент, а в начале ТекДок?
    и не проще ли взамен горы Иначе использовать ИначеЕсли?
    Статус - это элемент справочника или строка? если справочника тогда лучше СокрЛП(Строка(ТекущийДокумент.Статус))


    и что за ПолучитьЦвет? из formex?
     
  3. Irsis

    Irsis Гость

    Ups! Это я пробовала сама с проблемой разобраться и забыла своё художество полностью исправить :( Должно быть:

    Если СокрЛП(ТекущийДокумент.Статус)="PIETEIKTS" Тогда

    Это действительно из formex для установки шрифта и цвета ячейки в таблице при печати. Но как-то ненадёжно работает. Вроде всё было ОК, но при очередных изменениях (менялись обсолютно другие вещи) перестало работать. За : Если ПустоеЗначение(ТекущийДокумент) =0 Тогда вставила: Сообщить ("а"); заработало всё :( Ерунда какая-то. Скорее всего что-то криво написано, вот только что?
     
  4. puh14

    puh14 Well-Known Member
    1C Team

    Регистрация:
    11 июл 2008
    Сообщения:
    1.412
    Симпатии:
    0
    Статус это элемент справочника, строка или число или неопределено?

    другие условия поиска выполняются?
     
  5. Irsis

    Irsis Гость

    Статус - это реквизит шапки документа. В зависимости от статуса документа в журнале документов меняются цвета - было очень удобно, пока не накрылось :(
     
  6. puh14

    puh14 Well-Known Member
    1C Team

    Регистрация:
    11 июл 2008
    Сообщения:
    1.412
    Симпатии:
    0
    тип реквизита какой? справочник, строка, документ, число или неопределенный?
     
  7. Irsis

    Irsis Гость

    Справочник
     
  8. puh14

    puh14 Well-Known Member
    1C Team

    Регистрация:
    11 июл 2008
    Сообщения:
    1.412
    Симпатии:
    0
    ТОгда лучше так СокрЛП(Строка(ТекущийДокумент.Статус)) или так СокрЛП(Строка(ТекущийДокумент.Статус.Наименование)) - а то получается что ты от справочника, не переведя его в строку пытаешся пробелы убрать.

    А то по чему ты отсеиваешь это наименование в справочнике или дополнительный реквизит?
     
  9. Irsis

    Irsis Гость

    Наименование :(

    У меня как-то всё совсем запущено :( На сколько я понимаю, не работает уже Если ПустоеЗначение(ТекущийДокумент) =0 Тогда
    То есть выражение ПустоеЗначение(ТекущийДокумент) у меня равно 1 - документов типа нет
     
  10. vbs

    vbs Well-Known Member

    Регистрация:
    18 фев 2007
    Сообщения:
    1.708
    Симпатии:
    3
    Попробуй
    Если ПустоеЗначение(ТекущийДокумент()) =0 Тогда
     
  11. Irsis

    Irsis Гость

    :( Не помогает. Пишет {Журнал.Счета.Форма.ФормаСписка.Модуль(54)}: Функция не обнаружена (ТекущийДокумент)
     
  12. puh14

    puh14 Well-Known Member
    1C Team

    Регистрация:
    11 июл 2008
    Сообщения:
    1.412
    Симпатии:
    0
    А нафиг тебе вообще это ПустоеЗначение? Документы которых нет в журнал всё равно не попадут.

    так попробуй
     
  13. Irsis

    Irsis Гость

    Ну теперь он мне пишет: поле агрегатного объекта не обнаружено (Статус).
    Интересно почему? В документе такой реквизит есть, в журнале документов такая графа имеется :)
     
  14. puh14

    puh14 Well-Known Member
    1C Team

    Регистрация:
    11 июл 2008
    Сообщения:
    1.412
    Симпатии:
    0
    Одна из букв нерусская - копирни статус из наименования в конфигураторе.

    А на каком документе стопится? Наименование его выводит?
    Типа сообщить(текущийДокумент);
     
  15. Irsis

    Irsis Гость

    Буквы вроде проверяла (это было первое, что в голову пришло, когда функция работать отказалась). Пройдусь ещё раз для надёжности.
     
  16. puh14

    puh14 Well-Known Member
    1C Team

    Регистрация:
    11 июл 2008
    Сообщения:
    1.412
    Симпатии:
    0
    А блин - понял. В форме списка журнала могуть быть пустые строки - затем и пустой нужен, потому наверно и ругается. Давай так


    кстати - такая конструкция нужна скорее для подсветки в форме списка журнала, а не для печати. При печати проще выбирать документы через СоздатьОбъект. Может я таки что-то плохо понимаю?
     
  17. Irsis

    Irsis Гость

    Больше не ругается, но и не раскрашивает :)
    Тут я тебе не правильно ответила :p Извини, тут пишу по-русски, думаю по-латышски :) Действительно, раскрашиваю я форму списка журнала ;)

    Не... у меня точно что-то с текущим документом :) Если после
    Код (Text):
    Если (Число(ТекущийДокумент.Выбран())>0) И (ТекущийДокумент.Вид()="Счет") тогда
    вставить Сообщить ("Да"); Нечего мне никто не сообщает. То есть нет в журнале ни одного выбранного документа Счет, хотя их там толпа
     
  18. puh14

    puh14 Well-Known Member
    1C Team

    Регистрация:
    11 июл 2008
    Сообщения:
    1.412
    Симпатии:
    0
    Убери условие на Счет

     
  19. Irsis

    Irsis Гость

    Что-то мы одинаково мыслим :) Ещё до того, как предидущее сообщение писать попробовала с и без условия на Счёт

    А с самим выражение ТекущийДокумент могло что-то случиться? У нас тут ставка НДС с нового года поменялась, а я в отпуске была. И после того, как в моей конфигурации "попрограмировали" вся эта ерунда и случилась. Конечно не смертельно и можно спокойно жить без цветного журнала, но народ привык и теперь просит. Да и самой хочется понять в чём дело.
     
  20. puh14

    puh14 Well-Known Member
    1C Team

    Регистрация:
    11 июл 2008
    Сообщения:
    1.412
    Симпатии:
    0
    Без условия на счет не ругается?
    А условие Число(ТекущийДокумент.Выбран())>0 выполняет?
    Если не ругается - значит кажись проходит условие.

    С ТекущийДокумент ничего случится не может. А НДС--ээээ - а тебе конфу не обновили случаем? тогда прощай formex - его запросто могли затереть( в смысле загрузку).
    Тогда вообще раскрашиваться не будет. Или версию dll махнули.

    ПРоверил кстати на своих журналах - пофигу Число(ТекущийДокумент.Выбран())>0 - и без него работает.


    ещё идейка - а ты уверена что имеешь дело именно с формой списка, а не ТЗ, подогнаной под неё? По моему представлению это как раз тот случай когда текущийдокумент не работает.

    ещё вариант - добавлена переменная ТекущийДокумент - если так, убивать её нещадно.
     
Загрузка...

Поделиться этой страницей