Имя: Пароль:
1C
1С v8
1С 8.2. Программирование справочники
0 hmadm
 
12.01.16
14:13
Добрый день.
Прошу подсказки дабы не ломать голову. Требуется элементам справочника "Номенклатура" установить для группы элементов некоторое значение.

СпрСотр = Справочники.Сотрудники;
ГруппаРаботающие = СпрСотр.НайтиПоНаименованию("Работающие");
Выборка = СпрСотр.Выбрать(ГруппаРаботающие);
Пока Выборка.Следующий() = 1 Цикл
   //действия с очередным элементом
   Сообщить("Сотрудник " + Выборка.Наименование);
КонецЦикла;

По данному коду перебирает только элементы группы не захватывая подгруппы данной группы, как сделать так чтобы подгруппы тоже были обработаны ???
1 itlikbez
 
12.01.16
14:17
(0) ВыбратьИерархически()
2 Timon1405
 
12.01.16
14:18
(0) Обернуть это в функцию, если текущий элемент выборки группа, вызывать функцию для текущего элемента.
3 mehfk
 
12.01.16
14:18
СправочникМенеджер.<Имя справочника>.ВыбратьИерархически (CatalogManager.<Имя справочника>.SelectHierarchically)
СправочникМенеджер.<Имя справочника> (CatalogManager.<Имя справочника>)
ВыбратьИерархически (SelectHierarchically)
Синтаксис:

ВыбратьИерархически(<Родитель>, <Владелец>, <Отбор>, <Порядок>)
Параметры:

<Родитель> (необязательный)

Тип: СправочникСсылка.
Отбор по родителю. Имеет смысл только для многоуровневых справочников. Если параметр не задан, то отбор по родителю не производится.
<Владелец> (необязательный)

Тип: СправочникСсылка.
Отбор по владельцу. Имеет смысл только для подчиненных справочников. Если параметр не задан, то отбор по владельцу не производится.
<Отбор> (необязательный)

Тип: Структура.
Ключ структуры описывает имя поля, а значение структуры - значение отбора по этому полю. Могут задаваться только "Код", "Наименование" и реквизиты справочника, для которых в конфигураторе признак индексирования установлен в значение "Индексировать" или в значение "Индексировать с доп. упорядоч.".
Важно! Структура может содержать только один элемент.
Если параметр не указан, то отбор не используется.
<Порядок> (необязательный)

Тип: Строка.
Строка с именем реквизита справочника, определяющая упорядочивание элементов в выборке. Может быть указано "Код", "Наименование" или имя одного из реквизитов примитивного типа (Число, Строка, Дата, Булево), для которого установлен признак "Индексирование" в значение "Индексировать" или "Индексировать с дополнительным упорядочиванием" в конфигураторе. После имени реквизита через пробел может быть указано направление сортировки. Направление определяется: "Убыв" ("Desc") - упорядочивать по убыванию; "Возр" ("Asc") - упорядочивать по возрастанию. По умолчанию сортировка производится по возрастанию. Если параметр не указан, то порядок определяется основным представлением справочника.
Значение по умолчанию: Пустая строка.
Возвращаемое значение:

Тип: СправочникВыборка.

Описание:

Формирует иерархическую выборку элементов справочника по заданным условиям. При иерархической выборке для каждого элемента сначала выбираются элементы, для которых он является родителем, а затем уже выбираются элементы следующего уровня.

Доступность:

Сервер, толстый клиент, внешнее соединение, мобильное приложение(сервер).
Пример:

Товары = Справочники.Номенклатура;
ВыборкаСправочника = Товары.ВыбратьИерархически();


--------------------------------------------------------------------------------

     Методическая информация
4 mehfk
 
12.01.16
14:18
А вообще, переходите на запросы.
5 nazi
 
12.01.16
14:23
(4) или на универсальные обработки)))
6 hmadm
 
12.01.16
14:24
ух ты оперативненько как. Щас опробуем спасибо за советы.

    СпрКонтрагент = Справочники.Контрагенты;
    ВыборкаСпрКон = СпрКонтрагент.Выбрать(Контрагент);
    Пока ВыборкаСпрКон.Следующий() = 1 Цикл
        Если ВыборкаСпрКон.ЭтоГруппа = 0 Тогда
            СпрПозиция = ВыборкаСпрКон.Ссылка;
            СпрПозиция.КассаДляЗакрытия = Касса;
        КонецЕсли;    
    КонецЦикла;

это реальный текст данного маразма. А насчет переходить на запросы это мы могем, просто реальная задача проставить контрагентам в справочнике определенную кассу. Контрагенты групированы по менеджерам и есть подгруппы вот и хочу родить по быстрому обработочку чтобы пальцами не кламцать.
7 mehfk
 
12.01.16
14:25
Тогда (5) и не трахать мозг.
8 mehfk
 
12.01.16
14:26
И да, семеркостайл детектед.
Я не хочу быть самым богатым человеком на кладбище. Засыпать с чувством, что за день я сделал какую-нибудь потрясающую вещь — вот что меня интересует. Стив Джобс