[РЕШЕНО] УПП, редакция 1.3 Платежное пор.исходящее

Тема в разделе "Конфигурирование на платформе "1С:Предприятие 8"", создана пользователем _Tank_, 23 сен 2014.

  1. TopicStarter Overlay
    _Tank_
    Offline

    _Tank_

    Регистрация:
    23 сен 2014
    Сообщения:
    24
    Симпатии:
    0
    Баллы:
    1
    Здравствуйте!!!

    Необходимо убрать в назначении платежа сумму платежа (чтобы сумма документа не выходила, а сумма НДС выходила).
    --- Объединение сообщений, 23 сен 2014 ---
    Например:

    При выборе операции Оплата поставщику – в назначении платежа В т.ч. НДС(18%) 56-44 (если ставка 18%) или Без налога (НДС) (если без налога соответственно).

    При выборе операции Прочее списание – в назначении платежа - НДС не обл.

    Эффекта вроде бы достигла следующим образом:
    --- Объединение сообщений, 23 сен 2014 ---
    // Закомментарила строку: ТекстСумма = "Сумма " + Формат(СуммаДокумента, "ЧЦ=15; ЧДЦ=2; ЧРД=-; ЧН=0-00; ЧГ=");

    // Вместо нее написала:

    ТекстСумма = "НДС не обл.";



    //Закомментарила строку: ТекстСумма = ТекстСумма + Символы.ПС + ТекстНДС;

    //Вместо нее написала:

    ТекстСумма = Символы.ПС + ТекстНДС;

    Но это привело к тому, что каждый раз при выборе контрагента, договора, изменении суммы назначение задваивается, затраивается и т.д.

    В общем, я понимаю, что я чайник, но как сделать корректно, я не знаю.
    Исходный код: (извиняюсь, не знаю как его нормально разместить).
    --- Объединение сообщений, 23 сен 2014 ---

    Код:
    Процедура СформироватьНазначениеПлатежа()
      АдресСуммы = Найти(НазначениеПлатежа, "Сумма");
        Если АдресСуммы > 0 Тогда
      ТекстНазначение = Лев(НазначениеПлатежа, АдресСуммы - 2);
     
      Иначе
      ТекстНазначение = НазначениеПлатежа;
      КонецЕсли;
          Если ТекстНазначение = "" И НЕ СчетКонтрагента.Пустая() Тогда
      ТекстНазначение = СчетКонтрагента.ТекстНазначения;
      КонецЕсли;
      Если ТекстНазначение = ""
      И РасшифровкаПлатежа.Количество() = 1
      И ЗначениеЗаполнено(СтрокаПлатеж.ДоговорКонтрагента) Тогда
     
      ТекстНазначение = ТекстНазначение
      + ?(ПустаяСтрока(ТекстНазначение), "По ", " по ")
      + Строка(СтрокаПлатеж.ДоговорКонтрагента);
       
        КонецЕсли;
     
      ТекстСумма = "Сумма " + Формат(СуммаДокумента, "ЧЦ=15; ЧДЦ=2; ЧРД=-; ЧН=0-00; ЧГ=");
     
      Если ЕстьРасчетыСКонтрагентами ИЛИ ЕстьРасчетыПоКредитам Тогда
        ТекстНДС = "";
        ТабНДС=РасшифровкаПлатежа.Выгрузить();
      ТабНДС.Свернуть("СтавкаНДС","СуммаНДС");
        Для Каждого СтрокаНДС ИЗ ТабНДС Цикл
      ТекстНДС = ТекстНДС + ?(ПустаяСтрока(ТекстНДС), "", ", ");
      Если НЕ ЗначениеЗаполнено(СтрокаНДС.СтавкаНДС) ИЛИ СтрокаНДС.СтавкаНДС = Перечисления.СтавкиНДС.БезНДС Тогда    ТекстНДС = ТекстНДС+ "Без налога (НДС)";
      Иначе
      ТекстНДС = ТекстНДС + "НДС(" + СтрокаНДС.СтавкаНДС + ") " + Формат(СтрокаНДС.СуммаНДС, "ЧЦ=15; ЧДЦ=2; ЧРД=-; ЧН=0-00; ЧГ=");
      КонецЕсли;
      КонецЦикла;
        Если ТабНДС.Итог("СуммаНДС") > 0 Тогда
      ТекстНДС = "В т.ч. " + ТекстНДС;
      КонецЕсли;
          ТекстСумма = ТекстСумма + Символы.ПС + ТекстНДС;
        КонецЕсли;
        НазначениеПлатежа = ТекстНазначение + Символы.ПС + ТекстСумма;
    КонецПроцедуры // СформироватьНазначениеПлатежа()
    
    Последнее редактирование модератором: 23 сен 2014
  2. Draco
    Offline

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

    Регистрация:
    28 окт 2009
    Сообщения:
    13.628
    Симпатии:
    946
    Баллы:
    204
    Ну так долго не вникая попробуйте в начале процедуры написать
    ТекстНазначение="";
    ТекстСумма="";
    Что бы перед началом процедуры обнулял текст суммы и назначения
    _Tank_ нравится это.
  3. shurikvz
    Offline

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

    Регистрация:
    1 окт 2009
    Сообщения:
    8.409
    Симпатии:
    316
    Баллы:
    104
    Обратите внимание на эти строки в начале процедуры:
    Код:
    АдресСуммы = Найти(НазначениеПлатежа, "Сумма");
        Если АдресСуммы > 0 Тогда
      ТекстНазначение = Лев(НазначениеПлатежа, АдресСуммы - 2);
      Иначе
      ТекстНазначение = НазначениеПлатежа;
      КонецЕсли;
    
    Т.е. до ваших переделок назначение платежа искалось по слову "Сумма" в поле назначение платежа. Вы слово Сумма убрали, поэтому теперь процедура не может выделить отдельно строку назначения платежа, и берет полностью весь текст из поля НазначениеПлатежа. Естественно каждый раз текст задваивается.
    P.S. Я вижу что в моем объяснении много раз повторяется словосочетание назначение платежа в разных контекстах, но надеюсь смысл объяснения был понятен.
    _Tank_ нравится это.
  4. TopicStarter Overlay
    _Tank_
    Offline

    _Tank_

    Регистрация:
    23 сен 2014
    Сообщения:
    24
    Симпатии:
    0
    Баллы:
    1
    Спасибо всем огромное!!! С операцией Оплата поставщику все ОК теперь. Сейчас еще с Прочим списанием попробую.
  5. TopicStarter Overlay
    _Tank_
    Offline

    _Tank_

    Регистрация:
    23 сен 2014
    Сообщения:
    24
    Симпатии:
    0
    Баллы:
    1
    прочее списание тоже норм, только строчку заменила на ТекстСумма = ТекстСумма + "НДС не обл." (было
    ТекстСумма = "Сумма " + Формат(СуммаДокумента, "ЧЦ=15; ЧДЦ=2; ЧРД=-; ЧН=0-00; ЧГ=");)

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