Имя: Пароль:
1C
1С v8
Кнопка "Подбор" во внешней обработке
0 Niel
 
31.07.21
11:12
Доброго времени суток. Помогите, пожалуйста. Пишу внешнюю обработку. Нужно по кнопке выбрать несколько спецификаций и передать ссылки в "ТаблицаПодбора", а затем
Если ТаблицаПодбора.ссылка = Выборка.Ссылка   тогда
    НоваяСтрока = ТаблицаСпец.Добавить();
    НоваяСтрока.СпецификацииВТаблице = Выборка.Ссылка;
    НоваяСтрока.ЭтапыВТаблице = Выборка.ЭтапыПр;
КонецЕсли;

вот что я накидала

&НаКлиенте
Процедура Подбор(Команда)
    ПараметрыПодбора = Новый Структура("ЗакрыватьПриВыборе, МножественныйВыбор", Ложь, Истина);
    ОткрытьФорму("Справочник.РесурсныеСпецификации.ФормаВыбора", ПараметрыПодбора, Элементы.ТаблицаПодбора);
КонецПроцедуры

&НаКлиенте
Процедура ОбработкаВыбора(Элемент, ВыбранноеЗначение, СтандартнаяОбработка)
СтандартнаяОбработка = Ложь;
ОбработкаВыбораНаСервере(ВыбранноеЗначение);
КонецПроцедуры

&НаСервере
Процедура ОбработкаВыбораНаСервере(ВыбранноеЗначение)
    Запрос = Новый Запрос;
    Запрос.Текст =
    "ВЫБРАТЬ РАЗЛИЧНЫЕ
    |    ЭтапПроизводства2_2ОбеспечениеМатериаламиИРаботами.Ссылка КАК ЭтапыПр,
    |    ЭтапПроизводства2_2ОбеспечениеМатериаламиИРаботами.Ссылка.ПартияПроизводства.Спецификация КАК ПартияПр
    |ПОМЕСТИТЬ ЭТАПЫПРОИЗ
    |ИЗ
    |    Документ.ЭтапПроизводства2_2.ОбеспечениеМатериаламиИРаботами КАК ЭтапПроизводства2_2ОбеспечениеМатериаламиИРаботами
    |;
    |
    |////////////////////////////////////////////////////////////////////////////////
    |ВЫБРАТЬ РАЗЛИЧНЫЕ
    |    РесурсныеСпецификацииМатериалыИУслуги.Ссылка КАК Ссылка,
    |    ЭТАПЫПРОИЗ.ЭтапыПр КАК ЭтапыПр
    |ИЗ
    |    Справочник.РесурсныеСпецификации.МатериалыИУслуги КАК РесурсныеСпецификацииМатериалыИУслуги
    |        ЛЕВОЕ СОЕДИНЕНИЕ ЭТАПЫПРОИЗ КАК ЭТАПЫПРОИЗ
    |        ПО РесурсныеСпецификацииМатериалыИУслуги.Ссылка = ЭТАПЫПРОИЗ.ПартияПр";
    РезультатЗапроса = Запрос.Выполнить();
    Выборка = РезультатЗапроса.Выбрать();
    Для Каждого вЗнч Из ВыбранноеЗначение Цикл
        Если ТаблицаПодбора.ссылка = Выборка.Ссылка   тогда
        НоваяСтрока = ТаблицаСпец.Добавить();
        НоваяСтрока.СпецификацииВТаблице = Выборка.Ссылка;
        НоваяСтрока.ЭтапыВТаблице = Выборка.ЭтапыПр;
        КонецЕсли;
    КонецЦикла;
КонецПроцедуры
Чтобы обнаруживать ошибки, программист должен иметь ум, которому доставляет удовольствие находить изъяны там, где, казалось, царят красота и совершенство. Фредерик Брукс-младший