Все технические форумы на одном сайте Удобный поиск информации с популярных форумов в одном месте
Вопрос: Кнопка создать Динамический список

Добрый день, в журнале документов ЧеккиККМ, в форме списка есть динамический список с произвольным запросом (основная таблица этот же журнал ЧеккиККМ), у динамического списка в стандартной командной панели есть кнопка создать (создается чек ккм).

как он передает параметры? кассу, смену и прочее
где мне отладчиком остановится чтобы поймать эту кнопку?
Ответ: там происходит куча процедур по проверке и отбору, естественно элементы остальные скрыты, только галочки поставить и нажать пробить
Вопрос: Обновление динамического списка из другой формы

Здравствуйте.

Есть общая форма, и на ней динамический список некого документа. Когда я открываю из этого динамического списка форму самого документа, провожу его, и потом закрываю форму, то разумеется ДС (на основной форме) не обновляется. И следовательно пиктограмма “что документ проведен” не перерисовывается. Вопрос в том, как из формы документа (при ее закрытии) обновить динамический список общей формы
Ответ:
Такой же вопрос))) Скажите, пожалуйста, ОбновитьОтображениеДанных( ) на форме проводимого документа или на форме динамического списка?
Вопрос: Динамический список на управляемой форме.

Коллеги, прошу совета.
На управляемой форме есть динамический список, построенный на запросе. Запрос строится на 3-х таблицах. При этом две таблицы большие и по количеству записей и по количеству полей. Непосредственно в списке используются полностью поля одной таблицы и еще по нескольку из больших. Какие-то поля выводятся в список, а какие-то используются только для отборов.
При активизации строки списка надо получить фактически все данные из этих таблиц и отобразить их на форме в виде отдельных полей.
Вижу два варианта реализации:
1. В запросе списка отбирать только поля нужные в списке. (Правда, я не могу заранее сказать какие из них не потребуются в отборах.) А потом при активизации строки отдельным запросом получать уже полный набор полей по данным строки.
2. В запросе списка сразу выбирать все поля из этих таблиц, а поля на форме привязать к полям списка.

Опыта пока мало. Не могу определиться какой вариант лучше.
Что скажете?
Ответ: в твоем случае получать сразу все в одном запросе можно если соблюдается

1. динамический список НЕ В ВИДЕ ДЕРЕВА
2. нет РЛС
3. соединения нормально используют индексы друг друга

если хоть одно из трех правил не соблюдается - только тестирование тебе поскажет... ибо там дофига вариантов
Вопрос: Динамический список и его запрос

Уважаемые специалисты, скажите пожалуйста, какова вероятность что это правда (пишу с чужих слов): что в динамическом списке могут в некоем  будущем перестать запросы, в которых используется оператор "Объединить"? Услышал это от знакомого, хочу узнать - это правда или нет?
Ответ: А если основная таблица не задана, то нет в этом списке ничего "динамического". Использование объекта динамический список в этом случае - легкое поддуривание.
Вопрос: Не работает группировка в Динамическом списке

Привет всем, столкнулся с проблемой что не работает группировка в динамическом списке Вот пример запроса, а на форме без группировки

ВЫБРАТЬ
    КонтактнаяИнформация.Объект КАК КонтактноеЛицо,
    КонтактнаяИнформация.Объект.Должность КАК Должность
ИЗ
    РегистрСведений.КонтактнаяИнформация КАК КонтактнаяИнформация
ГДЕ
    ТИПЗНАЧЕНИЯ(КонтактнаяИнформация.Объект) = ТИП(Справочник.КонтактныеЛица)
    И КонтактнаяИнформация.Объект.ОбъектВладелец = &ОбъектВладелец

СГРУППИРОВАТЬ ПО
    КонтактнаяИнформация.Объект,
    КонтактнаяИнформация.Объект.Должность
Ответ: () ()  В динамическом списке группировки по иному видимо работают. Завернул все во вложенную таблицу, Работает как надо. Всем спасибо
Вопрос: Динамический список выбора номенклатуры

Приветствую, Форумчане!

В справочние "Номенклатура" создал новую форму выбора "Форма1". Создал тама динамический список:

ВЫБРАТЬ
	СправочникНоменклатуры.Ссылка,
	СправочникНоменклатуры.Наименование,
	ТендерыЗаказТендера.Ссылка КАК Ссылка1,
	ТендерыЗаказТендера.Номенклатура
ИЗ
	Документ.Тендеры.ЗаказТендера КАК ТендерыЗаказТендера
		ЛЕВОЕ СОЕДИНЕНИЕ Справочник.Номенклатура КАК СправочникНоменклатуры
		ПО ТендерыЗаказТендера.Номенклатура = СправочникНоменклатуры.Ссылка
ГДЕ
	ТендерыЗаказТендера.Ссылка = &Ссылка


В документе "ЗаказПокупателя" в ТЧ Товары на реквизит Номенклатуры на событие "НачалоВвода" поставил код:

СтандартнаяОбработка = ЛОЖЬ; 
ТекСтр = ЭлементыФормы.Товары.ТекущиеДанные; 
Форма =  ПолучитьФорму("Справочник.Номенклатура.Форма.Форма1");//,,Элементы.СписокНоменклатурыПартия); 
Форма.Список.Параметры.УстановитьЗначениеПараметра("Ссылка",ЭлементыФормы.Заявка); 
Форма.Открыть();


В "ЗаказеПокупателя" имеется реквизит с нужной ссылкой на документ "Тендеры" с именем "Заявка"

Выдает ошибку: не найдено поле "Список"

{Документ.ЗаказПокупателя.Форма.ФормаДокумента.Форма(2769)}: Поле объекта не обнаружено (Список)
Форма.Список.Параметры.УстановитьЗначениеПараметра("Ссылка",ЭлементыФормы.Заявка);

Как в динамический список выбора Номенклатуры правильно передать параметр-ссылку
ТендерыЗаказТендера.Ссылка = &Ссылка
Ответ: // Обработчик события ОбработкаОповещения формы.
//
Процедура ОбработкаОповещения(ИмяСобытия, Параметр, Источник)

Если ИмяСобытия = "ЗакрытиеФормыПоиска"
И Источник = ЭтаФорма Тогда

// обновляем выпадающий список настроек отбора данных
мПоискОбъектовВСпискахДанных.ЗаполнитьСписокЗначенийОтборовДанных(ЭлементыФормы.ТипПоискаДанных.СписокВыбора);

ИначеЕсли ЭлементыФормы.СправочникСписок.ТекущиеДанные = Неопределено Тогда
ПоказатьОсновноеИзображение();
Иначе
Если (ИмяСобытия = "ОбновитьФорму" И Источник = ЭлементыФормы.СправочникСписок.ТекущиеДанные.Ссылка)
ИЛИ (ИмяСобытия = "ЗаписанЭлементНоменклатуры" И Параметр = ЭлементыФормы.СправочникСписок.ТекущиеДанные.Ссылка) Тогда
Обновить();
ПоказатьОсновноеИзображение();
КонецЕсли;
КонецЕсли;

КонецПроцедуры
Вопрос: Выбранные поля динамического списка

Доброго времени суток.
Не получается на управляемую форму списка добавить новую колонку.
УТ 11.2, журнал документа ДокументыПродажи.
В качестве основного реквизита у формы динамический список с именем Список.
В запрос динамического списка добавляю вывод нового поля - ИНН, запрос в консоли отрабатывает верно.
Добавляю (перетягиваю) этот новый реквизит списка в элементы формы.
В пользовательском режиме поле не отображается, в т.ч. нет его в пункте "Изменить форму".
Предполагала, что где-то в тексте подменяется текст запроса динамического списка, так и не нашла где.
Но в модуле формы ставлю точку основа на первой строке процедуры ПриСозданииНаСервере.
Отладчиком смотрю выражение - Список.КомпоновщикНастроек.Настройки.ДоступныеПоляВыбора.Элементы - моего поля там нет.
Что еще нужно изменить, чтобы поле отобразилось?
Ответ:
Разобралась таки.
Контрагент и новые поля, созданные на основе реквизитов контрагента, не отображались из-за константы "Использовать партнеров и контрагентов". После включения константы все отобразилось.
Либо, если не включать константу, то добавить в запрос соединение таблицы контрагентов и уже из нее вытаскивать данные.
Вопрос: Динамический список. Отбор. Как реализовать?

Всем доброго дня!

Итак вопрос вот в чем. программно создаются счета из файла (файлов) внешней обработкой. Я прикрепил к ней Динамический список со ссылкой на СчетаНаОплатуПокупателям, там отображаются все счета.
Сумел сделать отбор так, чтоб показывало только последний созданный:

Загружено.Отбор.Элементы.Очистить();
    ЭлементОтбора = Загружено.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
    ЭлементОтбора.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("Номер");
    ЭлементОтбора.ВидСравнения = ВидСравненияКомпоновкиДанных.Равно;
    ЭлементОтбора.Использование = Истина;

    ЭлементОтбора.ПравоеЗначение = Счет.Номер;

Но я хочу сделать, чтоб там в списке появлялся каждый созданный. Ибо обработка забирает все файлы из папки, и создает по ним счета.

Если убрать вот это:
Загружено.Отбор.Элементы.Очистить();
То первый загруженный (по одному) отображается, но попытка загрузить второй - приводит к пустому списку, не реагирующему и на строку поиска...

Подскажите, как организовать? Я попробовал инициализировать поиск ПриОткрытии()
&На Клиенте
Процедура ПриОткрытии()
ЭлементОтбора = Загружено.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
 ЭлементОтбора.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("Номер");
    ЭлементОтбора.ВидСравнения = ВидСравненияКомпоновкиДанных.Равно;
    ЭлементОтбора.Использование = Истина;
    ЭлементОтбора.ТипГруппы = ТипГруппыЭлементовОтбораКомпоновкиДанных.ГруппаИЛИ;
    ЭлементОтбора.ПравоеЗначение = "4004 Д     ";

Но "на сервере", где выполняется создание счета, Элемент отбора - неопределенная переменная.

Подскажите, как организовать))
p.S. Я последний раз кодил в 7.7 году этак в 2003, поэтому здесь сразу столкнулся с этими трудностями "На клиенте" на сервере", где не понял, как вообще обмен переменными организовать..
Ответ: () Заголовка не было вообще. Ввел, он появился.. Но данные в списке но отображаются... Почему и как исправить?
Вопрос: Обновить динамический список

Добрый день,

Прошу помочь кто, чем может, т.к. самостоятельно ну никак не получается.

Исходные данные:
1. Платформа 8.3.10, УФ, самописная конфигурация.
2. Форма. На форме - Табличная часть, у которой один из реквизитов - Уникальный идентификатор (УИД), плюс - динамический список, ссылающийся на периодический регистр сведений (в пределах секунды). У Регистра поле "для связи" (в которое записывается УИД - строковое).
3. при изменении значения любого поля в табличной части в регистр сведений записываются изменения (УИД строки, период, что было, что стало). Изменения записываются по событию поля табличной части "При изменении" (один из вариантов).
4. После записи в регистр на форме срабатывает процедура по обновлению данных динамического списка. Код процедуры:
Код:
ТаблицаИзменений.Отбор.Элементы.Очистить();
    ЭлементОтбора = ТаблицаИзменений.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
    ЭлементОтбора.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("УИДСтроки");
    ЭлементОтбора.ВидСравнения = ВидСравненияКомпоновкиДанных.Равно;
    ЭлементОтбора.ПравоеЗначение = Строка("" + УИДСТроки);
    ЭлементОтбора.Использование = Истина;
5. Динамический список имеет всего 3 видимых строки, остальные видны только с помощью вертикальной прокрутки.

5. В результате:
5.1. В Регистр все исправно пишется.
5.2. Данные в динамический список поступают, но если количество добавленных строк в регистр по табличному полю более 4, они не видны (только с прокруткой).
5.3. Не удается активизировать строку динамического списка после добавления.

Подскажите, где, что не так? Заранее благодарю.

P.S. Динамический список БЕЗ произвольного запроса. Установлен порядок "По убыванию" для "Периода"
Ответ:
Точнее, немного не так. Правильнее вопрос должен звучать так: Почему, если я ставлю обновление списка на событие табличной части (ТЧ) "При активизации строки", то все работает - как надо. А если на событие "При изменении" (какого-либо поля ТЧ), то - не все гладко?
Вопрос: Получить объекты выделенных элементов динамического списка

Всем привет!
Блин! столкнулся с проблемой ... даже не знаю..
Что нужно для первого шага задуманной процедуры.. ПОЛУЧИТЬ ОБЪЕКТ ЭЛЕМЕНТА ВЫДЕЛЕННОЙ СТРОКИ ДИНАМИЧЕСКОГО СПИСКА!
Я просто не могу понять почему это можно когда речь о получении одного элемента списка:
Код:
СписокИмя="Список"; ЭлементСписка = Элементы[СписокИмя].ТекущаяСтрока; Предупреждение(ЭлементСписка);
А почему целая проблема когда нужно получить объекты несколько выделенных элементов уже в цикле.
Код:
СписокИмя="Список";
ВыделенныеСтроки = Элементы[СписокИмя].ВыделенныеСтроки;
Для каждого СтрокаСписка Из ВыделенныеСтроки Цикл
ЭлементСписка=Элементы[СписокИмя].ДанныеСтроки(СтрокаСписка);
Сообщить(ЭлементСписка);
КонецЦикла;
И самое не понятное, что бы получить не объект элемента, а просто значение реквизита можно сделать так:
Код:
ЭлементСписка=Элементы[СписокИмя].ДанныеСтроки(СтрокаСписка)["ИмяРеквизита"];
Только в случае если это список справочника, то можно указать любой реквизит наименование, код и т.д.
Но в случае, если список документов то, стоит только указать реквизит возврата на пример номер то выдает кляузу. И вообще на какие то определенные реквизиты реагирует нормально. А на какие то ревет.
Дур-дом ... т.е. платформе не все реквизиты по вкусу, что ли ? .. одурею.
Поэтому ни в какую... А нужно элементарное... Просто получить объекты выделенных элементов списка. А уже полом сам знаю как получить нужные значения реквизитов полученных объектов списка.
Конечно для этого есть команда ПолучитьОбъект(), но она для сервера.
И что понять не могу, почему если список справочника все без проблем, а если документа то выдает кляузу. Тогда как и тот и другой это динамический список.
Поэтому как получить объекты? Может что то не учел. И может капризной среде нужен на пример какой то индекс ... вообщем не знаю.
Поэтому это уже не просто просьба а крик о помощи!
Буду очень очень очень очень признателен!
Ответ:
Да получилось.. вот таким макаром
Код:
СписокИмя="Список";
ВыделенныеСтроки = Элементы[СписокИмя].ВыделенныеСтроки;
Для каждого СтрокаСписка Из ВыделенныеСтроки Цикл
ЭлементКод=Элементы[СписокИмя].ДанныеСтроки(СтрокаСписка).код;
ЭлементИмя=Элементы[СписокИмя].ДанныеСтроки(СтрокаСписка).Наименование;
Сообщить(ЭлементИмя+" - "+ЭлементКод);
КонецЦикла;
В том и дело, что в выше указанном коде он используется, но для списка документов возникает кляуза.
Я просто не знаю "Разбирайте" что имеется ввиду.... и как разбирать В указном цикле он и разбирается.
Просто кляузничает если список документа. Ну на пример если так
Код:
ЭлементНомер=Элементы[СписокИмя].ДанныеСтроки(СтрокаСписка).Номер;
Тут же ревет о том, что "Поле объекта не обнаружено (Номер)"
Ладно! Если так не хочет тогда без номера
Код:
ЭлементСписка_Объект=Элементы[СписокИмя].ДанныеСтроки(СтрокаСписка);
Сообщить(ЭлементСписка_Объект);
На что любезно но не без ехидства сообщает: "". И ничего более.
А нужно, что бы он выдавал список выделенных объектов (не по типу текста а просто ссылки или объекты). И так по всем тем выделенным элементам которых затрагивает цикл.
Вот что нужно!
Только не понятно как это сделать?
Гуууууу ....
Вообщем прощу и буду очень признателен!
И если не трудно побольше конкретики и работающих примеров.
Буду признателен!