Вход | Регистрация
 

в БП 30 расширение, как правильно сделать?

в БП 30 расширение, как правильно сделать?
Я
   ded20ded
 
04.01.22 - 10:41
Добрый день. Всех с наступившим новым годом.

Делаю расширение в счет фактуре выданной, нужно заполнить оплаты. Сделал кнопку на форму.
Но что-то не работает. Помогите как правильно сделать.


&НаСервере
Процедура СФВ_ЗаполнитьОплатыПосле(Команда)
    // Вставить содержимое обработчика.
    Запрос = Новый Запрос;
    Запрос.УстановитьПараметр("ДатаНачало",  '20210101000000');
    Запрос.УстановитьПараметр("ДатаОкончания", Объект.Дата);
    Запрос.УстановитьПараметр("ДоговорКонтрагента",   Объект.ДоговорКонтрагента);
    Запрос.Текст = "ВЫБРАТЬ
    |    ПоступлениеНаРасчетныйСчет.НомерВходящегоДокумента КАК НомерВходящегоДокумента,
    |    ПоступлениеНаРасчетныйСчет.ДатаВходящегоДокумента КАК ДатаВходящегоДокумента
    |ИЗ
    |    Документ.ПоступлениеНаРасчетныйСчет КАК ПоступлениеНаРасчетныйСчет
    |ГДЕ
    |    ПоступлениеНаРасчетныйСчет.Проведен = ИСТИНА
    |    И ПоступлениеНаРасчетныйСчет.ДоговорКонтрагента = &ДоговорКонтрагента
    |    И ПоступлениеНаРасчетныйСчет.Дата МЕЖДУ &ДатаНачало И &ДатаОкончания";
    
    Выборка = Запрос.Выполнить().Выбрать();
    Если Выборка.Количество()> 0 Тогда
        Если Выборка.Следующий() Тогда
            СтрокаТЧ = Объект.ПлатежноРасчетныеДокументы.Добавить();
            СтрокаТЧ.ПлатежноРасчетныеДокументыДатаДокумента=Выборка.ДатаВходящегоДокумента;
            СтрокаТЧ.ПлатежноРасчетныеДокументыНомерДокумента=Выборка.НомерВходящегоДокумента;
        КонецЕсли;
    Иначе
        Сообщить("Оплат по данному договору - "+СокрЛП(Объект.ДоговорКонтрагента)+" не было.");
    КонецЕсли;    

    
КонецПроцедуры
   SuperMario
 
1 - 04.01.22 - 10:45
Сделай обработку заполнения многострочных частей документов м подключи её.
Понимаю, что для Вас это сейчас сложно. Но зато скил вкачаете себе ;-)
   SuperMario
 
2 - 04.01.22 - 10:47
(0) а по вопросу , что не так


            СтрокаТЧ = >>Объект<<    это не тот тип, что вам нужен Это коллекция, а не объект    .ПлатежноРасчетныеДокументы.Добавить();
   ded20ded
 
3 - 04.01.22 - 10:53
(2) как правильно получить коллекцию?
   ded20ded
 
4 - 04.01.22 - 10:54
Ставлю точку остановки "Выборка = Запрос.Выполнить().Выбрать();" но как буд-то не отрабатывается
   Фрэнки
 
5 - 04.01.22 - 10:57
(4) А если простую внешнюю обработку делаешь - обрабатывается?
   ded20ded
 
6 - 04.01.22 - 11:00
(5) увы не умею, запрос проверил работает данные выдает
   ded20ded
 
7 - 04.01.22 - 11:01
(1) SuperMario примером не поделитесь? попробую разобраться
(5) Фрэнки а промером не поделитесь?
   Фрэнки
 
8 - 04.01.22 - 11:11
(7) каким именно примером? На заполнение колонки в ТЧ внешней подключаемой обработкой или с использованием Расширения или просто не подключаемой внешней вспомогательной обработкой, где удобно проверять написанный код процедур?

Создаешь новый файл конфигуратором, выбираешь что это внешняя обработка, сразу проваливаешься в модуль объекта, создаешь процедуру и пишешь там любой код, можно и конструктором запросов с обработкой результата. Поскольку такая обработка находится в контексте типового решения, а не расширения, то получаешь обыкновенный работающий код для работы с запросом, который можно затем скопировать почти куда угодно и он будет синтаксически правильным везде. ( возможно, что не везде работающим, но не по причине синтаксиса :-) )
   hhhh
 
9 - 04.01.22 - 11:45
(7) добавьте в расширение эти ПлатежноРасчетные документы, и все реквизиты табчасти тоже добавьте.
   ded20ded
 
10 - 04.01.22 - 11:55
(9) добавил все но результат не изменился
   ded20ded
 
11 - 04.01.22 - 12:06
https://cloud.mail.ru/public/8rBJ/Li5yMhpbg
расширение пока не работает :(
БП 30
   hhhh
 
12 - 04.01.22 - 13:07
(11) вот тут

&НаСервере
Процедура СФВ_ЗаполнитьОплатыПосле(Команда) 

какая-то невероятная хрень. Откуда это? В расширении должно быть совсем по другому.
   Михаил Козлов
 
13 - 04.01.22 - 14:07
(0) В если это ППВ не для реализации, связанной с СФ?
Прикиньте, как это будет работать, если по договору несколько реализаций и оплат.
Кроме того, платежные документы имеет смысл заполнять, только если это СФ на аванс (возможно, ошибаюсь).
   SuperMario
 
14 - 04.01.22 - 14:45
(7) куда пример кинуть? Почты в профиле не нашел
   ded20ded
 
15 - 04.01.22 - 14:46
Layhov@yandex.ru
спасибо
   SuperMario
 
16 - 04.01.22 - 15:06
(15) лови
   ded20ded
 
17 - 04.01.22 - 15:12
&НаКлиенте
Процедура СФВ_ЗаполнитьОплатыПосле(Команда)
    //// Вставить содержимое обработчика.

//    Таб = Новый ТаблицаЗначений;
    ПолучитьОплатыПоДоговору();
    КоличествоСтрок=Таб.Количество();
    Если КоличествоСтрок > 0 Тогда
        Для Каждого ТекстСтрока из Таб Цикл
            СтрокаТЧ = Объект.ПлатежноРасчетныеДокументы.Добавить();
    
            СтрокаТЧ.ПлатежноРасчетныеДокументыДатаДокумента=СокрЛП(ТекстСтрока.ДатаВходящегоДокумента);
            СтрокаТЧ.ПлатежноРасчетныеДокументыНомерДокумента=ТекстСтрока.НомерВходящегоДокумента;
            
        КонецЦикла;    
    Иначе
        Сообщить("Оплат по данному договору - "+СокрЛП(Объект.ДоговорКонтрагента)+" не было."); 
    КонецЕсли;
   ded20ded
 
18 - 04.01.22 - 15:13
СтрокаТЧ = Объект.ПлатежноРасчетныеДокументы.Добавить(); 
Возращает ДанныеФормыЭлементКоллекции а как заполнить таблицу ПлатежноРасчетныеДокументы
   hhhh
 
19 - 04.01.22 - 15:30
(18) это всё правильно у тебя
   ded20ded
 
20 - 04.01.22 - 15:42
https://cloud.mail.ru/public/n3Je/vE6J8uF5R
Спасибо, все получилось
   ded20ded
 
21 - 04.01.22 - 15:42
Заполнение оплат по договору


Список тем форума
 
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.