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

Некоторые глупые вопросы

Автор alexei1800, 14 мар 2017, 00:49

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

alexei1800

В общем у меня иерархический справочник контрагент
Там есть 2 группы
Группа покупатели Иванов, Петров
Группа продавцы Сидоров, Зверев
Есть документа Продажа Товаров, в этом документе реквизит контрагент, тип СправочникСсылка.Контрагенты

В общем мне нужно изменить форму выбора, чтобы вместо покупатели, продавцы, Иванов, Петров, Сидоров, Зверев - мне на выбор давали только Иванов и Петров

Почему такой запрос ничего не находит, как правильно изменить форму выбора


ВЫБРАТЬ
   Контрагенты.Наименование,
   Контрагенты.ЭтоГруппа,
   Контрагенты.Родитель
ИЗ
   Справочник.Контрагенты КАК Контрагенты
Где ЭтоГруппа=Ложь   и Родитель="Поставщики"


Как вообще изменить стандартную обработку
СтандартнаяОбработка = Ложь;

где можно почитать, кто посоветует хороший справочник

alexei1800

ВЫБРАТЬ
    Номенклатура.Код,
    Номенклатура.Наименование КАК Наименование,
    Номенклатура.ЗакупочнаяЦена
ИЗ
    Справочник.Номенклатура КАК Номенклатура

ГДЕ
    Номенклатура.Ссылка В ИЕРАРХИИ(&Группа)

вместо &Группа пишешь "Поставщики" и ничего не находит Номенклатура.Ссылка В ИЕРАРХИИ("Поставщики")

Тоже самое ВЫБРАТЬ
    Номенклатура.Код,
    Номенклатура.Наименование КАК Наименование,
    Номенклатура.ЗакупочнаяЦена
ИЗ
    Справочник.Номенклатура КАК Номенклатура

ГДЕ
    Номенклатура.Родитель = &Группа

не находит

Norfolk

Цитата: alexei1800 от 14 мар 2017, 01:11
ВЫБРАТЬ
    Номенклатура.Код,
    Номенклатура.Наименование КАК Наименование,
    Номенклатура.ЗакупочнаяЦена
ИЗ
    Справочник.Номенклатура КАК Номенклатура

ГДЕ
    Номенклатура.Ссылка В ИЕРАРХИИ(&Группа)

вместо &Группа пишешь "Поставщики" и ничего не находит Номенклатура.Ссылка В ИЕРАРХИИ("Поставщики")

Тоже самое ВЫБРАТЬ
    Номенклатура.Код,
    Номенклатура.Наименование КАК Наименование,
    Номенклатура.ЗакупочнаяЦена
ИЗ
    Справочник.Номенклатура КАК Номенклатура

ГДЕ
    Номенклатура.Родитель = &Группа

не находит
Поставщики и покупатели это группа?
Тогда
ГДЕ
    Номенклатура.Родитель= &Группа

Если у вас есть еще и подгруппы, тогда вместо равно В ИЕРАРХИИ
Должно находить.

ls600

Как вариант можно использовать событие "НачалоВыбора"

     СтандартнаяОбработка = Ложь;
Спр = Справочники.Номенклатура.ПолучитьФормуВыбора(,Элемент);
грПродавцы = Справочники.Номенклатура.НайтиПоКоду("КодГруппы");
Спр.ЭлементыФормы.СправочникСписок.ТекущаяСтрока = грПродавцы;
Спр.ЭлементыФормы.СправочникДерево.ТекущаяСтрока = грПродавцы;

ОтборПоГруппе = Спр.СправочникСписок.Отбор.Ссылка;
ОтборПоГруппе.ВидСравнения = ВидСравнения.ВИерархии;
ОтборПоГруппе.Значение = грПродавцы;
ОтборПоГруппе.Использование = Истина;
Спр.Открыть();


alexei1800





Добавлено: 21 мар 2017, 23:37


Цитата: ls600 от 14 мар 2017, 05:48
Как вариант можно использовать событие "НачалоВыбора"

     СтандартнаяОбработка = Ложь;
Спр = Справочники.Номенклатура.ПолучитьФормуВыбора(,Элемент);
грПродавцы = Справочники.Номенклатура.НайтиПоКоду("КодГруппы");
Спр.ЭлементыФормы.СправочникСписок.ТекущаяСтрока = грПродавцы;
Спр.ЭлементыФормы.СправочникДерево.ТекущаяСтрока = грПродавцы;

ОтборПоГруппе = Спр.СправочникСписок.Отбор.Ссылка;
ОтборПоГруппе.ВидСравнения = ВидСравнения.ВИерархии;
ОтборПоГруппе.Значение = грПродавцы;
ОтборПоГруппе.Использование = Истина;
Спр.Открыть();


Не работает этот код. В общем еще раз. В форме есть элемент контрагент. Путь к данным Объект.Контрагент.
Справочник Контрагент - иерархический. Состоящий из двух групп. Покупатели и поставщики

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

&НаСервереБезКонтекста
   Процедура ВыбораНаСервере()
//какой-то код
          КонецПроцедуры

LexaK

Попробуйте пойти по другому пути.

Вам это выбор нужен на форме Документа, при этом на форме подразумевается наличие двух полей
Поле - Покупатели
Поле - Продавцы
в этих полях при нажатии на кнопку выбор вы хотите видеть контрагентов из соответствующей группы
все правильно?

в этом случае можно легко использовать свойство поля ПараметрыВыбора
которое настраиваем ОДИН раз при открытии формы
вот пример, проверено работает, где надо на свои данные замените

&НаСервере
Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)

    //получаем ссылки на нужные группы
    грПоставщики = Справочники.Контрагенты.НайтиПоНаименованию("Поставщики");
    грПокупатели = Справочники.Контрагенты.НайтиПоНаименованию("Покупатели");

    //устанавливаем отборы на поля (элементы формы)
    ОтборПоставщики = Новый Массив;
    ОтборПоставщики.Добавить(Новый ПараметрВыбора("Отбор.Родитель", грПоставщики ));
    Элементы.<Поставщик>.ПараметрыВыбора = Новый ФиксированныйМассив(ОтборПоставщики);

    ОтборПокупатели = Новый Массив;
    ОтборПокупатели.Добавить(Новый ПараметрВыбора("Отбор.Родитель", грПокупатели ));
    Элементы.<Покупатель>.ПараметрыВыбора = Новый ФиксированныйМассив(ОтборПокупатели);

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



Да и еще, при первом выборе Контрагента (уже в режиме работы базы),
в форме выбора измените Режим просмотра в СПИСОК.

Вот вроде и все, попробуйте.

ответ Понравился? (в смысле пригодился?)

alexei1800

Цитата: LexaK от 22 мар 2017, 09:42
Попробуйте пойти по другому пути.

Вам это выбор нужен на форме Документа, при этом на форме подразумевается наличие двух полей
Поле - Покупатели
Поле - Продавцы
в этих полях при нажатии на кнопку выбор вы хотите видеть контрагентов из соответствующей группы
все правильно?

в этом случае можно легко использовать свойство поля ПараметрыВыбора
которое настраиваем ОДИН раз при открытии формы
вот пример, проверено работает, где надо на свои данные замените

&НаСервере
Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)

    //получаем ссылки на нужные группы
    грПоставщики = Справочники.Контрагенты.НайтиПоНаименованию("Поставщики");
    грПокупатели = Справочники.Контрагенты.НайтиПоНаименованию("Покупатели");

    //устанавливаем отборы на поля (элементы формы)
    ОтборПоставщики = Новый Массив;
    ОтборПоставщики.Добавить(Новый ПараметрВыбора("Отбор.Родитель", грПоставщики ));
    Элементы.<Поставщик>.ПараметрыВыбора = Новый ФиксированныйМассив(ОтборПоставщики);

    ОтборПокупатели = Новый Массив;
    ОтборПокупатели.Добавить(Новый ПараметрВыбора("Отбор.Родитель", грПокупатели ));
    Элементы.<Покупатель>.ПараметрыВыбора = Новый ФиксированныйМассив(ОтборПокупатели);

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



Да и еще, при первом выборе Контрагента (уже в режиме работы базы),
в форме выбора измените Режим просмотра в СПИСОК.

Вот вроде и все, попробуйте.
Где находится режим просмотра, что-то найти не могу.
А так все что нужно, но еще чтобы название групп не показывалось. А они показываются. Т.е. в форме выбора покупатели, продавцы,  Иванов и Петров. А нужно чтобы только иванов и петров

LexaK

Цитироватьно еще чтобы название групп не показывалось.

вот это как  раз и убирается изменением режима просмотра!
как раз я об этом и писал в предыдущем ответе.
как изменить режим просмотра:
в форме выбора в правом верхнем углу есть кнопка Все действия, и далее по меню см.рис.
ответ Понравился? (в смысле пригодился?)

Теги:

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

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

Поиск