Имя: Пароль:
1C
1С v8
Вывод реквизитов для выбора
0 Валидатор
 
14.11.12
13:46
Столкнулся с проблемой: Имеется поле, для вывода значений. Значения эти берутся из справочника Номенклатура (два реквизита). Нужно, чтобы при нажатии на кнопку выбора в поле выбора вылезали именно эти 2 реквизита:

Процедура ВыборМагазинаНачалоВыбора(Элемент, СтандартнаяОбработка)
    СтандартнаяОбработка = Ложь;
    Запрос = Новый Запрос;
    Запрос.Текст = "ВЫБРАТЬ
                   |    Номенклатура.НазваниеПоставщикаПервый КАК Первый,
                   |    Номенклатура.НазваниеПоставщикаВторой КАК Второй,
                   |    Номенклатура.Ссылка
                   |ИЗ
                   |    Справочник.Номенклатура КАК Номенклатура"; ;
                   Запрос.УстановитьПараметр("Номенклатура", НоменклГрупп);
                   Результат = Запрос.Выполнить().Выбрать();
     
     Первый = Результат.Первый;
     Второй = Результат.Второй;
     
КонецПроцедуры
1 Валидатор
 
14.11.12
13:47
то есть я нажимаю на кнопку и у меня появляется выбор какой результат выбрать первый или второй, хотя точно, еще ведь нужно создать получается форму, в которой будет происходить выбор этих реквизитов так?
2 antixrus
 
14.11.12
13:54
сделай перечисление, или справочник с предопределннными значениями и тд
3 Валидатор
 
14.11.12
14:05
Можно ли задать перечисление программно в самой обработке? чтобы потом не всю конфу переносить а только обработку
4 antixrus
 
14.11.12
14:06
а что храниться в тех реквизитах, и вообще что хотим сделать?
5 Валидатор
 
14.11.12
14:11
в тех реквизитах хранятся просто строковые данные, которые я хочу выводить, ну если на примере:
Есть Реквизит магазин1 = Самец
есть Реквизит магазин2 = Самка
Есть поле для выбора, хочу, чтобы при нажатии на кнопку мне предлагалось выбрать самец или самка
6 antixrus
 
14.11.12
14:13
крутяк :)
Может можно использовать готовый реквизит определяющий характеристику номенклатуры или дополнительный ее вид?
7 del123
 
14.11.12
14:17
Засунь реквизиты в таблицу и вызывай ВыбратьСтроку()
8 Валидатор
 
14.11.12
14:17
ну я создал дополнительный реквизит на обработке, с типом номенклатура, потом хочу обратиться к ним:

Процедура ВыборМагазинаНачалоВыбора(Элемент, СтандартнаяОбработка)
Данные1 = Номенклатура.магазин1;
Данные2 = Номенклатура.магазин2;

И как мне их потом вызвать для выбора??
КонецПроцедуры
9 antixrus
 
14.11.12
14:18
тип номенклатура вывалит тебя в справочник номенклатура
10 antixrus
 
14.11.12
14:19
ты отчет пишешь какой то?
11 del123
 
14.11.12
14:19
либо можно добавить элемент на форму полевыбора и заполнять его перед открытием.
12 antixrus
 
14.11.12
14:21
Весь вопрос для чего он это делает
13 Валидатор
 
14.11.12
14:23
Нет, не отчет, затача целиком состоит так:
1.Есть поле для выбора группы номенклатуры(группа номенклатуры это название магазина),
2. есть поле для выбора самого магазина(как раз 2 реквизита, между которыми нужно выбирать),
3.есть ТП, в которое должны выводиться элементы групп, который мы задаем(первый пункт)
14 antixrus
 
14.11.12
14:27
а где эти поля то все? в карточке номенклатуры или где?
15 del123
 
14.11.12
14:27
(13) А сами магазины - это элементы номенклатуры?
16 Валидатор
 
14.11.12
14:27
создал новую обработку, на нее распределил поля, на форму
17 Валидатор
 
14.11.12
14:28
(15) в справочнике номенклатура, на форме группы у меня добавлено 2 реквизита, там и прописываются наименования магазинов, эти наименования мне и нужно выдергивать и выводить
18 del123
 
14.11.12
14:29
(17) так это реквизиты группы номенклатуры??
19 antixrus
 
14.11.12
14:29
Т.е. полчучается: имеем внешнюю обработку которая при заполнении полей должна что то показать?
20 Валидатор
 
14.11.12
14:30
(18) это реквизиты номенклатуры, размещенные на форме группы номенклатуры
21 Валидатор
 
14.11.12
14:31
(19), да, так и есть
22 antixrus
 
14.11.12
14:35
Для того чтобы сделать эту выборку в карточке должны быть заполнены
эти реквизиты. Исходя из типов реквизита будешь и обращаться к ним как сделаешь и выводить результат в ТП или ТЧ на выбор.
23 del123
 
14.11.12
14:39
Результат = Запрос.Выполнить().Выбрать();

     Спис = новый СписокЗначений;
     Спис.Добавить(Результат.Первый);
     Спис.Добавить(Результат.Второй);
     Выбран = Спис.ВыбратьЭлемент();

потом уже Выбран.значение запихиваешь куда тебе надо
24 antixrus
 
14.11.12
14:40
Так он выборку хочет сделать, если  не ошибаюсь, а реквизиты еще пустые
25 del123
 
14.11.12
14:42
(24) ему нужно, что бы пользователь выбрал из двух реквизитов группы номенклатуры один.
26 Валидатор
 
14.11.12
14:45
(25), да только теперь он предлагает выбрать значение, но во 1х оба значения "ПустыеЗначения", и когда я выбираю один из них, он мне выдает:

{Форма.Форма.Форма(117)}: Поле объекта недоступно для записи (ВыборМагазина)
   ЭлементыФормы.ВыборМагазина = Выбран.Значение;
Выбормагазина - название поля, в котором идет как раз выбор одного из двух
27 hhhh
 
14.11.12
14:47
(26) ЭлементыФормы.ВыборМагазина.Значение=
28 Валидатор
 
14.11.12
14:48
(27) точно, но данные с пустыми значениями все равно выводятся, хоть реквизиты у них и заполнены
29 del123
 
14.11.12
14:53
добавь после Результат = Запрос.Выполнить().Выбрать();
Результат.Следующий()
30 Валидатор
 
14.11.12
14:55
(29) все равно так же
31 Валидатор
 
14.11.12
14:55
Процедура ВыборМагазинаНачалоВыбора(Элемент, СтандартнаяОбработка)
   СтандартнаяОбработка = Ложь;
   Запрос = Новый Запрос;
   Запрос.Текст = "ВЫБРАТЬ
                  |    Номенклатура.НазваниеПоставщикаМосква КАК первый,
                  |    Номенклатура.НазваниеПоставщикаПитер как Второй,
                  |    Номенклатура.Ссылка
                  |ИЗ
                  |    Справочник.Номенклатура КАК Номенклатура
                  |ГДЕ
                  |    Номенклатура.Ссылка = &Ссылка";
   Запрос.УстановитьПараметр("Ссылка", НоменклГрупп);
   Результат = Запрос.Выполнить().Выбрать();
   Результат.Следующий();
   Спис = новый СписокЗначений;
   Спис.Добавить(Результат.Первый);
   Спис.Добавить(Результат.Второй);
   Выбран = Спис.ВыбратьЭлемент();
   ЭлементыФормы.ВыборМагазина.Значение = Выбран.Значение;
КонецПроцедуры
32 del123
 
14.11.12
14:59
а какой тип у реквизитов?
33 Валидатор
 
14.11.12
15:02
Строка
Есть два вида языков, одни постоянно ругают, а вторыми никто не пользуется.