1с 8 найти текст в табличном документе
Продолжаем изучать программную работу с таблицей значений в 1С. В прошлых статьях мы научились создавать таблицу значений (как программно, так и на управляемой форме), добавлять колонки и строки таблицы значений. Осталось научиться работать с самой таблицей значений. В первой части мы узнаем, как находить строки по нужному отбору, и научимся копировать таблицу значений с нужным отбором.
Поиск в таблице значений 1С 8.3
Поиск в таблице значений можно осуществить с помощью двух методов: Найти и НайтиСтроки. Метод Найти является функцией, которая вернёт первую строку, где встречается искомое значение. Рекомендуется метод применять для поиска уникальных значений, т.к. при наличии нескольких строк с искомым значением, будет возвращена только одна. Если же нам нужно найти все строки, где встречается искомое значение, то необходимо использовать метод НайтиСтроки, который возвращает массив строк с нужным значением.
Разберем оба этих метода на примере.
Метод Найти таблицы значений 1С 8.3
Этот метод является функцией, которая возвращает строку, если искомое значение найдено, и Неопределено, если нет. При помощи этого метода можно найти любое значение, которое имеется в таблице значений. Причем, не обязательно знать колонку, где это значение может содержаться.
Данная функция имеет следующий синтаксис:
Найти(Значение, Колонки)
Значение – то значение, которое мы ищем в таблице.
Колонки – колонки таблицы значений, по которым осуществляется поиск (необязательный параметр, можно осуществлять поиск по всем колонкам таблицы значений).
Работа этого метода показана на следующем примере:
Если мы посмотрим на значение переменной стрТарасов в отладке, то увидим ссылку на конкретную строку таблицы значений.
Точно такой же результат будет, если мы очистим второй параметр.
Если же мы сделаем поиск по второй колонке, то результат будет Неопределено.
Такой же результат Неопределено будет и при поиске несуществующего значения.
Метод НайтиСтроки таблицы значений 1С 8.3
Если метод Найти возвращает конкретную строку таблицы значений, то метод НайтиСтроки, возвращает массив строк, которые соответствуют нужному условию. Данный метод имеет следующий синтаксис
НайтиСтроки(СтруктураПоиска)
Переделаем предыдущую таблицу значений:
Теперь найдем все строки таблицы значений, где встречается имя Петр
Посмотрим на результат.
Или найдем всех Петров, родившихся 11.06.1987 года.
В этот раз найденных строк будет меньше.
Если же мы зададим имя, которого нет в нашей таблице, то получим пустой массив.
Причем обратите внимание, в массиве содержится ссылка на строку таблицы значений. Это значит, что если Вы измените строку в массиве, то также изменится строка в таблице значений.
Скопировать таблицу значений 1С
В языке разработке 1С можно одну таблицу значений скопировать в другую. Причем можно просто скопировать структуру таблицы значений, т.е. создать точно такую же таблицу значений, с тем же набором колонок, но без строк. Такое копирование осуществляется при помощи метода СкопироватьКолонки. А также скопировать одну таблицу в другую с различными отборами, это можно сделать, используя метод Скопировать. Разберем оба этих метода.
Метод СкопироватьКолонки таблицы значений 1С 8.3
Данный метод является функцией, которая возвращает пустую таблицу значений, с набором колонок, как у изначальной. У этого метода следующий синтаксис:
СкопироватьКолонки(СписокКолонок)
Где, параметр СписокКолонок необязательный параметр, в нем должны быть перечислены имена колонок, которые присутствуют в изначальной таблице, и которые должны быть в новой. Если он не указан, то в новой таблице значений будут такие же колонки, что и в изначальной.
В примере выше, в таблице НовТЗ1 будет тот же набор колонок, что и в таблице ТЗ, а в таблице НовТЗ2 будут только колонки Фамилия и Имя.
Метод Скопировать таблицы значений 1С 8.3
Научимся копировать одну таблицу значений в другую, а в этом нам поможет метод Скопировать. Этот метод является функцией, которая возвращает новую таблицу значений. У него имеется два синтаксиса
Скопировать(Строки,Колонки)
Строки – массив строк таблицы значений, которые должны будут присутствовать в новой таблице. Необязательный параметр, если он пуст, то копируются все строки.
Колонки – строка имен колонок, которые перечислены через запятую. Также необязательный параметр, если он пуст, то в новой таблице будут все колонки.
Второй вариант синтаксиса
ПараметрыОтбора – структура, при помощи которой мы отберем нужные строки в новую таблицу значений. В качестве ключей структуры должны быть перечислены названия колонок, по которым будет вестись отбор, а в качестве значений – те значения, по которым должны отобраться нужные строки.
Рассмотрим примеры с обоими вариантами параметров. Будем использовать ту же таблицу, что и в предыдущих примерах, но отберем только те строки, у которых год рождения 1981.
Посмотрим на результат работы этой функции
Теперь скопируем таблицу значений, так, чтобы в новую таблицу вошли только те строки, где есть имя Петр и дата рождения равна 15.01.1981.
В этот раз будет следующий результат.
Если Вам помог этот урок решить какую-нибудь проблему, понравился или оказался полезен, то Вы можете поддержать мой проект.
Более подробно и основательно работа с таблицей значений в дается в моей книге:
Отличное пособие по разработке в управляемом приложении 1С, как для начинающих разработчиков, так и для опытных программистов.
Всем привет! Мне необходимо в табличном документе в цикле найти все ячейки с определенным текстом. Область = ТабДок.НайтиТекст("Текст") Находится только одна, первая ячейка в табдоке. Для каждого Область Из ТабДок.Области Цикл Область = ТабДок.НайтиТекст("Текст"); Область.Шрифт = . КонецЦикла; Находит тоже только одну ячейку. Как отметить шрифтом все ячейки с нужным текстом?
Синтаксис: НайтиТекст(<Строка>, <Начало>, <Где>, <Искать по строкам>, <Ячейка целиком>, <Искать вперед>, <Игнорировать регистр>) Параметры: <Строка> (обязательный) Тип: Строка. Искомый текст. <Начало> (необязательный) Тип: ОбластьЯчеекТабличногоДокумента. Область, после которой начинать поиск. Если параметр не указан, поиск будет выполнен с начала табличного документа. <Где> (необязательный) Тип: ОбластьЯчеекТабличногоДокумента. Область, в которой осуществляется поиск. Если параметр не указан, поиск будет выполнен по всем ячейкам табличного документа. <Искать по строкам> (необязательный) Тип: Булево. Определяет последовательность обхода ячеек при поиске. Истина - искать по текущей строке, затем переходить на следующую и т.д. в общем направлении поиска, Ложь - искать по текущей колонке, затем переходить на следующую и т.д. в общем направлении поиска. Значение по умолчанию: Истина <Ячейка целиком> (необязательный) Тип: Булево. Истина - искать только такие ячейки, в которых с искомым текстом совпадает весь текст ячейки, Ложь - искать часть текста ячейки. Значение по умолчанию: Ложь <Искать вперед> (необязательный) Тип: Булево. Определяет направление поиска: Истина - искать вперед; Ложь - искать назад. Значение по умолчанию: Истина <Игнорировать регистр> (необязательный) Тип: Булево. Истина - без учета регистра, Ложь - поиск с учетом регистра. Значение по умолчанию: Ложь Возвращаемое значение: Тип: ОбластьЯчеекТабличногоДокумента, РисунокТабличногоДокумента. Область, содержащая искомый текст. Если текст не найден, то возвращается значение Неопределено. Описание: Осуществляет поиск текста в ячейках табличного документа. Пример:
1C и Google Maps 20
была поставлена задача отображения на географической карте медицинских учреждений. После обзора предлагаемых решений был выбран сервис google. Но так же подобного рода подход будет работать и с картами сервиса yandex. Во время решения задачи было реш 1С Предприятие что это? 11
Что такое 1С? 1С — это фирма , у которой одно из направлений деятельности — разработка программного обеспечения для автоматизации бизнес-процессов предприятий. « 1С:Предприятие » - конкретный продукт, который выпускает компания 1С . Что такое Cклонения по падежам 6
НаКлиенте Процедура Команда1(Команда) ФИО = " Иванов Иван Иванович" ; Падеж = 2; Пол = 1; Результат = СклонениеФИО(ФИО, Падеж, пол); Сообщить(Результат); КонецПроцедуры НаСервере Функция СклонениеФИО(ФИО, Падеж, пол) Результат = " " ; Google maps : вывод точек на карту и режим панорамы 7
В отличие от яндекс карт в GMaps можно использовать панорамы - за что им большой плюс! Надеюсь в яндексе прочитают этот пост и тоже когда-нибудь это сделают! Для клиента нужно было сделать вывод объектов на карту С возможностью просмотра панора Google maps, поиск оптимального маршрута 5
В данном посте хочу коснуться основных аспектов построения оптимального маршрута с использованием API Google maps. Исходные данные для построения маршрута: * Географические координаты объектов, которые хранятся в базе; * Координаты начальной и коне Посмотреть все результаты поиска похожих
Еще в этой же категории
Как быстро вывести таблицу значений в табличный документ? 88
ТекстЗапроса = " ВЫБРАТЬ * ИЗ Справочник.Пользователи" ; ЗапросаДанных = Новый Запрос(ТекстЗапроса); РезЗапроса = ЗапросаДанных.Выполнить().Выгрузить(); ТабДокумент = Новый ТабличныйДокумент; Построитель = Новый Построит Создание Таблицы значений и описание типов значений ее колонок 28
ТаблицаПериодов = Новый ТаблицаЗначений; ТаблицаПериодов.Колонки.Добавить("НомерСтроки", Новый ОписаниеТипов("Число")); ТаблицаПериодов.Колонки.Добавить("Сотрудник", Новый ОписаниеТипов("СправочникСсылка.СотрудникиОрганизаций")); ТаблицаП Удаление строк Таблицы Значений 27
// 1. Удаление строк согласно условию НулевыеСтроки = ТаблицаПослеПодмен.НайтиСтроки(Новый Структура(" Сумма" ,0)); Для каждого СтрокаТаблицы Из НулевыеСтроки Цикл ТаблицаПослеПодмен.Удалить(СтрокаТаблицы) КонецЦикла; // Нужно оставить стр Как скопировать, выгрузить данные из одной таблицы значений в другую? 11
Как скопировать или выгрузить данные из одной таблицы значений в другую таблицу значений? 1. Добавление, копирование строк из одной таблицы значений в другую таблицу значений: Для каждого СтрокаТЗ Из Таблица1 Цикл ЗаполнитьЗначенияСвойств(Таблица Объединение 2 таблиц значений 10
// Объединить 2 таблицы значения // тзОсновная - таблица к которой будут изменяться данные // тзПрисоединяемая - таблица из которой будут браться данные // стОтборОдинаковых - стурктура со списком полей по которым определяеться одинаковость запис Посмотреть все в категории Работа с Таблицей Значений
Если КоличествоОборотов = КоличествоЗаписей Тогда
Прервать;
КонецЕсли;
КонецЦикла;
Док . Записать ();
Осуществляет поиск всех строк таблицы значений, удовлетворяющих заданным условиям поиска.
Синтаксис
Метод НайтиСтроки() имеет следующий синтаксис:
А также альтернативный англоязычный синтаксис:
Параметры
Описание параметров метода НайтиСтроки() :
Имя параметра | Тип | Описание |
---|---|---|
ПараметрыОтбора | Структура | Задает условия поиска: ключ структуры определяет имя колонки, по которой будет осуществляться поиск, а значение структуры — искомое значение. |
Жирным шрифтом выделены обязательные параметры |
Возвращаемое значение
Массив
Массив найденных строк таблицы значений, соответствующих условиям поиска.
Описание
Метод НайтиСтроки() осуществляет поиск строк таблицы значений, удовлетворяющих заданным условиям поиска. В отличие от метода ТаблицаЗначений.Найти(), возвращает все найденные строки.
Доступность
Сервер, толстый клиент, внешнее соединение, мобильное приложение(сервер).
Пример использования
Пример кода с использованием метода НайтиСтроки() :
Этой статьей я продолжаю серию заметок об эффективных приемах работы в 1С:Бухгалтерия 8.3. Рассказываю о хитростях, которые мало кто знает и ещё меньше людей используют в своей работе. Приемы, о которых пойдет речь, способны существенно сэкономить время и повысить вашу квалификацию как специалиста. Первая часть доступна здесь.
п
Прием №4: Поиск в текущей колонке сразу после начала набора текста.
Как вы ещё не пользуетесь этой потрясающей возможностью? В любом журнале (будь-то справочник или документы) выделите любую строчку в любом столбце и просто начинайте набирать текст.
Система автоматически будет отбирать строки, в которых содержится вводимое вами значение в одном из столбцов:
Но что, если нам нужно искать не во всех колонках, а только в конкретной?
Отлично, в списке остались документы в номере которых (в любой позиции) содержится цифра 8:
Для отмены отбора нажмём комбинацию Ctrl + Q или удалим отбор с верхней панели (крестик):
Прием №5: Ввод в поле ввода по строке.
И так можно в любых полях!
Прием №6: Суммирование выделенных ячеек в отчетах.
Прием №7: Сохраняйте любые печатные формы в любом удобном формате.
Любой отчет или печатную форму документа можно сохранить в подходящем формате на компьютер. Просто сформируйте печатную форму и нажмите на значок дискеты в верхней части окна программы.
Теперь выберите имя и формат для документа. Это может быть excel, word, pdf, html и многие другие популярные форматы.
Прием №8: Групповая печать документов.
Прием №9: Печать журнала или табличной части документа.
Продолжение здесь (ч. 3).
Мы молодцы, на этом всё
Кстати, подписывайтесь на новые уроки.
С уважением, Владимир Милькин (преподаватель школы 1С программистов и разработчик обновлятора).
Как помочь сайту: расскажите (кнопки поделиться ниже) о нём своим друзьям и коллегам. Сделайте это один раз и вы внесете существенный вклад в развитие сайта. На сайте нет рекламы, но чем больше людей им пользуются, тем больше сил у меня для его поддержки.
Читайте также: