Версия для печати темы (https://pro1c.org.ua/index.php?s=2c8e8ae6caa725a3ae26ede4f2f84981&showtopic=29908)

Нажмите сюда для просмотра этой темы в обычном формате

Украинский 1С форум: всё про 1С 8.3, 1С 8.2, 1С 8.1, 1С 8.0, 1С 7.7 _ Программирование управляемых форм 1С 8.2 _ Динамический список выбора номенклатуры

Автор: Constantus 21.05.16, 11:47

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

УТ 10.3, 1с8.2, обычное.

Возможно ли сделать такое? Имеется Самописный документ "Заявка" с 10 номенклатурами. (номенклатура(ссылка), кол-во, цен, сумма)

Необходимо заполнить частичный "заказ Поставщику" по данной "Заявке", например выбрать только 4 позиции.

При этом, чтобы поле выбора Номенклатуры в "Заказе Поставщику" ссылалось не на общий справочник Номенклатур, а был динамическим, т.е. мог выбирать только
из указанной "Заявки". Т.е. открылся список только тех товаров, которые указаны в Заявке.

Делается для того, чтобы (1) Ускорить выбор, (2) Не был выбран ошибочно другой товар из большого списка всех Номенклатур

Пытаюсь в Справочнике Номенклатуры создать новую форму выбора с динамическим списком:

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


Выдает ошибку:

Ошибка в запросе набора данных
по причине:
{(11, 48)}: Неоднозначное поле "Номенклатура.Ссылка"
ПО ТендерыЗаказТендера.Номенклатура.Ссылка = <<?>>Номенклатура.Ссылка


Если я правильно иду, то нужно как-то передать условие.

Ошибку исправил.

Создал в Справочнике "Номенклатура" новую форму "ФормаВыбора2" (динамический список с указанным выше кодом). Основная таблица - справочник.номенклатура

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


В документе "Заказ Поставщику" Есть реквизит "ЗаказТендера" (ссылка на самописный документ "Заявка").
В ТЧ "Заказов" у реквизита "Номенклатура" поменял форму выбора на "ФормаВыбора2"

Как мне теперь сделать, чтобы сработало условие "ТендерыЗаказТендера.Ссылка = &Ссылка", т.е. передать "&Ссылка" этому динамическому списку из документа "ЗаказПоставщику, т.е ссылку на реквизит в шапке "ЗаказТендера"?

Автор: Vofka 23.05.16, 8:13

Constantus, в обычных формах есть элемент типа "Динамический список"?

Автор: Constantus 23.05.16, 9:57

Вовка! Я в справочнике "Номенклатуры" создал новую форму для выбора как управляемую. Код динамического списка проверил, срабатывает правильно.

На обычной форме есть реквизит-ссылка "Заявка", вот этот реквизит и нужно передать в параметр динамического списка...

Автор: Vofka 23.05.16, 10:36

Цитата(Constantus @ 23.05.16, 10:57) *
Я в справочнике "Номенклатуры" создал новую форму для выбора как управляемую

Ну так почему тогда создаете тему в разделе для обычных форм? faceoff.gif Переезжаем.

По теме. В запросе измените псевдоним справочнику Номенклатура на, например, СпрНоменклатура

Автор: Constantus 23.05.16, 11:26

Понимаю, но есть один парадокс...

Выбор Номенклатуры и передача параметра осуществляется из "Обычной формы", а форма выбора - управляемая... Вопрос получился гибридным

И так как основные действия осуществляются в обычной форме, то и разместил тему здесь... Естественно - не оспариваю решение...

Автор: sava1 23.05.16, 12:20

А УФ зачем ?

Автор: Constantus 23.05.16, 12:45

Потому что у обычной формы нет динамического списка... Динамическим списком (запросом) я получаю выбранную в запросе Номенклатуру...

Автор: sava1 23.05.16, 12:56

А если просто юзать отбор на ОФ?

Автор: Constantus 23.05.16, 13:30

У меня была мысль сделать некую форму, а потом кодом типа:

    ЭтаФорма.Отбор.Наименование.Использование=Истина;
    ЭлементыФормы.СправочникСписок.Значение.Отбор.Наименование.ВидСравнения = ВидСравнения.ВСписке;
    ЭлементыФормы.СправочникСписок.НастройкаОтбора.Наименование.Доступность = Ложь;


Но вопрос в том, что как сделать ОФ, данные которой состоят из данных Табличной Части????

Попытался сделать ОФ на базе "ФормыДокумента", отключил данные Шапки и получил список ТЧ, но там нету ссылки на основной документ, т.е. я не смогу отфильтровать по ссылке...

Автор: sava1 23.05.16, 13:34

1. создаем форму подбора с табл.полем (Данные - спр.Номенклатура).
2. при подборе передаем в форму подбора ссылку на док.
3. Выгружаем ТЧ в список, устанавливаем отбор /в списке/
4. Запрещаем пользователю менят отбор.

Автор: Constantus 23.05.16, 13:47

1. В справочнике создал УФ "Форма1" с правильно работающим запросом (проверял), где условием отбора является

ГДЕ ТендерыЗаказТендера.Ссылка = &Ссылка


2. В Документе "ЗаказПокупателя" (ФормаДокумента) в шапке имеется реквизит с нужной ссылкой для условия отбора "Заявка"

3. В ТЧ на событие ТоварыНоменклатураНачалоВыбора(Элемент, СтандартнаяОбработка) пытаюсь повесить код:

    Форма =  ПолучитьФорму("Справочник.Номенклатура.Форма.Форма1"); 
    Форма.Открыть();


Открывается нужная форма.

4. Но как передать отбор при открытии этой "Форма1", а именно чтобы в запросе было типа:

ГДЕ ТендерыЗаказТендера.Ссылка = ЭлементыФормы.Заявка


Пытался:

Форма.СписокДокумент.Параметры.УстановитьЗначениеПараметра("Ссылка",ЭлементыФормы.Заявка);


Без результатно. Как правильно передать параметр отбора?

Автор: sava1 23.05.16, 14:08

http://pro1c.org.ua/redirect.php?http://infostart.ru/public/86853/

Автор: Constantus 23.05.16, 15:17

Всё оказывается работает, но

1. Чтобы увидеть список необходимо выбрать руками режим просмотра: "Список". Как теперь программно открыть этот список в режиме "Список"?

2. К сожалению, при нажатии на нужную номенклатуру, открывается Справочник Номенклатуры и не заносит в ТЧ Документа. Как сделать, чтобы при клике вставлялись данные в ТЧ Документа?

Автор: tatamodka 27.05.16, 10:17

Динамический список сами добавляете, или он уже есть на форме? Динамический список используется только для справочника Номенклатура или в зависимости от запроса может отображаться любой справочник?

Украинский 1С форум: всё про 1С 8.3, 1С 8.2, 1С 8.1, 1С 8.0, 1С 7.7
https://pro1c.org.ua