|
Изменить текст запроса динам. списка вне формы. | ☑ | ||
---|---|---|---|---|
0
SOLO1C
15.07.12
✎
04:02
|
УТ 11 - попытался не влазя в типовые объекты изменить работу формы списка при вызове определенной команды:
&НаКлиенте Процедура ОбработкаКоманды(ПараметрКоманды, ПараметрыВыполненияКоманды) ФормаСпискаЗаказов = ПолучитьФорму("Документ.ЗаказКлиента.Форма.ФормаСпискаДокументов", , // ПараметрыФормы, ПараметрыВыполненияКоманды.Источник, ПараметрыВыполненияКоманды.Уникальность, ПараметрыВыполненияКоманды.Окно ); УстановитьТекстЗапросаСписка(ФормаСпискаЗаказов.Список); ФормаСпискаЗаказов.Открыть(); КонецПроцедуры &НаСервере Процедура УстановитьТекстЗапросаСписка(ДинамическийСписок) ТекстЗамены = "ДокументЗаказКлиента.Ссылка КАК Ссылка,"; ТекстВставки = "ДокументЗаказКлиента.Ссылка КАК Ссылка, ДокументЗаказКлиента.Настройка КАК Настройка,"; ДинамическийСписок.ТекстЗапроса = СтрЗаменить(ДинамическийСписок.ТекстЗапроса,ТекстЗамены,ТекстВставки);КонецПроцедуры Так вот прикол в том что - ошибок при исполнении нет, но в процедуре УстановитьТекстЗапросаСписка ДинамическийСписок.ТекстЗапроса = ""; Вот такая фигня. Никто не знает - можно ли побороть? |
|||
1
SOLO1C
15.07.12
✎
10:47
|
Ап.
|
|||
2
SOLO1C
15.07.12
✎
12:51
|
неужели только я такой 1с-извращенец ) Разве никто не хотел бы форму поменять не трогая ее..
|
|||
3
NcSteel
15.07.12
✎
13:00
|
(0) Запрос надо менять на стороне сервера в форме.
|
|||
4
SOLO1C
15.07.12
✎
13:10
|
Почему именно в форме ? Нигде в синтаксисе про это нету...
Хочу вне формы... |
|||
5
SOLO1C
15.07.12
✎
13:12
|
Вот почему не сделать платформу - чтоб можно было такие вещи делать - вставлять элементы в форму, добавлять модули, менять запросы - блин реально же наверное это не проблема для разработчиков - зато насколько бы повысилась простота обновлений....
Интересно - может в 8.3 это есть... |
|||
6
Rie
15.07.12
✎
13:14
|
(5) Переходи на 7.7, там это реализовано.
|
|||
7
SOLO1C
15.07.12
✎
13:26
|
(6) ну динамических списков я там не видел )) как и программной вставки элементов, так что предложение не дельное.
|
|||
8
SOLO1C
15.07.12
✎
21:31
|
кому уже не терпится снова после выходных взяться за работу ) - напишите.... кто че думает...как можно изменить данные динамического списка не входя в него... ?
|
|||
9
SOLO1C
15.07.12
✎
21:32
|
в смысле не изменяя форму...
|
|||
10
ChAlex
15.07.12
✎
21:41
|
А зачем передавать параметром динамический список. Он и так на сервере доступен Через ЭтаФорма.ДинамическийСпиоск
|
|||
11
SOLO1C
15.07.12
✎
21:47
|
(10) для тех кто читает отрывками ) - я пытаюсь изменить запрос не в контексте формы а в контексте модуля.
|
|||
12
SOLO1C
15.07.12
✎
21:47
|
...модуля команды
|
|||
13
ChAlex
15.07.12
✎
22:27
|
(11) - ну тогда для тех, кто отрывками читает документацию, ну или с логикой дружит орывками. Метод "ПолучитьФорму" создает класс объекта и только (в терминах обычного программирования). ДинамическийСписок.ТекстЗапроса - свойство реквизита класса. Хоть оно и определяется в конфигурации, но все же является таковым, и заполняется значением по умолчанию (то бишь текстом запроса) при инициализации класса (которая еще никем не выполнялась, ибо в 1С форма не открывалась еще, и следовательно не выполнялись никакие методы и события объекта). Так что ничего удивительного в том что значенеи текста запроса не определено. Оперируйте данными в событии "ПриСозданииНаСервере" - после инициализации всех переменных (реквизитов) класса. Там и увидите и текст запроса, там же его можно и поменять. Передавайте параметры в открывающуся форму.
|
|||
14
zladenuw
15.07.12
✎
22:31
|
(13) хорошо объяснил. но прикольно 13 сообщение и всего сообщение 666 у тебя :) шаман
|
|||
15
ChAlex
15.07.12
✎
22:36
|
(14) - нда - на до бы поберечься.. :)
|
|||
16
SOLO1C
16.07.12
✎
02:09
|
(13) На мой взгляд касаемо инициализации свойства - вы ошибаетесь - событие ПриСозданииНаСервере - отрабатывает ДО открытия - при получении формы она создается..... и уже после создания я вижу свойство пустым. Утверждение "1С форма не открывалась еще, и следовательно не выполнялись никакие методы и события объекта" - вообще не имеет права на жизнь )
|
|||
17
ChAlex
16.07.12
✎
11:48
|
(16) - ну ваше право, считайте дальше - и пытайтесь прошибить стену - вдруг получится :) - квантовая теория не противоречит этому
|
|||
18
Fenrus
16.07.12
✎
22:23
|
в подтверждение (16)
Вызывается при создании формы на сервере, до ее открытия. Можно отказаться от создания ПриСозданииНаСервере, OnCreateAtServer |
|||
19
ChAlex
16.07.12
✎
23:30
|
(18) - а собственно в подтверждении чего? Вы хоть в суть проблемы вникли бы, и разделяли бы ИНИЦИАЛИЗАЦИЮ СВОЙСТВ класса (для уточнения - термин ООП, а не 1С!) и события ОБЪЕКТА 1С (в частности формы). Еще раз для тех кто на бронепоезде: отправная точка - пост(0) - последовательность действий:
Шаг 1 - ФормаСпискаЗаказов = ПолучитьФорму... В результате создается экземпляр класса в терминах программирования и объект типа "Форма" в терминах 1С. Что ч точки зрения прграммирования, что с точки зрения 1С этот объкт на уровне внутренних структур не инициализирован!!, т.е. все что в данный момент вы можете получить - так это список реквизитов и ВСЕ!! Шаг 2- с объектом "ФормаСпискаЗаказов" производятся действя якобы по иницциализации текста запроса - УстановитьТекстЗапросаСписка(ФормаСпискаЗаказов.Список). Ну и делайте себе!! только 1С ЭТО ПОФИГУ, потому что далее следует.. Шаг 3 - ФормаСпискаЗаказов.Открыть() - и вот тут между этим действием и событием "ПриСозданииНаСервере" и инициализируется класс (в терминах ООП).Но 1С - не язык прграммирования - и вам предоставляются лишь какие-то точки в довольно сложном процессе создания класса, инициализации и визульного представления. Так вот в этом промежутке 1С херит все ваши действия ранее совершенные и предоставляет вам класс с инициализированными свойствами, которые вы определили в конфигурации!!! И остановитесь отладчиком на шаге 2 и в событии "ПриСозданииНаСервере" и увидите что в первом случае ДинамическийСписок.ТекстЗапроса = "", а во втором ДинамическийСписок.ТекстЗапроса - содержит текст запроса, который задан в КОНФИГУРАЦИИ!!! И все совершенные вами действия - извините слиты в унитаз! Вот если вы сейчас измените текст запроса - то ваши действия будут услышаны! И не путайте ВИЗУАЛЬНОЕ открытие формы и выше изложенные действия!! Ибо инициализация свойств класса не есть отображение формы на экране!!! |
|||
20
Fenrus
17.07.12
✎
02:42
|
(19) мде... смотрю пост и плачу... много ошибок как с точки зрения ООП так и с точки зрения 1с в ваших словах... Для вас 1с не язык программирования? ок. Но судя по вашему "...в довольно сложном процессе создания класса, инициализации и визульного представления." Вы и здесь не далеко ушли(((
Даже в описании очередности вызова обработчиков - и то накосячили... Вы не поверите, но если удосужитесь проверить - то узнаете что при получении формы обработчик события ПриСозданииНаСервере срабатывает. Тоесть все ваши выше изложеные "аргументы и факты" обсалютно не соответсвуют истине. А при открытии отрабатывают максимум события ПриОткрытии и ежи с ними. Так что давайте не будем пытатся блистать познаниями в ООП и принципах работы платформы 1с 8.2 у вас это не оч выходит. А по поводу изначального сабжа, я выдвинул свои предположения Пост стартеру в личку... |
|||
21
i_rodionov
17.07.12
✎
02:44
|
(2) Менять форму не трогая ее можно только управляемые, с помощью функциональных опций
|
|||
22
SOLO1C
30.07.12
✎
01:56
|
(19) Уважаемый, давайте еще разок:
1) Получаем форму 2) Отрабатывает "при создании на сервере" - где из формы можно сменить текст запроса 3) Я меняю это же свойство из-вне 4) Итог известен. Вопрос - как вы своим ООП объясните , почему из формы запрос при ее создании меняется а извне - не меняется ? Или может будете утверждать что ПриСозданииНаСервере будет происходить "на самом деле" ПриОтрытии ) ? |
|||
23
SOLO1C
30.07.12
✎
01:57
|
(21) можете более конкретно - как можно текст запроса повесить на функциональную опцию ?
|
|||
24
zladenuw
30.07.12
✎
03:04
|
может параметры. при создание они точно есть
|
|||
25
zladenuw
30.07.12
✎
03:04
|
там храни свой макет запроса
|
|||
26
zladenuw
30.07.12
✎
03:04
|
и при открытии так же
|
|||
27
SOLO1C
30.07.12
✎
03:47
|
(26) сабж читали ? мне не нужен этот запрос в модуле формы - я там ничего с ним не смогу сделать - форму менять нельзя....
|
|||
28
zladenuw
30.07.12
✎
04:36
|
кинь бд.
|
|||
29
i_rodionov
30.07.12
✎
07:37
|
(23) Если есть возможность в результате запроса сформировать массив булевых значений, тогда можно применить функциональные опции
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |