1с ошибка создания набора данных наборданныхдинамическогосписка
Собственно столкнулся с такой проблемой: На релизе (8.3.4.317) если на сервере изменить текст запроса динамического списка, и установить параметры запроса, динамический список один раз заполняется, но при попытке отсортировать по колонке дин списка: Ошибка при выполнении запроса. Ошибка при выполнении запроса. по причине: Ошибка получения данных по причине: Ошибка создания набора данных "НаборДанныхДинамическогоСписка" по причине: Ошибка при исполнении запроса набора данных по причине: <(13, 29)>: Не задано значение параметра "Контрагент" ИЛИ Контрагенты.Ссылка = <<?>>&Контрагент) Т.е. при возврате на клиент параметры заданные на сервере теряются, я сделал тестовую обработку для демонстрации проблемы. На 8.2.18 работает корректно на 8.3.4.317 выдает ошибку. Самое забавное в этой ситуации то что: Ошибки исправленные в 8.3.3.715 20016551 Параметры запроса динамического списка Проблема: При изменении на сервере текста запроса динамического списка установленные на сервере параметры теряются при передаче на сторону клиента. Дата публикации: 2013-07-18 Обработка с демонстрацией: Выбираем любого контрагента. Жмем "Изменить запрос и установить параметр" потом пытаемся сортировать список нажатием на шапку любой колонки. на 8.3.4.317 ошибка на 8.2.хх работает. Собственно к чему я это все написал, может с 8.3 как то изменился подход к работе с параметрами? (Например как в случае с отборами). Я пробовал и Настройки.ПараметрыДанных и ФиксированныеНастройки.ПараметрыДанных. Ну и если у кого доступ на партнерский есть передавайте им привет.
Смотрю сейчас: Ошибки исправленные в 8.3.4.365 И вижу: 20020422 Параметры динамического списка Проблема: При изменении на сервере текста запроса динамического списка могут теряться ранее установленные параметры динамического списка. Дата публикации: 2013-11-29 Позже поставлю проверю, а вдруг и правда исправили.
В копилку багов 8.3.4.359 (сейчас проверю в 365) Не вызывается функция, после закрытия формы, а должна &НаКлиенте Сообщить("Эта процедура не вызывается после закрытие формы, а должна"); КонецПроцедуры
Добрый день! Пишу под себя небольшую конфигурацию в 1С:Предприятие 8.3.
Наткнулся на проблему, не могу решить пару дней.
Цель: есть документ о перемещении оборудования между нашими базами. В реквизитах документа указываем новый адрес и старый. В табличной части выбираем необходимое оборудование из справочника Оборудование. Необходимо, чтобы в выпадающем списке было только то оборудование, которое находится на эту дату на старом адресе. Записи все делаются в РегистрСведений Базировка.
В форме выбора справочника Оборудование сделал следующий произвольный запрос с помощью конструктора:
Далее в ФормеДокумента в табличной части в свойствах оборудования на вкладке Представление в Связях параметров выбора ставлю условия:
И Формой Выбора ставлю ту форму где прописывал произвольный запрос.
Когда создаю новый документ при обращении в табличной части к списку оборудования выдает ошибку:
Ошибка при выполнении запроса.
по причине:
Ошибка получения данных
по причине:
Ошибка создания набора данных "НаборДанныхДинамическогоСписка"
по причине:
Ошибка при исполнении запроса набора данных
по причине:
<(16, 43)>: Не задано значение параметра "АдресБазы"
ИЛИ БазировкаСрезПоследних.АдресБазы = <<?>>&АдресБазы
Что и где ещё необходимо прописать? Или должен быть совершенно другой алгоритм действий?
Итак в ходе поисков удалось выяснить, что код в форме документапри записи в Событиях "Создать" и прочих не работает, а вот "НачалоВыбора" без строчки "СандартнаяОбработка=Ложь;" вызывает два окна, но работает как надо.
Так же этот код можно заменить записью в Свойствах Элемента Табличной Части: 1. "ВыборФормы" - ФормаВыбораТест и 2. "СвязиПараметровВыбора" - Период(Объект.Дата), АдресБазы(Объект.СтарыйАдрес).
В самой форме выбора прописываем:
Все параметры передаются, но если стоит режим просмотра - "Иерархический список" или "Древо", то появляется пустой список, если переключиться на режим "Список", то всё появляется согласно установленным параметрам.
Также выяснил что код
работает не корректно: он отбирает вначале по параметру АдресБазы, а уже потом по дате, поэтому в список попадают записи старые, хотя уже есть более свежая запись о перемещении на другую базу.
Поэтому изменил код на такой:
И как констатация факта (для себя не забыть), в ходе поиска кода запроса выяснил, что если в динамическом списке не задана "Основная таблица", то в форме при выборе нужной записи она не попадает в строчку документа. (в ходе экспериментов она стала пустой, долго искал причину ошибки)
Суть вашей проблемы что вы не заполнили параметр &АдресБазы до момента выполнения своего запроса.То есть примерно так.
Вот это непонятные строки..
Вот это непонятные строки..
Приведите более полный код .
Прикрепил скриншот, где этот код.
Суть вашей проблемы что вы не заполнили параметр &АдресБазы до момента выполнения своего запроса.Стесняюсь спросить "Куда ставить?"
Попробовал вставить в События при изменении:
Нет никакой реакции(((
(4) Событие "При изменении" возникает не при возникновении ваших желаний что-то поменять, а только после того как вы УЖЕ что-то поменяли.И потому ясно , что текст ваш явно "не туда".
Кроме того вот такой (13) Пытался заполнить, но там даются только реквизиты справочника Оборудование. В форме выбора справочника Оборудование сделал следующий произвольный запрос с помощью конструктора:
Вы указали Справочник Оборудование в своей форме выбора?
Но копать нужно вам именно в этой закладке , ибо именно в ней передаются Параметы вашего запроса , а их вы не передали, вот он и пустой (14) Вы пошли совершенно не верным путем.
Вы вообще не там ищете параметры своего запроса.
Сделал следующее:
1. В Модуле "ФормаВыбораТест" прописал код:
2. В модуле Формы документа "Перемещение оборудования":
Но синтаксис ругается на Объект.Дата, если его убрать, то список открывается пустым.
Как здесь указать ссылку на дату?
ТвойСписок .УстановитьПаратр("АдресБазы", СтарыйАдрес); (3) Понимаю, что при открытии этого списка параметры как-то должны попадать в этот запрос, но вот как и куда - остаётся для меня загадкой. Пробовал вставить в События Поля "Оборудование" ПриИзменении, о чём написал выше. (5) Событие при создании. Там передаешь параметры списку
Прописал в событие при Создании:
Ошибка так и осталась, такое ощущение, что он и не начинает работать.
(5) (4) Событие "При изменении" возникает не при возникновении ваших желаний что-то поменять, а только после того как вы УЖЕ что-то поменяли.И потому ясно , что текст ваш явно "не туда".
Кроме того вот такой текст еще хуже.
ибо а Где же сам Запрос?
Вы должны сформировать Список запросом, который выполнится ДО открытия окна вашей формы со списком оборудования.
А до этого момента , то есть еще раньше вы должны передать пареметры в запрос.
И приведите уж весь текст модуля вашей формы, для ясности.
И Обратите внимание на советы (6).
Вначале делаю новую "ФормаВыбораТест", в которой делаю запрос в настройках списка:
И дальнейшие все мои действия не приводят к успеху (((
Весь код из модуля я сюда уже написал, другого ничего нет.
Если вы уберете из вашего запроса вообще Параметры , то он сформирует и выдаст вам список без отбора, то есть все по идее
А уже потом будете пытаться засунуть в него ограничения. (12) Проверил на тестовой базе. Всё работает без единой строчки кода. Ну и, разумеется, в тексте запроса динамического списка никаких параметров не нужно. в тексте запроса динамического списка никаких параметров не нужно
У вас в тексте параметры, их нужно удалить скорее всего (22) К сожалению в 7 дневной ограниченной версии нет доступа к этому материалу((( (19) В настройках динамического списка, что-нибудь прописывали? (25) Убрал параметры. И они должны появится, как я понимаю, в свойствах "Связи параметров выбора". Почему автоматически не предлагает эти имена. Пробовал вручную прописать в строке
Значит в динамическом списке нет записей, соответствующих отбору.
Выдержка из ИТС:
5.6.17. Связи параметров выбора
Связи параметров выбора – данное свойство позволяет указать список реквизитов, которые будут поставлять значения, используемые при выборе значения реквизита, при открытии формы выбора, при отображении списка быстрого выбора и при выполнении ввода по строке.
В качестве примера можно привести выбор договора с контрагентом. Вначале осуществляется выбор контрагента, а затем выполняется выбор договора только из списка договоров выбранного контрагента. Причем отбор автоматически изменяется при смене контрагента.
Для того чтобы ограничить выбор, реквизиту в свойстве Связи параметров выбора устанавливается соответствие имени реквизита, по которому будет выполняться фильтрация выбираемых значений, и реквизита, из которого будет браться значение фильтрации.
Рис. 151. Связи параметров выбора
Значения, указанные в данном свойстве, будут переданы в открываемую форму через структуру Параметры (см. здесь). При этом значение колонки Имя будет соответствовать ключу элемента структуры, а значение реквизита, указанное в колонке Реквизит, – значению элемента структуры. Если в колонке Имя указано значение вида Отбор.Владелец, то будет создан параметр формы Отбор (типа Структура). В этой структуре будет создан элемент с ключом Код и значением, полученным из реквизита, указанного в колонке Реквизит (в нашем примере – Поставщик).
Читайте также: