![]() |
![]() |
![]() |
|
Отбор во внешних печатных формах | ☑ | ||
---|---|---|---|---|
0
mzelensky
11.01.13
✎
13:59
|
Доброго всем!
В типовых имеется механизм подключения внешних печатных форм с отбором. Отбор реализован через построитель: Функция ИнициализироватьПостроительДопПечатныхФорм(ИмяТаблицы, СинонимТаблицы) Экспорт ПостроительОтчета = Новый ПостроительОтчета; ПостроительОтчета.Текст = " |ВЫБРАТЬ ПЕРВЫЕ 1 | Объект.Ссылка КАК Ссылка |ИЗ | " + ИмяТаблицы + " КАК Объект |ГДЕ | Объект.Ссылка = &Ссылка |{ГДЕ | Объект.Ссылка.*} |"; ПолеОбъекта = ПостроительОтчета.ДоступныеПоля.Найти("Ссылка"); ПолеОбъекта.Представление = ?(НЕ ЗначениеЗаполнено(СинонимТаблицы), ИмяТаблицы, СинонимТаблицы); Возврат ПостроительОтчета; КонецФункции // ( НастройкиПостроителя = Выборка.НастройкиПостроителяДляОтбора.Получить(); Если ТипЗнч(НастройкиПостроителя) = Тип("НастройкиПостроителяОтчета") Тогда ПостроительОтчета = УниверсальныеМеханизмы.ИнициализироватьПостроительДопПечатныхФорм(ИмяТаблицыОбъекта, МетаданныеОбъекта.Синоним); ПостроительОтчета.Параметры.Вставить("Ссылка", Объект.ссылка); ПостроительОтчета.УстановитьНастройки(НастройкиПостроителя, Истина, Ложь, Ложь, Ложь, Ложь); ПостроительОтчета.Выполнить(); Если ПостроительОтчета.Результат.Пустой() Тогда Продолжить; КонецЕсли; КонецЕсли; В принципе все просто и понятно, но как всегда есть "НО"!Заключается оно в этой строчке: ПостроительОтчета.Параметры.Вставить("Ссылка", Объект.ссылка); Т.е. для сравнения (отбора) передается ссылка на объект. А в моем случае объект может быть еще не записанным (т.е. ссылка как таковой еще нет). Следовательно отбор не отрабатывает. Как можно допилить все это для "нового объекта"?! |
|||
1
mzelensky
11.01.13
✎
14:01
|
П.С. самое просто это конечно перевод выполнением алгоритма записать объект, но делать этого не хочется т.к. вызов данного алгоритма происходит (например) при вводе на основании и получится, что объект при создании сразу будет записываться еще даже ДО показа пользователю (а этого делать не хочется)
|
|||
2
mzelensky
11.01.13
✎
14:09
|
ну апну что ле
|
|||
3
Wobland
11.01.13
✎
14:10
|
ну апни. меня когда-то интересовал вопрос, зачем оно меня просит записать документ перед печатью (типовое решение), но потом сделал себе так же и забыл
|
|||
4
mzelensky
11.01.13
✎
14:12
|
(3) мне это не нравится. Я понимаю прекрасно зачем оно это просит, но мне нужно обойти это как-то :(
|
|||
5
mzelensky
11.01.13
✎
14:22
|
что-то народ какой-то тухлый...все видать в пятнице сидят
|
|||
6
steptostep
11.01.13
✎
14:32
|
Попробуй через УстановитьСсылкуНового(Документы.ВидДокумента.ПолучитьСсылку(Новый УникальныйИдентификатор))
|
|||
7
mzelensky
11.01.13
✎
14:46
|
сейчас сделал через транзакцию
Проверяю объект на "новый". и если он таковой, то в транзакции записываю его, произвожу отбор, а затем отменяю транзакцию... Твой вариант сейчас тоже попробую |
|||
8
mzelensky
11.01.13
✎
14:50
|
(6) не, не канает :(
|
|||
9
mzelensky
14.01.13
✎
08:00
|
попробую поднять в понедельник, а то вечер пятницы не очень хорошее время для интелектуальных вопросов.
|
|||
10
mzelensky
14.01.13
✎
09:52
|
ну так кто-нить проснулся уже?!
|
|||
11
Defender aka LINN
14.01.13
✎
09:58
|
(0) Ащета перед печатью документ в типовых записывается. И во внешнюю ПФ передается ссылка, а не объект.
|
|||
12
mzelensky
14.01.13
✎
10:02
|
(11) а кто тебе сказал ,что это типовая?
|
|||
13
mzelensky
14.01.13
✎
10:03
|
(12) + читаем в (0)
"А в моем случае объект может быть еще не записанным (т.е. ссылка как таковой еще нет). Следовательно отбор не отрабатывает. Как можно допилить все это для "нового объекта"?!" Т.е. в моем случе данный механизм "отбора" может запускаться еще ДО записи нового объекта! |
|||
14
pessok
14.01.13
✎
10:06
|
(13) ну в твоем уникальном случае ты нашел нормальное решение с транзакцией, хоть и от лукавого это, имхо
|
|||
15
mzelensky
14.01.13
✎
10:08
|
(14) согласен, мне тоже через "транзакцию не нравится", но другого варианта сам не нашел, а у народа видать тоже мыслей не очень то...
|
|||
16
pessok
14.01.13
✎
10:12
|
странно, что не работает (6)...
|
|||
17
mzelensky
14.01.13
✎
10:16
|
(16) как я понимаю таким образом устанавливается идентификатор, который БУДЕТ установлен при записи объекта, но по факту до записи ссылки как не было, так и нет.
Я только такое объяснение вижу. Попробуй сам, может я что-то косякнул? |
|||
18
pessok
14.01.13
✎
10:18
|
(17) да все правильно ты понимаешь, это я туплю :) откуда быть ссылке, когда документ не записан? неоткуда, так что транзакция, да
|
|||
19
Defender aka LINN
14.01.13
✎
10:20
|
(12) Я символизирую, что там не зря так сделано.
|
|||
20
pessok
14.01.13
✎
10:30
|
(19) да дело понятное, особенно с учетом того, что в типовых данные тащятся запросом с условием на ссылку документа, но ведь всякие случаи бывают
|
|||
21
pessok
14.01.13
✎
10:30
|
+(20) _чаще_ всего тащятся
|
|||
22
steptostep
14.01.13
✎
13:04
|
(0) (15) так из постановки задачи "Отбор реализован через построитель" явно следует, что документ должен быть записан. Так что, кроме решения с транзакцией может быть только решение со значительной переделкой кода типового механизма.
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |