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

Запись значения в Реквизит

Автор Malum, 11 сен 2018, 19:27

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

alex0402

Цитата: Malum от 12 сен 2018, 14:00Подскажите пожалуйста, можно ли сделать поиск среди всех справочников?
нет.
Можно
Справочники[Имя].НайтиПоНаименованию(Значение)
или


Для каждого Спр Из Метаданные.Справочники Цикл
    ЗначениеПоиска = Справочники[Спр.Имя].НайтиПоНаименованию(Значение);
    Если Не ЗначениеПоиска.Пустая() Тогда
        Прервать;
    КонецЕсли;
КонецЦикла;


но для данного случая это не правильно.
Спасибо за Сказать спасибо

Malum

Цитата: alex0402 от 12 сен 2018, 14:11
Цитата: Malum от 12 сен 2018, 14:00Подскажите пожалуйста, можно ли сделать поиск среди всех справочников?
нет.
Можно
Справочники[Имя].НайтиПоНаименованию(Значение)
или


Для каждого Спр Из Метаданные.Справочники Цикл
    ЗначениеПоиска = Справочники[Спр.Имя].НайтиПоНаименованию(Значение);
    Если Не ЗначениеПоиска.Пустая() Тогда
        Прервать;
    КонецЕсли;
КонецЦикла;


но для данного случая это не правильно.

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

НовЭлем = Справочники[ТипРек].НайтиПоНаименованию(ЗнчРек);
НовДок[ИмяТаб][Счет][ИмяРек] = НовЭлем;


ИмяТаб - это имя таблицы документа.
Счет - номер строки (по крайней мере должен ей быть)
ИмяРек - Имя реквизита табличной части

Выдает ошибку, "Индекс находится за границами массива". Вероятнее всего ругается на счетчик.

alex0402

Я обычно делаю так:
НоваяСтрка = НовДок[ИмяТаб].Добавить();
НоваяСтрка[ИмяРек] = НовЭлем;


Цитата: Malum от 13 сен 2018, 11:02Выдает ошибку, "Индекс находится за границами массива". Вероятнее всего ругается на счетчик.

Предварительно нужно вызвать:
НовДок[ИмяТаб].Добавить() Счет+1 раз.
Спасибо за Сказать спасибо

Malum

Цитата: alex0402 от 13 сен 2018, 12:50
Я обычно делаю так:
НоваяСтрка = НовДок[ИмяТаб].Добавить();
НоваяСтрка[ИмяРек] = НовЭлем;


Цитата: Malum от 13 сен 2018, 11:02Выдает ошибку, "Индекс находится за границами массива". Вероятнее всего ругается на счетчик.

Предварительно нужно вызвать:
НовДок[ИмяТаб].Добавить() Счет+1 раз.
Обращение к строке я делаю правильное? Я смогу таким образом, после добавления, вписать значения в другие реквизиты?

alex0402

правильно, только строк должно быть как минимум Счет+1 на момент обращения
Спасибо за Сказать спасибо

Malum

Цитата: alex0402 от 13 сен 2018, 15:12
правильно, только строк должно быть как минимум Счет+1 на момент обращения
Привет, еще раз нужна помощь. С тем разобрался, благодаря тебе.
У меня есть текстовый файл, там указано Имя реквизита. Его тип и значение.

ОтражениеВУСН
Перечисление.ОтражениеВУСН
Принимаются

Типа такого. Так вот.. Со справочником я разобрался, а здесь не могу понять, как мне это все объединить и засунуть в реквизит в таблице. Как мне эти строки привести к нужному типу?

alex0402

Цитата: Malum от 14 сен 2018, 15:31ОтражениеВУСН
Перечисление.ОтражениеВУСН
Принимаются

точно так же Перечисления["ОтражениеВУСН"]["Принимаются"]
Спасибо за Сказать спасибо

Malum

Цитата: alex0402 от 14 сен 2018, 15:44
Цитата: Malum от 14 сен 2018, 15:31ОтражениеВУСН
Перечисление.ОтражениеВУСН
Принимаются

точно так же Перечисления["ОтражениеВУСН"]["Принимаются"]

Так, хорошо, а если документ ссылается на другой документ

ДокументПартии
Документ.ПоступлениеТоваровУслуг
Поступление (акт, накладная) КП00-000017 от 03.02.2016 12:50:27

В текстовом файле это выглядит так. Первая строка имя реквизита. Вторая его тип. Третья - значение реквизита.
Должно быть что то типа
Документы[Тип].Найтичтото ?

Теги: помощь 8.3  

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

Рейтинг@Mail.ru

Поиск