Изменить текст запроса динам. списка вне формы. #620259


#0 by SOLO1C
УТ 11 - попытался не влазя в типовые объекты изменить работу формы списка при вызове определенной команды: Так вот прикол в том что - ошибок при исполнении нет, но в процедуре УстановитьТекстЗапросаСписка Вот такая фигня. Никто не знает - можно ли побороть?
#1 by SOLO1C
Ап.
#2 by SOLO1C
неужели только я такой 1с-извращенец ) Разве никто не хотел бы форму поменять не трогая ее..
#3 by NcSteel
Запрос надо менять на стороне сервера в форме.
#4 by SOLO1C
Почему именно в форме ? Нигде в синтаксисе про это нету... Хочу вне формы...
#5 by SOLO1C
Вот почему не сделать платформу - чтоб можно было такие вещи делать - вставлять элементы в форму, добавлять модули, менять запросы - блин реально же наверное это не проблема для разработчиков - зато насколько бы повысилась простота обновлений.... Интересно - может в 8.3 это есть...
#6 by Rie
Переходи на 7.7, там это реализовано.
#7 by SOLO1C
ну динамических списков я там не видел )) как и программной вставки элементов, так что предложение не дельное.
#8 by SOLO1C
кому уже не терпится снова после выходных взяться за работу ) - напишите.... кто че думает...как можно изменить данные динамического списка не входя в него... ?
#9 by SOLO1C
в смысле не изменяя форму...
#10 by ChAlex
А зачем передавать параметром динамический список. Он и так на сервере доступен Через ЭтаФорма.ДинамическийСпиоск
#11 by SOLO1C
для тех кто читает отрывками ) - я пытаюсь изменить запрос не в контексте формы а в контексте модуля.
#12 by SOLO1C
...модуля команды
#13 by ChAlex
- ну тогда для тех, кто отрывками читает документацию, ну или с логикой дружит орывками. Метод "ПолучитьФорму" создает класс объекта и только (в терминах обычного программирования). ДинамическийСписок.ТекстЗапроса - свойство реквизита класса. Хоть оно и определяется в конфигурации, но все же является таковым, и заполняется значением по умолчанию (то бишь текстом запроса) при инициализации класса (которая еще никем не выполнялась, ибо в 1С форма не открывалась еще, и следовательно не выполнялись никакие методы и события объекта). Так что ничего удивительного в том что значенеи текста запроса не определено. Оперируйте данными в событии "ПриСозданииНаСервере" - после инициализации всех переменных (реквизитов) класса. Там и увидите и текст запроса, там же его можно и поменять. Передавайте параметры в открывающуся форму.
#14 by zladenuw
хорошо объяснил. но прикольно 13 сообщение и всего сообщение 666 у тебя :) шаман
#15 by ChAlex
- нда - на до бы поберечься.. :)
#16 by SOLO1C
На мой взгляд касаемо инициализации свойства - вы ошибаетесь - событие ПриСозданииНаСервере - отрабатывает ДО открытия - при получении формы она создается..... и уже после создания я вижу свойство пустым. Утверждение "1С форма не открывалась еще, и следовательно не выполнялись никакие методы и события объекта" - вообще не имеет права на жизнь )
#17 by ChAlex
- ну ваше право, считайте дальше -  и пытайтесь прошибить стену - вдруг получится :) - квантовая теория не противоречит этому
#18 by Fenrus
в подтверждение Вызывается при создании формы на сервере, до ее открытия. Можно отказаться от создания ПриСозданииНаСервере, OnCreateAtServer
#19 by ChAlex
- а собственно в подтверждении чего? Вы хоть в суть проблемы вникли бы, и разделяли бы ИНИЦИАЛИЗАЦИЮ СВОЙСТВ класса (для уточнения  - термин ООП, а не 1С!) и события ОБЪЕКТА 1С (в частности формы). Еще раз для тех кто на бронепоезде: отправная точка - пост - последовательность действий: Шаг 1 - ФормаСпискаЗаказов = ПолучитьФорму... В результате создается экземпляр класса в терминах программирования и объект типа "Форма"  в терминах 1С. Что ч точки зрения прграммирования, что с точки зрения 1С этот объкт на уровне внутренних структур не инициализирован!!, т.е. все что в данный момент вы можете получить -  так это список реквизитов и ВСЕ!! Шаг 2- с объектом "ФормаСпискаЗаказов" производятся действя якобы по иницциализации текста запроса - УстановитьТекстЗапросаСписка(ФормаСпискаЗаказов.Список). Ну и делайте себе!! только 1С  ЭТО ПОФИГУ, потому что далее следует.. Шаг 3 - ФормаСпискаЗаказов.Открыть - и вот тут между этим действием и событием "ПриСозданииНаСервере" и инициализируется класс (в терминах ООП).Но 1С - не язык прграммирования - и вам предоставляются лишь какие-то точки в довольно сложном процессе создания класса, инициализации и визульного представления. Так вот в этом промежутке 1С херит все ваши действия ранее совершенные и предоставляет вам класс с инициализированными свойствами, которые вы определили в конфигурации!!! И остановитесь отладчиком на шаге 2 и в событии "ПриСозданииНаСервере" и увидите что в первом случае ДинамическийСписок.ТекстЗапроса = "", а во втором ДинамическийСписок.ТекстЗапроса - содержит текст запроса, который задан в КОНФИГУРАЦИИ!!! И все совершенные вами действия - извините слиты в унитаз! Вот если вы сейчас измените текст запроса - то ваши действия будут услышаны! И не путайте ВИЗУАЛЬНОЕ открытие формы и выше изложенные действия!! Ибо инициализация свойств класса не есть отображение формы на экране!!!
#20 by Fenrus
мде... смотрю пост и плачу... много ошибок как с точки зрения ООП так и с точки зрения 1с в ваших словах... Для вас 1с не язык программирования? ок. Но судя по вашему "...в довольно сложном процессе создания класса, инициализации и визульного представления." Вы и здесь не далеко ушли((( Даже в описании очередности вызова обработчиков - и то накосячили... Вы не поверите, но если удосужитесь проверить - то узнаете что при получении формы обработчик события ПриСозданииНаСервере срабатывает. Тоесть все ваши выше изложеные "аргументы и факты" обсалютно не соответсвуют истине. А при открытии отрабатывают максимум события ПриОткрытии и ежи с ними. Так что давайте не будем пытатся блистать познаниями в ООП и принципах работы платформы 1с 8.2 у вас это не оч выходит. А по поводу изначального сабжа, я выдвинул свои предположения Пост стартеру в личку...
#21 by i_rodionov
Менять форму не трогая ее можно только управляемые, с помощью функциональных опций
#22 by SOLO1C
Уважаемый, давайте еще разок: 1) Получаем форму 2) Отрабатывает "при создании на сервере" - где из формы можно сменить текст запроса 3) Я меняю это же свойство из-вне 4) Итог известен. Вопрос - как вы своим ООП объясните , почему из формы запрос при ее создании меняется а извне - не меняется ? Или может будете утверждать что ПриСозданииНаСервере будет происходить "на самом деле" ПриОтрытии ) ?
#23 by SOLO1C
можете более конкретно - как можно текст запроса повесить на функциональную опцию ?
#24 by zladenuw
может параметры. при создание они точно есть
#25 by zladenuw
там храни свой макет запроса
#26 by zladenuw
и при открытии так же
#27 by SOLO1C
сабж читали ? мне не нужен этот запрос в модуле формы - я там ничего с ним не смогу сделать - форму менять нельзя....
#28 by zladenuw
кинь бд.
#29 by i_rodionov
Если есть возможность в результате запроса сформировать массив булевых значений, тогда можно применить функциональные опции
Тэги: 1С 8
Ответить:
Комментарии доступны только авторизированным пользователям

В этой группе 1С