Как получить в структуру многомерные данные? Как собрать информацию по установленным в форме журнала отборам?
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 |
СтруктураОтборов = Новый Структура; СтруктураПараметровОтбора = Новый Структура; Для Каждого ЭлементОтбора из ЖурналДокументовСписок.Отбор Цикл Если ЭлементОтбора.Использование Тогда СтруктураПараметровОтбора.Очистить(); СтруктураПараметровОтбора.Вставить("Имя", ЭлементОтбора.Имя); СтруктураПараметровОтбора.Вставить("ВидСравнения", ЭлементОтбора.ВидСравнения); СтруктураПараметровОтбора.Вставить("Значение", ЭлементОтбора.Значение); СтруктураПараметровОтбора.Вставить("ЗначениеПо", ЭлементОтбора.ЗначениеПо); СтруктураПараметровОтбора.Вставить("ЗначениеС", ЭлементОтбора.ЗначениеС); СтруктураПараметровОтбора.Вставить("Представление", ЭлементОтбора.Представление); СтруктураПараметровОтбора.Вставить("ПутьКДанным", ЭлементОтбора.ПутьКДанным); СтруктураПараметровОтбора.Вставить("ТипЗначения", ЭлементОтбора.ТипЗначения); СтруктураОтборов.Вставить(ЭлементОтбора.Имя, СтруктураПараметровОтбора); КонецЕсли; КонецЦикла; |
Как определить, есть ли в структуре элемент с ключом «Контрагент», и если есть, но содержит пустое значение справочника или Неопределено — удалить этот элемент?
1 2 3 4 5 6 7 8 9 |
Если Структура.Свойство("Контрагент", ЗначениеЭлемента) Тогда Если ЗначениеЭлемента = Неопределено ИЛИ ЗначениеЭлемента.Пустая() Тогда Структура.Удалить("Контрагент"); КонецЕсли; КонецЕсли; Структура.Контрагент Структура["Контрагент"] |
Как из табличной части «Товары» документа получить все строки, где значение реквизита «Цена» равно нулю, а значение реквизита «СтавкаНДС» равно значению «НДС18» перечисления «СтавкиНДС»?
1 2 |
СтруктураДляПоиска = Новый Структура("Цена, СтавкаНДС", 0, Перечисления.СтавкиНДС.НДС18); МассивСтрок = Товары.НайтиСтроки(СтруктураДляПоиска); |
Как получить данные о текущей учетной политике бухгалтерского учета организации из периодического регистра сведений на заданную дату?
1 2 3 4 5 6 7 8 9 |
// Подготовить отбор по измерению "Организация". СтруктураОтбора = Новый Структура("Организация", ЮрЛицо); // Получить данные, актуальные на указанную дату. СтруктураДанных = РегистрыСведений.УчетнаяПолитикаБухгалтерскийУчет.ПолучитьПоследнее(ДатаПолучения, СтруктураОтбора); // Прочитать данные из структуры данных. СпособОценкиМпзЮрЛица = СтруктураДанных.СпособОценкиМПЗ; ДиректКостингЮрЛица = СтруктураДанных.ДиректКостинг; |
Как сформировать структуру названий реквизитов табличной части произвольного документа?
1 2 3 4 5 6 7 8 9 10 |
Функция СформироватьСтруктуруТабличнойЧастиДокумента(Документ, ИмяТабличнойЧасти) СтруктураТабличнойЧастиДокумента = Новый Структура; Для Каждого Реквизит из Документ.Метаданные().ТабличныеЧасти[ИмяТабличнойЧасти].Реквизиты Цикл СтруктураТабличнойЧастиДокумента.Вставить(Реквизит.Имя, Реквизит.Имя); КонецЦикла; Возврат СтруктураТабличнойЧастиДокумента; КонецФункции |
Как получить запросом данные табличной части документа, имея структуру названий реквизитов табличной части?
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 |
Функция СформироватьЗапросПоТабличнойЧасти(Документ, ИмяТабличнойЧасти, СтруктураПолей) Экспорт ПоляРеквизитов = ""; Для Каждого Реквизит Из СтруктураПолей Цикл ПоляРеквизитов = ПоляРеквизитов + ", Док." + Реквизит.Значение + ?(ЗначениеНеЗаполнено(Реквизит.Ключ), "", " КАК " + СокрЛП(Реквизит.Ключ)); КонецЦикла; Запрос = Новый Запрос; Запрос.Текст = "ВЫБРАТЬ | Док.НомерСтроки " + ПоляРеквизитов + " |ИЗ | Документ." + Документ.Метаданные().Имя + "." + СокрЛП(ИмяТабличнойЧасти) + " КАК Док |ГДЕ | Док.Ссылка = &ДокументСсылка"; // Установить параметры запроса. Запрос.УстановитьПараметр("ДокументСсылка", Документ.Ссылка); Возврат Запрос.Выполнить(); КонецФункции |