#0
by SOLO1C
УТ 11 - попытался не влазя в типовые объекты изменить работу формы списка при вызове определенной команды: Так вот прикол в том что - ошибок при исполнении нет, но в процедуре УстановитьТекстЗапросаСписка Вот такая фигня. Никто не знает - можно ли побороть?
#2
by SOLO1C
неужели только я такой 1с-извращенец ) Разве никто не хотел бы форму поменять не трогая ее..
#5
by SOLO1C
Вот почему не сделать платформу - чтоб можно было такие вещи делать - вставлять элементы в форму, добавлять модули, менять запросы - блин реально же наверное это не проблема для разработчиков - зато насколько бы повысилась простота обновлений.... Интересно - может в 8.3 это есть...
#7
by SOLO1C
ну динамических списков я там не видел )) как и программной вставки элементов, так что предложение не дельное.
#8
by SOLO1C
кому уже не терпится снова после выходных взяться за работу ) - напишите.... кто че думает...как можно изменить данные динамического списка не входя в него... ?
#10
by ChAlex
А зачем передавать параметром динамический список. Он и так на сервере доступен Через ЭтаФорма.ДинамическийСпиоск
#11
by SOLO1C
для тех кто читает отрывками ) - я пытаюсь изменить запрос не в контексте формы а в контексте модуля.
#13
by ChAlex
- ну тогда для тех, кто отрывками читает документацию, ну или с логикой дружит орывками. Метод "ПолучитьФорму" создает класс объекта и только (в терминах обычного программирования). ДинамическийСписок.ТекстЗапроса - свойство реквизита класса. Хоть оно и определяется в конфигурации, но все же является таковым, и заполняется значением по умолчанию (то бишь текстом запроса) при инициализации класса (которая еще никем не выполнялась, ибо в 1С форма не открывалась еще, и следовательно не выполнялись никакие методы и события объекта). Так что ничего удивительного в том что значенеи текста запроса не определено. Оперируйте данными в событии "ПриСозданииНаСервере" - после инициализации всех переменных (реквизитов) класса. Там и увидите и текст запроса, там же его можно и поменять. Передавайте параметры в открывающуся форму.
#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) Итог известен. Вопрос - как вы своим ООП объясните , почему из формы запрос при ее создании меняется а извне - не меняется ? Или может будете утверждать что ПриСозданииНаСервере будет происходить "на самом деле" ПриОтрытии ) ?
#27
by SOLO1C
сабж читали ? мне не нужен этот запрос в модуле формы - я там ничего с ним не смогу сделать - форму менять нельзя....
#29
by i_rodionov
Если есть возможность в результате запроса сформировать массив булевых значений, тогда можно применить функциональные опции
Тэги: 1С 8
Ответить:
Комментарии доступны только авторизированным пользователям
Похожие вопросы 1С
- изменить шрифт в ВвестиЧисло(), как ?
- Значение зависимой ячейки изменить программно...
- ЗиК. Изменить Вид расчета.
- Как можно изменить цвет текста в колонке формы списка справочника?
- Как изменить текст уже выведенной области
- можно ли изменить найти и изменить значение в дереве значений
- СКД: Как изменить текст шапки структуры?
- как изменить текст в поле ввода?
- Изменение текста запроса динамического списка после создания формы
- v7: Как узнать владельца формы списка справочника, в модуле этой формы списка
- Как в построитель запроса передать текст запроса из ТЗ?
- Управляемые формы. Изменить текст кнопок у тумблера
В этой группе 1С
- Создание документов цикле
- один ФР на 2 программы
- БП 2.0 + e-mail. SMTP error code 501
- HRESULT=80004005
- Чек и "приходный кассовый ордер" в УТ 10.3
- Выборка элементов табличной части справочника
- v7: УСН счет 10.2 Зачем нужно субконто Контрагенты? И почему его в 8ке уже нет?
- Ошибка транспорта сообщения
- УТ 10.3 Галки "Учитывать НДС" и "НДС включать в стоимость"
- v7: Как РассчитатьРегистрыНА() через ОЛЕ, если заранее не известно имя регистра?
- Конвертация данных, подчиненный справочник в табличную часть справочника.
- Зависает первая выгрузка каталогов на сайт(УТ 10.3 - Битрикс)
- Обмен между бухгалтерией и торговлей 1С 8.2
- кнопка Действия - Редактировать номер недоступна
- записьZipфайла архив пустой записывается (((
- Атол. обработка обслуживания весов
- Учет агентских договоров в "1С:Бухгалтерии 8"
- Условие в запросе по Субконто1...
- v7: Как уменьшить размер картинок в прайс-листе
- УТ 11 Перестала считаться стоимость товара.