2.2. Структура
Как в структуре установить значение для элемента с определенным ключом
Как сформировать структуру названий реквизитов табличной части произвольного документа
Как создать структуру?
СозданнаяСтруктура = Новый Структура; Оппонент = Новый Структура ("Фамилия, Имя, Отчество, Возраст", "Иванов", "Иван", "Иванович", 7);
Как добавить элементы в структуру?
Оппонент = Новый Структура ("Фамилия, Имя, Отчество, Возраст", "Иванов", "Иван", "Иванович", 7); Оппонент.Вставить("Обращение", "Господин"); Оппонент.Вставить("Возраст", 25);
Как обратиться к элементу структуры?
ТекущийВозраст = Оппонет.Возраст; КлючСтруктуры = "Возраст"; ТекущийВозраст = Оппонет[КлючСтруктуры]; ТекущийВозраст = Неопределено; Оппонет.Свойство("Возраст", ТекущийВозраст); Оппонет.Возраст = 32; Оппонет["Возраст"] = 32; Оппонент.Вставить("Возраст", 32);
Как перебрать элементы структуры?
Для Каждого Элемент из СтруктураПараметров Цикл Сообщить(Элемент.Ключ + ": " + Элемент.Значение); КонецЦикла;
Как удалить элемент структуры?
СтруктураПараметров.Удалить("Номенклатура"); СтруктураПараметров.Очистить();
Как в структуре установить значение для элемента с определенным ключом?
Структура = Новый Структура; // Добавить новый элемент. Структура.Вставить("Цвет", WebЦвета.Белый); // Установить значение для элемента с ключом "Цвет". Структура.Вставить("Цвет", WebЦвета.Синий);
Как получить в структуру многомерные данные? Как собрать информацию по установленным в форме журнала отборам?
СтруктураОтборов = Новый Структура; СтруктураПараметровОтбора = Новый Структура; Для Каждого ЭлементОтбора из ЖурналДокументовСписок.Отбор Цикл Если ЭлементОтбора.Использование Тогда СтруктураПараметровОтбора.Очистить(); СтруктураПараметровОтбора.Вставить("Имя", ЭлементОтбора.Имя); СтруктураПараметровОтбора.Вставить("ВидСравнения", ЭлементОтбора.ВидСравнения); СтруктураПараметровОтбора.Вставить("Значение", ЭлементОтбора.Значение); СтруктураПараметровОтбора.Вставить("ЗначениеПо", ЭлементОтбора.ЗначениеПо); СтруктураПараметровОтбора.Вставить("ЗначениеС", ЭлементОтбора.ЗначениеС); СтруктураПараметровОтбора.Вставить("Представление", ЭлементОтбора.Представление); СтруктураПараметровОтбора.Вставить("ПутьКДанным", ЭлементОтбора.ПутьКДанным); СтруктураПараметровОтбора.Вставить("ТипЗначения", ЭлементОтбора.ТипЗначения); СтруктураОтборов.Вставить(ЭлементОтбора.Имя, СтруктураПараметровОтбора); КонецЕсли; КонецЦикла;
Как определить, есть ли в структуре элемент с ключом "Контрагент", и если есть, но содержит пустое значение справочника или Неопределено - удалить этот элемент?
Если Структура.Свойство("Контрагент", ЗначениеЭлемента) Тогда Если ЗначениеЭлемента = Неопределено ИЛИ ЗначениеЭлемента.Пустая() Тогда Структура.Удалить("Контрагент"); КонецЕсли; КонецЕсли; Структура.Контрагент Структура["Контрагент"]
Как из табличной части "Товары" документа получить все строки, где значение реквизита "Цена" равно нулю, а значение реквизита "СтавкаНДС" равно значению "НДС18" перечисления "СтавкиНДС"?
СтруктураДляПоиска = Новый Структура("Цена, СтавкаНДС", 0, Перечисления.СтавкиНДС.НДС18); МассивСтрок = Товары.НайтиСтроки(СтруктураДляПоиска);
Как получить данные о текущей учетной политике бухгалтерского учета организации из периодического регистра сведений на заданную дату?
// Подготовить отбор по измерению "Организация". СтруктураОтбора = Новый Структура("Организация", ЮрЛицо); // Получить данные, актуальные на указанную дату. СтруктураДанных = РегистрыСведений.УчетнаяПолитикаБухгалтерскийУчет.ПолучитьПоследнее(ДатаПолучения, СтруктураОтбора); // Прочитать данные из структуры данных. СпособОценкиМпзЮрЛица = СтруктураДанных.СпособОценкиМПЗ; ДиректКостингЮрЛица = СтруктураДанных.ДиректКостинг;
Как сформировать структуру названий реквизитов табличной части произвольного документа?
Функция СформироватьСтруктуруТабличнойЧастиДокумента(Документ, ИмяТабличнойЧасти) СтруктураТабличнойЧастиДокумента = Новый Структура; Для Каждого Реквизит из Документ.Метаданные().ТабличныеЧасти[ИмяТабличнойЧасти].Реквизиты Цикл СтруктураТабличнойЧастиДокумента.Вставить(Реквизит.Имя, Реквизит.Имя); КонецЦикла; Возврат СтруктураТабличнойЧастиДокумента; КонецФункции
Как получить запросом данные табличной части документа, имея структуру названий реквизитов табличной части?
Функция СформироватьЗапросПоТабличнойЧасти(Документ, ИмяТабличнойЧасти, СтруктураПолей) Экспорт ПоляРеквизитов = ""; Для Каждого Реквизит Из СтруктураПолей Цикл ПоляРеквизитов = ПоляРеквизитов + ", Док." + Реквизит.Значение + ?(ЗначениеНеЗаполнено(Реквизит.Ключ), "", " КАК " + СокрЛП(Реквизит.Ключ)); КонецЦикла; Запрос = Новый Запрос; Запрос.Текст = "ВЫБРАТЬ | Док.НомерСтроки " + ПоляРеквизитов + " |ИЗ | Документ." + Документ.Метаданные().Имя + "." + СокрЛП(ИмяТабличнойЧасти) + " КАК Док |ГДЕ | Док.Ссылка = &ДокументСсылка"; // Установить параметры запроса. Запрос.УстановитьПараметр("ДокументСсылка", Документ.Ссылка); Возврат Запрос.Выполнить(); КонецФункции
Источник: http://programna1c.narod.ru/