Если вы начинающий разработчик - вступайте в мою группу помощник программиста 1С. В ней мы обсуждаем вопросы программирования в 1С для начинающих (Владимир Милькин, школа программирования).

<<< Документы Константы Перечисления РегистрыБухгалтерии
<<< РегистрыНакопления РегистрыСведений Справочники

Справочники в языке 1С 8.3, 8.2 (в примерах)

Описание (нажмите, чтобы раскрыть)
Процедура Примеры()
 
    ОрганизацияПоУмолчанию = 
        БухгалтерскийУчетПереопределяемый.
        ПолучитьЗначениеПоУмолчанию("ОсновнаяОрганизация");
 
    /// Как обойти все элементы справочника в 1с 8.3, 8.2
 
    Запрос = Новый Запрос;
    Запрос.Текст = 
        "ВЫБРАТЬ
        |   Контрагенты.Ссылка
        |ИЗ
        |   Справочник.Контрагенты КАК Контрагенты";
 
    РезультатЗапроса = Запрос.Выполнить();
 
    ВыборкаДетальныеЗаписи = РезультатЗапроса.Выбрать();
 
    СсылкаНаГруппу = Справочники.Контрагенты.ПустаяСсылка();
    СсылкаНаЭлемент = Справочники.Контрагенты.ПустаяСсылка();
 
    Пока ВыборкаДетальныеЗаписи.Следующий() Цикл
        Если ВыборкаДетальныеЗаписи.Ссылка.ЭтоГруппа Тогда
            СсылкаНаГруппу = ВыборкаДетальныеЗаписи.Ссылка;
        Иначе
            СсылкаНаЭлемент = ВыборкаДетальныеЗаписи.Ссылка;
        КонецЕсли;
    КонецЦикла;
 
    /// Как отобрать элементы справочника по родителю в 1с 8.3, 8.2
    /// (перечислим все элементы группы)
 
    Запрос = Новый Запрос;
    Запрос.Текст = 
        "ВЫБРАТЬ
        |   Контрагенты.Ссылка
        |ИЗ
        |   Справочник.Контрагенты КАК Контрагенты
        |ГДЕ
        |   Контрагенты.Родитель = &Родитель";
 
    Запрос.УстановитьПараметр("Родитель", СсылкаНаГруппу);
 
    РезультатЗапроса = Запрос.Выполнить();
 
    ВыборкаДетальныеЗаписи = РезультатЗапроса.Выбрать();
    Сообщить(СсылкаНаГруппу.Наименование + ":");
    Пока ВыборкаДетальныеЗаписи.Следующий() Цикл
        Сообщить("  " + ВыборкаДетальныеЗаписи.Ссылка);
    КонецЦикла;
 
    /// Как отобрать элементы справочника по владельцу в 1с 8.3, 8.2
    /// (перечислим все договоры контрагента)
 
    Запрос = Новый Запрос;
    Запрос.Текст = 
        "ВЫБРАТЬ
        |   ДоговорыКонтрагентов.Ссылка
        |ИЗ
        |   Справочник.ДоговорыКонтрагентов КАК ДоговорыКонтрагентов
        |ГДЕ
        |   ДоговорыКонтрагентов.Владелец = &Владелец";
 
    Запрос.УстановитьПараметр("Владелец", СсылкаНаЭлемент);
 
    РезультатЗапроса = Запрос.Выполнить();
 
    ВыборкаДетальныеЗаписи = РезультатЗапроса.Выбрать();
    Сообщить(СсылкаНаЭлемент.Наименование + ":");
    Пока ВыборкаДетальныеЗаписи.Следующий() Цикл
        Сообщить("  " + ВыборкаДетальныеЗаписи.Ссылка);
    КонецЦикла;
 
    /// Как отобрать элементы справочника по коду, наименованию,
    /// реквизиту в 1с 8.3, 8.2
 
    Запрос = Новый Запрос;
    Запрос.Текст = 
        "ВЫБРАТЬ
        |   Валюты.Ссылка
        |ИЗ
        |   Справочник.Валюты КАК Валюты
        |ГДЕ
        |   Валюты.Наименование = &Наименование И
        |   Валюты.Код = &Код И
        |   Валюты.НаименованиеПолное = &НаименованиеПолное";
 
    Запрос.УстановитьПараметр("Наименование", "руб.");
    Запрос.УстановитьПараметр("Код", "643");
    Запрос.УстановитьПараметр("НаименованиеПолное", "Российский рубль");
 
    РезультатЗапроса = Запрос.Выполнить();
 
    ВыборкаДетальныеЗаписи = РезультатЗапроса.Выбрать();
 
    Пока ВыборкаДетальныеЗаписи.Следующий() Цикл
        Сообщить(ВыборкаДетальныеЗаписи.Ссылка);
    КонецЦикла;
 
    /// Как получить пустую ссылку типа справочник в 1с 8.3, 8.2
 
    ПустаяСсылка = Справочники.Валюты.ПустаяСсылка();
    Если ПустаяСсылка.Пустая() Тогда
        Сообщить("Ссылка пустая.");
    КонецЕсли;
 
    /// Как создать новую группу справочника в 1с 8.3, 8.2
 
    НоваяГруппаТовара = Справочники.Номенклатура.СоздатьГруппу();
    НоваяГруппаТовара.Наименование = "Новая группа товара";
    НоваяГруппаТовара.Записать();
 
    /// Как создать новый элемент справочника в 1с 8.3, 8.2
 
    НовыйЭлементВалюты = Справочники.Валюты.СоздатьЭлемент();
    НовыйЭлементВалюты.Код = "456";
    НовыйЭлементВалюты.Наименование = "ASD";
    НовыйЭлементВалюты.Записать();
 
    /// Как внести изменения в элемент справочника по ссылке 
    /// в 1с 8.3, 8.2
 
    ОбъектСправочника = СсылкаНаЭлемент.ПолучитьОбъект();
    ОбъектСправочника.Комментарий = "Контрагент изменен.";
    ОбъектСправочника.Записать();
 
    /// Как узнать принадлежность элемента справочника группе
    /// с учетом уровней иерархии в 1с 8.3, 8.2
 
    Если СсылкаНаЭлемент.ПринадлежитЭлементу(СсылкаНаГруппу) Тогда
        Сообщить(СсылкаНаЭлемент.Наименование + " принадлежит " +
            СсылкаНаГруппу.Наименование);
        КонецЕсли;
 
    /// Как скопировать существующий элемент справочника в 1с 8.3, 8.2
 
    Копия = СсылкаНаЭлемент.Скопировать();
    Копия.Наименование = Копия.Наименование + " КОПИЯ";
    Копия.УстановитьНовыйКод();
    Копия.Записать();
 
    /// Как выяснить уровень вложенности элемента справочника 
    /// в 1с 8.3, 8.2
 
    Сообщить(СсылкаНаЭлемент.Уровень());
 
    /// Как заблокировать элемент справочника перед изменениями 
    /// в 1с 8.3, 8.2
 
    ОбъектСправочника = СсылкаНаЭлемент.ПолучитьОбъект();
    Если Не ОбъектСправочника.Заблокирован() Тогда
        ОбъектСправочника.Заблокировать();
        ОбъектСправочника.Наименование = ОбъектСправочника.Наименование +
          " изменен";
        ОбъектСправочника.Записать();
        ОбъектСправочника.Разблокировать();
    КонецЕсли;
 
    /// Как заполнить новый элемент справочника на основании 
    /// в 1с 8.3, 8.2
 
    Контрагент = Справочники.Контрагенты.СоздатьЭлемент();
    Контрагент.Заполнить(ОрганизацияПоУмолчанию);
    Контрагент.Записать();
 
    /// Как пометить на удаление элемент справочника в 1с 8.3, 8.2
 
    УдалятьПодчиненныеЭлементы = Ложь;
    СсылкаНаГруппу.ПолучитьОбъект().УстановитьПометкуУдаления(
        Истина, УдалятьПодчиненныеЭлементы);
 
    /// Как открыть произвольную форму справочника по имени 
    /// в 1с 8.3, 8.2
 
    // ВЫПОЛНЯТЬ КОД НА КЛИЕНТЕ
    //
    //ОткрытьФорму("Справочник.Контрагенты.ФормаСписка");
    // ФормаВыбора
    // ФормаВыбораГруппы
    // ФормаГруппы
    // ФормаОбъекта
 
    /// Как открыть форму существующего элемента справочника 
    /// в 1с 8.3, 8.2
 
    // ВЫПОЛНЯТЬ КОД НА КЛИЕНТЕ
    //
    //Параметры = Новый Структура("Ключ", СсылкаНаЭлемент);
    //ОткрытьФорму("Справочник.Контрагенты.ФормаОбъекта", Параметры);
 
КонецПроцедуры

Если вы начинающий разработчик - вступайте в мою группу помощник программиста 1С. В ней мы обсуждаем вопросы программирования в 1С для начинающих (Владимир Милькин, школа программирования).

<<< Документы Константы Перечисления РегистрыБухгалтерии
<<< РегистрыНакопления РегистрыСведений Справочники

Справочники в языке 1С 8.3, 8.2 (в примерах)