Как получить в документе значение из справочника 1с?

17 ответов на вопрос “Как получить в документе значение из справочника 1с?”

  1. waprock Ответить

    ksru
    24.11.16 – 16:40
    как получить значения со справочника, если у меня есть форма при входе в нее два поля должны заполняться из справочника автоматически, это наименование фирмы, ИНН и адрес. То есть у меня уже создан справочник Фирмы (то есть моя фирма) мне нужно чтоб из нее брались 3 параметра.
    &НаСервере
    Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)
    Адрес=Справочники.Фирмы.ЮрАдрес;
    Продавец=Справочники.Фирмы.Наименование;
    ИННПродавца=Справочники.Фирмы.ИНН;
    КонецПроцедуры
    а остальные поля после того как выберу контрагента, адрес контрагента, инн.
    Этот код выдает ошибку Поле объекта не обнаружено

    yabes
    1 – 24.11.16 – 16:46
    Мне кажется тут надо с самых основ изучать 1С. Ну и формулировать вопросы подучиться
    yabes
    2 – 24.11.16 – 16:51
    (1) Сначала нужно найти вашу фирму:
    МояФирма = Справочники.Фирмы.НайтиПоКоду(“000…1”);
    Ну а дальше присваивать:
    Адрес = МояФирма.Адрес; и т.д.
    ksru
    3 – 24.11.16 – 16:51
    в общем 1 цель, сделать чтоб в форму при создании значения полей: Объект.Адрес, Объект.Продавец, Объект.ИННПродавца вставлялись автоматически из справочника
    Справочники.Фирмы.ЮрАдрес;
    Справочники.Фирмы.Наименование;
    Справочники.Фирмы.ИНН;
    Я так понимаю это процедура при создании
    &НаСервере
    Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)
    Адрес=Справочники.Фирмы.ЮрАдрес;
    Продавец=Справочники.Фирмы.Наименование;
    ИННПродавца=Справочники.Фирмы.ИНН;
    КонецПроцедуры
    Но 1с:предприятие после запуска пишет поле объекта ЮрАдрес не обнаружено, как реализовать 1 задачу
    DrShad
    4 – 24.11.16 – 16:53
    (3) читаем (2), сравниваем, до просветления
    ksru
    5 – 24.11.16 – 16:58
    (4) то есть так?
    &НаСервере
    Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)
    МояФирма = Справочники.Фирмы.НайтиПоКоду(“000001”);
    Адрес=МояФирма.ЮрАдрес;
    Продавец=МояФирма.Наименование;
    ИННПродавца=МояФирма.ИНН;
    КонецПроцедуры
    DrShad
    6 – 24.11.16 – 17:00
    где-то так
    но на будущее лучше сделать константу или параметр сеанса
    FIXXXL
    7 – 24.11.16 – 17:01
    (6) и не получать через точку реквизиты
    ksru
    8 – 24.11.16 – 17:05
    ребят не работает чуть-чуть, ошибки не выдает что может быть?
    DrShad
    9 – 24.11.16 – 17:07
    попробуй Объект.Адрес = МояФирма.ЮрАдрес
    МимохожийОднако
    10 – 24.11.16 – 17:07
    (8)Совсем маленькая ошибка. Включи режим отладки и посмотри по шагам.
    ksru
    11 – 24.11.16 – 17:19
    (9) спасибо в этом ошибка была, а как теперь дальше с Объектом.Клиент, нужно чтоб у него также выбирались все поля только покупатели разные, тогда так примерно будет так?
    Процедура КлиентПриИзменении(Элемент)
    Покупатель=Объект.Клиент;
    Контрагенты= Справочники.Фирмы.НайтиПоНаименованию(Покупатель);
    Объект.АдресПокупателяс=Контрагенты.ЮрАдрес;
    Объект.ИННПокупателя=Контрагенты.ИНН;
    КонецПроцедуры
    ksru
    12 – 24.11.16 – 17:21
    Процедура КлиентПриИзменении(Элемент)
    Покупатель=Объект.Клиент;
    Контрагенты= Справочники.Контагенты.НайтиПоНаименованию(Покупатель);
    Объект.АдресПокупателяс=Контрагенты.ЮрАдрес;
    Объект.ИННПокупателя=Контрагенты.ИНН;
    КонецПроцедуры
    ksru
    13 – 24.11.16 – 17:24
    не что-то пошло не так
    Mauser
    14 – 24.11.16 – 17:29
    http://www.v8.1c.ru/metod/books/book.jsp?id=63
    ksru
    15 – 24.11.16 – 17:36
    (14) я думаю с книгой мы не поладим
    IlyaSR
    16 – 24.11.16 – 17:36
    рука-лицо()
    это была рекурсия
    ksru
    17 – 24.11.16 – 17:44
    подскажите как реализовать 2 цель чтоб при выборе покупателя заполнялись остальные поля
    Процедура КлиентПриИзменении(Элемент)
    Покупатель=Объект.Клиент;
    Контр=Справочники.Контрагенты.НайтиПоНаименованию(Покупатель);
    Объект.АдресПокупателя=Контр.ЮрАдрес;
    Объект.ИННПокупателя=Контр.ИНН;
    КонецПроцедуры
    Diman_Kr
    18 – 24.11.16 – 17:48
    (17)-(14)+100500
    Mauser
    19 – 24.11.16 – 17:49
    (17) Совет №15
    Не используй читы, от этого ты лучше играть не станешь, и что ты этим хочешь себе доказать?
    ksru
    20 – 24.11.16 – 17:52
    (19) наверное я спрашиваю потому что не знаю, а когда что-то узнаю разобравшись, я стараюсь это как-то применить
    azernot
    21 – 24.11.16 – 17:57
    На твоём уровне достаточно будет
    Покупатель=Объект.Клиент;
    Объект.АдресПокупателя=Покупатель.ЮрАдрес;
    Объект.ИННПокупателя=Покупатель.ИНН
    Mauser
    22 – 24.11.16 – 17:57
    (20) молодым везде у нас дорога
    ksru
    23 – 24.11.16 – 18:09
    (22) спасибо за тролинг, если честно вы мне ничем не помогли, если не можете помочь тогда зачем влезать в разговор
    ksru
    24 – 24.11.16 – 18:11
    (21) не работает почему не знаю
    &НаСервере
    Процедура КлиентПриИзменении(Элемент)
    Покупатель=Объект.Клиент;
    Объект.АдресПокупателя=Покупатель.ЮрАдрес;
    Объект.ИННПокупателя=Покупатель.ИНН;
    КонецПроцедуры
    Mauser
    25 – 24.11.16 – 18:12
    (23) а мне нравится
    тем более я рекомендовал тебе книгу жаль что ты в нее не можешь но ничего
    azernot
    26 – 24.11.16 – 18:13
    (23) Чесгря, самая правильная помощь в (14)
    Иначе – никак. Это во времена 7.7 можно было на синтаксис-помощнике обучаться, а сейчас это уже практически невозможно.
    Так что или готовьтесь к тому, что 9 из 10 постов на этом форуме будут тролингом, или воспользуйтесь советом из (14)
    (24) На сервере? А на клиенте что? И связана ли процедура собственно с полем ввода “Клиент”, установлена ли обработчиком события “ПриИзменении”?
    ksru
    27 – 24.11.16 – 18:48
    (26) спасибо тебе большое!
    &НаКлиенте
    Процедура КлиентПриИзменении(Элемент)
    КлиентПриИзмененииНаСервере();
    КонецПроцедуры
    &НаСервере
    Процедура КлиентПриИзмененииНаСервере()
    Покупатель=Объект.Клиент;
    Объект.АдресПокупателя=Покупатель.ЮрАдрес;
    Объект.ИННПокупателя=Покупатель.ИНН;
    КонецПроцедуры
    честно я не люблю книги, я html и css без книг понял, php по книгам изучал в итоге толку не очень много
    ksru
    28 – 24.11.16 – 19:02
    еще такой вопрос ни кто не знает как склеить два числа, не сложить нужно склеить ИНН и КПП
    Lexey_
    29 – 24.11.16 – 19:06
    (28) “” + инн + кпп
    youalex
    30 – 24.11.16 – 19:07
    (28) а ИНН, КПП – это точно числа?
    Рекламное место пустует
    azernot
    31 – 24.11.16 – 19:10
    (28) ИННКППСтрокой = “”+ИНН+”/”+КПП
    ksru
    32 – 24.11.16 – 19:10
    (30) в моем случае да
    ksru
    33 – 24.11.16 – 19:14
    (31) (29) спасибо всем очень помогли
    IlyaSR
    34 – 25.11.16 – 09:21
    (27) ты не книги не любишь, а ты не любишь перерабатывать материал, любишь чтобы за тебя его переработали и подали на блюдце… как ты можешь увлечься этой работой, если даже в теории не представляешь, что и как работает…естественный отбор не оставит тебе шансов без книг )))

  2. Toredo Ответить


    Главная

    В тренде


    Рекомендованные

    Подписки

    Моя библиотека
    Все избранное


    Избранные новости
    История просмотров
    Загрузки

    Новости
    Журнал
    ИТ-новости

    Запрос экспертам
    Топ-100
    Исследования
    О новостях

    Каталог
    Управление
    Учет и отчетность
    Разработка
    Администрирование
    Методология
    Технологии
    Сообщество
    О каталоге

    Маркетплейс ПО
    Конфигурации
    Разработки для 1С
    Другое ПО (не 1С)
    Переносы данных 1C
    Маркировка 488-ФЗ
    Меркурий
    54-ФЗ
    ЕГАИС
    О маркетплейсе

    Проекты
    1С лицензииcashback 15%
    Проектное внедрение
    Сопровождение 1С
    Аренда специалистов
    Тендеры
    Лицензии КОРП
    Специальное предложение
    О направлении

    Cервисы
    Сервисы
    О сервисах

    Курсы
    Курсы
    Видео
    Вебинары
    О курсах

    Мероприятия
    Новости
    Мероприятия
    Новое
    Доклады Infostart Event
    Infostart Awards
    О мероприятиях

    Вакансии
    Вакансии
    Специалисты
    О вакансиях

    Форум
    Популярные
    Новые
    Обновленные
    Темы с вознаграждением
    Прямой эфир
    О форуме

    Поддержка

    Тарифы

    О компании

  3. korpi4 Ответить


    Главная

    В тренде


    Рекомендованные

    Подписки

    Моя библиотека
    Все избранное


    Избранные новости
    История просмотров
    Загрузки

    Новости
    Журнал
    ИТ-новости

    Запрос экспертам
    Топ-100
    Исследования
    О новостях

    Каталог
    Управление
    Учет и отчетность
    Разработка
    Администрирование
    Методология
    Технологии
    Сообщество
    О каталоге

    Маркетплейс ПО
    Конфигурации
    Разработки для 1С
    Другое ПО (не 1С)
    Переносы данных 1C
    Маркировка 488-ФЗ
    Меркурий
    54-ФЗ
    ЕГАИС
    О маркетплейсе

    Проекты
    1С лицензииcashback 15%
    Проектное внедрение
    Сопровождение 1С
    Аренда специалистов
    Тендеры
    Лицензии КОРП
    Специальное предложение
    О направлении

    Cервисы
    Сервисы
    О сервисах

    Курсы
    Курсы
    Видео
    Вебинары
    О курсах

    Мероприятия
    Новости
    Мероприятия
    Новое
    Доклады Infostart Event
    Infostart Awards
    О мероприятиях

    Вакансии
    Вакансии
    Специалисты
    О вакансиях

    Форум
    Популярные
    Новые
    Обновленные
    Темы с вознаграждением
    Прямой эфир
    О форуме

    Поддержка

    Тарифы

    О компании

  4. W4TeR174 Ответить


    Главная

    В тренде


    Рекомендованные

    Подписки

    Моя библиотека
    Все избранное


    Избранные новости
    История просмотров
    Загрузки

    Новости
    Журнал
    ИТ-новости

    Запрос экспертам
    Топ-100
    Исследования
    О новостях

    Каталог
    Управление
    Учет и отчетность
    Разработка
    Администрирование
    Методология
    Технологии
    Сообщество
    О каталоге

    Маркетплейс ПО
    Конфигурации
    Разработки для 1С
    Другое ПО (не 1С)
    Переносы данных 1C
    Маркировка 488-ФЗ
    Меркурий
    54-ФЗ
    ЕГАИС
    О маркетплейсе

    Проекты
    1С лицензииcashback 15%
    Проектное внедрение
    Сопровождение 1С
    Аренда специалистов
    Тендеры
    Лицензии КОРП
    Специальное предложение
    О направлении

    Cервисы
    Сервисы
    О сервисах

    Курсы
    Курсы
    Видео
    Вебинары
    О курсах

    Мероприятия
    Новости
    Мероприятия
    Новое
    Доклады Infostart Event
    Infostart Awards
    О мероприятиях

    Вакансии
    Вакансии
    Специалисты
    О вакансиях

    Форум
    Популярные
    Новые
    Обновленные
    Темы с вознаграждением
    Прямой эфир
    О форуме

    Поддержка

    Тарифы

    О компании

  5. Taske.TT Ответить


    Главная

    В тренде


    Рекомендованные

    Подписки

    Моя библиотека
    Все избранное


    Избранные новости
    История просмотров
    Загрузки

    Новости
    Журнал
    ИТ-новости

    Запрос экспертам
    Топ-100
    Исследования
    О новостях

    Каталог
    Управление
    Учет и отчетность
    Разработка
    Администрирование
    Методология
    Технологии
    Сообщество
    О каталоге

    Маркетплейс ПО
    Конфигурации
    Разработки для 1С
    Другое ПО (не 1С)
    Переносы данных 1C
    Маркировка 488-ФЗ
    Меркурий
    54-ФЗ
    ЕГАИС
    О маркетплейсе

    Проекты
    1С лицензииcashback 15%
    Проектное внедрение
    Сопровождение 1С
    Аренда специалистов
    Тендеры
    Лицензии КОРП
    Специальное предложение
    О направлении

    Cервисы
    Сервисы
    О сервисах

    Курсы
    Курсы
    Видео
    Вебинары
    О курсах

    Мероприятия
    Новости
    Мероприятия
    Новое
    Доклады Infostart Event
    Infostart Awards
    О мероприятиях

    Вакансии
    Вакансии
    Специалисты
    О вакансиях

    Форум
    Популярные
    Новые
    Обновленные
    Темы с вознаграждением
    Прямой эфир
    О форуме

    Поддержка

    Тарифы

    О компании

  6. polikarp762 Ответить


    Главная

    В тренде


    Рекомендованные

    Подписки

    Моя библиотека
    Все избранное


    Избранные новости
    История просмотров
    Загрузки

    Новости
    Журнал
    ИТ-новости

    Запрос экспертам
    Топ-100
    Исследования
    О новостях

    Каталог
    Управление
    Учет и отчетность
    Разработка
    Администрирование
    Методология
    Технологии
    Сообщество
    О каталоге

    Маркетплейс ПО
    Конфигурации
    Разработки для 1С
    Другое ПО (не 1С)
    Переносы данных 1C
    Маркировка 488-ФЗ
    Меркурий
    54-ФЗ
    ЕГАИС
    О маркетплейсе

    Проекты
    1С лицензииcashback 15%
    Проектное внедрение
    Сопровождение 1С
    Аренда специалистов
    Тендеры
    Лицензии КОРП
    Специальное предложение
    О направлении

    Cервисы
    Сервисы
    О сервисах

    Курсы
    Курсы
    Видео
    Вебинары
    О курсах

    Мероприятия
    Новости
    Мероприятия
    Новое
    Доклады Infostart Event
    Infostart Awards
    О мероприятиях

    Вакансии
    Вакансии
    Специалисты
    О вакансиях

    Форум
    Популярные
    Новые
    Обновленные
    Темы с вознаграждением
    Прямой эфир
    О форуме

    Поддержка

    Тарифы

    О компании

  7. xpeHovich.ru Ответить

    Как создать элемент (группу) справочника?
    Как найти элемент справочника?
    Как удалить элемент справочника?
    Как перебрать элементы справочника?
    Как выбрать все элементы из определенной группы?
    Как перебрать элементы подчиненного справочника с помощью запроса?
    Как перебрать элементы подчиненного справочника с помощью выборки справочника?
    Как открыть форму списка (элемента) справочника?
    Как добавить запись в табличную часть элемента справочника?
    Как удалить строки из табличной части справочника?
    Как перебрать строки табличной части справочника?
    Как создать элемент в нужной группе?
    Как узнать, есть ли у текущего элемента подчиненные?
    Как узнать количество подчиненных элементов у выбранного элемента справочника?
    Как узнать количество подчиненных элементов у выбранного элемента справочника, если количество подчиненных справочников больше чем один?
    Как получить всех родителей выбранного элемента справочника?
    Как получить запросом “полный” код элементов справочника, если тип кода – Строка?
    Как получить все элементы справочника, содержащие в наименовании определенную подстроку, со всей иерархией, в которую они входят?
    Как найти все элементы справочника, в которых не заполнен строковый реквизит?
    Как перенести все элементы справочника “Контрагенты” из одной группы в другую?
    Как организовать программный выбор элемента справочника?
    Как сохранить фотографию сотрудника в справочнике “Сотрудники”?
    Как узнать, что справочник новый (УФ)?

    Как создать элемент (группу) справочника?

    НовыйЭлемент = Справочники.ДокументыУдостоверяющиеЛичность.СоздатьЭлемент();
    НовыйЭлемент.Наименование = “военный билет”;
    // Установить другие реквизиты.
    ….
    НовыйЭлемент.Записать();
    НовыйЭлемент = Справочники.Банки.СоздатьЭлемент();
    // Получить ссылку на группу, в которой будет находиться новый элемент.
    Родитель = Справочники.Банки.НайтиПоКоду(“000000001”);
    НовыйЭлемент.Наименование = “АКБ”;
    НовыйЭлемент.Код = “000000011”;
    НовыйЭлемент.Родитель = Родитель;
    // Установить другие реквизиты.
    ….
    НовыйЭлемент.Записать();
    НоваяГруппа = Справочники.Номенклатура.СоздатьГруппу();
    // Получить ссылку на группу, в которой должна находиться создаваемая группа.
    Родитель = Справочники.Номенклатура.НайтиПоНаименованию(“Обувь”, Истина);
    НоваяГруппа.Наименование = “Модельная обувь”;
    НоваяГруппа.Родитель = Родитель;
    // Установить другие реквизиты.
    ….
    НоваяГруппа.Записать();
    // Создать новый элемент в корне справочника.
    НовыйЭлемент = Справочники.Подразделения.СоздатьЭлемент();
    НовыйЭлемент.Наименование = “IT отдел”;
    НовыйЭлемент.Записать();
    // Получить ссылку на родителя добавляемых элементов.
    Родитель = НовыйЭлемент.Ссылка;
    // Создать дочерний элемент.
    НовыйЭлемент = Справочники.Подразделения.СоздатьЭлемент();
    НовыйЭлемент.Наименование = “Группа разработки”;
    НовыйЭлемент.Родитель = Родитель;
    НовыйЭлемент.Записать();

    Как найти элемент справочника?

    // Найдем по коду
    РезультатПоиска = Справочники.Номенклатура.НайтиПоКоду(“00030”);
    Если РезультатПоиска.Пустая() Тогда
    // Выполнить действия, предусмотренные в случае, когда элемент не найден.
    КонецЕсли;
    // Найдем по наименованию
    РезультатПоиска = Справочники.Номенклатура.НайтиПоНаименованию(“Кроссовки”);
    // Найдем по реквизиту
    РезультатПоиска = Справочники.Номенклатура.НайтиПоРеквизиту(“Артикул”, “К-120002”);

    Как удалить элемент справочника?

    // Найти ссылки на удаляемый элемент.
    МассивСсылок = Новый Массив;
    МассивСсылок.Добавить(СсылкаНаУдаляемыйЭлемент);
    НайденныеСсылки = НайтиПоСсылкам(МассивСсылок);
    Если НайденныеСсылки.Количество() > 0 Тогда
    Сообщить(“Нельзя удалять элемент, на него имеются ссылки”);
    Иначе
    УдаляемыйЭлемент = СсылкаНаУдаляемыйЭлемент.ПолучитьОбъект();
    УдаляемыйЭлемент.Удалить();
    КонецЕсли;
    УдаляемыйЭлемент.УстановитьПометкуУдаления(Истина);

    Как перебрать элементы справочника?

    Выборка = Справочники.Номенклатура.ВыбратьИерархически();
    Пока Выборка.Следующий() Цикл
    Наименование = Выборка.Наименование;
    // Обращение к другим данным справочника.
    КонецЦикла;
    Запрос = Новый Запрос(”
    |ВЫБРАТЬ
    | Ссылка,
    | Наименование
    |ИЗ
    | Справочник.Номенклатура
    |АВТОУПОРЯДОЧИВАНИЕ”);
    Результат = Запрос.Выполнить().Выбрать();
    Пока Результат.Следующий() Цикл
    Наименование = Результат.Наименование;
    КонецЦикла;

    Как выбрать все элементы из определенной группы?

    Выборка = Справочники.Номенклатура.Выбрать(ПолеВводаРодитель);
    Пока Выборка.Следующий() Цикл
    Наименование = Выборка.Наименование;
    КонецЦикла;
    Запрос = Новый Запрос(”
    |ВЫБРАТЬ
    | Ссылка,
    | Наименование
    |ИЗ
    | Справочник.Номенклатура
    |ГДЕ
    | Родитель = &Родитель
    |АВТОУПОРЯДОЧИВАНИЕ”);
    Запрос.УстановитьПараметр(“Родитель”, ПолеВводаРодитель);
    Результат = Запрос.Выполнить().Выбрать();
    Пока Результат.Следующий() Цикл
    Наименование = Результат.Наименование;
    КонецЦикла;
    Выборка=Справочники.Номенклатура.ВыбратьИерархически(ПолеВводаРодитель);
    Пока Выборка.Следующий() Цикл
    Наименование = Выборка.Наименование;
    КонецЦикла;
    Запрос = Новый Запрос(”
    |ВЫБРАТЬ
    | Ссылка,
    | Наименование
    |ИЗ
    | Справочник.Номенклатура
    |ГДЕ
    | Родитель В ИЕРАРХИИ(&Родитель)
    |АВТОУПОРЯДОЧИВАНИЕ”);
    Запрос.УстановитьПараметр(“Родитель”, ПолеВводаРодитель);
    Результат = Запрос.Выполнить().Выбрать();
    Пока Результат.Следующий() Цикл
    Наименование = Результат.Наименование;
    КонецЦикла;

    Как перебрать элементы подчиненного справочника с помощью запроса?

    Процедура ПереборПодчиненыхЭлементов(Контрагент)
    Запрос = Новый Запрос;
    Запрос.Текст = “ВЫБРАТЬ
    | КонтактныеЛица.Ссылка
    |ИЗ
    | Справочник.КонтактныеЛица КАК КонтактныеЛица
    |ГДЕ
    | КонтактныеЛица.Владелец = &Владелец”;
    Запрос.УстановитьПараметр(“Владелец”, Контрагент);
    Результат = Запрос.Выполнить();
    Выборка = Результат.Выбрать();
    Пока Выборка.Следующий() Цикл
    ОчереднойПодчиненый = Выборка.Ссылка;
    КонецЦикла;
    КонецПроцедуры

    Как перебрать элементы подчиненного справочника с помощью выборки справочника?

    Процедура ПереборПодчиненыхЭлементов(Контрагент)
    // Получить выборку по указанному контрагенту.
    Выборка = Справочники.КонтактныеЛица.Выбрать( , Контрагент);
    Пока Выборка.Следующий() Цикл
    ОчереднойПодчиненый = Выборка.Ссылка;
    КонецЦикла;
    КонецПроцедуры

    Как открыть форму списка (элемента) справочника?

    Форма = Справочники.Номенклатура.ПолучитьФормуСписка();
    Форма.Открыть();
    Элемент = Справочники.Номенклатура.НайтиПоКоду(“00070”);
    Форма = Элемент.ПолучитьФорму();
    Форма.Открыть();

    Как добавить запись в табличную часть элемента справочника?

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

    Как удалить строки из табличной части справочника?

    ЭлементСправочника = Справочники.Контрагенты.НайтиПоКоду(“Ю0006”);
    ОбъектСправочника = ЭлементСправочника.ПолучитьОбъект();
    ОбъектСправочника.ВидыДеятельности.Очистить();
    ОбъектСправочника.Записать();
    ОбъектСправочника = ВыбранныйЭлемент.ПолучитьОбъект();
    // Создать структуру для отбора удаляемых строк.
    СтруктураОтбора = Новый Структура(“ВидДеятельности”, ВыбранныйВидДеятельности);
    // Получить массив удаляемых строк.
    ПодходящиеСтроки = ОбъектСправочника.ВидыДеятельности.НайтиСтроки(СтруктураОтбора);
    // Удалить строки.
    Для Каждого ОчереднаяСтрока Из ПодходящиеСтроки Цикл
    ОбъектСправочника.ВидыДеятельности.Удалить(ОчереднаяСтрока);
    КонецЦикла;
    ОбъектСправочника.Записать();

    Как перебрать строки табличной части справочника?

    ЭлементСправочника = Справочники.Контрагенты.НайтиПоКоду(“Ю0006”);
    Для Каждого ТекущаяСтрока Из ЭлементСправочника.ВидыДеятельности Цикл
    Сообщить(ТекущаяСтрока.ВидДеятельности);
    КонецЦикла;

    Как создать элемент в нужной группе?

    КодГруппы = “330100”;
    ПоискПоПолномуКоду = Ложь; // значение по умолчанию
    Группа = Справочники.Номенклатура.НайтиПоКоду(КодГруппы, ПоискПоПолномуКоду);
    Если Группа.Пустая() Тогда
    Группа = Справочники.Номенклатура.СоздатьГруппу();
    Группа.Код = КодГруппы;
    Группа.Наименование = “Загруженные”;
    Группа.Записать();
    ИначеЕсли Не Группа.ЭтоГруппа Тогда
    Сообщить(“Найден элемент справочника с указанным кодом!”);
    // Предусмотреть прерывание алгоритма.
    КонецЕсли;
    Спр = Справочники.Номенклатура.СоздатьЭлемент();
    Спр.Наименование = “Программно созданный”;
    // Реквизиты заполняются в соответствии с задачей.
    Спр.Родитель = Группа.Ссылка;
    Спр.Записать();
    Группа = Справочники.Номенклатура.Загруженные;
    КодЭлемента = “330100”;
    ПоискПоПолномуКоду = Ложь; //Значение по умолчанию
    Родитель = Справочники.Номенклатура.НайтиПоКоду(КодЭлемента, ПоискПоПолномуКоду);
    Если Родитель.Пустая() Тогда
    Родитель = Справочники.Номенклатура.СоздатьЭлемент();
    Родитель.Код = КодЭлемента;
    Родитель.Наименование = “Загруженные”;
    Родитель.Записать();
    КонецЕсли;
    Спр = Справочники.Номенклатура.СоздатьЭлемент();
    Спр.Наименование = “Программно созданный”;
    // Реквизиты заполняются в соотвествии с задачей.
    Спр.Родитель = Родитель.Ссылка;
    Спр.Записать();

    Как узнать, есть ли у текущего элемента подчиненные?

    Выборка = Справочники.Номенклатура.Выбрать( , Владелец);
    Если Выборка.Следующий() = Истина Тогда
    // Есть подчиненные элементы.
    КонецЕсли;
    Запрос = Новый Запрос;
    Запрос.Текст = “ВЫБРАТЬ ПЕРВЫЕ 1
    | ЕдиницыИзмерения.Ссылка
    |ИЗ
    | Справочник.ЕдиницыИзмерения КАК ЕдиницыИзмерения
    |ГДЕ
    | ЕдиницыИзмерения.Владелец = &Владелец”;
    Запрос.УстановитьПараметр(“Владелец”, Владелец);
    Если НЕ Запрос.Выполнить().Пустой() Тогда
    // Есть подчиненные элементы!
    КонецЕсли;

    Как узнать количество подчиненных элементов у выбранного элемента справочника?

    Выборка = Справочники.ЕдиницыИзмерения.Выбрать( , Владелец);
    КоличествоЭлементов = 0;
    Пока Выборка.Следующий() Цикл
    КоличествоЭлементов = КоличествоЭлементов + 1;
    КонецЦикла;
    Запрос = Новый Запрос;
    Запрос.Текст = “ВЫБРАТЬ
    | КОЛИЧЕСТВО(*) КАК КоличествоЗаписей
    |ИЗ
    | Справочник.ЕдиницыИзмерения КАК ЕдиницыИзмерения
    |ГДЕ
    | ЕдиницыИзмерения.Владелец = &Владелец”;
    Запрос.УстановитьПараметр(“Владелец”, Владелец);
    Выборка = Запрос.Выполнить().Выбрать();
    Если Выборка.Следующий() Тогда
    КоличествоЗаписей = Выборка.КоличествоЗаписей;
    КонецЕсли;

    Как узнать количество подчиненных элементов у выбранного элемента справочника, если количество подчиненных справочников больше чем один?

    ВЫБРАТЬ
    СУММА(КоличествоПодчиненных) КАК КоличествоПодчиненныхЭлементов
    ИЗ
    (ВЫБРАТЬ
    КОЛИЧЕСТВО(*) КАК КоличествоПодчиненных
    ИЗ
    Справочник.ЕдиницыИзмерения КАК ЕдиницыИзмерения
    ГДЕ ЕдиницыИзмерения.Владелец = &Владелец
    ОБЪЕДИНИТЬ ВСЕ
    ВЫБРАТЬ
    КОЛИЧЕСТВО(*)
    ИЗ
    Справочник.СерииНоменклатуры КАК СерииНоменклатуры
    ГДЕ СерииНоменклатуры.Владелец = &Владелец ) КАК ВложенныйЗапрос

    Как получить всех родителей выбранного элемента справочника?

    МассивРодителей = Новый Массив;
    Родитель = СсылкаНаЭлемент.Родитель;
    Пока Не Родитель.Пустая() Цикл
    МассивРодителей.Добавить(Родитель);
    Родитель = Родитель.Родитель;
    КонецЦикла;
    Для Каждого ТекущийРодитель Из МассивРодителей Цикл
    // Работа с текущим родителем.
    КонецЦикла;
    //———————————————————————————–
    ТекущийЭлементНоменклатуры = ЭлементНоменклатура;
    Запрос = Новый Запрос(“ВЫБРАТЬ
    | Номенклатура.Родитель,
    | Номенклатура.Родитель.Родитель,
    | Номенклатура.Родитель.Родитель.Родитель,
    | Номенклатура.Родитель.Родитель.Родитель.Родитель,
    | Номенклатура.Родитель.Родитель.Родитель.Родитель.Родитель
    |ИЗ
    | Справочник.Номенклатура КАК Номенклатура
    |ГДЕ
    | Номенклатура.Ссылка = &ТекущийЭлементНоменклатуры”;
    Пока Истина Цикл
    Запрос.УстановитьПараметр(“ТекущийЭлементНоменклатуры”, ТекущийЭлементНоменклатуры);
    Результат = Запрос.Выполнить();
    Если Результат.Пустой() Тогда
    Прервать;
    КонецЕсли;
    Выборка = Результат.Выбрать();
    Выборка.Следующий();
    Для НомерКолонки = 0 По Результат.Колонки.Количество() – 1 Цикл
    ТекущийЭлементНоменклатуры = Выборка[НомерКолонки];
    Если ТекущийЭлементНоменклатуры = Справочники.Номенклатура.ПустаяСсылка() Тогда
    Прервать;
    Иначе
    Сообщить(ТекущийЭлементНоменклатуры);
    КонецЕсли;
    КонецЦикла;
    Если ТекущийЭлементНоменклатуры = Справочники.Номенклатура.ПустаяСсылка() Тогда
    Прервать;
    КонецЕсли;
    КонецЦикла;ВЫБРАТЬ
    Номенклатура.Ссылка КАК Ссылка
    ИЗ
    Справочник.Номенклатура КАК Номенклатура
    ГДЕ
    Номенклатура.Ссылка = &Ссылка
    ИТОГИ ПО
    Ссылка ТОЛЬКО ИЕРАРХИЯ

    Как получить запросом “полный” код элементов справочника, если тип кода – Строка?

    ВЫБРАТЬ
    Контрагенты.Ссылка,
    ВЫБОР
    КОГДА (Контрагенты.Родитель.Код ЕСТЬ NULL ) ТОГДА Контрагенты.Код
    КОГДА (Контрагенты.Родитель.Родитель.Код ЕСТЬ NULL ) ТОГДА
    Контрагенты.Родитель.Код + “/” + Контрагенты.Код
    ИНАЧЕ Контрагенты.Родитель.Родитель.Код + “/” + Контрагенты.Родитель.Код + “/” + Контрагенты.Код
    КОНЕЦ КАК ПолныйКод
    ИЗ
    Справочник.Контрагенты КАК Контрагенты

    Как получить все элементы справочника, содержащие в наименовании определенную подстроку, со всей иерархией, в которую они входят?

    Запрос = Новый Запрос(“ВЫБРАТЬ
    | Контрагенты.Ссылка КАК Ссылка
    |ИЗ
    | Справочник.Контрагенты КАК Контрагенты
    |ГДЕ
    | (Контрагенты.Наименование ПОДОБНО &ЧастьНаименования) И (НЕ Контрагенты.ЭтоГруппа)
    |ИТОГИ ПО
    | Ссылка ТОЛЬКО ИЕРАРХИЯ”);
    Запрос.УстановитьПараметр(“ЧастьНаименования”, “%” + ПолеВводаПодстрока + “%”);

    Как найти все элементы справочника, в которых не заполнен строковый реквизит?

    ВЫБРАТЬ
    ФизическиеЛица.Ссылка
    ИЗ
    Справочник.ФизическиеЛица КАК ФизическиеЛица
    ГДЕ
    (ФизическиеЛица.ИНН = “”)
    ВЫБРАТЬ
    ФизическиеЛица.Ссылка
    ИЗ
    Справочник.ФизическиеЛица КАК ФизическиеЛица
    ГДЕ
    (ФизическиеЛица.СтраховойНомерПФР = “”) ИЛИ (ФизическиеЛица.СтраховойНомерПФР = ” – -“)

    Как перенести все элементы справочника “Контрагенты” из одной группы в другую?

    Запрос = Новый Запрос;
    Запрос.Текст = “ВЫБРАТЬ
    | Контрагенты.Ссылка
    |ИЗ
    | Справочник.Контрагенты КАК Контрагенты
    |ГДЕ
    | Контрагенты.Родитель = &СтарыйРодитель”;
    Запрос.УстановитьПараметр(“СтарыйРодитель”, СтарыйРодитель);
    Результат = Запрос.Выполнить();
    Выборка = Результат.Выбрать();
    Пока Выборка.Следующий() Цикл
    Контрагент = Выборка.Ссылка.ПолучитьОбъект();
    Контрагент.Родитель = НовыйРодитель;
    Контрагент.Записать();
    КонецЦикла;

    Как организовать программный выбор элемента справочника?

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

    Как сохранить фотографию сотрудника в справочнике “Сотрудники”?

    Процедура ЗагрузитьФотографию(Элемент)
    Режим = РежимДиалогаВыбораФайла.Открытие;
    ДиалогОткрытияФайла = Новый ДиалогВыбораФайла(Режим);
    ДиалогОткрытияФайла.ПолноеИмяФайла = “”;
    Фильтр = “Текст (*,*)|*.*”;
    ДиалогОткрытияФайла.Фильтр = Фильтр;
    ДиалогОткрытияФайла.МножественныйВыбор = Ложь;
    ДиалогОткрытияФайла.Заголовок = “Выберите картинку”;
    Если ДиалогОткрытияФайла.Выбрать() Тогда
    ВыбраннаяКартинка = Новый Картинка(ДиалогОткрытияФайла.ПолноеИмяФайла);
    ЭлементХранилища = Новый ХранилищеЗначения(ВыбраннаяКартинка);
    Фотография = ЭлементХранилища;
    КонецЕсли;
    КонецПроцедуры
    ВыбФайл = Новый ДвоичныеДанные(ДиалогОткрытияФайла.ПолноеИмяФайла);
    элХранилища = Новый ХранилищеЗначения(ВыбФайл);
    Фотография = элХранилища;

    Как узнать, что справочник новый (УФ)?

    ФлНовый = Параметры.Ключ.Пустая();

  8. eviltzu Ответить

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    Запрос.Текст=”ВЫБРАТЬ
    | СУММА(ОтработаноЧасовОбороты.КоличествоЧасовРасход) КАК ФактСотрудников,
    | ЭтапыДоговоров.НомерЭтапа КАК НомерЭтапа,
    | Договоры.Наименование КАК НаименованиеДоговора,
    | ЭтапыДоговоров.Трудозатраты КАК План,
    | ФактГИПРПО.ФактРуководителя,
    | ФактГИПРПО.ФактРуководителя + ОтработаноЧасовОбороты.КоличествоЧасовРасход КАК Факт
    |ИЗ
    | РегистрНакопления.ОтработаноЧасов.Обороты(&НачалоПериода, &КонецПериода, День, ) КАК ОтработаноЧасовОбороты
    | ЛЕВОЕ СОЕДИНЕНИЕ Справочник.Объекты КАК Объекты
    | ЛЕВОЕ СОЕДИНЕНИЕ Справочник.ЭтапыДоговоров КАК ЭтапыДоговоров
    | ЛЕВОЕ СОЕДИНЕНИЕ (ВЫБРАТЬ
    | ЭтапыДоговоров.Ссылка КАК НомерЭтапа,
    | СУММА(ВЫБОР
    | КОГДА ОтработаноГИПРПООбороты.ВремяНаОбъектРасход ЕСТЬ NULL
    | ТОГДА 0
    | ИНАЧЕ ОтработаноГИПРПООбороты.ВремяНаОбъектРасход
    | КОНЕЦ) КАК ФактРуководителя,
    | ОтработаноГИПРПООбороты.ВремяНаОбъектРасход КАК ФактГИП
    | ИЗ
    | РегистрНакопления.ОтработаноГИПРПО.Обороты(&НачалоПериода, &КонецПериода, День, ) КАК ОтработаноГИПРПООбороты
    | ЛЕВОЕ СОЕДИНЕНИЕ Справочник.Объекты КАК Объекты
    | ЛЕВОЕ СОЕДИНЕНИЕ Справочник.ЭтапыДоговоров КАК ЭтапыДоговоров
    | ЛЕВОЕ СОЕДИНЕНИЕ Справочник.Договоры КАК Договоры
    | ПО ЭтапыДоговоров.Договор = Договоры.Ссылка
    | ПО Объекты.ЭтапДоговора = ЭтапыДоговоров.Ссылка
    | ПО ОтработаноГИПРПООбороты.ШифрОбъекта = Объекты.Ссылка
    | ГДЕ
    | ЭтапыДоговоров.Исполнитель = &Исполнитель
    |
    | СГРУППИРОВАТЬ ПО
    | ЭтапыДоговоров.Ссылка,
    | ОтработаноГИПРПООбороты.ВремяНаОбъектРасход) КАК ФактГИПРПО
    | ПО (ФактГИПРПО.НомерЭтапа = ЭтапыДоговоров.Ссылка)
    | ЛЕВОЕ СОЕДИНЕНИЕ Справочник.Договоры КАК Договоры
    | ПО ЭтапыДоговоров.Договор = Договоры.Ссылка
    | ПО Объекты.ЭтапДоговора = ЭтапыДоговоров.Ссылка
    | ПО ОтработаноЧасовОбороты.Объект = Объекты.Ссылка
    |ГДЕ
    | ЭтапыДоговоров.Исполнитель = &Исполнитель
    |
    |СГРУППИРОВАТЬ ПО
    | ЭтапыДоговоров.НомерЭтапа,
    | Договоры.Наименование,
    | ЭтапыДоговоров.Трудозатраты,
    | ФактГИПРПО.ФактРуководителя,
    | ФактГИПРПО.ФактРуководителя + ОтработаноЧасовОбороты.КоличествоЧасовРасход”;

  9. jomadmann Ответить

    Иерархия в 1С 8.3 бывает двух типов — «групп и элементов» и «элементов«. Отличается тем, что в первом случае родителем (папкой) может быть только папка (группа), а во втором случае родителем может быть и элемент.
    «Размещать группы сверху» — флаг отвечает за отображение групп в форме списка.
    Также в настройках можно ограничить количество групп иерархии справочника соответствующей настройкой.

    Вкладка «Владельцы»


    Справочник может быть подчинен другому справочнику. С точки зрения конфигурирования 1С 8.3 это значит, что у подчиненного элемента становится обязательным реквизит «Владелец». Пример такой связи справочников в типовых конфигурациях «Номенклатура — Единицы Измерения», «Контрагенты-Договоры Контрагентов».
    Владельцем справочника могут также быть следующие объекты метаданных: планы обмена, планы видов характеристик, планы счетов, планы видов расчета.

    Вкладка «Данные»


    Получите 267 видеоуроков по 1С бесплатно:
    Бесплатный видео самоучитель по 1С Бухгалтерии 8.3;
    Самоучитель по новой версии 1С ЗУП 3.1;
    Самая важная вкладка с точки зрения программиста. На ней указываются реквизиты справочника.
    У справочника есть набор стандартных реквизитов, которые не редактируются программистом 1С 8.2, список их можно увидеть, нажав кнопку «Стандартные реквизиты»:

    Остановлюсь на каждом подробнее:
    ЭтоГруппа — реквизит  с типом булево, показывающий, группа это или элемент. Доступен только в иерархическом справочнике. Обратите внимание, значение этого реквизита невозможно изменить в режиме 1С: Предприятие.
    Код — реквизит, тип число или строка (как правило строка). Номер, присваиваемый системой автоматически. Как правило, рассчитывается как (предыдущий код + 1). Рекомендую использовать именно строковый тип, потому как сортировка числовых значений происходит не так, как нужно. Можно использовать как представление справочника в списке и в полях ввода. Как правило, используется для поиска элемента при вводе по строке. Если Вам нужно убрать поле Код, укажите в длине строки ноль.
    Наименование — реквизит, обязательный к заполнению, строкового типа. Максимальная длина строки — 150 символов. Можно использовать как представление справочника в списке и в полях ввода. Как правило, используется для поиска элемента при вводе по строке. Если Вам нужно убрать поле Наименование, укажите в длине строки ноль.
    Родитель — реквизит, имеющий тип СправочникСсылка.. Доступен только в иерархическом справочнике. Указывает на вышестоящего родителя в иерархии. Если Элемент или Группа находятся в корне справочника, указывается значение Справочник..ПустаяСсылка.
    Владелец — ссылка на элемент-владелец текущего элемента (группы) справочника. Доступен только в подчиненном справочнике 1С.
    ПометкаУдаления — реквизит с типом булево. Отвечает за отображение «пометки удаления» в системе. Помеченный на удаление элемент считается непригодным к использованию, однако на нём могут оставаться старые движения в документах.
    Ссылка — поле строкового типа. В этом реквизите хранится уникальный идентификатор объекта — GUID.  То, что в системе мы видим в визуальном отображении под название «ссылка», — это всего лишь представление объекта. Невозможно изменить.
    Предопределенный — тип булево, отображает, является ли элемент предопределенным, об этом позже. Невозможно изменить.
    На вкладке «Данные» так же указывается представление справочника в системе, до версии 8.2.16 представление могло быть лишь Кодом или Наименованием. В свежих версиях платформы (начиная с  8.3) представление можно описать самостоятельно в модуле менеджера с помощью обработчика «ОбработкаПолученияПредставления».

    Вкладка «Нумерация»


    Здесь указываются настройки справочника по части нумерации. Рекомендуется использовать именно автонумерацию. Контроль уникальности — флаг, который помогает, если нужно, сделать код уникальным. Если с установленным флагом Вы попытаетесь записать элемент справочника с неуникальным кодом, в 1С Вы получите сообщение «Код справочника стал неуникальным».
    Серия кодов — определяет, как нумеровать справочник, можно ввести нумерацию справочника в разрезе владельца. Например, у контрагента «Рога и копыта» будет иметься своя нумерация договоров — «1, 2, 3»  и тд.

    Вкладка «Формы»


    Тут описываются формы для справочника. Если конфигурация запускается как в обычном, так и управляемом режиме, тогда вкладок с формами по умолчанию будет две: «основные» и «дополнительные» — для обычного и управляемого приложения разные.
    На этой странице есть немаловажное свойство справочника — «Ввод по строке«. Это очень удобная функция 1С 8, позволяющая при заполнении данных в поле ввода не заходить в справочник, а набрать его наименование, код или т.п. и выбрать из выпадающего списка нужный элемент. Выглядит это так:

    Вкладка «Прочее»


    На вкладке можно получить быстрый доступ к основным модулям справочника — модулю объекта и модулю менеджера.
    На странице можно также определить список предопределенных элементов справочника. Это элементы, которые невозможно удалить в режиме Предприятия. К предопределенным элементам можно обратиться в конфигураторе напрямую, по имени, например: Справочники.Номенклатура.Услуга.
    На этой вкладке также определяется режим блокировки — автоматический или управляемый. Использование полнотекстового поиска, а также справочная информация о справочнике, доступная в режиме 1С: Предприятия.
    Читайте также и другие статьи по конфигурированию 1С.
    Минивидео, как работать со справочниками:
    К сожалению, мы физически не можем проконсультировать бесплатно всех желающих, но наша команда будет рада оказать услуги по внедрению и обслуживанию 1С. Более подробно о наших услугах можно узнать на странице Услуги 1С или просто позвоните по телефону +7 (499) 350 29 00. Мы работаем в Москве и области.

  10. VideoAnswer Ответить

Добавить комментарий для waprock Отменить ответ

Ваш e-mail не будет опубликован. Обязательные поля помечены *