Как произвести поиск нескольких строк в "ТаблицаЗначений" по двум и более полям? Для поиска нескольких строк предназначен метод НайтиСтроки.
В платформе он определен таким образом.
Код 1C v 8.х НайтиСтроки( <Параметры_Отбора>)
Где
<Параметры_Отбора> представляют структуру, в которой ключ структуры определяет имя колонки, а значение структуры - искомое значение. Возвращает этот метод массив строк ТаблицыЗначений.
Стоит помнить, что массив содержит не копии строк, а ссылки на строки таблицы источника! Т.е. внеся изменения в строку из массива, вы изменяете строки в таблице.
Добавляя в структуру несколько записей вы, соответственно, устанавливаете отбор по нескольким полям.
Выглядит это примерно вот так:
Код 1C v 8.х ТЗРабочихДнейПоГрафику = Новый ТаблицаЗначений;
ТЗРабочихДнейПоГрафику.Колонки.Добавить("месяцИнтервала");
ТЗРабочихДнейПоГрафику.Колонки.Добавить("График");
ТЗРабочихДнейПоГрафику.Колонки.Добавить("РабочихДней");
...
ОтборПоГрафику = Новый Структура;
ОтборПоГрафику.Вставить("месяцИнтервала", СтрокаПериода.МесяцПериода);
ОтборПоГрафику.Вставить("График", Групп_Задача.График);
НайденныеСтроки = ТЗРабочихДнейПоГрафику.НайтиСтроки(ОтборПоГрафику);
Автор: Андрей Окипний
Категория:
Работа с Таблицей Значений Функция описывает период, определяемый датой и периодичностью Код 1C v 8.х
// Функция описывает период, определяемый датой и периодичностью
Функция ПолучитьПериодСтрокой(ДатаВПериоде, Периодичность) Экспорт
Если Периодичность = "Год" Тогда
ФорматДаты = "ДФ='гггг ""г.""'";
ИначеЕсли Периодичность = "Квартал" Тогда
ФорматДаты = "ДФ='к"" квартал"" гггг ""г.""'";
ИначеЕсли Периодичность = "Месяц" Тогда
ФорматДаты = "ДФ='ММММ гггг ""г.""'";
ИначеЕсли Периодичность = "Неделя" Тогда
ФорматДаты = "ДФ='""Неделя (""дд.ММ.гггг'";
ИначеЕсли Периодичность = "День" Тогда
ФорматДаты = "ДФ='дд.ММ.гггг ""г.""'";
Иначе
ФорматДаты = "";
КонецЕсли;
СтрокаПериод = "" + Формат(ДатаВПериоде, ФорматДаты);
Если Периодичность = "Неделя" И ТипЗнч(ДатаВПериоде) = Тип("Дата") Тогда
СтрокаПериод = "" + НеделяГода(ДатаВПериоде) + "-ая " + СтрокаПериод + Формат(КонецНедели(ДатаВПериоде), "ДФ='"" - ""дд.ММ.гггг)'");
КонецЕсли;
Возврат СтрокаПериод;
КонецФункции
//Обращение и результат
Сообщить(ПолучитьПериодСтрокой(Дата(2009,03,09),"Квартал")); // 1 квартал 2009 г.
Сообщить(ПолучитьПериодСтрокой(Дата(2009,03,09),"День")); // 09.03.2009 г..
Категория:
Работа с Датами (Временем)