8.х Как доработать подтверждение нулевой ставки НДС

Тема в разделе "Отчеты и обработки для "1С:Предприятие 8"", создана пользователем SnakeSolid, 21 дек 2017.

  1. TopicStarter Overlay
    SnakeSolid
    Offline

    SnakeSolid

    Регистрация:
    2 май 2013
    Сообщения:
    36
    Симпатии:
    0
    Баллы:
    1
    Всем добрый день!

    1С:Предприятие 8.3 (8.3.10.2580)
    Бухгалтерия предприятия, редакция 3.0 (3.0.52.42) ТИПОВАЯ !!!

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

    Сама операция находится здесь:
    Операции -> Помощник по учету НДС -> Подтверждение нулевой ставки НДС

    Что она делает по умолчанию:
    По кнопке "Заполнить" подхватываются все документы до даты (дата стоит всегда последний день квартала), которые не были заполнены в предыдущие периоды, с событием "Подтверждена ставка 0%". У нас такие документы в основном Реализация (акт, накладная), ну и немного Счет-фактур выданных.
    Нулевая НДС.JPG

    Т.е., если, к примеру, у вас есть документы с нулевой ставкой НДС, которые были заведены в течение всего года и ни в один квартал до этого не подтверждались, и вы решили в конце года предоставить документ с подтверждением нулевой ставки, то программа подхватит АБСОЛЮТНО ВСЕ документы за текущий год до 31.12.
    Но предоставление данного подтверждения по закону возможно в течение 180 дней (т.е. пол года) и бухгалтерии не надо, чтобы, например, 31.12 в данную операцию попали документы, которые были заведены в сентябре-октябре-ноябре. Нужно только, чтобы попали документы со сроком заведения не раньше июня, ну или по выбору бухгалтера какие-либо позднее датами.

    Ручной подбор конечно есть по умолчанию в данной операции, но, как обычно, он не устраивает бухгалтеров, т.к. список документов ручным подбором слишком велик у нас.

    Прошу знатоков подсказать, как можно решить данную задачу?
    Снимать конфу с типовой запрещено!
    Я попробовал добавить через расширение кнопку "заполнить по периоду" (чтобы подхватывались документы за определенный период), но процедура "ЗаполнитьСтрокиДокумента" находится, конечно же, в Модуле объекта, а его редактировать в расширении нельзя. Поэтому такая моя затея потерпела фиаско :(

    Как еще можно поступить? Подскажите, пожалуйста, очень жду дельных предложений!
  2. nomad_irk
    Offline

    nomad_irk Гуру в 1С

    Регистрация:
    20 окт 2008
    Сообщения:
    9.890
    Симпатии:
    1.030
    Баллы:
    204
    Сделать внешнюю обработку заполнения табличной части документа. Подключить типовым функционалом внешних обработок.
  3. TopicStarter Overlay
    SnakeSolid
    Offline

    SnakeSolid

    Регистрация:
    2 май 2013
    Сообщения:
    36
    Симпатии:
    0
    Баллы:
    1
    замечательный ответ, спасибо, хотя это понятно было сразу, просто думал, может есть еще варианты ... видимо нет :)

    тогда вопрос про ЗАПОЛНЕНИЕ ТАБЛИЧНОЙ ЧАСТИ.
    в данной задачке решил использовать всеми известный код заполнения табличной части:

    Код:
    Функция СведенияОВнешнейОбработке() Экспорт
    
        Назначения = Новый Массив;
        Назначения.Добавить("Документ.ПодтверждениеНулевойСтавкиНДС");
        ПараметрыРегистрации = Новый Структура;
        ПараметрыРегистрации.Вставить("Вид", "ЗаполнениеОбъекта");
        ПараметрыРегистрации.Вставить("Назначение", Назначения);
        ПараметрыРегистрации.Вставить("Наименование", "Заполнить по периоду");
        ПараметрыРегистрации.Вставить("Версия", "1.0");
        ПараметрыРегистрации.Вставить("Информация", "Заполняет документ Подтверждение нулевой ставки НДС за выбранный период");
        ПараметрыРегистрации.Вставить("БезопасныйРежим", Истина);
    
        Команды = ПолучитьТаблицуКоманд();
        ДобавитьКоманду(Команды, "Подтверждение нулевой ставки НДС за период", "ПодтверждениеНулевойСтавкиНДС", "ЗаполнениеФормы", Истина);
        ПараметрыРегистрации.Вставить("Команды",Команды);
    
        Возврат ПараметрыРегистрации;
    
    КонецФункции
    
    Функция ПолучитьТаблицуКоманд()
        Команды = Новый ТаблицаЗначений;
        Команды.Колонки.Добавить("Представление", Новый ОписаниеТипов("Строка"));
        Команды.Колонки.Добавить("Идентификатор", Новый ОписаниеТипов("Строка"));
        Команды.Колонки.Добавить("Использование", Новый ОписаниеТипов("Строка"));
        Команды.Колонки.Добавить("ПоказыватьОповещение", Новый ОписаниеТипов("Булево"));
        //Команды.Колонки.Добавить("Модификатор", Новый ОписаниеТипов("Строка"));
        Возврат Команды;
    КонецФункции
    
    Процедура ДобавитьКоманду(ТаблицаКоманд, Представление, Идентификатор, Использование, ПоказыватьОповещение = Истина)
        НоваяКоманда = ТаблицаКоманд.Добавить();
        НоваяКоманда.Представление = Представление;
        НоваяКоманда.Идентификатор = Идентификатор;
        НоваяКоманда.Использование = Использование;
        НоваяКоманда.ПоказыватьОповещение = ПоказыватьОповещение;
        //НоваяКоманда.Модификатор = Модификатор;
    КонецПроцедуры
    Но, как видно из кода, я решил использовать команду ЗаполнениеФормы, вместо всеми любимой ВызовКлиентскогоМетода, т.к. написано, что именно ТипКомандыЗаполнениеФормы возвращает имя типа команд по заполнению формы без записи объекта - я считаю, что именно она и нужна.
    НО, в инете информации по данной команде я не нахожу - видимо мало кто ей пользуется что ли. А при подключении внешней обработки 1С выдает следующее сообщение об ошибке:
    upload_2017-12-22_10-51-8.png

    Что не так с этой командой? Как ее правильно использовать? Подскажите плиз или я все-таки не ту команду по заполнению табличной части юзаю?
  4. nomad_irk
    Offline

    nomad_irk Гуру в 1С

    Регистрация:
    20 окт 2008
    Сообщения:
    9.890
    Симпатии:
    1.030
    Баллы:
    204
    Почитайте документацию о создании внешних обработок для БСП на ИТС.