|
Как засунуть договор в построитель отчета? | ☑ | ||
---|---|---|---|---|
0
Мисти
03.09.16
✎
22:54
|
ПостроительОтчета = Новый ПостроительОтчета;
Поле = ПостроительОтчета.Отбор.Добавить("Договор","Договор","Договор"); Украла где-то такой кусочек, но так она не ест! Мне нужно смоделировать вызов интерактивной процедуры, где отбор заполняется руками. Тип значения передаваемого реквизита потом - ПостроительОтчета, что туда запихнуть я знаю. |
|||
1
wertyu
03.09.16
✎
22:58
|
Поле = ПостроительОтчета.Отбор.Добавить("Договор")
|
|||
2
wertyu
03.09.16
✎
22:59
|
а потом присвоить значение
|
|||
3
Мисти
03.09.16
✎
23:02
|
wertyu, а вот не нравится ему это!
{ВнешняяОбработка.ВосстановитьВзаиморасчетыПо60счету.Форма.Форма.Форма(93)}: Ошибка при вызове метода контекста (Добавить) Поле = ПостроительОтчета.Отбор.Добавить("Договор","Договор","Договор"); по причине: Недопустимое значение параметра (параметр номер '1') |
|||
4
wertyu
03.09.16
✎
23:03
|
у тебя поле Договор есть в построителе?
|
|||
5
wertyu
03.09.16
✎
23:04
|
сам построитель чему равен?
|
|||
6
Мисти
03.09.16
✎
23:08
|
ПостроительОтчета.ДоступныеПоля.Добавить("Договор") - может, сначала доступные поля добавить?
Я его только что создала - ПостроительОтчета = Новый ПостроительОтчета; Ничего у меня там нет пока |
|||
7
wertyu
03.09.16
✎
23:16
|
(6) ты в какой конфигурации?
|
|||
8
Мисти
03.09.16
✎
23:18
|
упп
|
|||
9
wertyu
03.09.16
✎
23:19
|
(8) ты новый отчёт делаешь? или меняешь старый?
|
|||
10
Мисти
03.09.16
✎
23:27
|
Там есть обработка ПодборПараметровРасшифровкиПлатежа
Мне нужно, чтобы она отработала не открываясь. Обычно онаработает интерактивно, но там есть вариант и "изнутри" Я вызываю процедуру УправлениеДенежнымиСредствами.ЗаполнитьРасшифровкуПлатежей(СтруктураПараметров); А в структуру параметров помимо прочего вставлено СтруктураПараметров.Вставить("СтруктураПараметровАвто" ,СтруктураПараметровАвто); а в нее предварительно - СтруктураПараметровАвто.Вставить("ОтборПоДоговорам",ПостроительОтчета.Отбор); И вот в этот построитель мне нужно воткнуть свой договор |
|||
11
youalex
03.09.16
✎
23:57
|
(0) а вот не нужно всякую гадость в построитель пихать.
|
|||
12
wertyu
04.09.16
✎
00:01
|
(10) это для документов платежей
|
|||
13
wertyu
04.09.16
✎
00:04
|
там нет никаких построителей отчёта
|
|||
14
Мисти
04.09.16
✎
00:04
|
Да, правильно. У меня всё работало (обработка, которая заполняла все табличные части списания с р/с документами поступления товаров (нужными), пока не оказалось, что там нужно заполнять строго по договору.
|
|||
15
wertyu
04.09.16
✎
00:05
|
соберись, и опиши задачу
|
|||
16
Мисти
04.09.16
✎
00:05
|
(13) есть! Реквизит ПостроительОтбораДоговоров типа "построительОтчетов"
|
|||
17
wertyu
04.09.16
✎
00:06
|
(11) надо помочь, взрослая девушка
|
|||
18
wertyu
04.09.16
✎
00:06
|
(14) какой документ?
|
|||
19
Мисти
04.09.16
✎
00:08
|
В цикле работает такая процедура -
Процедура ЗаполнитьПоруч(ПлатПоруч) Док = ПлатПоруч.Ссылка; ДокОбъект = ПлатПоруч.ПолучитьОбъект(); Если ДокОбъект.Проведен Тогда ДокОбъект.Записать(РежимЗаписиДокумента.ОтменаПроведения); КонецЕсли; ДДС = ДокОбъект.РасшифровкаПлатежа[0].СтатьяДвиженияДенежныхСредств; ДокОбъект.РасшифровкаПлатежа.Очистить(); СтруктураПараметровАвто = Новый Структура; СтруктураПараметровАвто.Вставить("УчитыватьФактическиеЗадолженности",Истина); СтруктураПараметровАвто.Вставить("УчитыватьОперативныеЗадолженности",Ложь); СтруктураПараметровАвто.Вставить("ПодбиратьСумму",Истина); СтруктураПараметровАвто.Вставить("СпособЗаполнения","ФИФО"); СтруктураПараметровАвто.Вставить("СуммаДляПодбора",Док.СуммаДокумента); СтруктураПараметровАвто.Вставить("ПоЗаявкам",Ложь); СтруктураПараметровАвто.Вставить("ПодбиратьПланируемыеДвижения",Ложь); СтруктураПараметровАвто.Вставить("НеПревышатьЗапланированныхЗначений",Ложь); СтруктураПараметровАвто.Вставить("ВключенныеВПлатежныйКалендарь",Ложь); СтруктураПараметровАвто.Вставить("ПодборПоСуммеПлатежа",Истина); // Юля сентябрь 2016 //СтруктураПараметровАвто.ОтборПоДоговорам ПостроительОтчета = Новый ПостроительОтчета; Поле = ПостроительОтчета.ДоступныеПоля.Добавить("ДоговорКонтрагента", "Договор", Новый ОписаниеТипов("СправочникСсылка.ДоговорыКонтрагентов")); //Поле.Измерение = Истина; //Поле.Отбор = Истина; //Отбор = ПостроительОтчета.Отбор; Поле = ПостроительОтчета.Отбор.Добавить("Договор","Договор","Договор"); Поле.Использование = Истина; Поле.ВидСравнения = ВидСравнения.Равно; Поле.Значение = Док.РасшифровкаПлатежа[0].ДоговорКонтрагента; Поле.ПутьКДанным = "ДоговорКонтрагента"; СтруктураПараметровАвто.Вставить("ОтборПоДоговорам",ПостроительОтчета.Отбор); СтруктураПараметров = Новый Структура; СтруктураПараметров.Вставить("Организация" ,Док.Организация); СтруктураПараметров.Вставить("Контрагент" ,Док.Контрагент); СтруктураПараметров.Вставить("ВалютаДокумента" ,Док.ВалютаДокумента); СтруктураПараметров.Вставить("СуммаДокумента" ,Док.СуммаДокумента); СтруктураПараметров.Вставить("ДатаДок" ,Док.Дата); СтруктураПараметров.Вставить("ВидОперацииДок" ,Док.ВидОперации); СтруктураПараметров.Вставить("РасшифровкаПлатежа" ,ДокОбъект.РасшифровкаПлатежа); СтруктураПараметров.Вставить("КурсДокумента" ,1); СтруктураПараметров.Вставить("КратностьДокумента" ,1); Если ТипЗнч(Док) = Тип("ДокументСсылка.ПлатежноеПоручениеИсходящее") Тогда СтруктураПараметров.Вставить("ТипЗадолженности" ,"<0"); Иначе СтруктураПараметров.Вставить("ТипЗадолженности" ,">0"); КонецЕсли; СтруктураПараметров.Вставить("Интерактивно" ,Ложь); СтруктураПараметров.Вставить("ПлатежПоСуммеВзаиморасчетов" ,Ложь); СтруктураПараметров.Вставить("СтруктураПараметровАвто" ,СтруктураПараметровАвто); СтруктураПараметров.Вставить("ФормаОплаты" ,Перечисления.ВидыДенежныхСредств.Безналичные); СтруктураПараметров.Вставить("БанковскийСчетКасса" ,Док.СчетОрганизации); СтруктураПараметров.Вставить("ВидОперацииПлан" ,УправлениеДенежнымиСредствами.ОпределитьВидОперацииПлан(Док.ВидОперации)); СтруктураПараметров.Вставить("ИмяРегистраПлан" ,"ПланируемыеПоступленияДенежныхСредств"); СтруктураПараметров.Вставить("СсылкаНаДокумент" , ДокОбъект); СтруктураПараметров.Вставить("ОтражатьВБухгалтерскомУчете" ,Док.ОтражатьВБухгалтерскомУчете); // - всё УправлениеДенежнымиСредствами.ЗаполнитьРасшифровкуПлатежей(СтруктураПараметров); //ДокОбъект.РасшифровкаПлатежа[0].СтатьяДвиженияДенежныхСредств = ДДС; Для каждого Стр из ДокОбъект.РасшифровкаПлатежа Цикл Стр.СтатьяДвиженияДенежныхСредств = ДДС; КонецЦикла; ДокОбъект.Записать(РежимЗаписиДокумента.Запись); |
|||
20
Мисти
04.09.16
✎
00:09
|
И всё было хорошо, только нужно еще договор туда вставить.
Вот этот кусок (он недоделанный) не работает - // Юля сентябрь 2016 //СтруктураПараметровАвто.ОтборПоДоговорам ПостроительОтчета = Новый ПостроительОтчета; Поле = ПостроительОтчета.ДоступныеПоля.Добавить("ДоговорКонтрагента", "Договор", Новый ОписаниеТипов("СправочникСсылка.ДоговорыКонтрагентов")); //Поле.Измерение = Истина; //Поле.Отбор = Истина; //Отбор = ПостроительОтчета.Отбор; Поле = ПостроительОтчета.Отбор.Добавить("Договор","Договор","Договор"); Поле.Использование = Истина; Поле.ВидСравнения = ВидСравнения.Равно; Поле.Значение = Док.РасшифровкаПлатежа[0].ДоговорКонтрагента; Поле.ПутьКДанным = "ДоговорКонтрагента"; СтруктураПараметровАвто.Вставить("ОтборПоДоговорам",ПостроительОтчета.Отбор); |
|||
21
youalex
04.09.16
✎
00:10
|
(17) "что туда запихнуть я знаю." даже не сомневаюсь
|
|||
22
Мисти
04.09.16
✎
00:10
|
(21) В том смысле, что у меня есть этот договор!
|
|||
23
youalex
04.09.16
✎
00:13
|
(22) то есть что запихнуть - уже есть, но оно - не запихивается? Хм. Попробуйте другой стороной.
|
|||
24
wertyu
04.09.16
✎
00:14
|
(19) а что у те в УправлениеДенежнымиСредствами.ЗаполнитьРасшифровкуПлатежей(
|
|||
25
wertyu
04.09.16
✎
00:14
|
у тебя*
|
|||
26
wertyu
04.09.16
✎
00:16
|
и в обработке проведения
|
|||
27
youalex
04.09.16
✎
00:17
|
(23) + в смысле - у построителя отчетов есть ДоступныеПоля (вроде так) - это то, куда можно пихать, и высовывать наружу.
Может там посмотреть (они создаются на базе или источника данных, или текста построителя) |
|||
28
wertyu
04.09.16
✎
00:18
|
с чего ты вообще решила, что это построитель отчёта? мне просто интересно
|
|||
29
Мисти
04.09.16
✎
00:21
|
(28) Так обозначен тип реквизита.
|
|||
30
wertyu
04.09.16
✎
00:25
|
ты саму задачу напиши
|
|||
31
Мисти
04.09.16
✎
00:25
|
Как взять новый пустой
ПостроительОтчета = Новый ПостроительОтчета; И заполнить в нем отбор? Больше мне ничего не надо! Там не строится отчет этим построителем, используется только отбор по договорам для задания данных дальше. (24,26) Это не имеет значения. Если у тебя есть УПП - посмотри, пожалуйста - прямо в базе при заполнении списка расшифровки платежей вызывается обработка, на отдельной закладке там список договоров. Вот мне его программно нужно заполнить (остальное всё программно заполняется и работает) |
|||
32
wertyu
04.09.16
✎
00:27
|
// Юля сентябрь 2016 //СтруктураПараметровАвто.ОтборПоДоговорам
ПостроительОтчета = Новый ПостроительОтчета; Поле = ПостроительОтчета.ДоступныеПоля.Добавить("ДоговорКонтрагента", "Договор", Новый ОписаниеТипов("СправочникСсылка.ДоговорыКонтрагентов")); это просто трата места |
|||
33
Мисти
04.09.16
✎
00:27
|
Я в 14 написала. В УПП типовой - или руками проставлять все документы (в ПТУ - оплату, в оплате - ПТУ и т.д.) или встроенной (что-то типа восстановления расчетов_, но если встроенной, то при любом перепроведении всё опять слетает. Мы решили смоделировать ручное заполнение, но чтобы оно работало автоматически. Сейчас речь только об автоматическом подборе документов в "списание с расчетного счета"
|
|||
34
Мисти
04.09.16
✎
00:29
|
(32) Я экспериментирую!
Поле = ПостроительОтчета.ДоступныеПоля.Добавить("ДоговорКонтрагента", "Договор", Новый ОписаниеТипов("СправочникСсылка.ДоговорыКонтрагентов")); - это работает, а Поле = ПостроительОтчета.Отбор.Добавить("Договор","Договор","Договор"); - нет |
|||
35
wertyu
04.09.16
✎
00:31
|
(34) это не эксперимент, у него конечного результата не будет
>>> пока не оказалось, что там нужно заполнять строго по договору. по какому договору? |
|||
36
Мисти
04.09.16
✎
00:33
|
Поле.Значение = Док.РасшифровкаПлатежа[0].ДоговорКонтрагента;
|
|||
37
Мисти
04.09.16
✎
00:34
|
Ну, я не знаю, чего этому построителю не хватает и почему он не понимает, что такое "отбор". Что-то я ему не задала еще!
|
|||
38
wertyu
04.09.16
✎
00:34
|
(36) это где?
|
|||
39
youalex
04.09.16
✎
00:35
|
(32) это просто трата места
ПОТРАЧЕНО (С) |
|||
40
wertyu
04.09.16
✎
00:36
|
картинку этого построителя дай, на "отбор"
|
|||
41
wertyu
04.09.16
✎
00:37
|
(39) мисти детям преподаёт
|
|||
42
Мисти
04.09.16
✎
00:37
|
Нет картинки!!
|
|||
43
wertyu
04.09.16
✎
00:37
|
(42) сделай!
|
|||
44
Мисти
04.09.16
✎
00:37
|
(41) я??
|
|||
45
Мисти
04.09.16
✎
00:40
|
||||
46
Мисти
04.09.16
✎
00:43
|
В модуле "управлениеДенежнымиСредствами" работает такой кусок -
СтруктураПараметровАвто=СтруктураПараметров.СтруктураПараметровАвто; ОбработкаОбъект.УчитыватьФактическиеЗадолженности=СтруктураПараметровАвто.УчитыватьФактическиеЗадолженности; ОбработкаОбъект.УчитыватьОперативныеЗадолженности=СтруктураПараметровАвто.УчитыватьОперативныеЗадолженности; ОбработкаОбъект.ПодбиратьСумму=СтруктураПараметровАвто.ПодбиратьСумму; ОбработкаОбъект.СпособЗаполнения=СтруктураПараметровАвто.СпособЗаполнения; ОбработкаОбъект.СуммаДляПодбора=СтруктураПараметровАвто.СуммаДляПодбора; ОбработкаОбъект.ПоЗаявкам=СтруктураПараметровАвто.ПоЗаявкам; ОбработкаОбъект.ПодбиратьПланируемыеДвижения=СтруктураПараметровАвто.ПодбиратьПланируемыеДвижения; ОбработкаОбъект.НеПревышатьЗапланированныхЗначений=СтруктураПараметровАвто.НеПревышатьЗапланированныхЗначений; ОбработкаОбъект.ВключенныеВПлатежныйКалендарь=СтруктураПараметровАвто.ВключенныеВПлатежныйКалендарь; Если СтруктураПараметровАвто.Свойство("ОтборПоДоговорам") Тогда ОбработкаОбъект.ПостроительОтбораДоговоров.УстановитьНастройки(СтруктураПараметровАвто.ОтборПоДоговорам, Истина, Ложь, Ложь, Ложь, Ложь) КонецЕсли; |
|||
47
Мисти
04.09.16
✎
00:43
|
СтруктураПараметровАвто.ОтборПоДоговорам - вот эту штуку я пытаюсь задать в своей обработке.
|
|||
48
wertyu
04.09.16
✎
00:45
|
а в обработке?
|
|||
49
Мисти
04.09.16
✎
00:45
|
Что в обработке?
|
|||
50
wertyu
04.09.16
✎
00:45
|
ОбработкаОбъект=Обработки.ПодборПараметровРасшифровкиПлатежа.Создать();
|
|||
51
Мисти
04.09.16
✎
00:47
|
Я ее не запускаю, я сама задаю все параметры, как если бы она была запущена и передаю их в процедуру в управлениеДенежнымиСредствами
|
|||
52
wertyu
04.09.16
✎
00:48
|
которая её запускает
|
|||
53
Мисти
04.09.16
✎
00:48
|
В ней у меня нет построителя отчета. А надо?
|
|||
54
wertyu
04.09.16
✎
00:49
|
(53) ты обработку открой
|
|||
55
Мисти
04.09.16
✎
00:50
|
Процедура ЗаполнитьРасшифровкуПлатежей(СтруктураПараметров) Экспорт
Если СтруктураПараметров.Организация.Пустая() Тогда ОбщегоНазначения.СообщитьОбОшибке("Не указана организация."); Возврат; КонецЕсли; Если НЕ ЗначениеЗаполнено(СтруктураПараметров.Контрагент) Тогда ОбщегоНазначения.СообщитьОбОшибке("Не указан контрагент."); Возврат; КонецЕсли; ОбработкаОбъект=Обработки.ПодборПараметровРасшифровкиПлатежа.Создать(); ОбработкаОбъект.КурсДокумента =СтруктураПараметров.КурсДокумента; ОбработкаОбъект.КратностьДокумента =СтруктураПараметров.КратностьДокумента; ОбработкаОбъект.ТипЗадолженности =СтруктураПараметров.ТипЗадолженности; ОбработкаОбъект.Контрагент =СтруктураПараметров.Контрагент; ОбработкаОбъект.ФормаОплаты =СтруктураПараметров.ФормаОплаты; ОбработкаОбъект.ИмяРегистраПлан =СтруктураПараметров.ИмяРегистраПлан; ОбработкаОбъект.ВидОперацииПлан =СтруктураПараметров.ВидОперацииПлан; ОбработкаОбъект.БанковскийСчетКасса =СтруктураПараметров.БанковскийСчетКасса; ОбработкаОбъект.Организация =СтруктураПараметров.Организация; ОбработкаОбъект.ВалютаДокумента =СтруктураПараметров.ВалютаДокумента; ОбработкаОбъект.ДатаДок =СтруктураПараметров.ДатаДок; ОбработкаОбъект.ВидОперацииДок =СтруктураПараметров.ВидОперацииДок; ОбработкаОбъект.РасшифровкаПлатежаДок =СтруктураПараметров.РасшифровкаПлатежа; ОбработкаОбъект.СуммаДляПодбора =СтруктураПараметров.СуммаДокумента; ОбработкаОбъект.ПлатежПоСуммеВзаиморасчетов =СтруктураПараметров.ПлатежПоСуммеВзаиморасчетов; СтруктураПараметров.Свойство("СсылкаНаДокумент", ОбработкаОбъект.ДокументСсылка); СтруктураПараметров.Свойство("ОтражатьВБухгалтерскомУчете", ОбработкаОбъект.ОтражатьВБухгалтерскомУчете); ОбработкаОбъект.ЕстьПодбор =Ложь; Если СтруктураПараметров.Интерактивно Тогда ТекстВидОперации=СтруктураПараметров.ВидОперацииДок.Метаданные().Имя; Если ТекстВидОперации="ВидыОперацийЗаявкиНаРасходование" ИЛИ ТекстВидОперации="ВидыОперацийПланируемоеПоступлениеДС" Тогда ФормаНастройки=ОбработкаОбъект.ПолучитьФорму("ПараметрыЗаполненияПлан"); Иначе ФормаНастройки=ОбработкаОбъект.ПолучитьФорму("ПараметрыЗаполнения"); КонецЕсли; ФормаНастройки.ОткрытьМодально(); Иначе СтруктураПараметровАвто=СтруктураПараметров.СтруктураПараметровАвто; ОбработкаОбъект.УчитыватьФактическиеЗадолженности=СтруктураПараметровАвто.УчитыватьФактическиеЗадолженности; ОбработкаОбъект.УчитыватьОперативныеЗадолженности=СтруктураПараметровАвто.УчитыватьОперативныеЗадолженности; ОбработкаОбъект.ПодбиратьСумму=СтруктураПараметровАвто.ПодбиратьСумму; ОбработкаОбъект.СпособЗаполнения=СтруктураПараметровАвто.СпособЗаполнения; ОбработкаОбъект.СуммаДляПодбора=СтруктураПараметровАвто.СуммаДляПодбора; ОбработкаОбъект.ПоЗаявкам=СтруктураПараметровАвто.ПоЗаявкам; ОбработкаОбъект.ПодбиратьПланируемыеДвижения=СтруктураПараметровАвто.ПодбиратьПланируемыеДвижения; ОбработкаОбъект.НеПревышатьЗапланированныхЗначений=СтруктураПараметровАвто.НеПревышатьЗапланированныхЗначений; ОбработкаОбъект.ВключенныеВПлатежныйКалендарь=СтруктураПараметровАвто.ВключенныеВПлатежныйКалендарь; Если СтруктураПараметровАвто.Свойство("ОтборПоДоговорам") Тогда ОбработкаОбъект.ПостроительОтбораДоговоров.УстановитьНастройки(СтруктураПараметровАвто.ОтборПоДоговорам, Истина, Ложь, Ложь, Ложь, Ложь) КонецЕсли; Если СтруктураПараметровАвто.ПоЗаявкам Тогда ОбработкаОбъект.ЗаполнитьРасшифровкуПоПланам(); Иначе ОбработкаОбъект.ЗаполнитьРасшифровкуПоДолгам(СтруктураПараметровАвто.ПодборПоСуммеПлатежа,Ложь); КонецЕсли; КонецЕсли; КонецПроцедуры |
|||
56
Мисти
04.09.16
✎
00:51
|
(54) Какую?
|
|||
57
wertyu
04.09.16
✎
00:51
|
ПодборПараметровРасшифровкиПлатежа
|
|||
58
wertyu
04.09.16
✎
00:52
|
нехило я прокачал
|
|||
59
Мисти
04.09.16
✎
00:52
|
Ну вот я эту картинку и прислала.
|
|||
60
wertyu
04.09.16
✎
00:53
|
(59) тебе там надо условие прописать в ПриОткрытии
|
|||
61
Мисти
04.09.16
✎
00:55
|
Это если не получится извне туда запихнуть, я так и хотела сделать сразу, но мне кажется, что можно и в параметр вызова засунуть, разве нет?
|
|||
62
Мисти
04.09.16
✎
00:56
|
И потом! Она у меня не открывается!!!
|
|||
63
Мисти
04.09.16
✎
00:58
|
в (55) написан код - там есть вариант, что это открыто интерактивно, а у меня - второй вариант. Она создается и заполняет мой документ расшифровкой.
|
|||
64
wertyu
04.09.16
✎
00:59
|
(61) так у тебя и есть параметры, целая структура
|
|||
65
youalex
04.09.16
✎
00:59
|
(61) я всё
|
|||
66
Мисти
04.09.16
✎
01:05
|
Есть, и вот эта штука - СтруктураПараметровАвто.ОтборПоДоговорам должна быть построителем отчета, в котором задан мой отбор.
|
|||
67
Мисти
05.09.16
✎
10:21
|
Не верю, что это невозможно!
|
|||
68
Мисти
06.09.16
✎
11:32
|
Ну что, не будет больше советов?
Построитель отчета нельзя передать как параметр? |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |