Форум 1С
Программистам, бухгалтерам, администраторам, пользователям
Задай вопрос - получи решение проблемы
26 сен 2021, 09:03

Не могу понять почему не работает. Ограничение выбора данных из документа

Автор Татьяна Кайнова, 15 мар 2017, 23:26

0 Пользователей и 1 гость просматривают эту тему.

Татьяна Кайнова

Господа, у меня возникла проблема
Собственно мне необходимо чтобы в документе "РегФактИсп" при выборе из списка в табличной части был ограничен выбор теми Изделиями которые указаны в заказе (документ "ЗаказНаПроизводство")

Вот то что у меня не работает:

Это на форме документа "РегФактИсп"

&НаКлиенте
Процедура СтатусЗаказаИзделиеПриИзменении(Элемент)
СтатусЗаказаИзделиеПриИзмененииНаСервере();
КонецПроцедуры

&НаСервере
Процедура СтатусЗаказаИзделиеПриИзмененииНаСервере()

//{{КОНСТРУКТОР_ЗАПРОСА_С_ОБРАБОТКОЙ_РЕЗУЛЬТАТА
// Данный фрагмент построен конструктором.
// При повторном использовании конструктора, внесенные вручную изменения будут утеряны!!!

Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ РАЗЛИЧНЫЕ
| ЗаказыРег.Изделие
|ИЗ
| РегистрСведений.ЗаказыРег КАК ЗаказыРег
|ГДЕ
| ЗаказыРег.Заказ = &Заказ";

Запрос.УстановитьПараметр("Заказ", Объект.Заказ);

РезультатЗапроса = Запрос.Выполнить();

ВыборкаДетальныеЗаписи = РезультатЗапроса.Выбрать();

МассивИзделий = Новый Массив();

Пока ВыборкаДетальныеЗаписи.Следующий() Цикл

МассивИзделий.Добавить(ВыборкаДетальныеЗаписи.Изделие.Ссылка);

КонецЦикла;

Элементы.СтатусЗаказа.Изделие.СписокВыбора.Очистить();
Элементы.СтатусЗаказа.Изделие.СписокВыбора.ЗагрузитьЗначения(МассивИзделий);


//}}КОНСТРУКТОР_ЗАПРОСА_С_ОБРАБОТКОЙ_РЕЗУЛЬТАТА


КонецПроцедуры


Это в документе "ЗаказНаПроизводство" в модуле объекта


Процедура ОбработкаПроведения(Отказ, Режим)
//{{__КОНСТРУКТОР_ДВИЖЕНИЙ_РЕГИСТРОВ
// Данный фрагмент построен конструктором.
// При повторном использовании конструктора, внесенные вручную изменения будут утеряны!!!

// регистр ЗаказыРег
Движения.ЗаказыРег.Записывать = Истина;
Для Каждого ТекСтрокаЗаказ Из Заказ Цикл
Движение = Движения.ЗаказыРег.Добавить();
Движение.Заказ = ЗаказРекв;
Движение.Изделие = ТекСтрокаЗаказ.Изделие;
КонецЦикла;

//}}__КОНСТРУКТОР_ДВИЖЕНИЙ_РЕГИСТРОВ
КонецПроцедуры


Буду очень благодарна за помощь С:

LexaK

вот эту, вашу процедуру

Процедура СтатусЗаказаИзделиеПриИзмененииНаСервере()

попробуйте выполнить не при изменении номенклатуры
а при создании формы документа "РегФактИсп"
и проверьте что бы у поля Изделие был режим выбор только из списка
должно сработать!
ответ Понравился? (в смысле пригодился?)

Татьяна Кайнова

LexaK, добрый вечер
Спасибо большое, что откликнулись

Если при открытии то ругается


А если вы имели ввиду "ПриСозданииНаСервере" то я не поняла, что туда переносить

Или я неправильно поняла Вас
Еще раз спасибо, что тратите свое время

Oldman06

В ПриСозданииНаСервере поместить
    Запрос = Новый Запрос;
    Запрос.Текст =
        "ВЫБРАТЬ РАЗЛИЧНЫЕ
        |    ЗаказыРег.Изделие
        |ИЗ
        |    РегистрСведений.ЗаказыРег КАК ЗаказыРег
        |ГДЕ
        |    ЗаказыРег.Заказ = &Заказ";
   
    Запрос.УстановитьПараметр("Заказ", Объект.Заказ);
    РезультатЗапроса = Запрос.Выполнить();
    Элементы.СтатусЗаказа.Изделие.СписокВыбора.Очистить();
    Элементы.СтатусЗаказа.Изделие.СписокВыбора.ЗагрузитьЗначения(РезультатЗапроса.Выгрузить().ВыгрузитьКолонку(0));


Хотя, я бы так не делал.

Татьяна Кайнова

Доброго вечера,
Спасибо что отозвались и за потраченое время
В итоге, я просто не на тот элемент изменение вешала, и пару строк не дописала
Все заработало

Похожие темы (5)

Рейтинг@Mail.ru Rambler's Top100

Поиск