|   |   | 
| 
 | Отбор с параметрами в справочнике | ☑ | ||
|---|---|---|---|---|
| 0
    
        Vitalii72 06.07.16✎ 06:45 | 
        Помогите пожалуйста разобраться, что не так делаю. В документе вставил кнопку, делаю отбор с параметрами и открываю ФормуВыбора справочника номенклатура. В отборе указываю склад и Владельца табличная часть документа. Владельца беру из формы документа при событие ОбработкиВыбора и в ФормеВыбора справочника добавил обработку Обработку Выбора.
 &НаКлиенте Процедура Подбор(Команда) УсловияОтбора = Новый Структура; УсловияОтбора.Вставить("Склад", Объект.Склад); ОткрытьФорму("Справочник.Номенклатура.ФормаВыбора",УсловияОтбора,Элементы.ТЧНоменклатура); КонецПроцедуры &НаСервере Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка) Если Параметры.Свойство("Склад") Тогда Список.Параметры.УстановитьЗначениеПараметра("Склад", Параметры.Склад); КонецЕсли; КонецПроцедуры В документе &НаКлиенте Процедура ТЧНоменклатураОбработкаВыбора(Элемент, ВыбранноеЗначение, СтандартнаяОбработка) Элемент.ТЧ.ДобавитьСтроку(); Элемент.ТЧ.ТекущиеДанные.ТЧНоменклатура = ВыбранноеЗначение; КонецПроцедуры В ФормеВыбора справочника: &НаКлиенте Процедура ОбработкаВыбора(ВыбранноеЗначение, ИсточникВыбора) ОповеститьОВыборе(ВыбранноеЗначение); КонецПроцедуры Отбор проходит как мне надо, а вот выбранное значения не возвращает в документ. Прочитал, что надо в ФормеВыбора справочника при событие ОбработкаОповещение вернуть ВыбранноеЗначение, пишу ВыбранноеЗначение в процедуре, он ругается. | |||
| 1
    
        DrZombi гуру 06.07.16✎ 06:55 | 
        (0) нет слова "отбор"     | |||
| 2
    
        DrZombi гуру 06.07.16✎ 06:55 | 
        +(0) Код отстой все в топку     | |||
| 3
    
        DrZombi гуру 06.07.16✎ 06:58 | 
        УсловияОтбора = Новый Структура;
 УсловияОтбора.Вставить("Склад", Объект.Склад); СтрПарам = Новый Структура("Отбор",УсловияОтбора); ОткрытьФорму("Справочник.Номенклатура.ФормаВыбора",СтрПарам ,Элементы.ТЧНоменклатура); | |||
| 4
    
        DrZombi гуру 06.07.16✎ 07:00 | 
        ОповеститьОВыборе (NotifyChoice)
 Синтаксис: ОповеститьОВыборе(<ЗначениеВыбора>) Параметры: <ЗначениеВыбора> (обязательный) Тип: Произвольный. Результат выбора. Описание: Посылает оповещение владельцу формы о выполнении выбора или подбора, передает ему выбранное значение. Закрывает форму в соответствии со значением свойства ЗакрыватьПриВыборе. Данное действие аналогично выполнению выбора в форме, открытой для выбора в поле ввода или ячейке табличного поля. Доступность: Тонкий клиент, веб-клиент, толстый клиент. Примечание: Может применяться в случае, когда открытие формы выбора или подбора выполнено средствами языка. | |||
| 5
    
        Vitalii72 06.07.16✎ 07:04 | 
        &НаКлиенте
 Процедура Подбор(Команда) УсловияОтбора = Новый Структура; УсловияОтбора.Вставить("Склад", Объект.Склад); СтрПарам = Новый Структура("Отбор",УсловияОтбора); ОткрытьФорму("Справочник.Номенклатура.ФормаВыбора",СтрПарам ,Элементы.ТЧНоменклатура); //УсловияОтбора = Новый Структура; //УсловияОтбора.Вставить("Склад", Объект.Склад); //ОткрытьФорму("Справочник.Номенклатура.ФормаВыбора",УсловияОтбора,Элементы.ТЧНоменклатура); КонецПроцедуры &НаСервере Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка) Если Параметры.Свойство("Склад") Тогда Список.Параметры.УстановитьЗначениеПараметра("Склад", Параметры.Отбор); КонецЕсли; КонецПроцедуры Не видит параметр | |||
| 6
    
        Vitalii72 06.07.16✎ 07:06 | 
        (4) 
 Из ФормыВыбора передаю обратно &НаКлиенте Процедура ОбработкаВыбора(ВыбранноеЗначение, ИсточникВыбора) ОповеститьОВыборе(ВыбранноеЗначение); КонецПроцедуры Что не так? | |||
| 7
    
        DrZombi гуру 06.07.16✎ 07:06 | 
        (5) Какой параметр?
 При открытии справочника, отбор будет выставлен Автоматом. | |||
| 8
    
        Vitalii72 06.07.16✎ 07:08 | 
        (7) Получается это можно за комментировать?
 &НаСервере Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка) Если Параметры.Свойство("Склад") Тогда Список.Параметры.УстановитьЗначениеПараметра("Склад", Параметры.Отбор); КонецЕсли; КонецПроцедуры | |||
| 9
    
        Vitalii72 06.07.16✎ 07:10 | 
        В ФормеВыбора у меня:
 ВЫБРАТЬ СправочникНоменклатура.Ссылка, СправочникНоменклатура.ПометкаУдаления, СправочникНоменклатура.Родитель, СправочникНоменклатура.ЭтоГруппа, СправочникНоменклатура.Код, СправочникНоменклатура.Наименование, СправочникНоменклатура.СерийныйНомер, СправочникНоменклатура.Предопределенный, СправочникНоменклатура.ИмяПредопределенныхДанных, ОстатокНоменклатурыОстаткиИОбороты.КоличествоКонечныйОстаток КАК КонечныйОстаток, ОстатокНоменклатурыОстаткиИОбороты.Сотрудники, ОстатокНоменклатурыОстаткиИОбороты.Склад, СправочникНоменклатура.Модель, СостояниеСрезПоследних.Состояние ИЗ Справочник.Номенклатура КАК СправочникНоменклатура ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.ОстатокНоменклатуры.ОстаткиИОбороты(, , , , ) КАК ОстатокНоменклатурыОстаткиИОбороты ПО (ОстатокНоменклатурыОстаткиИОбороты.Номенклатура = СправочникНоменклатура.Ссылка) ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.Состояние.СрезПоследних КАК СостояниеСрезПоследних ПО (СостояниеСрезПоследних.Номенклатура = СправочникНоменклатура.Ссылка) ГДЕ ОстатокНоменклатурыОстаткиИОбороты.Склад = &Склад Если ПриСозданиеНаСервере не указан Параметр, при отборе ругается. | |||
| 10
    
        DrZombi гуру 06.07.16✎ 07:10 | 
        http://1c-pro.ru/threads/kak-organizovat-podbor-na-upravljaemyx-formax.36766/
 &НаКлиенте Процедура Подбор(Команда) //одиночный подбор //ОткрытьФорму("Справочник.Номенклатура.ФормаВыбора", , Элементы.Материалы); //множественный подбор //ПараметрыФормы = Новый Структура("ЗакрыватьПриВыборе", Ложь); //ПараметрыФормы = Новый Структура("МножественныйВыбор", Истина); //множественный подбор с использованием множественного выбора ПараметрыФормы = Новый Структура("ЗакрыватьПриВыборе, МножественныйВыбор", Ложь, Истина); ОткрытьФорму("Справочник.Номенклатура.ФормаВыбора", ПараметрыФормы, Элементы.Материалы); КонецПроцедуры &НаКлиенте Процедура МатериалыОбработкаВыбора(Элемент, ВыбранноеЗначение, СтандартнаяОбработка) //одиночный подбор и множественный подбор //НоваяСтрока = Объект.Материалы.Добавить(); //НоваяСтрока.Материал = ВыбранноеЗначение; //подбор с множественным выбором Для Каждого ВыбранныйЭлемент Из ВыбранноеЗначение Цикл НоваяСтрока = Объект.Материалы.Добавить(); НоваяСтрока.Материал = ВыбранныйЭлемент; КонецЦикла; КонецПроцедуры | |||
| 11
    
        DrZombi гуру 06.07.16✎ 07:12 | 
        (9) Жесть... 
 Убери "ГДЕ ОстатокНоменклатурыОстаткиИОбороты.Склад = &Склад" Так то оно конечно весело :) Но я бы лучше сделал все это в отдельной форме :) | |||
| 12
    
        Vitalii72 06.07.16✎ 07:13 | 
        (11) А как можно сделать несколько ФормВыбора в справочнике, пробовал создать ещё один, при открытие формы ругается.     | |||
| 13
    
        DrZombi гуру 06.07.16✎ 07:14 | 
        (12) Кнопка добавить, выбераешь  "Форма Выбора"
 И Только одна может быть форма выбора по умолчанию... Но самих форм может быть Куева туча :) | |||
| 14
    
        DrZombi гуру 06.07.16✎ 07:14 | 
        + Ты же в (0) Сам указать можешь, какую форму использовать :)     | |||
| 15
    
        Vitalii72 06.07.16✎ 07:15 | 
        ФормуВыбора добавляю, при открытие Формы указываю новое название, если оно например не Справочник.Номенклатура.ФормаВыбора а Справочник.Номенклатура.ФормаВыбора1 то ругается, хотя она физически есть     | |||
| 16
    
        DrZombi гуру 06.07.16✎ 07:16 | 
        + ""
 ОткрытьФорму("Справочник.Номенклатура.Форма.ФормаВыбора_2",УсловияОтбора,Элементы.ТЧНоменклатура); | |||
| 17
    
        DrZombi гуру 06.07.16✎ 07:17 | 
        (15) Вы хоть пользуйтесь подсказками, помогает     | |||
| 18
    
        DrZombi гуру 06.07.16✎ 07:17 | 
        + от самой 1С     | |||
| 19
    
        Vitalii72 06.07.16✎ 07:19 | 
        Хорошо, спасибо большое за ответы, отбор работает без Условия ГДЕ, а вот возврат значения пока не работает. Попробую вставить тот код, который вы мне скинули в ОбработкуВыбора.     | |||
| 20
    
        DrZombi гуру 06.07.16✎ 07:19 | 
        (19) Смотри в (10) и Думай, что ты делал не так :)     | |||
| 21
    
        DrZombi гуру 06.07.16✎ 07:21 | 
        (19) Если вставишь параметр "ТекущаяСтрока", то в Справочнике Номенклатура можно позиционироваться на нужном элементе.     | |||
| 22
    
        Vitalii72 06.07.16✎ 07:24 | 
        (21) Это Вы сейчас о Обработке выбора?     | |||
| 23
    
        DrZombi гуру 06.07.16✎ 07:27 | 
        (22) Это доп нагрузка для информирования :)     | |||
| 24
    
        DrZombi гуру 06.07.16✎ 07:27 | 
        УсловияОтбора = Новый Структура;
 УсловияОтбора.Вставить("Склад", Объект.Склад); СтрПарам = Новый Структура("Отбор, ТекущаяСтрока",УсловияОтбора, НужныйЭлемент); ОткрытьФорму("Справочник.Номенклатура.ФормаВыбора",СтрПарам ,Элементы.ТЧНоменклатура); | |||
| 25
    
        Vitalii72 06.07.16✎ 08:16 | 
        Сделал в ОбработкеВыбора
 &НаКлиенте Процедура МатериалыОбработкаВыбора(Элемент, ВыбранноеЗначение, СтандартнаяОбработка) //одиночный подбор и множественный подбор НоваяСтрока = Объект.ТЧ.Добавить(); НоваяСтрока.ТЧНоменклатура = ВыбранноеЗначение; КонецПроцедуры Нефига не возвращает значение в табличную часть. И в строчке: СтрПарам = Новый Структура("Отбор, ТекущаяСтрока",УсловияОтбора, НужныйЭлемент); Если подставляю свой элемент, выдаёт ошибку: СтрПарам = Новый Структура("Отбор, ТекущаяСтрока",УсловияОтбора, Элементы.ТЧНоменклатура); | |||
| 26
    
        DrZombi гуру 06.07.16✎ 08:21 | 
        (25) НужныйЭлемент - Это ссылка на элемент справочника, а не на элемент на форме :)     | |||
| 27
    
        DrZombi гуру 06.07.16✎ 08:27 | ||||
| 28
    
        Vitalii72 06.07.16✎ 10:03 | 
        (27) Всё спасибо разобрался, сам не внимательный ((     | 
| Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |