|
в БП 30 расширение, как правильно сделать? | ☑ | ||
---|---|---|---|---|
0
ded20ded
04.01.22
✎
10:41
|
Добрый день. Всех с наступившим новым годом.
Делаю расширение в счет фактуре выданной, нужно заполнить оплаты. Сделал кнопку на форму. Но что-то не работает. Помогите как правильно сделать. &НаСервере Процедура СФВ_ЗаполнитьОплатыПосле(Команда) // Вставить содержимое обработчика. Запрос = Новый Запрос; Запрос.УстановитьПараметр("ДатаНачало", '20210101000000'); Запрос.УстановитьПараметр("ДатаОкончания", Объект.Дата); Запрос.УстановитьПараметр("ДоговорКонтрагента", Объект.ДоговорКонтрагента); Запрос.Текст = "ВЫБРАТЬ | ПоступлениеНаРасчетныйСчет.НомерВходящегоДокумента КАК НомерВходящегоДокумента, | ПоступлениеНаРасчетныйСчет.ДатаВходящегоДокумента КАК ДатаВходящегоДокумента |ИЗ | Документ.ПоступлениеНаРасчетныйСчет КАК ПоступлениеНаРасчетныйСчет |ГДЕ | ПоступлениеНаРасчетныйСчет.Проведен = ИСТИНА | И ПоступлениеНаРасчетныйСчет.ДоговорКонтрагента = &ДоговорКонтрагента | И ПоступлениеНаРасчетныйСчет.Дата МЕЖДУ &ДатаНачало И &ДатаОкончания"; Выборка = Запрос.Выполнить().Выбрать(); Если Выборка.Количество()> 0 Тогда Если Выборка.Следующий() Тогда СтрокаТЧ = Объект.ПлатежноРасчетныеДокументы.Добавить(); СтрокаТЧ.ПлатежноРасчетныеДокументыДатаДокумента=Выборка.ДатаВходящегоДокумента; СтрокаТЧ.ПлатежноРасчетныеДокументыНомерДокумента=Выборка.НомерВходящегоДокумента; КонецЕсли; Иначе Сообщить("Оплат по данному договору - "+СокрЛП(Объект.ДоговорКонтрагента)+" не было."); КонецЕсли; КонецПроцедуры |
|||
1
SuperMario
04.01.22
✎
10:45
|
Сделай обработку заполнения многострочных частей документов м подключи её.
Понимаю, что для Вас это сейчас сложно. Но зато скил вкачаете себе ;-) |
|||
2
SuperMario
04.01.22
✎
10:47
|
(0) а по вопросу , что не так
СтрокаТЧ = >>Объект<< это не тот тип, что вам нужен Это коллекция, а не объект .ПлатежноРасчетныеДокументы.Добавить(); |
|||
3
ded20ded
04.01.22
✎
10:53
|
(2) как правильно получить коллекцию?
|
|||
4
ded20ded
04.01.22
✎
10:54
|
Ставлю точку остановки "Выборка = Запрос.Выполнить().Выбрать();" но как буд-то не отрабатывается
|
|||
5
Фрэнки
04.01.22
✎
10:57
|
(4) А если простую внешнюю обработку делаешь - обрабатывается?
|
|||
6
ded20ded
04.01.22
✎
11:00
|
(5) увы не умею, запрос проверил работает данные выдает
|
|||
7
ded20ded
04.01.22
✎
11:01
|
(1) SuperMario примером не поделитесь? попробую разобраться
(5) Фрэнки а промером не поделитесь? |
|||
8
Фрэнки
04.01.22
✎
11:11
|
(7) каким именно примером? На заполнение колонки в ТЧ внешней подключаемой обработкой или с использованием Расширения или просто не подключаемой внешней вспомогательной обработкой, где удобно проверять написанный код процедур?
Создаешь новый файл конфигуратором, выбираешь что это внешняя обработка, сразу проваливаешься в модуль объекта, создаешь процедуру и пишешь там любой код, можно и конструктором запросов с обработкой результата. Поскольку такая обработка находится в контексте типового решения, а не расширения, то получаешь обыкновенный работающий код для работы с запросом, который можно затем скопировать почти куда угодно и он будет синтаксически правильным везде. ( возможно, что не везде работающим, но не по причине синтаксиса :-) ) |
|||
9
hhhh
04.01.22
✎
11:45
|
(7) добавьте в расширение эти ПлатежноРасчетные документы, и все реквизиты табчасти тоже добавьте.
|
|||
10
ded20ded
04.01.22
✎
11:55
|
(9) добавил все но результат не изменился
|
|||
11
ded20ded
04.01.22
✎
12:06
|
||||
12
hhhh
04.01.22
✎
13:07
|
(11) вот тут
&НаСервере Процедура СФВ_ЗаполнитьОплатыПосле(Команда) какая-то невероятная хрень. Откуда это? В расширении должно быть совсем по другому. |
|||
13
Михаил Козлов
04.01.22
✎
14:07
|
(0) В если это ППВ не для реализации, связанной с СФ?
Прикиньте, как это будет работать, если по договору несколько реализаций и оплат. Кроме того, платежные документы имеет смысл заполнять, только если это СФ на аванс (возможно, ошибаюсь). |
|||
14
SuperMario
04.01.22
✎
14:45
|
(7) куда пример кинуть? Почты в профиле не нашел
|
|||
15
ded20ded
04.01.22
✎
14:46
|
[email protected]
спасибо |
|||
16
SuperMario
04.01.22
✎
15:06
|
(15) лови
|
|||
17
ded20ded
04.01.22
✎
15:12
|
&НаКлиенте
Процедура СФВ_ЗаполнитьОплатыПосле(Команда) //// Вставить содержимое обработчика. // Таб = Новый ТаблицаЗначений; ПолучитьОплатыПоДоговору(); КоличествоСтрок=Таб.Количество(); Если КоличествоСтрок > 0 Тогда Для Каждого ТекстСтрока из Таб Цикл СтрокаТЧ = Объект.ПлатежноРасчетныеДокументы.Добавить(); СтрокаТЧ.ПлатежноРасчетныеДокументыДатаДокумента=СокрЛП(ТекстСтрока.ДатаВходящегоДокумента); СтрокаТЧ.ПлатежноРасчетныеДокументыНомерДокумента=ТекстСтрока.НомерВходящегоДокумента; КонецЦикла; Иначе Сообщить("Оплат по данному договору - "+СокрЛП(Объект.ДоговорКонтрагента)+" не было."); КонецЕсли; |
|||
18
ded20ded
04.01.22
✎
15:13
|
СтрокаТЧ = Объект.ПлатежноРасчетныеДокументы.Добавить();
Возращает ДанныеФормыЭлементКоллекции а как заполнить таблицу ПлатежноРасчетныеДокументы |
|||
19
hhhh
04.01.22
✎
15:30
|
(18) это всё правильно у тебя
|
|||
20
ded20ded
04.01.22
✎
15:42
|
https://cloud.mail.ru/public/n3Je/vE6J8uF5R
Спасибо, все получилось |
|||
21
ded20ded
04.01.22
✎
15:42
|
Заполнение оплат по договору
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |