1с найти реквизит в строке табличной части

Определить наличие реквизита в строке ТЧ

Я
   mzelensky

07.06.13 — 08:28

Доброго всем.

Есть процедура в которую передается строка ТЧ. Эта входящая строка может быть либо от ТЧ1, либо от ТЧ2. Разница алгоритма процедуры заключается в использовании 1 реквизита ТЧ. В одном случае (у ТЧ1) реквизит есть, а в другом (у ТЧ2) реквизита нет.

Как можно проверить наличие реквизита в строке ТЧ (естественно не имею доступа к самой ТЧ)?

  

Партнерская программа EFSOL Oblako

   Wobland

1 — 07.06.13 — 08:29

по второму параметру процедуры?

   mzelensky

2 — 07.06.13 — 08:30

(1) это понятно ,что можно еще уточняющий параметр передать. А вот без него можно?

Т.е. имеем только строку ТЧ. Можно определить наличие или отсутствие определенного реквизита в ней или нет?!

   andreymongol82

3 — 07.06.13 — 08:30

Попытка или второй параметр процедуры

   mzelensky

4 — 07.06.13 — 08:31

(2) или как вариант через строку ТЧ выйти на саму ТЧ, а уже в ней проверить?!

   Wobland

5 — 07.06.13 — 08:31

у метаданных спросить можно

   Поросенок Петр

6 — 07.06.13 — 08:31

Одна процедура — одно действие. Флаги в параметрах, определяющие ход процедуры, или хуже того, разбор типа параметра — это всё копание в г*код.

   mzelensky

7 — 07.06.13 — 08:31

(5) а как ты через метаданные хочешь это сделать?!

   mzelensky

8 — 07.06.13 — 08:32

(6) это лишь твое мнение. А я не сторонник пложить километры строк одного и того же кода лишь из-за одного параметра!

   Aleksey

9 — 07.06.13 — 08:33

например найти колонку

   andreymongol82

10 — 07.06.13 — 08:34

(4) РеквизитЕсть = Истина;

Попытка

кк = СтрокаТЧ.РекизитЭтот

Исключение

РеквизитЕсть = Ложь;

КонецПопытки;

Если реквизит есть тогда бла-бла-бла

   andreymongol82

11 — 07.06.13 — 08:35

(10) А вообще, лучше конечно или второй параметр или другая процедура

   Wobland

12 — 07.06.13 — 08:36

(6) ага. и в случае чего переписать код в трёх местах

   Defender aka LINN

13 — 07.06.13 — 08:36

(0) «естественно не имею доступа к самой ТЧ» — ты, естественно, не имеешь. А кто читал СП — тот имеет.

(8) А так же, смотрю, не сторонник давать реквизитам нормальные имена

   mzelensky

14 — 07.06.13 — 08:37

(10) это я уже рассматривал. Использовать «попытку» не хотелось.

   mzelensky

15 — 07.06.13 — 08:37

(9) ты как всегда гениален, а твои советы как всегда прозаичны.

Найти колонку в чем?

   Mitriy

16 — 07.06.13 — 08:38

УИ = Новый УникальныйИдентификатор();

СтруктураПроверки = Новый Структура(«ИмяПроверяемогоПоля», УИ);

ЗаполнитьЗначенияСвойств(СтруктураПроверки,СтрокаТЧ);

Если Структура.ИмяПроверяемогоПоля = УИ Тогда

Сообщить(«Нет такого поля»);

Иначе

Сообщить(«Есть такое поле»);

Конец

   Поросенок Петр

17 — 07.06.13 — 08:39

(8) Хорошего кода не бывает километры в одной процедуре.  

(12) Кто сказал что нужно дублировать код?

Наоборот, когда у него изменится одна из двух ТЧ, он опять будет г*кодить в этой процедуре.

   mzelensky

18 — 07.06.13 — 08:39

(13)

«ты, естественно, не имеешь. А кто читал СП — тот имеет.» — ткни в СП.

«А так же, смотрю, не сторонник давать реквизитам нормальные имена» — это тут причем?!

   Defender aka LINN

19 — 07.06.13 — 08:39

(15) А у тебя избыток вариантов?

   mzelensky

20 — 07.06.13 — 08:40

(17) ты сказал: «Одна процедура — одно действие». А у меня два действия, которые сходытся в одну процедуру.

   mzelensky

21 — 07.06.13 — 08:41

(19) тебе сегодня жена не дала или просто хреновое настроение в связи с погодой?! Хочешь что-то сказать по существу — говори. В противном случае чего пишешь? Толку с таких сообщений 0.

   Defender aka LINN

22 — 07.06.13 — 08:43

(18) Если у тебя процедура делает одно и то же с разными реквизитами, то есть неплохие шансы, что эти реквизиты означают одно и то же в разных ТЧ. Но называются, ЧСХ, по-разному.

   Поросенок Петр

23 — 07.06.13 — 08:43

(20) Общие для табличных частей поля, обрабатывай одной (считай как базовый класс) процедурой. Особенности каждой ТЧ в своей. Я понимаю 1С отнекивается от ООП, но надо хотя бы понимать принципы…

   Defender aka LINN

24 — 07.06.13 — 08:44

(21) Тебя забыл спросить, где мне писать,а где нет

   shuhard

25 — 07.06.13 — 08:44

(21) не тупи

Defender aka LINN ответил по делу, как и всегда

   mzelensky

26 — 07.06.13 — 08:45

(22) хреново быть плохим экстасенсом. Ты сделал абсолютно неверные выводы (причем из-за того, что плохо прочел (0))!!! Давай ты не будешь угадывать, а просто ответишь на поставленный вопрос в (0).

   mzelensky

27 — 07.06.13 — 08:46

(25) не вижу тут никакого дела.

   Defender aka LINN

28 — 07.06.13 — 08:48

(26) В (0) спрашивается, как сделать самопридуманый костыль. Хочешь помощи — потрудись описать ЗАДАЧУ, а не изобретенный твоей левой пяткой метод ее решения.

   mzelensky

29 — 07.06.13 — 08:51

(28) Остальные отписавшиеся меня вполне поняли. Если ты подтупливаешь, то это уже твои проблемы. Что-то тут объяснять, расписывать и учить тебя никто не просил.

   НЕА123

30 — 07.06.13 — 08:52

«» + строкатч

   Defender aka LINN

31 — 07.06.13 — 08:53

(29) То-то я эту тему создал…

   Defender aka LINN

32 — 07.06.13 — 08:55

Вообще, ответ тебе в (5) еще дали. Хренли ты тут до сих пор делаешь — мне непонятно. Наверное, нравится, когда тебя пинают.

   mzelensky

33 — 07.06.13 — 08:57

(32) прочти (24)

   НЕА123

34 — 07.06.13 — 08:59

мне, лично, (16) нравится.

   mzelensky

35 — 07.06.13 — 08:59

(32) Просто меня бесят упыри, подобные тебе, которые считают себя пупами земли, считая, что они знают все лучше всех.

Можешь помочь советом — помоги, а расплескивать сопли по поводу «Я такой крутой» нафиг не надо!

   mzelensky

36 — 07.06.13 — 08:59

(34) Да, красиво!

нужно будет запомнить.

   Stormicon

37 — 07.06.13 — 09:02

Пятница? Самый простой вариант — Попытка Исключение КонецПопытки, без обращения к метаданным и т.д.

   mzelensky

38 — 07.06.13 — 09:04

(37) Честно говоря с метаданными не могу догнать.

Как имея одну строку ТЧ через метаданные определить наличие определенного реквизита в ней?!

Ну так ,чисто ради любопытства вопрос.

   Infsams654

39 — 07.06.13 — 09:11

(38) Имя строки табличной части формируется следующим образом:

<Префикс полного имени объекта>ТабличнаяЧастьСтрока.<Имя прикладного объекта>.<Имя табличной части>.

Например: СправочникТабличнаяЧастьСтрока.Номенклатура.Состав, где «Номенклатура» — имя справочника, как оно задано в конфигураторе, «Состав» — имя табличной части справочника «Номенклатура».

Смотришь в метаданных реквизиты соответствующей табличной части объекта …

   Defender aka LINN

40 — 07.06.13 — 09:15

(34) Жесть какая

   Defender aka LINN

41 — 07.06.13 — 09:16

(39) Тип можно получить в разы проще

(33) Даже ответ не можешь сам придумать

   mzelensky

42 — 07.06.13 — 09:19

(41) я просто ответил тебе твоими же словами!

А ты давай, продолжай считать себя вершиной эволюции 1С-ка.

   Mitriy

43 — 07.06.13 — 09:26

(40) и что тут жестяного? Очень удобный способ проверить наличие чего-то, что другими способами проверить проблематично… Например, наличие реквизита обычной формы…

   Поросенок Петр

44 — 07.06.13 — 09:27

Г*код победил. Ничего, рано или поздно силы бобра доберутся до него и (0) его перепишет.

   Defender aka LINN

45 — 07.06.13 — 09:27

(43) Для строки ТЧ есть (5).

(42) Приступ попаболи?

   Mitriy

46 — 07.06.13 — 09:28

(45) ну боится человек этого слова…

   Mitriy

47 — 07.06.13 — 09:35

Метаданные.НайтиПоТипу(ТипЗнч(СтрокаТЧ)).Реквизиты

  

mzelensky

48 — 07.06.13 — 09:40

(47) Спасибо.

искать метаданные по типу значения не догадался.

 +9 

   

Распечатать

Найти строку в табличной части документа

Для поиска необходимого значения воспользуемся функцией НайтиСтроки().

Код 1C v 8.2 УП

 &НаСервере
Процедура НайтиТовар(СправочникНоменклатураСсылка)

Перем Отбор, НайденноеЗначение, Сч;

Отбор = Новый Структура();
Отбор.Вставить("Номенклатура", СправочникНоменклатураСсылка);
НайденноеЗначение = Объект["ТЧНоменклатура"].НайтиСтроки(Отбор);

Если НайденноеЗначение.Количество() > 0 Тогда

Сч = 1;
Пока НайденноеЗначение.Количество() >= Сч Цикл
Сообщить(НайденноеЗначение[0].Наименование);
Сч = Сч + 1;
КонецЦикла;

КонецЕсли;

КонецПроцедуры


Код 1C v 8.х

  // найти строку в ТЧ Документа
Отбор = Новый Структура();
Отбор.Вставить("Номенклатура", СправочникНоменклатураСсылка);
НайденноеЗначение = ТЧНоменклатура.НайтиСтроки(Отбор);

// Необходимо найти МассивСтрок, состоящий из строк табличной части документа по 2 значениям.
СтруктураДляПоиска = Новый Структура;
структураДляПоиска.Вставить("Артикул",Артикул);
структураДляПоиска.Вставить("КодПартии",СтруктураПараметров.КодПартии);

МассивСтрок = ДокументДляДополнения.Товары.НайтиСтроки(структураДляПоиска);


Выгружаем колонку

Код 1C v 7.x

 ВыгрузитьТабличнуюЧасть("Товар")

Далее через НайтиЗначение ищем необходимую строку

Содержание:

1.      Когда возникает необходимость проверить наличие реквизита 1С?

2.      Как можно получить метаданные объекта 1С?  

1.    Когда возникает необходимость проверить наличие реквизита 1С

Потребность проверки наличия реквизита обычно возникает при написании общих, универсальных процедур или функций, к примеру, когда необходимо выполнить ряд однообразных действий, проверить заполнение перед проведением, при этом реквизитный состав обрабатываемых объектов метаданных отличается незначительно (например, в документе, отражающем продажу товара, есть реквизит Склад, а в документе, отражающем перемещение товара – реквизиты Склад-отправитель и Склад-получатель).

В ряде типовых конфигураций 1С предлагается стандартная функция проверки наличия реквизита в объекте (расположена в модуле “ОбщегоНазначения”)

Функция ЕстьРеквизитОбъекта(ИмяРеквизита, МетаданныеОбъекта) Экспорт

            Возврат НЕ (МетаданныеОбъекта.Реквизиты.Найти(ИмяРеквизита) = Неопределено);

КонецФункции   

2. Как можно получить метаданные объекта 1С

Однако написать свою функцию также не представляет труда. В первую очередь необходимо получить метаданные объекта 1С одним из способов:

через функцию Метаданные() объекта

пример синтаксиса: СправочникСсылка.Метаданные()

                                    ДокументСсылка.Метаданные()

через свойство глобального контекста Метаданные

пример синтаксиса: Метаданные.Справочники.[ИмяСправочника]

                                    Метаданные.Документы.[ИмяДокумента]

Далее через свойство “Реквизиты” использовать функцию Найти(). В случае, если реквизит не найден, возвращается значение Неопределено.

Пример 1

Метаданные = Контрагент.Метаданные();

Если Метаданные.Реквизиты.Найти(«Ответственный») = Неопределено Тогда

            Возврат Ложь;

Иначе

            Возврат Истина;

КонецЕсли;

Пример 2

Функция ПолучитьОрганизацию(Контрагент, Пользователь)

            Если Метаданные.Справочники.Контрагенты.Реквизиты.Найти(«Организация») <> Неопределено Тогда

                        Возврат Контрагент.Организация;

            Иначе

                        Возврат Пользователь.Организация;

            КонецЕсли;

КонецФункции

Описанный алгоритм подходит для случаев проверки наличия реквизита шапки. Но что делать, когда возникает необходимость определить, существует ли реквизит в табличной части 1С (справочника или документа)? Для этого используется следующая конструкция:

Метаданные.Справочники.<ИмяСправочника>.ТабличныеЧасти.Реквизиты.Найти(<ИмяОбъектаПоиска>).

При обработке таблиц значений также возможно выполнить проверку существования колонки – в этом случае применяется метод Свойство(), с помощью которого, помимо основной функции – получения значения элемента по указанному имени, можно проверить, имеется ли указанного свойство.

Пример синтаксиса:

Если НЕ ТекущаяСтрока.Свойство(«Исключить») ИЛИ НЕ ТекущаяСтрока.Исключить Тогда

            ЗаполнитьЗначенияСвойств(ТаблицаЗагрузки.Добавить(); ТекущаяСтрока);

КонецЕсли;

Специалист компании ООО «Кодерлайн»

Кондренко Анна Сергеевна

Найти строку в табличной части документа для изменения не очень частая задача из-за этого не всегда можно вспомнить с ходу, как это реализовать в 1с. В этой заметке разберем пару примерок по поиску строк в табличной части и дальнейшей работы с ними.

Найти строку по заданным параметрам

Для решения задачи поиска строк в ТЧ будем использовать функцию НайтиСтроки.

Синтаксис: НайтиСтроки(<ПараметрыОтбора>)
Параметры: <ПараметрыОтбора> (обязательный)
Тип: Структура. Задает условия поиска: ключ структуры определяет имя колонки, по которой будет осуществляться поиск, а значение структуры – искомое значение.
Возвращаемое значение: Массив из строк табличной части, соответствующих заданному условию поиска.
Замечание! Массив хранит ссылки на строки табличной части, то есть при изменении строки в табличной части, значение в массиве тоже будет изменено.
Описание: Осуществляет поиск строк табличной части, соответствующих заданному условию поиска.

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

Найти все строки ТЧ с определенным значением задачи.

  1. Создадим структуру отбор и установим значение задачи
  2. Применим функцию НайтиСтроки к нужной табличной части
  3. В переменной МассивНайденныхСтрок будут ссылки на строки таблицы которые содержат нужную нам задачу
Отбор = Новый Структура("Задача",ДокументСсылкаЗадача);
МассивНайденныхСтрок = ТЧПодзадачи.НайтиСтроки(Отбор);

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

Найти все строки ТЧ с определенным значением номенклатуры и количества

  1. Создаем структуру для отбора
  2. Устанавливаем два параметра поиска (если параметров больше устанавливаем столько, сколько надо)
  3. Ищем в таблице нужные строки
  4. Получаем переменную МассивНайденныхСтрок с нужными данными
Отбор = Новый Структура;
Отбор.Вставить("Номенклатура",СправочникНоменклатураСсылка);
Отбор.Вставить("Количество",ИскомоеКоличество);

МассивНайденныхСтрок = РеализацияТовароУслуг.Товары.НайтиСтроки(Отбор);   

В примере номер три реализуем процедуру которая сообщит все цены номенклатуры в определенном документе.

Реализовать процедуру которая сообщит цену на товар в поступлениях, реализациях и счетах на выбор пользователя.

Порядок действий будет похож на прошлые два примера:

  1. Создаем отбор и устанавливаем значения поиска
  2. Ищем в табличной части
  3. Сообщаем все цены которые нашли
&НаСервере
Процедура НайтиЦеныНаТовар(Документ,СправочникНоменклатураСсылка)
	Отбор = Новый Структура("Номенклатура", СправочникНоменклатураСсылка);
	МассивНайденныхСтрок = Документ["Товары"].НайтиСтроки(Отбор);
	Для Каждого ЭлМас Из  МассивНайденныхСтрок Цикл
		Сообщить(ЭлМас.Цена);
	КонецЦикла;
КонецПроцедуры   

В 1с существует метод Найти(), это устаревший метод для его не стоит использовать.

Дополнительные материалы по теме:

  1. Заметки и учебные примеры по программированию у меня на сайте ищите – тут
  2. Интересная статья про НайтиСтроки – тут

Для поиска необходимого значения воспользуемся функцией НайтиСтроки().

Код 1C v 8.2 УП

 &НаСервере
      
Процедура НайтиТовар(СправочникНоменклатураСсылка)

Перем Отбор, НайденноеЗначение, Сч;

Отбор = Новый Структура();
Отбор.Вставить("Номенклатура", СправочникНоменклатураСсылка);
НайденноеЗначение = Объект["ТЧНоменклатура"].НайтиСтроки(Отбор);

Если НайденноеЗначение.Количество() > 0 Тогда

Сч = 1;
Пока НайденноеЗначение.Количество() >= Сч Цикл
Сообщить(НайденноеЗначение[0].Наименование);
Сч = Сч + 1;
КонецЦикла;

КонецЕсли;

КонецПроцедуры


Код 1C v 8.х

 // найти строку в ТЧ Документа
      
Отбор = Новый Структура();
Отбор.Вставить("Номенклатура", СправочникНоменклатураСсылка);
НайденноеЗначение = ТЧНоменклатура.НайтиСтроки(Отбор);

// Необходимо найти МассивСтрок, состоящий из строк табличной части документа по 2 значениям.
СтруктураДляПоиска = Новый Структура;
структураДляПоиска.Вставить("Артикул",Артикул);
структураДляПоиска.Вставить("КодПартии",СтруктураПараметров.КодПартии);

МассивСтрок = ДокументДляДополнения.Товары.НайтиСтроки(структураДляПоиска);


Виртуальный 1С помощник


Выгружаем колонку

Код 1C v 7.x

 ВыгрузитьТабличнуюЧасть("Товар")

Далее через НайтиЗначение ищем необходимую строку

Информация взята с сайта http://helpf.pro

Подпишитесь на нашу рассылку новостей

Хотите узнать больше по этому вопросу?

Подпишитесь на нашу рассылку новостей

Подписаться

Чтобы задать вопрос или предложить тему статьи, нажмите на кнопку ниже:

Предложить статью

На чтение 5 мин. Просмотров 671 Опубликовано 15.12.2019

//Корректировать строку табличной части документа
//»ОС» — наименование табличной части
Тч = Док . ОС ;
Тч[ 0 ] . НалоговаяГруппаОС = Справочники . НалоговыеГруппы . НайтиПоНаименованию ( «Четвертая (с 2004 г)» );
Док . Записать ( РежимЗаписиДокумента . Проведение );

//——————————————————————
//Поиск в табличной части документа
//»Платежи» — наименование табличной части
Сообщить ( Док . Платежи . Найти ( ТоЧтоНужноНайти , «РеквизитВТабЧастиГдеИскатьЗначение» )[ «РеквизитВТабЧастиОткудаВзятьЗначение» ]);

//——————————————————————
//Cделать текущей строку табличной части формы документа
//»Выписки» — наименование табличной части
ЗаписьВыписка = ДокБанковскаяВыписка . Выписки . Добавить ();
ЗаписьВыписка . Реквизит1 = «Реквизит1» ;
ЗаписьВыписка . Реквизит2 = «Реквизит2» ;

ФормаВыписка = ДокБанковскаяВыписка . ПолучитьФорму ( «ФормаДокумента» );
ФормаВыписка . ЭлементыФормы . Выписки . ТекущаяСтрока = ЗаписьВыписка ;
ФормаВыписка . Открыть ();

//——————————————————————
//Удалить записи из табличной части документа с помощью структуры
Отбор = Новый Структура ;
Отбор . Вставить ( «КодОбъекта» , ЗначениеКодОбъекта );

Документ = Документы . ПриходнаяНакладная . НайтиПоНаименованию ( «Наименование» ). ПолучитьОбъект ();

//Удаляем записи табличной части
ЗаписиТабЧасти = Документ [ «НазваниеТабЧасти» ]. НайтиСтроки ( Отбор );
Для Каждого ЗаписьТабЧасти Из ЗаписиТабЧасти Цикл
Документ [ «НазваниеТабЧасти» ]. Удалить ( ЗаписьТабЧасти );
КонецЦикла;

//——————————————————————
//Удалить строки (записи) из табличной части документа в цикле (при переборе)
Док = ДокБанковскаяВыписка . ПолучитьОбъект ();
КоличествоЗаписей = Док . Выписки . Количество ();
КоличествоОборотов = 0 ;
Для ъ = 0 По КоличествоЗаписей — 1 Цикл
КоличествоОборотов = КоличествоОборотов + 1 ;

Если Док . Выписки [ ъ ]. ИмяПоля = Истина Тогда
Док . Выписки . Удалить ( Док . Выписки [ ъ ]);
ъ = ъ — 1 ;
КонецЕсли;

Если КоличествоОборотов = КоличествоЗаписей Тогда
Прервать;
КонецЕсли;
КонецЦикла;
Док . Записать ();

Осуществляет поиск всех строк таблицы значений, удовлетворяющих заданным условиям поиска.

Содержание

  1. Синтаксис
  2. Параметры
  3. Возвращаемое значение
  4. Описание
  5. Доступность
  6. Пример использования
  7. Прием №4: Поиск в текущей колонке сразу после начала набора текста.
  8. Прием №5: Ввод в поле ввода по строке.
  9. Прием №6: Суммирование выделенных ячеек в отчетах.
  10. Прием №7: Сохраняйте любые печатные формы в любом удобном формате.
  11. Прием №8: Групповая печать документов.
  12. Прием №9: Печать журнала или табличной части документа.

Синтаксис

Метод НайтиСтроки() имеет следующий синтаксис:

А также альтернативный англоязычный синтаксис:

Параметры

Описание параметров метода НайтиСтроки() :

Имя параметра Тип Описание
ПараметрыОтбора Структура Задает условия поиска: ключ структуры определяет имя колонки, по которой будет осуществляться поиск, а значение структуры — искомое значение.
Жирным шрифтом выделены обязательные параметры

Возвращаемое значение

Массив
Массив найденных строк таблицы значений, соответствующих условиям поиска.

Описание

Метод НайтиСтроки() осуществляет поиск строк таблицы значений, удовлетворяющих заданным условиям поиска. В отличие от метода ТаблицаЗначений.Найти(), возвращает все найденные строки.

Доступность

Сервер, толстый клиент, внешнее соединение, мобильное приложение(сервер).

Пример использования

Пример кода с использованием метода НайтиСтроки() :

Этой статьей я продолжаю серию заметок об эффективных приемах работы в 1С:Бухгалтерия 8.3. Рассказываю о хитростях, которые мало кто знает и ещё меньше людей используют в своей работе. Приемы, о которых пойдет речь, способны существенно сэкономить время и повысить вашу квалификацию как специалиста. Первая часть доступна здесь.
п

Прием №4: Поиск в текущей колонке сразу после начала набора текста.

Как вы ещё не пользуетесь этой потрясающей возможностью? В любом журнале (будь-то справочник или документы) выделите любую строчку в любом столбце и просто начинайте набирать текст.

Система автоматически будет отбирать строки, в которых содержится вводимое вами значение в одном из столбцов:

Если нужно отменить фильтр — нажмите кнопку Esc на клавиатуре или на крестик в поле поиска:

Но что, если нам нужно искать не во всех колонках, а только в конкретной?

Для поиска в текущей (выделенной) колонке используйте комбинацию Alt + F или пункт меню «Ещё»->»Расширенный поиск»:

Для мгновенного отбора (без отображения диалогового окна) по текущей колонке и по выделенному в ней значению используйте комбинацию Ctrl + Alt + F или пункт меню «Ещё»->»Найти. «.

Например, давайте отберём все документы в номере которых встречается цифра 8. Для этого выделим столбец «Номер» в любой строке и нажмём Alt + F.

В открывшемся окне наберём цифру 8 и нажмём «Найти»:

Отлично, в списке остались документы в номере которых (в любой позиции) содержится цифра 8:

Для отмены отбора нажмём комбинацию Ctrl + Q или удалим отбор с верхней панели (крестик):

Внимание! Если поиск не срабатывает (получается пустой отбор) — вероятно у вас включён полнотекстовый поиск и не обновлён его индекс.

Полнотекстовый поиск настраивается в разделе «Администрирование» пункт «Поддержка и обслуживание»:

Далее регламентные операции и уже здесь или отключаем полнотекстовый поиск или обновляем его индекс (пункт «Настроить» кнопка «Обновить индекс»):

Прием №5: Ввод в поле ввода по строке.

Пусть вам требуется забить поле контрагент в документе «Поступление товаров и услуг» и вы знаете, что контрагент называется как-то на «аэро».

И вы вместо того, чтобы выбирать контрагента из списка, просто возьмите и начните в поле ввода контрагент набирать текст «аэро». Как видите система сама подсказывает возможные варианты контрагентов, которые начинаются с этих букв. Искомый аэрофлот найден — осталось просто выбрать его.

И так можно в любых полях!

Прием №6: Суммирование выделенных ячеек в отчетах.

Просто выделяйте нужные ячейки мышкой — сумма автоматически отобразится в поле указанном на рисунке. А если нужно выделить ячейки не находящиеся рядом — используйте клавишу CTRL. Зажмите её и выделяйте нужные ячейки в отчете, чтобы получить их сумму.

Прием №7: Сохраняйте любые печатные формы в любом удобном формате.

Любой отчет или печатную форму документа можно сохранить в подходящем формате на компьютер. Просто сформируйте печатную форму и нажмите на значок дискеты в верхней части окна программы.

Теперь выберите имя и формат для документа. Это может быть excel, word, pdf, html и многие другие популярные форматы.

Прием №8: Групповая печать документов.

Прием №9: Печать журнала или табличной части документа.

Продолжение здесь (ч. 3).

Мы молодцы, на этом всё

Кстати, подписывайтесь на новые уроки.

С уважением, Владимир Милькин (преподаватель школы 1С программистов и разработчик обновлятора).

Подписывайтесь и получайте новые статьи и обработки на почту (не чаще 1 раза в неделю).

Вступайте в мою группу ВКонтакте, Одноклассниках, Facebook или Google+ — самые последние обработки, исправления ошибок в 1С, всё выкладываю там в первую очередь.

Как помочь сайту: расскажите (кнопки поделиться ниже) о нём своим друзьям и коллегам. Сделайте это один раз и вы внесете существенный вклад в развитие сайта. На сайте нет рекламы, но чем больше людей им пользуются, тем больше сил у меня для его поддержки.

Нажмите одну из кнопок, чтобы поделиться:

Осуществляет поиск строки таблицы по значению.

Синтаксис

Метод Найти() имеет следующий синтаксис:

СтрокаТаблицыЗначений Найти(Значение, [Колонки=""])

А также альтернативный англоязычный синтаксис:

ValueTableString Find(Value, [Columns=""])

Параметры

Описание параметров метода Найти():

Имя параметра* Тип Описание
Значение Произвольный Искомое значение.
Колонки Строка Список имен колонок, разделенных запятыми, по которым производится поиск. Значение по умолчанию: пустая строка
*Жирным шрифтом выделены обязательные параметры

Возвращаемое значение

СтрокаТаблицыЗначений — строка, в которой содержится искомое значение
Неопределено — если значение не найдено

Описание

Метод Найти() осуществляет поиск строки таблицы значений, содержащей искомое значение. По умолчанию, поиск осуществляется по всей таблице значений. Если указать параметр Колонки, поиск будет осуществляется только в указанных колонках таблицы значений.

Внимание! Метод находит только первую строку с указанным значением. Чтобы найти все строки, воспользуйтесь методом ТаблицаЗначений.НайтиСтроки()

Доступность

Сервер, толстый клиент, внешнее соединение, мобильное приложение(сервер).

Пример использования

Пример кода с использованием метода Найти():

//создаем таблицу товаров
тз = Новый ТаблицаЗначений;
тз.Колонки.Добавить("Код");
тз.Колонки.Добавить("Наименование");
тз.Колонки.Добавить("Количество", Новый ОписаниеТипов("Число"));
тз.Колонки.Добавить("Цена"	, Новый ОписаниеТипов("Число"));
тз.Колонки.Добавить("Сумма"	, Новый ОписаниеТипов("Число"));

//добавляем товары и цены
НоваяСтрока = тз.Добавить();
НоваяСтрока.Код = "001";
НоваяСтрока.Наименование = "Стул деревянный";
НоваяСтрока.Количество = 2;
НоваяСтрока.Цена = 2000;
НоваяСтрока.Сумма = НоваяСтрока.Количество * НоваяСтрока.Цена;

НоваяСтрока = тз.Добавить();
НоваяСтрока.Код = "001";
НоваяСтрока.Наименование = "Стол деревянный";
НоваяСтрока.Количество = 1;
НоваяСтрока.Цена = 8000;
НоваяСтрока.Сумма = НоваяСтрока.Количество * НоваяСтрока.Цена;

//выводим итоговую информацию
найдСтрока = тз.Найти("Стол деревянный", "Наименование");
Если НЕ найдСтрока = Неопределено Тогда
	Сообщить("Найден товар: " + найдСтрока.Наименование + " на сумму " + найдСтрока.Сумма);
КонецЕсли

Читайте также:

Программная работа с таблицей значений

Поделиться страницей в соц.сетях

Понравилась статья? Поделить с друзьями:
  • 2 боткинский проезд 5 корп 28 как проехать
  • 1с настройка реквизитов для уплаты налогов
  • 2303024188 ооо торговая компания ресурс юг
  • 1с обновить реквизиты управляемой формы 1с
  • 250 000 от государства для бизнеса условия