Заказы на доработку 1С (сервис удаленной работы)

Хранилище

База знаний
Неназначенных незавершенных заказов: 2
Бесплатные отчеты, обработки, конфигурации, внешние компоненты для 1С Статьи, описание работы, методики по работе с 1С

Здравствуйте, гость ( Вход | Зарегистрироваться )



> Отбор по значению в форме выбора          
alexkhua Подменю пользователя
сообщение 03.06.13, 14:49
Сообщение #1

Завсегдатай
****
Группа: Пользователи
Сообщений: 181
Спасибо сказали: 2 раз
Рейтинг: 0

Натолкните на мысль, как установить отбор в форме выбора документа? Методы , что нашел только для УП.
И , второе, возможно ли установить отбор по списку из нескольких значений документов (по двум и более документам)?


Vofka Подменю пользователя
сообщение 03.06.13, 15:05
Сообщение #2

У нас здесь своя атмосфера...
***********
Группа: Основатель
Сообщений: 13982
Из: Киев
Спасибо сказали: 4550 раз
Рейтинг: 3678.1

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

alexkhua Подменю пользователя
сообщение 03.06.13, 15:29
Сообщение #3

Завсегдатай
****
Группа: Пользователи
Сообщений: 181
Спасибо сказали: 2 раз
Рейтинг: 0

Цитата(Vofka @ 03.06.13, 16:05) *
Код писал прямо здесь, не проверял:
Отбор = ЭлементыФормы.ДокументСписок.Отбор;
Отбор.ВидСравнения = ВидыСравнения.ВСписке;
Отбор.Значение = СписокДокументов;
Отбор.Использование = Истина;

Не пойму , что такое ДокументСписок.?

Vofka Подменю пользователя
сообщение 03.06.13, 15:38
Сообщение #4

У нас здесь своя атмосфера...
***********
Группа: Основатель
Сообщений: 13982
Из: Киев
Спасибо сказали: 4550 раз
Рейтинг: 3678.1

Цитата(alexkhua @ 03.06.13, 16:29) *
что такое ДокументСписок.?

Имя элемента управления, в котором содержится список документов.

alexkhua Подменю пользователя
сообщение 03.06.13, 19:22
Сообщение #5

Завсегдатай
****
Группа: Пользователи
Сообщений: 181
Спасибо сказали: 2 раз
Рейтинг: 0

Нужно из одного документа открыть форму выбора документа ПриходнаяНакладная с отбором, например, по складу. Нашел штук пять методов в инете, но они работают только в УП.
Вот код , что не так ? (конфигурация самописная)
Процедура РецептураПартия1НачалоВыбора(Элемент, СтандартнаяОбработка)
     СтандартнаяОбработка=Ложь;
     ЗначениеОтбора= Новый Структура("Склад", СкладМатериалов);
     ПараметрыВыбора= Новый Структура("Отбор", ЗначениеОтбора);
     Форма=ПолучитьФорму("Документ.ПриходнаяНакладная.ФормаВыбора",ПараметрыВыбора);
     Форма.Открыть();
  
КонецПроцедуры


Vofka Подменю пользователя
сообщение 03.06.13, 19:31
Сообщение #6

У нас здесь своя атмосфера...
***********
Группа: Основатель
Сообщений: 13982
Из: Киев
Спасибо сказали: 4550 раз
Рейтинг: 3678.1

Цитата(alexkhua @ 03.06.13, 20:22) *
что не так ?

Вы же сами пишете, что это для управляемых форм! Для обычных как-то так:

Процедура РецептураПартия1НачалоВыбора(Элемент, СтандартнаяОбработка)

     СтандартнаяОбработка=Ложь;
     Форма = Документы.ПриходнаяНакладная.ПолучитьФормуВыбора(, Элемент);
     Отбор = Форма.ЭлементыФормы.ДокументСписок.Отбор;
     Отбор.ВидСравнения = ВидыСравнения.ВСписке;
     Отбор.Значение = СписокДокументов; // СписокДокументов - надо ранее где-то определить, это список значений
     Отбор.Использование = Истина;
     Форма.Открыть();
  
КонецПроцедуры


Сообщение отредактировал Vofka - 03.06.13, 19:32

Спасибо сказали: kuklachel,

logist Подменю пользователя
сообщение 03.06.13, 19:45
Сообщение #7

Про1С-ник
Иконка группы
Квалифицированный бухгалтерГений телепатии и социального моделированияЗа заслуги на форуме в 2010 годуМодератору Про1С (за заслуги в 2011 году)
Группа: Местный
Сообщений: 9564
Из: Kharkiv, UA
Спасибо сказали: 2536 раз
Рейтинг: 0

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

как вариант.


Signature
Личные бесплатные консультации не даю, для этого есть форум!

Спасибо сказали: alexkhua,

alexkhua Подменю пользователя
сообщение 03.06.13, 19:52
Сообщение #8

Завсегдатай
****
Группа: Пользователи
Сообщений: 181
Спасибо сказали: 2 раз
Рейтинг: 0

Вот С таким кодом:
Процедура РецептураПартия1НачалоВыбора(Элемент, СтандартнаяОбработка)
    
    СтандартнаяОбработка=Ложь;

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

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

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

    Выборка = Результат.Выбрать();

    Пока Выборка.Следующий() Цикл
        СписокДокументов = Выборка.Ссылка;
    
    КонецЦикла;

     Форма = Документы.ПриходнаяНакладная.ПолучитьФормуВыбора(, Элемент);
     Отбор = Форма.ЭлементыФормы.ДокументСписок.Отбор;
     Отбор.ВидСравнения = ВидСравнения.ВСписке;
     Отбор.Значение = СписокДокументов; // СписокДокументов - надо ранее где-то определить, это список значений
     Отбор.Использование = Истина;
     Форма.Открыть();  
КонецПроцедуры

Такая ошибка:
Цитата
{Документ.НарядЗаказПорошок.Форма.ФормаДокумента.Форма(98)}: Поле объекта не обнаружено (Отбор)
Отбор = Форма.ЭлементыФормы.ДокументСписок.Отбор;

logist Подменю пользователя
сообщение 03.06.13, 20:16
Сообщение #9

Про1С-ник
Иконка группы
Квалифицированный бухгалтерГений телепатии и социального моделированияЗа заслуги на форуме в 2010 годуМодератору Про1С (за заслуги в 2011 году)
Группа: Местный
Сообщений: 9564
Из: Kharkiv, UA
Спасибо сказали: 2536 раз
Рейтинг: 0

Цитата(alexkhua @ 03.06.13, 20:52) *
Вот С таким кодом:

Это не код, это шопопало.

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

    Запрос = Новый Запрос;
    Запрос.Текст =
        "ВЫБРАТЬ
        |    ПриходнаяНакладнаяНоменклатура.Ссылка,
        |ИЗ
        |    Документ.ПриходнаяНакладная.Номенклатура КАК ПриходнаяНакладнаяНоменклатура
        |ГДЕ
        |    ПриходнаяНакладнаяНоменклатура.Номенклатура = &СтрНоменклатура
        |СГРУППИРОВАТЬ ПО
        |    ПриходнаяНакладнаяНоменклатура.Ссылка";

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

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

    СписокДокументов = Результат.ВыгрузитьКолонку("Ссылка");
   // Ниже не притендую на истину, но все же
   ФормаВыбора = Документы.ПриходнаяНакладная.ПолучитьФормуВыбора();
    ФормаВыбора.Отбор.Ссылка.Значение = СписокДокументов; // Хотя может не Ссылка а Документ
    ФормаВыбора.Отбора.Ссылка.ВидСравнения = ВидСравнения.ВСписке
    ФормаВыбора.Отбор.Ссылка.Использование = Истина;
    Элемент.Значение = ФормаВыбора.ОткрытьМодально();
КонецПроцедуры



Signature
Личные бесплатные консультации не даю, для этого есть форум!

Vofka Подменю пользователя
сообщение 03.06.13, 20:38
Сообщение #10

У нас здесь своя атмосфера...
***********
Группа: Основатель
Сообщений: 13982
Из: Киев
Спасибо сказали: 4550 раз
Рейтинг: 3678.1

Цитата(logist @ 03.06.13, 21:16) *
Это не код, это шопопало.

Каждый когда-то шопопало писал smile.gif

alexkhua Подменю пользователя
сообщение 03.06.13, 21:09
Сообщение #11

Завсегдатай
****
Группа: Пользователи
Сообщений: 181
Спасибо сказали: 2 раз
Рейтинг: 0

logist, Ваш запрос ошибочный

Цитата(logist @ 03.06.13, 21:16) *
Это не код, это шопопало.

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

    Запрос = Новый Запрос;
    Запрос.Текст =
        "ВЫБРАТЬ
        |    ПриходнаяНакладнаяНоменклатура.Ссылка,
        |ИЗ
        |    Документ.ПриходнаяНакладная.Номенклатура КАК ПриходнаяНакладнаяНоменклатура
        |ГДЕ
        |    ПриходнаяНакладнаяНоменклатура.Номенклатура = &СтрНоменклатура
        |СГРУППИРОВАТЬ ПО
        |    ПриходнаяНакладнаяНоменклатура.Ссылка";

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

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

    СписокДокументов = Результат.ВыгрузитьКолонку("Ссылка");
   // Ниже не притендую на истину, но все же
   ФормаВыбора = Документы.ПриходнаяНакладная.ПолучитьФормуВыбора();
    ФормаВыбора.Отбор.Ссылка.Значение = СписокДокументов; // Хотя может не Ссылка а Документ
    ФормаВыбора.Отбора.Ссылка.ВидСравнения = ВидСравнения.ВСписке
    ФормаВыбора.Отбор.Ссылка.Использование = Истина;
    Элемент.Значение = ФормаВыбора.ОткрытьМодально();
КонецПроцедуры

Цитата
{Документ.НарядЗаказПорошок.Форма.ФормаДокумента.Форма(93)}: Ошибка при установке значения атрибута контекста (Значение)
ФормаВыбора.Отбор.Ссылка.Значение = СписокДокументов; // Хотя может не Ссылка а Документ
по причине:
Неверный тип значения



alexkhua Подменю пользователя
сообщение 03.06.13, 22:49
Сообщение #12

Завсегдатай
****
Группа: Пользователи
Сообщений: 181
Спасибо сказали: 2 раз
Рейтинг: 0

Вот Так Работает как надо
Процедура РецептураПартия1НачалоВыбора(Элемент, СтандартнаяОбработка)
    
СтандартнаяОбработка=Ложь;

    Запрос = Новый Запрос;
    Запрос.Текст =
        "ВЫБРАТЬ
        |    ПриходнаяНакладнаяНоменклатура.Ссылка
        |ИЗ
        |    Документ.ПриходнаяНакладная.Номенклатура КАК ПриходнаяНакладнаяНоменклатура
        |ГДЕ
        |    ПриходнаяНакладнаяНоменклатура.Номенклатура = &СтрНоменклатура
        |
        |СГРУППИРОВАТЬ ПО
        |    ПриходнаяНакладнаяНоменклатура.Ссылка";

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

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

    МассивДокументов = Результат.ВыгрузитьКолонку("Ссылка");
    
    СписокДокументов= Новый СписокЗначений;
    
    Для Каждого Стр из МассивДокументов Цикл
        СписокДокументов.Добавить(Стр);
    КонецЦикла;    
        

    ФормаВыбора = Документы.ПриходнаяНакладная.ПолучитьФормуВыбора();
    ФормаВыбора.Отбор.Ссылка.ВидСравнения = ВидСравнения.ВСписке;
    ФормаВыбора.Отбор.Ссылка.Значение = СписокДокументов;
    ФормаВыбора.Отбор.Ссылка.Использование = Истина;
    Элемент.Значение = ФормаВыбора.ОткрытьМодально();
  
КонецПроцедуры


Всем спасибо за помощь.

logist Подменю пользователя
сообщение 03.06.13, 23:14
Сообщение #13

Про1С-ник
Иконка группы
Квалифицированный бухгалтерГений телепатии и социального моделированияЗа заслуги на форуме в 2010 годуМодератору Про1С (за заслуги в 2011 году)
Группа: Местный
Сообщений: 9564
Из: Kharkiv, UA
Спасибо сказали: 2536 раз
Рейтинг: 0

Цитата(Vofka @ 03.06.13, 21:38) *
Каждый когда-то шопопало писал

бесспорно. я лишь высказал свое мнение, и привел код который был бы правильным, а вместо спасибо за обучение, ткнули пальцем в ошибку, ну мне то что, главное, что человек разобрался где ошибка...
Цитата(alexkhua @ 03.06.13, 22:09) *
logist, Ваш запрос ошибочный



Signature
Личные бесплатные консультации не даю, для этого есть форум!

Vofka Подменю пользователя
сообщение 04.06.13, 8:00
Сообщение #14

У нас здесь своя атмосфера...
***********
Группа: Основатель
Сообщений: 13982
Из: Киев
Спасибо сказали: 4550 раз
Рейтинг: 3678.1

Цитата(logist @ 04.06.13, 0:14) *
а вместо спасибо за обучение, ткнули пальцем в ошибку

Автор не со зла, я думаю smile.gif

alexkhua, а ну ка быстренько всем помогающим палец вверх 32542460.gif

Спасибо сказали: alexkhua,

Не нашли ответа на свой вопрос?
Зарегистрируйтесь и задайте новый вопрос.


Ответить Новая тема
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 

RSS Текстовая версия Сейчас: 24.09.24, 14:19
1С Предприятие 8.3, 1С Предприятие 8.2, 1С Предприятие 8.1, 1С Предприятие 8.0, 1С Предприятие 7.7, Литература 1С, Общие вопросы по администрированию 1С, Методическая поддержка 1С - всё в одном месте: на Украинском 1С форуме!