7.7 Как правильно задать условие

Тема в разделе "Конфигурирование на платформе "1С:Предприятие 7.7"", создана пользователем spartak_lp, 7 дек 2011.

  1. TopicStarter Overlay
    spartak_lp
    Offline

    spartak_lp Опытный в 1С

    Регистрация:
    3 окт 2011
    Сообщения:
    201
    Симпатии:
    0
    Баллы:
    26
    Здраствуйте, в обработке в печатной форме одно поле "КППАвто" выводилось по следующему коду:
    Код:
    Если Докум. ДокументОснование.Вид()="ОказаниеУслуг" Тогда
    Если Докум.ДокументОснование.АвтоЦентр=1 Тогда
    КППАвто = "ИНН/КПП продавца  2129022766/213045001"; 
    Иначе КППАвто = "ИНН/КПП продавца  2129022766/213001001";  
    КонецЕсли;
    КонецЕсли; 
    Если Докум. ДокументОснование.Вид()="Выписка" Тогда
    КППАвто = "ИНН/КПП продавца  2129022766/213001001";  
    КонецЕсли;
    
    
    А необходимо, чтобы было еще условие, что если в счет-фактуре, созданной на основании выписки, Договор="Договор услуг(мойка)" или "Договор услуг(ремонт)", то на печать выводилось бы по такому принципу
    Код:
    КППАвто = "ИНН/КПП продавца  2129022766/213045001"; 
    Иначе КППАвто = "ИНН/КПП продавца  2129022766/213001001";  
    
    
    
    Подскажите пожалуйста как правильно данное условие записать?
    Прикрепил данную обработку.
  2. WaRDeR
    Offline

    WaRDeR Модераторы Команда форума Модератор

    Регистрация:
    23 ноя 2006
    Сообщения:
    3.263
    Симпатии:
    14
    Баллы:
    29
    Ну так и написать:
    Код:
    Если Докум. ДокументОснование.Вид()="Выписка" Тогда
    Если (СокрЛП(Договор) = "Договор услуг(мойка)") или (СокрЛП(Договор) = "Договор услуг(ремонт)") Тогда 
    КППАвто = "ИНН/КПП продавца  2129022766/213045001"; 
    Иначе
    КППАвто = "ИНН/КПП продавца  2129022766/213001001";
    КонецЕсли;
    КонецЕсли;
    
    Если представление договора идет не по наименованию, а по коду, тода "Договор" нужно заменить на "Договор.Наименование".
  3. TopicStarter Overlay
    spartak_lp
    Offline

    spartak_lp Опытный в 1С

    Регистрация:
    3 окт 2011
    Сообщения:
    201
    Симпатии:
    0
    Баллы:
    26
    При таком варианте почему-то выбирается во всех СчФ вот этот вариант "ИНН/КПП продавца 2129022766/213001001"
  4. dianofob
    Offline

    dianofob (-_-)y-.o0O

    Регистрация:
    3 июл 2009
    Сообщения:
    711
    Симпатии:
    0
    Баллы:
    26
    Код:
    //В целом
    Если Докум. ДокументОснование.Вид()="ОказаниеУслуг" Тогда
    Если Докум.ДокументОснование.АвтоЦентр=1 Тогда
    КППАвто = "ИНН/КПП продавца  2129022766/213045001"; 
    Иначе 
    КППАвто = "ИНН/КПП продавца  2129022766/213001001";  
    КонецЕсли;
    ИначеЕсли Докум. ДокументОснование.Вид()="Выписка" Тогда
    Если (СокрЛП(Докум.СчетФактура.Договор)="Договор услуг(мойка)") Или (СокрЛП(Докум.СчетФактура.Договор)="Договор услуг(ремонт)") Тогда
    КППАвто = "ИНН/КПП продавца  2129022766/213045001";
    Иначе
    КППАвто = "ИНН/КПП продавца  2129022766/213001001";
    КонецЕсли;
    КонецЕсли;
    
    //компактнее
    КППАвто = КППАвто = "ИНН/КПП продавца  2129022766/213001001";
    Если (Докум. ДокументОснование.Вид()="ОказаниеУслуг") И (Докум.ДокументОснование.АвтоЦентр=1) Тогда
    КППАвто = "ИНН/КПП продавца  2129022766/213045001"; 
    ИначеЕсли (Докум. ДокументОснование.Вид()="Выписка") 
    И ((СокрЛП(Докум.СчетФактура.Договор="Договор услуг(мойка)")) Или (СокрЛП(Докум.СчетФактура.Договор="Договор услуг(ремонт)"))) Тогда
    КППАвто = "ИНН/КПП продавца  2129022766/213045001";
    КонецЕсли;
    
    
    
  5. TopicStarter Overlay
    spartak_lp
    Offline

    spartak_lp Опытный в 1С

    Регистрация:
    3 окт 2011
    Сообщения:
    201
    Симпатии:
    0
    Баллы:
    26
    Выдало ошибку при формировании печати
    Код:
    Если (СокрЛП(Докум.СчетФактура.Договор)="Договор услуг(мойка)") Или (СокрЛП(Докум.СчетФактура.Договор)="Договор услуг(ремонт)") Тогда
    {C:\DOCUMENTS AND SETTINGS\KATERINA\РАБОЧИЙ СТОЛ\2СЧФЗАПЕРИОД_(100%).ERT(1730)}: Поле агрегатного объекта не обнаружено (СчетФактура)
    
  6. dianofob
    Offline

    dianofob (-_-)y-.o0O

    Регистрация:
    3 июл 2009
    Сообщения:
    711
    Симпатии:
    0
    Баллы:
    26
    ну, значит СокрЛП(Договор) :) я с твоего модуля дергал кусок
  7. TopicStarter Overlay
    spartak_lp
    Offline

    spartak_lp Опытный в 1С

    Регистрация:
    3 окт 2011
    Сообщения:
    201
    Симпатии:
    0
    Баллы:
    26
    с СокрЛП(Договор)
  8. dianofob
    Offline

    dianofob (-_-)y-.o0O

    Регистрация:
    3 июл 2009
    Сообщения:
    711
    Симпатии:
    0
    Баллы:
    26
    тогда резонный вопрос - что такое "Договор услуг(мойка)". Если это реквизит Договора тогда обращение к нему. Отладчиком пробегись по условию
  9. TopicStarter Overlay
    spartak_lp
    Offline

    spartak_lp Опытный в 1С

    Регистрация:
    3 окт 2011
    Сообщения:
    201
    Симпатии:
    0
    Баллы:
    26
    Вот откуда я взял это название (на рис.). В условии нужно, чтобы, если в СчФ в поле договор встречается подобное наименование, то выбирается заданный ИНН/КПП.
  10. WaRDeR
    Offline

    WaRDeR Модераторы Команда форума Модератор

    Регистрация:
    23 ноя 2006
    Сообщения:
    3.263
    Симпатии:
    14
    Баллы:
    29
    Значит перед условием напиши
    Код:
    Сообщить(СокрЛП(Договор.Наименование));
    
    И посмотри, что выдает.
  11. TopicStarter Overlay
    spartak_lp
    Offline

    spartak_lp Опытный в 1С

    Регистрация:
    3 окт 2011
    Сообщения:
    201
    Симпатии:
    0
    Баллы:
    26
    пустоту выдает
  12. WaRDeR
    Offline

    WaRDeR Модераторы Команда форума Модератор

    Регистрация:
    23 ноя 2006
    Сообщения:
    3.263
    Симпатии:
    14
    Баллы:
    29
    Ну вот и ответ.
    Значит Договор не ссылается ни на какой элемент.
    Нужно смотреть код, где идет получение значения.
  13. TopicStarter Overlay
    spartak_lp
    Offline

    spartak_lp Опытный в 1С

    Регистрация:
    3 окт 2011
    Сообщения:
    201
    Симпатии:
    0
    Баллы:
    26
    Вобщем все получилось, оказывается надо было написать еще Докум.Договор.Наименование
    Код:
    ИначеЕсли Докум.ДокументОснование.Вид()="Выписка" Тогда 
    Если (СокрЛП(Докум.Договор.Наименование)="Договор услуг(мойка)") ИЛИ (СокрЛП(Докум.Договор.Наименование)="Договор услуг(ремонт)") Тогда 
    КППАвто = "ИНН/КПП продавца 2129022766/213045001"; 
    Иначе 
    КППАвто = "ИНН/КПП продавца 2129022766/213001001"; 
    КонецЕсли; 
    КонецЕсли;
    
    Всем спасибо, за помощь!

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